summaryrefslogtreecommitdiffstats
path: root/makefu
diff options
context:
space:
mode:
authormakefu <github@syntax-fehler.de>2020-11-18 20:50:43 +0100
committermakefu <github@syntax-fehler.de>2020-11-18 20:51:14 +0100
commita54974412751c98dec78b5e3977afc4a97aadea9 (patch)
treea096472a2c762f04a67a795a922f26259517dd7a /makefu
parentf66309f0289c76dc9797573a73acbad186f4e380 (diff)
ma bureautomation: move to 20.09 style imports
Diffstat (limited to 'makefu')
-rw-r--r--makefu/2configs/bureautomation/automation/bureau-shutdown.nix157
-rw-r--r--makefu/2configs/bureautomation/automation/hass-restart.nix65
-rw-r--r--makefu/2configs/bureautomation/automation/nachtlicht.nix71
-rw-r--r--makefu/2configs/bureautomation/automation/schlechteluft.nix130
-rw-r--r--makefu/2configs/bureautomation/binary_sensor/buttons.nix9
-rw-r--r--makefu/2configs/bureautomation/binary_sensor/motion.nix27
-rw-r--r--makefu/2configs/bureautomation/camera/comic.nix23
-rw-r--r--makefu/2configs/bureautomation/camera/stuttgart.nix42
-rw-r--r--makefu/2configs/bureautomation/camera/verkehrskamera.nix31
-rw-r--r--makefu/2configs/bureautomation/default.nix92
-rw-r--r--makefu/2configs/bureautomation/device_tracker/openwrt.nix29
-rw-r--r--makefu/2configs/bureautomation/light/buzzer.nix12
-rw-r--r--makefu/2configs/bureautomation/light/statuslight.nix14
-rw-r--r--makefu/2configs/bureautomation/multi/10h_timers.nix16
-rw-r--r--makefu/2configs/bureautomation/multi/README.md3
-rw-r--r--makefu/2configs/bureautomation/multi/aramark.nix21
-rw-r--r--makefu/2configs/bureautomation/multi/daily-standup.nix83
-rw-r--r--makefu/2configs/bureautomation/multi/frosch.nix158
-rw-r--r--makefu/2configs/bureautomation/multi/matrix.nix106
-rw-r--r--makefu/2configs/bureautomation/multi/mittagessen.nix93
-rw-r--r--makefu/2configs/bureautomation/person/team.nix147
-rw-r--r--makefu/2configs/bureautomation/script/multi_blink.nix73
-rw-r--r--makefu/2configs/bureautomation/sensor/airquality.nix21
-rw-r--r--makefu/2configs/bureautomation/sensor/espeasy.nix12
-rw-r--r--makefu/2configs/bureautomation/sensor/influxdb.nix18
-rw-r--r--makefu/2configs/bureautomation/sensor/outside.nix54
-rw-r--r--makefu/2configs/bureautomation/sensor/tasmota_firmware.nix5
-rw-r--r--makefu/2configs/bureautomation/switch/rfbridge.nix16
-rw-r--r--makefu/2configs/bureautomation/switch/tasmota_switch.nix17
29 files changed, 794 insertions, 751 deletions
diff --git a/makefu/2configs/bureautomation/automation/bureau-shutdown.nix b/makefu/2configs/bureautomation/automation/bureau-shutdown.nix
index b9aa710c3..f4c10adc8 100644
--- a/makefu/2configs/bureautomation/automation/bureau-shutdown.nix
+++ b/makefu/2configs/bureautomation/automation/bureau-shutdown.nix
@@ -1,84 +1,87 @@
-[
- { alias = "Turn on Fernseher on group home";
- trigger = {
- platform = "state";
- entity_id = "group.team";
- from = "not_home";
- to = "home";
- for.seconds = 30;
- };
- action = [
- {
- service = "homeassistant.turn_on";
- entity_id = [
- "switch.fernseher"
- "switch.feuer"
- ];
- }
- {
- service = "media_player.kodi_call_method";
- data = {
- entity_id = "media_player.kodi";
- method = "Player.Open";
- item.partymode = "music";
- };
- }
- {
- service = "notify.telegrambot";
- data = {
- title = "Bureau Startup";
- message = "Das Büro wurde eröffnet";
- };
- }
- ];
- }
- { alias = "Turn off Fernseher after last in group left";
- trigger = [
- { # trigger when movement was detected at the time
+{
+ services.home-assistant.config.automation =
+ [
+ { alias = "Turn on Fernseher on group home";
+ trigger = {
platform = "state";
entity_id = "group.team";
- from = "home";
- to = "not_home";
- }
- { # trigger at 18:00 no matter what
- # to avoid 'everybody left before 18:00:00'
- platform = "time";
- at = "18:00:00";
- }
- ];
- action = [
- {
- service = "homeassistant.turn_off";
- entity_id = [
- "switch.fernseher"
- "switch.feuer"
- "light.status_felix"
- "light.status_daniel"
- ];
- }
- {
- service = "notify.telegrambot";
- data_template = {
- title = "Bureau Shutdown";
- message = "All devices are turned off due to {{ trigger.platform }}";
- };
- }
- ];
- condition =
- { condition = "and";
- conditions = [
+ from = "not_home";
+ to = "home";
+ for.seconds = 30;
+ };
+ action = [
+ {
+ service = "homeassistant.turn_on";
+ entity_id = [
+ "switch.fernseher"
+ "switch.feuer"
+ ];
+ }
{
- condition = "time";
- before = "06:30:00"; #only turn off between 6:30 and 18:00
- after = "18:00:00";
- # weekday = [ "mon" "tue" "wed" "thu" "fri" ];
+ service = "media_player.kodi_call_method";
+ data = {
+ entity_id = "media_player.kodi";
+ method = "Player.Open";
+ item.partymode = "music";
+ };
}
- { # if anybody is still there
- condition = "state";
+ {
+ service = "notify.telegrambot";
+ data = {
+ title = "Bureau Startup";
+ message = "Das Büro wurde eröffnet";
+ };
+ }
+ ];
+ }
+ { alias = "Turn off Fernseher after last in group left";
+ trigger = [
+ { # trigger when movement was detected at the time
+ platform = "state";
entity_id = "group.team";
- state = "not_home";
+ from = "home";
+ to = "not_home";
+ }
+ { # trigger at 18:00 no matter what
+ # to avoid 'everybody left before 18:00:00'
+ platform = "time";
+ at = "18:00:00";
}
];
- };
- }
-]
+ action = [
+ {
+ service = "homeassistant.turn_off";
+ entity_id = [
+ "switch.fernseher"
+ "switch.feuer"
+ "light.status_felix"
+ "light.status_daniel"
+ ];
+ }
+ {
+ service = "notify.telegrambot";
+ data_template = {
+ title = "Bureau Shutdown";
+ message = "All devices are turned off due to {{ trigger.platform }}";
+ };
+ }
+ ];
+ condition =
+ { condition = "and";
+ conditions = [
+ {
+ condition = "time";
+ before = "06:30:00"; #only turn off between 6:30 and 18:00
+ after = "18:00:00";
+ # weekday = [ "mon" "tue" "wed" "thu" "fri" ];
+ }
+ { # if anybody is still there
+ condition = "state";
+ entity_id = "group.team";
+ state = "not_home";
+ }
+ ];
+ };
+ }
+ ];
+}
diff --git a/makefu/2configs/bureautomation/automation/hass-restart.nix b/makefu/2configs/bureautomation/automation/hass-restart.nix
index be16f6966..3b3ce0599 100644
--- a/makefu/2configs/bureautomation/automation/hass-restart.nix
+++ b/makefu/2configs/bureautomation/automation/hass-restart.nix
@@ -1,31 +1,34 @@
-[
- { alias = "State on HA start-up";
- trigger = {
- platform = "homeassistant";
- event = "start";
- };
- action = [
- # Startup State
- { service = "mqtt.publish";
- data = {
- topic = "/bam/sonoffs/cmnd/state";
- payload = "";
- };
- }
- # Firmware Version
- { service = "mqtt.publish";
- data = {
- topic = "/bam/sonoffs/cmnd/status";
- payload = "2";
- };
- }
- # Will trigger restart of all devices!
- #{ service = "mqtt.publish";
- # data = {
- # topic = "sonoffs/cmnd/SetOption59"; # configure sending state on power change
- # payload = "1";
- # };
- #}
- ];
- }
-]
+{
+ services.home-assistant.config.automation =
+ [
+ { alias = "State on HA start-up";
+ trigger = {
+ platform = "homeassistant";
+ event = "start";
+ };
+ action = [
+ # Startup State
+ { service = "mqtt.publish";
+ data = {
+ topic = "/bam/sonoffs/cmnd/state";
+ payload = "";
+ };
+ }
+ # Firmware Version
+ { service = "mqtt.publish";
+ data = {
+ topic = "/bam/sonoffs/cmnd/status";
+ payload = "2";
+ };
+ }
+ # Will trigger restart of all devices!
+ #{ service = "mqtt.publish";
+ # data = {
+ # topic = "sonoffs/cmnd/SetOption59"; # configure sending state on power change
+ # payload = "1";
+ # };
+ #}
+ ];
+ }
+ ];
+}
diff --git a/makefu/2configs/bureautomation/automation/nachtlicht.nix b/makefu/2configs/bureautomation/automation/nachtlicht.nix
index ec6fa20c7..ade89418d 100644
--- a/makefu/2configs/bureautomation/automation/nachtlicht.nix
+++ b/makefu/2configs/bureautomation/automation/nachtlicht.nix
@@ -1,35 +1,38 @@
-[
- # TODO: trigger if it is before dusk and somebody arives but nachtlichter are
- # off from last day
- # TODO: do not have nachtlicht turned on at night
- {
- alias = "Turn on Nachtlicht at dusk"; # when it gets dim
- trigger =
- { platform = "numeric_state";
- entity_id = "sun.sun";
- value_template = "{{ state.attributes.elevation }}";
- below = 10;
+{
+ services.home-assistant.config.automation =
+ [
+ # TODO: trigger if it is before dusk and somebody arives but nachtlichter are
+ # off from last day
+ # TODO: do not have nachtlicht turned on at night
+ {
+ alias = "Turn on Nachtlicht at dusk"; # when it gets dim
+ trigger =
+ { platform = "numeric_state";
+ entity_id = "sun.sun";
+ value_template = "{{ state.attributes.elevation }}";
+ below = 10;
- };
- action =
- { service = "homeassistant.turn_on";
- entity_id = [ "group.nachtlicht" ];
- };
- }
- {
- alias = "Turn off Nachtlicht at dawn";
- trigger =
- { platform = "sun";
- event = "sunrise";
- offset = "01:30:00"; # on dawn
- };
- # TODO: when somebody is still in the buero
- # condition =
- #{
- #};
- action =
- { service = "homeassistant.turn_off";
- entity_id = [ "group.nachtlicht" ];
- };
- }
-]
+ };
+ action =
+ { service = "homeassistant.turn_on";
+ entity_id = [ "group.nachtlicht" ];
+ };
+ }
+ {
+ alias = "Turn off Nachtlicht at dawn";
+ trigger =
+ { platform = "sun";
+ event = "sunrise";
+ offset = "01:30:00"; # on dawn
+ };
+ # TODO: when somebody is still in the buero
+ # condition =
+ #{
+ #};
+ action =
+ { service = "homeassistant.turn_off";
+ entity_id = [ "group.nachtlicht" ];
+ };
+ }
+ ];
+}
diff --git a/makefu/2configs/bureautomation/automation/schlechteluft.nix b/makefu/2configs/bureautomation/automation/schlechteluft.nix
index 370334743..ea1d44515 100644
--- a/makefu/2configs/bureautomation/automation/schlechteluft.nix
+++ b/makefu/2configs/bureautomation/automation/schlechteluft.nix
@@ -1,71 +1,75 @@
let
long_threshold = 30;
-in [
- {
- alias = "Bad Air Alarm 60 seconds";
- trigger =
- { platform = "numeric_state";
- entity_id = "sensor.air_quality";
- above = 1523;
- for.seconds = 60;
- };
- condition = {
- condition = "and";
- conditions = [
- { condition = "state";
- entity_id = "group.team";
- state = "home";
- }
- { condition = "time";
- after = "06:00:00";
- before = "20:00:00";
+in
+{
+ services.home-assistant.config.automation =
+ [
+ {
+ alias = "Bad Air Alarm 60 seconds";
+ trigger =
+ { platform = "numeric_state";
+ entity_id = "sensor.air_quality";
+ above = 1523;
+ for.seconds = 60;
+ };
+ condition = {
+ condition = "and";
+ conditions = [
+ { condition = "state";
+ entity_id = "group.team";
+ state = "home";
+ }
+ { condition = "time";
+ after = "06:00:00";
+ before = "20:00:00";
+ }
+ ];
+ };
+
+ action = [
+ { service = "homeassistant.turn_on";
+ entity_id = [
+ "script.schlechteluft"
+ ];
}
];
- };
-
- action = [
- { service = "homeassistant.turn_on";
- entity_id = [
- "script.schlechteluft"
+ }
+ {
+ alias = "Bad Air Alarm ${toString long_threshold} Minutes";
+ trigger =
+ { platform = "numeric_state";
+ entity_id = "sensor.air_quality";
+ above = 1523;
+ for.minutes = long_threshold;
+ };
+ condition = {
+ condition = "and";
+ conditions = [
+ { condition = "state";
+ entity_id = "group.team";
+ state = "home";
+ }
+ { condition = "time";
+ after = "06:00:00";
+ before = "20:00:00";
+ }
];
- }
- ];
- }
- {
- alias = "Bad Air Alarm ${toString long_threshold} Minutes";
- trigger =
- { platform = "numeric_state";
- entity_id = "sensor.air_quality";
- above = 1523;
- for.minutes = long_threshold;
- };
- condition = {
- condition = "and";
- conditions = [
- { condition = "state";
- entity_id = "group.team";
- state = "home";
+ };
+
+ action = [
+ { service = "homeassistant.turn_on";
+ entity_id = [
+ "script.schlechteluft"
+ ];
}
- { condition = "time";
- after = "06:00:00";
- before = "20:00:00";
+ { service = "tts.google_say";
+ entity_id = "media_player.mpd";
+ data_template = {
+ message = "BEEP BEEP - Die luft ist schon ${toString long_threshold} Minuten schlecht! Student Nummer {{ range(1,500) | random }}, öffne ein Fenster.";
+ language = "de";
+ };
}
];
- };
-
- action = [
- { service = "homeassistant.turn_on";
- entity_id = [
- "script.schlechteluft"
- ];
- }
- { service = "tts.google_say";
- entity_id = "media_player.mpd";
- data_template = {
- message = "BEEP BEEP - Die luft ist schon ${toString long_threshold} Minuten schlecht! Student Nummer {{ range(1,500) | random }}, öffne ein Fenster.";
- language = "de";
- };
- }
- ];
- }
-]
+ }
+ ];
+}
diff --git a/makefu/2configs/bureautomation/binary_sensor/buttons.nix b/makefu/2configs/bureautomation/binary_sensor/buttons.nix
index e23c4a362..20590a6b3 100644
--- a/makefu/2configs/bureautomation/binary_sensor/buttons.nix
+++ b/makefu/2configs/bureautomation/binary_sensor/buttons.nix
@@ -12,6 +12,9 @@ let
# expire_after = "5"; #expire after 5 seconds
qos = 1;
};
-in [
- (tasmota_button "RedButton" "redbutton")
-]
+in {
+ services.home-assistant.config.binary_sensor =
+ [
+ (tasmota_button "RedButton" "redbutton")
+ ];
+}
diff --git a/makefu/2configs/bureautomation/binary_sensor/motion.nix b/makefu/2configs/bureautomation/binary_sensor/motion.nix
index ad8fab038..0c5a808e0 100644
--- a/makefu/2configs/bureautomation/binary_sensor/motion.nix
+++ b/makefu/2configs/bureautomation/binary_sensor/motion.nix
@@ -1,12 +1,15 @@
-[
- { platform = "mqtt";
- device_class = "motion";
- name = "Motion";
- state_topic = "/bam/easy2/movement/Switch";
- payload_on = "1";
- payload_off = "0";
- availability_topic = "/bam/easy2/tele/LWT";
- payload_available = "Online";
- payload_not_available = "Offline";
- }
-]
+{
+ services.home-assistant.config.binary_sensor =
+ [
+ { platform = "mqtt";
+ device_class = "motion";
+ name = "Motion";
+ state_topic = "/bam/easy2/movement/Switch";
+ payload_on = "1";
+ payload_off = "0";
+ availability_topic = "/bam/easy2/tele/LWT";
+ payload_available = "Online";
+ payload_not_available = "Offline";
+ }
+ ];
+}
diff --git a/makefu/2configs/bureautomation/camera/comic.nix b/makefu/2configs/bureautomation/camera/comic.nix
index a523d032e..ae24760e3 100644
--- a/makefu/2configs/bureautomation/camera/comic.nix
+++ b/makefu/2configs/bureautomation/camera/comic.nix
@@ -1,10 +1,13 @@
-[
- { name = "Poorly Drawn Lines";
- platform = "generic";
- still_image_url = http://127.0.0.1:8123/local/lines.png ;
- }
- { name = "XKCD";
- platform = "generic";
- still_image_url = http://127.0.0.1:8123/local/xkcd.png ;
- }
-]
+{
+ services.home-assistant.config.camera =
+ [
+ { name = "Poorly Drawn Lines";
+ platform = "generic";
+ still_image_url = http://127.0.0.1:8123/local/lines.png ;
+ }
+ { name = "XKCD";
+ platform = "generic";
+ still_image_url = http://127.0.0.1:8123/local/xkcd.png ;
+ }
+ ];
+}
diff --git a/makefu/2configs/bureautomation/camera/stuttgart.nix b/makefu/2configs/bureautomation/camera/stuttgart.nix
index 78cbeb3e2..0badcb285 100644
--- a/makefu/2configs/bureautomation/camera/stuttgart.nix
+++ b/makefu/2configs/bureautomation/camera/stuttgart.nix
@@ -5,22 +5,26 @@ let
inherit name still_image_url;
platform = "generic";
};
-in [
- ( cam "Max-Eyth-See" https://www.wav-stuttgart.de/webcam/_/webcam1.jpg )
- ( cam "Wilhelma" http://webcam.wilhelma.de/webcam02/webcam02.jpg )
- ( cam "Marktplatz" https://webcam.stuttgart.de/wcam007/current.jpg )
- ( cam "Schoch Areal" https://webcam.stuttgart.de/wcam004/current.jpg )
- ( cam "Leuze" https://webcam.stuttgart.de/wcam005/current.jpg )
- ( cam "Straße Wilhelma" https://webcam.stuttgart.de/wcam006/current.jpg )
- ( cam "Fernsehturm 1" http://webcam.fernsehturmstuttgart.com/current.jpg )
- ( cam "Fernsehturm 2" http://webcam.fernsehturmstuttgart.com/current2.jpg )
- ( cam "Feuerbach Lemberg" http://www.regio7.de/handy/current.jpg )
- ( cam "Flughafen Stuttgart 1" http://webcam.flughafen-stuttgart.de/Flughafen_Stuttgart_Webcam2.jpg )
- ( cam "Flughafen Stuttgart 2" http://webcam.flughafen-stuttgart.de/Flughafen_Stuttgart_Webcam5.jpg )
- ( cam "Flughafen Stuttgart 3" http://webcam.flughafen-stuttgart.de/Flughafen_Stuttgart_Webcam7.jpg )
- ( cam "S21 1" http://webcam-bahnprojekt-stuttgart-ulm.de/S21-Turm-03/s21-turm03.jpg )
- ( cam "S21 2" http://webcam-bahnprojekt-stuttgart-ulm.de/S21-Turm-02/s21-turm-02.jpg )
- ( cam "S21 3" http://webcam-bahnprojekt-stuttgart-ulm.de/S21-Turm-01/s21-turm-01.jpg )
- ( cam "S21 4" http://webcam-bahnprojekt-stuttgart-ulm.de/S21-Jaegerstrasse-Nordkopf/s21-jaegerstrassse-nordkopf.jpg )
- ( cam "S21 5" http://webcam-bahnprojekt-stuttgart-ulm.de/S21-Bahndirektion-Nord/S21-Bundesbahndirektion-Nord.jpg )
-]
+in
+{
+ services.home-assistant.config.camera =
+ [
+ ( cam "Max-Eyth-See" https://www.wav-stuttgart.de/webcam/_/webcam1.jpg )
+ ( cam "Wilhelma" http://webcam.wilhelma.de/webcam02/webcam02.jpg )
+ ( cam "Marktplatz" https://webcam.stuttgart.de/wcam007/current.jpg )
+ ( cam "Schoch Areal" https://webcam.stuttgart.de/wcam004/current.jpg )
+ ( cam "Leuze" https://webcam.stuttgart.de/wcam005/current.jpg )
+ ( cam "Straße Wilhelma" https://webcam.stuttgart.de/wcam006/current.jpg )
+ ( cam "Fernsehturm 1" http://webcam.fernsehturmstuttgart.com/current.jpg )
+ ( cam "Fernsehturm 2" http://webcam.fernsehturmstuttgart.com/current2.jpg )
+ ( cam "Feuerbach Lemberg" http://www.regio7.de/handy/current.jpg )
+ ( cam "Flughafen Stuttgart 1" http://webcam.flughafen-stuttgart.de/Flughafen_Stuttgart_Webcam2.jpg )
+ ( cam "Flughafen Stuttgart 2" http://webcam.flughafen-stuttgart.de/Flughafen_Stuttgart_Webcam5.jpg )
+ ( cam "Flughafen Stuttgart 3" http://webcam.flughafen-stuttgart.de/Flughafen_Stuttgart_Webcam7.jpg )
+ ( cam "S21 1" http://webcam-bahnprojekt-stuttgart-ulm.de/S21-Turm-03/s21-turm03.jpg )
+ ( cam "S21 2" http://webcam-bahnprojekt-stuttgart-ulm.de/S21-Turm-02/s21-turm-02.jpg )
+ ( cam "S21 3" http://webcam-bahnprojekt-stuttgart-ulm.de/S21-Turm-01/s21-turm-01.jpg )
+ ( cam "S21 4" http://webcam-bahnprojekt-stuttgart-ulm.de/S21-Jaegerstrasse-Nordkopf/s21-jaegerstrassse-nordkopf.jpg )
+ ( cam "S21 5" http://webcam-bahnprojekt-stuttgart-ulm.de/S21-Bahndirektion-Nord/S21-Bundesbahndirektion-Nord.jpg )
+ ];
+}
diff --git a/makefu/2configs/bureautomation/camera/verkehrskamera.nix b/makefu/2configs/bureautomation/camera/verkehrskamera.nix
index f2dfdcd91..f09dc9423 100644
--- a/makefu/2configs/bureautomation/camera/verkehrskamera.nix
+++ b/makefu/2configs/bureautomation/camera/verkehrskamera.nix
@@ -1,14 +1,17 @@
-[
- { name = "Baumarkt";
- platform = "generic";
- still_image_url = http://t4915209254324-p80-c0-h6jv2afnujcoftrcstsafb45kdrqv4buy.webdirect.mdex.de/oneshotimage ;# baumarkt
- }
- { name = "Autobahn Heilbronn";
- platform = "generic";
- still_image_url = https://api.svz-bw.de/v2/verkehrskameras/kameras/K10 ;
- }
- { name = "Autobahn Singen";
- platform = "generic";
- still_image_url = https://api.svz-bw.de/v2/verkehrskameras/kameras/K11 ;
- }
-]
+{
+ services.home-assistant.config.camera =
+ [
+ { name = "Baumarkt";
+ platform = "generic";
+ still_image_url = http://t4915209254324-p80-c0-h6jv2afnujcoftrcstsafb45kdrqv4buy.webdirect.mdex.de/oneshotimage ;# baumarkt
+ }
+ { name = "Autobahn Heilbronn";
+ platform = "generic";
+ still_image_url = https://api.svz-bw.de/v2/verkehrskameras/kameras/K10 ;
+ }
+ { name = "Autobahn Singen";
+ platform = "generic";
+ still_image_url = https://api.svz-bw.de/v2/verkehrskameras/kameras/K11 ;
+ }
+ ];
+}
diff --git a/makefu/2configs/bureautomation/default.nix b/makefu/2configs/bureautomation/default.nix
index cd598f0aa..7e8b6a4d3 100644
--- a/makefu/2configs/bureautomation/default.nix
+++ b/makefu/2configs/bureautomation/default.nix
@@ -1,20 +1,51 @@
{ config, pkgs, lib, ... }:
let
kodi-host = "192.168.8.11";
- 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
- 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
./comic-updater.nix
./puppy-proxy.nix
+
+ # hass config
+ ## complex configs
+ ./multi/daily-standup.nix
+ ./multi/aramark.nix
+ ./multi/matrix.nix
+ ./multi/frosch.nix
+ ./multi/mittagessen.nix
+ ./multi/10h_timers.nix
+
+ ./switch/tasmota_switch.nix
+ ./switch/rfbridge.nix
+
+ ./light/statuslight.nix
+ ./light/buzzer.nix
+
+ ./script/multi_blink.nix
+
+ ./binary_sensor/buttons.nix
+ ./binary_sensor/motion.nix
+
+ # ./sensor/pollen.nix requires dwd_pollen
+ ./sensor/espeasy.nix
+ ./sensor/airquality.nix
+ ./sensor/outside.nix
+ ./sensor/tasmota_firmware.nix
+
+ ./camera/verkehrskamera.nix
+ ./camera/comic.nix
+ ./camera/stuttgart.nix
+ ./automation/bureau-shutdown.nix
+ ./automation/nachtlicht.nix
+ ./automation/schlechteluft.nix
+ ./automation/hass-restart.nix
+ ./device_tracker/openwrt.nix
+ ./person/team.nix
];
networking.firewall.allowedTCPPorts = [ 8123 ];
state = [ "/var/lib/hass/known_devices.yaml" ];
+
services.home-assistant = {
enable = true;
autoExtraComponents = true;
@@ -51,7 +82,6 @@ in {
source = "hass";
};
};
- matrix = matrix.matrix;
mqtt = {
discovery = true;
discovery_prefix = "homeassistant";
@@ -73,13 +103,6 @@ in {
retain = true;
};
};
- 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 = [
{
platform = "kodi";
@@ -93,7 +116,7 @@ in {
(builtins.fromJSON (builtins.readFile
<secrets/hass/telegram-bot.json>)).allowed_chat_ids 0;
}
- ] ++ matrix.notify;
+ ];
media_player = [
{ platform = "kodi";
host = kodi-host;
@@ -102,37 +125,10 @@ in {
host = "127.0.0.1";
}
];
- 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)
- ++ 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)
- ++ frosch.sensor
- ++ aramark.sensor;
+ sensor = [{ platform = "version"; }]; # pyhaversion
- camera =
- (import ./camera/verkehrskamera.nix)
- ++ (import ./camera/comic.nix)
- ++ (import ./camera/stuttgart.nix);
- person =
- (import ./person/team.nix );
frontend = { };
http = {
@@ -263,16 +259,6 @@ 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
- # ++ standup.automation
- ++ frosch.automation
- ++ mittagessen.automation;
- device_tracker = (import ./device_tracker/openwrt.nix );
};
};
}
diff --git a/makefu/2configs/bureautomation/device_tracker/openwrt.nix b/makefu/2configs/bureautomation/device_tracker/openwrt.nix
index 5de216474..6b0144129 100644
--- a/makefu/2configs/bureautomation/device_tracker/openwrt.nix
+++ b/makefu/2configs/bureautomation/device_tracker/openwrt.nix
@@ -1,16 +1,19 @@
# requires `opkg install luci-mod-rpc` on router
# see https://www.home-assistant.io/components/luci/
-[
- { platform = "luci";
- host = "192.168.8.1";
- username = "root";
- password = import <secrets/hass/router.nix>;
- interval_seconds = 30; # instead of 12seconds
- consider_home = 300; # 5 minutes timeout
- new_device_defaults = {
- track_new_devices = true;
- hide_if_away = false;
- };
- }
-]
+{
+ services.home-assistant.config.device_tracker =
+ [
+ { platform = "luci";
+ host = "192.168.8.1";
+ username = "root";
+ password = import <secrets/hass/router.nix>;
+ interval_seconds = 30; # instead of 12seconds
+ consider_home = 300; # 5 minutes timeout
+ new_device_defaults = {
+ track_new_devices = true;
+ hide_if_away = false;
+ };
+ }
+ ];
+}
diff --git a/makefu/2configs/bureautomation/light/buzzer.nix b/makefu/2configs/bureautomation/light/buzzer.nix
index 2067e47bf..bc2ba4e57 100644
--- a/makefu/2configs/bureautomation/light/buzzer.nix
+++ b/makefu/2configs/bureautomation/light/buzzer.nix
@@ -21,8 +21,10 @@ let
optimistic = false;
qos = 0;
};
-in
-[
-# (tasmota_pwm "RedButton LED" "redbutton" 1 1023) #LED PWM1
- (tasmota_pwm "RedButton Buzzer" "redbutton" 2 512) #buzzer PWM2
-]
+in {
+ services.home-assistant.config.light =
+ [
+ # (tasmota_pwm "RedButton LED" "redbutton" 1 1023) #LED PWM1
+ (tasmota_pwm "RedButton Buzzer" "redbutton" 2 512) #buzzer PWM2
+ ];
+}
diff --git a/makefu/2configs/bureautomation/light/statuslight.nix b/makefu/2configs/bureautomation/light/statuslight.nix
index c9d301758..de65a2379 100644
--- a/makefu/2configs/bureautomation/light/statuslight.nix
+++ b/makefu/2configs/bureautomation/light/statuslight.nix
@@ -48,9 +48,11 @@ let
12 # fire pattern
];
};
-in
-[
- (tasmota_rgb "Status Felix" "status1")
- (tasmota_rgb "Status Daniel" "status2")
- (tasmota_rgb "Buslicht" "buslicht")
-]
+in {
+ services.home-assistant.config.light =
+ [
+ (tasmota_rgb "Status Felix" "status1")
+ (tasmota_rgb "Status Daniel" "status2")
+ (tasmota_rgb "Buslicht" "buslicht")
+ ];
+}
diff --git a/makefu/2configs/bureautomation/multi/10h_timers.nix b/makefu/2configs/bureautomation/multi/10h_timers.nix
index a30fb28b0..6edcde4b0 100644
--- a/makefu/2configs/bureautomation/multi/10h_timers.nix
+++ b/makefu/2configs/bureautomation/multi/10h_timers.nix
@@ -198,11 +198,13 @@ let
];
in
{
- timer =lib.fold lib.recursiveUpdate {}
- (map tmr_10h persons);
- automation = (lib.flatten (map automation_10h persons));
- script = lib.fold lib.recursiveUpdate {} (
- (map announce_user persons) ++
- (map zu_lange_user persons)
- );
+ services.home-assistant.config = {
+ timer =lib.fold lib.recursiveUpdate {}
+ (map tmr_10h persons);
+ automation = (lib.flatten (map automation_10h persons));
+ script = lib.fold lib.recursiveUpdate {} (
+ (map announce_user persons) ++
+ (map zu_lange_user persons)
+ );
+ };
}
diff --git a/makefu/2configs/bureautomation/multi/README.md b/makefu/2configs/bureautomation/multi/README.md
deleted file mode 100644
index baad87fda..000000000
--- a/makefu/2configs/bureautomation/multi/README.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# Combination Folder
-files return a dictionary of different types used in home-assistant instead of
-a single thing.
diff --git a/makefu/2configs/bureautomation/multi/aramark.nix b/makefu/2configs/bureautomation/multi/aramark.nix
index ebe2cde81..45fadb082 100644
--- a/makefu/2configs/bureautomation/multi/aramark.nix
+++ b/makefu/2configs/bureautomation/multi/aramark.nix
@@ -12,13 +12,16 @@ let
((aramark "${menue}/price" "${menue} Preis") // { unit_of_measurement = "€"; })
];
in
-{
- sensor = (aramark_menue "Menü 1")
- ++ (aramark_menue "Menü 2")
- ++ (aramark_menue "Mercato")
- ++ (aramark_menue "Aktion");
- binary_sensor =
- [
- ((aramark "pommes" "Pommes" ) // { payload_on = "True"; payload_off = "False"; })
- ];
+ {
+ services.home-assistant.config =
+ {
+ sensor = (aramark_menue "Menü 1")
+ ++ (aramark_menue "Menü 2")
+ ++ (aramark_menue "Mercato")
+ ++ (aramark_menue "Aktion");
+ binary_sensor =
+ [
+ ((aramark "pommes" "Pommes" ) // { payload_on = "True"; payload_off = "False"; })
+ ];
+ };
}
diff --git a/makefu/2configs/bureautomation/multi/daily-standup.nix b/makefu/2configs/bureautomation/multi/daily-standup.nix
index 38fb22c1a..063def1ef 100644
--- a/makefu/2configs/bureautomation/multi/daily-standup.nix
+++ b/makefu/2configs/bureautomation/multi/daily-standup.nix
@@ -1,4 +1,4 @@
-{ lib }:
+{lib, ... }:
let
random_daily_text = ''{{ [
"Es ist so weit, es ist Standup Zeit!",
@@ -9,46 +9,49 @@ let
"Morgens, halb elf in Deutschland - das Standupchen" ] | random }}'';
in {
- script =
- { "random_daily" = {
- alias = "Random Daily Introduction";
+ services.home-assistant.config =
+ {
+ 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";
+ 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";
+ };
+ }
+ ];
};
- action =
- [
- { service = "homeassistant.turn_on";
- entity_id = [
- "script.blitz_10s"
- "script.random_daily"
- ];
- }
- ];
+ };
+ 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 816539d46..61606d4eb 100644
--- a/makefu/2configs/bureautomation/multi/frosch.nix
+++ b/makefu/2configs/bureautomation/multi/frosch.nix
@@ -1,4 +1,4 @@
-{ lib }:
+{lib, ... }:
# needs: binary_sensor.pommes
# notify.matrix_notify
let
@@ -17,83 +17,87 @@ let
"Der Weltmarktpreis von Pommes ist durch verschiedene Weltkrisen leider so hoch, dass Aramark den Verkaufspreis verdoppeln musste.",
"Vorfreude, schönste Freude, Freude bei Aramark. Pommes in die Schale rein, alle Kunden werden glücklich sein.",
"In 15 Minuten ist es wieder so weit, es ist Pommes Zeit!"] | random }}'';
-in {
- sensor = [
- { platform = "mqtt";
- name = "frosch brightness";
- device_class = "illuminance";
- state_topic = "/bam/frosch/sensor/brightness/state";
- availability_topic = "/bam/frosch/status";
- payload_available = "online";
- payload_not_available = "offline";
- }
- ];
- binary_sensor = [
- { platform = "mqtt";
- name = "frosch auge";
- state_topic = "/bam/frosch/binary_sensor/froschauge/state";
- availability_topic = "/bam/frosch/status";
- payload_available = "online";
- payload_not_available = "offline";
- }
- ];
- switch = [
- { platform = "mqtt";
- name = "frosch blasen";
- state_topic = "/bam/frosch/switch/blasen/state";
- command_topic = "/bam/frosch/switch/blasen/command";
- availability_topic = "/bam/frosch/status";
- payload_available = "online";
- payload_not_available = "offline";
- }
- ];
- light = [];
- automation = [
- { alias = "Pommeszeit";
- trigger = {
- platform = "time";
- at = "11:00:00";
+in
+{
+ services.home-assistant.config =
+ {
+ sensor = [
+ { platform = "mqtt";
+ name = "frosch brightness";
+ device_class = "illuminance";
+ state_topic = "/bam/frosch/sensor/brightness/state";
+ availability_topic = "/bam/frosch/status";
+ payload_available = "online";
+ payload_not_available = "offline";
+ }
+ ];
+ binary_sensor = [
+ { platform = "mqtt";
+ name = "frosch auge";
+ state_topic = "/bam/frosch/binary_sensor/froschauge/state";
+ availability_topic = "/bam/frosch/status";
+ payload_available = "online";
+ payload_not_available = "offline";
+ }
+ ];
+ switch = [
+ { platform = "mqtt";
+ name = "frosch blasen";
+ state_topic = "/bam/frosch/switch/blasen/state";
+ command_topic = "/bam/frosch/switch/blasen/command";
+ availability_topic = "/bam/frosch/status";
+ payload_available = "online";
+ payload_not_available = "offline";
+ }
+ ];
+ light = [];
+ automation = [
+ { alias = "Pommeszeit";
+ trigger = {
+ platform = "time";
+ at = "11:00:00";
+ };
+ condition = {
+ condition = "state";
+ entity_id = "binary_sensor.pommes"; # from multi/aramark.nix
+ state = "on";
+ };
+ action = [
+ { service = "homeassistant.turn_on";
+ entity_id = [
+ "script.pommes_announce"
+ "script.seifenblasen_30s" # from script/multi_blink.nix
+ ];
+ }
+ ];
+ }
+ ];
+ script = {
+ pommes_announce = {
+ alias = "Random Pommes announce";
+ 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_pommes;
+ language = "de";
+ };
+ }
+ { service = "notify.matrix_notify";
+ data_template.message = random_pommes;
+ }
+ ];
};
- condition = {
- condition = "state";
- entity_id = "binary_sensor.pommes"; # from multi/aramark.nix
- state = "on";
- };
- action = [
- { service = "homeassistant.turn_on";
- entity_id = [
- "script.pommes_announce"
- "script.seifenblasen_30s" # from script/multi_blink.nix
- ];
- }
- ];
- }
- ];
- script = {
- pommes_announce = {
- alias = "Random Pommes announce";
- 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_pommes;
- language = "de";
- };
- }
- { service = "notify.matrix_notify";
- data_template.message = random_pommes;
- }
- ];
};
};
}
diff --git a/makefu/2configs/bureautomation/multi/matrix.nix b/makefu/2configs/bureautomation/multi/matrix.nix
index 4fcfe8da4..b9b8fc4e8 100644
--- a/makefu/2configs/bureautomation/multi/matrix.nix
+++ b/makefu/2configs/bureautomation/multi/matrix.nix
@@ -8,58 +8,62 @@
# name: my_command
let
mom_room = "!kTQjvTQvfVsvfEtmth:thales.citadel.team";
-in {
- matrix =
+in
+{
+ services.home-assistant.config =
{
- # secrets:
- # homeserver, username, password
- homeserver = "https://ext01.citadel.team";
- rooms = [
- mom_room
- ];
- commands = [
- {
- # alternative: expression for regexp
- word = "version";
- name = "version";
- }
- {
- word = "luftqualität";
- name = "luftqualitaet";
- }
- ];
- } // (builtins.fromJSON (builtins.readFile
- <secrets/hass/citadel-bot.json>));
- automation = [
+ matrix =
{
- alias = "React to !version";
- trigger = {
- platform = "event";
- event_type = "matrix_command";
- event_data.command = "version";
- };
- action = {
- service = "notify.matrix_notify";
- data_template.message = "Running home-assistant {{states.sensor.current_version.state}}";
- };
- }
- {
- alias = "React to !luftqualität";
- trigger = {
- platform = "event";
- event_type = "matrix_command";
- event_data.command = "luftqualitaet";
- };
- action = {
- service = "notify.matrix_notify";
- data_template.message = ''Temp: {{states.sensor.notizen_temperature.state_with_unit | replace (" ","")}}, Hum:{{states.sensor.notizen_humidity.state_with_unit | replace (" ","")}}, airquality:{{states.sensor.air_quality.state_with_unit}}'';
- };
- }
+ # secrets:
+ # homeserver, username, password
+ homeserver = "https://ext01.citadel.team";
+ rooms = [
+ mom_room
+ ];
+ commands = [
+ {
+ # alternative: expression for regexp
+ word = "version";
+ name = "version";
+ }
+ {
+ word = "luftqualität";
+ name = "luftqualitaet";
+ }
+ ];
+ } // (builtins.fromJSON (builtins.readFile
+ <secrets/hass/citadel-bot.json>));
+ automation = [
+ {
+ alias = "React to !version";
+ trigger = {
+ platform = "event";
+ event_type = "matrix_command";
+ event_data.command = "version";
+ };
+ action = {
+ service = "notify.matrix_notify";
+ data_template.message = "Running home-assistant {{states.sensor.current_version.state}}";
+ };
+ }
+ {
+ alias = "React to !luftqualität";
+ trigger = {
+ platform = "event";
+ event_type = "matrix_command";
+ event_data.command = "luftqualitaet";
+ };
+ action = {
+ service = "notify.matrix_notify";
+ data_template.message = ''Temp: {{states.sensor.notizen_temperature.state_with_unit | replace (" ","")}}, Hum:{{states.sensor.notizen_humidity.state_with_unit | replace (" ","")}}, airquality:{{states.sensor.air_quality.state_with_unit}}'';
+ };
+ }
- ];
- notify = [{
- name = "matrix_notify";
- platform = "matrix";
- default_room = mom_room;
- }];
+ ];
+ notify = [{
+ name = "matrix_notify";
+ platform = "matrix";
+ default_room = mom_room;
+ }];
+ };
}
diff --git a/makefu/2configs/bureautomation/multi/mittagessen.nix b/makefu/2configs/bureautomation/multi/mittagessen.nix
index 2a9993e92..52ec99a92 100644
--- a/makefu/2configs/bureautomation/multi/mittagessen.nix
+++ b/makefu/2configs/bureautomation/multi/mittagessen.nix
@@ -38,52 +38,55 @@ let
"Jetzt nur noch kurz die Mail fertig schreiben und schon kann es los gehen.",
"Es ist 13 Uhr und die Mittagspause ist bald vorbei .... Kleiner Scherz, es ist erst 12:30, aber Ihr hättet auch nicht wirklich etwas verpasst.",
"Hallo, es ist nun 12 Uhr 30! Dies entspricht der Essenszeit aller Büroinsassen. Bitte begebt euch zur Aramark Essensausgabe um euren menschlichen Bedürfnissen nachzukommen."] | random }}'';
-in {
- automation = [
- { alias = "Mittagessen";
- trigger = {
- platform = "time";
- at = "12:30:00";
+in
+{
+ services.home-assistant.config = {
+ automation = [
+ { alias = "Mittagessen";
+ trigger = {
+ platform = "time";
+ at = "12:30:00";
+ };
+ action = [
+ { service = "homeassistant.turn_on";
+ entity_id = [
+ "script.mittagessen_announce"
+ "script.blitz_10s"
+ "script.mittagessenlicht"
+ ];
+ }
+ ];
+ }
+ ];
+ script = {
+ mittagessenlicht = (flash_entity {
+ entity = "switch.bauarbeiterlampe";
+ alias = "Bauarbeiterlampe Mittagessenlicht";
+ delay = 1000;
+ count = 5;
+ });
+ mittagessen_announce = {
+ alias = "Random Mittagessen announce";
+ 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_mittagessen;
+ language = "de";
+ };
+ }
+ ];
};
- action = [
- { service = "homeassistant.turn_on";
- entity_id = [
- "script.mittagessen_announce"
- "script.blitz_10s"
- "script.mittagessenlicht"
- ];
- }
- ];
- }
- ];
- script = {
- mittagessenlicht = (flash_entity {
- entity = "switch.bauarbeiterlampe";
- alias = "Bauarbeiterlampe Mittagessenlicht";
- delay = 1000;
- count = 5;
- });
- mittagessen_announce = {
- alias = "Random Mittagessen announce";
- 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_mittagessen;
- language = "de";
- };
- }
- ];
};
};
}
diff --git a/makefu/2configs/bureautomation/person/team.nix b/makefu/2configs/bureautomation/person/team.nix
index 2a15abaf5..124e85536 100644
--- a/makefu/2configs/bureautomation/person/team.nix
+++ b/makefu/2configs/bureautomation/person/team.nix
@@ -1,72 +1,75 @@
-[
- { name = "Thorsten";
- id = 1;
- device_trackers = [
- "device_tracker.thorsten_phone"
- #"device_tracker.thorsten_arbeitphone"
- ];
- }
- { name = "Felix";
- id = 2;
- device_trackers = [
- "device_tracker.felix_phone"
- "device_tracker.felix_laptop"
- ];
- }
- { name = "Ecki";
- id = 3;
- device_trackers = [
- "device_tracker.ecki_phone"
- "device_tracker.ecki_tablet"
- ];
- }
- { name = "Daniel";
- id = 4;
- device_trackers = [
- "device_tracker.daniel_phone"
- ];
- }
- { name = "Thierry";
- id = 5;
- device_trackers = [
- "device_tracker.thierry_phone"
- ];
- }
- { name = "Frank";
- id = 6;
- device_trackers = [
- "device_tracker.frank_phone"
- ];
- }
- { name = "Carsten";
- id = 7;
- device_trackers = [
- "device_tracker.carsten_phone"
- ];
- }
- { name = "Emeka";
- id = 8;
- device_trackers = [
- "device_tracker.emeka_phone"
- ];
- }
- { name = "Sabine";
- id = 9;
- device_trackers = [
- "device_tracker.sabine_phone"
- ];
- }
- { name = "Tobias";
- id = 10;
- device_trackers = [
- "device_tracker.tobias_phone"
- ];
- }
- { name = "Tancrede";
- id = 11;
- device_trackers = [
- "device_tracker.tancrede_phone"
- "device_tracker.tancrede_laptop"
- ];
- }
-]
+{
+ services.home-assistant.config.person =
+ [
+ { name = "Thorsten";
+ id = 1;
+ device_trackers = [
+ "device_tracker.thorsten_phone"
+ #"device_tracker.thorsten_arbeitphone"
+ ];
+ }
+ { name = "Felix";
+ id = 2;
+ device_trackers = [
+ "device_tracker.felix_phone"
+ "device_tracker.felix_laptop"
+ ];
+ }
+ { name = "Ecki";
+ id = 3;
+ device_trackers = [
+ "device_tracker.ecki_phone"
+ "device_tracker.ecki_tablet"
+ ];
+ }
+ { name = "Daniel";
+ id = 4;
+ device_trackers = [
+ "device_tracker.daniel_phone"
+ ];
+ }
+ { name = "Thierry";
+ id = 5;
+ device_trackers = [
+ "device_tracker.thierry_phone"
+ ];
+ }
+ { name = "Frank";
+ id = 6;
+ device_trackers = [
+ "device_tracker.frank_phone"
+ ];
+ }
+ { name = "Carsten";
+ id = 7;
+ device_trackers = [
+ "device_tracker.carsten_phone"
+ ];
+ }
+ { name = "Emeka";
+ id = 8;
+ device_trackers = [
+ "device_tracker.emeka_phone"
+ ];
+ }
+ { name = "Sabine";
+ id = 9;
+ device_trackers = [
+ "device_tracker.sabine_phone"
+ ];
+ }
+ { name = "Tobias";
+ id = 10;
+ device_trackers = [
+ "device_tracker.tobias_phone"
+ ];
+ }
+ { name = "Tancrede";
+ id = 11;
+ device_trackers = [
+ "device_tracker.tancrede_phone"
+ "device_tracker.tancrede_laptop"
+ ];
+ }
+ ];
+}
diff --git a/makefu/2configs/bureautomation/script/multi_blink.nix b/makefu/2configs/bureautomation/script/multi_blink.nix
index e6acdc303..753918f31 100644
--- a/makefu/2configs/bureautomation/script/multi_blink.nix
+++ b/makefu/2configs/bureautomation/script/multi_blink.nix
@@ -19,39 +19,42 @@ let
) count);
};
in {
- buzz_red_led = (flash_entity {
- entity = "light.redbutton_buzzer";
- alias = "Red Button Buzz";
- count = 4;
- });
- buzz_red_led_fast = (flash_entity {
- entity = "light.redbutton_buzzer";
- delay = 250;
- count = 2;
- alias = "Red Button Buzz fast";
- });
- blitz_10s = (flash_entity {
- entity = "switch.blitzdings";
- delay = 10000;
- count = 1;
- alias = "blitz for 10 seconds";
- });
- blasen_10s = (flash_entity {
- entity = "switch.frosch_blasen";
- delay = 10000;
- count = 1;
- alias = "blasen for 10 seconds";
- });
- blasen_30s = (flash_entity {
- entity = "switch.frosch_blasen";
- delay = 30000;
- count = 1;
- alias = "blasen for 30 seconds";
- });
- schlechteluft = (flash_entity {
- entity = "switch.bauarbeiterlampe";
- alias = "Schlechte Luft Lampe 5 secs";
- delay = 5000;
- count = 1;
- });
+ services.home-assistant.config.script =
+ {
+ buzz_red_led = (flash_entity {
+ entity = "light.redbutton_buzzer";
+ alias = "Red Button Buzz";
+ count = 4;
+ });
+ buzz_red_led_fast = (flash_entity {
+ entity = "light.redbutton_buzzer";
+ delay = 250;
+ count = 2;
+ alias = "Red Button Buzz fast";
+ });
+ blitz_10s = (flash_entity {
+ entity = "switch.blitzdings";
+ delay = 10000;
+ count = 1;
+ alias = "blitz for 10 seconds";
+ });
+ blasen_10s = (flash_entity {
+ entity = "switch.frosch_blasen";
+ delay = 10000;
+ count = 1;
+ alias = "blasen for 10 seconds";
+ });
+ blasen_30s = (flash_entity {
+ entity = "switch.frosch_blasen";
+ delay = 30000;
+ count = 1;
+ alias = "blasen for 30 seconds";
+ });
+ schlechteluft = (flash_entity {
+ entity = "switch.bauarbeiterlampe";
+ alias = "Schlechte Luft Lampe 5 secs";
+ delay = 5000;
+ count = 1;
+ });
+ };
}
diff --git a/makefu/2configs/bureautomation/sensor/airquality.nix b/makefu/2configs/bureautomation/sensor/airquality.nix
index 217fa9595..7d95c3c15 100644
--- a/makefu/2configs/bureautomation/sensor/airquality.nix
+++ b/makefu/2configs/bureautomation/sensor/airquality.nix
@@ -1,9 +1,12 @@
-[
- # coming from 2configs/stats/telegraf/
- { platform = "mqtt";
- name = "Air Quality";
- state_topic = "/telegraf/wbob/airquality";
- value_template = "{{ value_json.fields.value }}";
- unit_of_measurement = "VOC";
- }
-]
+{
+ services.home-assistant.config.sensor =
+ [
+ # coming from 2configs/stats/telegraf/
+ { platform = "mqtt";
+ name = "Air Quality";
+ state_topic = "/telegraf/wbob/airquality";
+ value_template = "{{ value_json.fields.value }}";
+ unit_of_measurement = "VOC";
+ }
+ ];
+}
diff --git a/makefu/2configs/bureautomation/sensor/espeasy.nix b/makefu/2configs/bureautomation/sensor/espeasy.nix
index 4b78ee84e..c68f39f1a 100644
--- a/makefu/2configs/bureautomation/sensor/espeasy.nix
+++ b/makefu/2configs/bureautomation/sensor/espeasy.nix
@@ -24,8 +24,10 @@ let
payload_available = "Online";
payload_not_available = "Offline";
};
-in
-(espeasy_dht22 "easy1") ++
-(espeasy_dht22 "easy2") ++ [
- (espeasy_ds18 "easy3" )
-]
+in {
+ services.home-assistant.config.sensor =
+ (espeasy_dht22 "easy1") ++
+ (espeasy_dht22 "easy2") ++ [
+ (espeasy_ds18 "easy3" )
+ ];
+}
diff --git a/makefu/2configs/bureautomation/sensor/influxdb.nix b/makefu/2configs/bureautomation/sensor/influxdb.nix
deleted file mode 100644
index 820a56c4d..000000000
--- a/makefu/2configs/bureautomation/sensor/influxdb.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-[
- #{ platform = "influxdb";
- # queries = [
- # { name = "mean value of feinstaub P1";
- # where = '' "node" = 'esp8266-1355142' '';
- # measurement = "feinstaub";
- # database = "telegraf";
- # field = "P1";
- # }
- # { name = "mean value of feinstaub P2";
- # where = '' "node" = 'esp8266-1355142' '';
- # measurement = "feinstaub";
- # database = "telegraf";
- # field = "P2";
- # }
- # ];
- #}
-]
diff --git a/makefu/2configs/bureautomation/sensor/outside.nix b/makefu/2configs/bureautomation/sensor/outside.nix
index 596473f17..b5d25ecd3 100644
--- a/makefu/2configs/bureautomation/sensor/outside.nix
+++ b/makefu/2configs/bureautomation/sensor/outside.nix
@@ -1,25 +1,29 @@
-{lib,...}: [
- { platform = "darksky";
- api_key = lib.removeSuffix "\n"
- (builtins.readFile <secrets/hass/darksky.apikey>);
- language = "de";
- monitored_conditions = [
- "summary" "icon"
- "nearest_storm_distance" "precip_probability"
- "precip_intensity"
- "temperature" # "temperature_high" "temperature_low"
- "apparent_temperature"
- "hourly_summary" # next 24 hours text
- "humidity"
- "pressure"
- "uv_index"
- ];
- units = "si" ;
- scan_interval = "00:30:00";
- }
- { platform = "luftdaten";
- name = "Ditzingen";
- sensorid = "5341";
- monitored_conditions = [ "P1" "P2" ];
- }
- ]
+{lib,...}:
+{
+ services.home-assistant.config.sensor =
+ [
+ { platform = "darksky";
+ api_key = lib.removeSuffix "\n"
+ (builtins.readFile <secrets/hass/darksky.apikey>);
+ language = "de";
+ monitored_conditions = [
+ "summary" "icon"
+ "nearest_storm_distance" "precip_probability"
+ "precip_intensity"
+ "temperature" # "temperature_high" "temperature_low"
+ "apparent_temperature"
+ "hourly_summary" # next 24 hours text
+ "humidity"
+ "pressure"
+ "uv_index"
+ ];
+ units = "si" ;
+ scan_interval = "00:30:00";
+ }
+ { platform = "luftdaten";
+ name = "Ditzingen";
+ sensorid = "5341";
+ monitored_conditions = [ "P1" "P2" ];
+ }
+ ];
+}
diff --git a/makefu/2configs/bureautomation/sensor/tasmota_firmware.nix b/makefu/2configs/bureautomation/sensor/tasmota_firmware.nix
index 1a4738e12..f5f063dbf 100644
--- a/makefu/2configs/bureautomation/sensor/tasmota_firmware.nix
+++ b/makefu/2configs/bureautomation/sensor/tasmota_firmware.nix
@@ -9,8 +9,11 @@ let
payload_not_available= "Offline";
};
in
+{
+ services.home-assistant.config.sensor =
map tasmota_firmware [
"plug" "plug2" "plug3" "plug4" "plug5"
"status1" "status2" "buslicht"
"rfbridge"
- ]
+ ];
+}
diff --git a/makefu/2configs/bureautomation/switch/rfbridge.nix b/makefu/2configs/bureautomation/switch/rfbridge.nix
index 1336549a3..9b9de7793 100644
--- a/makefu/2configs/bureautomation/switch/rfbridge.nix
+++ b/makefu/2configs/bureautomation/switch/rfbridge.nix
@@ -8,10 +8,12 @@ let
payload_available= "Online";
payload_not_available= "Offline";
};
-in
-[
- (bridge "Nachtlicht A" "#414551" "#414554")
- (bridge "Nachtlicht B" "#415151" "#415154")
- (bridge "Nachtlicht C" "#415451" "#415454")
- (bridge "Nachtlicht D" "#41551F" "#415514")
-]
+in {
+ services.home-assistant.config.switch =
+ [
+ (bridge "Nachtlicht A" "#414551" "#414554")
+ (bridge "Nachtlicht B" "#415151" "#415154")
+ (bridge "Nachtlicht C" "#415451" "#415454")
+ (bridge "Nachtlicht D" "#41551F" "#415514")
+ ];
+}
diff --git a/makefu/2configs/bureautomation/switch/tasmota_switch.nix b/makefu/2configs/bureautomation/switch/tasmota_switch.nix
index 115bae0cc..6c5f6b8a6 100644
--- a/makefu/2configs/bureautomation/switch/tasmota_switch.nix
+++ b/makefu/2configs/bureautomation/switch/tasmota_switch.nix
@@ -13,10 +13,13 @@ let
retain = false;
qos = 1;
};
-in [
- (tasmota_plug "Bauarbeiterlampe" "plug")
- (tasmota_plug "Blitzdings" "plug2")
- (tasmota_plug "Fernseher" "plug3")
- (tasmota_plug "Feuer" "plug4")
- (tasmota_plug "Blaulicht" "plug5")
-]
+in {
+ services.home-assistant.config.switch =
+ [
+ (tasmota_plug "Bauarbeiterlampe" "plug")
+ (tasmota_plug "Blitzdings" "plug2")
+ (tasmota_plug "Fernseher" "plug3")
+ (tasmota_plug "Feuer" "plug4")
+ (tasmota_plug "Blaulicht" "plug5")
+ ];
+}
[cgit] Unable to lock slot /tmp/cgit/bd200000.lock: No such file or directory (2)