Ensure platform setup for all AVM FRITZ!SmartHome devices (#105515)
This commit is contained in:
parent
dd5a48996a
commit
08ca3678da
7 changed files with 44 additions and 35 deletions
|
@ -70,20 +70,22 @@ async def async_setup_entry(
|
|||
coordinator = get_coordinator(hass, entry.entry_id)
|
||||
|
||||
@callback
|
||||
def _add_entities() -> None:
|
||||
def _add_entities(devices: set[str] | None = None) -> None:
|
||||
"""Add devices."""
|
||||
if not coordinator.new_devices:
|
||||
if devices is None:
|
||||
devices = coordinator.new_devices
|
||||
if not devices:
|
||||
return
|
||||
async_add_entities(
|
||||
FritzboxBinarySensor(coordinator, ain, description)
|
||||
for ain in coordinator.new_devices
|
||||
for ain in devices
|
||||
for description in BINARY_SENSOR_TYPES
|
||||
if description.suitable(coordinator.data.devices[ain])
|
||||
)
|
||||
|
||||
entry.async_on_unload(coordinator.async_add_listener(_add_entities))
|
||||
|
||||
_add_entities()
|
||||
_add_entities(set(coordinator.data.devices.keys()))
|
||||
|
||||
|
||||
class FritzboxBinarySensor(FritzBoxDeviceEntity, BinarySensorEntity):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue