]> git.basschouten.com Git - openhab-addons.git/commitdiff
[miio] Support contact type in basic channel json (#11477)
authorMarcel <marcel@verpaalen.com>
Sun, 31 Oct 2021 11:42:32 +0000 (12:42 +0100)
committerGitHub <noreply@github.com>
Sun, 31 Oct 2021 11:42:32 +0000 (12:42 +0100)
Signed-off-by: Marcel Verpaalen <marcel@verpaalen.com>
bundles/org.openhab.binding.miio/src/main/java/org/openhab/binding/miio/internal/handler/MiIoBasicHandler.java

index 4c7432b7fd650ba79a491efc5951a4632cd9db6a..c6c7c5905723f395799df5a0c20ffb957b00e147 100644 (file)
@@ -52,6 +52,7 @@ import org.openhab.core.cache.ExpiringCache;
 import org.openhab.core.library.types.DecimalType;
 import org.openhab.core.library.types.HSBType;
 import org.openhab.core.library.types.OnOffType;
+import org.openhab.core.library.types.OpenClosedType;
 import org.openhab.core.library.types.PercentType;
 import org.openhab.core.library.types.QuantityType;
 import org.openhab.core.library.types.StringType;
@@ -622,6 +623,17 @@ public class MiIoBasicHandler extends MiIoAbstractHandler {
                                         : OnOffType.OFF);
                     }
                     break;
+                case "contact":
+                    if (val.getAsJsonPrimitive().isNumber()) {
+                        updateState(basicChannel.getChannel(),
+                                val.getAsInt() > 0 ? OpenClosedType.OPEN : OpenClosedType.CLOSED);
+                    } else {
+                        String strVal = val.getAsString().toLowerCase();
+                        updateState(basicChannel.getChannel(),
+                                "on".equals(strVal) || "true".equals(strVal) || "1".equals(strVal) ? OpenClosedType.OPEN
+                                        : OpenClosedType.CLOSED);
+                    }
+                    break;
                 case "color":
                     if (val.isJsonPrimitive()
                             && (val.getAsJsonPrimitive().isNumber() || val.getAsString().matches("^[0-9]+$"))) {