Home Assistant Unofficial Reference 2024.12.1
util.py
Go to the documentation of this file.
1 """ISY utils."""
2 
3 from __future__ import annotations
4 
5 from homeassistant.core import HomeAssistant, callback
7 
8 from .const import _LOGGER, DOMAIN
9 
10 
11 @callback
12 def _async_cleanup_registry_entries(hass: HomeAssistant, entry_id: str) -> None:
13  """Remove extra entities that are no longer part of the integration."""
14  entity_registry = er.async_get(hass)
15  isy_data = hass.data[DOMAIN][entry_id]
16 
17  existing_entries = er.async_entries_for_config_entry(entity_registry, entry_id)
18  entities = {
19  (entity.domain, entity.unique_id): entity.entity_id
20  for entity in existing_entries
21  }
22 
23  extra_entities = set(entities.keys()).difference(isy_data.unique_ids)
24  if not extra_entities:
25  return
26 
27  for entity in extra_entities:
28  if entity_registry.async_is_registered(entities[entity]):
29  entity_registry.async_remove(entities[entity])
30 
31  _LOGGER.debug(
32  ("Cleaning up ISY entities: removed %s extra entities for config entry %s"),
33  len(extra_entities),
34  entry_id,
35  )
None _async_cleanup_registry_entries(HomeAssistant hass, str entry_id)
Definition: util.py:12