1 """Support for control of ElkM1 lighting (X10, UPB, etc)."""
3 from __future__
import annotations
7 from elkm1_lib.elements
import Element
8 from elkm1_lib.elk
import Elk
9 from elkm1_lib.lights
import Light
15 from .
import ElkM1ConfigEntry
16 from .entity
import ElkEntity, create_elk_entities
17 from .models
import ELKM1Data
22 config_entry: ElkM1ConfigEntry,
23 async_add_entities: AddEntitiesCallback,
25 """Set up the Elk light platform."""
26 elk_data = config_entry.runtime_data
28 entities: list[ElkEntity] = []
34 """Representation of an Elk lighting device."""
36 _attr_color_mode = ColorMode.BRIGHTNESS
37 _attr_supported_color_modes = {ColorMode.BRIGHTNESS}
40 def __init__(self, element: Element, elk: Elk, elk_data: ELKM1Data) ->
None:
41 """Initialize the Elk light."""
42 super().
__init__(element, elk, elk_data)
47 """Get the brightness."""
52 """Get the current brightness."""
56 status = self.
_element_element.status
if self.
_element_element.status != 1
else 100
60 """Turn on the light."""
61 self.
_element_element.level(round(kwargs.get(ATTR_BRIGHTNESS, 255) / 2.55))
64 """Turn off the light."""
None __init__(self, Element element, Elk elk, ELKM1Data elk_data)
None async_turn_off(self, **Any kwargs)
None async_turn_on(self, **Any kwargs)
None _element_changed(self, Element element, Any changeset)
list[ElkEntity]|None create_elk_entities(ELKM1Data elk_data, Iterable[Element] elk_elements, str element_type, Any class_, list[ElkEntity] entities)
None async_setup_entry(HomeAssistant hass, ElkM1ConfigEntry config_entry, AddEntitiesCallback async_add_entities)