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