diff options
Diffstat (limited to 'krebs/2configs/shack/glados/sensors/power.nix')
-rw-r--r-- | krebs/2configs/shack/glados/sensors/power.nix | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/krebs/2configs/shack/glados/sensors/power.nix b/krebs/2configs/shack/glados/sensors/power.nix new file mode 100644 index 00000000..d9b5c7c6 --- /dev/null +++ b/krebs/2configs/shack/glados/sensors/power.nix @@ -0,0 +1,29 @@ +let + power_x = name: phase: + { platform = "mqtt"; + name = "${phase} ${name}"; + state_topic = "/power/total/${phase}/${name}"; + availability_topic = "/power/lwt"; + payload_available = "Online"; + payload_not_available = "Offline"; + }; + power_consumed = + { platform = "mqtt"; + name = "Power Consumed"; + device_class = "power"; + state_topic = "/power/total/consumed"; + availability_topic = "/power/lwt"; + payload_available = "Online"; + payload_not_available = "Offline"; + }; + power_volt = power_x "Voltage"; + power_watt = (power_x "Power") ; + power_curr = power_x "Current"; +in +{ + services.home-assistant.config.sensor = + (map power_volt [ "L1" "L2" "L3" ]) +++ (map (x: ((power_watt x) // { device_class = "power"; })) [ "L1" "L2" "L3" ]) +++ (map power_curr [ "L1" "L2" "L3" ]) +++ [ power_consumed ]; +} |