diff --git a/homeassistant/components/lookin/__init__.py b/homeassistant/components/lookin/__init__.py index 555b8b551be..9b0a5b05f1f 100644 --- a/homeassistant/components/lookin/__init__.py +++ b/homeassistant/components/lookin/__init__.py @@ -23,6 +23,7 @@ from homeassistant.config_entries import ConfigEntry, ConfigEntryState from homeassistant.const import CONF_HOST, Platform from homeassistant.core import HomeAssistant, callback from homeassistant.exceptions import ConfigEntryNotReady +from homeassistant.helpers import device_registry as dr from homeassistant.helpers.aiohttp_client import async_get_clientsession from .const import DOMAIN, PLATFORMS, TYPE_TO_PLATFORM @@ -182,3 +183,19 @@ async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: manager: LookinUDPManager = hass.data[DOMAIN][UDP_MANAGER] await manager.async_stop() return unload_ok + + +async def async_remove_config_entry_device( + hass: HomeAssistant, entry: ConfigEntry, device_entry: dr.DeviceEntry +) -> bool: + """Remove lookin config entry from a device.""" + data: LookinData = hass.data[DOMAIN][entry.entry_id] + all_identifiers: set[tuple[str, str]] = { + (DOMAIN, data.lookin_device.id), + *((DOMAIN, remote["UUID"]) for remote in data.devices), + } + return not any( + identifier + for identifier in device_entry.identifiers + if identifier in all_identifiers + )