From 81e02a39df2ebcece259c5dfcabc77b66b958846 Mon Sep 17 00:00:00 2001 From: jjlawren Date: Fri, 19 Nov 2021 10:14:12 -0600 Subject: [PATCH] Ignore non-Sonos SSDP devices with Sonos-like identifiers (#59809) --- homeassistant/components/sonos/__init__.py | 8 +++++--- tests/components/sonos/conftest.py | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/homeassistant/components/sonos/__init__.py b/homeassistant/components/sonos/__init__.py index 5e02832b05a..72e5a33ca28 100644 --- a/homeassistant/components/sonos/__init__.py +++ b/homeassistant/components/sonos/__init__.py @@ -267,11 +267,13 @@ class SonosDiscoveryManager: if change == ssdp.SsdpChange.BYEBYE: return + uid = info.get(ssdp.ATTR_UPNP_UDN) + if not uid.startswith("uuid:RINCON_"): + return + + uid = uid[5:] discovered_ip = urlparse(info[ssdp.ATTR_SSDP_LOCATION]).hostname boot_seqnum = info.get("X-RINCON-BOOTSEQ") - uid = info.get(ssdp.ATTR_UPNP_UDN) - if uid.startswith("uuid:"): - uid = uid[5:] self.async_discovered_player( "SSDP", info, discovered_ip, uid, boot_seqnum, info.get("modelName"), None ) diff --git a/tests/components/sonos/conftest.py b/tests/components/sonos/conftest.py index f650c6e8fef..8a3a6571faa 100644 --- a/tests/components/sonos/conftest.py +++ b/tests/components/sonos/conftest.py @@ -93,7 +93,7 @@ def discover_fixture(soco): async def do_callback(hass, callback, *args, **kwargs): await callback( { - ssdp.ATTR_UPNP_UDN: soco.uid, + ssdp.ATTR_UPNP_UDN: f"uuid:{soco.uid}", ssdp.ATTR_SSDP_LOCATION: f"http://{soco.ip_address}/", }, ssdp.SsdpChange.ALIVE,