]> git.basschouten.com Git - openhab-addons.git/commitdiff
Fix handling of multiple sprinklers (#16630)
authorMark Hilbush <mark@hilbush.com>
Sun, 14 Apr 2024 18:04:39 +0000 (14:04 -0400)
committerGitHub <noreply@github.com>
Sun, 14 Apr 2024 18:04:39 +0000 (20:04 +0200)
Signed-off-by: Mark Hilbush <mark@hilbush.com>
bundles/org.openhab.binding.orbitbhyve/src/main/java/org/openhab/binding/orbitbhyve/internal/handler/OrbitBhyveBridgeHandler.java
bundles/org.openhab.binding.orbitbhyve/src/main/java/org/openhab/binding/orbitbhyve/internal/handler/OrbitBhyveSprinklerHandler.java

index 26ae2389d4377a70d3ee22d4c288a06d4e246e4a..7ddff56e3924632a7707a2b0128ad1cccf95cefc 100644 (file)
@@ -321,11 +321,11 @@ public class OrbitBhyveBridgeHandler extends ConfigStatusBridgeHandler {
         List<OrbitBhyveDevice> 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);
                 }
index 35d1cad9dddb7c8d40d77fabe7feac648a1c72d0..a3d312671a384c0702240b5729bbc3dc42205c83 100644 (file)
@@ -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()
                 : "";
     }