summaryrefslogtreecommitdiffstats
path: root/makefu/2configs/bureautomation/multi/frosch.nix
blob: de93ce2b7ddcbd7a63f51df664691fa6c56e6d10 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
{ lib }:
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 {
  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 = "12:15: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";
          };
        }
      ];
    };
  };
}