]> git.basschouten.com Git - openhab-addons.git/commitdiff
Allow default values that are lower than allowed minimum value (#13168)
authorMartin Herbst <develop@mherbst.de>
Mon, 25 Jul 2022 10:16:30 +0000 (12:16 +0200)
committerGitHub <noreply@github.com>
Mon, 25 Jul 2022 10:16:30 +0000 (12:16 +0200)
Resolves #13097

Signed-off-by: Martin Herbst <develop@mherbst.de>
bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/type/HomematicTypeGeneratorImpl.java

index cf0ac66c0c9ff1baaa151cad4e090d5fecd4e720..158f1baba0004fb277ceae1a43fac2b69d1dce2b 100644 (file)
@@ -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));
                     }