]> git.basschouten.com Git - openhab-addons.git/commitdiff
[wemo] fix wrong brightness value for dimmer switch (#11385)
authorHans-Jörg Merk <github@hmerk.de>
Fri, 15 Oct 2021 17:37:07 +0000 (19:37 +0200)
committerGitHub <noreply@github.com>
Fri, 15 Oct 2021 17:37:07 +0000 (19:37 +0200)
* [wemo] fix wrong brightness value for dimmer switch

Signed-off-by: Hans-Jörg Merk <github@hmerk.de>
* Update bundles/org.openhab.binding.wemo/src/main/java/org/openhab/binding/wemo/internal/handler/WemoDimmerHandler.java

Co-authored-by: Hilbrand Bouwkamp <hilbrand@h72.nl>
* Remove @Nullable on simple variable

Co-authored-by: Hilbrand Bouwkamp <hilbrand@h72.nl>
bundles/org.openhab.binding.wemo/src/main/java/org/openhab/binding/wemo/internal/handler/WemoDimmerHandler.java

index 3496ae3e3fbf8fee0655976447b2ecfb9611eba6..6bec2aa34ebf17f2a1db0328a05fb4e6c779cef3 100644 (file)
@@ -333,16 +333,17 @@ public class WemoDimmerHandler extends AbstractWemoHandler implements UpnpIOPart
                 new Object[] { variable, value, service, this.getThing().getUID() });
         updateStatus(ThingStatus.ONLINE);
         if (variable != null && value != null) {
+            String oldBinaryState = this.stateMap.get("BinaryState");
             this.stateMap.put(variable, value);
-        }
-        if (variable != null && value != null) {
             switch (variable) {
                 case "BinaryState":
-                    State state = value.equals("0") ? OnOffType.OFF : OnOffType.ON;
-                    logger.debug("State '{}' for device '{}' received", state, getThing().getUID());
-                    updateState(CHANNEL_BRIGHTNESS, state);
-                    if (state.equals(OnOffType.OFF)) {
-                        updateState(CHANNEL_TIMERSTART, OnOffType.OFF);
+                    if (oldBinaryState == null || !oldBinaryState.equals(value)) {
+                        State state = value.equals("0") ? OnOffType.OFF : OnOffType.ON;
+                        logger.debug("State '{}' for device '{}' received", state, getThing().getUID());
+                        updateState(CHANNEL_BRIGHTNESS, state);
+                        if (state.equals(OnOffType.OFF)) {
+                            updateState(CHANNEL_TIMERSTART, OnOffType.OFF);
+                        }
                     }
                     break;
                 case "brightness":