1 """Support for Lutron Homeworks binary sensors."""
3 from __future__
import annotations
8 from pyhomeworks.pyhomeworks
import HW_KEYPAD_LED_CHANGED, Homeworks
18 from .
import HomeworksData, HomeworksKeypad
28 from .entity
import HomeworksEntity
30 _LOGGER = logging.getLogger(__name__)
34 hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
36 """Set up Homeworks binary sensors."""
37 data: HomeworksData = hass.data[DOMAIN][entry.entry_id]
38 controller = data.controller
39 controller_id = entry.options[CONF_CONTROLLER_ID]
41 for keypad
in entry.options.get(CONF_KEYPADS, []):
42 for button
in keypad[CONF_BUTTONS]:
43 if not button[CONF_LED]:
47 data.keypads[keypad[CONF_ADDR]],
54 entities.append(entity)
59 """Homeworks Binary Sensor."""
61 _attr_has_entity_name =
True
65 controller: Homeworks,
66 keypad: HomeworksKeypad,
73 """Create device with Addr, name, and rate."""
74 super().
__init__(controller, controller_id, addr, led_number, button_name)
76 identifiers={(DOMAIN, f
"{controller_id}.{addr}")}, name=keypad_name
81 """Call when entity is added to hass."""
82 signal = f
"homeworks_entity_{self._controller_id}_{self._addr}"
83 _LOGGER.debug(
"connecting %s", signal)
87 await self.
_keypad_keypad.request_keypad_led_states()
91 """Process device specific messages."""
92 if msg_type != HW_KEYPAD_LED_CHANGED
or len(values[1]) < self.
_idx_idx:
None __init__(self, Homeworks controller, HomeworksKeypad keypad, str controller_id, str addr, str keypad_name, str button_name, int led_number)
None _update_callback(self, str msg_type, list[Any] values)
None async_added_to_hass(self)
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)