Allow default values that are lower than allowed minimum value (#13168)

Resolves #13097

Signed-off-by: Martin Herbst <develop@mherbst.de>
This commit is contained in:
Martin Herbst 2022-07-25 12:16:30 +02:00 committed by GitHub
parent 60c13d7521
commit dcc9190d2e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -374,12 +374,18 @@ public class HomematicTypeGeneratorImpl implements HomematicTypeGenerator {
if (dp.isNumberType()) { if (dp.isNumberType()) {
Number defaultValue = (Number) dp.getDefaultValue(); Number defaultValue = (Number) dp.getDefaultValue();
Number maxValue = dp.getMaxValue(); Number maxValue = dp.getMaxValue();
Number minValue = dp.getMinValue();
if (defaultValue != null) {
// some datapoints can have a default value that is greater than the maximum value // some datapoints can have a default value that is greater than the maximum value
if (defaultValue != null && maxValue != null if (maxValue != null && defaultValue.doubleValue() > maxValue.doubleValue()) {
&& defaultValue.doubleValue() > maxValue.doubleValue()) {
maxValue = defaultValue; maxValue = defaultValue;
} }
builder.withMinimum(MetadataUtils.createBigDecimal(dp.getMinValue())); // ... and there are also default values less than the minimum value
if (minValue != null && defaultValue.doubleValue() < minValue.doubleValue()) {
minValue = defaultValue;
}
}
builder.withMinimum(MetadataUtils.createBigDecimal(minValue));
builder.withMaximum(MetadataUtils.createBigDecimal(maxValue)); builder.withMaximum(MetadataUtils.createBigDecimal(maxValue));
builder.withUnitLabel(MetadataUtils.getUnit(dp)); builder.withUnitLabel(MetadataUtils.getUnit(dp));
} }