From d4e509422a2d93764586dc9de0789f1deed4cfaa Mon Sep 17 00:00:00 2001 From: Robert Svensson Date: Mon, 17 Jan 2022 22:37:33 +0100 Subject: [PATCH] Orphaned MAC addresses breaks UniFi options flow (#64327) --- homeassistant/components/unifi/config_flow.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/homeassistant/components/unifi/config_flow.py b/homeassistant/components/unifi/config_flow.py index 4ab566eb5b4..fda03cbd3d9 100644 --- a/homeassistant/components/unifi/config_flow.py +++ b/homeassistant/components/unifi/config_flow.py @@ -316,6 +316,10 @@ class UnifiOptionsFlowHandler(config_entries.OptionsFlow): ) ssid_filter = {ssid: ssid for ssid in sorted(ssids)} + selected_ssids_to_filter = [ + ssid for ssid in self.controller.option_ssid_filter if ssid in ssid_filter + ] + return self.async_show_form( step_id="device_tracker", data_schema=vol.Schema( @@ -333,7 +337,7 @@ class UnifiOptionsFlowHandler(config_entries.OptionsFlow): default=self.controller.option_track_devices, ): bool, vol.Optional( - CONF_SSID_FILTER, default=self.controller.option_ssid_filter + CONF_SSID_FILTER, default=selected_ssids_to_filter ): cv.multi_select(ssid_filter), vol.Optional( CONF_DETECTION_TIME, @@ -365,12 +369,18 @@ class UnifiOptionsFlowHandler(config_entries.OptionsFlow): client.mac ] = f"{client.name or client.hostname} ({client.mac})" + selected_clients_to_block = [ + client + for client in self.options.get(CONF_BLOCK_CLIENT, []) + if client in clients_to_block + ] + return self.async_show_form( step_id="client_control", data_schema=vol.Schema( { vol.Optional( - CONF_BLOCK_CLIENT, default=self.options[CONF_BLOCK_CLIENT] + CONF_BLOCK_CLIENT, default=selected_clients_to_block ): cv.multi_select(clients_to_block), vol.Optional( CONF_POE_CLIENTS,