Migrate nanoleaf light to color_mode ()

This commit is contained in:
Erik Montnemery 2022-04-15 20:09:47 +02:00 committed by GitHub
parent 5f6a970826
commit 353c091973
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -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."""