From 4ad85faacedc755fd25b7edd0df41234c98876f0 Mon Sep 17 00:00:00 2001 From: makefu Date: Tue, 7 Jan 2020 16:52:31 +0100 Subject: shack/glados: init hass config --- krebs/2configs/shack/glados/lib/default.nix | 46 +++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 krebs/2configs/shack/glados/lib/default.nix (limited to 'krebs/2configs/shack/glados/lib/default.nix') diff --git a/krebs/2configs/shack/glados/lib/default.nix b/krebs/2configs/shack/glados/lib/default.nix new file mode 100644 index 00000000..debe8e5c --- /dev/null +++ b/krebs/2configs/shack/glados/lib/default.nix @@ -0,0 +1,46 @@ +let + lib = import ; + prefix = "glados"; +in +{ + esphome = + { + temp = name: + { + platform = "mqtt"; + name = "${name} Temperature"; + device_class = "temperature"; + state_topic = "${prefix}/${name}/sensor/temperature/state"; + availability_topic = "${prefix}/${name}/status"; + payload_available = "online"; + payload_not_available = "offline"; + }; + hum = name: + { + platform = "mqtt"; + device_class = "humidity"; + name = "${name} Humidity"; + state_topic = "${prefix}/${name}/sensor/humidity/state"; + availability_topic = "${prefix}/${name}/status"; + payload_available = "online"; + payload_not_available = "offline"; + }; + }; + tasmota = + { + plug = name: topic: + { + platform = "mqtt"; + inherit name; + state_topic = "sonoff/stat/${topic}/POWER1"; + command_topic = "sonoff/cmnd/${topic}/POWER1"; + availability_topic = "sonoff/tele/${topic}/LWT"; + payload_on= "ON"; + payload_off= "OFF"; + payload_available= "Online"; + payload_not_available= "Offline"; + retain = false; + qos = 1; + }; + }; +} -- cgit v1.2.3 From 5d2e66eb2c0cb5c4c6a5592e53d1baad21721430 Mon Sep 17 00:00:00 2001 From: makefu Date: Wed, 8 Jan 2020 10:16:21 +0100 Subject: shack/glados: enable schlechte_luft --- krebs/2configs/shack/glados/lib/default.nix | 73 ++++++++++++++++++++++++++--- 1 file changed, 67 insertions(+), 6 deletions(-) (limited to 'krebs/2configs/shack/glados/lib/default.nix') diff --git a/krebs/2configs/shack/glados/lib/default.nix b/krebs/2configs/shack/glados/lib/default.nix index debe8e5c..19c657e6 100644 --- a/krebs/2configs/shack/glados/lib/default.nix +++ b/krebs/2configs/shack/glados/lib/default.nix @@ -1,34 +1,95 @@ let - lib = import ; prefix = "glados"; in { esphome = { - temp = name: + temp = {name, topic ? "temperature" }: { platform = "mqtt"; name = "${name} Temperature"; device_class = "temperature"; - state_topic = "${prefix}/${name}/sensor/temperature/state"; + unit_of_measurement = "°C"; + icon = "mdi:thermometer"; + state_topic = "${prefix}/${name}/sensor/${topic}/state"; availability_topic = "${prefix}/${name}/status"; payload_available = "online"; payload_not_available = "offline"; }; - hum = name: + hum = {name, topic ? "humidity" }: { platform = "mqtt"; + unit_of_measurement = "%"; + icon = "mdi:water-percent"; device_class = "humidity"; name = "${name} Humidity"; - state_topic = "${prefix}/${name}/sensor/humidity/state"; + state_topic = "${prefix}/${name}/sensor/${topic}/state"; availability_topic = "${prefix}/${name}/status"; payload_available = "online"; payload_not_available = "offline"; }; + # copied from "homeassistant/light/fablab_led/led_ring/config" + led = {name, topic ? "led", host ? name }: + { # name: fablab_led + # topic: led_ring + platform = "mqtt"; + inherit name; + schema = "json"; + brightness = true; + rgb = true; + effect = true; + effect_list = [ # TODO: may be different + "Random" + "Strobe" + "Rainbow" + "Color Wipe" + "Scan" + "Twinkle" + "Fireworks" + "Addressable Flicker" + "None" + ]; + state_topic = "${prefix}/${host}/light/${topic}/state"; + command_topic = "${prefix}/${host}/light/${topic}/command"; + availability_topic = "${prefix}/${host}/status"; + payload_available = "online"; + payload_not_available = "offline"; + qos = 1; + }; + # Feinstaub + dust_25m = { host, name ? "${host} < 2.5µm", topic ? "particulate_matter_25m_concentration" }: + { + platform = "mqtt"; + unit_of_measurement = "µg/m³"; + icon = "mdi:chemical-weapon"; + inherit name; + state_topic = "${prefix}/${host}/sensor/${topic}/state"; + availability_topic = "${prefix}/${name}/status"; + }; + dust_100m = {host, name ? "${host} < 10µm", topic ? "particulate_matter_100m_concentration" }: + { + platform = "mqtt"; + unit_of_measurement = "µg/m³"; + icon = "mdi:chemical-weapon"; + inherit name; + state_topic = "${prefix}/${name}/sensor/${topic}/state"; + availability_topic = "${prefix}/${name}/status"; + }; + switch = {host, name ? "${host} Button", topic ? "btn" }: + # host: ampel + # name: Button 1 + # topic: btn1 + { + inherit name; + platform = "mqtt"; + state_topic = "${prefix}/${host}/sensor/${topic}/state"; + command_topic = "${prefix}/${host}/switch/${topic}/state"; + availability_topic = "${prefix}/${host}/status"; + }; }; tasmota = { - plug = name: topic: + plug = {name, topic ? name }: { platform = "mqtt"; inherit name; -- cgit v1.2.3 From 5f3dcaa95810e1729a884df1d999b236c6eaaccc Mon Sep 17 00:00:00 2001 From: makefu Date: Fri, 10 Jan 2020 09:59:11 +0100 Subject: shack/glados: use host consistently --- krebs/2configs/shack/glados/lib/default.nix | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) (limited to 'krebs/2configs/shack/glados/lib/default.nix') diff --git a/krebs/2configs/shack/glados/lib/default.nix b/krebs/2configs/shack/glados/lib/default.nix index 19c657e6..6737af84 100644 --- a/krebs/2configs/shack/glados/lib/default.nix +++ b/krebs/2configs/shack/glados/lib/default.nix @@ -4,32 +4,32 @@ in { esphome = { - temp = {name, topic ? "temperature" }: + temp = {host, topic ? "temperature" }: { platform = "mqtt"; - name = "${name} Temperature"; + name = "${host} Temperature"; device_class = "temperature"; unit_of_measurement = "°C"; icon = "mdi:thermometer"; - state_topic = "${prefix}/${name}/sensor/${topic}/state"; - availability_topic = "${prefix}/${name}/status"; + state_topic = "${prefix}/${host}/sensor/${topic}/state"; + availability_topic = "${prefix}/${host}/status"; payload_available = "online"; payload_not_available = "offline"; }; - hum = {name, topic ? "humidity" }: + hum = {host, topic ? "humidity" }: { platform = "mqtt"; unit_of_measurement = "%"; icon = "mdi:water-percent"; device_class = "humidity"; - name = "${name} Humidity"; - state_topic = "${prefix}/${name}/sensor/${topic}/state"; - availability_topic = "${prefix}/${name}/status"; + name = "${host} Humidity"; + state_topic = "${prefix}/${host}/sensor/${topic}/state"; + availability_topic = "${prefix}/${host}/status"; payload_available = "online"; payload_not_available = "offline"; }; # copied from "homeassistant/light/fablab_led/led_ring/config" - led = {name, topic ? "led", host ? name }: + led = {host, topic ? "led", name ? host}: { # name: fablab_led # topic: led_ring platform = "mqtt"; @@ -64,7 +64,7 @@ in icon = "mdi:chemical-weapon"; inherit name; state_topic = "${prefix}/${host}/sensor/${topic}/state"; - availability_topic = "${prefix}/${name}/status"; + availability_topic = "${prefix}/${host}/status"; }; dust_100m = {host, name ? "${host} < 10µm", topic ? "particulate_matter_100m_concentration" }: { @@ -72,8 +72,8 @@ in unit_of_measurement = "µg/m³"; icon = "mdi:chemical-weapon"; inherit name; - state_topic = "${prefix}/${name}/sensor/${topic}/state"; - availability_topic = "${prefix}/${name}/status"; + state_topic = "${prefix}/${host}/sensor/${topic}/state"; + availability_topic = "${prefix}/${host}/status"; }; switch = {host, name ? "${host} Button", topic ? "btn" }: # host: ampel @@ -89,7 +89,7 @@ in }; tasmota = { - plug = {name, topic ? name }: + plug = {host, name ? host, topic ? host}: { platform = "mqtt"; inherit name; -- cgit v1.2.3