@@ -21,6 +21,9 @@ def zwTHERMOSTAT_MODE_VERSION 0x4001
21
21
def zwTHERMOSTAT_MODE 0x4002
22
22
def zwTHERMOSTAT_SUPPORTED_MODES 0x4003
23
23
24
+ //Thermostat Operating State CC
25
+ def zwTHERMOSTAT_OPERATING_STATE_MODE 0x4202
26
+
24
27
// Thermostat Cluster
25
28
def zb_LocalTemperature 0x02010000
26
29
def zb_HVACSystemTypeConfiguration 0x02010009
@@ -40,6 +43,7 @@ def zb_SystemMode 0x0201001c
40
43
def zb_TemperatureSetpointHold 0x02010023
41
44
def zb_TemperatureSetpointHoldDuration 0x02010024
42
45
def zb_ThermostatProgrammingOperationMode 0x02010025
46
+ def zb_ThermostatRunningState 0x02010029
43
47
def zb_OccupiedSetback 0x02010034
44
48
def zb_OccupiedSetbackMin 0x02010035
45
49
def zb_OccupiedSetbackMax 0x02010036
@@ -54,7 +58,11 @@ def zb_ACLouverPosition 0x02010045
54
58
def zb_ACCoilTemperature 0x02010046
55
59
def zb_ACCapacityFormat 0x02010047
56
60
61
+ // Unify thermostat cluster
62
+ def zb_OperatingState 0xfd150003
63
+
57
64
def thermostat_setpoint_supported (e'zwTHERMOSTAT_SETPOINT_TYPE[2].zwTHERMOSTAT_SETPOINT_VALUE_SCALE | e'zwTHERMOSTAT_SETPOINT_TYPE[1].zwTHERMOSTAT_SETPOINT_VALUE_SCALE)
65
+ def no_thermostat_operating_state (e'zwTHERMOSTAT_OPERATING_STATE_MODE == 0)
58
66
59
67
scope 0 {
60
68
// We map Setpoint setpoint_type 0x01 (HEATING) and 0x02 (COOLING)
@@ -252,4 +260,21 @@ scope 0 chain_reaction(0) {
252
260
d'zb_ACCapacityFormat =
253
261
if (r'zb_ACCapacityFormat != d'zb_ACCapacityFormat) r'zb_ACCapacityFormat
254
262
undefined
263
+
264
+ // Thermostat Operating State
265
+ // UCL bindings
266
+ r'zb_ThermostatRunningState =
267
+ if (no_thermostat_operating_state) undefined
268
+ if (r'zwTHERMOSTAT_OPERATING_STATE_MODE == 0x00) 0x00
269
+ if (r'zwTHERMOSTAT_OPERATING_STATE_MODE == 0x01) 0x01
270
+ if (r'zwTHERMOSTAT_OPERATING_STATE_MODE == 0x02) 0x02
271
+ if (r'zwTHERMOSTAT_OPERATING_STATE_MODE == 0x03) 0x04
272
+ if (r'zwTHERMOSTAT_OPERATING_STATE_MODE == 0x08) 0x08
273
+ if (r'zwTHERMOSTAT_OPERATING_STATE_MODE == 0x09) 0x10
274
+ if (r'zwTHERMOSTAT_OPERATING_STATE_MODE == 0x0A) 0x20
275
+ if (r'zwTHERMOSTAT_OPERATING_STATE_MODE == 0x0B) 0x40
276
+ undefined // Default state
277
+
278
+ // Custom cluster binding
279
+ r'zb_OperatingState = r'zwTHERMOSTAT_OPERATING_STATE_MODE
255
280
}
0 commit comments