From 3aed9ebf04cc0c0fb6f5a398b535b16a0f568033 Mon Sep 17 00:00:00 2001 From: rschoene <rene.schoene@tu-dresden.de> Date: Tue, 7 May 2019 10:22:06 +0200 Subject: [PATCH] Cycle through state types in EraserHandler. --- .../openlicht/handler/EraserHandler.java | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/src/main/java/org/openhab/binding/openlicht/handler/EraserHandler.java b/src/main/java/org/openhab/binding/openlicht/handler/EraserHandler.java index 9aba706..4cd5ffb 100644 --- a/src/main/java/org/openhab/binding/openlicht/handler/EraserHandler.java +++ b/src/main/java/org/openhab/binding/openlicht/handler/EraserHandler.java @@ -174,16 +174,20 @@ public class EraserHandler extends AbstractMqttHandler implements StateChangeLis private State parseState(GenericItem genericItem, String state) { for (Class<? extends @NonNull Command> type : genericItem.getAcceptedCommandTypes()) { - if (type.equals(StringType.class)) { - return new StringType(state); - } else if (type.equals(HSBType.class)) { - return new HSBType(state); - } else if (type.equals(DecimalType.class)) { - return new DecimalType(state); - } else if (type.equals(OnOffType.class)) { - return OnOffType.from(state); - } else if (type.equals(DateTimeType.class)) { - return new DateTimeType(state); + try { + if (type.equals(StringType.class)) { + return new StringType(state); + } else if (type.equals(HSBType.class)) { + return new HSBType(state); + } else if (type.equals(DecimalType.class)) { + return new DecimalType(state); + } else if (type.equals(OnOffType.class)) { + return OnOffType.from(state); + } else if (type.equals(DateTimeType.class)) { + return new DateTimeType(state); + } + } catch (IllegalArgumentException e) { + // ignore the exception, and try next type } } return null; -- GitLab