]> git.basschouten.com Git - openhab-addons.git/commitdiff
[heos] Fix runtime error; Support for new Denon "Home" speaker added (#9935)
authorJohannes Einig <Johannes.Einig@me.com>
Thu, 28 Jan 2021 21:41:28 +0000 (22:41 +0100)
committerGitHub <noreply@github.com>
Thu, 28 Jan 2021 21:41:28 +0000 (22:41 +0100)
* 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 <johannes.einig@me.com>
bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/discovery/HeosDiscoveryParticipant.java
bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosPlayerHandler.java

index 0d3005f4538d9bcbe37631780801d93476d2b590..d79b656c3feb62c68a252f56e641a0a4bf156410 100644 (file)
@@ -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());
index 26d7ae22a540dc1376063b813cf5deacd7e6b86e..4134e188adc7f7f73e4aea13d6a83dadce67ee65 100644 (file)
@@ -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
         }
     }
 }