diff --git a/homeassistant/components/demo/water_heater.py b/homeassistant/components/demo/water_heater.py index 7b3ecece88c..70332277d90 100644 --- a/homeassistant/components/demo/water_heater.py +++ b/homeassistant/components/demo/water_heater.py @@ -2,10 +2,8 @@ from __future__ import annotations from homeassistant.components.water_heater import ( - SUPPORT_AWAY_MODE, - SUPPORT_OPERATION_MODE, - SUPPORT_TARGET_TEMPERATURE, WaterHeaterEntity, + WaterHeaterEntityFeature, ) from homeassistant.config_entries import ConfigEntry from homeassistant.const import ATTR_TEMPERATURE, TEMP_CELSIUS, TEMP_FAHRENHEIT @@ -14,7 +12,9 @@ from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType SUPPORT_FLAGS_HEATER = ( - SUPPORT_TARGET_TEMPERATURE | SUPPORT_OPERATION_MODE | SUPPORT_AWAY_MODE + WaterHeaterEntityFeature.TARGET_TEMPERATURE + | WaterHeaterEntityFeature.OPERATION_MODE + | WaterHeaterEntityFeature.AWAY_MODE ) @@ -55,13 +55,15 @@ class DemoWaterHeater(WaterHeaterEntity): self._attr_name = name if target_temperature is not None: self._attr_supported_features = ( - self.supported_features | SUPPORT_TARGET_TEMPERATURE + self.supported_features | WaterHeaterEntityFeature.TARGET_TEMPERATURE ) if away is not None: - self._attr_supported_features = self.supported_features | SUPPORT_AWAY_MODE + self._attr_supported_features = ( + self.supported_features | WaterHeaterEntityFeature.AWAY_MODE + ) if current_operation is not None: self._attr_supported_features = ( - self.supported_features | SUPPORT_OPERATION_MODE + self.supported_features | WaterHeaterEntityFeature.OPERATION_MODE ) self._attr_target_temperature = target_temperature self._attr_temperature_unit = unit_of_measurement diff --git a/homeassistant/components/water_heater/__init__.py b/homeassistant/components/water_heater/__init__.py index 57358f3d601..e24d117f678 100644 --- a/homeassistant/components/water_heater/__init__.py +++ b/homeassistant/components/water_heater/__init__.py @@ -3,6 +3,7 @@ from __future__ import annotations from dataclasses import dataclass from datetime import timedelta +from enum import IntEnum import functools as ft import logging from typing import final @@ -55,6 +56,17 @@ STATE_HIGH_DEMAND = "high_demand" STATE_HEAT_PUMP = "heat_pump" STATE_GAS = "gas" + +class WaterHeaterEntityFeature(IntEnum): + """Supported features of the fan entity.""" + + TARGET_TEMPERATURE = 1 + OPERATION_MODE = 2 + AWAY_MODE = 4 + + +# These SUPPORT_* constants are deprecated as of Home Assistant 2022.5. +# Please use the WaterHeaterEntityFeature enum instead. SUPPORT_TARGET_TEMPERATURE = 1 SUPPORT_OPERATION_MODE = 2 SUPPORT_AWAY_MODE = 4 @@ -189,7 +201,7 @@ class WaterHeaterEntity(Entity): ), } - if supported_features & SUPPORT_OPERATION_MODE: + if supported_features & WaterHeaterEntityFeature.OPERATION_MODE: data[ATTR_OPERATION_LIST] = self.operation_list return data @@ -227,10 +239,10 @@ class WaterHeaterEntity(Entity): supported_features = self.supported_features - if supported_features & SUPPORT_OPERATION_MODE: + if supported_features & WaterHeaterEntityFeature.OPERATION_MODE: data[ATTR_OPERATION_MODE] = self.current_operation - if supported_features & SUPPORT_AWAY_MODE: + if supported_features & WaterHeaterEntityFeature.AWAY_MODE: is_away = self.is_away_mode_on data[ATTR_AWAY_MODE] = STATE_ON if is_away else STATE_OFF