From 2127ac23c8aee03663d56338b50d030324e67274 Mon Sep 17 00:00:00 2001 From: Johannes Einig Date: Thu, 28 Jan 2021 22:41:28 +0100 Subject: [PATCH] [heos] Fix runtime error; Support for new Denon "Home" speaker added (#9935) * Support for Denon "Home" speaker as bridge added * Fixed a runtime issue if no serial number is provided by the player, by using the PID as a fallback if no serial number is available Signed-off-by: Wire82 --- .../heos/internal/discovery/HeosDiscoveryParticipant.java | 3 ++- .../binding/heos/internal/handler/HeosPlayerHandler.java | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/discovery/HeosDiscoveryParticipant.java b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/discovery/HeosDiscoveryParticipant.java index 0d3005f45..d79b656c3 100644 --- a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/discovery/HeosDiscoveryParticipant.java +++ b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/discovery/HeosDiscoveryParticipant.java @@ -79,7 +79,8 @@ public class HeosDiscoveryParticipant implements UpnpDiscoveryParticipant { DeviceDetails details = device.getDetails(); String modelName = details.getModelDetails().getModelName(); String modelManufacturer = details.getManufacturerDetails().getManufacturer(); - if ("Denon".equals(modelManufacturer) && (modelName.startsWith("HEOS") || modelName.endsWith("H"))) { + if ("Denon".equals(modelManufacturer) + && (modelName.startsWith("HEOS") || modelName.endsWith("H") || modelName.contains("Home"))) { String deviceType = device.getType().getType(); if (deviceType.startsWith("ACT") || deviceType.startsWith("Aios")) { return new ThingUID(THING_TYPE_BRIDGE, device.getIdentity().getUdn().getIdentifierString()); diff --git a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosPlayerHandler.java b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosPlayerHandler.java index 26d7ae22a..4134e188a 100644 --- a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosPlayerHandler.java +++ b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosPlayerHandler.java @@ -179,6 +179,10 @@ public class HeosPlayerHandler extends HeosThingBaseHandler { String serialNumber = player.serial; if (serialNumber != null) { prop.put(Thing.PROPERTY_SERIAL_NUMBER, serialNumber); + } else { + prop.put(Thing.PROPERTY_SERIAL_NUMBER, String.valueOf(player.playerId)); // If no serial number is provided, + // write an empty string to + // prevent error during runtime } } }