Include extended address in thread discovery data (#89640)

This commit is contained in:
Erik Montnemery 2023-03-13 15:59:22 +01:00 committed by GitHub
parent 0f2abe7f25
commit 8a0522ca2a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 9 additions and 0 deletions

View File

@ -32,6 +32,7 @@ class ThreadRouterDiscoveryData:
addresses: list[str] | None
brand: str | None
extended_address: str | None
extended_pan_id: str | None
model_name: str | None
network_name: str | None
@ -55,6 +56,7 @@ def async_discovery_data_from_service(
except UnicodeDecodeError:
return None
ext_addr = service.properties.get(b"xa")
ext_pan_id = service.properties.get(b"xp")
network_name = try_decode(service.properties.get(b"nn"))
model_name = try_decode(service.properties.get(b"mn"))
@ -78,6 +80,7 @@ def async_discovery_data_from_service(
return ThreadRouterDiscoveryData(
addresses=service.parsed_addresses(),
brand=brand,
extended_address=ext_addr.hex() if ext_addr is not None else None,
extended_pan_id=ext_pan_id.hex() if ext_pan_id is not None else None,
model_name=model_name,
network_name=network_name,

View File

@ -73,6 +73,7 @@ async def test_discover_routers(hass: HomeAssistant, mock_async_zeroconf: None)
discovery.ThreadRouterDiscoveryData(
addresses=["192.168.0.115"],
brand="homeassistant",
extended_address="aeeb2f594b570bbf",
extended_pan_id="e60fc7c186212ce5",
model_name="OpenThreadBorderRouter",
network_name="OpenThread HC",
@ -98,6 +99,7 @@ async def test_discover_routers(hass: HomeAssistant, mock_async_zeroconf: None)
discovery.ThreadRouterDiscoveryData(
addresses=["192.168.0.124"],
brand="google",
extended_address="f6a99b425a67abed",
extended_pan_id="9e75e256f61409a3",
model_name="Google Nest Hub",
network_name="NEST-PAN-E1AF",
@ -175,6 +177,7 @@ async def test_discover_routers_unconfigured(
discovery.ThreadRouterDiscoveryData(
addresses=["192.168.0.115"],
brand="homeassistant",
extended_address="aeeb2f594b570bbf",
extended_pan_id="e60fc7c186212ce5",
model_name="OpenThreadBorderRouter",
network_name="OpenThread HC",
@ -219,6 +222,7 @@ async def test_discover_routers_bad_data(
discovery.ThreadRouterDiscoveryData(
addresses=["192.168.0.115"],
brand=None,
extended_address="aeeb2f594b570bbf",
extended_pan_id="e60fc7c186212ce5",
model_name="OpenThreadBorderRouter",
network_name="OpenThread HC",

View File

@ -236,6 +236,7 @@ async def test_discover_routers(
"data": {
"addresses": ["192.168.0.115"],
"brand": "homeassistant",
"extended_address": "aeeb2f594b570bbf",
"extended_pan_id": "e60fc7c186212ce5",
"model_name": "OpenThreadBorderRouter",
"network_name": "OpenThread HC",
@ -264,6 +265,7 @@ async def test_discover_routers(
"data": {
"addresses": ["192.168.0.124"],
"brand": "google",
"extended_address": "f6a99b425a67abed",
"extended_pan_id": "9e75e256f61409a3",
"model_name": "Google Nest Hub",
"network_name": "NEST-PAN-E1AF",