summaryrefslogtreecommitdiffstats
path: root/makefu/2configs/bureautomation/multi
diff options
context:
space:
mode:
authormakefu <github@syntax-fehler.de>2023-07-28 22:24:15 +0200
committermakefu <github@syntax-fehler.de>2023-07-28 22:24:15 +0200
commit060a8f28fa1fc648bdf66afb31a5d1efac868837 (patch)
tree2b354eacc7897365ee45244fe7a51720e0d0333f /makefu/2configs/bureautomation/multi
parentcbfcc890e3b76d942b927809bf981a5fa7289e6a (diff)
makefu: move out to own repo, add vacation-note
Diffstat (limited to 'makefu/2configs/bureautomation/multi')
-rw-r--r--makefu/2configs/bureautomation/multi/10h_timers.nix210
-rw-r--r--makefu/2configs/bureautomation/multi/aramark.nix27
-rw-r--r--makefu/2configs/bureautomation/multi/daily-standup.nix57
-rw-r--r--makefu/2configs/bureautomation/multi/frosch.nix103
-rw-r--r--makefu/2configs/bureautomation/multi/matrix.nix69
-rw-r--r--makefu/2configs/bureautomation/multi/mittagessen.nix92
6 files changed, 0 insertions, 558 deletions
diff --git a/makefu/2configs/bureautomation/multi/10h_timers.nix b/makefu/2configs/bureautomation/multi/10h_timers.nix
deleted file mode 100644
index 6edcde4b..00000000
--- a/makefu/2configs/bureautomation/multi/10h_timers.nix
+++ /dev/null
@@ -1,210 +0,0 @@
-{lib, ... }:
-let
- persons = [ "frank" "daniel" "thorsten" "carsten" "ecki" "felix"
- "thierry" # tjeri
- "emeka"
- "tancrede"
- ];
- random_zu_lange = name: ''{{ [
- "Du musst jetzt endlich nach Hause gehen ${name}!",
- "${name} - 10 Stunden sind rum, bald schenkst du den Franzosen deine Lebenszeit",
- "Nur eine Minute über 10 Stunden kann zu einer Stunde Arbeit für Thorsten werden, ${name}.",
- "In 10 Minuten kommt dich der Security Mann holen, ${name}",
- "Das Sandmännchen ist schon vorbei, gleich fallen dir die Augen zu ${name}.",
- "Wenn ${name} sofort los geht, dann ist er noch rechtzeitig für den Tatort zu Hause.",
- "${name} muss jetzt gehen, sonst verpasst er die Tagesschau!",
- "Es ist spät ${name}. Ausstempeln hilft zwar kurzfristig, kann aber zu langfristigen Problemen führen.",
- "${name}, wenn du nach zehn Stunden nach Hause gehst, muss dir dein Vorgesetzter ein Taxi bestellen",
- "${name}, wenn du nach zehn Stunden nach Hause gehst, bist du auf dem Rückweg nicht mehr versichert!",
- "Zu lange, ${name}!" ] | random }}'' ;
-
-
- random_announce = name: ''{{ [
- "${name} is in da House",
- "Ahoi ${name}",
- "Hallöchen Popöchen ${name}",
- "Moinsen ${name}",
- "Moin Moin ${name}",
- "Palim, Palim ${name}",
- "Vorwärts Genosse ${name}",
- "Gemeinsame Grüße, Genosse ${name}",
- "Sozialistische Grüße, Genosse ${name}",
- "Konzentrierte Grüße, Genosse ${name}",
- "Ach, der ${name} ist auch wieder da...",
- "Nicht ${name} schon wieder",
- "Tri tra tralala, der ${name} ist wieder da.",
- "Na sieh mal einer an, ${name} hat es auch her geschafft",
- "Wer ist im Büro eingetroffen? ${name} ist es!",
- "Willkommen in deinem Lieblingsbüro, ${name}.",
- "Klopf, Klopf, wer ist da? ${name} ist da!",
- "Messer, Gabel, Schere, Licht sind für kleinen ${name} nicht.",
- "Ich kenne ein Geheimnis, ${name} ist angekommen",
- "Wir sind ${name}. Sie werden assimiliert werden",
- "Achtung, es erfolgt eine Durchsage. ${name} ist eingetroffen",
- "Die Scanner haben eine dem System bekannte Lebensform mit dem Namen ${name} detektiert",
- "Das Büro sieht dich, ${name}",
- "Das Büro riecht dich, ${name}",
- "Im Kalender von ${name} sind heute acht Meetings eingeplant, von denen zwei bereits verpasst wurden",
- "Das Postfach von ${name} beinhaltet einhundertachtundzwanzig ungelesene E-Mails.",
- "Nachricht von Serge: ${name}, bitte melden Sie sich Umgehend bei mir im Büro!",
- "Luftqualität hat sich durch das Eintreffen von ${name} um zweihundert Punkte verschlechtert, bitte alle Fenster öffnen.",
- "Die Tür geht auf, wer mag das sein? Schon schreitet hier der ${name} ein. Das Volk, es jubelt, Dirnen schmachten. Fürs Festmahl beginnt man schon zu schlachten. Er wird nur nach dem besten streben! Der ${name}, er soll lange leben!",
- "${name} arbeitet gern für seinen Konzern",
- "${name} ist nur froh im Großraumbüro",
- "Für ${name} ist die schönste Zeit ... die Arbeit",
- "Ein Fleißbienchen für ${name} zum rechtzeitigen Erscheinen im Büro",
- "${name} ist heute wohl doch nicht im Office Home",
- "${name} ist bereit für einen Tag voller Meetings",
- "Und es startet für ${name} wieder ein Tag im Paradies",
- "Lieber ${name}, Markus Keck hat dich bereits drei mal Versucht anzurufen!",
- "Trotz schwerer Männergrippe ist ${name} heute im Büro erschienen.",
- "${name} kennt keine Parteien mehr, ${name} kennt nur noch Arbeitsplätze",
- "${name}, Frage nicht, was dein Arbeitsplatz für dich tun kann. Frage, was du für deinen Arbeitsplatz tun kannst",
- "${name} läuft bis in den Jemen - für sein Unternehmen. ${name} schwimmt bis nach Birma - für seine Firma",
- "Der Cyberian ${name} ist gekommen um die Bahnwelt vor Cyber-Angriffen zu schützen",
- "Alles paletto im Ghetto, ${name}?",
- "Hach, ${name}, wenn du hier rein kommst fühlt es sich gleich wieder an wie Montag.",
- "Oh nein, nicht schon wieder ${name}",
- "Wer wohnt in der Ananas ganz tief im Meer? ${name} Schwammkopf!",
- "Arbeit ist Freizeit! Wachstum ist Fortschritt! Sicherheit ist Freiheit! Eine kleine Erinnerung für ${name}"] | random }}'' ;
- tmr_10h = name: {
- "${name}_10h" = {
- name = "${name} 10h Timer";
- duration = "10:00:00";
- };
- };
-
- zu_lange_user = name:
- { "zu_lange_${name}" = {
- alias = "Random Zu Lange ${name}";
-
- 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_zu_lange name;
- language = "de";
- };
- }
- ];
- };
- };
- announce_user = name:
- { "announce_${name}" = {
- alias = "Random Announce ${name}";
- sequence = [
- { delay.seconds = 7; }
- { service = "media_player.play_media";
- data = {
- entity_id = "media_player.mpd";
- media_content_type = "playlist";
- media_content_id = "ansage";
- };
- }
- { delay.seconds = 4; }
- { service = "tts.google_say";
- entity_id = "media_player.mpd";
- data_template = {
- message = random_announce name;
- language = "de";
- };
- }
- ];
- };
- };
- automation_10h = name: [
- { alias = "start ${name} 10h";
- trigger = {
- platform = "state";
- entity_id = [ "person.${name}"];
- from = "not_home";
- to = "home";
- };
- condition = {
- condition = "and";
- conditions = [
- { condition = "state";
- entity_id = "timer.${name}_10h";
- state = "idle";
- }
- { condition = "time";
- after = "06:00:00";
- before = "12:00:00";
- }
- ];
- };
- action = [
- { service = "timer.start";
- entity_id = [ "timer.${name}_10h" ] ;
- }
- { service = "homeassistant.turn_on";
- entity_id =
- [ "switch.fernseher"
- "script.blitz_10s"
- "script.announce_${name}"
- ];
- }
- ];
- }
-
- { alias = "pommes announce ${name}";
- trigger =
- { platform = "event";
- event_type = "timer.started";
- event_data.entity_id = "timer.${name}_10h";
- };
-
- condition =
- { condition = "state";
- entity_id = "binary_sensor.pommes";
- state = "on";
- };
-
- action =
- { service = "homeassistant.turn_on";
- entity_id = "script.blasen_10s" ;
- };
- }
-
- { alias = "Zu lange ${name}!";
- trigger =
- { platform = "event";
- event_type = "timer.finished";
- event_data.entity_id = "timer.${name}_10h";
- };
-
- condition =
- { condition = "state";
- entity_id = "person.${name}";
- state = "home";
- };
-
- action =
- { service = "homeassistant.turn_on";
- entity_id = [
- "script.blitz_10s"
- "script.zu_lange_${name}"
- ];
- };
- }
- ];
-in
-{
- 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/aramark.nix b/makefu/2configs/bureautomation/multi/aramark.nix
deleted file mode 100644
index 45fadb08..00000000
--- a/makefu/2configs/bureautomation/multi/aramark.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{ lib, ... }:
-let
- aramark = topic: name:
- { platform = "mqtt";
- inherit name;
- state_topic = "/aramark/thales-deutschland/${topic}";
- };
- aramark_menue = menue:
- [
- (aramark "${menue}/title" menue)
- (aramark "${menue}/description" "${menue} Text")
- ((aramark "${menue}/price" "${menue} Preis") // { unit_of_measurement = "€"; })
- ];
-in
- {
- 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
deleted file mode 100644
index 063def1e..00000000
--- a/makefu/2configs/bureautomation/multi/daily-standup.nix
+++ /dev/null
@@ -1,57 +0,0 @@
-{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 zum Standup 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 {
- 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";
- };
- 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
deleted file mode 100644
index 61606d4e..00000000
--- a/makefu/2configs/bureautomation/multi/frosch.nix
+++ /dev/null
@@ -1,103 +0,0 @@
-{lib, ... }:
-# needs: binary_sensor.pommes
-# notify.matrix_notify
-let
- random_pommes = '' {{ [
- "Nur ein Pommes Tag ist ein guter Tag",
- "Schaut wie schön sie fliegen, die Pommes Seifenblasen",
- "zwo ... eins ... Pommes Zeit",
- "I cannot believe it is not Pommes",
- "Naja, wenn es sonst schon nichts anderes gibt, kann man jetzt auch pommes nehmen",
- "Wenn Aramark was kann, dann ist es frittieren",
- "Einmal das Hauptgericht mit Pommes, ohne Hauptgericht",
- "Rieche ich da etwa Pommes? JA!",
- "Pommes ist auch nur Gemüse,also keine Reue und schlag zu!",
- "Mit nur fünf Portionen Pommes kann man schon satt werden.",
- "Heute für Sie, 15 Pommes von hand abgezählt",
- "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
-{
- 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;
- }
- ];
- };
- };
- };
-}
diff --git a/makefu/2configs/bureautomation/multi/matrix.nix b/makefu/2configs/bureautomation/multi/matrix.nix
deleted file mode 100644
index b9b8fc4e..00000000
--- a/makefu/2configs/bureautomation/multi/matrix.nix
+++ /dev/null
@@ -1,69 +0,0 @@
-{ lib, ... }:
-#matrix:
-# password: supersecurepassword
-# rooms:
-# - "#hasstest:matrix.org"
-# commands:
-# - word: my_command
-# name: my_command
-let
- mom_room = "!kTQjvTQvfVsvfEtmth:thales.citadel.team";
-in
-{
- services.home-assistant.config =
- {
- matrix =
- {
- # 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;
- }];
- };
-}
diff --git a/makefu/2configs/bureautomation/multi/mittagessen.nix b/makefu/2configs/bureautomation/multi/mittagessen.nix
deleted file mode 100644
index 52ec99a9..00000000
--- a/makefu/2configs/bureautomation/multi/mittagessen.nix
+++ /dev/null
@@ -1,92 +0,0 @@
-{ lib, ... }:
-let
- # TODO: remove redundant code (from multi_blink) via lib
- flash_entity = { entity, delay ? 500, count ? 4, alias ? "${entity}_blink_${toString count}_${toString delay}" }:
- {
- inherit alias;
- sequence = lib.flatten (builtins.genList (i: [
- { service = "homeassistant.turn_on";
- data.entity_id = entity;
- }
- { delay.milliseconds = delay; }
- { service = "homeassistant.turn_off";
- data.entity_id = entity;
- }
- { delay.milliseconds = delay; }
- ]
- ) count);
- };
- # TODO: use influxdb and check if pommes
- random_mittagessen = '' {{ [
- "Es ist 12 uhr 30. Der Aramark Gourmettempel hat, wie jeden Tag, wieder die feinsten Köstlichkeiten für euch Vorbereitet",
- "Heute bei Aramark: Rezepte aus Ländern, von denen Ihr noch nie gehört habt, Deutsch zubereitet",
- "Heute bei Aramark im Angebot: Scheiss mit Reis oder Reste von Freitag",
- "MHHHH es ist wieder mal so weit, lecker Bayerisch Kraut mit asiatischen Nudeln",
- "Es ist 12 Uhr 30 und Heute gibt es nur Pommes, wenn der Pommesfrosch Blasen gespuckt hat.",
- "Heute gibt es Pommes leider nicht einzeln zu verkaufen, da die Schälchen alle sind",
- "Heute gibt es Pommes, verarscht! Natürlich gibt es nur salzlosen Reis, oder salzlose Nudeln.",
- "Heute auf dem Speiseplan: Sushi vom Vortag",
- "Aramark Kantinenessen: Der Hunger treibt es rein, der Geiz hält es drin.",
- "Das Essen in der Snackeria sieht heute wie die bessere Alternative aus",
- "Heute ist wohl wieder ein Beilagen-Tag",
- "Lunch time! Good luck, you will need it!",
- "Heute vielleicht lieber doch nur einen Salat?",
- "Im Büro ist es eh gerade viel zu warm, also ab zur Kantine",
- "Im Büro ist es eh gerade viel zu kalt, also ab zur Kantine",
- "Heute scheint die Auswahl wieder sehr schwierig zu sein. Vielleicht doch lieber ein Brötchen mit Fleischkäse vom Bäcker beim Baumarkt?",
- "Wer hat hier schon wieder ein Meeting auf 12 Uhr gelegt? Skandal!",
- "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
-{
- 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";
- };
- }
- ];
- };
- };
- };
-}