From 1e179e77d76ef2de0fe4a0397a766cd86560b0ad Mon Sep 17 00:00:00 2001 From: Marcel Date: Sun, 12 Dec 2021 22:10:51 +0100 Subject: [PATCH] [miio] Improve Viomi vacuums, add docking and route channel & mapping (#11763) Signed-off-by: Marcel Verpaalen --- bundles/org.openhab.binding.miio/README.md | 60 ++-- .../resources/OH-INF/i18n/basic.properties | 62 +++- .../resources/database/viomi.vacuum.v8.json | 326 +++++++++++++++++- 3 files changed, 408 insertions(+), 40 deletions(-) diff --git a/bundles/org.openhab.binding.miio/README.md b/bundles/org.openhab.binding.miio/README.md index 11ef52ce5..c8710106f 100644 --- a/bundles/org.openhab.binding.miio/README.md +++ b/bundles/org.openhab.binding.miio/README.md @@ -2415,60 +2415,63 @@ Note, not all the values need to be in the json file, e.g. a subset of the param | Channel | Type | Description | Comment | |----------------------|----------------------|------------------------------------------|------------| -| vacuumaction | Number | Vacuum Action | Value mapping `["1"="Start","0"="Stop","2"="Pause"]` | -| state | Number | State | | -| mode | Number | Mode | | -| err_state | Number | Error | | +| vacuumaction | Number | Vacuum Action | Value mapping `["1"="Start","0"="Stop","2"="Pause","3"="Dock"]` | +| state | Number | State | Value mapping `["0"="Idle Undocked","1"="Idle","2"="Paused","3"="Sweeping","4"="Go Charging","5"="Charging","6"="Sweeping and Mopping","7"="Mopping"]` | +| mode | Number | Clean Mode | Value mapping `["0"="Everywhere","1"="Edges","2"="Surface","3"="Fixed Location"]` | +| err_state | Number | Error | Value mapping `["0"="Sleeping and not charging","500"="Radar timed out","501"="Wheels stuck","502"="Low battery","503"="Dust bin missing","508"="Uneven ground","509"="Cliff sensor erro","510"="Collision sensor error","511"="Could not return to dock","512"="Could not return to dock","513"="Could not navigate","514"="Vacuum stuck","515"="Charging erro","516"="Mop temperature error","521"="Water tank is not installed","522"="Mop is not installed","525"="Insufficient water in water tank","527"="Remove mop","528"="Dust bin missing","529"="Mop and water tank missing","530"="Mop and water tank missin","531"="Water tank is not installed","2101"="Unsufficient battery, continuing cleaning after recharge","2103"="Charging","2104"="Fully charged"]` | | battery_life | Number | Battery | | -| box_type | Number | Box type | | +| box_type | Number | Box type | Value mapping `["0"="No Bin","1"="Sweep","2"="Mop","3"="Sweep and Mop"]` | | mop_type | Number | mop_type | | +| mop_route | Number | Mop Route | Value mapping `["0"="S-Pattern","1"="Y-Pattern"]` | | s_time | Number | Clean time | | | s_area | Number | Clean Area | | -| suction_grade | Number | suction_grade | | -| water_grade | Number | water_grade | | +| suction_grade | Number | suction_grade | Value mapping `["0"="Silent","1"="Basic","2"="Medium","3"="Strong"]` | +| water_grade | Number | water_grade | Value mapping `["11"="Low","12"="Medium","13"="High"]` | | remember_map | Number | remember_map | | | has_map | Number | has_map | | -| is_mop | Number | is_mop | | +| is_mop | Number | is_mop | Value mapping `["0"="Vacuum","1"="Vacuum And Mop","2"="Mop","3"="CleanZone","4"="CleanSpot"]` | | has_newmap | Number | has_newmap | | ### Mi Robot Vacuum-Mop P (viomi.vacuum.v7) Channels | Channel | Type | Description | Comment | |----------------------|----------------------|------------------------------------------|------------| -| vacuumaction | Number | Vacuum Action | Value mapping `["1"="Start","0"="Stop","2"="Pause"]` | -| state | Number | State | | -| mode | Number | Mode | | -| err_state | Number | Error | | +| vacuumaction | Number | Vacuum Action | Value mapping `["1"="Start","0"="Stop","2"="Pause","3"="Dock"]` | +| state | Number | State | Value mapping `["0"="Idle Undocked","1"="Idle","2"="Paused","3"="Sweeping","4"="Go Charging","5"="Charging","6"="Sweeping and Mopping","7"="Mopping"]` | +| mode | Number | Clean Mode | Value mapping `["0"="Everywhere","1"="Edges","2"="Surface","3"="Fixed Location"]` | +| err_state | Number | Error | Value mapping `["0"="Sleeping and not charging","500"="Radar timed out","501"="Wheels stuck","502"="Low battery","503"="Dust bin missing","508"="Uneven ground","509"="Cliff sensor erro","510"="Collision sensor error","511"="Could not return to dock","512"="Could not return to dock","513"="Could not navigate","514"="Vacuum stuck","515"="Charging erro","516"="Mop temperature error","521"="Water tank is not installed","522"="Mop is not installed","525"="Insufficient water in water tank","527"="Remove mop","528"="Dust bin missing","529"="Mop and water tank missing","530"="Mop and water tank missin","531"="Water tank is not installed","2101"="Unsufficient battery, continuing cleaning after recharge","2103"="Charging","2104"="Fully charged"]` | | battery_life | Number | Battery | | -| box_type | Number | Box type | | +| box_type | Number | Box type | Value mapping `["0"="No Bin","1"="Sweep","2"="Mop","3"="Sweep and Mop"]` | | mop_type | Number | mop_type | | +| mop_route | Number | Mop Route | Value mapping `["0"="S-Pattern","1"="Y-Pattern"]` | | s_time | Number | Clean time | | | s_area | Number | Clean Area | | -| suction_grade | Number | suction_grade | | -| water_grade | Number | water_grade | | +| suction_grade | Number | suction_grade | Value mapping `["0"="Silent","1"="Basic","2"="Medium","3"="Strong"]` | +| water_grade | Number | water_grade | Value mapping `["11"="Low","12"="Medium","13"="High"]` | | remember_map | Number | remember_map | | | has_map | Number | has_map | | -| is_mop | Number | is_mop | | +| is_mop | Number | is_mop | Value mapping `["0"="Vacuum","1"="Vacuum And Mop","2"="Mop","3"="CleanZone","4"="CleanSpot"]` | | has_newmap | Number | has_newmap | | ### Mi Robot Vacuum-Mop P (viomi.vacuum.v8) Channels | Channel | Type | Description | Comment | |----------------------|----------------------|------------------------------------------|------------| -| vacuumaction | Number | Vacuum Action | Value mapping `["1"="Start","0"="Stop","2"="Pause"]` | -| state | Number | State | | -| mode | Number | Mode | | -| err_state | Number | Error | | +| vacuumaction | Number | Vacuum Action | Value mapping `["1"="Start","0"="Stop","2"="Pause","3"="Dock"]` | +| state | Number | State | Value mapping `["0"="Idle Undocked","1"="Idle","2"="Paused","3"="Sweeping","4"="Go Charging","5"="Charging","6"="Sweeping and Mopping","7"="Mopping"]` | +| mode | Number | Clean Mode | Value mapping `["0"="Everywhere","1"="Edges","2"="Surface","3"="Fixed Location"]` | +| err_state | Number | Error | Value mapping `["0"="Sleeping and not charging","500"="Radar timed out","501"="Wheels stuck","502"="Low battery","503"="Dust bin missing","508"="Uneven ground","509"="Cliff sensor erro","510"="Collision sensor error","511"="Could not return to dock","512"="Could not return to dock","513"="Could not navigate","514"="Vacuum stuck","515"="Charging erro","516"="Mop temperature error","521"="Water tank is not installed","522"="Mop is not installed","525"="Insufficient water in water tank","527"="Remove mop","528"="Dust bin missing","529"="Mop and water tank missing","530"="Mop and water tank missin","531"="Water tank is not installed","2101"="Unsufficient battery, continuing cleaning after recharge","2103"="Charging","2104"="Fully charged"]` | | battery_life | Number | Battery | | -| box_type | Number | Box type | | +| box_type | Number | Box type | Value mapping `["0"="No Bin","1"="Sweep","2"="Mop","3"="Sweep and Mop"]` | | mop_type | Number | mop_type | | +| mop_route | Number | Mop Route | Value mapping `["0"="S-Pattern","1"="Y-Pattern"]` | | s_time | Number | Clean time | | | s_area | Number | Clean Area | | -| suction_grade | Number | suction_grade | | -| water_grade | Number | water_grade | | +| suction_grade | Number | suction_grade | Value mapping `["0"="Silent","1"="Basic","2"="Medium","3"="Strong"]` | +| water_grade | Number | water_grade | Value mapping `["11"="Low","12"="Medium","13"="High"]` | | remember_map | Number | remember_map | | | has_map | Number | has_map | | -| is_mop | Number | is_mop | | +| is_mop | Number | is_mop | Value mapping `["0"="Vacuum","1"="Vacuum And Mop","2"="Mop","3"="CleanZone","4"="CleanSpot"]` | | has_newmap | Number | has_newmap | | ### Viomi S9 (viomi.vacuum.v18) Channels @@ -7716,11 +7719,12 @@ note: Autogenerated example. Replace the id (vacuum) in the channel with your ow Group G_vacuum "Viomi Cleaning Robot V-RVCLM21B" Number vacuumaction "Vacuum Action" (G_vacuum) {channel="miio:basic:vacuum:vacuumaction"} Number state "State" (G_vacuum) {channel="miio:basic:vacuum:state"} -Number mode "Mode" (G_vacuum) {channel="miio:basic:vacuum:mode"} +Number mode "Clean Mode" (G_vacuum) {channel="miio:basic:vacuum:mode"} Number err_state "Error" (G_vacuum) {channel="miio:basic:vacuum:err_state"} Number battery_life "Battery" (G_vacuum) {channel="miio:basic:vacuum:battery_life"} Number box_type "Box type" (G_vacuum) {channel="miio:basic:vacuum:box_type"} Number mop_type "mop_type" (G_vacuum) {channel="miio:basic:vacuum:mop_type"} +Number mop_route "Mop Route" (G_vacuum) {channel="miio:basic:vacuum:mop_route"} Number s_time "Clean time" (G_vacuum) {channel="miio:basic:vacuum:s_time"} Number s_area "Clean Area" (G_vacuum) {channel="miio:basic:vacuum:s_area"} Number suction_grade "suction_grade" (G_vacuum) {channel="miio:basic:vacuum:suction_grade"} @@ -7739,11 +7743,12 @@ note: Autogenerated example. Replace the id (vacuum) in the channel with your ow Group G_vacuum "Mi Robot Vacuum-Mop P" Number vacuumaction "Vacuum Action" (G_vacuum) {channel="miio:basic:vacuum:vacuumaction"} Number state "State" (G_vacuum) {channel="miio:basic:vacuum:state"} -Number mode "Mode" (G_vacuum) {channel="miio:basic:vacuum:mode"} +Number mode "Clean Mode" (G_vacuum) {channel="miio:basic:vacuum:mode"} Number err_state "Error" (G_vacuum) {channel="miio:basic:vacuum:err_state"} Number battery_life "Battery" (G_vacuum) {channel="miio:basic:vacuum:battery_life"} Number box_type "Box type" (G_vacuum) {channel="miio:basic:vacuum:box_type"} Number mop_type "mop_type" (G_vacuum) {channel="miio:basic:vacuum:mop_type"} +Number mop_route "Mop Route" (G_vacuum) {channel="miio:basic:vacuum:mop_route"} Number s_time "Clean time" (G_vacuum) {channel="miio:basic:vacuum:s_time"} Number s_area "Clean Area" (G_vacuum) {channel="miio:basic:vacuum:s_area"} Number suction_grade "suction_grade" (G_vacuum) {channel="miio:basic:vacuum:suction_grade"} @@ -7762,11 +7767,12 @@ note: Autogenerated example. Replace the id (vacuum) in the channel with your ow Group G_vacuum "Mi Robot Vacuum-Mop P" Number vacuumaction "Vacuum Action" (G_vacuum) {channel="miio:basic:vacuum:vacuumaction"} Number state "State" (G_vacuum) {channel="miio:basic:vacuum:state"} -Number mode "Mode" (G_vacuum) {channel="miio:basic:vacuum:mode"} +Number mode "Clean Mode" (G_vacuum) {channel="miio:basic:vacuum:mode"} Number err_state "Error" (G_vacuum) {channel="miio:basic:vacuum:err_state"} Number battery_life "Battery" (G_vacuum) {channel="miio:basic:vacuum:battery_life"} Number box_type "Box type" (G_vacuum) {channel="miio:basic:vacuum:box_type"} Number mop_type "mop_type" (G_vacuum) {channel="miio:basic:vacuum:mop_type"} +Number mop_route "Mop Route" (G_vacuum) {channel="miio:basic:vacuum:mop_route"} Number s_time "Clean time" (G_vacuum) {channel="miio:basic:vacuum:s_time"} Number s_area "Clean Area" (G_vacuum) {channel="miio:basic:vacuum:s_area"} Number suction_grade "suction_grade" (G_vacuum) {channel="miio:basic:vacuum:suction_grade"} diff --git a/bundles/org.openhab.binding.miio/src/main/resources/OH-INF/i18n/basic.properties b/bundles/org.openhab.binding.miio/src/main/resources/OH-INF/i18n/basic.properties index 124919afd..e5ae9d8e8 100644 --- a/bundles/org.openhab.binding.miio/src/main/resources/OH-INF/i18n/basic.properties +++ b/bundles/org.openhab.binding.miio/src/main/resources/OH-INF/i18n/basic.properties @@ -955,7 +955,8 @@ ch.viomi.vacuum.v8.err_state = Error ch.viomi.vacuum.v8.has_map = has_map ch.viomi.vacuum.v8.has_newmap = has_newmap ch.viomi.vacuum.v8.is_mop = is_mop -ch.viomi.vacuum.v8.mode = Mode +ch.viomi.vacuum.v8.mode = Clean Mode +ch.viomi.vacuum.v8.mop_route = Mop Route ch.viomi.vacuum.v8.mop_type = mop_type ch.viomi.vacuum.v8.remember_map = remember_map ch.viomi.vacuum.v8.s_area = Clean Area @@ -2074,6 +2075,65 @@ option.viomi.vacuum.v18-miot.water-grade-2 = 3 Blocks option.viomi.vacuum.v18-miot.wdr-mode-0 = Mode 0 option.viomi.vacuum.v18-miot.wdr-mode-1 = Mode 1 option.viomi.vacuum.v18-miot.wdr-mode-2 = Mode 2 +option.viomi.vacuum.v8.box_type-0 = No Bin +option.viomi.vacuum.v8.box_type-1 = Sweep +option.viomi.vacuum.v8.box_type-2 = Mop +option.viomi.vacuum.v8.box_type-3 = Sweep and Mop +option.viomi.vacuum.v8.err_state-0 = Sleeping and not charging +option.viomi.vacuum.v8.err_state-2101 = Unsufficient battery, continuing cleaning after recharge +option.viomi.vacuum.v8.err_state-2103 = Charging +option.viomi.vacuum.v8.err_state-2104 = Fully charged +option.viomi.vacuum.v8.err_state-500 = Radar timed out +option.viomi.vacuum.v8.err_state-501 = Wheels stuck +option.viomi.vacuum.v8.err_state-502 = Low battery +option.viomi.vacuum.v8.err_state-503 = Dust bin missing +option.viomi.vacuum.v8.err_state-508 = Uneven ground +option.viomi.vacuum.v8.err_state-509 = Cliff sensor erro +option.viomi.vacuum.v8.err_state-510 = Collision sensor error +option.viomi.vacuum.v8.err_state-511 = Could not return to dock +option.viomi.vacuum.v8.err_state-512 = Could not return to dock +option.viomi.vacuum.v8.err_state-513 = Could not navigate +option.viomi.vacuum.v8.err_state-514 = Vacuum stuck +option.viomi.vacuum.v8.err_state-515 = Charging erro +option.viomi.vacuum.v8.err_state-516 = Mop temperature error +option.viomi.vacuum.v8.err_state-521 = Water tank is not installed +option.viomi.vacuum.v8.err_state-522 = Mop is not installed +option.viomi.vacuum.v8.err_state-525 = Insufficient water in water tank +option.viomi.vacuum.v8.err_state-527 = Remove mop +option.viomi.vacuum.v8.err_state-528 = Dust bin missing +option.viomi.vacuum.v8.err_state-529 = Mop and water tank missing +option.viomi.vacuum.v8.err_state-530 = Mop and water tank missin +option.viomi.vacuum.v8.err_state-531 = Water tank is not installed +option.viomi.vacuum.v8.is_mop-0 = Vacuum +option.viomi.vacuum.v8.is_mop-1 = Vacuum And Mop +option.viomi.vacuum.v8.is_mop-2 = Mop +option.viomi.vacuum.v8.is_mop-3 = CleanZone +option.viomi.vacuum.v8.is_mop-4 = CleanSpot +option.viomi.vacuum.v8.mode-0 = Everywhere +option.viomi.vacuum.v8.mode-1 = Edges +option.viomi.vacuum.v8.mode-2 = Surface +option.viomi.vacuum.v8.mode-3 = Fixed Location +option.viomi.vacuum.v8.mop_route-0 = S-Pattern +option.viomi.vacuum.v8.mop_route-1 = Y-Pattern +option.viomi.vacuum.v8.state-0 = Idle Undocked +option.viomi.vacuum.v8.state-1 = Idle +option.viomi.vacuum.v8.state-2 = Paused +option.viomi.vacuum.v8.state-3 = Sweeping +option.viomi.vacuum.v8.state-4 = Go Charging +option.viomi.vacuum.v8.state-5 = Charging +option.viomi.vacuum.v8.state-6 = Sweeping and Mopping +option.viomi.vacuum.v8.state-7 = Mopping +option.viomi.vacuum.v8.suction_grade-0 = Silent +option.viomi.vacuum.v8.suction_grade-1 = Basic +option.viomi.vacuum.v8.suction_grade-2 = Medium +option.viomi.vacuum.v8.suction_grade-3 = Strong +option.viomi.vacuum.v8.vacuumaction-0 = Stop +option.viomi.vacuum.v8.vacuumaction-1 = Start +option.viomi.vacuum.v8.vacuumaction-2 = Pause +option.viomi.vacuum.v8.vacuumaction-3 = Dock +option.viomi.vacuum.v8.water_grade-11 = Low +option.viomi.vacuum.v8.water_grade-12 = Medium +option.viomi.vacuum.v8.water_grade-13 = High option.xiaomi.aircondition.ma1-miot.fan-level-0 = Auto option.xiaomi.aircondition.ma1-miot.fan-level-1 = Level1 option.xiaomi.aircondition.ma1-miot.fan-level-2 = Level2 diff --git a/bundles/org.openhab.binding.miio/src/main/resources/database/viomi.vacuum.v8.json b/bundles/org.openhab.binding.miio/src/main/resources/database/viomi.vacuum.v8.json index 1a7de8e57..3c101f9ff 100644 --- a/bundles/org.openhab.binding.miio/src/main/resources/database/viomi.vacuum.v8.json +++ b/bundles/org.openhab.binding.miio/src/main/resources/database/viomi.vacuum.v8.json @@ -24,6 +24,10 @@ { "value": "2", "label": "Pause" + }, + { + "value": "3", + "label": "Dock" } ] }, @@ -36,24 +40,110 @@ 0, "$value$", 0 - ] + ], + "condition": { + "name": "matchValue", + "parameters": [ + { + "matchValue": "0" + }, + { + "matchValue": "1" + }, + { + "matchValue": "2" + } + ] + } + }, + { + "command": "set_charge", + "parameterType": "NUMBER", + "condition": { + "name": "matchValue", + "parameters": [ + { + "matchValue": "3", + "returnValue": 1 + } + ] + } } ], - "readmeComment": "Value mapping `[\"1\"\u003d\"Start\",\"0\"\u003d\"Stop\",\"2\"\u003d\"Pause\"]`" + "readmeComment": "Value mapping `[\"1\"\u003d\"Start\",\"0\"\u003d\"Stop\",\"2\"\u003d\"Pause\",\"3\"\u003d\"Dock\"]`" }, { "property": "run_state", "friendlyName": "State", "channel": "state", "type": "Number", + "stateDescription": { + "readOnly": true, + "options": [ + { + "value": "0", + "label": "Idle Undocked" + }, + { + "value": "1", + "label": "Idle" + }, + { + "value": "2", + "label": "Paused" + }, + { + "value": "3", + "label": "Sweeping" + }, + { + "value": "4", + "label": "Go Charging" + }, + { + "value": "5", + "label": "Charging" + }, + { + "value": "6", + "label": "Sweeping and Mopping" + }, + { + "value": "7", + "label": "Mopping" + } + ] + }, "refresh": true, - "actions": [] + "actions": [], + "readmeComment": "Value mapping `[\"0\"\u003d\"Idle Undocked\",\"1\"\u003d\"Idle\",\"2\"\u003d\"Paused\",\"3\"\u003d\"Sweeping\",\"4\"\u003d\"Go Charging\",\"5\"\u003d\"Charging\",\"6\"\u003d\"Sweeping and Mopping\",\"7\"\u003d\"Mopping\"]`" }, { "property": "mode", - "friendlyName": "Mode", + "friendlyName": "Clean Mode", "channel": "mode", "type": "Number", + "stateDescription": { + "readOnly": true, + "options": [ + { + "value": "0", + "label": "Everywhere" + }, + { + "value": "1", + "label": "Edges" + }, + { + "value": "2", + "label": "Surface" + }, + { + "value": "3", + "label": "Fixed Location" + } + ] + }, "refresh": true, "actions": [ { @@ -63,15 +153,122 @@ ], "tags": [ "Control" - ] + ], + "readmeComment": "Value mapping `[\"0\"\u003d\"Everywhere\",\"1\"\u003d\"Edges\",\"2\"\u003d\"Surface\",\"3\"\u003d\"Fixed Location\"]`" }, { "property": "err_state", "friendlyName": "Error", "channel": "err_state", "type": "Number", + "stateDescription": { + "readOnly": true, + "options": [ + { + "value": "0", + "label": "Sleeping and not charging" + }, + { + "value": "500", + "label": "Radar timed out" + }, + { + "value": "501", + "label": "Wheels stuck" + }, + { + "value": "502", + "label": "Low battery" + }, + { + "value": "503", + "label": "Dust bin missing" + }, + { + "value": "508", + "label": "Uneven ground" + }, + { + "value": "509", + "label": "Cliff sensor erro" + }, + { + "value": "510", + "label": "Collision sensor error" + }, + { + "value": "511", + "label": "Could not return to dock" + }, + { + "value": "512", + "label": "Could not return to dock" + }, + { + "value": "513", + "label": "Could not navigate" + }, + { + "value": "514", + "label": "Vacuum stuck" + }, + { + "value": "515", + "label": "Charging erro" + }, + { + "value": "516", + "label": "Mop temperature error" + }, + { + "value": "521", + "label": "Water tank is not installed" + }, + { + "value": "522", + "label": "Mop is not installed" + }, + { + "value": "525", + "label": "Insufficient water in water tank" + }, + { + "value": "527", + "label": "Remove mop" + }, + { + "value": "528", + "label": "Dust bin missing" + }, + { + "value": "529", + "label": "Mop and water tank missing" + }, + { + "value": "530", + "label": "Mop and water tank missin" + }, + { + "value": "531", + "label": "Water tank is not installed" + }, + { + "value": "2101", + "label": "Unsufficient battery, continuing cleaning after recharge" + }, + { + "value": "2103", + "label": "Charging" + }, + { + "value": "2104", + "label": "Fully charged" + } + ] + }, "refresh": true, - "actions": [] + "actions": [], + "readmeComment": "Value mapping `[\"0\"\u003d\"Sleeping and not charging\",\"500\"\u003d\"Radar timed out\",\"501\"\u003d\"Wheels stuck\",\"502\"\u003d\"Low battery\",\"503\"\u003d\"Dust bin missing\",\"508\"\u003d\"Uneven ground\",\"509\"\u003d\"Cliff sensor erro\",\"510\"\u003d\"Collision sensor error\",\"511\"\u003d\"Could not return to dock\",\"512\"\u003d\"Could not return to dock\",\"513\"\u003d\"Could not navigate\",\"514\"\u003d\"Vacuum stuck\",\"515\"\u003d\"Charging erro\",\"516\"\u003d\"Mop temperature error\",\"521\"\u003d\"Water tank is not installed\",\"522\"\u003d\"Mop is not installed\",\"525\"\u003d\"Insufficient water in water tank\",\"527\"\u003d\"Remove mop\",\"528\"\u003d\"Dust bin missing\",\"529\"\u003d\"Mop and water tank missing\",\"530\"\u003d\"Mop and water tank missin\",\"531\"\u003d\"Water tank is not installed\",\"2101\"\u003d\"Unsufficient battery, continuing cleaning after recharge\",\"2103\"\u003d\"Charging\",\"2104\"\u003d\"Fully charged\"]`" }, { "property": "battary_life", @@ -86,25 +283,67 @@ "friendlyName": "Box type", "channel": "box_type", "type": "Number", + "stateDescription": { + "readOnly": true, + "options": [ + { + "value": "0", + "label": "No Bin" + }, + { + "value": "1", + "label": "Sweep" + }, + { + "value": "2", + "label": "Mop" + }, + { + "value": "3", + "label": "Sweep and Mop" + } + ] + }, "refresh": true, "actions": [ { "parameterType": "EMPTY" } - ] + ], + "readmeComment": "Value mapping `[\"0\"\u003d\"No Bin\",\"1\"\u003d\"Sweep\",\"2\"\u003d\"Mop\",\"3\"\u003d\"Sweep and Mop\"]`" }, { "property": "mop_type", "friendlyName": "mop_type", "channel": "mop_type", "type": "Number", + "actions": [] + }, + { + "property": "mop_route", + "friendlyName": "Mop Route", + "channel": "mop_route", + "type": "Number", + "stateDescription": { + "options": [ + { + "value": "0", + "label": "S-Pattern" + }, + { + "value": "1", + "label": "Y-Pattern" + } + ] + }, "refresh": true, "actions": [ { - "command": "set_mode", + "command": "set_moproute", "parameterType": "NUMBER" } - ] + ], + "readmeComment": "Value mapping `[\"0\"\u003d\"S-Pattern\",\"1\"\u003d\"Y-Pattern\"]`" }, { "property": "s_time", @@ -137,26 +376,64 @@ "friendlyName": "suction_grade", "channel": "suction_grade", "type": "Number", + "stateDescription": { + "options": [ + { + "value": "0", + "label": "Silent" + }, + { + "value": "1", + "label": "Basic" + }, + { + "value": "2", + "label": "Medium" + }, + { + "value": "3", + "label": "Strong" + } + ] + }, "refresh": true, "actions": [ { "command": "set_suction", "parameterType": "NUMBER" } - ] + ], + "readmeComment": "Value mapping `[\"0\"\u003d\"Silent\",\"1\"\u003d\"Basic\",\"2\"\u003d\"Medium\",\"3\"\u003d\"Strong\"]`" }, { "property": "water_grade", "friendlyName": "water_grade", "channel": "water_grade", "type": "Number", + "stateDescription": { + "options": [ + { + "value": "11", + "label": "Low" + }, + { + "value": "12", + "label": "Medium" + }, + { + "value": "13", + "label": "High" + } + ] + }, "refresh": true, "actions": [ { "command": "set_suction", "parameterType": "NUMBER" } - ] + ], + "readmeComment": "Value mapping `[\"11\"\u003d\"Low\",\"12\"\u003d\"Medium\",\"13\"\u003d\"High\"]`" }, { "property": "remember_map", @@ -179,8 +456,33 @@ "friendlyName": "is_mop", "channel": "is_mop", "type": "Number", + "stateDescription": { + "options": [ + { + "value": "0", + "label": "Vacuum" + }, + { + "value": "1", + "label": "Vacuum And Mop" + }, + { + "value": "2", + "label": "Mop" + }, + { + "value": "3", + "label": "CleanZone" + }, + { + "value": "4", + "label": "CleanSpot" + } + ] + }, "refresh": true, - "actions": [] + "actions": [], + "readmeComment": "Value mapping `[\"0\"\u003d\"Vacuum\",\"1\"\u003d\"Vacuum And Mop\",\"2\"\u003d\"Mop\",\"3\"\u003d\"CleanZone\",\"4\"\u003d\"CleanSpot\"]`" }, { "property": "has_newmap",