From bfca6d2201379dbe7985f2979031822acd4426ab Mon Sep 17 00:00:00 2001 From: lolodomo Date: Thu, 5 May 2022 19:59:59 +0200 Subject: [PATCH] [powermax] Ignore disabled things (#12684) * [powermax] Ignore disabled things Signed-off-by: Laurent Garnier --- .../handler/PowermaxBridgeHandler.java | 35 ++++++++++--------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/bundles/org.openhab.binding.powermax/src/main/java/org/openhab/binding/powermax/internal/handler/PowermaxBridgeHandler.java b/bundles/org.openhab.binding.powermax/src/main/java/org/openhab/binding/powermax/internal/handler/PowermaxBridgeHandler.java index b77155021..d711f6cdd 100644 --- a/bundles/org.openhab.binding.powermax/src/main/java/org/openhab/binding/powermax/internal/handler/PowermaxBridgeHandler.java +++ b/bundles/org.openhab.binding.powermax/src/main/java/org/openhab/binding/powermax/internal/handler/PowermaxBridgeHandler.java @@ -49,6 +49,7 @@ import org.openhab.core.thing.Thing; import org.openhab.core.thing.ThingStatus; import org.openhab.core.thing.ThingStatusDetail; import org.openhab.core.thing.binding.BaseBridgeHandler; +import org.openhab.core.thing.binding.ThingHandler; import org.openhab.core.thing.binding.ThingHandlerService; import org.openhab.core.types.Command; import org.openhab.core.types.RefreshType; @@ -623,25 +624,27 @@ public class PowermaxBridgeHandler extends BaseBridgeHandler implements Powermax } for (Thing thing : getThing().getThings()) { - if (thing.getHandler() != null) { - PowermaxThingHandler handler = (PowermaxThingHandler) thing.getHandler(); - if (handler != null) { - if (thing.getThingTypeUID().equals(THING_TYPE_ZONE)) { - // All of the zone state objects will have the same list of values. - // The use of getZone(1) here is just to get any PowermaxZoneState - // and use it to get the list of zone channels. + if (!thing.isEnabled()) { + continue; + } + ThingHandler thingHandler = thing.getHandler(); + if (thingHandler instanceof PowermaxThingHandler) { + PowermaxThingHandler handler = (PowermaxThingHandler) thingHandler; + if (thing.getThingTypeUID().equals(THING_TYPE_ZONE)) { + // All of the zone state objects will have the same list of values. + // The use of getZone(1) here is just to get any PowermaxZoneState + // and use it to get the list of zone channels. - for (Value value : state.getZone(1).getValues()) { - String channelId = value.getChannel(); - 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)) { - handler.updateChannelFromAlarmState(X10_STATUS, state); + for (Value value : state.getZone(1).getValues()) { + String channelId = value.getChannel(); + 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)) { + handler.updateChannelFromAlarmState(X10_STATUS, state); + } } } }