Skip to content

Commit 254b73f

Browse files
authored
Add missing climate constants (#49)
* add missing climate constants * address comments
1 parent 02e7e75 commit 254b73f

File tree

1 file changed

+42
-17
lines changed

1 file changed

+42
-17
lines changed

zwave_js_server/const.py

Lines changed: 42 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
"""Constants for the Z-Wave JS python library."""
2-
from enum import IntEnum
2+
from enum import Enum, IntEnum
33
from typing import Dict, List
44

55

@@ -163,6 +163,8 @@ class DoorLockMode(IntEnum):
163163

164164
# Thermostat constants
165165
THERMOSTAT_SETPOINT_PROPERTY = "setpoint"
166+
THERMOSTAT_OPERATING_STATE_PROPERTY = "state"
167+
THERMOSTAT_CURRENT_TEMP_PROPERTY = "Air temperature"
166168

167169

168170
class 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
210230
THERMOSTAT_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

Comments
 (0)