From ade041d5f06044c4590407fd9286111ffa644d8f Mon Sep 17 00:00:00 2001 From: eugen Date: Wed, 9 Dec 2020 20:49:24 +0100 Subject: [PATCH] [homekit] fix minValue, maxValue (#9300) Signed-off-by: Eugen Freiter --- .../io/homekit/internal/HomekitTaggedItem.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/bundles/org.openhab.io.homekit/src/main/java/org/openhab/io/homekit/internal/HomekitTaggedItem.java b/bundles/org.openhab.io.homekit/src/main/java/org/openhab/io/homekit/internal/HomekitTaggedItem.java index abe9bbd4c3d..3c7ea843e78 100644 --- a/bundles/org.openhab.io.homekit/src/main/java/org/openhab/io/homekit/internal/HomekitTaggedItem.java +++ b/bundles/org.openhab.io.homekit/src/main/java/org/openhab/io/homekit/internal/HomekitTaggedItem.java @@ -193,9 +193,19 @@ public class HomekitTaggedItem { public T getConfiguration(String key, T defaultValue) { if (configuration != null) { final @Nullable Object value = configuration.get(key); - if (value != null && value.getClass().equals(defaultValue.getClass())) { - return (T) value; + if (value != null) { + if (value.getClass().equals(defaultValue.getClass())) { + return (T) value; + } + // fix for different handling of numbers via .items and via mainUI, see #1904 + if ((value instanceof BigDecimal) && (defaultValue instanceof Double)) { + return (T) Double.valueOf(((BigDecimal) value).doubleValue()); + } + if ((value instanceof Double) && (defaultValue instanceof BigDecimal)) { + return (T) BigDecimal.valueOf(((Double) value).doubleValue()); + } } + } return defaultValue; }