From de8b31be3cb79d1324bf6a16b1b6773daef90e06 Mon Sep 17 00:00:00 2001 From: lolodomo Date: Fri, 13 Oct 2017 19:31:17 +0200 Subject: [PATCH] Sonos: fix discovery for old Sonos ZP80 and ZP100 (#4415) Signed-off-by: Laurent Garnier --- .../discovery/ZonePlayerDiscoveryParticipant.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/extensions/binding/org.eclipse.smarthome.binding.sonos/src/main/java/org/eclipse/smarthome/binding/sonos/internal/discovery/ZonePlayerDiscoveryParticipant.java b/extensions/binding/org.eclipse.smarthome.binding.sonos/src/main/java/org/eclipse/smarthome/binding/sonos/internal/discovery/ZonePlayerDiscoveryParticipant.java index edd0876b703..c68405e0f79 100644 --- a/extensions/binding/org.eclipse.smarthome.binding.sonos/src/main/java/org/eclipse/smarthome/binding/sonos/internal/discovery/ZonePlayerDiscoveryParticipant.java +++ b/extensions/binding/org.eclipse.smarthome.binding.sonos/src/main/java/org/eclipse/smarthome/binding/sonos/internal/discovery/ZonePlayerDiscoveryParticipant.java @@ -74,7 +74,13 @@ public ThingUID getThingUID(RemoteDevice device) { if (device.getDetails().getManufacturerDetails().getManufacturer() != null) { if (device.getDetails().getManufacturerDetails().getManufacturer().toUpperCase().contains("SONOS")) { - ThingTypeUID thingUID = new ThingTypeUID(SonosBindingConstants.BINDING_ID, getModelName(device)); + String modelName = getModelName(device); + if (modelName.equals("ZP80")) { + modelName = "PLAY3"; + } else if (modelName.equals("ZP100")) { + modelName = "PLAY5"; + } + ThingTypeUID thingUID = new ThingTypeUID(SonosBindingConstants.BINDING_ID, modelName); // In case a new "unknown" Sonos player is discovered a generic ThingTypeUID will be used if (!SonosBindingConstants.SUPPORTED_KNOWN_THING_TYPES_UIDS.contains(thingUID)) {