summaryrefslogtreecommitdiffstats
path: root/makefu/2configs/ham/multi/timer.nix
blob: eafb7841dacc6d1e87359fce5860df88133b1671 (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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
# Provides:
#   timer
#   automation
#   script

# Needs:
#  sensor.zigbee_btn1_click
#  notify.telegrambot
let
  button = "sensor.zigbee_btn1_click";
in {
  timer.kurzzeitwecker =
  {
    name = "Zigbee Kurzzeitwecker";
    duration = 300;
  };
    script.add_5_minutes_to_kurzzeitwecker =
    {
        alias = "Add 5 minutes to kurzzeitwecker";
        sequence = [
          { service = "timer.pause";
          entity_id = "timer.kurzzeitwecker";
        }
        { service = "timer.start";
        data_template = {
          entity_id = "timer.kurzzeitwecker";
          duration = ''
            {% set r = state_attr('timer.wecker', 'remaining') ~ '-0000' %}
            {% set t = strptime(r, '%H:%M:%S.%f%z') %}
            {{ (as_timestamp(t) + 300) | timestamp_custom('%H:%M:%S', false) }}
          '';
        };
      }
    ];
  };
  automation =
  [
    {
      alias = "Start Timer 5min";
      trigger = {
        platform = "state";
        entity_id = button;
        to =  "single";
      };
      condition =
          { condition = "state";
            entity_id = "timer.kurzzeitwecker";
            state =  "idle";
          };

      action = [
        { service = "timer.start";
          entity_id =  "timer.kurzzeitwecker";
          duration = "00:05:00";
        }
        {
          service = "notify.telegrambot";
          data = {
            title = "Timer gestartet";
            message = "Timer auf 5 minuten gestellt";
          };
        }
      ];
    }
    {
      alias = "Start Timer 10min";
      trigger = {
        platform = "state";
        entity_id = button;
        to =  "double";
      };
      condition =
      {
        condition = "state";
        entity_id = "timer.kurzzeitwecker";
        state =  "idle";
      };
      action =
      [
        {
          service = "timer.start";
          entity_id =  "timer.kurzzeitwecker";
          duration = "00:10:00";
        }
        {
          service = "notify.telegrambot";
          data = {
            title = "Timer gestartet";
            message = "Timer auf 10 minuten gestellt";
          };
        }
      ];
    }
    {
      alias = "Stop timer on triple click";
      trigger =
      {
        platform = "state";
        entity_id = button;
        to =  "triple";
      };
      condition =
      {
        condition = "state";
        entity_id = "timer.kurzzeitwecker";
        state =  "active";
      };

      action = [
        {
          service = "timer.stop";
          entity_id =  "timer.kurzzeitwecker";
        }
        {
          service = "notify.telegrambot";
          data = {
            title = "Timer gestoppt";
          };
        }
      ];
    }
  ];
}