diff --git a/homeassistant/components/tado/climate.py b/homeassistant/components/tado/climate.py index b1e050dabb7..87ca302f029 100644 --- a/homeassistant/components/tado/climate.py +++ b/homeassistant/components/tado/climate.py @@ -1,16 +1,18 @@ """Support for Tado thermostats.""" +from __future__ import annotations + import logging import voluptuous as vol -from homeassistant.components.climate import ClimateEntity, ClimateEntityFeature +from homeassistant.components.climate import ClimateEntity from homeassistant.components.climate.const import ( - CURRENT_HVAC_OFF, FAN_AUTO, - HVAC_MODE_HEAT, - HVAC_MODE_OFF, PRESET_AWAY, PRESET_HOME, + ClimateEntityFeature, + HVACAction, + HVACMode, ) from homeassistant.config_entries import ConfigEntry from homeassistant.const import ATTR_TEMPERATURE, PRECISION_TENTHS, TEMP_CELSIUS @@ -160,7 +162,7 @@ def create_climate_entity(tado, name: str, zone_id: int, device_info: dict): cool_temperatures = capabilities[CONST_MODE_COOL]["temperatures"] else: - supported_hvac_modes.append(HVAC_MODE_HEAT) + supported_hvac_modes.append(HVACMode.HEAT) if CONST_MODE_HEAT in capabilities: heat_temperatures = capabilities[CONST_MODE_HEAT]["temperatures"] @@ -260,7 +262,7 @@ class TadoClimate(TadoZoneEntity, ClimateEntity): self._current_tado_fan_speed = CONST_FAN_OFF self._current_tado_hvac_mode = CONST_MODE_OFF - self._current_tado_hvac_action = CURRENT_HVAC_OFF + self._current_tado_hvac_action = HVACAction.OFF self._current_tado_swing_mode = TADO_SWING_OFF self._tado_zone_data = None @@ -308,15 +310,15 @@ class TadoClimate(TadoZoneEntity, ClimateEntity): return self._tado_zone_data.current_temp @property - def hvac_mode(self): + def hvac_mode(self) -> HVACMode: """Return hvac operation ie. heat, cool mode. Need to be one of HVAC_MODE_*. """ - return TADO_TO_HA_HVAC_MODE_MAP.get(self._current_tado_hvac_mode, HVAC_MODE_OFF) + return TADO_TO_HA_HVAC_MODE_MAP.get(self._current_tado_hvac_mode, HVACMode.OFF) @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. @@ -324,13 +326,13 @@ class TadoClimate(TadoZoneEntity, ClimateEntity): return self._supported_hvac_modes @property - def hvac_action(self): + def hvac_action(self) -> HVACAction: """Return the current running hvac operation if supported. Need to be one of CURRENT_HVAC_*. """ return TADO_HVAC_ACTION_TO_HA_HVAC_ACTION.get( - self._tado_zone_data.current_hvac_action, CURRENT_HVAC_OFF + self._tado_zone_data.current_hvac_action, HVACAction.OFF ) @property @@ -423,7 +425,7 @@ class TadoClimate(TadoZoneEntity, ClimateEntity): new_hvac_mode = CONST_MODE_COOL if self._ac_device else CONST_MODE_HEAT self._control_hvac(target_temp=temperature, hvac_mode=new_hvac_mode) - def set_hvac_mode(self, hvac_mode): + def set_hvac_mode(self, hvac_mode: HVACMode) -> None: """Set new target hvac mode.""" self._control_hvac(hvac_mode=HA_TO_TADO_HVAC_MODE_MAP[hvac_mode]) diff --git a/homeassistant/components/tado/const.py b/homeassistant/components/tado/const.py index 291d02cb403..b6b36444211 100644 --- a/homeassistant/components/tado/const.py +++ b/homeassistant/components/tado/const.py @@ -11,36 +11,25 @@ from PyTado.const import ( ) from homeassistant.components.climate.const import ( - CURRENT_HVAC_COOL, - CURRENT_HVAC_DRY, - CURRENT_HVAC_FAN, - CURRENT_HVAC_HEAT, - CURRENT_HVAC_IDLE, - CURRENT_HVAC_OFF, FAN_AUTO, FAN_HIGH, FAN_LOW, FAN_MEDIUM, FAN_OFF, - HVAC_MODE_AUTO, - HVAC_MODE_COOL, - HVAC_MODE_DRY, - HVAC_MODE_FAN_ONLY, - HVAC_MODE_HEAT, - HVAC_MODE_HEAT_COOL, - HVAC_MODE_OFF, PRESET_AWAY, PRESET_HOME, + HVACAction, + HVACMode, ) TADO_HVAC_ACTION_TO_HA_HVAC_ACTION = { - CONST_HVAC_HEAT: CURRENT_HVAC_HEAT, - CONST_HVAC_DRY: CURRENT_HVAC_DRY, - CONST_HVAC_FAN: CURRENT_HVAC_FAN, - CONST_HVAC_COOL: CURRENT_HVAC_COOL, - CONST_HVAC_IDLE: CURRENT_HVAC_IDLE, - CONST_HVAC_OFF: CURRENT_HVAC_OFF, - CONST_HVAC_HOT_WATER: CURRENT_HVAC_HEAT, + CONST_HVAC_HEAT: HVACAction.HEATING, + CONST_HVAC_DRY: HVACAction.DRYING, + CONST_HVAC_FAN: HVACAction.FAN, + CONST_HVAC_COOL: HVACAction.COOLING, + CONST_HVAC_IDLE: HVACAction.IDLE, + CONST_HVAC_OFF: HVACAction.OFF, + CONST_HVAC_HOT_WATER: HVACAction.HEATING, } # Configuration @@ -121,10 +110,10 @@ ORDERED_KNOWN_TADO_MODES = [ ] TADO_MODES_TO_HA_CURRENT_HVAC_ACTION = { - CONST_MODE_HEAT: CURRENT_HVAC_HEAT, - CONST_MODE_DRY: CURRENT_HVAC_DRY, - CONST_MODE_FAN: CURRENT_HVAC_FAN, - CONST_MODE_COOL: CURRENT_HVAC_COOL, + CONST_MODE_HEAT: HVACAction.HEATING, + CONST_MODE_DRY: HVACAction.DRYING, + CONST_MODE_FAN: HVACAction.FAN, + CONST_MODE_COOL: HVACAction.COOLING, } # These modes will not allow a temp to be set @@ -137,13 +126,13 @@ TADO_MODES_WITH_NO_TEMP_SETTING = [CONST_MODE_AUTO, CONST_MODE_DRY, CONST_MODE_F # This runs the smart schedule # HA_TO_TADO_HVAC_MODE_MAP = { - HVAC_MODE_OFF: CONST_MODE_OFF, - HVAC_MODE_HEAT_COOL: CONST_MODE_AUTO, - HVAC_MODE_AUTO: CONST_MODE_SMART_SCHEDULE, - HVAC_MODE_HEAT: CONST_MODE_HEAT, - HVAC_MODE_COOL: CONST_MODE_COOL, - HVAC_MODE_DRY: CONST_MODE_DRY, - HVAC_MODE_FAN_ONLY: CONST_MODE_FAN, + HVACMode.OFF: CONST_MODE_OFF, + HVACMode.HEAT_COOL: CONST_MODE_AUTO, + HVACMode.AUTO: CONST_MODE_SMART_SCHEDULE, + HVACMode.HEAT: CONST_MODE_HEAT, + HVACMode.COOL: CONST_MODE_COOL, + HVACMode.DRY: CONST_MODE_DRY, + HVACMode.FAN_ONLY: CONST_MODE_FAN, } HA_TO_TADO_FAN_MODE_MAP = {