"""ISY utils.""" from __future__ import annotations from homeassistant.core import HomeAssistant, callback from homeassistant.helpers import entity_registry as er from .const import _LOGGER from .models import IsyConfigEntry @callback def _async_cleanup_registry_entries(hass: HomeAssistant, entry: IsyConfigEntry) -> None: """Remove extra entities that are no longer part of the integration.""" entity_registry = er.async_get(hass) isy_data = entry.runtime_data existing_entries = er.async_entries_for_config_entry( entity_registry, entry.entry_id ) entities = { (entity.domain, entity.unique_id): entity.entity_id for entity in existing_entries } extra_entities = set(entities.keys()).difference(isy_data.unique_ids) if not extra_entities: return for entity in extra_entities: if entity_registry.async_is_registered(entities[entity]): entity_registry.async_remove(entities[entity]) _LOGGER.debug( ("Cleaning up ISY entities: removed %s extra entities for config entry %s"), len(extra_entities), entry.entry_id, )