]> git.basschouten.com Git - openhab-addons.git/commitdiff
[powermax] New channel of type Contact to show the zone arm status (#9192)
authorlolodomo <lg.hc@free.fr>
Wed, 2 Dec 2020 17:21:05 +0000 (18:21 +0100)
committerGitHub <noreply@github.com>
Wed, 2 Dec 2020 17:21:05 +0000 (09:21 -0800)
Allow using lock icon from the classic iconset
Allow displaying the "Locks" badge in MainUI

Signed-off-by: Laurent Garnier <lg.hc@free.fr>
bundles/org.openhab.binding.powermax/src/main/java/org/openhab/binding/powermax/internal/PowermaxBindingConstants.java
bundles/org.openhab.binding.powermax/src/main/java/org/openhab/binding/powermax/internal/handler/PowermaxBridgeHandler.java
bundles/org.openhab.binding.powermax/src/main/java/org/openhab/binding/powermax/internal/handler/PowermaxThingHandler.java
bundles/org.openhab.binding.powermax/src/main/resources/OH-INF/thing/channels.xml
bundles/org.openhab.binding.powermax/src/main/resources/OH-INF/thing/zone.xml

index 8e9ea6664952044d340743c0bffc7e8d028e5605..9578a1812e0d914fceb19de28bc391c0f477d210 100644 (file)
@@ -59,6 +59,7 @@ public class PowermaxBindingConstants {
     public static final String LAST_TRIP = "last_trip";
     public static final String BYPASSED = "bypassed";
     public static final String ARMED = "armed";
+    public static final String LOCKED = "locked";
     public static final String LOW_BATTERY = "low_battery";
     public static final String PGM_STATUS = "pgm_status";
     public static final String X10_STATUS = "x10_status";
index 2095cc8ddfeb6bc6d866ed751b5abee4fb6307af..978babc8612adc88c868923ec2d0a03d4de504cb 100644 (file)
@@ -558,20 +558,10 @@ public class PowermaxBridgeHandler extends BaseBridgeHandler implements Powermax
                 PowermaxThingHandler handler = (PowermaxThingHandler) thing.getHandler();
                 if (handler != null) {
                     if (thing.getThingTypeUID().equals(THING_TYPE_ZONE)) {
-                        if ((channel == null) || channel.equals(TRIPPED)) {
-                            handler.updateChannelFromAlarmState(TRIPPED, state);
-                        }
-                        if ((channel == null) || channel.equals(LAST_TRIP)) {
-                            handler.updateChannelFromAlarmState(LAST_TRIP, state);
-                        }
-                        if ((channel == null) || channel.equals(BYPASSED)) {
-                            handler.updateChannelFromAlarmState(BYPASSED, state);
-                        }
-                        if ((channel == null) || channel.equals(ARMED)) {
-                            handler.updateChannelFromAlarmState(ARMED, state);
-                        }
-                        if ((channel == null) || channel.equals(LOW_BATTERY)) {
-                            handler.updateChannelFromAlarmState(LOW_BATTERY, state);
+                        for (String channelId : List.of(TRIPPED, LAST_TRIP, BYPASSED, ARMED, LOCKED, LOW_BATTERY)) {
+                            if ((channel == null) || channel.equals(channelId)) {
+                                handler.updateChannelFromAlarmState(channelId, state);
+                            }
                         }
                     } else if (thing.getThingTypeUID().equals(THING_TYPE_X10)) {
                         if ((channel == null) || channel.equals(X10_STATUS)) {
index 3c4e32dfedcddbb15cfc10dff03377834af90218..c2bc845a21c1d5cba5967a5ccc2a1b480d713f1e 100644 (file)
@@ -191,6 +191,8 @@ public class PowermaxThingHandler extends BaseThingHandler implements PowermaxPa
                 updateState(BYPASSED, state.isSensorBypassed(num) ? OnOffType.ON : OnOffType.OFF);
             } else if (channel.equals(ARMED) && (state.isSensorArmed(num) != null)) {
                 updateState(ARMED, state.isSensorArmed(num) ? OnOffType.ON : OnOffType.OFF);
+            } else if (channel.equals(LOCKED) && (state.isSensorArmed(num) != null)) {
+                updateState(LOCKED, state.isSensorArmed(num) ? OpenClosedType.CLOSED : OpenClosedType.OPEN);
             } else if (channel.equals(LOW_BATTERY) && (state.isSensorLowBattery(num) != null)) {
                 updateState(LOW_BATTERY, state.isSensorLowBattery(num) ? OnOffType.ON : OnOffType.OFF);
             }
index d9d8cc193bf9bf6f26d4a4bd57f99e632f11b502..9c42f44d15940fe72a119278b81d9e6cf6b1879d 100644 (file)
 
        <channel-type id="armed">
                <item-type>Switch</item-type>
-               <label>Zone Armed</label>
+               <label>Zone Armed (Switch)</label>
                <description>Whether or not the zone is armed</description>
                <state readOnly="true"></state>
        </channel-type>
 
+       <channel-type id="locked">
+               <item-type>Contact</item-type>
+               <label>Zone Armed (Contact)</label>
+               <description>Whether or not the zone is armed (CLOSED when armed)</description>
+               <state readOnly="true"></state>
+       </channel-type>
+
        <channel-type id="pgm_status" advanced="true">
                <item-type>Switch</item-type>
                <label>PGM Status</label>
index 0529631a0d7ab3f395cfdca972dac37d9760eef4..e85a0c78024679afe765d4f4a2cb3e41dd25ee91 100644 (file)
@@ -17,6 +17,7 @@
                <channels>
                        <channel id="tripped" typeId="tripped"/>
                        <channel id="armed" typeId="armed"/>
+                       <channel id="locked" typeId="locked"/>
                        <channel id="last_trip" typeId="last_trip"/>
                        <channel id="low_battery" typeId="system.low-battery"/>
                        <channel id="bypassed" typeId="bypassed"/>