diff --git a/bundles/org.openhab.binding.homeconnect/src/main/java/org/openhab/binding/homeconnect/internal/handler/AbstractHomeConnectThingHandler.java b/bundles/org.openhab.binding.homeconnect/src/main/java/org/openhab/binding/homeconnect/internal/handler/AbstractHomeConnectThingHandler.java index 836715ba5b21a..cacc7578994a7 100644 --- a/bundles/org.openhab.binding.homeconnect/src/main/java/org/openhab/binding/homeconnect/internal/handler/AbstractHomeConnectThingHandler.java +++ b/bundles/org.openhab.binding.homeconnect/src/main/java/org/openhab/binding/homeconnect/internal/handler/AbstractHomeConnectThingHandler.java @@ -75,6 +75,7 @@ import org.openhab.core.thing.binding.BridgeHandler; import org.openhab.core.types.Command; import org.openhab.core.types.RefreshType; +import org.openhab.core.types.State; import org.openhab.core.types.StateOption; import org.openhab.core.types.UnDefType; import org.slf4j.Logger; @@ -473,6 +474,21 @@ protected Optional getThingChannel(String channelId) { } } + /** + * Get thing linked channel by given channel id. + * + * @param channelId channel id + * @return channel if linked + */ + protected Optional getLinkedChannel(String channelId) { + Channel channel = getThing().getChannel(channelId); + if (channel == null || !isLinked(channelId)) { + return Optional.empty(); + } else { + return Optional.of(channel); + } + } + /** * Configure channel update handlers. Classes which extend {@link AbstractHomeConnectThingHandler} must implement * this class and add handlers. @@ -1334,109 +1350,76 @@ private void turnLightOn(final ChannelUID channelUID, final HomeConnectApiClient } } + private Optional