1 """Provides device automations for deconz events."""
3 from __future__
import annotations
5 import voluptuous
as vol
8 DEVICE_TRIGGER_BASE_SCHEMA,
9 InvalidDeviceAutomationConfig,
26 from .deconz_event
import (
32 DeconzRelativeRotaryEvent,
34 from .hub
import DeconzHub
36 CONF_SUBTYPE =
"subtype"
38 CONF_SHORT_PRESS =
"remote_button_short_press"
39 CONF_SHORT_RELEASE =
"remote_button_short_release"
40 CONF_LONG_PRESS =
"remote_button_long_press"
41 CONF_LONG_RELEASE =
"remote_button_long_release"
42 CONF_DOUBLE_PRESS =
"remote_button_double_press"
43 CONF_TRIPLE_PRESS =
"remote_button_triple_press"
44 CONF_QUADRUPLE_PRESS =
"remote_button_quadruple_press"
45 CONF_QUINTUPLE_PRESS =
"remote_button_quintuple_press"
46 CONF_ROTATED =
"remote_button_rotated"
47 CONF_ROTATED_FAST =
"remote_button_rotated_fast"
48 CONF_ROTATION_STOPPED =
"remote_button_rotation_stopped"
49 CONF_AWAKE =
"remote_awakened"
50 CONF_MOVE =
"remote_moved"
51 CONF_DOUBLE_TAP =
"remote_double_tap"
52 CONF_SHAKE =
"remote_gyro_activated"
53 CONF_FREE_FALL =
"remote_falling"
54 CONF_FLIP_90 =
"remote_flip_90_degrees"
55 CONF_FLIP_180 =
"remote_flip_180_degrees"
56 CONF_MOVE_ANY =
"remote_moved_any_side"
57 CONF_DOUBLE_TAP_ANY =
"remote_double_tap_any_side"
58 CONF_TURN_CW =
"remote_turned_clockwise"
59 CONF_TURN_CCW =
"remote_turned_counter_clockwise"
60 CONF_ROTATE_FROM_SIDE_1 =
"remote_rotate_from_side_1"
61 CONF_ROTATE_FROM_SIDE_2 =
"remote_rotate_from_side_2"
62 CONF_ROTATE_FROM_SIDE_3 =
"remote_rotate_from_side_3"
63 CONF_ROTATE_FROM_SIDE_4 =
"remote_rotate_from_side_4"
64 CONF_ROTATE_FROM_SIDE_5 =
"remote_rotate_from_side_5"
65 CONF_ROTATE_FROM_SIDE_6 =
"remote_rotate_from_side_6"
67 CONF_TURN_ON =
"turn_on"
68 CONF_TURN_OFF =
"turn_off"
69 CONF_DIM_UP =
"dim_up"
70 CONF_DIM_DOWN =
"dim_down"
75 CONF_BOTH_BUTTONS =
"both_buttons"
76 CONF_TOP_BUTTONS =
"top_buttons"
77 CONF_BOTTOM_BUTTONS =
"bottom_buttons"
78 CONF_BUTTON_1 =
"button_1"
79 CONF_BUTTON_2 =
"button_2"
80 CONF_BUTTON_3 =
"button_3"
81 CONF_BUTTON_4 =
"button_4"
82 CONF_BUTTON_5 =
"button_5"
83 CONF_BUTTON_6 =
"button_6"
84 CONF_BUTTON_7 =
"button_7"
85 CONF_BUTTON_8 =
"button_8"
86 CONF_SIDE_1 =
"side_1"
87 CONF_SIDE_2 =
"side_2"
88 CONF_SIDE_3 =
"side_3"
89 CONF_SIDE_4 =
"side_4"
90 CONF_SIDE_5 =
"side_5"
91 CONF_SIDE_6 =
"side_6"
94 HUE_DIMMER_REMOTE_MODEL_GEN1 =
"RWL020"
95 HUE_DIMMER_REMOTE_MODEL_GEN2 =
"RWL021"
96 HUE_DIMMER_REMOTE_MODEL_GEN3 =
"RWL022"
98 (CONF_SHORT_PRESS, CONF_TURN_ON): {CONF_EVENT: 1000},
99 (CONF_SHORT_RELEASE, CONF_TURN_ON): {CONF_EVENT: 1002},
100 (CONF_LONG_PRESS, CONF_TURN_ON): {CONF_EVENT: 1001},
101 (CONF_LONG_RELEASE, CONF_TURN_ON): {CONF_EVENT: 1003},
102 (CONF_SHORT_PRESS, CONF_DIM_UP): {CONF_EVENT: 2000},
103 (CONF_SHORT_RELEASE, CONF_DIM_UP): {CONF_EVENT: 2002},
104 (CONF_LONG_PRESS, CONF_DIM_UP): {CONF_EVENT: 2001},
105 (CONF_LONG_RELEASE, CONF_DIM_UP): {CONF_EVENT: 2003},
106 (CONF_SHORT_PRESS, CONF_DIM_DOWN): {CONF_EVENT: 3000},
107 (CONF_SHORT_RELEASE, CONF_DIM_DOWN): {CONF_EVENT: 3002},
108 (CONF_LONG_PRESS, CONF_DIM_DOWN): {CONF_EVENT: 3001},
109 (CONF_LONG_RELEASE, CONF_DIM_DOWN): {CONF_EVENT: 3003},
110 (CONF_SHORT_PRESS, CONF_TURN_OFF): {CONF_EVENT: 4000},
111 (CONF_SHORT_RELEASE, CONF_TURN_OFF): {CONF_EVENT: 4002},
112 (CONF_LONG_PRESS, CONF_TURN_OFF): {CONF_EVENT: 4001},
113 (CONF_LONG_RELEASE, CONF_TURN_OFF): {CONF_EVENT: 4003},
116 HUE_BUTTON_REMOTE_MODEL =
"ROM001"
117 HUE_BUTTON_REMOTE = {
118 (CONF_SHORT_PRESS, CONF_TURN_ON): {CONF_EVENT: 1000},
119 (CONF_SHORT_RELEASE, CONF_TURN_ON): {CONF_EVENT: 1002},
120 (CONF_LONG_PRESS, CONF_TURN_ON): {CONF_EVENT: 1001},
121 (CONF_LONG_RELEASE, CONF_TURN_ON): {CONF_EVENT: 1003},
124 HUE_TAP_REMOTE_MODEL =
"ZGPSWITCH"
126 (CONF_SHORT_PRESS, CONF_BUTTON_1): {CONF_EVENT: 34},
127 (CONF_SHORT_PRESS, CONF_BUTTON_2): {CONF_EVENT: 16},
128 (CONF_SHORT_PRESS, CONF_BUTTON_3): {CONF_EVENT: 17},
129 (CONF_SHORT_PRESS, CONF_BUTTON_4): {CONF_EVENT: 18},
132 HUE_WALL_REMOTE_MODEL =
"RDM001"
134 (CONF_SHORT_PRESS, CONF_BUTTON_1): {CONF_EVENT: 1000},
135 (CONF_SHORT_RELEASE, CONF_BUTTON_1): {CONF_EVENT: 1002},
136 (CONF_LONG_PRESS, CONF_BUTTON_1): {CONF_EVENT: 1001},
137 (CONF_LONG_RELEASE, CONF_BUTTON_1): {CONF_EVENT: 1003},
138 (CONF_SHORT_PRESS, CONF_BUTTON_2): {CONF_EVENT: 2000},
139 (CONF_SHORT_RELEASE, CONF_BUTTON_2): {CONF_EVENT: 2002},
140 (CONF_LONG_PRESS, CONF_BUTTON_2): {CONF_EVENT: 2001},
141 (CONF_LONG_RELEASE, CONF_BUTTON_2): {CONF_EVENT: 2003},
144 FRIENDS_OF_HUE_SWITCH_MODEL =
"FOHSWITCH"
145 FRIENDS_OF_HUE_SWITCH = {
146 (CONF_SHORT_PRESS, CONF_BUTTON_1): {CONF_EVENT: 1000},
147 (CONF_SHORT_RELEASE, CONF_BUTTON_1): {CONF_EVENT: 1002},
148 (CONF_LONG_PRESS, CONF_BUTTON_1): {CONF_EVENT: 1001},
149 (CONF_LONG_RELEASE, CONF_BUTTON_1): {CONF_EVENT: 1003},
150 (CONF_SHORT_PRESS, CONF_BUTTON_2): {CONF_EVENT: 2000},
151 (CONF_SHORT_RELEASE, CONF_BUTTON_2): {CONF_EVENT: 2002},
152 (CONF_LONG_PRESS, CONF_BUTTON_2): {CONF_EVENT: 2001},
153 (CONF_LONG_RELEASE, CONF_BUTTON_2): {CONF_EVENT: 2003},
154 (CONF_SHORT_PRESS, CONF_BUTTON_3): {CONF_EVENT: 3000},
155 (CONF_SHORT_RELEASE, CONF_BUTTON_3): {CONF_EVENT: 3002},
156 (CONF_LONG_PRESS, CONF_BUTTON_3): {CONF_EVENT: 3001},
157 (CONF_LONG_RELEASE, CONF_BUTTON_3): {CONF_EVENT: 3003},
158 (CONF_SHORT_PRESS, CONF_BUTTON_4): {CONF_EVENT: 4000},
159 (CONF_SHORT_RELEASE, CONF_BUTTON_4): {CONF_EVENT: 4002},
160 (CONF_LONG_PRESS, CONF_BUTTON_4): {CONF_EVENT: 4001},
161 (CONF_LONG_RELEASE, CONF_BUTTON_4): {CONF_EVENT: 4003},
162 (CONF_SHORT_PRESS, CONF_TOP_BUTTONS): {CONF_EVENT: 5000},
163 (CONF_SHORT_RELEASE, CONF_TOP_BUTTONS): {CONF_EVENT: 5002},
164 (CONF_LONG_PRESS, CONF_TOP_BUTTONS): {CONF_EVENT: 5001},
165 (CONF_LONG_RELEASE, CONF_TOP_BUTTONS): {CONF_EVENT: 5003},
166 (CONF_SHORT_PRESS, CONF_BOTTOM_BUTTONS): {CONF_EVENT: 6000},
167 (CONF_SHORT_RELEASE, CONF_BOTTOM_BUTTONS): {CONF_EVENT: 6002},
168 (CONF_LONG_PRESS, CONF_BOTTOM_BUTTONS): {CONF_EVENT: 6001},
169 (CONF_LONG_RELEASE, CONF_BOTTOM_BUTTONS): {CONF_EVENT: 6003},
172 RODRET_REMOTE_MODEL =
"RODRET Dimmer"
174 (CONF_SHORT_RELEASE, CONF_TURN_ON): {CONF_EVENT: 1002},
175 (CONF_LONG_PRESS, CONF_TURN_ON): {CONF_EVENT: 1001},
176 (CONF_LONG_RELEASE, CONF_TURN_ON): {CONF_EVENT: 1003},
177 (CONF_SHORT_RELEASE, CONF_TURN_OFF): {CONF_EVENT: 2002},
178 (CONF_LONG_PRESS, CONF_TURN_OFF): {CONF_EVENT: 2001},
179 (CONF_LONG_RELEASE, CONF_TURN_OFF): {CONF_EVENT: 2003},
182 SOMRIG_REMOTE_MODEL =
"SOMRIG shortcut button"
184 (CONF_SHORT_PRESS, CONF_BUTTON_1): {CONF_EVENT: 1000},
185 (CONF_SHORT_RELEASE, CONF_BUTTON_1): {CONF_EVENT: 1002},
186 (CONF_LONG_PRESS, CONF_BUTTON_1): {CONF_EVENT: 1001},
187 (CONF_LONG_RELEASE, CONF_BUTTON_1): {CONF_EVENT: 1003},
188 (CONF_DOUBLE_PRESS, CONF_BUTTON_1): {CONF_EVENT: 1004},
189 (CONF_SHORT_PRESS, CONF_BUTTON_2): {CONF_EVENT: 2000},
190 (CONF_SHORT_RELEASE, CONF_BUTTON_2): {CONF_EVENT: 2002},
191 (CONF_LONG_PRESS, CONF_BUTTON_2): {CONF_EVENT: 2001},
192 (CONF_LONG_RELEASE, CONF_BUTTON_2): {CONF_EVENT: 2003},
193 (CONF_DOUBLE_PRESS, CONF_BUTTON_2): {CONF_EVENT: 2004},
196 STYRBAR_REMOTE_MODEL =
"Remote Control N2"
198 (CONF_SHORT_RELEASE, CONF_DIM_UP): {CONF_EVENT: 1002},
199 (CONF_LONG_PRESS, CONF_DIM_UP): {CONF_EVENT: 1001},
200 (CONF_LONG_RELEASE, CONF_DIM_UP): {CONF_EVENT: 1003},
201 (CONF_SHORT_RELEASE, CONF_DIM_DOWN): {CONF_EVENT: 2002},
202 (CONF_LONG_PRESS, CONF_DIM_DOWN): {CONF_EVENT: 2001},
203 (CONF_LONG_RELEASE, CONF_DIM_DOWN): {CONF_EVENT: 2003},
204 (CONF_SHORT_RELEASE, CONF_LEFT): {CONF_EVENT: 3002},
205 (CONF_LONG_PRESS, CONF_LEFT): {CONF_EVENT: 3001},
206 (CONF_LONG_RELEASE, CONF_LEFT): {CONF_EVENT: 3003},
207 (CONF_SHORT_RELEASE, CONF_RIGHT): {CONF_EVENT: 4002},
208 (CONF_LONG_PRESS, CONF_RIGHT): {CONF_EVENT: 4001},
209 (CONF_LONG_RELEASE, CONF_RIGHT): {CONF_EVENT: 4003},
212 SYMFONISK_SOUND_CONTROLLER_MODEL =
"SYMFONISK Sound Controller"
213 SYMFONISK_SOUND_CONTROLLER = {
214 (CONF_SHORT_PRESS, CONF_TURN_ON): {CONF_EVENT: 1002},
215 (CONF_DOUBLE_PRESS, CONF_TURN_ON): {CONF_EVENT: 1004},
216 (CONF_TRIPLE_PRESS, CONF_TURN_ON): {CONF_EVENT: 1005},
217 (CONF_ROTATED, CONF_LEFT): {CONF_EVENT: 2001},
218 (CONF_ROTATION_STOPPED, CONF_LEFT): {CONF_EVENT: 2003},
219 (CONF_ROTATED, CONF_RIGHT): {CONF_EVENT: 3001},
220 (CONF_ROTATION_STOPPED, CONF_RIGHT): {CONF_EVENT: 3003},
223 TRADFRI_ON_OFF_SWITCH_MODEL =
"TRADFRI on/off switch"
224 TRADFRI_ON_OFF_SWITCH = {
225 (CONF_SHORT_PRESS, CONF_TURN_ON): {CONF_EVENT: 1002},
226 (CONF_LONG_PRESS, CONF_TURN_ON): {CONF_EVENT: 1001},
227 (CONF_LONG_RELEASE, CONF_TURN_ON): {CONF_EVENT: 1003},
228 (CONF_SHORT_PRESS, CONF_TURN_OFF): {CONF_EVENT: 2002},
229 (CONF_LONG_PRESS, CONF_TURN_OFF): {CONF_EVENT: 2001},
230 (CONF_LONG_RELEASE, CONF_TURN_OFF): {CONF_EVENT: 2003},
233 TRADFRI_OPEN_CLOSE_REMOTE_MODEL =
"TRADFRI open/close remote"
234 TRADFRI_OPEN_CLOSE_REMOTE = {
235 (CONF_SHORT_PRESS, CONF_OPEN): {CONF_EVENT: 1002},
236 (CONF_LONG_PRESS, CONF_OPEN): {CONF_EVENT: 1003},
237 (CONF_SHORT_PRESS, CONF_CLOSE): {CONF_EVENT: 2002},
238 (CONF_LONG_PRESS, CONF_CLOSE): {CONF_EVENT: 2003},
241 TRADFRI_REMOTE_MODEL =
"TRADFRI remote control"
243 (CONF_SHORT_PRESS, CONF_TURN_ON): {CONF_EVENT: 1002},
244 (CONF_LONG_PRESS, CONF_TURN_ON): {CONF_EVENT: 1001},
245 (CONF_SHORT_PRESS, CONF_DIM_UP): {CONF_EVENT: 2002},
246 (CONF_LONG_PRESS, CONF_DIM_UP): {CONF_EVENT: 2001},
247 (CONF_LONG_RELEASE, CONF_DIM_UP): {CONF_EVENT: 2003},
248 (CONF_SHORT_PRESS, CONF_DIM_DOWN): {CONF_EVENT: 3002},
249 (CONF_LONG_PRESS, CONF_DIM_DOWN): {CONF_EVENT: 3001},
250 (CONF_LONG_RELEASE, CONF_DIM_DOWN): {CONF_EVENT: 3003},
251 (CONF_SHORT_PRESS, CONF_LEFT): {CONF_EVENT: 4002},
252 (CONF_LONG_PRESS, CONF_LEFT): {CONF_EVENT: 4001},
253 (CONF_LONG_RELEASE, CONF_LEFT): {CONF_EVENT: 4003},
254 (CONF_SHORT_PRESS, CONF_RIGHT): {CONF_EVENT: 5002},
255 (CONF_LONG_PRESS, CONF_RIGHT): {CONF_EVENT: 5001},
256 (CONF_LONG_RELEASE, CONF_RIGHT): {CONF_EVENT: 5003},
259 TRADFRI_SHORTCUT_REMOTE_MODEL =
"TRADFRI SHORTCUT Button"
260 TRADFRI_SHORTCUT_REMOTE = {
261 (CONF_SHORT_PRESS,
""): {CONF_EVENT: 1002},
262 (CONF_LONG_PRESS,
""): {CONF_EVENT: 1001},
263 (CONF_LONG_RELEASE,
""): {CONF_EVENT: 1003},
266 TRADFRI_WIRELESS_DIMMER_MODEL =
"TRADFRI wireless dimmer"
267 TRADFRI_WIRELESS_DIMMER = {
268 (CONF_ROTATED_FAST, CONF_LEFT): {CONF_EVENT: 4002},
269 (CONF_ROTATED, CONF_LEFT): {CONF_EVENT: 3002},
270 (CONF_ROTATED, CONF_RIGHT): {CONF_EVENT: 2002},
271 (CONF_ROTATED_FAST, CONF_RIGHT): {CONF_EVENT: 1002},
274 AQARA_CUBE_MODEL =
"lumi.sensor_cube"
275 AQARA_CUBE_MODEL_ALT1 =
"lumi.sensor_cube.aqgl01"
277 (CONF_ROTATE_FROM_SIDE_1, CONF_SIDE_2): {CONF_EVENT: 2001},
278 (CONF_ROTATE_FROM_SIDE_1, CONF_SIDE_3): {CONF_EVENT: 3001},
279 (CONF_ROTATE_FROM_SIDE_1, CONF_SIDE_4): {CONF_EVENT: 4001},
280 (CONF_ROTATE_FROM_SIDE_1, CONF_SIDE_5): {CONF_EVENT: 5001},
281 (CONF_ROTATE_FROM_SIDE_1, CONF_SIDE_6): {CONF_EVENT: 6001},
282 (CONF_ROTATE_FROM_SIDE_2, CONF_SIDE_1): {CONF_EVENT: 1002},
283 (CONF_ROTATE_FROM_SIDE_2, CONF_SIDE_3): {CONF_EVENT: 3002},
284 (CONF_ROTATE_FROM_SIDE_2, CONF_SIDE_4): {CONF_EVENT: 4002},
285 (CONF_ROTATE_FROM_SIDE_2, CONF_SIDE_5): {CONF_EVENT: 5002},
286 (CONF_ROTATE_FROM_SIDE_2, CONF_SIDE_6): {CONF_EVENT: 6002},
287 (CONF_ROTATE_FROM_SIDE_3, CONF_SIDE_1): {CONF_EVENT: 1003},
288 (CONF_ROTATE_FROM_SIDE_3, CONF_SIDE_2): {CONF_EVENT: 2003},
289 (CONF_ROTATE_FROM_SIDE_3, CONF_SIDE_4): {CONF_EVENT: 4003},
290 (CONF_ROTATE_FROM_SIDE_3, CONF_SIDE_5): {CONF_EVENT: 5003},
291 (CONF_ROTATE_FROM_SIDE_3, CONF_SIDE_6): {CONF_EVENT: 6003},
292 (CONF_ROTATE_FROM_SIDE_4, CONF_SIDE_1): {CONF_EVENT: 1004},
293 (CONF_ROTATE_FROM_SIDE_4, CONF_SIDE_2): {CONF_EVENT: 2004},
294 (CONF_ROTATE_FROM_SIDE_4, CONF_SIDE_3): {CONF_EVENT: 3004},
295 (CONF_ROTATE_FROM_SIDE_4, CONF_SIDE_5): {CONF_EVENT: 5004},
296 (CONF_ROTATE_FROM_SIDE_4, CONF_SIDE_6): {CONF_EVENT: 6004},
297 (CONF_ROTATE_FROM_SIDE_5, CONF_SIDE_1): {CONF_EVENT: 1005},
298 (CONF_ROTATE_FROM_SIDE_5, CONF_SIDE_2): {CONF_EVENT: 2005},
299 (CONF_ROTATE_FROM_SIDE_5, CONF_SIDE_3): {CONF_EVENT: 3005},
300 (CONF_ROTATE_FROM_SIDE_5, CONF_SIDE_4): {CONF_EVENT: 4005},
301 (CONF_ROTATE_FROM_SIDE_5, CONF_SIDE_6): {CONF_EVENT: 6005},
302 (CONF_ROTATE_FROM_SIDE_6, CONF_SIDE_1): {CONF_EVENT: 1006},
303 (CONF_ROTATE_FROM_SIDE_6, CONF_SIDE_2): {CONF_EVENT: 2006},
304 (CONF_ROTATE_FROM_SIDE_6, CONF_SIDE_3): {CONF_EVENT: 3006},
305 (CONF_ROTATE_FROM_SIDE_6, CONF_SIDE_4): {CONF_EVENT: 4006},
306 (CONF_ROTATE_FROM_SIDE_6, CONF_SIDE_5): {CONF_EVENT: 5006},
307 (CONF_MOVE, CONF_SIDE_1): {CONF_EVENT: 1000},
308 (CONF_MOVE, CONF_SIDE_2): {CONF_EVENT: 2000},
309 (CONF_MOVE, CONF_SIDE_3): {CONF_EVENT: 3000},
310 (CONF_MOVE, CONF_SIDE_4): {CONF_EVENT: 4000},
311 (CONF_MOVE, CONF_SIDE_5): {CONF_EVENT: 5000},
312 (CONF_MOVE, CONF_SIDE_6): {CONF_EVENT: 6000},
313 (CONF_DOUBLE_TAP, CONF_SIDE_1): {CONF_EVENT: 1001},
314 (CONF_DOUBLE_TAP, CONF_SIDE_2): {CONF_EVENT: 2002},
315 (CONF_DOUBLE_TAP, CONF_SIDE_3): {CONF_EVENT: 3003},
316 (CONF_DOUBLE_TAP, CONF_SIDE_4): {CONF_EVENT: 4004},
317 (CONF_DOUBLE_TAP, CONF_SIDE_5): {CONF_EVENT: 5005},
318 (CONF_DOUBLE_TAP, CONF_SIDE_6): {CONF_EVENT: 6006},
319 (CONF_AWAKE,
""): {CONF_GESTURE: 0},
320 (CONF_SHAKE,
""): {CONF_GESTURE: 1},
321 (CONF_FREE_FALL,
""): {CONF_GESTURE: 2},
322 (CONF_FLIP_90,
""): {CONF_GESTURE: 3},
323 (CONF_FLIP_180,
""): {CONF_GESTURE: 4},
324 (CONF_MOVE_ANY,
""): {CONF_GESTURE: 5},
325 (CONF_DOUBLE_TAP_ANY,
""): {CONF_GESTURE: 6},
326 (CONF_TURN_CW,
""): {CONF_GESTURE: 7},
327 (CONF_TURN_CCW,
""): {CONF_GESTURE: 8},
330 AQARA_DOUBLE_WALL_SWITCH_MODEL =
"lumi.remote.b286acn01"
331 AQARA_DOUBLE_WALL_SWITCH_MODEL_2020 =
"lumi.remote.b286acn02"
332 AQARA_DOUBLE_WALL_SWITCH = {
333 (CONF_SHORT_PRESS, CONF_LEFT): {CONF_EVENT: 1002},
334 (CONF_LONG_PRESS, CONF_LEFT): {CONF_EVENT: 1001},
335 (CONF_DOUBLE_PRESS, CONF_LEFT): {CONF_EVENT: 1004},
336 (CONF_SHORT_PRESS, CONF_RIGHT): {CONF_EVENT: 2002},
337 (CONF_LONG_PRESS, CONF_RIGHT): {CONF_EVENT: 2001},
338 (CONF_DOUBLE_PRESS, CONF_RIGHT): {CONF_EVENT: 2004},
339 (CONF_SHORT_PRESS, CONF_BOTH_BUTTONS): {CONF_EVENT: 3002},
340 (CONF_LONG_PRESS, CONF_BOTH_BUTTONS): {CONF_EVENT: 3001},
341 (CONF_DOUBLE_PRESS, CONF_BOTH_BUTTONS): {CONF_EVENT: 3004},
344 AQARA_DOUBLE_WALL_SWITCH_WXKG02LM_MODEL =
"lumi.sensor_86sw2"
345 AQARA_DOUBLE_WALL_SWITCH_WXKG02LM = {
346 (CONF_SHORT_PRESS, CONF_LEFT): {CONF_EVENT: 1002},
347 (CONF_SHORT_PRESS, CONF_RIGHT): {CONF_EVENT: 2002},
348 (CONF_SHORT_PRESS, CONF_BOTH_BUTTONS): {CONF_EVENT: 3002},
351 AQARA_DOUBLE_WALL_SWITCH_QBKG12LM_MODEL =
"lumi.ctrl_ln2.aq1"
352 AQARA_DOUBLE_WALL_SWITCH_QBKG12LM = {
353 (CONF_SHORT_PRESS, CONF_LEFT): {CONF_EVENT: 1002},
354 (CONF_DOUBLE_PRESS, CONF_LEFT): {CONF_EVENT: 1004},
355 (CONF_SHORT_PRESS, CONF_RIGHT): {CONF_EVENT: 2002},
356 (CONF_DOUBLE_PRESS, CONF_RIGHT): {CONF_EVENT: 2004},
357 (CONF_SHORT_PRESS, CONF_BOTH_BUTTONS): {CONF_EVENT: 3002},
360 AQARA_SINGLE_WALL_SWITCH_QBKG11LM_MODEL =
"lumi.ctrl_ln1.aq1"
361 AQARA_SINGLE_WALL_SWITCH_QBKG11LM = {
362 (CONF_SHORT_PRESS, CONF_TURN_ON): {CONF_EVENT: 1002},
363 (CONF_DOUBLE_PRESS, CONF_TURN_ON): {CONF_EVENT: 1004},
366 AQARA_SINGLE_WALL_SWITCH_WXKG03LM_MODEL =
"lumi.remote.b186acn01"
367 AQARA_SINGLE_WALL_SWITCH_WXKG06LM_MODEL =
"lumi.remote.b186acn02"
368 AQARA_SINGLE_WALL_SWITCH = {
369 (CONF_SHORT_PRESS, CONF_TURN_ON): {CONF_EVENT: 1002},
370 (CONF_LONG_PRESS, CONF_TURN_ON): {CONF_EVENT: 1001},
371 (CONF_DOUBLE_PRESS, CONF_TURN_ON): {CONF_EVENT: 1004},
374 AQARA_MINI_SWITCH_WXKG11LM_MODEL =
"lumi.remote.b1acn01"
375 AQARA_MINI_SWITCH_WBR02D_MODEL =
"lumi.remote.b1acn02"
376 AQARA_MINI_SWITCH = {
377 (CONF_SHORT_PRESS, CONF_TURN_ON): {CONF_EVENT: 1002},
378 (CONF_DOUBLE_PRESS, CONF_TURN_ON): {CONF_EVENT: 1004},
379 (CONF_LONG_PRESS, CONF_TURN_ON): {CONF_EVENT: 1001},
380 (CONF_LONG_RELEASE, CONF_TURN_ON): {CONF_EVENT: 1003},
384 AQARA_ROUND_SWITCH_MODEL =
"lumi.sensor_switch"
385 AQARA_ROUND_SWITCH = {
386 (CONF_SHORT_PRESS, CONF_TURN_ON): {CONF_EVENT: 1000},
387 (CONF_SHORT_RELEASE, CONF_TURN_ON): {CONF_EVENT: 1002},
388 (CONF_DOUBLE_PRESS, CONF_TURN_ON): {CONF_EVENT: 1004},
389 (CONF_TRIPLE_PRESS, CONF_TURN_ON): {CONF_EVENT: 1005},
390 (CONF_QUADRUPLE_PRESS, CONF_TURN_ON): {CONF_EVENT: 1006},
391 (CONF_QUINTUPLE_PRESS, CONF_TURN_ON): {CONF_EVENT: 1010},
392 (CONF_LONG_PRESS, CONF_TURN_ON): {CONF_EVENT: 1001},
393 (CONF_LONG_RELEASE, CONF_TURN_ON): {CONF_EVENT: 1003},
396 AQARA_SQUARE_SWITCH_MODEL =
"lumi.sensor_switch.aq3"
397 AQARA_SQUARE_SWITCH = {
398 (CONF_SHORT_PRESS, CONF_TURN_ON): {CONF_EVENT: 1002},
399 (CONF_DOUBLE_PRESS, CONF_TURN_ON): {CONF_EVENT: 1004},
400 (CONF_LONG_PRESS, CONF_TURN_ON): {CONF_EVENT: 1001},
401 (CONF_LONG_RELEASE, CONF_TURN_ON): {CONF_EVENT: 1003},
402 (CONF_SHAKE,
""): {CONF_EVENT: 1007},
405 AQARA_SQUARE_SWITCH_WXKG11LM_2016_MODEL =
"lumi.sensor_switch.aq2"
406 AQARA_SQUARE_SWITCH_WXKG11LM_2016 = {
407 (CONF_SHORT_PRESS, CONF_TURN_ON): {CONF_EVENT: 1002},
408 (CONF_DOUBLE_PRESS, CONF_TURN_ON): {CONF_EVENT: 1004},
409 (CONF_TRIPLE_PRESS, CONF_TURN_ON): {CONF_EVENT: 1005},
410 (CONF_QUADRUPLE_PRESS, CONF_TURN_ON): {CONF_EVENT: 1006},
413 AQARA_OPPLE_2_BUTTONS_MODEL =
"lumi.remote.b286opcn01"
414 AQARA_OPPLE_2_BUTTONS = {
415 (CONF_LONG_PRESS, CONF_TURN_OFF): {CONF_EVENT: 1001},
416 (CONF_SHORT_RELEASE, CONF_TURN_OFF): {CONF_EVENT: 1002},
417 (CONF_LONG_RELEASE, CONF_TURN_OFF): {CONF_EVENT: 1003},
418 (CONF_DOUBLE_PRESS, CONF_TURN_OFF): {CONF_EVENT: 1004},
419 (CONF_TRIPLE_PRESS, CONF_TURN_OFF): {CONF_EVENT: 1005},
420 (CONF_LONG_PRESS, CONF_TURN_ON): {CONF_EVENT: 2001},
421 (CONF_SHORT_RELEASE, CONF_TURN_ON): {CONF_EVENT: 2002},
422 (CONF_LONG_RELEASE, CONF_TURN_ON): {CONF_EVENT: 2003},
423 (CONF_DOUBLE_PRESS, CONF_TURN_ON): {CONF_EVENT: 2004},
424 (CONF_TRIPLE_PRESS, CONF_TURN_ON): {CONF_EVENT: 2005},
427 AQARA_OPPLE_4_BUTTONS_MODEL =
"lumi.remote.b486opcn01"
428 AQARA_OPPLE_4_BUTTONS = {
429 **AQARA_OPPLE_2_BUTTONS,
430 (CONF_LONG_PRESS, CONF_DIM_DOWN): {CONF_EVENT: 3001},
431 (CONF_SHORT_RELEASE, CONF_DIM_DOWN): {CONF_EVENT: 3002},
432 (CONF_LONG_RELEASE, CONF_DIM_DOWN): {CONF_EVENT: 3003},
433 (CONF_DOUBLE_PRESS, CONF_DIM_DOWN): {CONF_EVENT: 3004},
434 (CONF_TRIPLE_PRESS, CONF_DIM_DOWN): {CONF_EVENT: 3005},
435 (CONF_LONG_PRESS, CONF_DIM_UP): {CONF_EVENT: 4001},
436 (CONF_SHORT_RELEASE, CONF_DIM_UP): {CONF_EVENT: 4002},
437 (CONF_LONG_RELEASE, CONF_DIM_UP): {CONF_EVENT: 4003},
438 (CONF_DOUBLE_PRESS, CONF_DIM_UP): {CONF_EVENT: 4004},
439 (CONF_TRIPLE_PRESS, CONF_DIM_UP): {CONF_EVENT: 4005},
442 AQARA_OPPLE_6_BUTTONS_MODEL =
"lumi.remote.b686opcn01"
443 AQARA_OPPLE_6_BUTTONS = {
444 **AQARA_OPPLE_4_BUTTONS,
445 (CONF_LONG_PRESS, CONF_LEFT): {CONF_EVENT: 5001},
446 (CONF_SHORT_RELEASE, CONF_LEFT): {CONF_EVENT: 5002},
447 (CONF_LONG_RELEASE, CONF_LEFT): {CONF_EVENT: 5003},
448 (CONF_DOUBLE_PRESS, CONF_LEFT): {CONF_EVENT: 5004},
449 (CONF_TRIPLE_PRESS, CONF_LEFT): {CONF_EVENT: 5005},
450 (CONF_LONG_PRESS, CONF_RIGHT): {CONF_EVENT: 6001},
451 (CONF_SHORT_RELEASE, CONF_RIGHT): {CONF_EVENT: 6002},
452 (CONF_LONG_RELEASE, CONF_RIGHT): {CONF_EVENT: 6003},
453 (CONF_DOUBLE_PRESS, CONF_RIGHT): {CONF_EVENT: 6004},
454 (CONF_TRIPLE_PRESS, CONF_RIGHT): {CONF_EVENT: 6005},
457 DRESDEN_ELEKTRONIK_LIGHTING_SWITCH_MODEL =
"Lighting Switch"
458 DRESDEN_ELEKTRONIK_LIGHTING_SWITCH = {
459 (CONF_SHORT_RELEASE, CONF_TURN_ON): {CONF_EVENT: 1002},
460 (CONF_LONG_PRESS, CONF_TURN_ON): {CONF_EVENT: 1001},
461 (CONF_LONG_RELEASE, CONF_TURN_ON): {CONF_EVENT: 1003},
462 (CONF_SHORT_RELEASE, CONF_DIM_UP): {CONF_EVENT: 2002},
463 (CONF_LONG_PRESS, CONF_DIM_UP): {CONF_EVENT: 2001},
464 (CONF_LONG_RELEASE, CONF_DIM_UP): {CONF_EVENT: 2003},
465 (CONF_SHORT_RELEASE, CONF_DIM_DOWN): {CONF_EVENT: 3002},
466 (CONF_LONG_PRESS, CONF_DIM_DOWN): {CONF_EVENT: 3001},
467 (CONF_LONG_RELEASE, CONF_DIM_DOWN): {CONF_EVENT: 3003},
468 (CONF_SHORT_RELEASE, CONF_TURN_OFF): {CONF_EVENT: 4002},
469 (CONF_LONG_PRESS, CONF_TURN_OFF): {CONF_EVENT: 4001},
470 (CONF_LONG_RELEASE, CONF_TURN_OFF): {CONF_EVENT: 4003},
473 DRESDEN_ELEKTRONIK_SCENE_SWITCH_MODEL =
"Scene Switch"
474 DRESDEN_ELEKTRONIK_SCENE_SWITCH = {
475 (CONF_SHORT_RELEASE, CONF_TURN_ON): {CONF_EVENT: 1002},
476 (CONF_LONG_PRESS, CONF_TURN_ON): {CONF_EVENT: 1001},
477 (CONF_LONG_RELEASE, CONF_TURN_ON): {CONF_EVENT: 1003},
478 (CONF_SHORT_RELEASE, CONF_DIM_UP): {CONF_EVENT: 2002},
479 (CONF_LONG_PRESS, CONF_DIM_UP): {CONF_EVENT: 2001},
480 (CONF_LONG_RELEASE, CONF_DIM_UP): {CONF_EVENT: 2003},
481 (CONF_SHORT_RELEASE, CONF_BUTTON_1): {CONF_EVENT: 3002},
482 (CONF_SHORT_RELEASE, CONF_BUTTON_2): {CONF_EVENT: 4002},
483 (CONF_SHORT_RELEASE, CONF_BUTTON_3): {CONF_EVENT: 5002},
484 (CONF_SHORT_RELEASE, CONF_BUTTON_4): {CONF_EVENT: 6002},
487 GIRA_JUNG_SWITCH_MODEL =
"HS_4f_GJ_1"
488 GIRA_SWITCH_MODEL =
"WS_4f_J_1"
489 JUNG_SWITCH_MODEL =
"WS_3f_G_1"
491 (CONF_SHORT_RELEASE, CONF_TURN_ON): {CONF_EVENT: 1002},
492 (CONF_LONG_PRESS, CONF_TURN_ON): {CONF_EVENT: 1001},
493 (CONF_LONG_RELEASE, CONF_TURN_ON): {CONF_EVENT: 1003},
494 (CONF_SHORT_RELEASE, CONF_DIM_UP): {CONF_EVENT: 2002},
495 (CONF_LONG_PRESS, CONF_DIM_UP): {CONF_EVENT: 2001},
496 (CONF_LONG_RELEASE, CONF_DIM_UP): {CONF_EVENT: 2003},
497 (CONF_SHORT_RELEASE, CONF_BUTTON_3): {CONF_EVENT: 3002},
498 (CONF_SHORT_RELEASE, CONF_BUTTON_4): {CONF_EVENT: 4002},
499 (CONF_SHORT_RELEASE, CONF_BUTTON_5): {CONF_EVENT: 5002},
500 (CONF_SHORT_RELEASE, CONF_BUTTON_6): {CONF_EVENT: 6002},
501 (CONF_SHORT_RELEASE, CONF_BUTTON_7): {CONF_EVENT: 7002},
502 (CONF_SHORT_RELEASE, CONF_BUTTON_8): {CONF_EVENT: 8002},
505 LEGRAND_ZGP_TOGGLE_SWITCH_MODEL =
"LEGRANDZGPTOGGLESWITCH"
506 LEGRAND_ZGP_TOGGLE_SWITCH = {
507 (CONF_SHORT_PRESS, CONF_TURN_ON): {CONF_EVENT: 1002},
508 (CONF_DOUBLE_PRESS, CONF_TURN_ON): {CONF_EVENT: 1004},
511 LEGRAND_ZGP_SCENE_SWITCH_MODEL =
"LEGRANDZGPSCENESWITCH"
512 LEGRAND_ZGP_SCENE_SWITCH = {
513 (CONF_SHORT_PRESS, CONF_BUTTON_1): {CONF_EVENT: 1002},
514 (CONF_SHORT_PRESS, CONF_BUTTON_2): {CONF_EVENT: 2002},
515 (CONF_SHORT_PRESS, CONF_BUTTON_3): {CONF_EVENT: 3002},
516 (CONF_SHORT_PRESS, CONF_BUTTON_4): {CONF_EVENT: 4002},
519 LIDL_SILVERCREST_DOORBELL_MODEL =
"HG06668"
520 LIDL_SILVERCREST_DOORBELL_MODEL_2 =
"TS0211"
521 LIDL_SILVERCREST_DOORBELL = {
522 (CONF_SHORT_PRESS,
""): {CONF_EVENT: 1002},
525 LIDL_SILVERCREST_BUTTON_REMOTE_MODEL =
"TS004F"
526 LIDL_SILVERCREST_BUTTON_REMOTE = {
527 (CONF_SHORT_PRESS,
""): {CONF_EVENT: 1002},
528 (CONF_DOUBLE_PRESS,
""): {CONF_EVENT: 1004},
531 LIGHTIFIY_FOUR_BUTTON_REMOTE_MODEL =
"Switch-LIGHTIFY"
532 LIGHTIFIY_FOUR_BUTTON_REMOTE_4X_MODEL =
"Switch 4x-LIGHTIFY"
533 LIGHTIFIY_FOUR_BUTTON_REMOTE_4X_EU_MODEL =
"Switch 4x EU-LIGHTIFY"
534 LIGHTIFIY_FOUR_BUTTON_REMOTE = {
535 (CONF_SHORT_RELEASE, CONF_TURN_ON): {CONF_EVENT: 1002},
536 (CONF_LONG_PRESS, CONF_TURN_ON): {CONF_EVENT: 1001},
537 (CONF_LONG_RELEASE, CONF_TURN_ON): {CONF_EVENT: 1003},
538 (CONF_SHORT_RELEASE, CONF_DIM_UP): {CONF_EVENT: 2002},
539 (CONF_LONG_PRESS, CONF_DIM_UP): {CONF_EVENT: 2001},
540 (CONF_LONG_RELEASE, CONF_DIM_UP): {CONF_EVENT: 2003},
541 (CONF_SHORT_RELEASE, CONF_DIM_DOWN): {CONF_EVENT: 3002},
542 (CONF_LONG_PRESS, CONF_DIM_DOWN): {CONF_EVENT: 3001},
543 (CONF_LONG_RELEASE, CONF_DIM_DOWN): {CONF_EVENT: 3003},
544 (CONF_SHORT_RELEASE, CONF_TURN_OFF): {CONF_EVENT: 4002},
545 (CONF_LONG_PRESS, CONF_TURN_OFF): {CONF_EVENT: 4001},
546 (CONF_LONG_RELEASE, CONF_TURN_OFF): {CONF_EVENT: 4003},
549 BUSCH_JAEGER_REMOTE_1_MODEL =
"RB01"
550 BUSCH_JAEGER_REMOTE_2_MODEL =
"RM01"
551 BUSCH_JAEGER_REMOTE = {
552 (CONF_SHORT_RELEASE, CONF_BUTTON_1): {CONF_EVENT: 1002},
553 (CONF_LONG_PRESS, CONF_BUTTON_1): {CONF_EVENT: 1001},
554 (CONF_LONG_RELEASE, CONF_BUTTON_1): {CONF_EVENT: 1003},
555 (CONF_SHORT_RELEASE, CONF_BUTTON_2): {CONF_EVENT: 2002},
556 (CONF_LONG_PRESS, CONF_BUTTON_2): {CONF_EVENT: 2001},
557 (CONF_LONG_RELEASE, CONF_BUTTON_2): {CONF_EVENT: 2003},
558 (CONF_SHORT_RELEASE, CONF_BUTTON_3): {CONF_EVENT: 3002},
559 (CONF_LONG_PRESS, CONF_BUTTON_3): {CONF_EVENT: 3001},
560 (CONF_LONG_RELEASE, CONF_BUTTON_3): {CONF_EVENT: 3003},
561 (CONF_SHORT_RELEASE, CONF_BUTTON_4): {CONF_EVENT: 4002},
562 (CONF_LONG_PRESS, CONF_BUTTON_4): {CONF_EVENT: 4001},
563 (CONF_LONG_RELEASE, CONF_BUTTON_4): {CONF_EVENT: 4003},
564 (CONF_SHORT_RELEASE, CONF_BUTTON_5): {CONF_EVENT: 5002},
565 (CONF_LONG_PRESS, CONF_BUTTON_5): {CONF_EVENT: 5001},
566 (CONF_LONG_RELEASE, CONF_BUTTON_5): {CONF_EVENT: 5003},
567 (CONF_SHORT_RELEASE, CONF_BUTTON_6): {CONF_EVENT: 6002},
568 (CONF_LONG_PRESS, CONF_BUTTON_6): {CONF_EVENT: 6001},
569 (CONF_LONG_RELEASE, CONF_BUTTON_6): {CONF_EVENT: 6003},
570 (CONF_SHORT_RELEASE, CONF_BUTTON_7): {CONF_EVENT: 7002},
571 (CONF_LONG_PRESS, CONF_BUTTON_7): {CONF_EVENT: 7001},
572 (CONF_LONG_RELEASE, CONF_BUTTON_7): {CONF_EVENT: 7003},
573 (CONF_SHORT_RELEASE, CONF_BUTTON_8): {CONF_EVENT: 8002},
574 (CONF_LONG_PRESS, CONF_BUTTON_8): {CONF_EVENT: 8001},
575 (CONF_LONG_RELEASE, CONF_BUTTON_8): {CONF_EVENT: 8003},
578 SONOFF_SNZB_01_1_MODEL =
"WB01"
579 SONOFF_SNZB_01_2_MODEL =
"WB-01"
580 SONOFF_SNZB_01P_MODEL =
"SNZB-01P"
581 SONOFF_SNZB_01_SWITCH = {
582 (CONF_SHORT_RELEASE, CONF_BUTTON_1): {CONF_EVENT: 1002},
583 (CONF_LONG_RELEASE, CONF_BUTTON_1): {CONF_EVENT: 1003},
584 (CONF_DOUBLE_PRESS, CONF_BUTTON_1): {CONF_EVENT: 1004},
587 TRUST_ZYCT_202_MODEL =
"ZYCT-202"
588 TRUST_ZYCT_202_ZLL_MODEL =
"ZLL-NonColorController"
590 (CONF_SHORT_RELEASE, CONF_BUTTON_1): {CONF_EVENT: 1002},
591 (CONF_LONG_PRESS, CONF_BUTTON_2): {CONF_EVENT: 2001},
592 (CONF_LONG_RELEASE, CONF_BUTTON_2): {CONF_EVENT: 2003},
593 (CONF_LONG_PRESS, CONF_BUTTON_3): {CONF_EVENT: 3001},
594 (CONF_LONG_RELEASE, CONF_BUTTON_3): {CONF_EVENT: 3003},
595 (CONF_SHORT_RELEASE, CONF_BUTTON_4): {CONF_EVENT: 4002},
598 UBISYS_POWER_SWITCH_S2_MODEL =
"S2"
599 UBISYS_POWER_SWITCH_S2 = {
600 (CONF_SHORT_RELEASE, CONF_BUTTON_1): {CONF_EVENT: 1002},
601 (CONF_LONG_PRESS, CONF_BUTTON_1): {CONF_EVENT: 1001},
602 (CONF_LONG_RELEASE, CONF_BUTTON_1): {CONF_EVENT: 1003},
603 (CONF_SHORT_RELEASE, CONF_BUTTON_2): {CONF_EVENT: 2002},
604 (CONF_LONG_PRESS, CONF_BUTTON_2): {CONF_EVENT: 2001},
605 (CONF_LONG_RELEASE, CONF_BUTTON_2): {CONF_EVENT: 2003},
608 UBISYS_CONTROL_UNIT_C4_MODEL =
"C4"
609 UBISYS_CONTROL_UNIT_C4 = {
610 **UBISYS_POWER_SWITCH_S2,
611 (CONF_SHORT_RELEASE, CONF_BUTTON_3): {CONF_EVENT: 3002},
612 (CONF_LONG_PRESS, CONF_BUTTON_3): {CONF_EVENT: 3001},
613 (CONF_LONG_RELEASE, CONF_BUTTON_3): {CONF_EVENT: 3003},
614 (CONF_SHORT_RELEASE, CONF_BUTTON_4): {CONF_EVENT: 4002},
615 (CONF_LONG_PRESS, CONF_BUTTON_4): {CONF_EVENT: 4001},
616 (CONF_LONG_RELEASE, CONF_BUTTON_4): {CONF_EVENT: 4003},
620 HUE_DIMMER_REMOTE_MODEL_GEN1: HUE_DIMMER_REMOTE,
621 HUE_DIMMER_REMOTE_MODEL_GEN2: HUE_DIMMER_REMOTE,
622 HUE_DIMMER_REMOTE_MODEL_GEN3: HUE_DIMMER_REMOTE,
623 HUE_BUTTON_REMOTE_MODEL: HUE_BUTTON_REMOTE,
624 HUE_TAP_REMOTE_MODEL: HUE_TAP_REMOTE,
625 HUE_WALL_REMOTE_MODEL: HUE_WALL_REMOTE,
626 FRIENDS_OF_HUE_SWITCH_MODEL: FRIENDS_OF_HUE_SWITCH,
627 RODRET_REMOTE_MODEL: RODRET_REMOTE,
628 SOMRIG_REMOTE_MODEL: SOMRIG_REMOTE,
629 STYRBAR_REMOTE_MODEL: STYRBAR_REMOTE,
630 SYMFONISK_SOUND_CONTROLLER_MODEL: SYMFONISK_SOUND_CONTROLLER,
631 TRADFRI_ON_OFF_SWITCH_MODEL: TRADFRI_ON_OFF_SWITCH,
632 TRADFRI_OPEN_CLOSE_REMOTE_MODEL: TRADFRI_OPEN_CLOSE_REMOTE,
633 TRADFRI_REMOTE_MODEL: TRADFRI_REMOTE,
634 TRADFRI_SHORTCUT_REMOTE_MODEL: TRADFRI_SHORTCUT_REMOTE,
635 TRADFRI_WIRELESS_DIMMER_MODEL: TRADFRI_WIRELESS_DIMMER,
636 AQARA_CUBE_MODEL: AQARA_CUBE,
637 AQARA_CUBE_MODEL_ALT1: AQARA_CUBE,
638 AQARA_DOUBLE_WALL_SWITCH_MODEL: AQARA_DOUBLE_WALL_SWITCH,
639 AQARA_DOUBLE_WALL_SWITCH_MODEL_2020: AQARA_DOUBLE_WALL_SWITCH,
640 AQARA_DOUBLE_WALL_SWITCH_WXKG02LM_MODEL: AQARA_DOUBLE_WALL_SWITCH_WXKG02LM,
641 AQARA_DOUBLE_WALL_SWITCH_QBKG12LM_MODEL: AQARA_DOUBLE_WALL_SWITCH_QBKG12LM,
642 AQARA_SINGLE_WALL_SWITCH_QBKG11LM_MODEL: AQARA_SINGLE_WALL_SWITCH_QBKG11LM,
643 AQARA_SINGLE_WALL_SWITCH_WXKG03LM_MODEL: AQARA_SINGLE_WALL_SWITCH,
644 AQARA_SINGLE_WALL_SWITCH_WXKG06LM_MODEL: AQARA_SINGLE_WALL_SWITCH,
645 AQARA_MINI_SWITCH_WXKG11LM_MODEL: AQARA_MINI_SWITCH,
646 AQARA_MINI_SWITCH_WBR02D_MODEL: AQARA_MINI_SWITCH,
647 AQARA_ROUND_SWITCH_MODEL: AQARA_ROUND_SWITCH,
648 AQARA_SQUARE_SWITCH_MODEL: AQARA_SQUARE_SWITCH,
649 AQARA_SQUARE_SWITCH_WXKG11LM_2016_MODEL: AQARA_SQUARE_SWITCH_WXKG11LM_2016,
650 AQARA_OPPLE_2_BUTTONS_MODEL: AQARA_OPPLE_2_BUTTONS,
651 AQARA_OPPLE_4_BUTTONS_MODEL: AQARA_OPPLE_4_BUTTONS,
652 AQARA_OPPLE_6_BUTTONS_MODEL: AQARA_OPPLE_6_BUTTONS,
653 DRESDEN_ELEKTRONIK_LIGHTING_SWITCH_MODEL: DRESDEN_ELEKTRONIK_LIGHTING_SWITCH,
654 DRESDEN_ELEKTRONIK_SCENE_SWITCH_MODEL: DRESDEN_ELEKTRONIK_SCENE_SWITCH,
655 GIRA_JUNG_SWITCH_MODEL: GIRA_JUNG_SWITCH,
656 GIRA_SWITCH_MODEL: GIRA_JUNG_SWITCH,
657 JUNG_SWITCH_MODEL: GIRA_JUNG_SWITCH,
658 LEGRAND_ZGP_TOGGLE_SWITCH_MODEL: LEGRAND_ZGP_TOGGLE_SWITCH,
659 LEGRAND_ZGP_SCENE_SWITCH_MODEL: LEGRAND_ZGP_SCENE_SWITCH,
660 LIDL_SILVERCREST_DOORBELL_MODEL: LIDL_SILVERCREST_DOORBELL,
661 LIDL_SILVERCREST_DOORBELL_MODEL_2: LIDL_SILVERCREST_DOORBELL,
662 LIDL_SILVERCREST_BUTTON_REMOTE_MODEL: LIDL_SILVERCREST_BUTTON_REMOTE,
663 LIGHTIFIY_FOUR_BUTTON_REMOTE_MODEL: LIGHTIFIY_FOUR_BUTTON_REMOTE,
664 LIGHTIFIY_FOUR_BUTTON_REMOTE_4X_MODEL: LIGHTIFIY_FOUR_BUTTON_REMOTE,
665 LIGHTIFIY_FOUR_BUTTON_REMOTE_4X_EU_MODEL: LIGHTIFIY_FOUR_BUTTON_REMOTE,
666 BUSCH_JAEGER_REMOTE_1_MODEL: BUSCH_JAEGER_REMOTE,
667 BUSCH_JAEGER_REMOTE_2_MODEL: BUSCH_JAEGER_REMOTE,
668 TRUST_ZYCT_202_MODEL: TRUST_ZYCT_202,
669 TRUST_ZYCT_202_ZLL_MODEL: TRUST_ZYCT_202,
670 UBISYS_POWER_SWITCH_S2_MODEL: UBISYS_POWER_SWITCH_S2,
671 UBISYS_CONTROL_UNIT_C4_MODEL: UBISYS_CONTROL_UNIT_C4,
672 SONOFF_SNZB_01_1_MODEL: SONOFF_SNZB_01_SWITCH,
673 SONOFF_SNZB_01_2_MODEL: SONOFF_SNZB_01_SWITCH,
674 SONOFF_SNZB_01P_MODEL: SONOFF_SNZB_01_SWITCH,
677 TRIGGER_SCHEMA = DEVICE_TRIGGER_BASE_SCHEMA.extend(
678 {vol.Required(CONF_TYPE): str, vol.Required(CONF_SUBTYPE): str}
684 device: dr.DeviceEntry,
685 ) -> DeconzAlarmEvent | DeconzEvent | DeconzPresenceEvent | DeconzRelativeRotaryEvent:
686 """Resolve deconz event from device."""
687 hubs: dict[str, DeconzHub] = hass.data.get(DOMAIN, {})
688 for hub
in hubs.values():
689 for deconz_event
in hub.events:
690 if device.id == deconz_event.device_id:
693 raise InvalidDeviceAutomationConfig(
694 f
'No deconz_event tied to device "{device.name}" found'
702 """Validate config."""
705 device_registry = dr.async_get(hass)
706 device = device_registry.async_get(config[CONF_DEVICE_ID])
708 trigger = (config[CONF_TYPE], config[CONF_SUBTYPE])
711 raise InvalidDeviceAutomationConfig(
712 f
"deCONZ trigger {trigger} device with ID "
713 f
"{config[CONF_DEVICE_ID]} not found"
716 if device.model
not in REMOTES
or trigger
not in REMOTES[device.model]:
717 raise InvalidDeviceAutomationConfig(
718 f
"deCONZ trigger {trigger} is not valid for device "
719 f
"{device} ({config[CONF_DEVICE_ID]})"
728 action: TriggerActionType,
729 trigger_info: TriggerInfo,
731 """Listen for state changes based on configuration."""
732 event_data: dict[str, int | str] = {}
734 device_registry = dr.async_get(hass)
735 device = device_registry.devices[config[CONF_DEVICE_ID]]
738 if event_id := deconz_event.serial:
739 event_data[CONF_UNIQUE_ID] = event_id
741 if device_model := device.model:
742 config_trigger = (config[CONF_TYPE], config[CONF_SUBTYPE])
743 event_data |= REMOTES[device_model][config_trigger]
746 event_trigger.CONF_PLATFORM:
"event",
747 event_trigger.CONF_EVENT_TYPE: CONF_DECONZ_EVENT,
748 event_trigger.CONF_EVENT_DATA: event_data,
751 event_config = event_trigger.TRIGGER_SCHEMA(raw_event_config)
752 return await event_trigger.async_attach_trigger(
753 hass, event_config, action, trigger_info, platform_type=
"device"
760 ) -> list[dict[str, str]]:
761 """List device triggers.
763 Make sure device is a supported remote model.
764 Retrieve the deconz event object matching device entry.
765 Generate device trigger list.
767 device_registry = dr.async_get(hass)
768 device = device_registry.devices[device_id]
770 if device.model
not in REMOTES:
774 for trigger, subtype
in REMOTES[device.model]:
777 CONF_DEVICE_ID: device_id,
779 CONF_PLATFORM:
"device",
781 CONF_SUBTYPE: subtype,
list[dict[str, str]] async_get_triggers(HomeAssistant hass, str device_id)
CALLBACK_TYPE async_attach_trigger(HomeAssistant hass, ConfigType config, TriggerActionType action, TriggerInfo trigger_info)
DeconzAlarmEvent|DeconzEvent|DeconzPresenceEvent|DeconzRelativeRotaryEvent _get_deconz_event_from_device(HomeAssistant hass, dr.DeviceEntry device)
ConfigType async_validate_trigger_config(HomeAssistant hass, ConfigType config)