From af5d29735f15598002358eb857cd009ee34385f6 Mon Sep 17 00:00:00 2001 From: Patrik Lindgren <21142447+ggravlingen@users.noreply.github.com> Date: Thu, 7 Apr 2022 09:06:29 +0200 Subject: [PATCH] Deprecate SUPPORT_*-constants for Tradfri integration (#69368) * Refactor constants * Remove _LOGGER * Fix sort order * Refactor constats * Run isort * Remove SUPPORTED_ constants from Tradfri integration * Remove constant * Remove line * Use brackets * Add documentation * Address review comments --- homeassistant/components/tradfri/fan.py | 13 +++------- homeassistant/components/tradfri/light.py | 30 +++++++++++++---------- 2 files changed, 20 insertions(+), 23 deletions(-) diff --git a/homeassistant/components/tradfri/fan.py b/homeassistant/components/tradfri/fan.py index 5c5688edd4c..0924da11259 100644 --- a/homeassistant/components/tradfri/fan.py +++ b/homeassistant/components/tradfri/fan.py @@ -7,11 +7,7 @@ from typing import Any, cast from pytradfri.command import Command -from homeassistant.components.fan import ( - SUPPORT_PRESET_MODE, - SUPPORT_SET_SPEED, - FanEntity, -) +from homeassistant.components.fan import FanEntity, FanEntityFeature from homeassistant.config_entries import ConfigEntry from homeassistant.core import HomeAssistant from homeassistant.helpers.entity_platform import AddEntitiesCallback @@ -58,6 +54,8 @@ async def async_setup_entry( class TradfriAirPurifierFan(TradfriBaseEntity, FanEntity): """The platform class required by Home Assistant.""" + _attr_supported_features = FanEntityFeature.PRESET_MODE | FanEntityFeature.SET_SPEED + def __init__( self, device_coordinator: TradfriDeviceDataUpdateCoordinator, @@ -78,11 +76,6 @@ class TradfriAirPurifierFan(TradfriBaseEntity, FanEntity): """Refresh the device.""" self._device_data = self.coordinator.data.air_purifier_control.air_purifiers[0] - @property - def supported_features(self) -> int: - """Flag supported features.""" - return SUPPORT_PRESET_MODE + SUPPORT_SET_SPEED - @property def speed_count(self) -> int: """ diff --git a/homeassistant/components/tradfri/light.py b/homeassistant/components/tradfri/light.py index 99c4350c9b8..6c92f419cb6 100644 --- a/homeassistant/components/tradfri/light.py +++ b/homeassistant/components/tradfri/light.py @@ -11,11 +11,11 @@ from homeassistant.components.light import ( ATTR_COLOR_TEMP, ATTR_HS_COLOR, ATTR_TRANSITION, - SUPPORT_BRIGHTNESS, - SUPPORT_COLOR, - SUPPORT_COLOR_TEMP, - SUPPORT_TRANSITION, + COLOR_MODE_BRIGHTNESS, + COLOR_MODE_COLOR_TEMP, + COLOR_MODE_HS, LightEntity, + LightEntityFeature, ) from homeassistant.config_entries import ConfigEntry from homeassistant.core import HomeAssistant @@ -26,8 +26,6 @@ from .base_class import TradfriBaseEntity from .const import CONF_GATEWAY_ID, COORDINATOR, COORDINATOR_LIST, DOMAIN, KEY_API from .coordinator import TradfriDeviceDataUpdateCoordinator -SUPPORTED_LIGHT_FEATURES = SUPPORT_TRANSITION - async def async_setup_entry( hass: HomeAssistant, @@ -53,6 +51,8 @@ async def async_setup_entry( class TradfriLight(TradfriBaseEntity, LightEntity): """The platform class required by Home Assistant.""" + _attr_supported_features = LightEntityFeature.TRANSITION + def __init__( self, device_coordinator: TradfriDeviceDataUpdateCoordinator, @@ -72,15 +72,19 @@ class TradfriLight(TradfriBaseEntity, LightEntity): self._attr_unique_id = f"light-{gateway_id}-{self._device_id}" self._hs_color = None - # Calculate supported features - _features = SUPPORTED_LIGHT_FEATURES - if self._device.light_control.can_set_dimmer: - _features |= SUPPORT_BRIGHTNESS + # Calculate supported color modes + self._attr_supported_color_modes = set() if self._device.light_control.can_set_color: - _features |= SUPPORT_COLOR | SUPPORT_COLOR_TEMP + self._attr_supported_color_modes.add(COLOR_MODE_HS) if self._device.light_control.can_set_temp: - _features |= SUPPORT_COLOR_TEMP - self._attr_supported_features = _features + self._attr_supported_color_modes.add(COLOR_MODE_COLOR_TEMP) + if ( + not self._attr_supported_color_modes + and self._device.light_control.can_set_dimmer + ): + # Must be the only supported mode according to docs for + # COLOR_MODE_BRIGHTNESS + self._attr_supported_color_modes.add(COLOR_MODE_BRIGHTNESS) if self._device_control: self._attr_min_mireds = self._device_control.min_mireds