1 """Support for Lutron Homeworks lights."""
3 from __future__
import annotations
8 from pyhomeworks.pyhomeworks
import HW_LIGHT_CHANGED, Homeworks
18 from .
import HomeworksData
19 from .const
import CONF_ADDR, CONF_CONTROLLER_ID, CONF_DIMMERS, CONF_RATE, DOMAIN
20 from .entity
import HomeworksEntity
22 _LOGGER = logging.getLogger(__name__)
26 hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
28 """Set up Homeworks lights."""
29 data: HomeworksData = hass.data[DOMAIN][entry.entry_id]
30 controller = data.controller
31 controller_id = entry.options[CONF_CONTROLLER_ID]
33 for dimmer
in entry.options.get(CONF_DIMMERS, []):
41 entities.append(entity)
46 """Homeworks Light."""
48 _attr_color_mode = ColorMode.BRIGHTNESS
49 _attr_supported_color_modes = {ColorMode.BRIGHTNESS}
53 controller: Homeworks,
59 """Create device with Addr, name, and rate."""
60 super().
__init__(controller, controller_id, addr, 0,
None)
62 identifiers={(DOMAIN, f
"{controller_id}.{addr}")}, name=name
69 """Call when entity is added to hass."""
70 signal = f
"homeworks_entity_{self._controller_id}_{self._addr}"
71 _LOGGER.debug(
"connecting %s", signal)
78 """Turn on the light."""
79 if ATTR_BRIGHTNESS
in kwargs:
80 new_level = kwargs[ATTR_BRIGHTNESS]
88 """Turn off the light."""
93 """Control the brightness."""
97 """Send the brightness level to the device."""
104 """Is the light on/off."""
105 return self.
_level_level != 0
109 """Process device specific messages."""
111 if msg_type == HW_LIGHT_CHANGED:
112 self.
_level_level =
int((values[1] * 255.0) / 100.0)
113 if self.
_level_level != 0:
None async_added_to_hass(self)
None _set_brightness(self, int level)
None turn_on(self, **Any kwargs)
None __init__(self, Homeworks controller, str controller_id, str addr, str name, float rate)
None turn_off(self, **Any kwargs)
None _update_callback(self, str msg_type, list[Any] values)
None async_write_ha_state(self)
None async_on_remove(self, CALLBACK_TYPE func)
None async_setup_entry(HomeAssistant hass, ConfigEntry entry, AddEntitiesCallback async_add_entities)
Callable[[], None] async_dispatcher_connect(HomeAssistant hass, str signal, Callable[..., Any] target)