From 872b810069c2e8b3f89ef5fcbac510b5f80697b3 Mon Sep 17 00:00:00 2001
From: makefu <github@syntax-fehler.de>
Date: Wed, 17 Mar 2021 20:03:16 +0100
Subject: [PATCH]  ma bureautomation: prototype philosophische-tuer

---
 .../automation/philosophische-tuer.nix        | 130 ++++++++----------
 1 file changed, 60 insertions(+), 70 deletions(-)

diff --git a/2configs/bureautomation/automation/philosophische-tuer.nix b/2configs/bureautomation/automation/philosophische-tuer.nix
index 9ccb813..8c3fed6 100644
--- a/2configs/bureautomation/automation/philosophische-tuer.nix
+++ b/2configs/bureautomation/automation/philosophische-tuer.nix
@@ -16,93 +16,83 @@ let
     sha256 = "0bm0697fyf6s05c6yw6y25cyck04rlxj1dgazkq8mfqk6756v2bq";
   };
   samples = user: lib.mapAttrsToList
-    (file: _: ''"${prefix}/${name}/${user}/${file}"'')
+    (file: _: ''"${prefix}/${user}/${file}"'')
     (builtins.readDir (toString ( recordrepo+ "/recordings/${user}")));
   random_tuerspruch = ''{{'' + (lib.concatStringsSep "," ((samples "Felix") ++ (samples "Sofia") ++ (samples "Markus"))) + ''| random}}''; # TODO read from derivation
 in
 {
-  systemd.tmpfiles.rules = [
-    "d ${audiodir} - hass hass - -"
-  ];
-
   systemd.services.copy-philosophische-tuersounds = {
     description = "copy philosophische tuer";
     wantedBy = [ "multi-user.target"  ];
     serviceConfig = {
       Type = "oneshot";
-      User = "hass";
-      WorkingDirectory = audiodir;
       ExecStart = pkgs.writeDash "update-samples" ''
-        cp -vr ${recordrepo} ${audiodir}
+        rm -rf "${audiodir}"
+        cp -vr "${recordrepo}/recordings" "${audiodir}"
       '';
     };
   };
-
-  services.home-assistant.config.media_extractor = { };
-  services.home-assistant.config.script."philosophische_tuer" = {
-    alias = "Durchsage der philosophischen Tür";
-    sequence = [
-      { service = "media_player.play_media";
-        data = {
-          entity_id = "media_player.mpd";
-          media_content_type = "playlist";
-          media_content_id = "ansage";
-        };
-      }
-      { delay.seconds = 5; }
-      { service = "media_extractor.play_media";
-        entity_id =  "media_player.mpd";
-        data_template = {
-          media_content_id = random_tuerspruch;
-          media_content_type = "MUSIC";
-        };
-      }
-    ];
-  };
-  services.home-assistant.config.automation =
-  [
-    {
-      alias = "Tür offen seit ${toString short_threshold} sekunden";
-      trigger =
-      { platform = "state";
-        entity_id = sensor;
-        to = "on";
-        for.seconds = 60;
-      };
-      condition = { };
-
-      action = [
-        { service = "homeassistant.turn_on";
-          entity_id = [
-            "script.philosophische_tuer"
-          ];
+  services.home-assistant.config = {
+    media_extractor = { };
+    script."philosophische_tuer" = {
+      alias = "Durchsage der philosophischen Tür";
+      sequence = [
+        { service = "media_player.play_media";
+          data = {
+            entity_id = "media_player.mpd";
+            media_content_type = "playlist";
+            media_content_id = "ansage";
+          };
         }
-      ];
-    }
-    {
-      alias = "Tür offen seit ${toString long_threshold} minuten";
-      trigger =
-      { platform = "state";
-        entity_id = sensor;
-        to = "on";
-        for.minutes = long_threshold;
-      };
-      condition = { };
-
-      action = [
-        { service = "homeassistant.turn_on";
-          entity_id = [
-            "script.philosophische_tuer"
-          ];
-        }
-        { service = "tts.google_say";
+        { delay.seconds = 5; }
+        { service = "media_extractor.play_media";
           entity_id =  "media_player.mpd";
           data_template = {
-            message = "BEEP BOOP - Die Tür ist schon seit ${toString long_threshold} Minuten offen! Student Nummer {{ range(1,500) | random }}, bitte schliesse die Tür";
-            language = "de";
+            media_content_id = random_tuerspruch;
+            media_content_type = "MUSIC";
           };
         }
       ];
-    }
-  ];
+    };
+    automation =
+    [
+      {
+        alias = "Tür offen seit ${toString short_threshold} sekunden";
+        trigger =
+        { platform = "state";
+          entity_id = sensor;
+          to = "on";
+          for.seconds = 60;
+        };
+        action = [
+          { service = "homeassistant.turn_on";
+            entity_id = "script.philosophische_tuer";
+          }
+        ];
+      }
+      {
+        alias = "Tür offen seit ${toString long_threshold} minuten";
+        trigger =
+        { platform = "state";
+          entity_id = sensor;
+          to = "on";
+          for.minutes = long_threshold;
+        };
+
+        action = [
+          { service = "homeassistant.turn_on";
+            entity_id = "script.philosophische_tuer" ;
+          }
+          { service = "tts.google_say";
+            entity_id =  "media_player.mpd";
+            data_template = {
+              message = "BEEP BOOP - Die Tür ist schon seit ${toString long_threshold} Minuten offen! Student Nummer {{ range(1,500) | random }}, bitte schliesse die Tür";
+              language = "de";
+            };
+          }
+        ];
+      }
+    ];
+  };
+
 }