Skip to content

Commit c6ed94a

Browse files
authored
Add more Aqara H1 wireless double rocker variants (#3169)
1 parent b2751a2 commit c6ed94a

File tree

1 file changed

+125
-23
lines changed

1 file changed

+125
-23
lines changed

zhaquirks/xiaomi/aqara/remote_h1.py

Lines changed: 125 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,15 @@
11
"""Aqara H1-series wireless remote."""
22
from zigpy.profiles import zha
33
import zigpy.types as t
4-
from zigpy.zcl.clusters.general import Basic, Identify, OnOff, PowerConfiguration
4+
from zigpy.zcl.clusters.general import (
5+
Basic,
6+
Identify,
7+
LevelControl,
8+
MultistateInput,
9+
OnOff,
10+
PowerConfiguration,
11+
)
12+
from zigpy.zcl.clusters.lighting import Color
513

614
from zhaquirks import PowerConfigurationCluster
715
from zhaquirks.const import (
@@ -147,9 +155,6 @@ class RemoteH1DoubleRocker1(XiaomiCustomDevice):
147155
MODELS_INFO: [(LUMI, "lumi.remote.b28ac1")],
148156
ENDPOINTS: {
149157
1: {
150-
# SizePrefixedSimpleDescriptor(
151-
# endpoint=1, profile=260, device_type=259, device_version=1,
152-
# input_clusters=[0, 3, 1], output_clusters=[3, 6])
153158
PROFILE_ID: zha.PROFILE_ID,
154159
DEVICE_TYPE: zha.DeviceType.ON_OFF_LIGHT_SWITCH,
155160
INPUT_CLUSTERS: [
@@ -163,9 +168,6 @@ class RemoteH1DoubleRocker1(XiaomiCustomDevice):
163168
],
164169
},
165170
3: {
166-
# SizePrefixedSimpleDescriptor(
167-
# endpoint=3, profile=260, device_type=259, device_version=1,
168-
# input_clusters=[3], output_clusters=[6])
169171
PROFILE_ID: zha.PROFILE_ID,
170172
DEVICE_TYPE: zha.DeviceType.ON_OFF_LIGHT_SWITCH,
171173
INPUT_CLUSTERS: [Identify.cluster_id],
@@ -218,7 +220,7 @@ class RemoteH1DoubleRocker1(XiaomiCustomDevice):
218220
}
219221
device_automation_triggers = {
220222
# triggers when operation_mode == event
221-
# the button doesn't send an release event after hold
223+
# the button doesn't send a release event after hold
222224
(SHORT_PRESS, LEFT): {COMMAND: COMMAND_1_SINGLE},
223225
(DOUBLE_PRESS, LEFT): {COMMAND: COMMAND_1_DOUBLE},
224226
(TRIPLE_PRESS, LEFT): {COMMAND: COMMAND_1_TRIPLE},
@@ -238,17 +240,13 @@ class RemoteH1DoubleRocker1(XiaomiCustomDevice):
238240
}
239241

240242

241-
class RemoteH1DoubleRocker2(XiaomiCustomDevice):
243+
class RemoteH1DoubleRocker2(RemoteH1DoubleRocker1):
242244
"""Aqara H1 Wireless Remote Double Rocker Version WRS-R02, variant 2."""
243245

244246
signature = {
245247
MODELS_INFO: [(LUMI, "lumi.remote.b28ac1")],
246248
ENDPOINTS: {
247249
1: {
248-
# "1": {
249-
# "profile_id": 260, "device_type": "0x0103",
250-
# "in_clusters": [ "0x0000", "0x0001", "0x0003" ],
251-
# "out_clusters": [ "0x0003", "0x0006" ] }
252250
PROFILE_ID: zha.PROFILE_ID,
253251
DEVICE_TYPE: zha.DeviceType.ON_OFF_LIGHT_SWITCH,
254252
INPUT_CLUSTERS: [
@@ -262,10 +260,6 @@ class RemoteH1DoubleRocker2(XiaomiCustomDevice):
262260
],
263261
},
264262
2: {
265-
# "2": {
266-
# "profile_id": 260, "device_type": "0x0103",
267-
# "in_clusters": [ "0x0003" ],
268-
# "out_clusters": [ "0x0003", "0x0006" ] }
269263
PROFILE_ID: zha.PROFILE_ID,
270264
DEVICE_TYPE: zha.DeviceType.ON_OFF_LIGHT_SWITCH,
271265
INPUT_CLUSTERS: [
@@ -277,16 +271,124 @@ class RemoteH1DoubleRocker2(XiaomiCustomDevice):
277271
],
278272
},
279273
3: {
280-
# "3": {
281-
# "profile_id": 260, "device_type": "0x0103",
282-
# "in_clusters": [ "0x0003" ],
283-
# "out_clusters": [ "0x0006" ] }
284274
PROFILE_ID: zha.PROFILE_ID,
285275
DEVICE_TYPE: zha.DeviceType.ON_OFF_LIGHT_SWITCH,
286276
INPUT_CLUSTERS: [Identify.cluster_id],
287277
OUTPUT_CLUSTERS: [OnOff.cluster_id],
288278
},
289279
},
290280
}
291-
replacement = RemoteH1DoubleRocker1.replacement
292-
device_automation_triggers = RemoteH1DoubleRocker1.device_automation_triggers
281+
282+
283+
class RemoteH1DoubleRocker3(RemoteH1DoubleRocker1):
284+
"""Aqara H1 Wireless Remote Double Rocker Version WRS-R02, variant 3."""
285+
286+
signature = {
287+
MODELS_INFO: [(LUMI, "lumi.remote.b28ac1")],
288+
ENDPOINTS: {
289+
1: {
290+
PROFILE_ID: zha.PROFILE_ID,
291+
DEVICE_TYPE: zha.DeviceType.COLOR_DIMMER_SWITCH,
292+
INPUT_CLUSTERS: [
293+
Basic.cluster_id,
294+
PowerConfiguration.cluster_id,
295+
Identify.cluster_id,
296+
],
297+
OUTPUT_CLUSTERS: [
298+
Identify.cluster_id,
299+
OnOff.cluster_id,
300+
LevelControl.cluster_id,
301+
Color.cluster_id,
302+
],
303+
},
304+
2: {
305+
PROFILE_ID: zha.PROFILE_ID,
306+
DEVICE_TYPE: zha.DeviceType.ON_OFF_LIGHT_SWITCH,
307+
INPUT_CLUSTERS: [
308+
Identify.cluster_id,
309+
],
310+
OUTPUT_CLUSTERS: [
311+
Identify.cluster_id,
312+
OnOff.cluster_id,
313+
],
314+
},
315+
3: {
316+
PROFILE_ID: zha.PROFILE_ID,
317+
DEVICE_TYPE: zha.DeviceType.ON_OFF_LIGHT_SWITCH,
318+
INPUT_CLUSTERS: [Identify.cluster_id],
319+
OUTPUT_CLUSTERS: [OnOff.cluster_id],
320+
},
321+
4: {},
322+
5: {},
323+
6: {},
324+
},
325+
}
326+
327+
328+
class RemoteH1DoubleRocker4(RemoteH1DoubleRocker1):
329+
"""Aqara H1 Wireless Remote Double Rocker Version WRS-R02, variant 4."""
330+
331+
signature = {
332+
MODELS_INFO: [(LUMI, "lumi.remote.b28ac1")],
333+
ENDPOINTS: {
334+
1: {
335+
PROFILE_ID: zha.PROFILE_ID,
336+
DEVICE_TYPE: zha.DeviceType.COLOR_DIMMER_SWITCH,
337+
INPUT_CLUSTERS: [
338+
Basic.cluster_id,
339+
PowerConfiguration.cluster_id,
340+
Identify.cluster_id,
341+
],
342+
OUTPUT_CLUSTERS: [
343+
Identify.cluster_id,
344+
OnOff.cluster_id,
345+
LevelControl.cluster_id,
346+
Color.cluster_id,
347+
],
348+
},
349+
2: {
350+
PROFILE_ID: zha.PROFILE_ID,
351+
DEVICE_TYPE: zha.DeviceType.ON_OFF_LIGHT_SWITCH,
352+
INPUT_CLUSTERS: [
353+
Identify.cluster_id,
354+
],
355+
OUTPUT_CLUSTERS: [
356+
Identify.cluster_id,
357+
OnOff.cluster_id,
358+
],
359+
},
360+
3: {
361+
PROFILE_ID: zha.PROFILE_ID,
362+
DEVICE_TYPE: zha.DeviceType.ON_OFF_LIGHT_SWITCH,
363+
INPUT_CLUSTERS: [Identify.cluster_id],
364+
OUTPUT_CLUSTERS: [OnOff.cluster_id],
365+
},
366+
4: {
367+
PROFILE_ID: zha.PROFILE_ID,
368+
DEVICE_TYPE: zha.DeviceType.ON_OFF_LIGHT_SWITCH,
369+
INPUT_CLUSTERS: [
370+
Identify.cluster_id,
371+
MultistateInput.cluster_id,
372+
],
373+
OUTPUT_CLUSTERS: [OnOff.cluster_id],
374+
},
375+
5: {
376+
PROFILE_ID: zha.PROFILE_ID,
377+
DEVICE_TYPE: zha.DeviceType.ON_OFF_LIGHT_SWITCH,
378+
INPUT_CLUSTERS: [
379+
Identify.cluster_id,
380+
MultistateInput.cluster_id,
381+
],
382+
OUTPUT_CLUSTERS: [OnOff.cluster_id],
383+
},
384+
6: {
385+
PROFILE_ID: zha.PROFILE_ID,
386+
DEVICE_TYPE: zha.DeviceType.ON_OFF_LIGHT_SWITCH,
387+
INPUT_CLUSTERS: [
388+
Identify.cluster_id,
389+
MultistateInput.cluster_id,
390+
],
391+
OUTPUT_CLUSTERS: [OnOff.cluster_id],
392+
},
393+
},
394+
}

0 commit comments

Comments
 (0)