summaryrefslogtreecommitdiffstats
path: root/makefu/2configs/ham/multi
diff options
context:
space:
mode:
authormakefu <github@syntax-fehler.de>2020-07-01 09:35:01 +0200
committermakefu <github@syntax-fehler.de>2020-07-01 09:40:46 +0200
commitf4e98bc021585f1ed02571dcde6183c0171e5607 (patch)
tree60ee3803851b93a03741ee35a5684a0017b74980 /makefu/2configs/ham/multi
parent1ed4ded92f83e4d2f91b0b46c514acb420b7e0c3 (diff)
ma ham/flycounter: init
Diffstat (limited to 'makefu/2configs/ham/multi')
-rw-r--r--makefu/2configs/ham/multi/fliegen-couter.nix67
1 files changed, 67 insertions, 0 deletions
diff --git a/makefu/2configs/ham/multi/fliegen-couter.nix b/makefu/2configs/ham/multi/fliegen-couter.nix
new file mode 100644
index 000000000..d5c180e03
--- /dev/null
+++ b/makefu/2configs/ham/multi/fliegen-couter.nix
@@ -0,0 +1,67 @@
+# 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 {
+ 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";
+ }
+ ];
+ }
+ ];
+}