Skip to content

Commit 957d0fb

Browse files
committed
Add Schneider Electric Thermostats
1 parent bc2aa90 commit 957d0fb

File tree

1 file changed

+56
-0
lines changed

1 file changed

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

0 commit comments

Comments
 (0)