]> git.basschouten.com Git - openhab-addons.git/commitdiff
[caddx] Correct thing status on bridge initialization (#10317)
authorGeorgios Moutsos <50378548+jossuar@users.noreply.github.com>
Mon, 15 Mar 2021 22:20:22 +0000 (00:20 +0200)
committerGitHub <noreply@github.com>
Mon, 15 Mar 2021 22:20:22 +0000 (23:20 +0100)
* Log event message construction improved

Signed-off-by: Georgios Moutsos <georgios.moutsos@gmail.com>
* Changed level to debug for some logs

Signed-off-by: Georgios Moutsos <georgios.moutsos@gmail.com>
* Added status request commands to b send when the bridge initializes

Signed-off-by: Georgios Moutsos <georgios.moutsos@gmail.com>
* Don't change the label of the zone

Signed-off-by: Georgios Moutsos <georgios.moutsos@gmail.com>
* Removed comment

Signed-off-by: Georgios Moutsos <georgios.moutsos@gmail.com>
bundles/org.openhab.binding.caddx/src/main/java/org/openhab/binding/caddx/internal/handler/CaddxBridgeHandler.java
bundles/org.openhab.binding.caddx/src/main/java/org/openhab/binding/caddx/internal/handler/LogEventMessage.java
bundles/org.openhab.binding.caddx/src/main/java/org/openhab/binding/caddx/internal/handler/ThingHandlerPanel.java
bundles/org.openhab.binding.caddx/src/main/java/org/openhab/binding/caddx/internal/handler/ThingHandlerZone.java

index 33bc24e4cceb1db8863a7cf8550dfa1ae7135e7c..73a6657e75c560adba7f568d1ec2d3274762f5a0 100644 (file)
@@ -65,7 +65,6 @@ import org.slf4j.LoggerFactory;
 public class CaddxBridgeHandler extends BaseBridgeHandler implements CaddxPanelListener {
     private final Logger logger = LoggerFactory.getLogger(CaddxBridgeHandler.class);
 
-    static final byte[] DISCOVERY_PARTITION_STATUS_REQUEST_0 = { 0x26, 0x00 };
     static final byte[] DISCOVERY_ZONES_SNAPSHOT_REQUEST_00 = { 0x25, 0x00 }; // 1 - 16
     static final byte[] DISCOVERY_ZONES_SNAPSHOT_REQUEST_10 = { 0x25, 0x01 }; // 17 - 32
     static final byte[] DISCOVERY_ZONES_SNAPSHOT_REQUEST_20 = { 0x25, 0x02 }; // 33 - 48
@@ -156,8 +155,13 @@ public class CaddxBridgeHandler extends BaseBridgeHandler implements CaddxPanelL
             comm.transmit(new CaddxMessage(DISCOVERY_ZONES_SNAPSHOT_REQUEST_B0, false));
 
             // Send discovery commands for the partitions
-            comm.transmit(new CaddxMessage(DISCOVERY_PARTITION_STATUS_REQUEST_0, false));
             comm.transmit(new CaddxMessage(DISCOVERY_PARTITIONS_SNAPSHOT_REQUEST, false));
+
+            // Send status commands to the zones and partitions
+            thingZonesMap.forEach((k, v) -> sendCommand(CaddxBindingConstants.ZONE_STATUS_REQUEST,
+                    k.subtract(BigDecimal.ONE).toString()));
+            thingPartitionsMap.forEach((k, v) -> sendCommand(CaddxBindingConstants.PARTITION_STATUS_REQUEST,
+                    k.subtract(BigDecimal.ONE).toString()));
         }
 
         // list all channels
index f15c1c97e0ef82f756548c8c27c1d3de9f86b795..967f440c5737f098461d11868e2ea7aac6a89764 100644 (file)
@@ -56,9 +56,6 @@ public class LogEventMessage {
             int eventType = Integer.parseInt(type);
             logger.trace("eventType received: {}", eventType);
             LogEventType logEventType = LogEventType.valueOfLogEventType(eventType);
-            if (logEventType == null) {
-                return "Unknown log event type received";
-            }
 
             // Date
             sb.append(String.format("%02d", Integer.parseInt(day))).append('-')
@@ -66,23 +63,27 @@ public class LogEventMessage {
                     .append(String.format("%02d", Integer.parseInt(hour))).append(':')
                     .append(String.format("%02d", Integer.parseInt(minute))).append(' ');
 
-            sb.append(logEventType.description);
-            if (logEventType.isPartitionValid) {
-                sb.append(" Partition ").append(Integer.parseInt(partition) + 1);
-            }
+            if (logEventType == null) {
+                sb.append("Unknown log event type");
+            } else {
+                sb.append(logEventType.description);
+                if (logEventType.isPartitionValid) {
+                    sb.append(" Partition ").append(Integer.parseInt(partition) + 1);
+                }
 
-            switch (logEventType.zud) {
-                case None:
-                    break;
-                case Zone:
-                    sb.append(" Zone ").append(Integer.parseInt(zud) + 1);
-                    break;
-                case User:
-                    sb.append(" User ").append(Integer.parseInt(zud) + 1);
-                    break;
-                case Device:
-                    sb.append(" Device ").append(zud);
-                    break;
+                switch (logEventType.zud) {
+                    case None:
+                        break;
+                    case Zone:
+                        sb.append(" Zone ").append(Integer.parseInt(zud) + 1);
+                        break;
+                    case User:
+                        sb.append(" User ").append(Integer.parseInt(zud) + 1);
+                        break;
+                    case Device:
+                        sb.append(" Device ").append(zud);
+                        break;
+                }
             }
 
             return sb.toString();
index ee529e2df7822f8449cf0643181103bcedbce028..3c3053f418437877b83a19e6f059e70b9dc4a582 100644 (file)
@@ -67,7 +67,7 @@ public class ThingHandlerPanel extends CaddxBaseThingHandler {
 
     @Override
     public void handleCommand(ChannelUID channelUID, Command command) {
-        logger.trace("handleCommand(): Command Received - {} {}.", channelUID, command);
+        logger.debug("handleCommand(): Command Received - {} {}.", channelUID, command);
 
         String cmd = null;
         String data = null;
@@ -167,10 +167,12 @@ public class ThingHandlerPanel extends CaddxBaseThingHandler {
 
         // get the channel id from the map
         HashMap<String, String> logMap = panelLogMessagesMap;
-        String id = logMap.get(eventNumberString);
-        if (logMap != null && id != null) {
-            ChannelUID channelUID = new ChannelUID(getThing().getUID(), id);
-            updateChannel(channelUID, logEventMessage.toString());
+        if (logMap != null) {
+            String id = logMap.get(eventNumberString);
+            if (id != null) {
+                ChannelUID channelUID = new ChannelUID(getThing().getUID(), id);
+                updateChannel(channelUID, logEventMessage.toString());
+            }
         }
 
         if (communicatorStackPointer != null && eventNumberString.equals(communicatorStackPointer)) {
index b8d21f9673571fc218d99a21aecb42920938cca8..b8bff044e8f8118be28e995727e40392399987e0 100644 (file)
@@ -52,7 +52,6 @@ public class ThingHandlerZone extends CaddxBaseThingHandler {
     @Override
     public void updateChannel(ChannelUID channelUID, String data) {
         if (channelUID.getId().equals(CaddxBindingConstants.ZONE_NAME)) {
-            getThing().setLabel(data);
             updateState(channelUID, new StringType(data));
 
             logger.trace("  updateChannel: {} = {}", channelUID, data);
@@ -71,7 +70,7 @@ public class ThingHandlerZone extends CaddxBaseThingHandler {
 
     @Override
     public void handleCommand(ChannelUID channelUID, Command command) {
-        logger.trace("handleCommand(): Command Received - {} {}.", channelUID, command);
+        logger.debug("handleCommand(): Command Received - {} {}.", channelUID, command);
 
         String cmd1 = null;
         String cmd2 = null;
@@ -124,9 +123,9 @@ public class ThingHandlerZone extends CaddxBaseThingHandler {
                     logger.trace("  updateChannel: {} = {}", channelUID, value);
                 }
             }
-
-            updateStatus(ThingStatus.ONLINE);
         }
+
+        updateStatus(ThingStatus.ONLINE);
     }
 
     @Override