mirror of
https://github.com/home-assistant/core.git
synced 2025-07-15 17:27:10 +00:00
UniFi - Support SSID filter of SSIDs from access points with extra configuration (#35295)
This commit is contained in:
parent
81651b0b25
commit
5218b23fce
@ -229,12 +229,20 @@ class UnifiOptionsFlowHandler(config_entries.OptionsFlow):
|
|||||||
self.options.update(user_input)
|
self.options.update(user_input)
|
||||||
return await self.async_step_client_control()
|
return await self.async_step_client_control()
|
||||||
|
|
||||||
ssids = list(self.controller.api.wlans) + [
|
ssids = (
|
||||||
f"{wlan.name}{wlan.name_combine_suffix}"
|
set(self.controller.api.wlans)
|
||||||
for wlan in self.controller.api.wlans.values()
|
| {
|
||||||
if not wlan.name_combine_enabled
|
f"{wlan.name}{wlan.name_combine_suffix}"
|
||||||
]
|
for wlan in self.controller.api.wlans.values()
|
||||||
ssid_filter = {ssid: ssid for ssid in sorted(ssids)}
|
if not wlan.name_combine_enabled
|
||||||
|
}
|
||||||
|
| {
|
||||||
|
wlan["name"]
|
||||||
|
for ap in self.controller.api.devices.values()
|
||||||
|
for wlan in ap.raw.get("wlan_overrides", [])
|
||||||
|
}
|
||||||
|
)
|
||||||
|
ssid_filter = {ssid: ssid for ssid in sorted(list(ssids))}
|
||||||
|
|
||||||
return self.async_show_form(
|
return self.async_show_form(
|
||||||
step_id="device_tracker",
|
step_id="device_tracker",
|
||||||
|
@ -31,6 +31,29 @@ from tests.common import MockConfigEntry
|
|||||||
|
|
||||||
CLIENTS = [{"mac": "00:00:00:00:00:01"}]
|
CLIENTS = [{"mac": "00:00:00:00:00:01"}]
|
||||||
|
|
||||||
|
DEVICES = [
|
||||||
|
{
|
||||||
|
"board_rev": 21,
|
||||||
|
"device_id": "mock-id",
|
||||||
|
"ip": "10.0.1.1",
|
||||||
|
"last_seen": 0,
|
||||||
|
"mac": "00:00:00:00:01:01",
|
||||||
|
"model": "U7PG2",
|
||||||
|
"name": "access_point",
|
||||||
|
"state": 1,
|
||||||
|
"type": "uap",
|
||||||
|
"version": "4.0.80.10875",
|
||||||
|
"wlan_overrides": [
|
||||||
|
{
|
||||||
|
"name": "SSID 3",
|
||||||
|
"radio": "na",
|
||||||
|
"radio_name": "wifi1",
|
||||||
|
"wlan_id": "012345678910111213141516",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
WLANS = [
|
WLANS = [
|
||||||
{"name": "SSID 1"},
|
{"name": "SSID 1"},
|
||||||
{"name": "SSID 2", "name_combine_enabled": False, "name_combine_suffix": "_IOT"},
|
{"name": "SSID 2", "name_combine_enabled": False, "name_combine_suffix": "_IOT"},
|
||||||
@ -317,7 +340,7 @@ async def test_flow_fails_unknown_problem(hass, aioclient_mock):
|
|||||||
async def test_advanced_option_flow(hass):
|
async def test_advanced_option_flow(hass):
|
||||||
"""Test advanced config flow options."""
|
"""Test advanced config flow options."""
|
||||||
controller = await setup_unifi_integration(
|
controller = await setup_unifi_integration(
|
||||||
hass, clients_response=CLIENTS, wlans_response=WLANS
|
hass, clients_response=CLIENTS, devices_response=DEVICES, wlans_response=WLANS
|
||||||
)
|
)
|
||||||
|
|
||||||
result = await hass.config_entries.options.async_init(
|
result = await hass.config_entries.options.async_init(
|
||||||
@ -333,7 +356,7 @@ async def test_advanced_option_flow(hass):
|
|||||||
CONF_TRACK_CLIENTS: False,
|
CONF_TRACK_CLIENTS: False,
|
||||||
CONF_TRACK_WIRED_CLIENTS: False,
|
CONF_TRACK_WIRED_CLIENTS: False,
|
||||||
CONF_TRACK_DEVICES: False,
|
CONF_TRACK_DEVICES: False,
|
||||||
CONF_SSID_FILTER: ["SSID 1", "SSID 2_IOT"],
|
CONF_SSID_FILTER: ["SSID 1", "SSID 2_IOT", "SSID 3"],
|
||||||
CONF_DETECTION_TIME: 100,
|
CONF_DETECTION_TIME: 100,
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
@ -358,7 +381,7 @@ async def test_advanced_option_flow(hass):
|
|||||||
CONF_TRACK_CLIENTS: False,
|
CONF_TRACK_CLIENTS: False,
|
||||||
CONF_TRACK_WIRED_CLIENTS: False,
|
CONF_TRACK_WIRED_CLIENTS: False,
|
||||||
CONF_TRACK_DEVICES: False,
|
CONF_TRACK_DEVICES: False,
|
||||||
CONF_SSID_FILTER: ["SSID 1", "SSID 2_IOT"],
|
CONF_SSID_FILTER: ["SSID 1", "SSID 2_IOT", "SSID 3"],
|
||||||
CONF_DETECTION_TIME: 100,
|
CONF_DETECTION_TIME: 100,
|
||||||
CONF_IGNORE_WIRED_BUG: False,
|
CONF_IGNORE_WIRED_BUG: False,
|
||||||
CONF_POE_CLIENTS: False,
|
CONF_POE_CLIENTS: False,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user