From b502c576f324e0a2c10e3cb7a2445b01efa90abe Mon Sep 17 00:00:00 2001 From: Jacob Laursen Date: Tue, 13 Jun 2023 17:31:45 +0200 Subject: [PATCH] [transform.vat] Suppress warnings for NULL/UNDEF (#15089) Signed-off-by: Jacob Laursen Signed-off-by: Thomas Burri --- .../transform/vat/internal/VATTransformationService.java | 4 ++++ .../vat/internal/profile/VATTransformationProfile.java | 8 ++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/bundles/org.openhab.transform.vat/src/main/java/org/openhab/transform/vat/internal/VATTransformationService.java b/bundles/org.openhab.transform.vat/src/main/java/org/openhab/transform/vat/internal/VATTransformationService.java index a0518c8811d2d..c0db9e30b2320 100644 --- a/bundles/org.openhab.transform.vat/src/main/java/org/openhab/transform/vat/internal/VATTransformationService.java +++ b/bundles/org.openhab.transform.vat/src/main/java/org/openhab/transform/vat/internal/VATTransformationService.java @@ -21,6 +21,7 @@ import org.openhab.core.library.types.QuantityType; import org.openhab.core.transform.TransformationException; import org.openhab.core.transform.TransformationService; +import org.openhab.core.types.UnDefType; import org.osgi.service.component.annotations.Component; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -42,6 +43,9 @@ public class VATTransformationService implements TransformationService { try { source = new QuantityType<>(sourceString); } catch (IllegalArgumentException e) { + if (UnDefType.NULL.toString().equals(sourceString) || UnDefType.UNDEF.toString().equals(sourceString)) { + return sourceString; + } logger.warn("Input value '{}' could not be converted to a valid number", sourceString); throw new TransformationException("VAT Transformation can only be used with numeric inputs", e); } diff --git a/bundles/org.openhab.transform.vat/src/main/java/org/openhab/transform/vat/internal/profile/VATTransformationProfile.java b/bundles/org.openhab.transform.vat/src/main/java/org/openhab/transform/vat/internal/profile/VATTransformationProfile.java index 1985d9beb5f66..73f26685f17b0 100644 --- a/bundles/org.openhab.transform.vat/src/main/java/org/openhab/transform/vat/internal/profile/VATTransformationProfile.java +++ b/bundles/org.openhab.transform.vat/src/main/java/org/openhab/transform/vat/internal/profile/VATTransformationProfile.java @@ -30,6 +30,7 @@ import org.openhab.core.types.Command; import org.openhab.core.types.State; import org.openhab.core.types.Type; +import org.openhab.core.types.UnDefType; import org.openhab.transform.vat.internal.config.VATConfig; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -84,11 +85,12 @@ public void onStateUpdateFromHandler(State state) { private Type transformState(Type state) { String result = state.toFullString(); + String percentage = getVATPercentage(); try { - result = TransformationHelper.transform(service, getVATPercentage(), "%s", result); + result = TransformationHelper.transform(service, percentage, "%s", result); } catch (TransformationException e) { logger.warn("Could not apply '{}' transformation on state '{}' with value '{}'.", PROFILE_TYPE_UID.getId(), - state, getVATPercentage()); + state, percentage); } Type resultType = state; if (result != null) { @@ -96,6 +98,8 @@ private Type transformState(Type state) { resultType = DecimalType.valueOf(result); } else if (state instanceof QuantityType) { resultType = QuantityType.valueOf(result); + } else if (state instanceof UnDefType) { + resultType = UnDefType.valueOf(result); } logger.debug("Transformed '{}' into '{}'", state, resultType); }