diff --git a/homeassistant/components/nanoleaf/light.py b/homeassistant/components/nanoleaf/light.py index 1cf6bd4d8bf..7cbb48fbf61 100644 --- a/homeassistant/components/nanoleaf/light.py +++ b/homeassistant/components/nanoleaf/light.py @@ -12,9 +12,8 @@ from homeassistant.components.light import ( ATTR_EFFECT, ATTR_HS_COLOR, ATTR_TRANSITION, - SUPPORT_BRIGHTNESS, - SUPPORT_COLOR, - SUPPORT_COLOR_TEMP, + COLOR_MODE_COLOR_TEMP, + COLOR_MODE_HS, SUPPORT_EFFECT, SUPPORT_TRANSITION, LightEntity, @@ -47,6 +46,9 @@ async def async_setup_entry( class NanoleafLight(NanoleafEntity, LightEntity): """Representation of a Nanoleaf Light.""" + _attr_supported_color_modes = {COLOR_MODE_COLOR_TEMP, COLOR_MODE_HS} + _attr_supported_features = SUPPORT_EFFECT | SUPPORT_TRANSITION + def __init__(self, nanoleaf: Nanoleaf, coordinator: DataUpdateCoordinator) -> None: """Initialize the Nanoleaf light.""" super().__init__(nanoleaf, coordinator) @@ -97,15 +99,14 @@ class NanoleafLight(NanoleafEntity, LightEntity): return self._nanoleaf.hue, self._nanoleaf.saturation @property - def supported_features(self) -> int: - """Flag supported features.""" - return ( - SUPPORT_BRIGHTNESS - | SUPPORT_COLOR_TEMP - | SUPPORT_EFFECT - | SUPPORT_COLOR - | SUPPORT_TRANSITION - ) + def color_mode(self) -> str | None: + """Return the color mode of the light.""" + # According to API docs, color mode is "ct", "effect" or "hs" + # https://forum.nanoleaf.me/docs/openapi#_4qgqrz96f44d + if self._nanoleaf.color_mode == "ct": + return COLOR_MODE_COLOR_TEMP + # Home Assistant does not have an "effect" color mode, just report hs + return COLOR_MODE_HS async def async_turn_on(self, **kwargs: Any) -> None: """Instruct the light to turn on."""