From 6b56b40fe10e2d25bdafd647caf1f0d9207d7264 Mon Sep 17 00:00:00 2001 From: lolodomo Date: Mon, 18 Apr 2022 19:36:56 +0200 Subject: [PATCH] [sonos] Avoid empty thing (type) ID in discovery (#12626) Signed-off-by: Laurent Garnier --- .../discovery/ZonePlayerDiscoveryParticipant.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/bundles/org.openhab.binding.sonos/src/main/java/org/openhab/binding/sonos/internal/discovery/ZonePlayerDiscoveryParticipant.java b/bundles/org.openhab.binding.sonos/src/main/java/org/openhab/binding/sonos/internal/discovery/ZonePlayerDiscoveryParticipant.java index a497d0930..8fbbd06a1 100644 --- a/bundles/org.openhab.binding.sonos/src/main/java/org/openhab/binding/sonos/internal/discovery/ZonePlayerDiscoveryParticipant.java +++ b/bundles/org.openhab.binding.sonos/src/main/java/org/openhab/binding/sonos/internal/discovery/ZonePlayerDiscoveryParticipant.java @@ -82,7 +82,8 @@ public class ZonePlayerDiscoveryParticipant implements UpnpDiscoveryParticipant if (device.getDetails().getManufacturerDetails().getManufacturer().toUpperCase().contains("SONOS")) { String id = SonosXMLParser .buildThingTypeIdFromModelName(device.getDetails().getModelDetails().getModelName()); - if (!"Sub".equalsIgnoreCase(id)) { + String udn = device.getIdentity().getUdn().getIdentifierString(); + if (!id.isEmpty() && !"Sub".equalsIgnoreCase(id) && !udn.isEmpty()) { ThingTypeUID thingTypeUID = new ThingTypeUID(SonosBindingConstants.BINDING_ID, id); if (!SonosBindingConstants.SUPPORTED_KNOWN_THING_TYPES_UIDS.contains(thingTypeUID)) { // Try with the model name all in uppercase @@ -96,9 +97,8 @@ public class ZonePlayerDiscoveryParticipant implements UpnpDiscoveryParticipant } } - logger.debug("Discovered a Sonos '{}' thing with UDN '{}'", thingTypeUID, - device.getIdentity().getUdn().getIdentifierString()); - return new ThingUID(thingTypeUID, device.getIdentity().getUdn().getIdentifierString()); + logger.debug("Discovered a Sonos '{}' thing with UDN '{}'", thingTypeUID, udn); + return new ThingUID(thingTypeUID, udn); } } }