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; }