From 855ba68b6295dbc681f576ee264aa495ca7e909b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=85ke=20Strandberg?= Date: Mon, 3 Jun 2024 10:59:42 +0200 Subject: [PATCH] Allow removal of myuplink device from GUI (#117009) * Allow removal of device from GUI * Check that device is orphaned before removing --- homeassistant/components/myuplink/__init__.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/homeassistant/components/myuplink/__init__.py b/homeassistant/components/myuplink/__init__.py index 42bb9007789..6d1932f22df 100644 --- a/homeassistant/components/myuplink/__init__.py +++ b/homeassistant/components/myuplink/__init__.py @@ -16,6 +16,7 @@ from homeassistant.helpers import ( config_entry_oauth2_flow, device_registry as dr, ) +from homeassistant.helpers.device_registry import DeviceEntry from .api import AsyncConfigEntryAuth from .const import DOMAIN, OAUTH2_SCOPES @@ -96,3 +97,14 @@ def create_devices( sw_version=device.firmwareCurrent, serial_number=device.product_serial_number, ) + + +async def async_remove_config_entry_device( + hass: HomeAssistant, config_entry: ConfigEntry, device_entry: DeviceEntry +) -> bool: + """Remove myuplink config entry from a device.""" + + myuplink_data: MyUplinkDataCoordinator = hass.data[DOMAIN][config_entry.entry_id] + return not device_entry.identifiers.intersection( + (DOMAIN, device_id) for device_id in myuplink_data.data.devices + )