From dae2cf2827ef1f97b18a30db005015445e4a72f5 Mon Sep 17 00:00:00 2001 From: epenet <6771947+epenet@users.noreply.github.com> Date: Wed, 6 Apr 2022 11:52:59 +0200 Subject: [PATCH] Use EntityFeature enum in esphome (#69386) --- homeassistant/components/esphome/climate.py | 17 ++++++----------- homeassistant/components/esphome/cover.py | 20 ++++++++++---------- homeassistant/components/esphome/fan.py | 10 ++++------ homeassistant/components/esphome/light.py | 10 ++++------ homeassistant/components/esphome/lock.py | 4 ++-- 5 files changed, 26 insertions(+), 35 deletions(-) diff --git a/homeassistant/components/esphome/climate.py b/homeassistant/components/esphome/climate.py index 31d3e5f2320..0707d9886de 100644 --- a/homeassistant/components/esphome/climate.py +++ b/homeassistant/components/esphome/climate.py @@ -13,7 +13,7 @@ from aioesphomeapi import ( ClimateSwingMode, ) -from homeassistant.components.climate import ClimateEntity +from homeassistant.components.climate import ClimateEntity, ClimateEntityFeature from homeassistant.components.climate.const import ( ATTR_HVAC_MODE, ATTR_TARGET_TEMP_HIGH, @@ -48,11 +48,6 @@ from homeassistant.components.climate.const import ( PRESET_HOME, PRESET_NONE, PRESET_SLEEP, - SUPPORT_FAN_MODE, - SUPPORT_PRESET_MODE, - SUPPORT_SWING_MODE, - SUPPORT_TARGET_TEMPERATURE, - SUPPORT_TARGET_TEMPERATURE_RANGE, SWING_BOTH, SWING_HORIZONTAL, SWING_OFF, @@ -223,15 +218,15 @@ class EsphomeClimateEntity(EsphomeEntity[ClimateInfo, ClimateState], ClimateEnti """Return the list of supported features.""" features = 0 if self._static_info.supports_two_point_target_temperature: - features |= SUPPORT_TARGET_TEMPERATURE_RANGE + features |= ClimateEntityFeature.TARGET_TEMPERATURE_RANGE else: - features |= SUPPORT_TARGET_TEMPERATURE + features |= ClimateEntityFeature.TARGET_TEMPERATURE if self.preset_modes: - features |= SUPPORT_PRESET_MODE + features |= ClimateEntityFeature.PRESET_MODE if self.fan_modes: - features |= SUPPORT_FAN_MODE + features |= ClimateEntityFeature.FAN_MODE if self.swing_modes: - features |= SUPPORT_SWING_MODE + features |= ClimateEntityFeature.SWING_MODE return features @esphome_state_property diff --git a/homeassistant/components/esphome/cover.py b/homeassistant/components/esphome/cover.py index 0e23050646f..4296c899253 100644 --- a/homeassistant/components/esphome/cover.py +++ b/homeassistant/components/esphome/cover.py @@ -9,14 +9,8 @@ from homeassistant.components.cover import ( ATTR_POSITION, ATTR_TILT_POSITION, DEVICE_CLASSES, - SUPPORT_CLOSE, - SUPPORT_CLOSE_TILT, - SUPPORT_OPEN, - SUPPORT_OPEN_TILT, - SUPPORT_SET_POSITION, - SUPPORT_SET_TILT_POSITION, - SUPPORT_STOP, CoverEntity, + CoverEntityFeature, ) from homeassistant.config_entries import ConfigEntry from homeassistant.core import HomeAssistant @@ -50,11 +44,17 @@ class EsphomeCover(EsphomeEntity[CoverInfo, CoverState], CoverEntity): @property def supported_features(self) -> int: """Flag supported features.""" - flags = SUPPORT_OPEN | SUPPORT_CLOSE | SUPPORT_STOP + flags = ( + CoverEntityFeature.OPEN | CoverEntityFeature.CLOSE | CoverEntityFeature.STOP + ) if self._static_info.supports_position: - flags |= SUPPORT_SET_POSITION + flags |= CoverEntityFeature.SET_POSITION if self._static_info.supports_tilt: - flags |= SUPPORT_OPEN_TILT | SUPPORT_CLOSE_TILT | SUPPORT_SET_TILT_POSITION + flags |= ( + CoverEntityFeature.OPEN_TILT + | CoverEntityFeature.CLOSE_TILT + | CoverEntityFeature.SET_TILT_POSITION + ) return flags @property diff --git a/homeassistant/components/esphome/fan.py b/homeassistant/components/esphome/fan.py index 91cb8bb6fdb..f2440465e77 100644 --- a/homeassistant/components/esphome/fan.py +++ b/homeassistant/components/esphome/fan.py @@ -9,10 +9,8 @@ from aioesphomeapi import FanDirection, FanInfo, FanSpeed, FanState from homeassistant.components.fan import ( DIRECTION_FORWARD, DIRECTION_REVERSE, - SUPPORT_DIRECTION, - SUPPORT_OSCILLATE, - SUPPORT_SET_SPEED, FanEntity, + FanEntityFeature, ) from homeassistant.config_entries import ConfigEntry from homeassistant.core import HomeAssistant @@ -161,9 +159,9 @@ class EsphomeFan(EsphomeEntity[FanInfo, FanState], FanEntity): """Flag supported features.""" flags = 0 if self._static_info.supports_oscillation: - flags |= SUPPORT_OSCILLATE + flags |= FanEntityFeature.OSCILLATE if self._static_info.supports_speed: - flags |= SUPPORT_SET_SPEED + flags |= FanEntityFeature.SET_SPEED if self._static_info.supports_direction: - flags |= SUPPORT_DIRECTION + flags |= FanEntityFeature.DIRECTION return flags diff --git a/homeassistant/components/esphome/light.py b/homeassistant/components/esphome/light.py index 44649e9e219..be8be1b8075 100644 --- a/homeassistant/components/esphome/light.py +++ b/homeassistant/components/esphome/light.py @@ -25,10 +25,8 @@ from homeassistant.components.light import ( COLOR_MODE_WHITE, FLASH_LONG, FLASH_SHORT, - SUPPORT_EFFECT, - SUPPORT_FLASH, - SUPPORT_TRANSITION, LightEntity, + LightEntityFeature, ) from homeassistant.config_entries import ConfigEntry from homeassistant.core import HomeAssistant @@ -354,14 +352,14 @@ class EsphomeLight(EsphomeEntity[LightInfo, LightState], LightEntity): @property def supported_features(self) -> int: """Flag supported features.""" - flags = SUPPORT_FLASH + flags: int = LightEntityFeature.FLASH # All color modes except UNKNOWN,ON_OFF support transition modes = self._native_supported_color_modes if any(m not in (0, LightColorCapability.ON_OFF) for m in modes): - flags |= SUPPORT_TRANSITION + flags |= LightEntityFeature.TRANSITION if self._static_info.effects: - flags |= SUPPORT_EFFECT + flags |= LightEntityFeature.EFFECT return flags @property diff --git a/homeassistant/components/esphome/lock.py b/homeassistant/components/esphome/lock.py index 84c93d9df13..a85411b5744 100644 --- a/homeassistant/components/esphome/lock.py +++ b/homeassistant/components/esphome/lock.py @@ -5,7 +5,7 @@ from typing import Any from aioesphomeapi import LockCommand, LockEntityState, LockInfo, LockState -from homeassistant.components.lock import SUPPORT_OPEN, LockEntity +from homeassistant.components.lock import LockEntity, LockEntityFeature from homeassistant.config_entries import ConfigEntry from homeassistant.const import ATTR_CODE from homeassistant.core import HomeAssistant @@ -44,7 +44,7 @@ class EsphomeLock(EsphomeEntity[LockInfo, LockEntityState], LockEntity): @property def supported_features(self) -> int: """Flag supported features.""" - return SUPPORT_OPEN if self._static_info.supports_open else 0 + return LockEntityFeature.OPEN if self._static_info.supports_open else 0 @property def code_format(self) -> str | None: