summaryrefslogtreecommitdiffstats
path: root/krebs/2configs/shack/glados/lib
diff options
context:
space:
mode:
Diffstat (limited to 'krebs/2configs/shack/glados/lib')
-rw-r--r--krebs/2configs/shack/glados/lib/default.nix42
1 files changed, 42 insertions, 0 deletions
diff --git a/krebs/2configs/shack/glados/lib/default.nix b/krebs/2configs/shack/glados/lib/default.nix
index eb0528a06..6ab1edf85 100644
--- a/krebs/2configs/shack/glados/lib/default.nix
+++ b/krebs/2configs/shack/glados/lib/default.nix
@@ -72,6 +72,17 @@ in
payload_available = "online";
payload_not_available = "offline";
};
+ rollo = {host, topic ? "rollo" }:
+ {
+ optimistic = true;
+ platform = "mqtt";
+ name = "${host} Rollo";
+ state_topic = "${prefix}/${host}/sensor/${topic}/state";
+ command_topic = "${prefix}/${host}/sensor/${topic}/command";
+ availability_topic = "${prefix}/${host}/status";
+ position_topic = "${prefix}/${host}/cover/${topic}/position/state";
+ set_position_topic = "${prefix}/${host}/cover/${topic}/position/command";
+ };
# copied from "homeassistant/light/fablab_led/led_ring/config"
led = {host, topic ? "led", name ? host}:
{ # name: fablab_led
@@ -100,6 +111,37 @@ in
payload_not_available = "offline";
qos = 1;
};
+ monoled = {host, topic ? "blue_led", name ? host "MonoLED ${host}"}:
+ {
+ platform = "mqtt";
+ inherit name;
+ schema = "json";
+ brightness = true;
+ effect = true;
+ effect_list = [ # TODO: may be different
+ "Strobe"
+ "Twinkle"
+ "None"
+ ];
+ state_topic = "${prefix}/${host}/light/${topic}/state";
+ command_topic = "${prefix}/${host}/light/${topic}/command";
+ availability_topic = "${prefix}/${host}/status";
+ };
+ btn = {host, topic ? "button", name ? "${host} ${topic}"}: #binary_sensor
+ {
+ platform = "mqtt";
+ name = "${host} Button";
+ state_topic = "${prefix}/${host}/binary_sensor/${topic}/state";
+ availability_topic = "${prefix}/${host}/status";
+ };
+ relay = {host, name ? "${host} ${topic}", topic ? "relay" }: #switch
+ {
+ inherit name;
+ platform = "mqtt";
+ state_topic = "${prefix}/${host}/switch/${topic}/state";
+ command_topic = "${prefix}/${host}/switch/${topic}/command";
+ availability_topic = "${prefix}/${host}/status";
+ };
# Feinstaub
dust_25m = { host, name ? "${host} < 2.5µm", topic ? "particulate_matter_25m_concentration" }:
{