11"""Constants for the Z-Wave JS python library."""
2- from enum import IntEnum
2+ from enum import Enum , IntEnum
33from typing import Dict , List
44
55
@@ -163,6 +163,8 @@ class DoorLockMode(IntEnum):
163163
164164# Thermostat constants
165165THERMOSTAT_SETPOINT_PROPERTY = "setpoint"
166+ THERMOSTAT_OPERATING_STATE_PROPERTY = "state"
167+ THERMOSTAT_CURRENT_TEMP_PROPERTY = "Air temperature"
166168
167169
168170class ThermostatMode (IntEnum ):
@@ -187,8 +189,8 @@ class ThermostatMode(IntEnum):
187189 MANUFACTURER_SPECIFIC = 31
188190
189191
190- class ThermostatOperatingMode (IntEnum ):
191- """Enum with all (known/used) Z-Wave Thermostat OperatingModes ."""
192+ class ThermostatOperatingState (IntEnum ):
193+ """Enum with all (known/used) Z-Wave Thermostat OperatingStates ."""
192194
193195 # https://github.com/zwave-js/node-zwave-js/blob/master/packages/zwave-js/src/lib/commandclass/ThermostatOperatingStateCC.ts#L38-L51
194196 IDLE = 0
@@ -205,6 +207,24 @@ class ThermostatOperatingMode(IntEnum):
205207 THIRD_STAGE_AUX_HEAT = 11
206208
207209
210+ class ThermostatSetpointType (Enum ):
211+ """Enum with all (known/used) Z-Wave Thermostat Setpoint Types."""
212+
213+ # https://github.com/zwave-js/node-zwave-js/blob/master/packages/zwave-js/src/lib/commandclass/ThermostatSetpointCC.ts#L53-L66
214+ NA = "N/A"
215+ HEATING = "Heating"
216+ COOLING = "Cooling"
217+ FURNACE = "Furnace"
218+ DRY_AIR = "Dry Air"
219+ MOIST_AIR = "Moist Air"
220+ AUTO_CHANGEOVER = "Auto Changeover"
221+ ENERGY_SAVE_HEATING = "Energy Save Heating"
222+ ENERGY_SAVE_COOLING = "Energy Save Cooling"
223+ AWAY_HEATING = "Away Heating"
224+ AWAY_COOLING = "Away Cooling"
225+ FULL_POWER = "Full Power"
226+
227+
208228# In Z-Wave the modes and presets are both in ThermostatMode.
209229# This list contains thermostatmodes we should consider a mode only
210230THERMOSTAT_MODES = [
@@ -215,19 +235,24 @@ class ThermostatOperatingMode(IntEnum):
215235 ThermostatMode .AUTO_CHANGE_OVER ,
216236]
217237
218- # https://github.com/zwave-js/node-zwave-js/blob/master/packages/zwave-js/src/lib/commandclass/ThermostatSetpointCC.ts#L53-L66
219- THERMOSTAT_MODE_SETPOINT_MAP : Dict [int , List [str ]] = {
238+ THERMOSTAT_MODE_SETPOINT_MAP : Dict [int , List [ThermostatSetpointType ]] = {
220239 ThermostatMode .OFF : [],
221- ThermostatMode .HEAT : ["Heating" ],
222- ThermostatMode .COOL : ["Cooling" ],
223- ThermostatMode .AUTO : ["Heating" , "Cooling" ],
224- ThermostatMode .AUXILIARY : ["Heating" ],
225- ThermostatMode .FURNANCE : ["Furnace" ],
226- ThermostatMode .DRY : ["Dry Air" ],
227- ThermostatMode .MOIST : ["Moist Air" ],
228- ThermostatMode .AUTO_CHANGE_OVER : ["Auto Changeover" ],
229- ThermostatMode .HEATING_ECON : ["Energy Save Heating" ],
230- ThermostatMode .COOLING_ECON : ["Energy Save Cooling" ],
231- ThermostatMode .AWAY : ["Away Heating" , "Away Cooling" ],
232- ThermostatMode .FULL_POWER : ["Full Power" ],
240+ ThermostatMode .HEAT : [ThermostatSetpointType .HEATING ],
241+ ThermostatMode .COOL : [ThermostatSetpointType .COOLING ],
242+ ThermostatMode .AUTO : [
243+ ThermostatSetpointType .HEATING ,
244+ ThermostatSetpointType .COOLING ,
245+ ],
246+ ThermostatMode .AUXILIARY : [ThermostatSetpointType .HEATING ],
247+ ThermostatMode .FURNANCE : [ThermostatSetpointType .FURNACE ],
248+ ThermostatMode .DRY : [ThermostatSetpointType .DRY_AIR ],
249+ ThermostatMode .MOIST : [ThermostatSetpointType .MOIST_AIR ],
250+ ThermostatMode .AUTO_CHANGE_OVER : [ThermostatSetpointType .AUTO_CHANGEOVER ],
251+ ThermostatMode .HEATING_ECON : [ThermostatSetpointType .ENERGY_SAVE_HEATING ],
252+ ThermostatMode .COOLING_ECON : [ThermostatSetpointType .ENERGY_SAVE_COOLING ],
253+ ThermostatMode .AWAY : [
254+ ThermostatSetpointType .AWAY_HEATING ,
255+ ThermostatSetpointType .AWAY_COOLING ,
256+ ],
257+ ThermostatMode .FULL_POWER : [ThermostatSetpointType .FULL_POWER ],
233258}
0 commit comments