From dcc9190d2e1fe765b2445e356c4f0cea47f2dd93 Mon Sep 17 00:00:00 2001 From: Martin Herbst Date: Mon, 25 Jul 2022 12:16:30 +0200 Subject: [PATCH] Allow default values that are lower than allowed minimum value (#13168) Resolves #13097 Signed-off-by: Martin Herbst --- .../type/HomematicTypeGeneratorImpl.java | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/type/HomematicTypeGeneratorImpl.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/type/HomematicTypeGeneratorImpl.java index cf0ac66c0..158f1baba 100644 --- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/type/HomematicTypeGeneratorImpl.java +++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/type/HomematicTypeGeneratorImpl.java @@ -374,12 +374,18 @@ public class HomematicTypeGeneratorImpl implements HomematicTypeGenerator { if (dp.isNumberType()) { Number defaultValue = (Number) dp.getDefaultValue(); Number maxValue = dp.getMaxValue(); - // some datapoints can have a default value that is greater than the maximum value - if (defaultValue != null && maxValue != null - && defaultValue.doubleValue() > maxValue.doubleValue()) { - maxValue = defaultValue; + Number minValue = dp.getMinValue(); + if (defaultValue != null) { + // some datapoints can have a default value that is greater than the maximum value + if (maxValue != null && defaultValue.doubleValue() > maxValue.doubleValue()) { + maxValue = defaultValue; + } + // ... and there are also default values less than the minimum value + if (minValue != null && defaultValue.doubleValue() < minValue.doubleValue()) { + minValue = defaultValue; + } } - builder.withMinimum(MetadataUtils.createBigDecimal(dp.getMinValue())); + builder.withMinimum(MetadataUtils.createBigDecimal(minValue)); builder.withMaximum(MetadataUtils.createBigDecimal(maxValue)); builder.withUnitLabel(MetadataUtils.getUnit(dp)); }