summaryrefslogtreecommitdiffstats
path: root/lass/2configs/hass/lib.nix
blob: c69f5e8875a45586e09bf0b4172a29e8e06bf20c (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
{
  lights = {
    bett = "light.0x0017880106ed3bd8_light";
    essen = "light.0x0017880108327622_light";
    arbeit = "light.0x0017880106ee2865_light";
    nass = "light.0x00178801082e9f2f_light";
  };

  sensors = {
    bett = "0x00178801086ac38c";
  };

  lightswitch = switch: light: {
    automation = [
      {
        trigger = {
          platform = "mqtt";
          topic = "zigbee/${switch}";
        };
        condition = {
          condition = "or";
          conditions = [
            {
              condition = "template";
              value_template = "{{ trigger.payload_json.action == 'on-press' }}";
            }
            {
              condition = "template";
              value_template = "{{ trigger.payload_json.action == 'up-press' }}";
            }
            {
              condition = "and";
              conditions = [
                {
                  condition = "template";
                  value_template = "{{ trigger.payload_json.action == 'down-press' }}";
                }
                {
                  condition = "template";
                  value_template = "{{ trigger.payload_json.brightness > 30 }}";
                }
              ];
            }
          ];
        };
        action = [
          {
            service = "light.turn_on";
            data_template = {
              entity_id = light;
              brightness = "{{ trigger.payload_json.brightness }}";
            };
          }
        ];
      }
      {
        trigger = {
          platform = "mqtt";
          topic = "zigbee/${switch}";
        };
        condition = {
          condition = "or";
          conditions = [
            {
              condition = "template";
              value_template = "{{ trigger.payload_json.action == 'off-press' }}";
            }
            {
              condition = "template";
              value_template = "{{ trigger.payload_json.brightness < 30 }}";
            }
          ];
        };
        action = {
          service = "light.turn_off";
          data_template = {
            entity_id = light;
          };
        };
      }
    ];
  };
}