From 72d614cf2a266478be71eca34d75a5ab387b8b89 Mon Sep 17 00:00:00 2001 From: makefu Date: Wed, 3 Jul 2019 23:03:33 +0200 Subject: ma bureautomation: refactor air quality alarm --- .../bureautomation/automation/schlechteluft.nix | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 makefu/2configs/bureautomation/automation/schlechteluft.nix (limited to 'makefu/2configs/bureautomation/automation/schlechteluft.nix') diff --git a/makefu/2configs/bureautomation/automation/schlechteluft.nix b/makefu/2configs/bureautomation/automation/schlechteluft.nix new file mode 100644 index 00000000..9a5c4c5c --- /dev/null +++ b/makefu/2configs/bureautomation/automation/schlechteluft.nix @@ -0,0 +1,40 @@ +let +secs = 60; +in [ + # TODO: trigger if it is before dusk and somebody arives but nachtlichter are + # off from last day + # TODO: do not have nachtlicht turned on at night + { + alias = "Turn on Nachtlicht at dusk"; # when it gets dim + trigger = + { platform = "numeric_state"; + entity_id = "sensor.air_quality"; + above = 1523; + for.seconds = secs; + }; + condition = { + condition = "and"; + conditions = [ + { condition = "state"; + entity_id = "group.team"; + state = "home"; + } + { condition = "time"; + after = "06:00:00"; + before = "20:00:00"; + } + ]; + }; + + action = [ + { service = "homeassistant.turn_on"; + entity_id = [ + "script.schlechteluft" + ]; + } + { service = "notify.matrix_notify"; + data_template.message = "Bad Air Alarm! VOC above threshold for ${toString secs} seconds ({{state.sensor.air_quality.state_with_unit}})"; + } + ]; + } +] -- cgit v1.2.3 From c2230d30c5d75622eb25f3e0df977691cbf01058 Mon Sep 17 00:00:00 2001 From: makefu Date: Thu, 4 Jul 2019 08:03:50 +0200 Subject: ma bureautomation: remove announcement, fix schlechteluft --- makefu/2configs/bureautomation/automation/schlechteluft.nix | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) (limited to 'makefu/2configs/bureautomation/automation/schlechteluft.nix') diff --git a/makefu/2configs/bureautomation/automation/schlechteluft.nix b/makefu/2configs/bureautomation/automation/schlechteluft.nix index 9a5c4c5c..4a5fb17c 100644 --- a/makefu/2configs/bureautomation/automation/schlechteluft.nix +++ b/makefu/2configs/bureautomation/automation/schlechteluft.nix @@ -1,11 +1,8 @@ let secs = 60; in [ - # TODO: trigger if it is before dusk and somebody arives but nachtlichter are - # off from last day - # TODO: do not have nachtlicht turned on at night { - alias = "Turn on Nachtlicht at dusk"; # when it gets dim + alias = "Bad Air Alarm"; trigger = { platform = "numeric_state"; entity_id = "sensor.air_quality"; @@ -33,7 +30,7 @@ in [ ]; } { service = "notify.matrix_notify"; - data_template.message = "Bad Air Alarm! VOC above threshold for ${toString secs} seconds ({{state.sensor.air_quality.state_with_unit}})"; + data_template.message = "Bad Air Alarm! VOC above threshold for ${toString secs} seconds ({{states.sensor.air_quality.state_with_unit}})"; } ]; } -- cgit v1.2.3 From 4ce32d170826360f577624323d94a4c5432764f7 Mon Sep 17 00:00:00 2001 From: makefu Date: Tue, 9 Jul 2019 13:35:47 +0200 Subject: ma bureautomation: split schlechteluft in 2 automations (long and short) --- .../bureautomation/automation/schlechteluft.nix | 45 ++++++++++++++++++++-- 1 file changed, 41 insertions(+), 4 deletions(-) (limited to 'makefu/2configs/bureautomation/automation/schlechteluft.nix') diff --git a/makefu/2configs/bureautomation/automation/schlechteluft.nix b/makefu/2configs/bureautomation/automation/schlechteluft.nix index 4a5fb17c..8787ee28 100644 --- a/makefu/2configs/bureautomation/automation/schlechteluft.nix +++ b/makefu/2configs/bureautomation/automation/schlechteluft.nix @@ -1,13 +1,13 @@ let -secs = 60; + long_threshold = 30; in [ { - alias = "Bad Air Alarm"; + alias = "Bad Air Alarm 60 seconds"; trigger = { platform = "numeric_state"; entity_id = "sensor.air_quality"; above = 1523; - for.seconds = secs; + for.seconds = 60; }; condition = { condition = "and"; @@ -29,8 +29,45 @@ in [ "script.schlechteluft" ]; } + ]; + } + { + alias = "Bad Air Alarm ${toString long_threshold} Minutes"; + trigger = + { platform = "numeric_state"; + entity_id = "sensor.air_quality"; + above = 1523; + for.minutes = long_threshold; + }; + condition = { + condition = "and"; + conditions = [ + { condition = "state"; + entity_id = "group.team"; + state = "home"; + } + { condition = "time"; + after = "06:00:00"; + before = "20:00:00"; + } + ]; + }; + + action = [ + { service = "homeassistant.turn_on"; + entity_id = [ + "script.schlechteluft" + ]; + } + { service = "tts.google_say"; + entity_id = "media_player.mpd"; + data_template = { + message = "BEEP BEEP - Die luft ist schon ${toString long_threshold} Minuten schlecht! Student Nummer {{ range(1,500) | random }}, öffne ein Fenster."; + language = "de"; + }; + } { service = "notify.matrix_notify"; - data_template.message = "Bad Air Alarm! VOC above threshold for ${toString secs} seconds ({{states.sensor.air_quality.state_with_unit}})"; + data_template.message = "Schlechte Luft Alarm seit ${toString long_threshold} Minuten ({{states.sensor.air_quality.state_with_unit}})!"; } ]; } -- cgit v1.2.3