Ensure platform setup for all AVM FRITZ!SmartHome devices (#105515)

This commit is contained in:
Michael 2023-12-13 18:07:29 +01:00 committed by GitHub
parent dd5a48996a
commit 08ca3678da
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 44 additions and 35 deletions

View file

@ -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):