From 23e7638687b7523beb05a4a9f5428d125b74afc5 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sat, 8 Feb 2025 11:56:23 -0500 Subject: [PATCH] Fix heos migration (#137887) * Fix heos migration * Fix for loop --- homeassistant/components/heos/__init__.py | 36 +++++++++++------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/homeassistant/components/heos/__init__.py b/homeassistant/components/heos/__init__.py index 0c268b612ea..7bbd3765602 100644 --- a/homeassistant/components/heos/__init__.py +++ b/homeassistant/components/heos/__init__.py @@ -37,24 +37,24 @@ async def async_setup_entry(hass: HomeAssistant, entry: HeosConfigEntry) -> bool for device in device_registry.devices.get_devices_for_config_entry_id( entry.entry_id ): - for domain, player_id in device.identifiers: - if domain == DOMAIN and not isinstance(player_id, str): - # Create set of identifiers excluding this integration - identifiers = { # type: ignore[unreachable] - (domain, identifier) - for domain, identifier in device.identifiers - if domain != DOMAIN - } - migrated_identifiers = {(DOMAIN, str(player_id))} - # Add migrated if not already present in another device, which occurs if the user downgraded and then upgraded - if not device_registry.async_get_device(migrated_identifiers): - identifiers.update(migrated_identifiers) - if len(identifiers) > 0: - device_registry.async_update_device( - device.id, new_identifiers=identifiers - ) - else: - device_registry.async_remove_device(device.id) + for ident in device.identifiers: + if ident[0] != DOMAIN or isinstance(ident[1], str): + continue + + player_id = int(ident[1]) # type: ignore[unreachable] + + # Create set of identifiers excluding this integration + identifiers = {ident for ident in device.identifiers if ident[0] != DOMAIN} + migrated_identifiers = {(DOMAIN, str(player_id))} + # Add migrated if not already present in another device, which occurs if the user downgraded and then upgraded + if not device_registry.async_get_device(migrated_identifiers): + identifiers.update(migrated_identifiers) + if len(identifiers) > 0: + device_registry.async_update_device( + device.id, new_identifiers=identifiers + ) + else: + device_registry.async_remove_device(device.id) break coordinator = HeosCoordinator(hass, entry)