From 583d13e6b60a59696db525a886c6839437a29ae5 Mon Sep 17 00:00:00 2001 From: Marcel Date: Mon, 18 Jan 2021 21:43:49 +0100 Subject: [PATCH] [miio] add support for nwt.derh.wdh318efw1 Internet Dehumidifier (#9787) * [miio] add support for nwt.derh.wdh318efw1 Internet Dehumidifier based on json provided & tested by @feodor85 closing #9737 * [miio] change autohumidity * [miio] fix switched property Signed-off-by: Marcel Verpaalen --- bundles/org.openhab.binding.miio/README.md | 43 +++- .../binding/miio/internal/MiIoDevices.java | 2 +- .../database/nwt.derh.wdh318efw1.json | 197 ++++++++++++++++++ 3 files changed, 240 insertions(+), 2 deletions(-) create mode 100644 bundles/org.openhab.binding.miio/src/main/resources/database/nwt.derh.wdh318efw1.json diff --git a/bundles/org.openhab.binding.miio/README.md b/bundles/org.openhab.binding.miio/README.md index 1e41997f2f24a..08ca7e08c20dc 100644 --- a/bundles/org.openhab.binding.miio/README.md +++ b/bundles/org.openhab.binding.miio/README.md @@ -202,7 +202,7 @@ Currently the miio binding supports more than 260 different models. | Mi AI Alarm | miio:unsupported | zimi.clock.myk01 | No | | | Yeelight Smart Bath Heater | miio:unsupported | yeelight.bhf_light.v2 | No | | | Gosund Smart Plug | miio:basic | [cuco.plug.cp1](#cuco-plug-cp1) | Yes | | -| WIDETECH WDH318EFW1 Internet Dehumidifier | miio:unsupported | nwt.derh.wdh318efw1 | No | | +| WIDETECH WDH318EFW1 Internet Dehumidifier | miio:basic | [nwt.derh.wdh318efw1](#nwt-derh-wdh318efw1) | Yes | | | Mi Robot Vacuum Mop 1C STYTJ01ZHM | miio:basic | [dreame.vacuum.mc1808](#dreame-vacuum-mc1808) | Yes | Identified manual actions for execution
`action{"did":"battery-start-charge","siid":2,"aiid":1,"in":[]}`
`action{"did":"vacuum-start-sweep","siid":3,"aiid":1,"in":[]}`
`action{"did":"vacuum-stop-sweeping","siid":3,"aiid":2,"in":[]}`
`action{"did":"brush-cleaner-reset-brush-life","siid":26,"aiid":1,"in":[]}`
`action{"did":"filter-reset-filter-life","siid":27,"aiid":1,"in":[]}`
`action{"did":"brush-cleaner-reset-brush-life","siid":28,"aiid":1,"in":[]}`
`action{"did":"clean-start-clean","siid":18,"aiid":1,"in":[]}`
`action{"did":"clean-stop-clean","siid":18,"aiid":2,"in":[]}`
`action{"did":"remote-start-remote","siid":21,"aiid":1,"in":[1.0, 2.0]}`
`action{"did":"remote-stop-remote","siid":21,"aiid":2,"in":[]}`
`action{"did":"remote-exit-remote","siid":21,"aiid":3,"in":[]}`
`action{"did":"map-map-req","siid":23,"aiid":1,"in":[2.0]}`
`action{"did":"audio-position","siid":24,"aiid":1,"in":[]}`
`action{"did":"audio-set-voice","siid":24,"aiid":2,"in":[]}`
`action{"did":"audio-play-sound","siid":24,"aiid":3,"in":[]}`
Please test and feedback if they are working to they can be linked to a channel.
Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses | | Dreame Robot Vacuum-Mop F9 | miio:basic | [dreame.vacuum.p2008](#dreame-vacuum-p2008) | Yes | Identified manual actions for execution
`action{"did":"vacuum-start-sweep","siid":2,"aiid":1,"in":[]}`
`action{"did":"vacuum-stop-sweeping","siid":2,"aiid":2,"in":[]}`
`action{"did":"battery-start-charge","siid":3,"aiid":1,"in":[]}`
`action{"did":"brush-cleaner-reset-brush-life","siid":9,"aiid":1,"in":[]}`
`action{"did":"brush-cleaner-reset-brush-life","siid":10,"aiid":1,"in":[]}`
`action{"did":"filter-reset-filter-life","siid":11,"aiid":1,"in":[]}`
`action{"did":"vacuum-extend-start-clean","siid":4,"aiid":1,"in":[10.0]}`
`action{"did":"vacuum-extend-stop-clean","siid":4,"aiid":2,"in":[]}`
`action{"did":"map-map-req","siid":6,"aiid":1,"in":[2.0]}`
`action{"did":"map-update-map","siid":6,"aiid":2,"in":[4.0]}`
`action{"did":"audio-position","siid":7,"aiid":1,"in":[]}`
`action{"did":"audio-play-sound","siid":7,"aiid":2,"in":[]}`
`action{"did":"time-delete-timer","siid":8,"aiid":1,"in":[3.0]}`
Please test and feedback if they are working to they can be linked to a channel.
Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses | | Dreame Robot Vacuum D9 | miio:basic | [dreame.vacuum.p2009](#dreame-vacuum-p2009) | Yes | Identified manual actions for execution not linked in the database >`action{"did":"vacuum-extend-start-clean","siid":4,"aiid":1,"in":[10.0]}`
`action{"did":"vacuum-extend-stop-clean","siid":4,"aiid":2,"in":[]}`
`action{"did":"map-map-req","siid":6,"aiid":1,"in":[2.0]}`
`action{"did":"map-update-map","siid":6,"aiid":2,"in":[4.0]}`
`action{"did":"audio-position","siid":7,"aiid":1,"in":[]}`
`action{"did":"audio-play-sound","siid":7,"aiid":2,"in":[]}`
`action{"did":"time-delete-timer","siid":8,"aiid":1,"in":[3.0]}`
| @@ -1009,6 +1009,25 @@ e.g. `openhab:send actionCommand 'upd_timer["1498595904821", "on"]'` would enabl | SerialNumber | String | Device Information-Device Serial Number | | | On | Switch | Switch-Switch Status | | +### WIDETECH WDH318EFW1 Internet Dehumidifier (nwt.derh.wdh318efw1) Channels + +| Channel | Type | Description | Comment | +|------------------|---------|-------------------------------------|------------| +| power | Switch | Power | | +| mode | String | Mode | | +| autohumidity | Number:Dimensionless | Auto humidity | | +| fanspeed | Number | Fan Speed | | +| buzzer | Switch | Buzzer | | +| led | Switch | LED | | +| childlock | Switch | Child Lock | | +| humidity | Number:Dimensionless | Humidity | | +| temperature | Number:Temperature | Temperature | | +| tankfull | Switch | Tank Full | | +| compressorstatus | Switch | Compressor Status | | +| defroststatus | Switch | Defrost Status | | +| fanst | Number | Fan St | | +| alarm | String | Alarm | | + ### Mi Robot Vacuum Mop 1C STYTJ01ZHM (dreame.vacuum.mc1808) Channels | Channel | Type | Description | Comment | @@ -4950,6 +4969,28 @@ String SerialNumber "Device Information-Device Serial Number" (G_plug) {channel= Switch On "Switch-Switch Status" (G_plug) {channel="miio:basic:plug:On"} ``` +### WIDETECH WDH318EFW1 Internet Dehumidifier (nwt.derh.wdh318efw1) item file lines + +note: Autogenerated example. Replace the id (derh) in the channel with your own. Replace `basic` with `generic` in the thing UID depending on how your thing was discovered. + +```java +Group G_derh "WIDETECH WDH318EFW1 Internet Dehumidifier" +Switch power "Power" (G_derh) {channel="miio:basic:derh:power"} +String mode "Mode" (G_derh) {channel="miio:basic:derh:mode"} +Number:Dimensionless autohumidity "Auto humidity" (G_derh) {channel="miio:basic:derh:autohumidity"} +Number fanspeed "Fan Speed" (G_derh) {channel="miio:basic:derh:fanspeed"} +Switch buzzer "Buzzer" (G_derh) {channel="miio:basic:derh:buzzer"} +Switch led "LED" (G_derh) {channel="miio:basic:derh:led"} +Switch childlock "Child Lock" (G_derh) {channel="miio:basic:derh:childlock"} +Number:Dimensionless humidity "Humidity" (G_derh) {channel="miio:basic:derh:humidity"} +Number:Temperature temperature "Temperature" (G_derh) {channel="miio:basic:derh:temperature"} +Switch tankfull "Tank Full" (G_derh) {channel="miio:basic:derh:tankfull"} +Switch compressorstatus "Compressor Status" (G_derh) {channel="miio:basic:derh:compressorstatus"} +Switch defroststatus "Defrost Status" (G_derh) {channel="miio:basic:derh:defroststatus"} +Number fanst "Fan St" (G_derh) {channel="miio:basic:derh:fanst"} +String alarm "Alarm" (G_derh) {channel="miio:basic:derh:alarm"} +``` + ### Mi Robot Vacuum Mop 1C STYTJ01ZHM (dreame.vacuum.mc1808) item file lines note: Autogenerated example. Replace the id (vacuum) in the channel with your own. Replace `basic` with `generic` in the thing UID depending on how your thing was discovered. diff --git a/bundles/org.openhab.binding.miio/src/main/java/org/openhab/binding/miio/internal/MiIoDevices.java b/bundles/org.openhab.binding.miio/src/main/java/org/openhab/binding/miio/internal/MiIoDevices.java index 621c453f3dee6..a2ff3e4a1dd37 100644 --- a/bundles/org.openhab.binding.miio/src/main/java/org/openhab/binding/miio/internal/MiIoDevices.java +++ b/bundles/org.openhab.binding.miio/src/main/java/org/openhab/binding/miio/internal/MiIoDevices.java @@ -56,7 +56,7 @@ public enum MiIoDevices { ZIMI_CLOCK_MYK01("zimi.clock.myk01", "Mi AI Alarm", THING_TYPE_UNSUPPORTED), YEELIGHT_BHF_LIGHT_V2("yeelight.bhf_light.v2", "Yeelight Smart Bath Heater", THING_TYPE_UNSUPPORTED), CUCO_PLUG_CP1("cuco.plug.cp1", "Gosund Smart Plug", THING_TYPE_BASIC), - NWT_DERH_WDH318EFW1("nwt.derh.wdh318efw1", "WIDETECH WDH318EFW1 Internet Dehumidifier", THING_TYPE_UNSUPPORTED), + NWT_DERH_WDH318EFW1("nwt.derh.wdh318efw1", "WIDETECH WDH318EFW1 Internet Dehumidifier", THING_TYPE_BASIC), DREAME_VACUUM_MC1808("dreame.vacuum.mc1808", "Mi Robot Vacuum Mop 1C STYTJ01ZHM", THING_TYPE_BASIC), DREAME_VACUUM_P2008("dreame.vacuum.p2008", "Dreame Robot Vacuum-Mop F9", THING_TYPE_BASIC), DREAME_VACUUM_P2009("dreame.vacuum.p2009", "Dreame Robot Vacuum D9 ", THING_TYPE_BASIC), diff --git a/bundles/org.openhab.binding.miio/src/main/resources/database/nwt.derh.wdh318efw1.json b/bundles/org.openhab.binding.miio/src/main/resources/database/nwt.derh.wdh318efw1.json new file mode 100644 index 0000000000000..1e1cfd0c42a2f --- /dev/null +++ b/bundles/org.openhab.binding.miio/src/main/resources/database/nwt.derh.wdh318efw1.json @@ -0,0 +1,197 @@ +{ + "deviceMapping": { + "id": [ + "nwt.derh.wdh318efw1" + ], + "channels": [ + { + "property": "on_off", + "friendlyName": "Power", + "channel": "power", + "type": "Switch", + "refresh": true, + "ChannelGroup": "Power", + "actions": [ + { + "command": "set_power", + "parameterType": "ONOFF" + } + ], + "category": "switch", + "tags": [ + "Switch" + ] + }, + { + "property": "mode", + "friendlyName": "Mode", + "channel": "mode", + "type": "String", + "refresh": true, + "ChannelGroup": "actions", + "actions": [ + { + "command": "set_mode", + "parameterType": "STRING" + } + ], + "tags": [ + "Control" + ] + }, + { + "property": "auto", + "friendlyName": "Auto humidity", + "channel": "autohumidity", + "type": "Number:Dimensionless", + "unit": "PERCENT", + "refresh": true, + "ChannelGroup": "actions", + "actions": [ + { + "command": "set_auto", + "parameterType": "NUMBER" + } + ] + }, + { + "property": "fan_speed", + "friendlyName": "Fan Speed", + "channel": "fanspeed", + "type": "Number", + "refresh": true, + "ChannelGroup": "actions", + "actions": [ + { + "command": "set_fan_level", + "parameterType": "NUMBER" + } + ], + "category": "fan_box", + "tags": [ + "Setpoint" + ] + }, + { + "property": "buzzer", + "friendlyName": "Buzzer", + "channel": "buzzer", + "type": "Switch", + "refresh": true, + "ChannelGroup": "actions", + "actions": [ + { + "command": "set_buzzer", + "parameterType": "ONOFF" + } + ] + }, + { + "property": "led", + "friendlyName": "LED", + "channel": "led", + "type": "Switch", + "refresh": true, + "ChannelGroup": "actions", + "actions": [ + { + "command": "set_led", + "parameterType": "ONOFF" + } + ] + }, + { + "property": "child_lock", + "friendlyName": "Child Lock", + "channel": "childlock", + "type": "Switch", + "refresh": true, + "ChannelGroup": "actions", + "actions": [ + { + "command": "set_child_lock", + "parameterType": "ONOFF" + } + ] + }, + { + "property": "humidity", + "friendlyName": "Humidity", + "channel": "humidity", + "type": "Number:Dimensionless", + "unit": "PERCENT", + "refresh": true, + "ChannelGroup": "Status", + "actions": [], + "category": "humidity", + "tags": [ + "Measurement", + "Humidity" + ] + }, + { + "property": "temp", + "friendlyName": "Temperature", + "channel": "temperature", + "type": "Number:Temperature", + "unit": "CELCIUS", + "refresh": true, + "ChannelGroup": "Status", + "actions": [], + "category": "temperature", + "tags": [ + "Measurement", + "Temperature" + ] + }, + { + "property": "tank_full", + "friendlyName": "Tank Full", + "channel": "tankfull", + "type": "Switch", + "refresh": true, + "ChannelGroup": "Status", + "actions": [] + }, + { + "property": "compressor_status", + "friendlyName": "Compressor Status", + "channel": "compressorstatus", + "type": "Switch", + "refresh": true, + "ChannelGroup": "Status", + "actions": [] + }, + { + "property": "defrost_status", + "friendlyName": "Defrost Status", + "channel": "defroststatus", + "type": "Switch", + "refresh": true, + "ChannelGroup": "Status", + "actions": [] + }, + { + "property": "fan_st", + "friendlyName": "Fan St", + "channel": "fanst", + "type": "Number", + "refresh": true, + "ChannelGroup": "Status", + "actions": [] + }, + { + "property": "alarm", + "friendlyName": "Alarm", + "channel": "alarm", + "type": "String", + "refresh": true, + "ChannelGroup": "Status", + "actions": [], + "tags": [ + "Alarm" + ] + } + ] + } +}