From 815ada9afcadfb10688d1e5ed141dbdbb32e5eca Mon Sep 17 00:00:00 2001 From: Mark Hilbush Date: Sun, 14 Apr 2024 14:04:39 -0400 Subject: [PATCH] Fix handling of multiple sprinklers (#16630) Signed-off-by: Mark Hilbush --- .../internal/handler/OrbitBhyveBridgeHandler.java | 10 +++++----- .../internal/handler/OrbitBhyveSprinklerHandler.java | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/bundles/org.openhab.binding.orbitbhyve/src/main/java/org/openhab/binding/orbitbhyve/internal/handler/OrbitBhyveBridgeHandler.java b/bundles/org.openhab.binding.orbitbhyve/src/main/java/org/openhab/binding/orbitbhyve/internal/handler/OrbitBhyveBridgeHandler.java index 26ae2389d43..7ddff56e392 100644 --- a/bundles/org.openhab.binding.orbitbhyve/src/main/java/org/openhab/binding/orbitbhyve/internal/handler/OrbitBhyveBridgeHandler.java +++ b/bundles/org.openhab.binding.orbitbhyve/src/main/java/org/openhab/binding/orbitbhyve/internal/handler/OrbitBhyveBridgeHandler.java @@ -321,11 +321,11 @@ public class OrbitBhyveBridgeHandler extends ConfigStatusBridgeHandler { List devices = getDevices(); for (Thing th : getThing().getThings()) { if (th.isEnabled()) { - String deviceId = th.getUID().getId(); ThingHandler handler = th.getHandler(); if (handler instanceof OrbitBhyveSprinklerHandler sprinklerHandler) { + String deviceId = sprinklerHandler.getSprinklerId(); for (OrbitBhyveDevice device : devices) { - if (deviceId.equals(th.getUID().getId())) { + if (deviceId.equals(device.getId())) { updateDeviceStatus(device, sprinklerHandler); } } @@ -345,9 +345,9 @@ public class OrbitBhyveBridgeHandler extends ConfigStatusBridgeHandler { private void updateDeviceStatus(String deviceId) { for (Thing th : getThing().getThings()) { - if (deviceId.equals(th.getUID().getId())) { - ThingHandler handler = th.getHandler(); - if (handler instanceof OrbitBhyveSprinklerHandler sprinklerHandler) { + ThingHandler handler = th.getHandler(); + if (handler instanceof OrbitBhyveSprinklerHandler sprinklerHandler) { + if (deviceId.equals(sprinklerHandler.getSprinklerId())) { OrbitBhyveDevice device = getDevice(deviceId); updateDeviceStatus(device, sprinklerHandler); } diff --git a/bundles/org.openhab.binding.orbitbhyve/src/main/java/org/openhab/binding/orbitbhyve/internal/handler/OrbitBhyveSprinklerHandler.java b/bundles/org.openhab.binding.orbitbhyve/src/main/java/org/openhab/binding/orbitbhyve/internal/handler/OrbitBhyveSprinklerHandler.java index 35d1cad9ddd..a3d312671a3 100644 --- a/bundles/org.openhab.binding.orbitbhyve/src/main/java/org/openhab/binding/orbitbhyve/internal/handler/OrbitBhyveSprinklerHandler.java +++ b/bundles/org.openhab.binding.orbitbhyve/src/main/java/org/openhab/binding/orbitbhyve/internal/handler/OrbitBhyveSprinklerHandler.java @@ -120,7 +120,7 @@ public class OrbitBhyveSprinklerHandler extends BaseThingHandler { } } - private String getSprinklerId() { + public String getSprinklerId() { return getThing().getConfiguration().get("id") != null ? getThing().getConfiguration().get("id").toString() : ""; }