]> git.basschouten.com Git - openhab-addons.git/commitdiff
[hydrawise] Support unused zones (#12275)
authorDan Cunningham <dan@digitaldan.com>
Sun, 13 Feb 2022 08:15:20 +0000 (00:15 -0800)
committerGitHub <noreply@github.com>
Sun, 13 Feb 2022 08:15:20 +0000 (09:15 +0100)
* [hydrawise] Support unused zones
Fixes #12209

Signed-off-by: Dan Cunningham <dan@digitaldan.com>
bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/handler/HydrawiseControllerHandler.java

index 3b24fc5818f99371cad301a19cbe4a951e6a2a0e..087b939ba7d188708396907c7e37cfa674b2c23a 100644 (file)
@@ -274,9 +274,15 @@ public class HydrawiseControllerHandler extends BaseThingHandler implements Hydr
     private void updateZones(List<Zone> zones) {
         AtomicReference<Boolean> anyRunning = new AtomicReference<Boolean>(false);
         AtomicReference<Boolean> anySuspended = new AtomicReference<Boolean>(false);
-        int i = 1;
         for (Zone zone : zones) {
-            String group = "zone" + (i++);
+            // there are 12 relays per expander, expanders will have a zoneNumber like:
+            // 10 for expander 0, relay 10 = zone10
+            // 101 for expander 1, relay 1 = zone13
+            // 212 for expander 2, relay 12 = zone36
+            // division of integers in Java give whole numbers, not remainders FYI
+            int zoneNumber = ((zone.number.value / 100) * 12) + (zone.number.value % 100);
+
+            String group = "zone" + zoneNumber;
             zoneMaps.put(group, zone);
             logger.trace("Updateing Zone {} {} ", group, zone.name);
             updateGroupState(group, CHANNEL_ZONE_NAME, new StringType(zone.name));