mirror of
https://github.com/home-assistant/core.git
synced 2025-07-18 18:57:06 +00:00
Use climate enums in homematic (#70665)
This commit is contained in:
parent
ea9c8b15de
commit
b2b99417c9
@ -1,15 +1,14 @@
|
|||||||
"""Support for Homematic thermostats."""
|
"""Support for Homematic thermostats."""
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
from homeassistant.components.climate import ClimateEntity, ClimateEntityFeature
|
from homeassistant.components.climate import ClimateEntity
|
||||||
from homeassistant.components.climate.const import (
|
from homeassistant.components.climate.const import (
|
||||||
HVAC_MODE_AUTO,
|
|
||||||
HVAC_MODE_HEAT,
|
|
||||||
HVAC_MODE_OFF,
|
|
||||||
PRESET_BOOST,
|
PRESET_BOOST,
|
||||||
PRESET_COMFORT,
|
PRESET_COMFORT,
|
||||||
PRESET_ECO,
|
PRESET_ECO,
|
||||||
PRESET_NONE,
|
PRESET_NONE,
|
||||||
|
ClimateEntityFeature,
|
||||||
|
HVACMode,
|
||||||
)
|
)
|
||||||
from homeassistant.const import ATTR_TEMPERATURE, TEMP_CELSIUS
|
from homeassistant.const import ATTR_TEMPERATURE, TEMP_CELSIUS
|
||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
@ -64,32 +63,32 @@ class HMThermostat(HMDevice, ClimateEntity):
|
|||||||
return TEMP_CELSIUS
|
return TEMP_CELSIUS
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def hvac_mode(self):
|
def hvac_mode(self) -> HVACMode:
|
||||||
"""Return hvac operation ie. heat, cool mode.
|
"""Return hvac operation ie. heat, cool mode.
|
||||||
|
|
||||||
Need to be one of HVAC_MODE_*.
|
Need to be one of HVAC_MODE_*.
|
||||||
"""
|
"""
|
||||||
if self.target_temperature <= self._hmdevice.OFF_VALUE + 0.5:
|
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 "MANU_MODE" in self._hmdevice.ACTIONNODE:
|
||||||
if self._hm_control_mode == self._hmdevice.MANU_MODE:
|
if self._hm_control_mode == self._hmdevice.MANU_MODE:
|
||||||
return HVAC_MODE_HEAT
|
return HVACMode.HEAT
|
||||||
return HVAC_MODE_AUTO
|
return HVACMode.AUTO
|
||||||
|
|
||||||
# Simple devices
|
# Simple devices
|
||||||
if self._data.get("BOOST_MODE"):
|
if self._data.get("BOOST_MODE"):
|
||||||
return HVAC_MODE_AUTO
|
return HVACMode.AUTO
|
||||||
return HVAC_MODE_HEAT
|
return HVACMode.HEAT
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def hvac_modes(self):
|
def hvac_modes(self) -> list[HVACMode]:
|
||||||
"""Return the list of available hvac operation modes.
|
"""Return the list of available hvac operation modes.
|
||||||
|
|
||||||
Need to be a subset of HVAC_MODES.
|
Need to be a subset of HVAC_MODES.
|
||||||
"""
|
"""
|
||||||
if "AUTO_MODE" in self._hmdevice.ACTIONNODE:
|
if "AUTO_MODE" in self._hmdevice.ACTIONNODE:
|
||||||
return [HVAC_MODE_AUTO, HVAC_MODE_HEAT, HVAC_MODE_OFF]
|
return [HVACMode.AUTO, HVACMode.HEAT, HVACMode.OFF]
|
||||||
return [HVAC_MODE_HEAT, HVAC_MODE_OFF]
|
return [HVACMode.HEAT, HVACMode.OFF]
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def preset_mode(self):
|
def preset_mode(self):
|
||||||
@ -104,7 +103,7 @@ class HMThermostat(HMDevice, ClimateEntity):
|
|||||||
mode = mode.lower()
|
mode = mode.lower()
|
||||||
|
|
||||||
# Filter HVAC states
|
# 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 PRESET_NONE
|
||||||
return mode
|
return mode
|
||||||
|
|
||||||
@ -143,13 +142,13 @@ class HMThermostat(HMDevice, ClimateEntity):
|
|||||||
|
|
||||||
self._hmdevice.writeNodeData(self._state, float(temperature))
|
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."""
|
"""Set new target hvac mode."""
|
||||||
if hvac_mode == HVAC_MODE_AUTO:
|
if hvac_mode == HVACMode.AUTO:
|
||||||
self._hmdevice.MODE = self._hmdevice.AUTO_MODE
|
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
|
self._hmdevice.MODE = self._hmdevice.MANU_MODE
|
||||||
elif hvac_mode == HVAC_MODE_OFF:
|
elif hvac_mode == HVACMode.OFF:
|
||||||
self._hmdevice.turnoff()
|
self._hmdevice.turnoff()
|
||||||
|
|
||||||
def set_preset_mode(self, preset_mode: str) -> None:
|
def set_preset_mode(self, preset_mode: str) -> None:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user