diff --git a/homeassistant/helpers/device_registry.py b/homeassistant/helpers/device_registry.py index 9c2492d65e8..64d102d020f 100644 --- a/homeassistant/helpers/device_registry.py +++ b/homeassistant/helpers/device_registry.py @@ -392,14 +392,14 @@ class DeviceRegistryItems(UserDict[str, _EntryTypeT]): def __setitem__(self, key: str, entry: _EntryTypeT) -> None: """Add an item.""" - if key in self: - old_entry = self[key] + data = self.data + if key in data: + old_entry = data[key] for connection in old_entry.connections: del self._connections[connection] for identifier in old_entry.identifiers: del self._identifiers[identifier] - # type ignore linked to mypy issue: https://github.com/python/mypy/issues/13596 - super().__setitem__(key, entry) # type: ignore[assignment] + data[key] = entry for connection in entry.connections: self._connections[connection] = entry for identifier in entry.identifiers: diff --git a/homeassistant/helpers/entity_registry.py b/homeassistant/helpers/entity_registry.py index 939c8986e71..09f92a88882 100644 --- a/homeassistant/helpers/entity_registry.py +++ b/homeassistant/helpers/entity_registry.py @@ -450,11 +450,12 @@ class EntityRegistryItems(UserDict[str, RegistryEntry]): def __setitem__(self, key: str, entry: RegistryEntry) -> None: """Add an item.""" - if key in self: - old_entry = self[key] + data = self.data + if key in data: + old_entry = data[key] del self._entry_ids[old_entry.id] del self._index[(old_entry.domain, old_entry.platform, old_entry.unique_id)] - super().__setitem__(key, entry) + data[key] = entry self._entry_ids[entry.id] = entry self._index[(entry.domain, entry.platform, entry.unique_id)] = entry.entity_id