]> git.basschouten.com Git - openhab-addons.git/commitdiff
[miio] improve dreame vacuum support (#9272)
authorMarcel <marcel@verpaalen.com>
Mon, 7 Dec 2020 22:58:22 +0000 (14:58 -0800)
committerGitHub <noreply@github.com>
Mon, 7 Dec 2020 22:58:22 +0000 (14:58 -0800)
Signed-off-by: Marcel Verpaalen <marcel@verpaalen.com>
bundles/org.openhab.binding.miio/README.md
bundles/org.openhab.binding.miio/src/main/resources/database/dreame.vacuum.mc1808-miot.json

index 60e346d7f096b9e2cd297cdb8bc1d9afe758d770..8d7d877d6d677a200fb4ca2f99fe09e2e3ca56f1 100644 (file)
@@ -124,7 +124,7 @@ Currently the miio binding supports more than 210 different models.
 | Yeelight Smart Bath Heater   | miio:unsupported | yeelight.bhf_light.v2  | No        |            |
 | Gosund Plug                  | miio:basic       | [cuco.plug.cp1](#cuco-plug-cp1) | Yes       |            |
 | XIAOMI MIJIA WIDETECH WDH318EFW1 Dehumidifier | miio:unsupported | nwt.derh.wdh318efw1    | No        |            |
-| Vacuum 1C STYTJ01ZHM         | miio:basic       | [dreame.vacuum.mc1808](#dreame-vacuum-mc1808) | Yes       |            |
+| Vacuum 1C STYTJ01ZHM         | miio:basic       | [dreame.vacuum.mc1808](#dreame-vacuum-mc1808) | Yes       | Identified manual actions for execution<br />`action{"did":"battery-start-charge","siid":2,"aiid":1,"in":[]}`<br />`action{"did":"vacuum-start-sweep","siid":3,"aiid":1,"in":[]}`<br />`action{"did":"vacuum-stop-sweeping","siid":3,"aiid":2,"in":[]}`<br />`action{"did":"brush-cleaner-reset-brush-life","siid":26,"aiid":1,"in":[]}`<br />`action{"did":"filter-reset-filter-life","siid":27,"aiid":1,"in":[]}`<br />`action{"did":"brush-cleaner-reset-brush-life","siid":28,"aiid":1,"in":[]}`<br />`action{"did":"clean-start-clean","siid":18,"aiid":1,"in":[]}`<br />`action{"did":"clean-stop-clean","siid":18,"aiid":2,"in":[]}`<br />`action{"did":"remote-start-remote","siid":21,"aiid":1,"in":[1.0, 2.0]}`<br />`action{"did":"remote-stop-remote","siid":21,"aiid":2,"in":[]}`<br />`action{"did":"remote-exit-remote","siid":21,"aiid":3,"in":[]}`<br />`action{"did":"map-map-req","siid":23,"aiid":1,"in":[2.0]}`<br />`action{"did":"audio-position","siid":24,"aiid":1,"in":[]}`<br />`action{"did":"audio-set-voice","siid":24,"aiid":2,"in":[]}`<br />`action{"did":"audio-play-sound","siid":24,"aiid":3,"in":[]}`<br />Please test and feedback if they are working to they can be linked to a channel.<br />Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses |
 | dreame.vacuum.p2008          | miio:basic       | [dreame.vacuum.p2008](#dreame-vacuum-p2008) | Yes       | Identified manual actions for execution<br />`action{"did":"vacuum-start-sweep","siid":2,"aiid":1,"in":[]}`<br />`action{"did":"vacuum-stop-sweeping","siid":2,"aiid":2,"in":[]}`<br />`action{"did":"battery-start-charge","siid":3,"aiid":1,"in":[]}`<br />`action{"did":"brush-cleaner-reset-brush-life","siid":9,"aiid":1,"in":[]}`<br />`action{"did":"brush-cleaner-reset-brush-life","siid":10,"aiid":1,"in":[]}`<br />`action{"did":"filter-reset-filter-life","siid":11,"aiid":1,"in":[]}`<br />`action{"did":"vacuum-extend-start-clean","siid":4,"aiid":1,"in":[10.0]}`<br />`action{"did":"vacuum-extend-stop-clean","siid":4,"aiid":2,"in":[]}`<br />`action{"did":"map-map-req","siid":6,"aiid":1,"in":[2.0]}`<br />`action{"did":"map-update-map","siid":6,"aiid":2,"in":[4.0]}`<br />`action{"did":"audio-position","siid":7,"aiid":1,"in":[]}`<br />`action{"did":"audio-play-sound","siid":7,"aiid":2,"in":[]}`<br />`action{"did":"time-delete-timer","siid":8,"aiid":1,"in":[3.0]}`<br />Please test and feedback if they are working to they can be linked to a channel.<br />Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses |
 | Mi Air Purifier mb1          | miio:basic       | [zhimi.airpurifier.mb1](#zhimi-airpurifier-mb1) | Yes       |            |
 | Mi Air Purifier 2S           | miio:basic       | [zhimi.airpurifier.mc1](#zhimi-airpurifier-mc1) | Yes       |            |
@@ -977,35 +977,35 @@ e.g. `smarthome:send actionCommand 'upd_timer["1498595904821", "on"]'` would ena
 |------------------|---------|-------------------------------------|------------|
 | vacuumaction     | String  | Vacuum Action                       |            |
 | BatteryLevel     | Number  | Battery-Battery Level               |            |
-| ChargingState    | Number  | Battery-Charging State              |            |
-| Fault            | Number  | Robot Cleaner-Device Fault          |            |
-| Status           | Number  | Robot Cleaner-Status                |            |
-| BrushLeftTime    | String  | Main Cleaning Brush-Brush Left Time |            |
+| ChargingState    | Number  | Battery-Charging State              | Value mapping [1="Charging",2="Not Charging",4="Charging",5="Go Charging"] |
+| Fault            | Number  | Robot Cleaner-Device Fault          | Value mapping [0="No faults"] |
+| Status           | Number  | Robot Cleaner-Status                | Value mapping [1="Sweeping",2="Idle",3="Paused",4="Error",5="Go Charging",6="Charging"] |
+| BrushLeftTime    | Number:Time | Main Cleaning Brush-Brush Left Time |            |
 | BrushLifeLevel   | Number  | Main Cleaning Brush-Brush Life Level |            |
-| FilterLifeLevel  | Number  | Filter-Filter Life Level            |            |
-| FilterLeftTime   | String  | Filter-Filter Left Time             |            |
-| BrushLeftTime1   | String  | Side Cleaning Brush-Brush Left Time |            |
+| FilterLifeLevel  | Number  | Filter - Filter Life Level          |            |
+| FilterLeftTime   | Number:Time | Filter-Filter Left Time             |            |
+| BrushLeftTime1   | Number:Time | Side Cleaning Brush-Brush Left Time |            |
 | BrushLifeLevel1  | Number  | Side Cleaning Brush-Brush Life Level |            |
 | WorkMode         | Number  | clean-workmode                      |            |
 | Area             | String  | clean-area                          |            |
 | Timer            | String  | clean-timer                         |            |
-| Mode             | Number  | clean-mode                          |            |
-| TotalCleanTime   | String  | clean-total time                    |            |
-| TotalCleanTimes  | String  | clean-total times                   |            |
-| TotalCleanArea   | String  | clean-Total area                    |            |
-| CleanLogStartTime | String  | clean-Start Time                    |            |
-| ButtonLed        | String  | clean-led                           |            |
-| TaskDone         | Number  | clean-task done                     |            |
-| LifeSieve        | String  | consumable-life-sieve               |            |
-| LifeBrushSide    | String  | consumable-life-brush-side          |            |
-| LifeBrushMain    | String  | consumable-life-brush-main          |            |
-| Enable           | Switch  | annoy-enable                        |            |
-| StartTime        | String  | annoy-start-time                    |            |
-| StopTime         | String  | annoy-stop-time                     |            |
-| MapView          | String  | map-map-view                        |            |
-| Volume           | Number  | audio-volume                        |            |
-| VoicePackets     | String  | audio-voiceId                       |            |
-| TimeZone         | String  | timezone                            |            |
+| Mode             | Number  | clean-mode                          | Value mapping [0="quiet",1="standard",2="medium",3="strong"] |
+| TotalCleanTime   | Number:Time | Clean - Total Clean Time            |            |
+| TotalCleanTimes  | Number  | Clean - Total Clean Times           |            |
+| TotalCleanArea   | Number:Area | Clean - Total Clean Area            |            |
+| CleanLogStartTime | Number  | Clean - Clean Log Start Time        |            |
+| ButtonLed        | Number  | Clean - Button Led                  |            |
+| TaskDone         | Number  | Clean - Task Done                   | Value mapping [0="",1=""] |
+| LifeSieve        | String  | Consumable - Life Sieve             |            |
+| LifeBrushSide    | String  | Consumable - Life Brush Side        |            |
+| LifeBrushMain    | String  | Consumable - Life Brush Main        |            |
+| Enable           | Switch  | Annoy - Enable                      |            |
+| StartTime        | String  | Annoy - Start Time                  |            |
+| StopTime         | String  | Annoy - Stop Time                   |            |
+| MapView          | String  | Map - Map View                      |            |
+| Volume           | Number  | Audio - Volume                      |            |
+| VoicePackets     | String  | Audio - Voice Packets               |            |
+| TimeZone         | String  | Time - Time Zone                    |            |
 
 ### dreame.vacuum.p2008 (<a name="dreame-vacuum-p2008">dreame.vacuum.p2008</a>) Channels
 
@@ -4005,32 +4005,32 @@ Number BatteryLevel "Battery-Battery Level" (G_vacuum) {channel="miio:basic:vacu
 Number ChargingState "Battery-Charging State" (G_vacuum) {channel="miio:basic:vacuum:ChargingState"}
 Number Fault "Robot Cleaner-Device Fault" (G_vacuum) {channel="miio:basic:vacuum:Fault"}
 Number Status "Robot Cleaner-Status" (G_vacuum) {channel="miio:basic:vacuum:Status"}
-String BrushLeftTime "Main Cleaning Brush-Brush Left Time" (G_vacuum) {channel="miio:basic:vacuum:BrushLeftTime"}
+Number:Time BrushLeftTime "Main Cleaning Brush-Brush Left Time" (G_vacuum) {channel="miio:basic:vacuum:BrushLeftTime"}
 Number BrushLifeLevel "Main Cleaning Brush-Brush Life Level" (G_vacuum) {channel="miio:basic:vacuum:BrushLifeLevel"}
-Number FilterLifeLevel "Filter-Filter Life Level" (G_vacuum) {channel="miio:basic:vacuum:FilterLifeLevel"}
-String FilterLeftTime "Filter-Filter Left Time" (G_vacuum) {channel="miio:basic:vacuum:FilterLeftTime"}
-String BrushLeftTime1 "Side Cleaning Brush-Brush Left Time" (G_vacuum) {channel="miio:basic:vacuum:BrushLeftTime1"}
+Number FilterLifeLevel "Filter - Filter Life Level" (G_vacuum) {channel="miio:basic:vacuum:FilterLifeLevel"}
+Number:Time FilterLeftTime "Filter-Filter Left Time" (G_vacuum) {channel="miio:basic:vacuum:FilterLeftTime"}
+Number:Time BrushLeftTime1 "Side Cleaning Brush-Brush Left Time" (G_vacuum) {channel="miio:basic:vacuum:BrushLeftTime1"}
 Number BrushLifeLevel1 "Side Cleaning Brush-Brush Life Level" (G_vacuum) {channel="miio:basic:vacuum:BrushLifeLevel1"}
 Number WorkMode "clean-workmode" (G_vacuum) {channel="miio:basic:vacuum:WorkMode"}
 String Area "clean-area" (G_vacuum) {channel="miio:basic:vacuum:Area"}
 String Timer "clean-timer" (G_vacuum) {channel="miio:basic:vacuum:Timer"}
 Number Mode "clean-mode" (G_vacuum) {channel="miio:basic:vacuum:Mode"}
-String TotalCleanTime "clean-total time" (G_vacuum) {channel="miio:basic:vacuum:TotalCleanTime"}
-String TotalCleanTimes "clean-total times" (G_vacuum) {channel="miio:basic:vacuum:TotalCleanTimes"}
-String TotalCleanArea "clean-Total area" (G_vacuum) {channel="miio:basic:vacuum:TotalCleanArea"}
-String CleanLogStartTime "clean-Start Time" (G_vacuum) {channel="miio:basic:vacuum:CleanLogStartTime"}
-String ButtonLed "clean-led" (G_vacuum) {channel="miio:basic:vacuum:ButtonLed"}
-Number TaskDone "clean-task done" (G_vacuum) {channel="miio:basic:vacuum:TaskDone"}
-String LifeSieve "consumable-life-sieve" (G_vacuum) {channel="miio:basic:vacuum:LifeSieve"}
-String LifeBrushSide "consumable-life-brush-side" (G_vacuum) {channel="miio:basic:vacuum:LifeBrushSide"}
-String LifeBrushMain "consumable-life-brush-main" (G_vacuum) {channel="miio:basic:vacuum:LifeBrushMain"}
-Switch Enable "annoy-enable" (G_vacuum) {channel="miio:basic:vacuum:Enable"}
-String StartTime "annoy-start-time" (G_vacuum) {channel="miio:basic:vacuum:StartTime"}
-String StopTime "annoy-stop-time" (G_vacuum) {channel="miio:basic:vacuum:StopTime"}
-String MapView "map-map-view" (G_vacuum) {channel="miio:basic:vacuum:MapView"}
-Number Volume "audio-volume" (G_vacuum) {channel="miio:basic:vacuum:Volume"}
-String VoicePackets "audio-voiceId" (G_vacuum) {channel="miio:basic:vacuum:VoicePackets"}
-String TimeZone "timezone" (G_vacuum) {channel="miio:basic:vacuum:TimeZone"}
+Number:Time TotalCleanTime "Clean - Total Clean Time" (G_vacuum) {channel="miio:basic:vacuum:TotalCleanTime"}
+Number TotalCleanTimes "Clean - Total Clean Times" (G_vacuum) {channel="miio:basic:vacuum:TotalCleanTimes"}
+Number:Area TotalCleanArea "Clean - Total Clean Area" (G_vacuum) {channel="miio:basic:vacuum:TotalCleanArea"}
+Number CleanLogStartTime "Clean - Clean Log Start Time" (G_vacuum) {channel="miio:basic:vacuum:CleanLogStartTime"}
+Number ButtonLed "Clean - Button Led" (G_vacuum) {channel="miio:basic:vacuum:ButtonLed"}
+Number TaskDone "Clean - Task Done" (G_vacuum) {channel="miio:basic:vacuum:TaskDone"}
+String LifeSieve "Consumable - Life Sieve" (G_vacuum) {channel="miio:basic:vacuum:LifeSieve"}
+String LifeBrushSide "Consumable - Life Brush Side" (G_vacuum) {channel="miio:basic:vacuum:LifeBrushSide"}
+String LifeBrushMain "Consumable - Life Brush Main" (G_vacuum) {channel="miio:basic:vacuum:LifeBrushMain"}
+Switch Enable "Annoy - Enable" (G_vacuum) {channel="miio:basic:vacuum:Enable"}
+String StartTime "Annoy - Start Time" (G_vacuum) {channel="miio:basic:vacuum:StartTime"}
+String StopTime "Annoy - Stop Time" (G_vacuum) {channel="miio:basic:vacuum:StopTime"}
+String MapView "Map - Map View" (G_vacuum) {channel="miio:basic:vacuum:MapView"}
+Number Volume "Audio - Volume" (G_vacuum) {channel="miio:basic:vacuum:Volume"}
+String VoicePackets "Audio - Voice Packets" (G_vacuum) {channel="miio:basic:vacuum:VoicePackets"}
+String TimeZone "Time - Time Zone" (G_vacuum) {channel="miio:basic:vacuum:TimeZone"}
 ```
 
 ### dreame.vacuum.p2008 (dreame.vacuum.p2008) item file lines
index b7bc045ff00f64478eb4dee14573b0d638cdd99b..6340897b1ec50dee8b07997bf5b2a05d7b48d9f8 100644 (file)
                                "channel": "vacuumaction",
                                "channelType": "dreameControl",
                                "type": "String",
+                               "stateDescription": {
+                                       "readOnly": true,
+                                       "options": [
+                                               {
+                                                       "value": "vacuum",
+                                                       "label": "Vacuum"
+                                               },
+                                               {
+                                                       "value": "stop",
+                                                       "label": "Stop"
+                                               },
+                                               {
+                                                       "value": "sweep",
+                                                       "label": "Sweep"
+                                               },
+                                               {
+                                                       "value": "stopsweep",
+                                                       "label": "Stop Sweep"
+                                               },
+                                               {
+                                                       "value": "dock",
+                                                       "label": "Goto Dock"
+                                               }
+                                       ]
+                               },
                                "refresh": false,
                                "actions": [
                                        {
                                "piid": 1,
                                "friendlyName": "Battery-Battery Level",
                                "channel": "BatteryLevel",
-                               "channelType": "miot_uint8",
                                "type": "Number",
+                               "channelType": "system:battery-level",
                                "refresh": true,
                                "actions": []
                        },
                                "piid": 2,
                                "friendlyName": "Battery-Charging State",
                                "channel": "ChargingState",
-                               "channelType": "miot_uint8",
                                "type": "Number",
+                               "stateDescription": {
+                                       "readOnly": true,
+                                       "options": [
+                                               {
+                                                       "value": "1",
+                                                       "label": "Charging"
+                                               },
+                                               {
+                                                       "value": "2",
+                                                       "label": "Not Charging"
+                                               },
+                                               {
+                                                       "value": "4",
+                                                       "label": "Charging"
+                                               },
+                                               {
+                                                       "value": "5",
+                                                       "label": "Go Charging"
+                                               }
+                                       ]
+                               },
                                "refresh": true,
-                               "actions": []
+                               "actions": [],
+                               "readmeComment": "Value mapping [1\u003d\"Charging\",2\u003d\"Not Charging\",4\u003d\"Charging\",5\u003d\"Go Charging\"]"
                        },
                        {
                                "property": "fault",
                                "piid": 1,
                                "friendlyName": "Robot Cleaner-Device Fault",
                                "channel": "Fault",
-                               "channelType": "miot_uint8",
                                "type": "Number",
+                               "stateDescription": {
+                                       "readOnly": true,
+                                       "options": [
+                                               {
+                                                       "value": "0",
+                                                       "label": "No faults"
+                                               }
+                                       ]
+                               },
                                "refresh": true,
-                               "actions": []
+                               "actions": [],
+                               "readmeComment": "Value mapping [0\u003d\"No faults\"]"
                        },
                        {
                                "property": "status",
                                "piid": 2,
                                "friendlyName": "Robot Cleaner-Status",
                                "channel": "Status",
-                               "channelType": "miot_int8",
                                "type": "Number",
+                               "stateDescription": {
+                                       "readOnly": true,
+                                       "options": [
+                                               {
+                                                       "value": "1",
+                                                       "label": "Sweeping"
+                                               },
+                                               {
+                                                       "value": "2",
+                                                       "label": "Idle"
+                                               },
+                                               {
+                                                       "value": "3",
+                                                       "label": "Paused"
+                                               },
+                                               {
+                                                       "value": "4",
+                                                       "label": "Error"
+                                               },
+                                               {
+                                                       "value": "5",
+                                                       "label": "Go Charging"
+                                               },
+                                               {
+                                                       "value": "6",
+                                                       "label": "Charging"
+                                               }
+                                       ]
+                               },
                                "refresh": true,
-                               "actions": []
+                               "actions": [],
+                               "readmeComment": "Value mapping [1\u003d\"Sweeping\",2\u003d\"Idle\",3\u003d\"Paused\",4\u003d\"Error\",5\u003d\"Go Charging\",6\u003d\"Charging\"]"
                        },
                        {
                                "property": "brush-left-time",
                                "piid": 1,
                                "friendlyName": "Main Cleaning Brush-Brush Left Time",
                                "channel": "BrushLeftTime",
-                               "channelType": "miot_uint16",
-                               "type": "String",
+                               "type": "Number:Time",
+                               "unit": "hour",
+                               "stateDescription": {
+                                       "pattern": "%.1f %unit%",
+                                       "readOnly": true
+                               },
                                "refresh": true,
                                "actions": []
                        },
                                "piid": 2,
                                "friendlyName": "Main Cleaning Brush-Brush Life Level",
                                "channel": "BrushLifeLevel",
-                               "channelType": "miot_uint8",
                                "type": "Number",
+                               "stateDescription": {
+                                       "pattern": "%.0f",
+                                       "readOnly": true
+                               },
                                "refresh": true,
                                "actions": []
                        },
                                "property": "filter-life-level",
                                "siid": 27,
                                "piid": 1,
-                               "friendlyName": "Filter-Filter Life Level",
+                               "friendlyName": "Filter - Filter Life Level",
                                "channel": "FilterLifeLevel",
-                               "channelType": "miot_uint8",
                                "type": "Number",
+                               "stateDescription": {
+                                       "pattern": "%.0f",
+                                       "readOnly": true
+                               },
                                "refresh": true,
                                "actions": []
                        },
                                "piid": 2,
                                "friendlyName": "Filter-Filter Left Time",
                                "channel": "FilterLeftTime",
-                               "channelType": "miot_uint16",
-                               "type": "String",
+                               "type": "Number:Time",
+                               "unit": "hour",
+                               "stateDescription": {
+                                       "pattern": "%.1f %unit%",
+                                       "readOnly": true
+                               },
                                "refresh": true,
                                "actions": []
                        },
                                "piid": 1,
                                "friendlyName": "Side Cleaning Brush-Brush Left Time",
                                "channel": "BrushLeftTime1",
-                               "channelType": "miot_uint16",
-                               "type": "String",
+                               "type": "Number:Time",
+                               "unit": "hour",
+                               "stateDescription": {
+                                       "pattern": "%.1f %unit%",
+                                       "readOnly": true
+                               },
                                "refresh": true,
                                "actions": []
                        },
                                "piid": 2,
                                "friendlyName": "Side Cleaning Brush-Brush Life Level",
                                "channel": "BrushLifeLevel1",
-                               "channelType": "miot_uint8",
                                "type": "Number",
+                               "stateDescription": {
+                                       "pattern": "%.0f",
+                                       "readOnly": true
+                               },
                                "refresh": true,
                                "actions": []
                        },
                                "piid": 1,
                                "friendlyName": "clean-workmode",
                                "channel": "WorkMode",
-                               "channelType": "miot_int32",
                                "type": "Number",
+                               "stateDescription": {
+                                       "pattern": "%.1f",
+                                       "readOnly": true
+                               },
                                "refresh": true,
                                "actions": []
                        },
                                "piid": 4,
                                "friendlyName": "clean-area",
                                "channel": "Area",
-                               "channelType": "miot_string",
                                "type": "String",
                                "refresh": true,
                                "actions": [
                                "piid": 6,
                                "friendlyName": "clean-mode",
                                "channel": "Mode",
-                               "channelType": "miot_int32",
                                "type": "Number",
+                               "stateDescription": {
+                                       "options": [
+                                               {
+                                                       "value": "0",
+                                                       "label": "quiet"
+                                               },
+                                               {
+                                                       "value": "1",
+                                                       "label": "standard"
+                                               },
+                                               {
+                                                       "value": "2",
+                                                       "label": "medium"
+                                               },
+                                               {
+                                                       "value": "3",
+                                                       "label": "strong"
+                                               }
+                                       ]
+                               },
                                "refresh": true,
                                "actions": [
                                        {
                                                "command": "set_properties",
                                                "parameterType": "NUMBER"
                                        }
-                               ]
+                               ],
+                               "readmeComment": "Value mapping [0\u003d\"quiet\",1\u003d\"standard\",2\u003d\"medium\",3\u003d\"strong\"]"
                        },
                        {
                                "property": "total-clean-time",
                                "siid": 18,
                                "piid": 13,
-                               "friendlyName": "clean-total time",
+                               "friendlyName": "Clean - Total Clean Time",
                                "channel": "TotalCleanTime",
-                               "channelType": "miot_uint32",
-                               "type": "String",
+                               "type": "Number:Time",
+                               "unit": "minutes",
+                               "stateDescription": {
+                                       "pattern": "%.1f %unit%",
+                                       "readOnly": true
+                               },
                                "refresh": true,
                                "actions": []
                        },
                                "property": "total-clean-times",
                                "siid": 18,
                                "piid": 14,
-                               "friendlyName": "clean-total times",
+                               "friendlyName": "Clean - Total Clean Times",
                                "channel": "TotalCleanTimes",
-                               "channelType": "miot_uint32",
-                               "type": "String",
+                               "type": "Number",
+                               "stateDescription": {
+                                       "pattern": "%.0f",
+                                       "readOnly": true
+                               },
                                "refresh": true,
                                "actions": []
                        },
                                "property": "total-clean-area",
                                "siid": 18,
                                "piid": 15,
-                               "friendlyName": "clean-Total area",
+                               "friendlyName": "Clean - Total Clean Area",
                                "channel": "TotalCleanArea",
-                               "channelType": "miot_uint32",
-                               "type": "String",
+                               "type": "Number:Area",
+                               "unit": "square_meter",
+                               "stateDescription": {
+                                       "pattern": "%.1f",
+                                       "readOnly": true
+                               },
                                "refresh": true,
                                "actions": []
                        },
                                "property": "clean-log-start-time",
                                "siid": 18,
                                "piid": 16,
-                               "friendlyName": "clean-Start Time",
+                               "friendlyName": "Clean - Clean Log Start Time",
                                "channel": "CleanLogStartTime",
-                               "channelType": "miot_uint32",
-                               "type": "String",
+                               "type": "Number",
+                               "stateDescription": {
+                                       "pattern": "%.1f",
+                                       "readOnly": true
+                               },
                                "refresh": true,
                                "actions": []
                        },
                                "property": "button-led",
                                "siid": 18,
                                "piid": 17,
-                               "friendlyName": "clean-led",
+                               "friendlyName": "Clean - Button Led",
                                "channel": "ButtonLed",
-                               "channelType": "miot_uint16",
-                               "type": "String",
+                               "type": "Number",
+                               "stateDescription": {
+                                       "pattern": "%.0f",
+                                       "readOnly": true
+                               },
                                "refresh": true,
                                "actions": []
                        },
                                "property": "task-done",
                                "siid": 18,
                                "piid": 18,
-                               "friendlyName": "clean-task done",
+                               "friendlyName": "Clean - Task Done",
                                "channel": "TaskDone",
-                               "channelType": "miot_uint8",
                                "type": "Number",
+                               "stateDescription": {
+                                       "readOnly": true,
+                                       "options": [
+                                               {
+                                                       "value": "0",
+                                                       "label": "in progress"
+                                               },
+                                               {
+                                                       "value": "1",
+                                                       "label": "done"
+                                               }
+                                       ]
+                               },
                                "refresh": true,
-                               "actions": []
+                               "actions": [],
+                               "readmeComment": "Value mapping [0\u003d\"\",1\u003d\"\"]"
                        },
                        {
                                "property": "life-sieve",
                                "siid": 19,
                                "piid": 1,
-                               "friendlyName": "consumable-life-sieve",
+                               "friendlyName": "Consumable - Life Sieve",
                                "channel": "LifeSieve",
                                "channelType": "miot_string",
                                "type": "String",
                                "property": "life-brush-side",
                                "siid": 19,
                                "piid": 2,
-                               "friendlyName": "consumable-life-brush-side",
+                               "friendlyName": "Consumable - Life Brush Side",
                                "channel": "LifeBrushSide",
-                               "channelType": "miot_string",
                                "type": "String",
                                "refresh": true,
                                "actions": [
                                "property": "life-brush-main",
                                "siid": 19,
                                "piid": 3,
-                               "friendlyName": "consumable-life-brush-main",
+                               "friendlyName": "Consumable - Life Brush Main",
                                "channel": "LifeBrushMain",
-                               "channelType": "miot_string",
                                "type": "String",
                                "refresh": true,
                                "actions": [
                                "property": "enable",
                                "siid": 20,
                                "piid": 1,
-                               "friendlyName": "annoy-enable",
+                               "friendlyName": "Annoy - Enable",
                                "channel": "Enable",
-                               "channelType": "miot_bool",
                                "type": "Switch",
                                "refresh": true,
                                "actions": [
                                "property": "start-time",
                                "siid": 20,
                                "piid": 2,
-                               "friendlyName": "annoy-start-time",
+                               "friendlyName": "Annoy - Start Time",
                                "channel": "StartTime",
-                               "channelType": "miot_string",
                                "type": "String",
                                "refresh": true,
                                "actions": [
                                "property": "stop-time",
                                "siid": 20,
                                "piid": 3,
-                               "friendlyName": "annoy-stop-time",
+                               "friendlyName": "Annoy - Stop Time",
                                "channel": "StopTime",
-                               "channelType": "miot_string",
                                "type": "String",
                                "refresh": true,
                                "actions": [
                                "property": "map-view",
                                "siid": 23,
                                "piid": 1,
-                               "friendlyName": "map-map-view",
+                               "friendlyName": "Map - Map View",
                                "channel": "MapView",
-                               "channelType": "miot_string",
                                "type": "String",
+                               "stateDescription": {
+                                       "readOnly": true
+                               },
                                "refresh": true,
                                "actions": []
                        },
                                "property": "volume",
                                "siid": 24,
                                "piid": 1,
-                               "friendlyName": "audio-volume",
+                               "friendlyName": "Audio - Volume",
                                "channel": "Volume",
-                               "channelType": "miot_int32",
                                "type": "Number",
+                               "stateDescription": {
+                                       "pattern": "%.1f"
+                               },
                                "refresh": true,
                                "actions": [
                                        {
                                "property": "voice-packets",
                                "siid": 24,
                                "piid": 3,
-                               "friendlyName": "audio-voiceId",
+                               "friendlyName": "Audio - Voice Packets",
                                "channel": "VoicePackets",
-                               "channelType": "miot_string",
                                "type": "String",
                                "refresh": true,
                                "actions": [
                                "property": "time-zone",
                                "siid": 25,
                                "piid": 1,
-                               "friendlyName": "timezone",
+                               "friendlyName": "Time - Time Zone",
                                "channel": "TimeZone",
-                               "channelType": "miot_string",
                                "type": "String",
+                               "stateDescription": {
+                                       "readOnly": true
+                               },
                                "refresh": true,
                                "actions": []
                        }
-               ]
+               ],
+               "readmeComment": "Identified manual actions for execution\u003cbr /\u003e`action{\"did\":\"battery-start-charge\",\"siid\":2,\"aiid\":1,\"in\":[]}`\u003cbr /\u003e`action{\"did\":\"vacuum-start-sweep\",\"siid\":3,\"aiid\":1,\"in\":[]}`\u003cbr /\u003e`action{\"did\":\"vacuum-stop-sweeping\",\"siid\":3,\"aiid\":2,\"in\":[]}`\u003cbr /\u003e`action{\"did\":\"brush-cleaner-reset-brush-life\",\"siid\":26,\"aiid\":1,\"in\":[]}`\u003cbr /\u003e`action{\"did\":\"filter-reset-filter-life\",\"siid\":27,\"aiid\":1,\"in\":[]}`\u003cbr /\u003e`action{\"did\":\"brush-cleaner-reset-brush-life\",\"siid\":28,\"aiid\":1,\"in\":[]}`\u003cbr /\u003e`action{\"did\":\"clean-start-clean\",\"siid\":18,\"aiid\":1,\"in\":[]}`\u003cbr /\u003e`action{\"did\":\"clean-stop-clean\",\"siid\":18,\"aiid\":2,\"in\":[]}`\u003cbr /\u003e`action{\"did\":\"remote-start-remote\",\"siid\":21,\"aiid\":1,\"in\":[1.0, 2.0]}`\u003cbr /\u003e`action{\"did\":\"remote-stop-remote\",\"siid\":21,\"aiid\":2,\"in\":[]}`\u003cbr /\u003e`action{\"did\":\"remote-exit-remote\",\"siid\":21,\"aiid\":3,\"in\":[]}`\u003cbr /\u003e`action{\"did\":\"map-map-req\",\"siid\":23,\"aiid\":1,\"in\":[2.0]}`\u003cbr /\u003e`action{\"did\":\"audio-position\",\"siid\":24,\"aiid\":1,\"in\":[]}`\u003cbr /\u003e`action{\"did\":\"audio-set-voice\",\"siid\":24,\"aiid\":2,\"in\":[]}`\u003cbr /\u003e`action{\"did\":\"audio-play-sound\",\"siid\":24,\"aiid\":3,\"in\":[]}`\u003cbr /\u003ePlease test and feedback if they are working to they can be linked to a channel.",
+               "experimental": true
        }
 }