Use attributes in unifiled light (#76019)
This commit is contained in:
parent
bb58ad0f54
commit
a987cad973
1 changed files with 14 additions and 38 deletions
|
@ -63,58 +63,34 @@ class UnifiLedLight(LightEntity):
|
||||||
_attr_color_mode = ColorMode.BRIGHTNESS
|
_attr_color_mode = ColorMode.BRIGHTNESS
|
||||||
_attr_supported_color_modes = {ColorMode.BRIGHTNESS}
|
_attr_supported_color_modes = {ColorMode.BRIGHTNESS}
|
||||||
|
|
||||||
def __init__(self, light, api):
|
def __init__(self, light: dict[str, Any], api: unifiled) -> None:
|
||||||
"""Init Unifi LED Light."""
|
"""Init Unifi LED Light."""
|
||||||
|
|
||||||
self._api = api
|
self._api = api
|
||||||
self._light = light
|
self._light = light
|
||||||
self._name = light["name"]
|
self._attr_name = light["name"]
|
||||||
self._unique_id = light["id"]
|
self._light_id = light["id"]
|
||||||
self._state = light["status"]["output"]
|
self._attr_unique_id = light["id"]
|
||||||
self._available = light["isOnline"]
|
self._attr_is_on = light["status"]["output"]
|
||||||
self._brightness = self._api.convertfrom100to255(light["status"]["led"])
|
self._attr_available = light["isOnline"]
|
||||||
|
self._attr_brightness = self._api.convertfrom100to255(light["status"]["led"])
|
||||||
@property
|
|
||||||
def name(self):
|
|
||||||
"""Return the display name of this light."""
|
|
||||||
return self._name
|
|
||||||
|
|
||||||
@property
|
|
||||||
def available(self):
|
|
||||||
"""Return the available state of this light."""
|
|
||||||
return self._available
|
|
||||||
|
|
||||||
@property
|
|
||||||
def brightness(self):
|
|
||||||
"""Return the brightness name of this light."""
|
|
||||||
return self._brightness
|
|
||||||
|
|
||||||
@property
|
|
||||||
def unique_id(self):
|
|
||||||
"""Return the unique id of this light."""
|
|
||||||
return self._unique_id
|
|
||||||
|
|
||||||
@property
|
|
||||||
def is_on(self):
|
|
||||||
"""Return true if light is on."""
|
|
||||||
return self._state
|
|
||||||
|
|
||||||
def turn_on(self, **kwargs: Any) -> None:
|
def turn_on(self, **kwargs: Any) -> None:
|
||||||
"""Instruct the light to turn on."""
|
"""Instruct the light to turn on."""
|
||||||
self._api.setdevicebrightness(
|
self._api.setdevicebrightness(
|
||||||
self._unique_id,
|
self._light_id,
|
||||||
str(self._api.convertfrom255to100(kwargs.get(ATTR_BRIGHTNESS, 255))),
|
str(self._api.convertfrom255to100(kwargs.get(ATTR_BRIGHTNESS, 255))),
|
||||||
)
|
)
|
||||||
self._api.setdeviceoutput(self._unique_id, 1)
|
self._api.setdeviceoutput(self._light_id, 1)
|
||||||
|
|
||||||
def turn_off(self, **kwargs: Any) -> None:
|
def turn_off(self, **kwargs: Any) -> None:
|
||||||
"""Instruct the light to turn off."""
|
"""Instruct the light to turn off."""
|
||||||
self._api.setdeviceoutput(self._unique_id, 0)
|
self._api.setdeviceoutput(self._light_id, 0)
|
||||||
|
|
||||||
def update(self) -> None:
|
def update(self) -> None:
|
||||||
"""Update the light states."""
|
"""Update the light states."""
|
||||||
self._state = self._api.getlightstate(self._unique_id)
|
self._attr_is_on = self._api.getlightstate(self._light_id)
|
||||||
self._brightness = self._api.convertfrom100to255(
|
self._attr_brightness = self._api.convertfrom100to255(
|
||||||
self._api.getlightbrightness(self._unique_id)
|
self._api.getlightbrightness(self._light_id)
|
||||||
)
|
)
|
||||||
self._available = self._api.getlightavailable(self._unique_id)
|
self._attr_available = self._api.getlightavailable(self._light_id)
|
||||||
|
|
Loading…
Add table
Reference in a new issue