summaryrefslogtreecommitdiffstats
path: root/makefu/2configs/bureautomation/multi/matrix.nix
blob: b9b8fc4e8e9bd20460c68a061e03e1e75aa7aab6 (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
{ 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;
    }];
  };
}