-
Notifications
You must be signed in to change notification settings - Fork 33
/
zha_ikea_tradfri_5button_remote_preset.yaml
266 lines (244 loc) · 8.36 KB
/
zha_ikea_tradfri_5button_remote_preset.yaml
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
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
---
# This automation simulates the use of the IKEA TRADFRI Remote control
# connected through ZHA.
# | Button | Action |
# | -------- | ------------------- |
# | Power | Toggle the light |
# | Dim-Up | Increase brightness |
# | Dim-Down | Decrease brightness |
# | Right | Next preset |
# | Left | Previous preset |
# Create an input_select (Dropdown) helper and add hs_color preset options.
# You can copy/paste the hs_color value from the Developer Tools > States.
# For example, on the States tab you see "hs_color: 38.222, 52.941", then
# you can add "(38.222, 52.941)" as an option to the input_select Helper.
# You can also add a comment (i.e. name of the preset) like this
# "(38.222, 52.941) # default" to help you remember what the values mean.
# Example presets:
# - (360, 100) # red
# - (120, 100) # green
# - (225, 100) # blue
# - (38.222, 52.941) # default
blueprint:
source_url: https://github.com/niro1987/homeassistant-config/blob/main/blueprints/automation/niro1987/zha_ikea_tradfri_5button_remote_preset.yaml
name: ZHA - IKEA TRADFRI - 5 Button Remote - Preset Colors
description: >-
This automation simulates the use of the IKEA TRADFRI remote control
connected through ZHA.
domain: automation
input:
remote:
name: IKEA TRADFRI remote control
description: Select the remote control you wish to use.
selector:
device:
filter:
- integration: zha
manufacturer: IKEA of Sweden
model: TRADFRI remote control
light:
name: Light
description: Select the light entity you wish to control.
selector:
entity:
filter:
- domain: light
speed:
name: Speed
description: The speed in which to update the light when the button is held.
selector:
number:
min: 100
max: 1000
step: 100
unit_of_measurement: milliseconds
mode: slider
default: 500
preset:
name: Helper
description: Select the helper entity with you pre defined settings.
selector:
entity:
filter:
- domain: input_select
mode: restart
max_exceeded: silent
variables:
var_preset: !input preset
var_speed: !input speed
trigger:
- platform: event
event_type: zha_event
event_data:
device_id: !input remote
action:
# Select the last option of the preset if it is unknown.
- choose:
- conditions:
- condition: state
entity_id: !input preset
state: "unknown"
sequence:
- service: input_select.select_last
target:
entity_id: !input preset
- choose:
# Short-Press on the power button.
- conditions:
- condition: template
value_template: '{{ trigger.event.data.command == "toggle" }}'
sequence:
- service: light.toggle
target:
entity_id: !input light
# Long-Press on the power button.
- conditions:
- condition: template
value_template: '{{ trigger.event.data.command == "move_to_level_with_on_off" }}'
sequence:
- service: light.turn_on
target:
entity_id: !input light
data:
brightness: 254
hs_color:
- 38.222
- 52.941
# Short-Press on the dim-up button.
- conditions:
- condition: template
value_template: '{{ trigger.event.data.command == "step_with_on_off" }}'
sequence:
- service: light.turn_on
target:
entity_id: !input light
data:
brightness_step_pct: 20
transition: "{{ (var_speed / 1000)|float }}"
# Long-Press on the dim-up button.
- conditions:
- condition: template
value_template: '{{ trigger.event.data.command == "move_with_on_off" }}'
sequence:
- repeat:
while: []
sequence:
- service: light.turn_on
target:
entity_id: !input light
data:
brightness_step_pct: 10
transition: "{{ (var_speed / 1000)|float }}"
- delay:
milliseconds: !input speed
# Short-Press on the dim-down button.
- conditions:
- condition: template
value_template: '{{ trigger.event.data.command == "step" }}'
sequence:
- service: light.turn_on
target:
entity_id: !input light
data:
brightness_step_pct: -20
transition: "{{ (var_speed / 1000)|float }}"
# Long-Press on the dim-down button.
- conditions:
- condition: template
value_template: '{{ trigger.event.data.command == "move" }}'
sequence:
- repeat:
while: []
sequence:
- service: light.turn_on
target:
entity_id: !input light
data:
brightness_step_pct: -10
transition: "{{ (var_speed / 1000)|float }}"
- delay:
milliseconds: !input speed
# Short-Press on the color-up button.
- conditions:
- condition: template
value_template: '{{ trigger.event.data.command == "press" }}'
- condition: template
value_template: "{{ trigger.event.data.args == [256,13,0] }}"
sequence:
- service: input_select.select_next
target:
entity_id: !input preset
data:
cycle: true
- service: light.turn_on
target:
entity_id: !input light
data:
transition: "{{ (var_speed / 1000)|float }}"
hs_color: "{{ states(var_preset) }}"
# Long-Press on the color-up button.
- conditions:
- condition: template
value_template: '{{ trigger.event.data.command == "hold" }}'
- condition: template
value_template: "{{ trigger.event.data.args == [3328,0] }}"
sequence:
- repeat:
while: []
sequence:
- service: input_select.select_next
target:
entity_id: !input preset
data:
cycle: true
- service: light.turn_on
target:
entity_id: !input light
data:
transition: "{{ (var_speed / 1000)|float }}"
hs_color: "{{ states(var_preset) }}"
- delay:
milliseconds: !input speed
# Short-Press on the color-down button.
- conditions:
- condition: template
value_template: '{{ trigger.event.data.command == "press" }}'
- condition: template
value_template: "{{ trigger.event.data.args == [257,13,0] }}"
sequence:
- service: input_select.select_previous
target:
entity_id: !input preset
data:
cycle: true
- service: light.turn_on
target:
entity_id: !input light
data:
transition: "{{ (var_speed / 1000)|float }}"
hs_color: "{{ states(var_preset) }}"
# Long-Press on the color-down button.
- conditions:
- condition: template
value_template: '{{ trigger.event.data.command == "hold" }}'
- condition: template
value_template: "{{ trigger.event.data.args == [3329,0] }}"
sequence:
- repeat:
while: []
sequence:
- service: input_select.select_previous
target:
entity_id: !input preset
data:
cycle: true
- service: light.turn_on
target:
entity_id: !input light
data:
transition: "{{ (var_speed / 1000)|float }}"
hs_color: "{{ states(var_preset) }}"
- delay:
milliseconds: !input speed
# Any other event will cancel the repeat loops.
default: []