]> git.basschouten.com Git - openhab-addons.git/commitdiff
[knx] Fix DPT 3.007 (Control Dimming) for non -control channels (#14504)
authorHolger Friedrich <holgerfriedrich@users.noreply.github.com>
Sun, 26 Feb 2023 11:19:15 +0000 (12:19 +0100)
committerGitHub <noreply@github.com>
Sun, 26 Feb 2023 11:19:15 +0000 (12:19 +0100)
Signed-off-by: Holger Friedrich <mail@holger-friedrich.de>
Also-by: Jan N. Klug <github@klug.nrw>
bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/dpt/KNXCoreTypeMapper.java
bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/handler/DeviceThingHandler.java

index 66a5ae475329cd3f4bf88a1bb4d83d856b4101a1..db902650a10a98c8c794893fd45d1e9e04904d5b 100644 (file)
@@ -888,7 +888,7 @@ public class KNXCoreTypeMapper implements KNXTypeMapper {
                     DPTXlator3BitControlled translator3BitControlled = (DPTXlator3BitControlled) translator;
                     if (translator3BitControlled.getStepCode() == 0) {
                         logger.debug("toType: KNX DPT_Control_Dimming: break received.");
-                        return UnDefType.UNDEF;
+                        return UnDefType.NULL;
                     }
                     switch (subNumber) {
                         case 7:
@@ -897,6 +897,7 @@ public class KNXCoreTypeMapper implements KNXTypeMapper {
                         case 8:
                             return translator3BitControlled.getControlBit() ? UpDownType.DOWN : UpDownType.UP;
                     }
+                    break;
                 case 18:
                     DPTXlatorSceneControl translatorSceneControl = (DPTXlatorSceneControl) translator;
                     int decimalValue = translatorSceneControl.getSceneNumber();
index aecce6bce168cda58d469e11554ac9f64a5c6f8f..68d5c74b72e4f21bcaaa5ae9c1bb833778878353 100644 (file)
@@ -413,7 +413,7 @@ public class DeviceThingHandler extends AbstractKNXThingHandler {
                     }
                 }
             } else {
-                if (type instanceof State) {
+                if (type instanceof State && !(type instanceof UnDefType)) {
                     updateState(channelUID, (State) type);
                 }
             }