From: Cody Cutrer Date: Mon, 8 Jan 2024 16:15:02 +0000 (-0700) Subject: [mqtt] recognize -NaN as UNDEF as well (#16245) X-Git-Url: https://git.basschouten.com/?a=commitdiff_plain;h=40d68ed07e841c44a16d8700d735ea530e425d51;p=openhab-addons.git [mqtt] recognize -NaN as UNDEF as well (#16245) Signed-off-by: Cody Cutrer --- diff --git a/bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/values/NumberValue.java b/bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/values/NumberValue.java index 4dc3d676d9..20b391a757 100644 --- a/bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/values/NumberValue.java +++ b/bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/values/NumberValue.java @@ -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); diff --git a/bundles/org.openhab.binding.mqtt.generic/src/test/java/org/openhab/binding/mqtt/generic/values/ValueTests.java b/bundles/org.openhab.binding.mqtt.generic/src/test/java/org/openhab/binding/mqtt/generic/values/ValueTests.java index c673851bf1..8bb5365abe 100644 --- a/bundles/org.openhab.binding.mqtt.generic/src/test/java/org/openhab/binding/mqtt/generic/values/ValueTests.java +++ b/bundles/org.openhab.binding.mqtt.generic/src/test/java/org/openhab/binding/mqtt/generic/values/ValueTests.java @@ -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