From ae8dede5f875042eba73f0035f20defb55cfc97f Mon Sep 17 00:00:00 2001 From: makefu Date: Tue, 5 Nov 2019 23:01:37 +0100 Subject: ma bureautomation: add frosch,daily-standup --- makefu/2configs/bureautomation/default.nix | 84 +++++++++++++--------- .../2configs/bureautomation/multi/10h_timers.nix | 4 +- .../bureautomation/multi/daily-standup.nix | 54 ++++++++++++++ makefu/2configs/bureautomation/multi/frosch.nix | 2 +- 4 files changed, 107 insertions(+), 37 deletions(-) create mode 100644 makefu/2configs/bureautomation/multi/daily-standup.nix (limited to 'makefu/2configs') diff --git a/makefu/2configs/bureautomation/default.nix b/makefu/2configs/bureautomation/default.nix index e07e0ddf0..c55bc1d14 100644 --- a/makefu/2configs/bureautomation/default.nix +++ b/makefu/2configs/bureautomation/default.nix @@ -4,7 +4,9 @@ let ten_hours = import ./multi/10h_timers.nix { inherit lib; }; # provides: timer automation script mittagessen = import ./multi/mittagessen.nix { inherit lib; }; # provides: automation script matrix = import ./multi/matrix.nix { inherit lib; }; # provides: matrix automation - aramark = import ./multi/aramark.nix { inherit lib; }; # provides: pommes sensor + frosch = import ./multi/frosch.nix { inherit lib; }; # provides: sensor binary_sensor switch light script automation + aramark = import ./multi/aramark.nix { inherit lib; }; # provides: sensor binary_sensor + standup = import ./multi/daily-standup.nix { inherit lib; }; # provides: automation script in { imports = [ ./ota.nix @@ -88,10 +90,12 @@ in { retain = true; }; }; - switch = (import ./switch/tasmota_switch.nix) ++ - (import ./switch/rfbridge.nix); - light = (import ./light/statuslight.nix) ++ - (import ./light/buzzer.nix); + switch = (import ./switch/tasmota_switch.nix) + ++ frosch.switch + ++ (import ./switch/rfbridge.nix); + light = (import ./light/statuslight.nix) + ++ (import ./light/buzzer.nix) + ++ frosch.light; timer = ten_hours.timer; notify = [ { @@ -117,31 +121,34 @@ in { ]; script = lib.fold lib.recursiveUpdate {} [ ((import ./script/multi_blink.nix) {inherit lib;}) + frosch.script ten_hours.script mittagessen.script + standup.script ]; binary_sensor = - (import ./binary_sensor/buttons.nix) ++ - (import ./binary_sensor/motion.nix) ++ - aramark.binary_sensor; + (import ./binary_sensor/buttons.nix) + ++ (import ./binary_sensor/motion.nix) + ++ frosch.binary_sensor + ++ aramark.binary_sensor; sensor = # [{ platform = "version"; }] ++ # pyhaversion - (import ./sensor/pollen.nix) ++ - (import ./sensor/espeasy.nix) ++ - (import ./sensor/airquality.nix) ++ - ((import ./sensor/outside.nix) {inherit lib;}) ++ - (import ./sensor/influxdb.nix) ++ - (import ./sensor/tasmota_firmware.nix) ++ - aramark.sensor; + (import ./sensor/pollen.nix) + ++ (import ./sensor/espeasy.nix) + ++ (import ./sensor/airquality.nix) + ++ ((import ./sensor/outside.nix) {inherit lib;}) + ++ (import ./sensor/influxdb.nix) + ++ (import ./sensor/tasmota_firmware.nix) + ++ frosch.sensor + ++ aramark.sensor; camera = (import ./camera/verkehrskamera.nix) ++ (import ./camera/comic.nix); - # not yet released - #person = - # (import ./person/team.nix ); + person = + (import ./person/team.nix ); frontend = { }; http = { @@ -196,13 +203,22 @@ in { "light.buslicht" ]; team = [ - "device_tracker.thorsten_phone" - "device_tracker.felix_phone" - "device_tracker.ecki_tablet" - "device_tracker.daniel_phone" - "device_tracker.carsten_phone" - "device_tracker.thierry_phone" - "device_tracker.frank_phone" + "person.thorsten" + #"device_tracker.thorsten_phone" + "person.felix" + "person.ecki" + "person.daniel" + # "person.carsten" + "person.thierry" + "person.frank" + "person.emeka" + #"device_tracker.felix_phone" + #"device_tracker.ecki_tablet" + #"device_tracker.daniel_phone" + #"device_tracker.carsten_phone" + #"device_tracker.thierry_phone" + #"device_tracker.frank_phone" + #"device_tracker.emeka_phone" # "person.thorsten" # "person.felix" # "person.ecki" @@ -237,8 +253,6 @@ in { ]; sensors = [ "media_player.kodi" - "script.blitz_10s" - "script.buzz_red_led_fast" "timer.felix_10h" "timer.frank_10h" "sensor.easy2_dht22_humidity" @@ -262,13 +276,15 @@ in { # feedreader.urls = [ "http://www.heise.de/security/rss/news-atom.xml" ]; # we don't use imports because the expressions do not merge in # home-assistant - automation = (import ./automation/bureau-shutdown.nix) ++ - (import ./automation/nachtlicht.nix) ++ - (import ./automation/schlechteluft.nix) ++ - (import ./automation/hass-restart.nix) ++ - ten_hours.automation ++ - matrix.automation ++ - mittagessen.automation; + automation = (import ./automation/bureau-shutdown.nix) + ++ (import ./automation/nachtlicht.nix) + ++ (import ./automation/schlechteluft.nix) + ++ (import ./automation/hass-restart.nix) + ++ ten_hours.automation + ++ matrix.automation + ++ standup.automation + ++ frosch.automation + ++ mittagessen.automation; device_tracker = (import ./device_tracker/openwrt.nix ); }; }; diff --git a/makefu/2configs/bureautomation/multi/10h_timers.nix b/makefu/2configs/bureautomation/multi/10h_timers.nix index 8cdaa8cfd..73709e738 100644 --- a/makefu/2configs/bureautomation/multi/10h_timers.nix +++ b/makefu/2configs/bureautomation/multi/10h_timers.nix @@ -122,7 +122,7 @@ let trigger = { platform = "state"; # TODO: ecki - entity_id = [ "device_tracker.${name}_phone"]; + entity_id = [ "person.${name}"]; from = "not_home"; to = "home"; }; @@ -166,7 +166,7 @@ let condition = { condition = "state"; - entity_id = "device_tracker.${name}_phone"; + entity_id = "person.${name}"; state = "home"; }; diff --git a/makefu/2configs/bureautomation/multi/daily-standup.nix b/makefu/2configs/bureautomation/multi/daily-standup.nix new file mode 100644 index 000000000..f5bd85b9d --- /dev/null +++ b/makefu/2configs/bureautomation/multi/daily-standup.nix @@ -0,0 +1,54 @@ +{ lib }: +let + random_daily_text = ''{{ [ + "Es ist so weit, es ist Standup Zeit!", + "Zehn Uhr Fünfunddreissig ist genau die richtige Zeit für ein Standup!", + "Hat jeder seine Hausaufgaben gemacht? Bitte einmal aufstehen und den Zettel nach rechts geben", + "Aufstehen zum Appell, es wird die Anwesenheit kontrolliert!", + "Hallo Kinder, wisst ihr welche Zeit es ist??? ... Genau! ... Standup Zeit!", + "Morgens, halb elf in Deutschland - das Standupchen" ] | random }}''; + +in { + script = + { "random_daily" = { + alias = "Random Daily Introduction"; + + sequence = [ + { service = "media_player.play_media"; + data = { + entity_id = "media_player.mpd"; + media_content_type = "playlist"; + media_content_id = "ansage"; + }; + } + { delay.seconds = 5; } + { service = "tts.google_say"; + entity_id = "media_player.mpd"; + data_template = { + message = random_daily_text; + language = "de"; + }; + } + ]; + }; + }; + automation = [ + { + alias = "Daily Standup"; + trigger = { + platform = "time"; + at = "10:35:00"; + }; + action = + [ + { service = "homeassistant.turn_on"; + entity_id = [ + "script.blitz_10s" + "script.random_daily" + ]; + } + ]; + + } + ]; +} diff --git a/makefu/2configs/bureautomation/multi/frosch.nix b/makefu/2configs/bureautomation/multi/frosch.nix index de93ce2b7..c0e267b69 100644 --- a/makefu/2configs/bureautomation/multi/frosch.nix +++ b/makefu/2configs/bureautomation/multi/frosch.nix @@ -1,6 +1,6 @@ { lib }: +# needs: binary_sensor.pommes let - random_pommes = '' {{ [ "Nur ein Pommes Tag ist ein guter Tag", "Schaut wie schön sie fliegen, die Pommes Seifenblasen", -- cgit v1.2.3