]> git.basschouten.com Git - openhab-addons.git/commitdiff
[mqtt] recognize -NaN as UNDEF as well (#16245)
authorCody Cutrer <cody@cutrer.us>
Mon, 8 Jan 2024 16:15:02 +0000 (09:15 -0700)
committerGitHub <noreply@github.com>
Mon, 8 Jan 2024 16:15:02 +0000 (17:15 +0100)
Signed-off-by: Cody Cutrer <cody@cutrer.us>
bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/values/NumberValue.java
bundles/org.openhab.binding.mqtt.generic/src/test/java/org/openhab/binding/mqtt/generic/values/ValueTests.java

index 4dc3d676d909ae311557649fafa2965c5f98a7b2..20b391a757c51f3954130dfd38110a6d4c0e917c 100644 (file)
@@ -47,6 +47,7 @@ import org.slf4j.LoggerFactory;
 @NonNullByDefault
 public class NumberValue extends Value {
     private static final String NAN = "NaN";
+    private static final String NEGATIVE_NAN = "-NaN";
 
     private final Logger logger = LoggerFactory.getLogger(NumberValue.class);
     private final @Nullable BigDecimal min;
@@ -120,7 +121,8 @@ public class NumberValue extends Value {
 
     @Override
     public Type parseMessage(Command command) throws IllegalArgumentException {
-        if (command instanceof StringType && command.toString().equalsIgnoreCase(NAN)) {
+        if (command instanceof StringType
+                && (command.toString().equalsIgnoreCase(NAN) || command.toString().equalsIgnoreCase(NEGATIVE_NAN))) {
             return UnDefType.UNDEF;
         }
         return parseCommand(command);
index c673851bf12403e1a2e4181fd4b8a1d7846bc111..8bb5365abefcf32f16ecbefa8db41c55c075a055 100644 (file)
@@ -189,6 +189,8 @@ public class ValueTests {
 
         assertThat(v.parseMessage(new StringType("NaN")), is(UnDefType.UNDEF));
         assertThat(v.parseMessage(new StringType("nan")), is(UnDefType.UNDEF));
+        assertThat(v.parseMessage(new StringType("-NaN")), is(UnDefType.UNDEF));
+        assertThat(v.parseMessage(new StringType("-nan")), is(UnDefType.UNDEF));
     }
 
     @Test