From 7351675feb9d1fca70d583d0fc6601137ea08a0f Mon Sep 17 00:00:00 2001 From: makefu Date: Wed, 17 Mar 2021 20:03:16 +0100 Subject: ma bureautomation: prototype philosophische-tuer --- .../automation/philosophische-tuer.nix | 128 ++++++++++----------- 1 file changed, 59 insertions(+), 69 deletions(-) (limited to 'makefu/2configs/bureautomation') diff --git a/makefu/2configs/bureautomation/automation/philosophische-tuer.nix b/makefu/2configs/bureautomation/automation/philosophische-tuer.nix index 9ccb81348..8c3fed6de 100644 --- a/makefu/2configs/bureautomation/automation/philosophische-tuer.nix +++ b/makefu/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"; + 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"; + }; + } + { delay.seconds = 5; } + { service = "media_extractor.play_media"; + entity_id = "media_player.mpd"; + data_template = { + 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"; + } + ]; } - { delay.seconds = 5; } - { service = "media_extractor.play_media"; - entity_id = "media_player.mpd"; - data_template = { - media_content_id = random_tuerspruch; - media_content_type = "MUSIC"; + { + 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"; + }; + } + ]; } ]; }; - 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" - ]; - } - ]; - } - { - 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"; - 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"; - }; - } - ]; - } - ]; } -- cgit v1.2.3 From 3c2c66901119ab003f2cab80d0352c0e9f3d4d65 Mon Sep 17 00:00:00 2001 From: makefu Date: Wed, 17 Mar 2021 20:04:13 +0100 Subject: ma bureautomation: fix runtime issues --- makefu/2configs/bureautomation/default.nix | 133 ++++----------------- .../bureautomation/device_tracker/openwrt.nix | 1 - makefu/2configs/bureautomation/sensor/outside.nix | 13 +- 3 files changed, 28 insertions(+), 119 deletions(-) (limited to 'makefu/2configs/bureautomation') diff --git a/makefu/2configs/bureautomation/default.nix b/makefu/2configs/bureautomation/default.nix index 7ac90f5c5..7eb297879 100644 --- a/makefu/2configs/bureautomation/default.nix +++ b/makefu/2configs/bureautomation/default.nix @@ -56,7 +56,11 @@ in { package = (unstable.home-assistant.overrideAttrs (old: { doInstallCheck = false; })).override { - extraPackages = p: [ p.APScheduler ]; + extraPackages = p: [ + # TODO: put somewhere else + (p.callPackage {}) + (p.callPackage {}) + p.APScheduler ]; }; autoExtraComponents = true; config = { @@ -119,13 +123,13 @@ in { name = "wbob-kodi"; host = kodi-host; } - { - platform = "telegram"; - name = "telegrambot"; - chat_id = builtins.elemAt - (builtins.fromJSON (builtins.readFile - )).allowed_chat_ids 0; - } + #{ + # platform = "telegram"; + # name = "telegrambot"; + # chat_id = builtins.elemAt + # (builtins.fromJSON (builtins.readFile + # )).allowed_chat_ids 0; + #} ]; media_player = [ { platform = "kodi"; @@ -136,7 +140,7 @@ in { } ]; - sensor = [{ platform = "version"; }]; # pyhaversion + # sensor = [{ platform = "version"; }]; # pyhaversion @@ -158,113 +162,16 @@ in { api_key = builtins.readFile ; language = "de-de"; } - { platform = "picotts"; - language = "de-DE"; - } + #{ platform = "picotts"; + # language = "de-DE"; + #} ]; recorder = {}; sun = {}; - telegram_bot = [ - (builtins.fromJSON - (builtins.readFile )) - ]; - group = - { default_view = - { view = "yes"; - entities = [ - "group.sensors" - "group.camera" - "group.outside" - "group.team" - "group.nachtlicht" - "group.switches" - "group.aramark" - ]; - }; - automation = []; - - switches = [ - "switch.bauarbeiterlampe" - "switch.blitzdings" - "switch.fernseher" - "switch.feuer" - "switch.frosch_blasen" - "light.status_felix" - # "light.status_daniel" - # "light.buslicht" - ]; - team = [ - "person.thorsten" - #"device_tracker.thorsten_phone" - "person.felix" - "person.ecki" - "person.daniel" - # "person.carsten" - "person.thierry" - "person.frank" - "person.emeka" - "person.tancrede" - #"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" - # "person.daniel" - ]; - camera = [ - "camera.Baumarkt" - "camera.Autobahn_Heilbronn" - "camera.Autobahn_Singen" - "camera.puppies" - "camera.poorly_drawn_lines" - "camera.xkcd" - ]; - nachtlicht = [ - "switch.nachtlicht_a" - "switch.nachtlicht_b" - "switch.nachtlicht_c" - "switch.nachtlicht_d" - ]; - Aramark = [ - "binary_sensor.pommes" - "sensor.menu_1" - "sensor.menu_1_text" - "sensor.menu_1_preis" - "sensor.menu_2" - "sensor.menu_2_text" - "sensor.menu_2_preis" - "sensor.aktion" - "sensor.aktion_text" - "sensor.aktion_preis" - "sensor.mercato" - "sensor.mercato_text" - "sensor.mercato_preis" - ]; - sensors = [ - "media_player.kodi" - "timer.felix_10h" - "timer.frank_10h" - "sensor.easy2_dht22_humidity" - "sensor.easy2_dht22_temperature" - "sensor.air_quality" - # "binary_sensor.aramark_pommes" - # "binary_sensor.redbutton" - ]; - outside = [ - # "sensor.ditzingen_pm10" - # "sensor.ditzingen_pm25" - "sensor.dark_sky_temperature" - "sensor.dark_sky_humidity" - "sensor.dark_sky_uv_index" - # "sensor.dark_sky_pressure" - "sensor.dark_sky_hourly_summary" - ]; - }; + #telegram_bot = [ + # (builtins.fromJSON + # (builtins.readFile )) + #]; # only for automation # feedreader.urls = [ "http://www.heise.de/security/rss/news-atom.xml" ]; # we don't use imports because the expressions do not merge in diff --git a/makefu/2configs/bureautomation/device_tracker/openwrt.nix b/makefu/2configs/bureautomation/device_tracker/openwrt.nix index 6b0144129..b597548ef 100644 --- a/makefu/2configs/bureautomation/device_tracker/openwrt.nix +++ b/makefu/2configs/bureautomation/device_tracker/openwrt.nix @@ -12,7 +12,6 @@ consider_home = 300; # 5 minutes timeout new_device_defaults = { track_new_devices = true; - hide_if_away = false; }; } ]; diff --git a/makefu/2configs/bureautomation/sensor/outside.nix b/makefu/2configs/bureautomation/sensor/outside.nix index b5d25ecd3..e7b4d9a7c 100644 --- a/makefu/2configs/bureautomation/sensor/outside.nix +++ b/makefu/2configs/bureautomation/sensor/outside.nix @@ -20,10 +20,13 @@ units = "si" ; scan_interval = "00:30:00"; } - { platform = "luftdaten"; - name = "Ditzingen"; - sensorid = "5341"; - monitored_conditions = [ "P1" "P2" ]; - } ]; + services.home-assistant.config.luftdaten = { + sensor_id = "26237"; + show_on_map = true; + sensors.monitored_conditions = [ + "P1" + "P2" + ]; + }; } -- cgit v1.2.3