From ae8dede5f875042eba73f0035f20defb55cfc97f Mon Sep 17 00:00:00 2001
From: makefu <github@syntax-fehler.de>
Date: Tue, 5 Nov 2019 23:01:37 +0100
Subject: [PATCH] ma bureautomation: add frosch,daily-standup

---
 makefu/2configs/bureautomation/default.nix    | 84 +++++++++++--------
 .../bureautomation/multi/10h_timers.nix       |  4 +-
 .../bureautomation/multi/daily-standup.nix    | 54 ++++++++++++
 .../2configs/bureautomation/multi/frosch.nix  |  2 +-
 4 files changed, 107 insertions(+), 37 deletions(-)
 create mode 100644 makefu/2configs/bureautomation/multi/daily-standup.nix

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",