stockholm/makefu/2configs/home/ham/multi/fliegen-couter.nix
2021-03-09 22:14:51 +01:00

72 lines
1.8 KiB
Nix

# uses:
# sensor.btn1_click
# sensor.btn2_click
let
hlib = import ../lib;
fly_swat = for: btn: method: incr: {
alias = "Increment ${method} for ${for}";
trigger = {
platform = "state";
entity_id = "sensor.${btn}_click";
to = method;
};
action = builtins.genList (cnt: {
service = "counter.increment";
data.entity_id = "counter.${for}_fliegen";
}) incr;
};
in
{
services.home-assistant.config =
{
counter = {
felix_fliegen = {};
misa_fliegen = {};
};
automation = [
(fly_swat "misa" "btn1" "single" 1)
(fly_swat "misa" "btn1" "double" 2)
(fly_swat "misa" "btn1" "triple" 3)
(fly_swat "felix" "btn2" "single" 1)
(fly_swat "felix" "btn2" "double" 2)
(fly_swat "felix" "btn2" "triple" 3)
{
alias = "Send Fly Counter Update";
trigger = [
{
platform = "state";
entity_id = "counter.felix_fliegen";
}
{
platform = "state";
entity_id = "counter.misa_fliegen";
#above = -1;
}
];
action = {
service = "mqtt.publish";
data_template = { # gauge-style
payload = "{{ trigger.to_state.state }}";
topic = "${hlib.prefix}/flycounter/{{ trigger.to_state.object_id }}";
};
};
}
{
alias = "Reset Fly counters on midnight";
trigger = {
platform = "time";
at = "01:00:00";
};
action = [
{ service = "counter.reset";
data.entity_id = "counter.misa_fliegen";
}
{ service = "counter.reset";
data.entity_id = "counter.felix_fliegen";
}
];
}
];
};
}