Skip to content

Commit 53af0ae

Browse files
authored
Add support for additional Legrand wireless switches (#4114)
1 parent 252644b commit 53af0ae

File tree

1 file changed

+94
-1
lines changed

1 file changed

+94
-1
lines changed

zhaquirks/legrand/wirelessswitch.py

Lines changed: 94 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,21 @@
1-
"""Module for Legrand wireless radiant switch."""
1+
"""Module for Legrand wireless switches (Radiant, NLD, NLT, NLW)."""
22

33
from zigpy.quirks.v2 import QuirkBuilder
44
from zigpy.zcl.clusters.general import BinaryInput
55

66
from zhaquirks.const import (
77
BUTTON,
8+
BUTTON_1,
9+
BUTTON_2,
10+
BUTTON_3,
811
COMMAND,
912
COMMAND_MOVE,
1013
COMMAND_OFF,
1114
COMMAND_ON,
1215
COMMAND_STOP,
16+
DIM_DOWN,
17+
DIM_UP,
18+
ENDPOINT_ID,
1319
LONG_PRESS,
1420
LONG_RELEASE,
1521
PARAMS,
@@ -40,3 +46,90 @@
4046
)
4147
.add_to_registry()
4248
)
49+
50+
(
51+
QuirkBuilder(f" {LEGRAND}", " NLWO - Triple remote switch")
52+
.replaces(LegrandPowerConfigurationCluster)
53+
.prevent_default_entity_creation(endpoint_id=1, cluster_id=BinaryInput.cluster_id)
54+
.device_automation_triggers(
55+
{
56+
(TURN_ON, BUTTON_1): {COMMAND: COMMAND_ON, ENDPOINT_ID: 1},
57+
(DIM_UP, BUTTON_1): {
58+
COMMAND: COMMAND_MOVE,
59+
ENDPOINT_ID: 1,
60+
PARAMS: {"move_mode": 0, "rate": 255},
61+
},
62+
(TURN_OFF, BUTTON_1): {COMMAND: COMMAND_OFF},
63+
(DIM_DOWN, BUTTON_1): {
64+
COMMAND: COMMAND_MOVE,
65+
ENDPOINT_ID: 1,
66+
PARAMS: {"move_mode": 1, "rate": 255},
67+
},
68+
(LONG_RELEASE, BUTTON_1): {COMMAND: COMMAND_STOP, ENDPOINT_ID: 1},
69+
(TURN_ON, BUTTON_2): {COMMAND: COMMAND_ON, ENDPOINT_ID: 2},
70+
(DIM_UP, BUTTON_2): {
71+
COMMAND: COMMAND_MOVE,
72+
ENDPOINT_ID: 2,
73+
PARAMS: {"move_mode": 0, "rate": 255},
74+
},
75+
(TURN_OFF, BUTTON_2): {COMMAND: COMMAND_OFF},
76+
(DIM_DOWN, BUTTON_2): {
77+
COMMAND: COMMAND_MOVE,
78+
ENDPOINT_ID: 2,
79+
PARAMS: {"move_mode": 1, "rate": 255},
80+
},
81+
(LONG_RELEASE, BUTTON_2): {COMMAND: COMMAND_STOP, ENDPOINT_ID: 2},
82+
(TURN_ON, BUTTON_3): {COMMAND: COMMAND_ON, ENDPOINT_ID: 3},
83+
(DIM_UP, BUTTON_3): {
84+
COMMAND: COMMAND_MOVE,
85+
ENDPOINT_ID: 3,
86+
PARAMS: {"move_mode": 0, "rate": 255},
87+
},
88+
(TURN_OFF, BUTTON_3): {COMMAND: COMMAND_OFF},
89+
(DIM_DOWN, BUTTON_3): {
90+
COMMAND: COMMAND_MOVE,
91+
ENDPOINT_ID: 3,
92+
PARAMS: {"move_mode": 1, "rate": 255},
93+
},
94+
(LONG_RELEASE, BUTTON_3): {COMMAND: COMMAND_STOP, ENDPOINT_ID: 3},
95+
}
96+
)
97+
.add_to_registry()
98+
)
99+
100+
(
101+
QuirkBuilder(f" {LEGRAND}", " Double gangs remote switch")
102+
.replaces(LegrandPowerConfigurationCluster)
103+
.prevent_default_entity_creation(endpoint_id=1, cluster_id=BinaryInput.cluster_id)
104+
.device_automation_triggers(
105+
{
106+
(TURN_ON, BUTTON_1): {COMMAND: COMMAND_ON, ENDPOINT_ID: 1},
107+
(DIM_UP, BUTTON_1): {
108+
COMMAND: COMMAND_MOVE,
109+
ENDPOINT_ID: 1,
110+
PARAMS: {"move_mode": 0, "rate": 255},
111+
},
112+
(TURN_OFF, BUTTON_1): {COMMAND: COMMAND_OFF},
113+
(DIM_DOWN, BUTTON_1): {
114+
COMMAND: COMMAND_MOVE,
115+
ENDPOINT_ID: 1,
116+
PARAMS: {"move_mode": 1, "rate": 255},
117+
},
118+
(LONG_RELEASE, BUTTON_1): {COMMAND: COMMAND_STOP, ENDPOINT_ID: 1},
119+
(TURN_ON, BUTTON_2): {COMMAND: COMMAND_ON, ENDPOINT_ID: 2},
120+
(DIM_UP, BUTTON_2): {
121+
COMMAND: COMMAND_MOVE,
122+
ENDPOINT_ID: 2,
123+
PARAMS: {"move_mode": 0, "rate": 255},
124+
},
125+
(TURN_OFF, BUTTON_2): {COMMAND: COMMAND_OFF},
126+
(DIM_DOWN, BUTTON_2): {
127+
COMMAND: COMMAND_MOVE,
128+
ENDPOINT_ID: 2,
129+
PARAMS: {"move_mode": 1, "rate": 255},
130+
},
131+
(LONG_RELEASE, BUTTON_2): {COMMAND: COMMAND_STOP, ENDPOINT_ID: 2},
132+
}
133+
)
134+
.add_to_registry()
135+
)

0 commit comments

Comments
 (0)