From 40d68ed07e841c44a16d8700d735ea530e425d51 Mon Sep 17 00:00:00 2001 From: Cody Cutrer Date: Mon, 8 Jan 2024 09:15:02 -0700 Subject: [PATCH] [mqtt] recognize -NaN as UNDEF as well (#16245) Signed-off-by: Cody Cutrer --- .../org/openhab/binding/mqtt/generic/values/NumberValue.java | 4 +++- .../org/openhab/binding/mqtt/generic/values/ValueTests.java | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) 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 -- 2.47.3