]> git.basschouten.com Git - openhab-addons.git/commitdiff
[miio] support sending openclose commands (#11581)
authorMarcel <marcel@verpaalen.com>
Sun, 14 Nov 2021 12:40:05 +0000 (13:40 +0100)
committerGitHub <noreply@github.com>
Sun, 14 Nov 2021 12:40:05 +0000 (13:40 +0100)
* [miio] support sending openclose commands

Signed-off-by: Marcel Verpaalen <marcel@verpaalen.com>
* [miio] fix contact sending

Signed-off-by: Marcel Verpaalen <marcel@verpaalen.com>
* [miio] switch

Signed-off-by: Marcel Verpaalen <marcel@verpaalen.com>
bundles/org.openhab.binding.miio/src/main/java/org/openhab/binding/miio/internal/basic/CommandParameterType.java
bundles/org.openhab.binding.miio/src/main/java/org/openhab/binding/miio/internal/handler/MiIoBasicHandler.java

index d448011d8af72472b899737e52daac8e7b10da33..b5e638be042f0efad7c6fd0b235e09f5174555c5 100644 (file)
@@ -28,8 +28,9 @@ public enum CommandParameterType {
     ONOFFBOOL("onoffbool"),
     ONOFFBOOLSTRING("onoffboolstring"),
     ONOFFNUMBER("onoffnumber"),
-    OPENCLOSENUMBER("openclosenumber"),
     OPENCLOSE("openclose"),
+    OPENCLOSENUMBER("openclosenumber"),
+    OPENCLOSESWITCH("opencloseswitch"),
     STRING("string"),
     CUSTOMSTRING("customstring"),
     NUMBER("number"),
index c6c7c5905723f395799df5a0c20ffb957b00e147..19f7e3382aabc7c31db19e7c4d2ad626ee766d77 100644 (file)
@@ -175,6 +175,30 @@ public class MiIoBasicHandler extends MiIoAbstractHandler {
                             command = new DecimalType(((QuantityType<?>) command).toBigDecimal());
                         }
                     }
+                    if (paramType == CommandParameterType.OPENCLOSE) {
+                        if (command instanceof OpenClosedType) {
+                            value = new JsonPrimitive(command == OpenClosedType.OPEN ? "open" : "close");
+                        } else {
+                            value = new JsonPrimitive(("ON".contentEquals(command.toString().toUpperCase())
+                                    || "1".contentEquals(command.toString())) ? "open" : "close");
+                        }
+                    }
+                    if (paramType == CommandParameterType.OPENCLOSENUMBER) {
+                        if (command instanceof OpenClosedType) {
+                            value = new JsonPrimitive(command == OpenClosedType.OPEN ? 1 : 0);
+                        } else {
+                            value = new JsonPrimitive(("ON".contentEquals(command.toString().toUpperCase())
+                                    || "1".contentEquals(command.toString())) ? 1 : 0);
+                        }
+                    }
+                    if (paramType == CommandParameterType.OPENCLOSESWITCH) {
+                        if (command instanceof OpenClosedType) {
+                            value = new JsonPrimitive(command == OpenClosedType.OPEN ? "on" : "off");
+                        } else {
+                            value = new JsonPrimitive(("ON".contentEquals(command.toString().toUpperCase())
+                                    || "1".contentEquals(command.toString())) ? "on" : "off");
+                        }
+                    }
                     if (paramType == CommandParameterType.COLOR) {
                         if (command instanceof HSBType) {
                             HSBType hsb = (HSBType) command;
@@ -630,8 +654,8 @@ public class MiIoBasicHandler extends MiIoAbstractHandler {
                     } else {
                         String strVal = val.getAsString().toLowerCase();
                         updateState(basicChannel.getChannel(),
-                                "on".equals(strVal) || "true".equals(strVal) || "1".equals(strVal) ? OpenClosedType.OPEN
-                                        : OpenClosedType.CLOSED);
+                                "open".equals(strVal) || "on".equals(strVal) || "true".equals(strVal)
+                                        || "1".equals(strVal) ? OpenClosedType.OPEN : OpenClosedType.CLOSED);
                     }
                     break;
                 case "color":
@@ -706,6 +730,7 @@ public class MiIoBasicHandler extends MiIoAbstractHandler {
             switch (response.getCommand()) {
                 case MIIO_INFO:
                     break;
+                case GET_DEVICE_PROPERTY_EXP:
                 case GET_VALUE:
                 case GET_PROPERTIES:
                 case GET_PROPERTY: