summaryrefslogtreecommitdiffstats
path: root/makefu/2configs/bureautomation
diff options
context:
space:
mode:
Diffstat (limited to 'makefu/2configs/bureautomation')
-rw-r--r--makefu/2configs/bureautomation/automation/philosophische-tuer.nix128
-rw-r--r--makefu/2configs/bureautomation/default.nix133
-rw-r--r--makefu/2configs/bureautomation/device_tracker/openwrt.nix1
-rw-r--r--makefu/2configs/bureautomation/sensor/outside.nix13
4 files changed, 87 insertions, 188 deletions
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";
- };
- }
- ];
- }
- ];
}
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 <stockholm/makefu/2configs/home/ham/deps/dwdwfsapi.nix> {})
+ (p.callPackage <stockholm/makefu/2configs/home/ham/deps/pykodi.nix> {})
+ 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
- <secrets/hass/telegram-bot.json>)).allowed_chat_ids 0;
- }
+ #{
+ # platform = "telegram";
+ # name = "telegrambot";
+ # chat_id = builtins.elemAt
+ # (builtins.fromJSON (builtins.readFile
+ # <secrets/hass/telegram-bot.json>)).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 <secrets/hass/voicerss.apikey>;
language = "de-de";
}
- { platform = "picotts";
- language = "de-DE";
- }
+ #{ platform = "picotts";
+ # language = "de-DE";
+ #}
];
recorder = {};
sun = {};
- telegram_bot = [
- (builtins.fromJSON
- (builtins.readFile <secrets/hass/telegram-bot.json>))
- ];
- 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 <secrets/hass/telegram-bot.json>))
+ #];
# 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"
+ ];
+ };
}