Skip to content

Commit 28caae7

Browse files
committed
Add Schneider Electric Thermostats
1 parent bc2aa90 commit 28caae7

File tree

1 file changed

+55
-0
lines changed

1 file changed

+55
-0
lines changed
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
"""Schneider Electric thermostats quirks."""
2+
3+
from typing import Final
4+
5+
from zigpy.quirks import CustomCluster
6+
from zigpy.quirks.v2 import QuirkBuilder
7+
import zigpy.types as t
8+
from zigpy.zcl import foundation
9+
from zigpy.zcl.clusters.measurement import TemperatureMeasurement
10+
from zigpy.zcl.clusters.smartenergy import Metering
11+
12+
from zhaquirks.schneiderelectric import SE_MANUF_NAME
13+
14+
15+
class SETemperatureSensorType(t.enum8):
16+
"""Temperature sensor connected to thermostat."""
17+
18+
Sensor2kOhm = 0x01
19+
Sensor10kOhm = 0x02
20+
Sensor12kOhm = 0x03
21+
Sensor15kOhm = 0x04
22+
Sensor33kOhm = 0x05
23+
Sensor47kOhm = 0x06
24+
NoSensor = 0xFF
25+
26+
27+
class SEMetering(CustomCluster, Metering):
28+
class AttributeDefs(Metering.AttributeDefs):
29+
# This attribute specifies the demand of a switched load when it is energised
30+
fixed_load_demand: Final = foundation.ZCLAttributeDef(
31+
id=0x4510,
32+
type=t.uint24_t,
33+
access="rw",
34+
is_manufacturer_specific=True,
35+
)
36+
37+
38+
class SETemperatureMeasurementExternal(CustomCluster, TemperatureMeasurement):
39+
class AttributeDefs(TemperatureMeasurement.AttributeDefs):
40+
temperature_sensor_type: Final = foundation.ZCLAttributeDef(
41+
id=0xE021,
42+
type=SETemperatureSensorType,
43+
access="rw",
44+
is_manufacturer_specific=True,
45+
)
46+
47+
48+
(
49+
QuirkBuilder(SE_MANUF_NAME, "EKO07259")
50+
.also_applies_to(SE_MANUF_NAME, "WDE002497")
51+
.also_applies_to(SE_MANUF_NAME, "WDE011680")
52+
.replaces(SEMetering, endpoint_id=5)
53+
.replaces(SETemperatureMeasurementExternal, endpoint_id=3)
54+
.add_to_registry()
55+
)

0 commit comments

Comments
 (0)