diff --git a/homeassistant/components/ps4/__init__.py b/homeassistant/components/ps4/__init__.py index 1c87a275126..4e7f78c4b18 100644 --- a/homeassistant/components/ps4/__init__.py +++ b/homeassistant/components/ps4/__init__.py @@ -120,33 +120,35 @@ async def async_migrate_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: # Prevent changing entity_id. Updates entity registry. registry = er.async_get(hass) - for entity_id, e_entry in registry.entities.items(): - if e_entry.config_entry_id == entry.entry_id: - unique_id = e_entry.unique_id + for e_entry in registry.entities.get_entries_for_config_entry_id( + entry.entry_id + ): + unique_id = e_entry.unique_id + entity_id = e_entry.entity_id - # Remove old entity entry. - registry.async_remove(entity_id) + # Remove old entity entry. + registry.async_remove(entity_id) - # Format old unique_id. - unique_id = format_unique_id(entry.data[CONF_TOKEN], unique_id) + # Format old unique_id. + unique_id = format_unique_id(entry.data[CONF_TOKEN], unique_id) - # Create new entry with old entity_id. - new_id = split_entity_id(entity_id)[1] - registry.async_get_or_create( - "media_player", - DOMAIN, - unique_id, - suggested_object_id=new_id, - config_entry=entry, - device_id=e_entry.device_id, - ) - entry.version = 3 - _LOGGER.info( - "PlayStation 4 identifier for entity: %s has changed", - entity_id, - ) - config_entries.async_update_entry(entry) - return True + # Create new entry with old entity_id. + new_id = split_entity_id(entity_id)[1] + registry.async_get_or_create( + "media_player", + DOMAIN, + unique_id, + suggested_object_id=new_id, + config_entry=entry, + device_id=e_entry.device_id, + ) + entry.version = 3 + _LOGGER.info( + "PlayStation 4 identifier for entity: %s has changed", + entity_id, + ) + config_entries.async_update_entry(entry) + return True msg = f"""{reason[version]} for the PlayStation 4 Integration. Please remove the PS4 Integration and re-configure diff --git a/homeassistant/components/ps4/media_player.py b/homeassistant/components/ps4/media_player.py index 722b733c08b..42a1021afe4 100644 --- a/homeassistant/components/ps4/media_player.py +++ b/homeassistant/components/ps4/media_player.py @@ -344,11 +344,13 @@ class PS4Device(MediaPlayerEntity): _LOGGER.info("Assuming status from registry") e_registry = er.async_get(self.hass) d_registry = dr.async_get(self.hass) - for entity_id, entry in e_registry.entities.items(): - if entry.config_entry_id == self._entry_id: - self._attr_unique_id = entry.unique_id - self.entity_id = entity_id - break + + for entry in e_registry.entities.get_entries_for_config_entry_id( + self._entry_id + ): + self._attr_unique_id = entry.unique_id + self.entity_id = entry.entity_id + break for device in d_registry.devices.values(): if self._entry_id in device.config_entries: self._attr_device_info = DeviceInfo(