Use climate enums in homematic (#70665)
This commit is contained in:
parent
ea9c8b15de
commit
b2b99417c9
1 changed files with 17 additions and 18 deletions
|
@ -1,15 +1,14 @@
|
|||
"""Support for Homematic thermostats."""
|
||||
from __future__ import annotations
|
||||
|
||||
from homeassistant.components.climate import ClimateEntity, ClimateEntityFeature
|
||||
from homeassistant.components.climate import ClimateEntity
|
||||
from homeassistant.components.climate.const import (
|
||||
HVAC_MODE_AUTO,
|
||||
HVAC_MODE_HEAT,
|
||||
HVAC_MODE_OFF,
|
||||
PRESET_BOOST,
|
||||
PRESET_COMFORT,
|
||||
PRESET_ECO,
|
||||
PRESET_NONE,
|
||||
ClimateEntityFeature,
|
||||
HVACMode,
|
||||
)
|
||||
from homeassistant.const import ATTR_TEMPERATURE, TEMP_CELSIUS
|
||||
from homeassistant.core import HomeAssistant
|
||||
|
@ -64,32 +63,32 @@ class HMThermostat(HMDevice, ClimateEntity):
|
|||
return TEMP_CELSIUS
|
||||
|
||||
@property
|
||||
def hvac_mode(self):
|
||||
def hvac_mode(self) -> HVACMode:
|
||||
"""Return hvac operation ie. heat, cool mode.
|
||||
|
||||
Need to be one of HVAC_MODE_*.
|
||||
"""
|
||||
if self.target_temperature <= self._hmdevice.OFF_VALUE + 0.5:
|
||||
return HVAC_MODE_OFF
|
||||
return HVACMode.OFF
|
||||
if "MANU_MODE" in self._hmdevice.ACTIONNODE:
|
||||
if self._hm_control_mode == self._hmdevice.MANU_MODE:
|
||||
return HVAC_MODE_HEAT
|
||||
return HVAC_MODE_AUTO
|
||||
return HVACMode.HEAT
|
||||
return HVACMode.AUTO
|
||||
|
||||
# Simple devices
|
||||
if self._data.get("BOOST_MODE"):
|
||||
return HVAC_MODE_AUTO
|
||||
return HVAC_MODE_HEAT
|
||||
return HVACMode.AUTO
|
||||
return HVACMode.HEAT
|
||||
|
||||
@property
|
||||
def hvac_modes(self):
|
||||
def hvac_modes(self) -> list[HVACMode]:
|
||||
"""Return the list of available hvac operation modes.
|
||||
|
||||
Need to be a subset of HVAC_MODES.
|
||||
"""
|
||||
if "AUTO_MODE" in self._hmdevice.ACTIONNODE:
|
||||
return [HVAC_MODE_AUTO, HVAC_MODE_HEAT, HVAC_MODE_OFF]
|
||||
return [HVAC_MODE_HEAT, HVAC_MODE_OFF]
|
||||
return [HVACMode.AUTO, HVACMode.HEAT, HVACMode.OFF]
|
||||
return [HVACMode.HEAT, HVACMode.OFF]
|
||||
|
||||
@property
|
||||
def preset_mode(self):
|
||||
|
@ -104,7 +103,7 @@ class HMThermostat(HMDevice, ClimateEntity):
|
|||
mode = mode.lower()
|
||||
|
||||
# Filter HVAC states
|
||||
if mode not in (HVAC_MODE_AUTO, HVAC_MODE_HEAT):
|
||||
if mode not in (HVACMode.AUTO, HVACMode.HEAT):
|
||||
return PRESET_NONE
|
||||
return mode
|
||||
|
||||
|
@ -143,13 +142,13 @@ class HMThermostat(HMDevice, ClimateEntity):
|
|||
|
||||
self._hmdevice.writeNodeData(self._state, float(temperature))
|
||||
|
||||
def set_hvac_mode(self, hvac_mode):
|
||||
def set_hvac_mode(self, hvac_mode: HVACMode) -> None:
|
||||
"""Set new target hvac mode."""
|
||||
if hvac_mode == HVAC_MODE_AUTO:
|
||||
if hvac_mode == HVACMode.AUTO:
|
||||
self._hmdevice.MODE = self._hmdevice.AUTO_MODE
|
||||
elif hvac_mode == HVAC_MODE_HEAT:
|
||||
elif hvac_mode == HVACMode.HEAT:
|
||||
self._hmdevice.MODE = self._hmdevice.MANU_MODE
|
||||
elif hvac_mode == HVAC_MODE_OFF:
|
||||
elif hvac_mode == HVACMode.OFF:
|
||||
self._hmdevice.turnoff()
|
||||
|
||||
def set_preset_mode(self, preset_mode: str) -> None:
|
||||
|
|
Loading…
Add table
Reference in a new issue