public @Nullable ThingUID getThingUID(RemoteDevice device) {
if (device.getDetails().getManufacturerDetails().getManufacturer() != null) {
if (device.getDetails().getManufacturerDetails().getManufacturer().toUpperCase().contains("SONOS")) {
+ boolean ignored = false;
String modelName = getModelName(device);
switch (modelName) {
case "ZP80":
case "Arc SL":
modelName = "ArcSL";
break;
+ case "Sub":
+ // The Sonos Sub is ignored
+ ignored = true;
+ break;
default:
break;
}
- ThingTypeUID thingUID = new ThingTypeUID(SonosBindingConstants.BINDING_ID, modelName);
- if (!SonosBindingConstants.SUPPORTED_KNOWN_THING_TYPES_UIDS.contains(thingUID)) {
- // Try with the model name all in uppercase
- thingUID = new ThingTypeUID(SonosBindingConstants.BINDING_ID, modelName.toUpperCase());
- // In case a new "unknown" Sonos player is discovered a generic ThingTypeUID will be used
+ if (!ignored) {
+ ThingTypeUID thingUID = new ThingTypeUID(SonosBindingConstants.BINDING_ID, modelName);
if (!SonosBindingConstants.SUPPORTED_KNOWN_THING_TYPES_UIDS.contains(thingUID)) {
- thingUID = SonosBindingConstants.ZONEPLAYER_THING_TYPE_UID;
+ // Try with the model name all in uppercase
+ thingUID = new ThingTypeUID(SonosBindingConstants.BINDING_ID, modelName.toUpperCase());
+ // In case a new "unknown" Sonos player is discovered a generic ThingTypeUID will be used
+ if (!SonosBindingConstants.SUPPORTED_KNOWN_THING_TYPES_UIDS.contains(thingUID)) {
+ thingUID = SonosBindingConstants.ZONEPLAYER_THING_TYPE_UID;
+ }
}
- }
- logger.debug("Discovered a Sonos '{}' thing with UDN '{}'", thingUID,
- device.getIdentity().getUdn().getIdentifierString());
- return new ThingUID(thingUID, device.getIdentity().getUdn().getIdentifierString());
+ logger.debug("Discovered a Sonos '{}' thing with UDN '{}'", thingUID,
+ device.getIdentity().getUdn().getIdentifierString());
+ return new ThingUID(thingUID, device.getIdentity().getUdn().getIdentifierString());
+ }
}
}