From: Christoph Weitkamp Date: Tue, 1 Dec 2020 00:40:56 +0000 (+0100) Subject: [netatmo] Update only the channel for which the REFRESH is sent (#9188) X-Git-Url: https://git.basschouten.com/?a=commitdiff_plain;h=1abe9da2d44ff58b75857a03824ae44517bad312;p=openhab-addons.git [netatmo] Update only the channel for which the REFRESH is sent (#9188) Signed-off-by: Christoph Weitkamp --- diff --git a/bundles/org.openhab.binding.netatmo/src/main/java/org/openhab/binding/netatmo/internal/handler/AbstractNetatmoThingHandler.java b/bundles/org.openhab.binding.netatmo/src/main/java/org/openhab/binding/netatmo/internal/handler/AbstractNetatmoThingHandler.java index c0a3e97bd9..6cc210783e 100644 --- a/bundles/org.openhab.binding.netatmo/src/main/java/org/openhab/binding/netatmo/internal/handler/AbstractNetatmoThingHandler.java +++ b/bundles/org.openhab.binding.netatmo/src/main/java/org/openhab/binding/netatmo/internal/handler/AbstractNetatmoThingHandler.java @@ -122,9 +122,7 @@ public abstract class AbstractNetatmoThingHandler extends BaseThingHandler { protected abstract void initializeThing(); protected State getNAThingProperty(String channelId) { - Optional result; - - result = getBatteryHelper().flatMap(helper -> helper.getNAThingProperty(channelId)); + Optional result = getBatteryHelper().flatMap(helper -> helper.getNAThingProperty(channelId)); if (result.isPresent()) { return result.get(); } @@ -146,15 +144,13 @@ public abstract class AbstractNetatmoThingHandler extends BaseThingHandler { } private void updateDataChannels() { - getThing().getChannels().stream().filter(channel -> !channel.getKind().equals(ChannelKind.TRIGGER)) - .forEach(channel -> { - - String channelId = channel.getUID().getId(); - if (isLinked(channelId)) { - State state = getNAThingProperty(channelId); - updateState(channel.getUID(), state); - } - }); + getThing().getChannels().stream() + .filter(channel -> !ChannelKind.TRIGGER.equals(channel.getKind()) && isLinked(channel.getUID())) + .map(channel -> channel.getUID()).forEach(this::updateChannel); + } + + private void updateChannel(ChannelUID channelUID) { + updateState(channelUID, getNAThingProperty(channelUID.getId())); } /** @@ -162,8 +158,8 @@ public abstract class AbstractNetatmoThingHandler extends BaseThingHandler { * (when a channel is triggered, a rule can get all other information from the updated non-trigger channels) */ private void triggerEventChannels() { - getThing().getChannels().stream().filter(channel -> channel.getKind().equals(ChannelKind.TRIGGER)) - .forEach(channel -> triggerChannelIfRequired(channel.getUID().getId())); + getThing().getChannels().stream().filter(channel -> ChannelKind.TRIGGER.equals(channel.getKind())) + .map(channel -> channel.getUID().getId()).forEach(this::triggerChannelIfRequired); } /** @@ -177,8 +173,8 @@ public abstract class AbstractNetatmoThingHandler extends BaseThingHandler { @Override public void handleCommand(ChannelUID channelUID, Command command) { if (command == RefreshType.REFRESH) { - logger.debug("Refreshing {}", channelUID); - updateChannels(); + logger.debug("Refreshing '{}'", channelUID); + updateChannel(channelUID); } }