Skip to content

Commit b98b0d5

Browse files
Add external switch type setting to various Candeo devices (#3905)
Co-authored-by: TheJulianJES <[email protected]>
1 parent a6401a4 commit b98b0d5

File tree

2 files changed

+66
-0
lines changed

2 files changed

+66
-0
lines changed

zhaquirks/candeo/__init__.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
"""Module for Candeo quirks implementations."""
2+
3+
from zigpy.quirks import CustomCluster
4+
import zigpy.types as t
5+
from zigpy.zcl.clusters.general import Basic
6+
from zigpy.zcl.foundation import DataTypeId, ZCLAttributeDef
7+
8+
CANDEO = "Candeo"
9+
10+
11+
class CandeoSwitchType(t.enum8):
12+
"""Candeo Switch Type."""
13+
14+
Momentary = 0x00
15+
Toggle = 0x01
16+
17+
18+
class CandeoBasicCluster(Basic, CustomCluster):
19+
"""Candeo Basic Cluster."""
20+
21+
class AttributeDefs(Basic.AttributeDefs):
22+
"""Attribute Definitions."""
23+
24+
external_switch_type = ZCLAttributeDef(
25+
id=0x8803,
26+
type=CandeoSwitchType,
27+
zcl_type=DataTypeId.uint8,
28+
access="rw",
29+
is_manufacturer_specific=True,
30+
)
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
"""Candeo modules."""
2+
3+
from zigpy.quirks.v2 import QuirkBuilder
4+
5+
from zhaquirks.candeo import CANDEO, CandeoBasicCluster, CandeoSwitchType
6+
7+
(
8+
QuirkBuilder(CANDEO, "C203")
9+
.applies_to(CANDEO, "HK-LN-DIM-A")
10+
.applies_to(CANDEO, "C204")
11+
.applies_to(CANDEO, "C-ZB-DM204")
12+
.applies_to(CANDEO, "C205")
13+
.replaces(CandeoBasicCluster)
14+
.enum(
15+
attribute_name=CandeoBasicCluster.AttributeDefs.external_switch_type.name,
16+
enum_class=CandeoSwitchType,
17+
cluster_id=CandeoBasicCluster.cluster_id,
18+
translation_key="external_switch_type",
19+
fallback_name="External switch type",
20+
)
21+
.add_to_registry()
22+
)
23+
24+
(
25+
QuirkBuilder(CANDEO, "C-ZB-SM205-2G")
26+
.replaces(CandeoBasicCluster, endpoint_id=11)
27+
.enum(
28+
attribute_name=CandeoBasicCluster.AttributeDefs.external_switch_type.name,
29+
enum_class=CandeoSwitchType,
30+
cluster_id=CandeoBasicCluster.cluster_id,
31+
endpoint_id=11,
32+
translation_key="external_switch_type",
33+
fallback_name="External switch type",
34+
)
35+
.add_to_registry()
36+
)

0 commit comments

Comments
 (0)