Use climate enums in homematic (#70665)

This commit is contained in:
epenet 2022-04-25 16:17:41 +02:00 committed by GitHub
parent ea9c8b15de
commit b2b99417c9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -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: