diff --git a/homeassistant/components/lifx/light.py b/homeassistant/components/lifx/light.py index 323bec3f1de547..77a4820db520c3 100644 --- a/homeassistant/components/lifx/light.py +++ b/homeassistant/components/lifx/light.py @@ -27,14 +27,11 @@ COLOR_GROUP, DOMAIN, LIGHT_TURN_ON_SCHEMA, - SUPPORT_BRIGHTNESS, - SUPPORT_COLOR, - SUPPORT_COLOR_TEMP, - SUPPORT_EFFECT, - SUPPORT_TRANSITION, VALID_BRIGHTNESS, VALID_BRIGHTNESS_PCT, + ColorMode, LightEntity, + LightEntityFeature, preprocess_turn_on_alternatives, ) from homeassistant.config_entries import ConfigEntry @@ -496,6 +493,8 @@ def convert_16_to_8(value): class LIFXLight(LightEntity): """Representation of a LIFX light.""" + _attr_supported_features = LightEntityFeature.TRANSITION | LightEntityFeature.EFFECT + def __init__(self, bulb, effects_conductor): """Initialize the light.""" self.bulb = bulb @@ -567,15 +566,17 @@ def max_mireds(self): return math.ceil(color_util.color_temperature_kelvin_to_mired(kelvin)) @property - def supported_features(self): - """Flag supported features.""" - support = SUPPORT_BRIGHTNESS | SUPPORT_TRANSITION | SUPPORT_EFFECT - + def color_mode(self) -> ColorMode: + """Return the color mode of the light.""" bulb_features = lifx_features(self.bulb) if bulb_features["min_kelvin"] != bulb_features["max_kelvin"]: - support |= SUPPORT_COLOR_TEMP + return ColorMode.COLOR_TEMP + return ColorMode.BRIGHTNESS - return support + @property + def supported_color_modes(self) -> set[ColorMode]: + """Flag supported color modes.""" + return {self.color_mode} @property def brightness(self): @@ -725,11 +726,17 @@ class LIFXColor(LIFXLight): """Representation of a color LIFX light.""" @property - def supported_features(self): - """Flag supported features.""" - support = super().supported_features - support |= SUPPORT_COLOR - return support + def color_mode(self) -> ColorMode: + """Return the color mode of the light.""" + sat = self.bulb.color[1] + if sat: + return ColorMode.HS + return ColorMode.COLOR_TEMP + + @property + def supported_color_modes(self) -> set[ColorMode]: + """Flag supported color modes.""" + return {ColorMode.COLOR_TEMP, ColorMode.HS} @property def effect_list(self):