diff --git a/bundles/org.openhab.binding.miio/README.md b/bundles/org.openhab.binding.miio/README.md
index d7f875f9ed390..eb420223503a0 100644
--- a/bundles/org.openhab.binding.miio/README.md
+++ b/bundles/org.openhab.binding.miio/README.md
@@ -176,7 +176,7 @@ This will change the communication method and the Mi IO binding can communicate
# Mi IO Devices
-Currently the miio binding supports more than 300 different models.
+Currently the miio binding supports more than 310 different models.
| Device | ThingType | Device Model | Supported | Remark |
|------------------------------|------------------|------------------------|-----------|------------|
@@ -221,10 +221,13 @@ Currently the miio binding supports more than 300 different models.
| 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 so they can be linked to a channel. |
| 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 so 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]}`
|
+| Dreame Bot W10 | miio:basic | [dreame.vacuum.p2027](#dreame-vacuum-p2027) | Yes | Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses |
+| Dreame Bot Z10 Pro | miio:basic | [dreame.vacuum.p2028](#dreame-vacuum-p2028) | Yes | Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses |
| Trouver Robot LDS Vacuum-Mop Finder | miio:basic | [dreame.vacuum.p2036](#dreame-vacuum-p2036) | 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]}`
|
-| Mi Robot Vacuum-Mop 2 Pro+ | miio:basic | [dreame.vacuum.p2041o](#dreame-vacuum-p2041o) | 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 so 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 |
-| MOVA Z500 Robot Vacuum and Mop Cleaner | miio:basic | [dreame.vacuum.p2156o](#dreame-vacuum-p2156o) | 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 so 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 |
+| Mi Robot Vacuum-Mop 2 Pro+ | miio:basic | [dreame.vacuum.p2041o](#dreame-vacuum-p2041o) | Yes | Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses |
+| MOVA Z500 Robot Vacuum and Mop Cleaner | miio:basic | [dreame.vacuum.p2156o](#dreame-vacuum-p2156o) | Yes | Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses |
| MOVA L600 Robot Vacuum and Mop Cleaner | miio:basic | [dreame.vacuum.p2157](#dreame-vacuum-p2157) | 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]}`
|
+| Dreame Bot D9 Max | miio:basic | [dreame.vacuum.p2259](#dreame-vacuum-p2259) | Yes | Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses |
| HUIZUO ARIES For Bedroom | miio:basic | [huayi.light.ari013](#huayi-light-ari013) | Yes | Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses |
| HUIZUO ARIES For Living Room | miio:basic | [huayi.light.aries](#huayi-light-aries) | Yes | Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses |
| HUIZUO Fan Light | miio:basic | [huayi.light.fanwy](#huayi-light-fanwy) | Yes | Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses |
@@ -1111,6 +1114,111 @@ Note, not all the values need to be in the json file, e.g. a subset of the param
| total-clean-times | Number | Clean Logs - Total Clean Times | |
| total-clean-area | Number | Clean Logs - Total Clean Area | |
+### Dreame Bot W10 (dreame.vacuum.p2027) Channels
+
+| Channel | Type | Description | Comment |
+|----------------------|----------------------|------------------------------------------|------------|
+| actions | String | Actions | Value mapping `["vacuum-start-sweep"="Vacuum Start Sweep","vacuum-stop-sweeping"="Vacuum Stop Sweeping","vacuum-start-room-sweep"="Vacuum Start Room Sweep","battery-start-charge"="Battery Start Charge","brush-cleaner-reset-brush-life"="Brush Cleaner Reset Brush Life","brush-cleaner-reset-brush-life"="Brush Cleaner Reset Brush Life","filter-reset-filter-life"="Filter Reset Filter Life","vacuum-extend-start-clean"="Vacuum Extend Start Clean","vacuum-extend-stop-clean"="Vacuum Extend Stop Clean","map-map-req"="Map Map Req","map-update-map"="Map Update Map","audio-position"="Audio Position","audio-play-sound"="Audio Play Sound","time-delete-timer"="Time Delete Timer"]` |
+| status | Number | Robot Cleaner - Status | Value mapping `["1"="Sweeping","2"="Idle","3"="Paused","4"="Error","5"="Go Charging","6"="Charging","7"="Mopping","8"="Drying","9"="Washing","10"="Go Washing","11"="Building","12"="Sweeping and Mopping","13"="Charging Completed"]` |
+| fault | Number | Robot Cleaner - Device Fault | Value mapping `["0"="No Error","1"="Drop","2"="Cliff","3"="Bumper","4"="Gesture","5"="Bumper Repeat","6"="Drop Repeat","7"="Optical Flow","8"="No Box","9"="No Tankbox","10"="Waterbox Empty","11"="Box full","12"="Brush","13"="Side Brush","14"="Fan","15"="Left Wheel motor","16"="Right Wheel motor","17"="Turn suffocate","18"="Forward suffocate","19"="Charger get","20"="Battery low","21"="Charge fault","22"="Battery percentage","23"="Heart","24"="Camera occlusion","25"="Camera fault","26"="Event battery","27"="Forward looking","28"="Gyroscope"]` |
+| mode | Number | Robot Cleaner - Mode | Value mapping `["0"="Silent","1"="Basic","2"="Strong","3"="Full Speed"]` |
+| battery_level | Number:Dimensionless | Battery - Battery Level | |
+| charging_state | Number | Battery - Charging State | Value mapping `["1"="Charging","2"="Not Charging","5"="Go Charging"]` |
+| brush_left_time | Number:Time | Main Cleaning Brush - Brush Left Time | |
+| brush_life_level | Number:Dimensionless | Main Cleaning Brush - Brush Life Level | |
+| brush_left_time1 | Number:Time | Side Cleaning Brush - Brush Left Time | |
+| brush_life_level1 | Number:Dimensionless | Side Cleaning Brush - Brush Life Level | |
+| filter_life_level | Number:Dimensionless | Filter - Filter Life Level | |
+| filter_left_time | Number:Time | Filter - Filter Left Time | |
+| work_mode | Number | Vacuum Extend - Work Mode | |
+| cleaning_time | Number:Time | Vacuum Extend - Cleaning Time | |
+| cleaning-area | Number:Area | Vacuum Extend - Cleaning Area | |
+| cleaning_mode | Number | Vacuum Extend - Cleaning Mode | Value mapping `["0"="mode 0","1"="mode 1","2"="mode 2","3"="mode 3"]` |
+| mop_mode | Number | Vacuum Extend - Mop Mode | Value mapping `["1"="low water","2"="medium water","3"="high water"]` |
+| waterbox_status | Number | Vacuum Extend - Waterbox Status | Value mapping `["0"="Status 0","1"="Status 1"]` |
+| task_status | Number | Vacuum Extend - Task Status | Value mapping `["0"="Notask","1"="AutoClean","2"="CustomClean","3"="SelectAreanClean","4"="SpotArea"]` |
+| clean_extend_data | String | Vacuum Extend - Clean Extend Data | |
+| break_point_restart | Number | Vacuum Extend - Break Point Restart | Value mapping `["0"="Off","1"="On"]` |
+| carpet_press | Number | Vacuum Extend - Carpet Press | Value mapping `["0"="Off","1"="On"]` |
+| remote_state | String | Vacuum Extend - Remote State | |
+| clean_rags_tip | Number:Time | Vacuum Extend - Clean Rags Tip | |
+| keep_sweeper_time | Number:Time | Vacuum Extend - Keep Sweeper Time | |
+| faults | String | Vacuum Extend - Faults | |
+| nation_matched | String | Vacuum Extend - Nation Matched | |
+| relocation_status | Number | Vacuum Extend - Relocation Status | |
+| mop_status | Number | Vacuum Extend - Mop Status | |
+| child_lock | Number | Vacuum Extend - Child Lock | Value mapping `["0"="Close","1"="Open"]` |
+| clean_cancel | Number | Vacuum Extend - Clean Cancel | |
+| enable | Switch | Do Not Disturb - Enable | |
+| start_time | String | Do Not Disturb - Start Time | |
+| end_time | String | Do Not Disturb - End Time | |
+| frame_info | String | Map - Frame Info | |
+| map_extend_data | String | Map - Map Extend Data | |
+| mult_map_state | Number | Map - Mult Map State | Value mapping `["0"="Close","1"="Open"]` |
+| mult_map_info | String | Map - Mult Map Info | |
+| volume | Number:Dimensionless | Audio - Volume | |
+| voice_packet_id | String | Audio - Voice Packet Id | |
+| voice_change_state | String | Audio - Voice Change State | |
+| set_voice | String | Audio - Set Voice | |
+| time_zone | String | Time - Time Zone | |
+| timer_clean | String | Time - Timer Clean | |
+| first_clean_time | Number | Clean Logs - First Clean Time | |
+| total_clean_time | Number:Time | Clean Logs - Total Clean Time | |
+| total_clean_times | Number | Clean Logs - Total Clean Times | |
+| total_clean_area | Number | Clean Logs - Total Clean Area | |
+
+### Dreame Bot Z10 Pro (dreame.vacuum.p2028) Channels
+
+| Channel | Type | Description | Comment |
+|----------------------|----------------------|------------------------------------------|------------|
+| actions | String | Actions | Value mapping `["vacuum-start-sweep"="Vacuum Start Sweep","vacuum-stop-sweeping"="Vacuum Stop Sweeping","battery-start-charge"="Battery Start Charge","brush-cleaner-reset-brush-life"="Brush Cleaner Reset Brush Life","brush-cleaner-reset-brush-life"="Brush Cleaner Reset Brush Life","filter-reset-filter-life"="Filter Reset Filter Life","vacuum-extend-start-clean"="Vacuum Extend Start Clean","vacuum-extend-stop-clean"="Vacuum Extend Stop Clean","map-map-req"="Map Map Req","map-update-map"="Map Update Map","audio-position"="Audio Position","audio-play-sound"="Audio Play Sound","time-delete-timer"="Time Delete Timer","collect-dust-start-collect"="Collect Dust Start Collect"]` |
+| status | Number | Robot Cleaner - Status | Value mapping `["1"="Sweeping","2"="Idle","3"="Paused","4"="Error","5"="Go Charging","6"="Charging","7"="Mopping"]` |
+| fault | Number | Robot Cleaner - Device Fault | Value mapping `["0"="No Error","1"="Drop","2"="Cliff","3"="Bumper","4"="Gesture","5"="Bumper Repeat","6"="Drop Repeat","7"="Optical Flow","8"="No Box","9"="No Tankbox","10"="Waterbox Empty","11"="Box full","12"="Brush","13"="Side Brush","14"="Fan","15"="Left Wheel motor","16"="Right Wheel motor","17"="Turn suffocate","18"="Forward suffocate","19"="Charger get","20"="Battery low","21"="Charge fault","22"="Battery percentage","23"="Heart","24"="Camera occlusion","25"="Camera fault","26"="Event battery","27"="Forward looking","28"="Gyroscope"]` |
+| battery_level | Number:Dimensionless | Battery - Battery Level | |
+| charging_state | Number | Battery - Charging State | Value mapping `["1"="Charging","2"="Not Charging","5"="Go Charging"]` |
+| brush_left_time | Number:Time | Main Cleaning Brush - Brush Left Time | |
+| brush_life_level | Number:Dimensionless | Main Cleaning Brush - Brush Life Level | |
+| brush_left_time1 | Number:Time | Side Cleaning Brush - Brush Left Time | |
+| brush_life_level1 | Number:Dimensionless | Side Cleaning Brush - Brush Life Level | |
+| filter_life_level | Number:Dimensionless | Filter - Filter Life Level | |
+| filter_left_time | Number:Time | Filter - Filter Left Time | |
+| work_mode | Number | Vacuum Extend - Work Mode | |
+| cleaning_time | Number:Time | Vacuum Extend - Cleaning Time | |
+| cleaning-area | Number:Area | Vacuum Extend - Cleaning Area | |
+| cleaning_mode | Number | Vacuum Extend - Cleaning Mode | Value mapping `["0"="mode 0","1"="mode 1","2"="mode 2","3"="mode 3"]` |
+| mop_mode | Number | Vacuum Extend - Mop Mode | Value mapping `["1"="low water","2"="medium water","3"="high water"]` |
+| waterbox_status | Number | Vacuum Extend - Waterbox Status | Value mapping `["0"="Status 0","1"="Status 1"]` |
+| task_status | Number | Vacuum Extend - Task Status | Value mapping `["0"="Notask","1"="AutoClean","2"="CustomClean","3"="SelectAreanClean","4"="SpotArea"]` |
+| clean_extend_data | String | Vacuum Extend - Clean Extend Data | |
+| break_point_restart | Number | Vacuum Extend - Break Point Restart | Value mapping `["0"="Off","1"="On"]` |
+| carpet_press | Number | Vacuum Extend - Carpet Press | Value mapping `["0"="Off","1"="On"]` |
+| remote_state | String | Vacuum Extend - Remote State | |
+| clean_rags_tip | Number:Time | Vacuum Extend - Clean Rags Tip | |
+| keep_sweeper_time | Number:Time | Vacuum Extend - Keep Sweeper Time | |
+| faults | String | Vacuum Extend - Faults | |
+| nation_matched | String | Vacuum Extend - Nation Matched | |
+| relocation_status | Number | Vacuum Extend - Relocation Status | |
+| enable | Switch | Do Not Disturb - Enable | |
+| start_time | String | Do Not Disturb - Start Time | |
+| end_time | String | Do Not Disturb - End Time | |
+| frame_info | String | Map - Frame Info | |
+| map_extend_data | String | Map - Map Extend Data | |
+| mult_map_state | Number | Map - Mult Map State | Value mapping `["0"="Close","1"="Open"]` |
+| mult_map_info | String | Map - Mult Map Info | |
+| volume | Number:Dimensionless | Audio - Volume | |
+| voice_packet_id | String | Audio - Voice Packet Id | |
+| voice_change_state | String | Audio - Voice Change State | |
+| set_voice | String | Audio - Set Voice | |
+| time_zone | String | Time - Time Zone | |
+| timer_clean | String | Time - Timer Clean | |
+| first_clean_time | Number | Clean Logs - First Clean Time | |
+| total_clean_time | Number:Time | Clean Logs - Total Clean Time | |
+| total_clean_times | Number | Clean Logs - Total Clean Times | |
+| total_clean_area | Number | Clean Logs - Total Clean Area | |
+| auto_collect | Number | Collect Dust - Auto Collect | Value mapping `["0"="Close-auto-collect","1"="Open-auto-collect"]` |
+| clean_times | Number | Collect Dust - Clean Times | |
+| dust_enable | Number | Collect Dust - Dust Enable | Value mapping `["0"="Disable","1"="Enable"]` |
+
### Trouver Robot LDS Vacuum-Mop Finder (dreame.vacuum.p2036) Channels
| Channel | Type | Description | Comment |
@@ -1279,6 +1387,54 @@ Note, not all the values need to be in the json file, e.g. a subset of the param
| total-clean-times | Number | Clean Logs - Total Clean Times | |
| total-clean-area | Number | Clean Logs - Total Clean Area | |
+### Dreame Bot D9 Max (dreame.vacuum.p2259) Channels
+
+| Channel | Type | Description | Comment |
+|----------------------|----------------------|------------------------------------------|------------|
+| actions | String | Actions | Value mapping `["vacuum-start-sweep"="Vacuum Start Sweep","vacuum-stop-sweeping"="Vacuum Stop Sweeping","vacuum-start-room-sweep"="Vacuum Start Room Sweep","battery-start-charge"="Battery Start Charge","brush-cleaner-reset-brush-life"="Brush Cleaner Reset Brush Life","brush-cleaner-reset-brush-life"="Brush Cleaner Reset Brush Life","filter-reset-filter-life"="Filter Reset Filter Life","vacuum-extend-start-clean"="Vacuum Extend Start Clean","vacuum-extend-stop-clean"="Vacuum Extend Stop Clean","map-map-req"="Map Map Req","map-update-map"="Map Update Map","audio-position"="Audio Position","audio-play-sound"="Audio Play Sound","time-delete-timer"="Time Delete Timer"]` |
+| status | Number | Robot Cleaner - Status | Value mapping `["1"="Sweeping","2"="Idle","3"="Paused","4"="Error","5"="Go Charging","6"="Charging","7"="Mopping"]` |
+| fault | Number | Robot Cleaner - Device Fault | Value mapping `["0"="No Error","1"="Drop","2"="Cliff","3"="Bumper","4"="Gesture","5"="Bumper Repeat","6"="Drop Repeat","7"="Optical Flow","8"="No Box","9"="No Tankbox","10"="Waterbox Empty","11"="Box full","12"="Brush","13"="Side Brush","14"="Fan","15"="Left Wheel motor","16"="Right Wheel motor","17"="Turn suffocate","18"="Forward suffocate","19"="Charger get","20"="Battery low","21"="Charge fault","22"="Battery percentage","23"="Heart","24"="Camera occlusion","25"="Camera fault","26"="Event battery","27"="Forward looking","28"="Gyroscope"]` |
+| mode | Number | Robot Cleaner - Mode | Value mapping `["0"="Silent","1"="Basic","2"="Strong","3"="Full Speed"]` |
+| battery_level | Number:Dimensionless | Battery - Battery Level | |
+| charging_state | Number | Battery - Charging State | Value mapping `["1"="Charging","2"="Not Charging","5"="Go Charging"]` |
+| brush_left_time | Number:Time | Main Cleaning Brush - Brush Left Time | |
+| brush_life_level | Number:Dimensionless | Main Cleaning Brush - Brush Life Level | |
+| brush_left_time1 | Number:Time | Side Cleaning Brush - Brush Left Time | |
+| brush_life_level1 | Number:Dimensionless | Side Cleaning Brush - Brush Life Level | |
+| filter_life_level | Number:Dimensionless | Filter - Filter Life Level | |
+| filter_left_time | Number:Time | Filter - Filter Left Time | |
+| work_mode | Number | Vacuum Extend - Work Mode | |
+| cleaning_time | Number:Time | Vacuum Extend - Cleaning Time | |
+| cleaning_area | Number:Area | Vacuum Extend - Cleaning Area | |
+| cleaning_mode | Number | Vacuum Extend - Cleaning Mode | Value mapping `["0"="mode 0","1"="mode 1","2"="mode 2","3"="mode 3"]` |
+| mop_mode | Number | Vacuum Extend - Mop Mode | Value mapping `["1"="low water","2"="medium water","3"="high water"]` |
+| waterbox_status | Number | Vacuum Extend - Waterbox Status | Value mapping `["0"="Status 0","1"="Status 1"]` |
+| task_status | Number | Vacuum Extend - Task Status | Value mapping `["0"="Notask","1"="AutoClean","2"="CustomClean","3"="SelectAreanClean","4"="SpotArea"]` |
+| clean_extend_data | String | Vacuum Extend - Clean Extend Data | |
+| break_point_restart | Number | Vacuum Extend - Break Point Restart | Value mapping `["0"="Off","1"="On"]` |
+| carpet_press | Number | Vacuum Extend - Carpet Press | Value mapping `["0"="Off","1"="On"]` |
+| remote_state | String | Vacuum Extend - Remote State | |
+| clean_rags_tip | Number:Time | Vacuum Extend - Clean Rags Tip | |
+| keep_sweeper_time | Number:Time | Vacuum Extend - Keep Sweeper Time | |
+| faults | String | Vacuum Extend - Faults | |
+| enable | Switch | Do Not Disturb - Enable | |
+| start_time | String | Do Not Disturb - Start Time | |
+| end_time | String | Do Not Disturb - End Time | |
+| frame_info | String | Map - Frame Info | |
+| map_extend_data | String | Map - Map Extend Data | |
+| mult_map_state | Number | Map - Mult Map State | Value mapping `["0"="Close","1"="Open"]` |
+| mult_map_info | String | Map - Mult Map Info | |
+| volume | Number:Dimensionless | Audio - Volume | |
+| voice_packet_id | String | Audio - Voice Packet Id | |
+| voice_change_state | String | Audio - Voice Change State | |
+| set_voice | String | Audio - Set Voice | |
+| time_zone | String | Time - Time Zone | |
+| timer_clean | String | Time - Timer Clean | |
+| first_clean_time | Number | Clean Logs - First Clean Time | |
+| total_clean_time | Number:Time | Clean Logs - Total Clean Time | |
+| total_clean_times | Number | Clean Logs - Total Clean Times | |
+| total_clean_area | Number | Clean Logs - Total Clean Area | |
+
### HUIZUO ARIES For Bedroom (huayi.light.ari013) Channels
| Channel | Type | Description | Comment |
@@ -6000,6 +6156,117 @@ Number total_clean_times "Clean Logs - Total Clean Times" (G_vacuum) {channel="m
Number total_clean_area "Clean Logs - Total Clean Area" (G_vacuum) {channel="miio:basic:vacuum:total-clean-area"}
```
+### Dreame Bot W10 (dreame.vacuum.p2027) 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.
+
+```
+Group G_vacuum "Dreame Bot W10"
+String actions "Actions" (G_vacuum) {channel="miio:basic:vacuum:actions"}
+Number status "Robot Cleaner - Status" (G_vacuum) {channel="miio:basic:vacuum:status"}
+Number fault "Robot Cleaner - Device Fault" (G_vacuum) {channel="miio:basic:vacuum:fault"}
+Number mode "Robot Cleaner - Mode" (G_vacuum) {channel="miio:basic:vacuum:mode"}
+Number:Dimensionless battery_level "Battery - Battery Level" (G_vacuum) {channel="miio:basic:vacuum:battery_level"}
+Number charging_state "Battery - Charging State" (G_vacuum) {channel="miio:basic:vacuum:charging_state"}
+Number:Time brush_left_time "Main Cleaning Brush - Brush Left Time" (G_vacuum) {channel="miio:basic:vacuum:brush_left_time"}
+Number:Dimensionless brush_life_level "Main Cleaning Brush - Brush Life Level" (G_vacuum) {channel="miio:basic:vacuum:brush_life_level"}
+Number:Time brush_left_time1 "Side Cleaning Brush - Brush Left Time" (G_vacuum) {channel="miio:basic:vacuum:brush_left_time1"}
+Number:Dimensionless brush_life_level1 "Side Cleaning Brush - Brush Life Level" (G_vacuum) {channel="miio:basic:vacuum:brush_life_level1"}
+Number:Dimensionless filter_life_level "Filter - Filter Life Level" (G_vacuum) {channel="miio:basic:vacuum:filter_life_level"}
+Number:Time filter_left_time "Filter - Filter Left Time" (G_vacuum) {channel="miio:basic:vacuum:filter_left_time"}
+Number work_mode "Vacuum Extend - Work Mode" (G_vacuum) {channel="miio:basic:vacuum:work_mode"}
+Number:Time cleaning_time "Vacuum Extend - Cleaning Time" (G_vacuum) {channel="miio:basic:vacuum:cleaning_time"}
+Number:Area cleaning_area "Vacuum Extend - Cleaning Area" (G_vacuum) {channel="miio:basic:vacuum:cleaning-area"}
+Number cleaning_mode "Vacuum Extend - Cleaning Mode" (G_vacuum) {channel="miio:basic:vacuum:cleaning_mode"}
+Number mop_mode "Vacuum Extend - Mop Mode" (G_vacuum) {channel="miio:basic:vacuum:mop_mode"}
+Number waterbox_status "Vacuum Extend - Waterbox Status" (G_vacuum) {channel="miio:basic:vacuum:waterbox_status"}
+Number task_status "Vacuum Extend - Task Status" (G_vacuum) {channel="miio:basic:vacuum:task_status"}
+String clean_extend_data "Vacuum Extend - Clean Extend Data" (G_vacuum) {channel="miio:basic:vacuum:clean_extend_data"}
+Number break_point_restart "Vacuum Extend - Break Point Restart" (G_vacuum) {channel="miio:basic:vacuum:break_point_restart"}
+Number carpet_press "Vacuum Extend - Carpet Press" (G_vacuum) {channel="miio:basic:vacuum:carpet_press"}
+String remote_state "Vacuum Extend - Remote State" (G_vacuum) {channel="miio:basic:vacuum:remote_state"}
+Number:Time clean_rags_tip "Vacuum Extend - Clean Rags Tip" (G_vacuum) {channel="miio:basic:vacuum:clean_rags_tip"}
+Number:Time keep_sweeper_time "Vacuum Extend - Keep Sweeper Time" (G_vacuum) {channel="miio:basic:vacuum:keep_sweeper_time"}
+String faults "Vacuum Extend - Faults" (G_vacuum) {channel="miio:basic:vacuum:faults"}
+String nation_matched "Vacuum Extend - Nation Matched" (G_vacuum) {channel="miio:basic:vacuum:nation_matched"}
+Number relocation_status "Vacuum Extend - Relocation Status" (G_vacuum) {channel="miio:basic:vacuum:relocation_status"}
+Number mop_status "Vacuum Extend - Mop Status" (G_vacuum) {channel="miio:basic:vacuum:mop_status"}
+Number child_lock "Vacuum Extend - Child Lock" (G_vacuum) {channel="miio:basic:vacuum:child_lock"}
+Number clean_cancel "Vacuum Extend - Clean Cancel" (G_vacuum) {channel="miio:basic:vacuum:clean_cancel"}
+Switch enable "Do Not Disturb - Enable" (G_vacuum) {channel="miio:basic:vacuum:enable"}
+String start_time "Do Not Disturb - Start Time" (G_vacuum) {channel="miio:basic:vacuum:start_time"}
+String end_time "Do Not Disturb - End Time" (G_vacuum) {channel="miio:basic:vacuum:end_time"}
+String frame_info "Map - Frame Info" (G_vacuum) {channel="miio:basic:vacuum:frame_info"}
+String map_extend_data "Map - Map Extend Data" (G_vacuum) {channel="miio:basic:vacuum:map_extend_data"}
+Number mult_map_state "Map - Mult Map State" (G_vacuum) {channel="miio:basic:vacuum:mult_map_state"}
+String mult_map_info "Map - Mult Map Info" (G_vacuum) {channel="miio:basic:vacuum:mult_map_info"}
+Number:Dimensionless volume "Audio - Volume" (G_vacuum) {channel="miio:basic:vacuum:volume"}
+String voice_packet_id "Audio - Voice Packet Id" (G_vacuum) {channel="miio:basic:vacuum:voice_packet_id"}
+String voice_change_state "Audio - Voice Change State" (G_vacuum) {channel="miio:basic:vacuum:voice_change_state"}
+String set_voice "Audio - Set Voice" (G_vacuum) {channel="miio:basic:vacuum:set_voice"}
+String time_zone "Time - Time Zone" (G_vacuum) {channel="miio:basic:vacuum:time_zone"}
+String timer_clean "Time - Timer Clean" (G_vacuum) {channel="miio:basic:vacuum:timer_clean"}
+Number first_clean_time "Clean Logs - First Clean Time" (G_vacuum) {channel="miio:basic:vacuum:first_clean_time"}
+Number:Time total_clean_time "Clean Logs - Total Clean Time" (G_vacuum) {channel="miio:basic:vacuum:total_clean_time"}
+Number total_clean_times "Clean Logs - Total Clean Times" (G_vacuum) {channel="miio:basic:vacuum:total_clean_times"}
+Number total_clean_area "Clean Logs - Total Clean Area" (G_vacuum) {channel="miio:basic:vacuum:total_clean_area"}
+```
+
+### Dreame Bot Z10 Pro (dreame.vacuum.p2028) 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.
+
+```
+Group G_vacuum "Dreame Bot Z10 Pro"
+String actions "Actions" (G_vacuum) {channel="miio:basic:vacuum:actions"}
+Number status "Robot Cleaner - Status" (G_vacuum) {channel="miio:basic:vacuum:status"}
+Number fault "Robot Cleaner - Device Fault" (G_vacuum) {channel="miio:basic:vacuum:fault"}
+Number:Dimensionless battery_level "Battery - Battery Level" (G_vacuum) {channel="miio:basic:vacuum:battery_level"}
+Number charging_state "Battery - Charging State" (G_vacuum) {channel="miio:basic:vacuum:charging_state"}
+Number:Time brush_left_time "Main Cleaning Brush - Brush Left Time" (G_vacuum) {channel="miio:basic:vacuum:brush_left_time"}
+Number:Dimensionless brush_life_level "Main Cleaning Brush - Brush Life Level" (G_vacuum) {channel="miio:basic:vacuum:brush_life_level"}
+Number:Time brush_left_time1 "Side Cleaning Brush - Brush Left Time" (G_vacuum) {channel="miio:basic:vacuum:brush_left_time1"}
+Number:Dimensionless brush_life_level1 "Side Cleaning Brush - Brush Life Level" (G_vacuum) {channel="miio:basic:vacuum:brush_life_level1"}
+Number:Dimensionless filter_life_level "Filter - Filter Life Level" (G_vacuum) {channel="miio:basic:vacuum:filter_life_level"}
+Number:Time filter_left_time "Filter - Filter Left Time" (G_vacuum) {channel="miio:basic:vacuum:filter_left_time"}
+Number work_mode "Vacuum Extend - Work Mode" (G_vacuum) {channel="miio:basic:vacuum:work_mode"}
+Number:Time cleaning_time "Vacuum Extend - Cleaning Time" (G_vacuum) {channel="miio:basic:vacuum:cleaning_time"}
+Number:Area cleaning_area "Vacuum Extend - Cleaning Area" (G_vacuum) {channel="miio:basic:vacuum:cleaning-area"}
+Number cleaning_mode "Vacuum Extend - Cleaning Mode" (G_vacuum) {channel="miio:basic:vacuum:cleaning_mode"}
+Number mop_mode "Vacuum Extend - Mop Mode" (G_vacuum) {channel="miio:basic:vacuum:mop_mode"}
+Number waterbox_status "Vacuum Extend - Waterbox Status" (G_vacuum) {channel="miio:basic:vacuum:waterbox_status"}
+Number task_status "Vacuum Extend - Task Status" (G_vacuum) {channel="miio:basic:vacuum:task_status"}
+String clean_extend_data "Vacuum Extend - Clean Extend Data" (G_vacuum) {channel="miio:basic:vacuum:clean_extend_data"}
+Number break_point_restart "Vacuum Extend - Break Point Restart" (G_vacuum) {channel="miio:basic:vacuum:break_point_restart"}
+Number carpet_press "Vacuum Extend - Carpet Press" (G_vacuum) {channel="miio:basic:vacuum:carpet_press"}
+String remote_state "Vacuum Extend - Remote State" (G_vacuum) {channel="miio:basic:vacuum:remote_state"}
+Number:Time clean_rags_tip "Vacuum Extend - Clean Rags Tip" (G_vacuum) {channel="miio:basic:vacuum:clean_rags_tip"}
+Number:Time keep_sweeper_time "Vacuum Extend - Keep Sweeper Time" (G_vacuum) {channel="miio:basic:vacuum:keep_sweeper_time"}
+String faults "Vacuum Extend - Faults" (G_vacuum) {channel="miio:basic:vacuum:faults"}
+String nation_matched "Vacuum Extend - Nation Matched" (G_vacuum) {channel="miio:basic:vacuum:nation_matched"}
+Number relocation_status "Vacuum Extend - Relocation Status" (G_vacuum) {channel="miio:basic:vacuum:relocation_status"}
+Switch enable "Do Not Disturb - Enable" (G_vacuum) {channel="miio:basic:vacuum:enable"}
+String start_time "Do Not Disturb - Start Time" (G_vacuum) {channel="miio:basic:vacuum:start_time"}
+String end_time "Do Not Disturb - End Time" (G_vacuum) {channel="miio:basic:vacuum:end_time"}
+String frame_info "Map - Frame Info" (G_vacuum) {channel="miio:basic:vacuum:frame_info"}
+String map_extend_data "Map - Map Extend Data" (G_vacuum) {channel="miio:basic:vacuum:map_extend_data"}
+Number mult_map_state "Map - Mult Map State" (G_vacuum) {channel="miio:basic:vacuum:mult_map_state"}
+String mult_map_info "Map - Mult Map Info" (G_vacuum) {channel="miio:basic:vacuum:mult_map_info"}
+Number:Dimensionless volume "Audio - Volume" (G_vacuum) {channel="miio:basic:vacuum:volume"}
+String voice_packet_id "Audio - Voice Packet Id" (G_vacuum) {channel="miio:basic:vacuum:voice_packet_id"}
+String voice_change_state "Audio - Voice Change State" (G_vacuum) {channel="miio:basic:vacuum:voice_change_state"}
+String set_voice "Audio - Set Voice" (G_vacuum) {channel="miio:basic:vacuum:set_voice"}
+String time_zone "Time - Time Zone" (G_vacuum) {channel="miio:basic:vacuum:time_zone"}
+String timer_clean "Time - Timer Clean" (G_vacuum) {channel="miio:basic:vacuum:timer_clean"}
+Number first_clean_time "Clean Logs - First Clean Time" (G_vacuum) {channel="miio:basic:vacuum:first_clean_time"}
+Number:Time total_clean_time "Clean Logs - Total Clean Time" (G_vacuum) {channel="miio:basic:vacuum:total_clean_time"}
+Number total_clean_times "Clean Logs - Total Clean Times" (G_vacuum) {channel="miio:basic:vacuum:total_clean_times"}
+Number total_clean_area "Clean Logs - Total Clean Area" (G_vacuum) {channel="miio:basic:vacuum:total_clean_area"}
+Number auto_collect "Collect Dust - Auto Collect" (G_vacuum) {channel="miio:basic:vacuum:auto_collect"}
+Number clean_times "Collect Dust - Clean Times" (G_vacuum) {channel="miio:basic:vacuum:clean_times"}
+Number dust_enable "Collect Dust - Dust Enable" (G_vacuum) {channel="miio:basic:vacuum:dust_enable"}
+```
+
### Trouver Robot LDS Vacuum-Mop Finder (dreame.vacuum.p2036) 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.
@@ -6180,6 +6447,57 @@ Number total_clean_times "Clean Logs - Total Clean Times" (G_vacuum) {channel="m
Number total_clean_area "Clean Logs - Total Clean Area" (G_vacuum) {channel="miio:basic:vacuum:total-clean-area"}
```
+### Dreame Bot D9 Max (dreame.vacuum.p2259) 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.
+
+```
+Group G_vacuum "Dreame Bot D9 Max"
+String actions "Actions" (G_vacuum) {channel="miio:basic:vacuum:actions"}
+Number status "Robot Cleaner - Status" (G_vacuum) {channel="miio:basic:vacuum:status"}
+Number fault "Robot Cleaner - Device Fault" (G_vacuum) {channel="miio:basic:vacuum:fault"}
+Number mode "Robot Cleaner - Mode" (G_vacuum) {channel="miio:basic:vacuum:mode"}
+Number:Dimensionless battery_level "Battery - Battery Level" (G_vacuum) {channel="miio:basic:vacuum:battery_level"}
+Number charging_state "Battery - Charging State" (G_vacuum) {channel="miio:basic:vacuum:charging_state"}
+Number:Time brush_left_time "Main Cleaning Brush - Brush Left Time" (G_vacuum) {channel="miio:basic:vacuum:brush_left_time"}
+Number:Dimensionless brush_life_level "Main Cleaning Brush - Brush Life Level" (G_vacuum) {channel="miio:basic:vacuum:brush_life_level"}
+Number:Time brush_left_time1 "Side Cleaning Brush - Brush Left Time" (G_vacuum) {channel="miio:basic:vacuum:brush_left_time1"}
+Number:Dimensionless brush_life_level1 "Side Cleaning Brush - Brush Life Level" (G_vacuum) {channel="miio:basic:vacuum:brush_life_level1"}
+Number:Dimensionless filter_life_level "Filter - Filter Life Level" (G_vacuum) {channel="miio:basic:vacuum:filter_life_level"}
+Number:Time filter_left_time "Filter - Filter Left Time" (G_vacuum) {channel="miio:basic:vacuum:filter_left_time"}
+Number work_mode "Vacuum Extend - Work Mode" (G_vacuum) {channel="miio:basic:vacuum:work_mode"}
+Number:Time cleaning_time "Vacuum Extend - Cleaning Time" (G_vacuum) {channel="miio:basic:vacuum:cleaning_time"}
+Number:Area cleaning_area "Vacuum Extend - Cleaning Area" (G_vacuum) {channel="miio:basic:vacuum:cleaning_area"}
+Number cleaning_mode "Vacuum Extend - Cleaning Mode" (G_vacuum) {channel="miio:basic:vacuum:cleaning_mode"}
+Number mop_mode "Vacuum Extend - Mop Mode" (G_vacuum) {channel="miio:basic:vacuum:mop_mode"}
+Number waterbox_status "Vacuum Extend - Waterbox Status" (G_vacuum) {channel="miio:basic:vacuum:waterbox_status"}
+Number task_status "Vacuum Extend - Task Status" (G_vacuum) {channel="miio:basic:vacuum:task_status"}
+String clean_extend_data "Vacuum Extend - Clean Extend Data" (G_vacuum) {channel="miio:basic:vacuum:clean_extend_data"}
+Number break_point_restart "Vacuum Extend - Break Point Restart" (G_vacuum) {channel="miio:basic:vacuum:break_point_restart"}
+Number carpet_press "Vacuum Extend - Carpet Press" (G_vacuum) {channel="miio:basic:vacuum:carpet_press"}
+String remote_state "Vacuum Extend - Remote State" (G_vacuum) {channel="miio:basic:vacuum:remote_state"}
+Number:Time clean_rags_tip "Vacuum Extend - Clean Rags Tip" (G_vacuum) {channel="miio:basic:vacuum:clean_rags_tip"}
+Number:Time keep_sweeper_time "Vacuum Extend - Keep Sweeper Time" (G_vacuum) {channel="miio:basic:vacuum:keep_sweeper_time"}
+String faults "Vacuum Extend - Faults" (G_vacuum) {channel="miio:basic:vacuum:faults"}
+Switch enable "Do Not Disturb - Enable" (G_vacuum) {channel="miio:basic:vacuum:enable"}
+String start_time "Do Not Disturb - Start Time" (G_vacuum) {channel="miio:basic:vacuum:start_time"}
+String end_time "Do Not Disturb - End Time" (G_vacuum) {channel="miio:basic:vacuum:end_time"}
+String frame_info "Map - Frame Info" (G_vacuum) {channel="miio:basic:vacuum:frame_info"}
+String map_extend_data "Map - Map Extend Data" (G_vacuum) {channel="miio:basic:vacuum:map_extend_data"}
+Number mult_map_state "Map - Mult Map State" (G_vacuum) {channel="miio:basic:vacuum:mult_map_state"}
+String mult_map_info "Map - Mult Map Info" (G_vacuum) {channel="miio:basic:vacuum:mult_map_info"}
+Number:Dimensionless volume "Audio - Volume" (G_vacuum) {channel="miio:basic:vacuum:volume"}
+String voice_packet_id "Audio - Voice Packet Id" (G_vacuum) {channel="miio:basic:vacuum:voice_packet_id"}
+String voice_change_state "Audio - Voice Change State" (G_vacuum) {channel="miio:basic:vacuum:voice_change_state"}
+String set_voice "Audio - Set Voice" (G_vacuum) {channel="miio:basic:vacuum:set_voice"}
+String time_zone "Time - Time Zone" (G_vacuum) {channel="miio:basic:vacuum:time_zone"}
+String timer_clean "Time - Timer Clean" (G_vacuum) {channel="miio:basic:vacuum:timer_clean"}
+Number first_clean_time "Clean Logs - First Clean Time" (G_vacuum) {channel="miio:basic:vacuum:first_clean_time"}
+Number:Time total_clean_time "Clean Logs - Total Clean Time" (G_vacuum) {channel="miio:basic:vacuum:total_clean_time"}
+Number total_clean_times "Clean Logs - Total Clean Times" (G_vacuum) {channel="miio:basic:vacuum:total_clean_times"}
+Number total_clean_area "Clean Logs - Total Clean Area" (G_vacuum) {channel="miio:basic:vacuum:total_clean_area"}
+```
+
### HUIZUO ARIES For Bedroom (huayi.light.ari013) item file lines
note: Autogenerated example. Replace the id (light) 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 5f925592cbb7a..603d2f7c016f7 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
@@ -66,10 +66,13 @@ public enum MiIoDevices {
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),
+ DREAME_VACUUM_P2027("dreame.vacuum.p2027", "Dreame Bot W10", THING_TYPE_BASIC),
+ DREAME_VACUUM_P2028("dreame.vacuum.p2028", "Dreame Bot Z10 Pro", THING_TYPE_BASIC),
DREAME_VACUUM_P2036("dreame.vacuum.p2036", "Trouver Robot LDS Vacuum-Mop Finder", THING_TYPE_BASIC),
DREAME_VACUUM_P2041O("dreame.vacuum.p2041o", "Mi Robot Vacuum-Mop 2 Pro+", THING_TYPE_BASIC),
DREAME_VACUUM_P2156O("dreame.vacuum.p2156o", "MOVA Z500 Robot Vacuum and Mop Cleaner", THING_TYPE_BASIC),
DREAME_VACUUM_P2157("dreame.vacuum.p2157", "MOVA L600 Robot Vacuum and Mop Cleaner", THING_TYPE_BASIC),
+ DREAME_VACUUM_P2259("dreame.vacuum.p2259", "Dreame Bot D9 Max", THING_TYPE_BASIC),
HUAYI_LIGHT_ARI013("huayi.light.ari013", "HUIZUO ARIES For Bedroom", THING_TYPE_BASIC),
HUAYI_LIGHT_ARIES("huayi.light.aries", "HUIZUO ARIES For Living Room", THING_TYPE_BASIC),
HUAYI_LIGHT_FANWY("huayi.light.fanwy", "HUIZUO Fan Light", THING_TYPE_BASIC),
diff --git a/bundles/org.openhab.binding.miio/src/main/java/org/openhab/binding/miio/internal/miot/MiotParser.java b/bundles/org.openhab.binding.miio/src/main/java/org/openhab/binding/miio/internal/miot/MiotParser.java
index 7a23e11add20f..b29ece74a5ecf 100644
--- a/bundles/org.openhab.binding.miio/src/main/java/org/openhab/binding/miio/internal/miot/MiotParser.java
+++ b/bundles/org.openhab.binding.miio/src/main/java/org/openhab/binding/miio/internal/miot/MiotParser.java
@@ -66,6 +66,7 @@ public class MiotParser {
private static final String BASEURL = "https://miot-spec.org/miot-spec-v2/";
private static final Gson GSON = new GsonBuilder().setPrettyPrinting().create();
private static final boolean SKIP_SIID_1 = true;
+ private static final boolean INCLUDE_MANUAL_ACTIONS_COMMENT = false;
private String model;
private @Nullable String urn;
@@ -328,7 +329,7 @@ public MiIoBasicDevice getDevice(JsonElement urnData) throws MiotParseException
}
deviceMapping.setChannels(miIoBasicChannels);
device.setDevice(deviceMapping);
- if (actionText.length() > 35) {
+ if (actionText.length() > 35 && INCLUDE_MANUAL_ACTIONS_COMMENT) {
deviceMapping.setReadmeComment(
"Identified " + actionText.toString().replace("Manual", "manual").replace("\r\n", "
")
+ "Please test and feedback if they are working so they can be linked to a channel.");
diff --git a/bundles/org.openhab.binding.miio/src/main/resources/database/dreame.vacuum.p2027-miot.json b/bundles/org.openhab.binding.miio/src/main/resources/database/dreame.vacuum.p2027-miot.json
new file mode 100644
index 0000000000000..f5a494538bb21
--- /dev/null
+++ b/bundles/org.openhab.binding.miio/src/main/resources/database/dreame.vacuum.p2027-miot.json
@@ -0,0 +1,1373 @@
+{
+ "deviceMapping": {
+ "id": [
+ "dreame.vacuum.p2027"
+ ],
+ "propertyMethod": "get_properties",
+ "maxProperties": 1,
+ "channels": [
+ {
+ "property": "",
+ "friendlyName": "Actions",
+ "channel": "actions",
+ "type": "String",
+ "stateDescription": {
+ "options": [
+ {
+ "value": "vacuum-start-sweep",
+ "label": "Vacuum Start Sweep"
+ },
+ {
+ "value": "vacuum-stop-sweeping",
+ "label": "Vacuum Stop Sweeping"
+ },
+ {
+ "value": "vacuum-start-room-sweep",
+ "label": "Vacuum Start Room Sweep"
+ },
+ {
+ "value": "battery-start-charge",
+ "label": "Battery Start Charge"
+ },
+ {
+ "value": "brush-cleaner-reset-brush-life",
+ "label": "Brush Cleaner Reset Brush Life"
+ },
+ {
+ "value": "brush-cleaner-reset-brush-life",
+ "label": "Brush Cleaner Reset Brush Life"
+ },
+ {
+ "value": "filter-reset-filter-life",
+ "label": "Filter Reset Filter Life"
+ },
+ {
+ "value": "vacuum-extend-start-clean",
+ "label": "Vacuum Extend Start Clean"
+ },
+ {
+ "value": "vacuum-extend-stop-clean",
+ "label": "Vacuum Extend Stop Clean"
+ },
+ {
+ "value": "map-map-req",
+ "label": "Map Map Req"
+ },
+ {
+ "value": "map-update-map",
+ "label": "Map Update Map"
+ },
+ {
+ "value": "audio-position",
+ "label": "Audio Position"
+ },
+ {
+ "value": "audio-play-sound",
+ "label": "Audio Play Sound"
+ },
+ {
+ "value": "time-delete-timer",
+ "label": "Time Delete Timer"
+ }
+ ]
+ },
+ "refresh": false,
+ "actions": [
+ {
+ "command": "action",
+ "parameterType": "EMPTY",
+ "siid": 2,
+ "aiid": 1,
+ "condition": {
+ "name": "matchValue",
+ "parameters": [
+ {
+ "matchValue": "vacuum-start-sweep"
+ }
+ ]
+ }
+ },
+ {
+ "command": "action",
+ "parameterType": "EMPTY",
+ "siid": 2,
+ "aiid": 2,
+ "condition": {
+ "name": "matchValue",
+ "parameters": [
+ {
+ "matchValue": "vacuum-stop-sweeping"
+ }
+ ]
+ }
+ },
+ {
+ "command": "action",
+ "parameterType": "NUMBER",
+ "parameters": [
+ 4.0
+ ],
+ "siid": 2,
+ "aiid": 3,
+ "condition": {
+ "name": "matchValue",
+ "parameters": [
+ {
+ "matchValue": "vacuum-start-room-sweep"
+ }
+ ]
+ }
+ },
+ {
+ "command": "action",
+ "parameterType": "EMPTY",
+ "siid": 3,
+ "aiid": 1,
+ "condition": {
+ "name": "matchValue",
+ "parameters": [
+ {
+ "matchValue": "battery-start-charge"
+ }
+ ]
+ }
+ },
+ {
+ "command": "action",
+ "parameterType": "EMPTY",
+ "siid": 9,
+ "aiid": 1,
+ "condition": {
+ "name": "matchValue",
+ "parameters": [
+ {
+ "matchValue": "brush-cleaner-reset-brush-life"
+ }
+ ]
+ }
+ },
+ {
+ "command": "action",
+ "parameterType": "EMPTY",
+ "siid": 10,
+ "aiid": 1,
+ "condition": {
+ "name": "matchValue",
+ "parameters": [
+ {
+ "matchValue": "brush-cleaner-reset-brush-life"
+ }
+ ]
+ }
+ },
+ {
+ "command": "action",
+ "parameterType": "EMPTY",
+ "siid": 11,
+ "aiid": 1,
+ "condition": {
+ "name": "matchValue",
+ "parameters": [
+ {
+ "matchValue": "filter-reset-filter-life"
+ }
+ ]
+ }
+ },
+ {
+ "command": "action",
+ "parameterType": "NUMBER",
+ "parameters": [
+ 10.0
+ ],
+ "siid": 4,
+ "aiid": 1,
+ "condition": {
+ "name": "matchValue",
+ "parameters": [
+ {
+ "matchValue": "vacuum-extend-start-clean"
+ }
+ ]
+ }
+ },
+ {
+ "command": "action",
+ "parameterType": "EMPTY",
+ "siid": 4,
+ "aiid": 2,
+ "condition": {
+ "name": "matchValue",
+ "parameters": [
+ {
+ "matchValue": "vacuum-extend-stop-clean"
+ }
+ ]
+ }
+ },
+ {
+ "command": "action",
+ "parameterType": "NUMBER",
+ "parameters": [
+ 2.0
+ ],
+ "siid": 6,
+ "aiid": 1,
+ "condition": {
+ "name": "matchValue",
+ "parameters": [
+ {
+ "matchValue": "map-map-req"
+ }
+ ]
+ }
+ },
+ {
+ "command": "action",
+ "parameterType": "NUMBER",
+ "parameters": [
+ 4.0
+ ],
+ "siid": 6,
+ "aiid": 2,
+ "condition": {
+ "name": "matchValue",
+ "parameters": [
+ {
+ "matchValue": "map-update-map"
+ }
+ ]
+ }
+ },
+ {
+ "command": "action",
+ "parameterType": "EMPTY",
+ "siid": 7,
+ "aiid": 1,
+ "condition": {
+ "name": "matchValue",
+ "parameters": [
+ {
+ "matchValue": "audio-position"
+ }
+ ]
+ }
+ },
+ {
+ "command": "action",
+ "parameterType": "EMPTY",
+ "siid": 7,
+ "aiid": 2,
+ "condition": {
+ "name": "matchValue",
+ "parameters": [
+ {
+ "matchValue": "audio-play-sound"
+ }
+ ]
+ }
+ },
+ {
+ "command": "action",
+ "parameterType": "NUMBER",
+ "parameters": [
+ 3.0
+ ],
+ "siid": 8,
+ "aiid": 1,
+ "condition": {
+ "name": "matchValue",
+ "parameters": [
+ {
+ "matchValue": "time-delete-timer"
+ }
+ ]
+ }
+ }
+ ],
+ "readmeComment": "Value mapping `[\"vacuum-start-sweep\"\u003d\"Vacuum Start Sweep\",\"vacuum-stop-sweeping\"\u003d\"Vacuum Stop Sweeping\",\"vacuum-start-room-sweep\"\u003d\"Vacuum Start Room Sweep\",\"battery-start-charge\"\u003d\"Battery Start Charge\",\"brush-cleaner-reset-brush-life\"\u003d\"Brush Cleaner Reset Brush Life\",\"brush-cleaner-reset-brush-life\"\u003d\"Brush Cleaner Reset Brush Life\",\"filter-reset-filter-life\"\u003d\"Filter Reset Filter Life\",\"vacuum-extend-start-clean\"\u003d\"Vacuum Extend Start Clean\",\"vacuum-extend-stop-clean\"\u003d\"Vacuum Extend Stop Clean\",\"map-map-req\"\u003d\"Map Map Req\",\"map-update-map\"\u003d\"Map Update Map\",\"audio-position\"\u003d\"Audio Position\",\"audio-play-sound\"\u003d\"Audio Play Sound\",\"time-delete-timer\"\u003d\"Time Delete Timer\"]`"
+ },
+ {
+ "property": "status",
+ "siid": 2,
+ "piid": 1,
+ "friendlyName": "Robot Cleaner - Status",
+ "channel": "status",
+ "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"
+ },
+ {
+ "value": "7",
+ "label": "Mopping"
+ },
+ {
+ "value": "8",
+ "label": "Drying"
+ },
+ {
+ "value": "9",
+ "label": "Washing"
+ },
+ {
+ "value": "10",
+ "label": "Go Washing"
+ },
+ {
+ "value": "11",
+ "label": "Building"
+ },
+ {
+ "value": "12",
+ "label": "Sweeping and Mopping"
+ },
+ {
+ "value": "13",
+ "label": "Charging Completed"
+ }
+ ]
+ },
+ "refresh": true,
+ "actions": [],
+ "category": "status",
+ "tags": [
+ "Status"
+ ],
+ "readmeComment": "Value mapping `[\"1\"\u003d\"Sweeping\",\"2\"\u003d\"Idle\",\"3\"\u003d\"Paused\",\"4\"\u003d\"Error\",\"5\"\u003d\"Go Charging\",\"6\"\u003d\"Charging\",\"7\"\u003d\"Mopping\",\"8\"\u003d\"Drying\",\"9\"\u003d\"Washing\",\"10\"\u003d\"Go Washing\",\"11\"\u003d\"Building\",\"12\"\u003d\"Sweeping and Mopping\",\"13\"\u003d\"Charging Completed\"]`"
+ },
+ {
+ "property": "fault",
+ "siid": 2,
+ "piid": 2,
+ "friendlyName": "Robot Cleaner - Device Fault",
+ "channel": "fault",
+ "type": "Number",
+ "stateDescription": {
+ "readOnly": true,
+ "options": [
+ {
+ "value": "0",
+ "label": "No Error"
+ },
+ {
+ "value": "1",
+ "label": "Drop"
+ },
+ {
+ "value": "2",
+ "label": "Cliff"
+ },
+ {
+ "value": "3",
+ "label": "Bumper"
+ },
+ {
+ "value": "4",
+ "label": "Gesture"
+ },
+ {
+ "value": "5",
+ "label": "Bumper Repeat"
+ },
+ {
+ "value": "6",
+ "label": "Drop Repeat"
+ },
+ {
+ "value": "7",
+ "label": "Optical Flow"
+ },
+ {
+ "value": "8",
+ "label": "No Box"
+ },
+ {
+ "value": "9",
+ "label": "No Tankbox"
+ },
+ {
+ "value": "10",
+ "label": "Waterbox Empty"
+ },
+ {
+ "value": "11",
+ "label": "Box full"
+ },
+ {
+ "value": "12",
+ "label": "Brush"
+ },
+ {
+ "value": "13",
+ "label": "Side Brush"
+ },
+ {
+ "value": "14",
+ "label": "Fan"
+ },
+ {
+ "value": "15",
+ "label": "Left Wheel motor"
+ },
+ {
+ "value": "16",
+ "label": "Right Wheel motor"
+ },
+ {
+ "value": "17",
+ "label": "Turn suffocate"
+ },
+ {
+ "value": "18",
+ "label": "Forward suffocate"
+ },
+ {
+ "value": "19",
+ "label": "Charger get"
+ },
+ {
+ "value": "20",
+ "label": "Battery low"
+ },
+ {
+ "value": "21",
+ "label": "Charge fault"
+ },
+ {
+ "value": "22",
+ "label": "Battery percentage"
+ },
+ {
+ "value": "23",
+ "label": "Heart"
+ },
+ {
+ "value": "24",
+ "label": "Camera occlusion"
+ },
+ {
+ "value": "25",
+ "label": "Camera fault"
+ },
+ {
+ "value": "26",
+ "label": "Event battery"
+ },
+ {
+ "value": "27",
+ "label": "Forward looking"
+ },
+ {
+ "value": "28",
+ "label": "Gyroscope"
+ }
+ ]
+ },
+ "refresh": true,
+ "actions": [],
+ "readmeComment": "Value mapping `[\"0\"\u003d\"No Error\",\"1\"\u003d\"Drop\",\"2\"\u003d\"Cliff\",\"3\"\u003d\"Bumper\",\"4\"\u003d\"Gesture\",\"5\"\u003d\"Bumper Repeat\",\"6\"\u003d\"Drop Repeat\",\"7\"\u003d\"Optical Flow\",\"8\"\u003d\"No Box\",\"9\"\u003d\"No Tankbox\",\"10\"\u003d\"Waterbox Empty\",\"11\"\u003d\"Box full\",\"12\"\u003d\"Brush\",\"13\"\u003d\"Side Brush\",\"14\"\u003d\"Fan\",\"15\"\u003d\"Left Wheel motor\",\"16\"\u003d\"Right Wheel motor\",\"17\"\u003d\"Turn suffocate\",\"18\"\u003d\"Forward suffocate\",\"19\"\u003d\"Charger get\",\"20\"\u003d\"Battery low\",\"21\"\u003d\"Charge fault\",\"22\"\u003d\"Battery percentage\",\"23\"\u003d\"Heart\",\"24\"\u003d\"Camera occlusion\",\"25\"\u003d\"Camera fault\",\"26\"\u003d\"Event battery\",\"27\"\u003d\"Forward looking\",\"28\"\u003d\"Gyroscope\"]`"
+ },
+ {
+ "property": "mode",
+ "siid": 2,
+ "piid": 3,
+ "friendlyName": "Robot Cleaner - Mode",
+ "channel": "mode",
+ "type": "Number",
+ "stateDescription": {
+ "options": [
+ {
+ "value": "0",
+ "label": "Silent"
+ },
+ {
+ "value": "1",
+ "label": "Basic"
+ },
+ {
+ "value": "2",
+ "label": "Strong"
+ },
+ {
+ "value": "3",
+ "label": "Full Speed"
+ }
+ ]
+ },
+ "refresh": true,
+ "actions": [
+ {
+ "command": "set_properties",
+ "parameterType": "NUMBER"
+ }
+ ],
+ "readmeComment": "Value mapping `[\"0\"\u003d\"Silent\",\"1\"\u003d\"Basic\",\"2\"\u003d\"Strong\",\"3\"\u003d\"Full Speed\"]`"
+ },
+ {
+ "property": "battery-level",
+ "siid": 3,
+ "piid": 1,
+ "friendlyName": "Battery - Battery Level",
+ "channel": "battery_level",
+ "type": "Number:Dimensionless",
+ "unit": "percentage",
+ "stateDescription": {
+ "minimum": 0,
+ "maximum": 100,
+ "step": 1,
+ "pattern": "%.0f %unit%",
+ "readOnly": true
+ },
+ "refresh": true,
+ "actions": []
+ },
+ {
+ "property": "charging-state",
+ "siid": 3,
+ "piid": 2,
+ "friendlyName": "Battery - Charging State",
+ "channel": "charging_state",
+ "type": "Number",
+ "stateDescription": {
+ "readOnly": true,
+ "options": [
+ {
+ "value": "1",
+ "label": "Charging"
+ },
+ {
+ "value": "2",
+ "label": "Not Charging"
+ },
+ {
+ "value": "5",
+ "label": "Go Charging"
+ }
+ ]
+ },
+ "refresh": true,
+ "actions": [],
+ "readmeComment": "Value mapping `[\"1\"\u003d\"Charging\",\"2\"\u003d\"Not Charging\",\"5\"\u003d\"Go Charging\"]`"
+ },
+ {
+ "property": "brush-left-time",
+ "siid": 9,
+ "piid": 1,
+ "friendlyName": "Main Cleaning Brush - Brush Left Time",
+ "channel": "brush_left_time",
+ "type": "Number:Time",
+ "unit": "hours",
+ "stateDescription": {
+ "minimum": 0,
+ "maximum": 300,
+ "step": 1,
+ "pattern": "%.0f %unit%",
+ "readOnly": true
+ },
+ "refresh": true,
+ "actions": []
+ },
+ {
+ "property": "brush-life-level",
+ "siid": 9,
+ "piid": 2,
+ "friendlyName": "Main Cleaning Brush - Brush Life Level",
+ "channel": "brush_life_level",
+ "type": "Number:Dimensionless",
+ "unit": "percentage",
+ "stateDescription": {
+ "minimum": 0,
+ "maximum": 100,
+ "step": 1,
+ "pattern": "%.0f %unit%",
+ "readOnly": true
+ },
+ "refresh": true,
+ "actions": []
+ },
+ {
+ "property": "brush-left-time1",
+ "siid": 10,
+ "piid": 1,
+ "friendlyName": "Side Cleaning Brush - Brush Left Time",
+ "channel": "brush_left_time1",
+ "type": "Number:Time",
+ "unit": "hours",
+ "stateDescription": {
+ "minimum": 0,
+ "maximum": 200,
+ "step": 1,
+ "pattern": "%.0f %unit%",
+ "readOnly": true
+ },
+ "refresh": true,
+ "actions": []
+ },
+ {
+ "property": "brush-life-level1",
+ "siid": 10,
+ "piid": 2,
+ "friendlyName": "Side Cleaning Brush - Brush Life Level",
+ "channel": "brush_life_level1",
+ "type": "Number:Dimensionless",
+ "unit": "percentage",
+ "stateDescription": {
+ "minimum": 0,
+ "maximum": 100,
+ "step": 1,
+ "pattern": "%.0f %unit%",
+ "readOnly": true
+ },
+ "refresh": true,
+ "actions": []
+ },
+ {
+ "property": "filter-life-level",
+ "siid": 11,
+ "piid": 1,
+ "friendlyName": "Filter - Filter Life Level",
+ "channel": "filter_life_level",
+ "type": "Number:Dimensionless",
+ "unit": "percentage",
+ "stateDescription": {
+ "minimum": 0,
+ "maximum": 100,
+ "step": 1,
+ "pattern": "%.0f %unit%",
+ "readOnly": true
+ },
+ "refresh": true,
+ "actions": []
+ },
+ {
+ "property": "filter-left-time",
+ "siid": 11,
+ "piid": 2,
+ "friendlyName": "Filter - Filter Left Time",
+ "channel": "filter_left_time",
+ "type": "Number:Time",
+ "unit": "hours",
+ "stateDescription": {
+ "minimum": 0,
+ "maximum": 150,
+ "step": 1,
+ "pattern": "%.0f %unit%",
+ "readOnly": true
+ },
+ "refresh": true,
+ "actions": []
+ },
+ {
+ "property": "work-mode",
+ "siid": 4,
+ "piid": 1,
+ "friendlyName": "Vacuum Extend - Work Mode",
+ "channel": "work_mode",
+ "type": "Number",
+ "stateDescription": {
+ "minimum": 0,
+ "maximum": 50,
+ "step": 1,
+ "pattern": "%.0f",
+ "readOnly": true
+ },
+ "refresh": true,
+ "actions": []
+ },
+ {
+ "property": "cleaning-time",
+ "siid": 4,
+ "piid": 2,
+ "friendlyName": "Vacuum Extend - Cleaning Time",
+ "channel": "cleaning_time",
+ "type": "Number:Time",
+ "unit": "minutes",
+ "stateDescription": {
+ "minimum": 0,
+ "maximum": 32767,
+ "step": 1,
+ "pattern": "%.0f %unit%",
+ "readOnly": true
+ },
+ "refresh": true,
+ "actions": []
+ },
+ {
+ "property": "cleaning-area",
+ "siid": 4,
+ "piid": 3,
+ "friendlyName": "Vacuum Extend - Cleaning Area",
+ "channel": "cleaning-area",
+ "type": "Number:Area",
+ "unit": "square_meter",
+ "stateDescription": {
+ "minimum": 0,
+ "maximum": 32767,
+ "step": 1,
+ "pattern": "%.1f %unit%",
+ "readOnly": true
+ },
+ "refresh": true,
+ "actions": []
+ },
+ {
+ "property": "cleaning-mode",
+ "siid": 4,
+ "piid": 4,
+ "friendlyName": "Vacuum Extend - Cleaning Mode",
+ "channel": "cleaning_mode",
+ "type": "Number",
+ "stateDescription": {
+ "options": [
+ {
+ "value": "0",
+ "label": "mode 0"
+ },
+ {
+ "value": "1",
+ "label": "mode 1"
+ },
+ {
+ "value": "2",
+ "label": "mode 2"
+ },
+ {
+ "value": "3",
+ "label": "mode 3"
+ }
+ ]
+ },
+ "refresh": true,
+ "actions": [
+ {
+ "command": "set_properties",
+ "parameterType": "STRING"
+ }
+ ],
+ "readmeComment": "Value mapping `[\"0\"\u003d\"mode 0\",\"1\"\u003d\"mode 1\",\"2\"\u003d\"mode 2\",\"3\"\u003d\"mode 3\"]`"
+ },
+ {
+ "property": "mop-mode",
+ "siid": 4,
+ "piid": 5,
+ "friendlyName": "Vacuum Extend - Mop Mode",
+ "channel": "mop_mode",
+ "type": "Number",
+ "stateDescription": {
+ "options": [
+ {
+ "value": "1",
+ "label": "low water"
+ },
+ {
+ "value": "2",
+ "label": "medium water"
+ },
+ {
+ "value": "3",
+ "label": "high water"
+ }
+ ]
+ },
+ "refresh": true,
+ "actions": [
+ {
+ "command": "set_properties",
+ "parameterType": "STRING"
+ }
+ ],
+ "readmeComment": "Value mapping `[\"1\"\u003d\"low water\",\"2\"\u003d\"medium water\",\"3\"\u003d\"high water\"]`"
+ },
+ {
+ "property": "waterbox-status",
+ "siid": 4,
+ "piid": 6,
+ "friendlyName": "Vacuum Extend - Waterbox Status",
+ "channel": "waterbox_status",
+ "type": "Number",
+ "stateDescription": {
+ "readOnly": true,
+ "options": [
+ {
+ "value": "0",
+ "label": "Status 0"
+ },
+ {
+ "value": "1",
+ "label": "Status 1"
+ }
+ ]
+ },
+ "refresh": true,
+ "actions": [],
+ "readmeComment": "Value mapping `[\"0\"\u003d\"Status 0\",\"1\"\u003d\"Status 1\"]`"
+ },
+ {
+ "property": "task-status",
+ "siid": 4,
+ "piid": 7,
+ "friendlyName": "Vacuum Extend - Task Status",
+ "channel": "task_status",
+ "type": "Number",
+ "stateDescription": {
+ "readOnly": true,
+ "options": [
+ {
+ "value": "0",
+ "label": "Notask"
+ },
+ {
+ "value": "1",
+ "label": "AutoClean"
+ },
+ {
+ "value": "2",
+ "label": "CustomClean"
+ },
+ {
+ "value": "3",
+ "label": "SelectAreanClean"
+ },
+ {
+ "value": "4",
+ "label": "SpotArea"
+ }
+ ]
+ },
+ "refresh": true,
+ "actions": [],
+ "readmeComment": "Value mapping `[\"0\"\u003d\"Notask\",\"1\"\u003d\"AutoClean\",\"2\"\u003d\"CustomClean\",\"3\"\u003d\"SelectAreanClean\",\"4\"\u003d\"SpotArea\"]`"
+ },
+ {
+ "property": "clean-extend-data",
+ "siid": 4,
+ "piid": 10,
+ "friendlyName": "Vacuum Extend - Clean Extend Data",
+ "channel": "clean_extend_data",
+ "type": "String",
+ "refresh": false,
+ "actions": [
+ {
+ "command": "set_properties",
+ "parameterType": "STRING"
+ }
+ ]
+ },
+ {
+ "property": "break-point-restart",
+ "siid": 4,
+ "piid": 11,
+ "friendlyName": "Vacuum Extend - Break Point Restart",
+ "channel": "break_point_restart",
+ "type": "Number",
+ "stateDescription": {
+ "options": [
+ {
+ "value": "0",
+ "label": "Off"
+ },
+ {
+ "value": "1",
+ "label": "On"
+ }
+ ]
+ },
+ "refresh": true,
+ "actions": [
+ {
+ "command": "set_properties",
+ "parameterType": "NUMBER"
+ }
+ ],
+ "readmeComment": "Value mapping `[\"0\"\u003d\"Off\",\"1\"\u003d\"On\"]`"
+ },
+ {
+ "property": "carpet-press",
+ "siid": 4,
+ "piid": 12,
+ "friendlyName": "Vacuum Extend - Carpet Press",
+ "channel": "carpet_press",
+ "type": "Number",
+ "stateDescription": {
+ "options": [
+ {
+ "value": "0",
+ "label": "Off"
+ },
+ {
+ "value": "1",
+ "label": "On"
+ }
+ ]
+ },
+ "refresh": true,
+ "actions": [
+ {
+ "command": "set_properties",
+ "parameterType": "NUMBER"
+ }
+ ],
+ "readmeComment": "Value mapping `[\"0\"\u003d\"Off\",\"1\"\u003d\"On\"]`"
+ },
+ {
+ "property": "remote-state",
+ "siid": 4,
+ "piid": 15,
+ "friendlyName": "Vacuum Extend - Remote State",
+ "channel": "remote_state",
+ "type": "String",
+ "refresh": false,
+ "actions": [
+ {
+ "command": "set_properties",
+ "parameterType": "STRING"
+ }
+ ]
+ },
+ {
+ "property": "clean-rags-tip",
+ "siid": 4,
+ "piid": 16,
+ "friendlyName": "Vacuum Extend - Clean Rags Tip",
+ "channel": "clean_rags_tip",
+ "type": "Number:Time",
+ "unit": "minutes",
+ "stateDescription": {
+ "minimum": 0,
+ "maximum": 120,
+ "step": 1,
+ "pattern": "%.0f %unit%"
+ },
+ "refresh": true,
+ "actions": [
+ {
+ "command": "set_properties",
+ "parameterType": "STRING"
+ }
+ ]
+ },
+ {
+ "property": "keep-sweeper-time",
+ "siid": 4,
+ "piid": 17,
+ "friendlyName": "Vacuum Extend - Keep Sweeper Time",
+ "channel": "keep_sweeper_time",
+ "type": "Number:Time",
+ "unit": "minutes",
+ "stateDescription": {
+ "minimum": -1,
+ "maximum": 1000000,
+ "step": 1,
+ "pattern": "%.0f %unit%",
+ "readOnly": true
+ },
+ "refresh": true,
+ "actions": []
+ },
+ {
+ "property": "faults",
+ "siid": 4,
+ "piid": 18,
+ "friendlyName": "Vacuum Extend - Faults",
+ "channel": "faults",
+ "type": "String",
+ "stateDescription": {
+ "readOnly": true
+ },
+ "refresh": true,
+ "actions": []
+ },
+ {
+ "property": "nation-matched",
+ "siid": 4,
+ "piid": 19,
+ "friendlyName": "Vacuum Extend - Nation Matched",
+ "channel": "nation_matched",
+ "type": "String",
+ "stateDescription": {
+ "readOnly": true
+ },
+ "refresh": true,
+ "actions": []
+ },
+ {
+ "property": "relocation-status",
+ "siid": 4,
+ "piid": 20,
+ "friendlyName": "Vacuum Extend - Relocation Status",
+ "channel": "relocation_status",
+ "type": "Number",
+ "stateDescription": {
+ "minimum": 0,
+ "maximum": 1000000,
+ "step": 1,
+ "pattern": "%.0f",
+ "readOnly": true
+ },
+ "refresh": true,
+ "actions": []
+ },
+ {
+ "property": "mop-status",
+ "siid": 4,
+ "piid": 25,
+ "friendlyName": "Vacuum Extend - Mop Status",
+ "channel": "mop_status",
+ "type": "Number",
+ "stateDescription": {
+ "minimum": 0,
+ "maximum": 255,
+ "step": 1,
+ "pattern": "%.0f",
+ "readOnly": true
+ },
+ "refresh": true,
+ "actions": []
+ },
+ {
+ "property": "child-lock",
+ "siid": 4,
+ "piid": 27,
+ "friendlyName": "Vacuum Extend - Child Lock",
+ "channel": "child_lock",
+ "type": "Number",
+ "stateDescription": {
+ "options": [
+ {
+ "value": "0",
+ "label": "Close"
+ },
+ {
+ "value": "1",
+ "label": "Open"
+ }
+ ]
+ },
+ "refresh": true,
+ "actions": [
+ {
+ "command": "set_properties",
+ "parameterType": "STRING"
+ }
+ ],
+ "readmeComment": "Value mapping `[\"0\"\u003d\"Close\",\"1\"\u003d\"Open\"]`"
+ },
+ {
+ "property": "clean-cancel",
+ "siid": 4,
+ "piid": 30,
+ "friendlyName": "Vacuum Extend - Clean Cancel",
+ "channel": "clean_cancel",
+ "type": "Number",
+ "stateDescription": {
+ "minimum": 0,
+ "maximum": 255,
+ "step": 1,
+ "pattern": "%.0f",
+ "readOnly": true
+ },
+ "refresh": true,
+ "actions": []
+ },
+ {
+ "property": "enable",
+ "siid": 5,
+ "piid": 1,
+ "friendlyName": "Do Not Disturb - Enable",
+ "channel": "enable",
+ "type": "Switch",
+ "refresh": true,
+ "actions": [
+ {
+ "command": "set_properties",
+ "parameterType": "ONOFFBOOL"
+ }
+ ]
+ },
+ {
+ "property": "start-time",
+ "siid": 5,
+ "piid": 2,
+ "friendlyName": "Do Not Disturb - Start Time",
+ "channel": "start_time",
+ "type": "String",
+ "refresh": true,
+ "actions": [
+ {
+ "command": "set_properties",
+ "parameterType": "STRING"
+ }
+ ]
+ },
+ {
+ "property": "end-time",
+ "siid": 5,
+ "piid": 3,
+ "friendlyName": "Do Not Disturb - End Time",
+ "channel": "end_time",
+ "type": "String",
+ "refresh": true,
+ "actions": [
+ {
+ "command": "set_properties",
+ "parameterType": "STRING"
+ }
+ ]
+ },
+ {
+ "property": "frame-info",
+ "siid": 6,
+ "piid": 2,
+ "friendlyName": "Map - Frame Info",
+ "channel": "frame_info",
+ "type": "String",
+ "refresh": false,
+ "actions": [
+ {
+ "command": "set_properties",
+ "parameterType": "STRING"
+ }
+ ]
+ },
+ {
+ "property": "map-extend-data",
+ "siid": 6,
+ "piid": 4,
+ "friendlyName": "Map - Map Extend Data",
+ "channel": "map_extend_data",
+ "type": "String",
+ "refresh": false,
+ "actions": [
+ {
+ "command": "set_properties",
+ "parameterType": "STRING"
+ }
+ ]
+ },
+ {
+ "property": "mult-map-state",
+ "siid": 6,
+ "piid": 7,
+ "friendlyName": "Map - Mult Map State",
+ "channel": "mult_map_state",
+ "type": "Number",
+ "stateDescription": {
+ "options": [
+ {
+ "value": "0",
+ "label": "Close"
+ },
+ {
+ "value": "1",
+ "label": "Open"
+ }
+ ]
+ },
+ "refresh": true,
+ "actions": [
+ {
+ "command": "set_properties",
+ "parameterType": "NUMBER"
+ }
+ ],
+ "readmeComment": "Value mapping `[\"0\"\u003d\"Close\",\"1\"\u003d\"Open\"]`"
+ },
+ {
+ "property": "mult-map-info",
+ "siid": 6,
+ "piid": 8,
+ "friendlyName": "Map - Mult Map Info",
+ "channel": "mult_map_info",
+ "type": "String",
+ "stateDescription": {
+ "readOnly": true
+ },
+ "refresh": true,
+ "actions": []
+ },
+ {
+ "property": "volume",
+ "siid": 7,
+ "piid": 1,
+ "friendlyName": "Audio - Volume",
+ "channel": "volume",
+ "type": "Number:Dimensionless",
+ "unit": "PERCENT",
+ "stateDescription": {
+ "minimum": 0,
+ "maximum": 100,
+ "step": 1,
+ "pattern": "%.0f"
+ },
+ "refresh": true,
+ "actions": [
+ {
+ "command": "set_properties",
+ "parameterType": "NUMBER"
+ }
+ ]
+ },
+ {
+ "property": "voice-packet-id",
+ "siid": 7,
+ "piid": 2,
+ "friendlyName": "Audio - Voice Packet Id",
+ "channel": "voice_packet_id",
+ "type": "String",
+ "refresh": true,
+ "actions": [
+ {
+ "command": "set_properties",
+ "parameterType": "STRING"
+ }
+ ]
+ },
+ {
+ "property": "voice-change-state",
+ "siid": 7,
+ "piid": 3,
+ "friendlyName": "Audio - Voice Change State",
+ "channel": "voice_change_state",
+ "type": "String",
+ "stateDescription": {
+ "readOnly": true
+ },
+ "refresh": true,
+ "actions": []
+ },
+ {
+ "property": "set-voice",
+ "siid": 7,
+ "piid": 4,
+ "friendlyName": "Audio - Set Voice",
+ "channel": "set_voice",
+ "type": "String",
+ "refresh": false,
+ "actions": [
+ {
+ "command": "set_properties",
+ "parameterType": "STRING"
+ }
+ ]
+ },
+ {
+ "property": "time-zone",
+ "siid": 8,
+ "piid": 1,
+ "friendlyName": "Time - Time Zone",
+ "channel": "time_zone",
+ "type": "String",
+ "stateDescription": {
+ "readOnly": true
+ },
+ "refresh": true,
+ "actions": []
+ },
+ {
+ "property": "timer-clean",
+ "siid": 8,
+ "piid": 2,
+ "friendlyName": "Time - Timer Clean",
+ "channel": "timer_clean",
+ "type": "String",
+ "refresh": true,
+ "actions": [
+ {
+ "command": "set_properties",
+ "parameterType": "STRING"
+ }
+ ]
+ },
+ {
+ "property": "first-clean-time",
+ "siid": 12,
+ "piid": 1,
+ "friendlyName": "Clean Logs - First Clean Time",
+ "channel": "first_clean_time",
+ "type": "Number",
+ "stateDescription": {
+ "minimum": 0,
+ "step": 1,
+ "pattern": "%.0f",
+ "readOnly": true
+ },
+ "refresh": true,
+ "actions": []
+ },
+ {
+ "property": "total-clean-time",
+ "siid": 12,
+ "piid": 2,
+ "friendlyName": "Clean Logs - Total Clean Time",
+ "channel": "total_clean_time",
+ "type": "Number:Time",
+ "unit": "minutes",
+ "stateDescription": {
+ "minimum": 0,
+ "step": 1,
+ "pattern": "%.0f %unit%",
+ "readOnly": true
+ },
+ "refresh": true,
+ "actions": []
+ },
+ {
+ "property": "total-clean-times",
+ "siid": 12,
+ "piid": 3,
+ "friendlyName": "Clean Logs - Total Clean Times",
+ "channel": "total_clean_times",
+ "type": "Number",
+ "stateDescription": {
+ "minimum": 0,
+ "step": 1,
+ "pattern": "%.0f",
+ "readOnly": true
+ },
+ "refresh": true,
+ "actions": []
+ },
+ {
+ "property": "total-clean-area",
+ "siid": 12,
+ "piid": 4,
+ "friendlyName": "Clean Logs - Total Clean Area",
+ "channel": "total_clean_area",
+ "type": "Number",
+ "stateDescription": {
+ "minimum": 0,
+ "step": 1,
+ "pattern": "%.0f",
+ "readOnly": true
+ },
+ "refresh": true,
+ "actions": []
+ }
+ ],
+ "experimental": true
+ }
+}
diff --git a/bundles/org.openhab.binding.miio/src/main/resources/database/dreame.vacuum.p2028-miot.json b/bundles/org.openhab.binding.miio/src/main/resources/database/dreame.vacuum.p2028-miot.json
new file mode 100644
index 0000000000000..c42ef35a8a0ca
--- /dev/null
+++ b/bundles/org.openhab.binding.miio/src/main/resources/database/dreame.vacuum.p2028-miot.json
@@ -0,0 +1,1316 @@
+{
+ "deviceMapping": {
+ "id": [
+ "dreame.vacuum.p2028"
+ ],
+ "propertyMethod": "get_properties",
+ "maxProperties": 1,
+ "channels": [
+ {
+ "property": "",
+ "friendlyName": "Actions",
+ "channel": "actions",
+ "type": "String",
+ "stateDescription": {
+ "options": [
+ {
+ "value": "vacuum-start-sweep",
+ "label": "Vacuum Start Sweep"
+ },
+ {
+ "value": "vacuum-stop-sweeping",
+ "label": "Vacuum Stop Sweeping"
+ },
+ {
+ "value": "battery-start-charge",
+ "label": "Battery Start Charge"
+ },
+ {
+ "value": "brush-cleaner-reset-brush-life",
+ "label": "Brush Cleaner Reset Brush Life"
+ },
+ {
+ "value": "brush-cleaner-reset-brush-life",
+ "label": "Brush Cleaner Reset Brush Life"
+ },
+ {
+ "value": "filter-reset-filter-life",
+ "label": "Filter Reset Filter Life"
+ },
+ {
+ "value": "vacuum-extend-start-clean",
+ "label": "Vacuum Extend Start Clean"
+ },
+ {
+ "value": "vacuum-extend-stop-clean",
+ "label": "Vacuum Extend Stop Clean"
+ },
+ {
+ "value": "map-map-req",
+ "label": "Map Map Req"
+ },
+ {
+ "value": "map-update-map",
+ "label": "Map Update Map"
+ },
+ {
+ "value": "audio-position",
+ "label": "Audio Position"
+ },
+ {
+ "value": "audio-play-sound",
+ "label": "Audio Play Sound"
+ },
+ {
+ "value": "time-delete-timer",
+ "label": "Time Delete Timer"
+ },
+ {
+ "value": "collect-dust-start-collect",
+ "label": "Collect Dust Start Collect"
+ }
+ ]
+ },
+ "refresh": false,
+ "actions": [
+ {
+ "command": "action",
+ "parameterType": "EMPTY",
+ "siid": 2,
+ "aiid": 1,
+ "condition": {
+ "name": "matchValue",
+ "parameters": [
+ {
+ "matchValue": "vacuum-start-sweep"
+ }
+ ]
+ }
+ },
+ {
+ "command": "action",
+ "parameterType": "EMPTY",
+ "siid": 2,
+ "aiid": 2,
+ "condition": {
+ "name": "matchValue",
+ "parameters": [
+ {
+ "matchValue": "vacuum-stop-sweeping"
+ }
+ ]
+ }
+ },
+ {
+ "command": "action",
+ "parameterType": "EMPTY",
+ "siid": 3,
+ "aiid": 1,
+ "condition": {
+ "name": "matchValue",
+ "parameters": [
+ {
+ "matchValue": "battery-start-charge"
+ }
+ ]
+ }
+ },
+ {
+ "command": "action",
+ "parameterType": "EMPTY",
+ "siid": 9,
+ "aiid": 1,
+ "condition": {
+ "name": "matchValue",
+ "parameters": [
+ {
+ "matchValue": "brush-cleaner-reset-brush-life"
+ }
+ ]
+ }
+ },
+ {
+ "command": "action",
+ "parameterType": "EMPTY",
+ "siid": 10,
+ "aiid": 1,
+ "condition": {
+ "name": "matchValue",
+ "parameters": [
+ {
+ "matchValue": "brush-cleaner-reset-brush-life"
+ }
+ ]
+ }
+ },
+ {
+ "command": "action",
+ "parameterType": "EMPTY",
+ "siid": 11,
+ "aiid": 1,
+ "condition": {
+ "name": "matchValue",
+ "parameters": [
+ {
+ "matchValue": "filter-reset-filter-life"
+ }
+ ]
+ }
+ },
+ {
+ "command": "action",
+ "parameterType": "NUMBER",
+ "parameters": [
+ 10.0
+ ],
+ "siid": 4,
+ "aiid": 1,
+ "condition": {
+ "name": "matchValue",
+ "parameters": [
+ {
+ "matchValue": "vacuum-extend-start-clean"
+ }
+ ]
+ }
+ },
+ {
+ "command": "action",
+ "parameterType": "EMPTY",
+ "siid": 4,
+ "aiid": 2,
+ "condition": {
+ "name": "matchValue",
+ "parameters": [
+ {
+ "matchValue": "vacuum-extend-stop-clean"
+ }
+ ]
+ }
+ },
+ {
+ "command": "action",
+ "parameterType": "NUMBER",
+ "parameters": [
+ 2.0
+ ],
+ "siid": 6,
+ "aiid": 1,
+ "condition": {
+ "name": "matchValue",
+ "parameters": [
+ {
+ "matchValue": "map-map-req"
+ }
+ ]
+ }
+ },
+ {
+ "command": "action",
+ "parameterType": "NUMBER",
+ "parameters": [
+ 4.0
+ ],
+ "siid": 6,
+ "aiid": 2,
+ "condition": {
+ "name": "matchValue",
+ "parameters": [
+ {
+ "matchValue": "map-update-map"
+ }
+ ]
+ }
+ },
+ {
+ "command": "action",
+ "parameterType": "EMPTY",
+ "siid": 7,
+ "aiid": 1,
+ "condition": {
+ "name": "matchValue",
+ "parameters": [
+ {
+ "matchValue": "audio-position"
+ }
+ ]
+ }
+ },
+ {
+ "command": "action",
+ "parameterType": "EMPTY",
+ "siid": 7,
+ "aiid": 2,
+ "condition": {
+ "name": "matchValue",
+ "parameters": [
+ {
+ "matchValue": "audio-play-sound"
+ }
+ ]
+ }
+ },
+ {
+ "command": "action",
+ "parameterType": "NUMBER",
+ "parameters": [
+ 3.0
+ ],
+ "siid": 8,
+ "aiid": 1,
+ "condition": {
+ "name": "matchValue",
+ "parameters": [
+ {
+ "matchValue": "time-delete-timer"
+ }
+ ]
+ }
+ },
+ {
+ "command": "action",
+ "parameterType": "EMPTY",
+ "siid": 15,
+ "aiid": 1,
+ "condition": {
+ "name": "matchValue",
+ "parameters": [
+ {
+ "matchValue": "collect-dust-start-collect"
+ }
+ ]
+ }
+ }
+ ],
+ "readmeComment": "Value mapping `[\"vacuum-start-sweep\"\u003d\"Vacuum Start Sweep\",\"vacuum-stop-sweeping\"\u003d\"Vacuum Stop Sweeping\",\"battery-start-charge\"\u003d\"Battery Start Charge\",\"brush-cleaner-reset-brush-life\"\u003d\"Brush Cleaner Reset Brush Life\",\"brush-cleaner-reset-brush-life\"\u003d\"Brush Cleaner Reset Brush Life\",\"filter-reset-filter-life\"\u003d\"Filter Reset Filter Life\",\"vacuum-extend-start-clean\"\u003d\"Vacuum Extend Start Clean\",\"vacuum-extend-stop-clean\"\u003d\"Vacuum Extend Stop Clean\",\"map-map-req\"\u003d\"Map Map Req\",\"map-update-map\"\u003d\"Map Update Map\",\"audio-position\"\u003d\"Audio Position\",\"audio-play-sound\"\u003d\"Audio Play Sound\",\"time-delete-timer\"\u003d\"Time Delete Timer\",\"collect-dust-start-collect\"\u003d\"Collect Dust Start Collect\"]`"
+ },
+ {
+ "property": "status",
+ "siid": 2,
+ "piid": 1,
+ "friendlyName": "Robot Cleaner - Status",
+ "channel": "status",
+ "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"
+ },
+ {
+ "value": "7",
+ "label": "Mopping"
+ }
+ ]
+ },
+ "refresh": true,
+ "actions": [],
+ "category": "status",
+ "tags": [
+ "Status"
+ ],
+ "readmeComment": "Value mapping `[\"1\"\u003d\"Sweeping\",\"2\"\u003d\"Idle\",\"3\"\u003d\"Paused\",\"4\"\u003d\"Error\",\"5\"\u003d\"Go Charging\",\"6\"\u003d\"Charging\",\"7\"\u003d\"Mopping\"]`"
+ },
+ {
+ "property": "fault",
+ "siid": 2,
+ "piid": 2,
+ "friendlyName": "Robot Cleaner - Device Fault",
+ "channel": "fault",
+ "type": "Number",
+ "stateDescription": {
+ "readOnly": true,
+ "options": [
+ {
+ "value": "0",
+ "label": "No Error"
+ },
+ {
+ "value": "1",
+ "label": "Drop"
+ },
+ {
+ "value": "2",
+ "label": "Cliff"
+ },
+ {
+ "value": "3",
+ "label": "Bumper"
+ },
+ {
+ "value": "4",
+ "label": "Gesture"
+ },
+ {
+ "value": "5",
+ "label": "Bumper Repeat"
+ },
+ {
+ "value": "6",
+ "label": "Drop Repeat"
+ },
+ {
+ "value": "7",
+ "label": "Optical Flow"
+ },
+ {
+ "value": "8",
+ "label": "No Box"
+ },
+ {
+ "value": "9",
+ "label": "No Tankbox"
+ },
+ {
+ "value": "10",
+ "label": "Waterbox Empty"
+ },
+ {
+ "value": "11",
+ "label": "Box full"
+ },
+ {
+ "value": "12",
+ "label": "Brush"
+ },
+ {
+ "value": "13",
+ "label": "Side Brush"
+ },
+ {
+ "value": "14",
+ "label": "Fan"
+ },
+ {
+ "value": "15",
+ "label": "Left Wheel motor"
+ },
+ {
+ "value": "16",
+ "label": "Right Wheel motor"
+ },
+ {
+ "value": "17",
+ "label": "Turn suffocate"
+ },
+ {
+ "value": "18",
+ "label": "Forward suffocate"
+ },
+ {
+ "value": "19",
+ "label": "Charger get"
+ },
+ {
+ "value": "20",
+ "label": "Battery low"
+ },
+ {
+ "value": "21",
+ "label": "Charge fault"
+ },
+ {
+ "value": "22",
+ "label": "Battery percentage"
+ },
+ {
+ "value": "23",
+ "label": "Heart"
+ },
+ {
+ "value": "24",
+ "label": "Camera occlusion"
+ },
+ {
+ "value": "25",
+ "label": "Camera fault"
+ },
+ {
+ "value": "26",
+ "label": "Event battery"
+ },
+ {
+ "value": "27",
+ "label": "Forward looking"
+ },
+ {
+ "value": "28",
+ "label": "Gyroscope"
+ }
+ ]
+ },
+ "refresh": true,
+ "actions": [],
+ "readmeComment": "Value mapping `[\"0\"\u003d\"No Error\",\"1\"\u003d\"Drop\",\"2\"\u003d\"Cliff\",\"3\"\u003d\"Bumper\",\"4\"\u003d\"Gesture\",\"5\"\u003d\"Bumper Repeat\",\"6\"\u003d\"Drop Repeat\",\"7\"\u003d\"Optical Flow\",\"8\"\u003d\"No Box\",\"9\"\u003d\"No Tankbox\",\"10\"\u003d\"Waterbox Empty\",\"11\"\u003d\"Box full\",\"12\"\u003d\"Brush\",\"13\"\u003d\"Side Brush\",\"14\"\u003d\"Fan\",\"15\"\u003d\"Left Wheel motor\",\"16\"\u003d\"Right Wheel motor\",\"17\"\u003d\"Turn suffocate\",\"18\"\u003d\"Forward suffocate\",\"19\"\u003d\"Charger get\",\"20\"\u003d\"Battery low\",\"21\"\u003d\"Charge fault\",\"22\"\u003d\"Battery percentage\",\"23\"\u003d\"Heart\",\"24\"\u003d\"Camera occlusion\",\"25\"\u003d\"Camera fault\",\"26\"\u003d\"Event battery\",\"27\"\u003d\"Forward looking\",\"28\"\u003d\"Gyroscope\"]`"
+ },
+ {
+ "property": "battery-level",
+ "siid": 3,
+ "piid": 1,
+ "friendlyName": "Battery - Battery Level",
+ "channel": "battery_level",
+ "type": "Number:Dimensionless",
+ "unit": "percentage",
+ "stateDescription": {
+ "minimum": 0,
+ "maximum": 100,
+ "step": 1,
+ "pattern": "%.0f %unit%",
+ "readOnly": true
+ },
+ "refresh": true,
+ "actions": []
+ },
+ {
+ "property": "charging-state",
+ "siid": 3,
+ "piid": 2,
+ "friendlyName": "Battery - Charging State",
+ "channel": "charging_state",
+ "type": "Number",
+ "stateDescription": {
+ "readOnly": true,
+ "options": [
+ {
+ "value": "1",
+ "label": "Charging"
+ },
+ {
+ "value": "2",
+ "label": "Not Charging"
+ },
+ {
+ "value": "5",
+ "label": "Go Charging"
+ }
+ ]
+ },
+ "refresh": true,
+ "actions": [],
+ "readmeComment": "Value mapping `[\"1\"\u003d\"Charging\",\"2\"\u003d\"Not Charging\",\"5\"\u003d\"Go Charging\"]`"
+ },
+ {
+ "property": "brush-left-time",
+ "siid": 9,
+ "piid": 1,
+ "friendlyName": "Main Cleaning Brush - Brush Left Time",
+ "channel": "brush_left_time",
+ "type": "Number:Time",
+ "unit": "hours",
+ "stateDescription": {
+ "minimum": 0,
+ "maximum": 300,
+ "step": 1,
+ "pattern": "%.0f %unit%",
+ "readOnly": true
+ },
+ "refresh": true,
+ "actions": []
+ },
+ {
+ "property": "brush-life-level",
+ "siid": 9,
+ "piid": 2,
+ "friendlyName": "Main Cleaning Brush - Brush Life Level",
+ "channel": "brush_life_level",
+ "type": "Number:Dimensionless",
+ "unit": "percentage",
+ "stateDescription": {
+ "minimum": 0,
+ "maximum": 100,
+ "step": 1,
+ "pattern": "%.0f %unit%",
+ "readOnly": true
+ },
+ "refresh": true,
+ "actions": []
+ },
+ {
+ "property": "brush-left-time1",
+ "siid": 10,
+ "piid": 1,
+ "friendlyName": "Side Cleaning Brush - Brush Left Time",
+ "channel": "brush_left_time1",
+ "type": "Number:Time",
+ "unit": "hours",
+ "stateDescription": {
+ "minimum": 0,
+ "maximum": 200,
+ "step": 1,
+ "pattern": "%.0f %unit%",
+ "readOnly": true
+ },
+ "refresh": true,
+ "actions": []
+ },
+ {
+ "property": "brush-life-level1",
+ "siid": 10,
+ "piid": 2,
+ "friendlyName": "Side Cleaning Brush - Brush Life Level",
+ "channel": "brush_life_level1",
+ "type": "Number:Dimensionless",
+ "unit": "percentage",
+ "stateDescription": {
+ "minimum": 0,
+ "maximum": 100,
+ "step": 1,
+ "pattern": "%.0f %unit%",
+ "readOnly": true
+ },
+ "refresh": true,
+ "actions": []
+ },
+ {
+ "property": "filter-life-level",
+ "siid": 11,
+ "piid": 1,
+ "friendlyName": "Filter - Filter Life Level",
+ "channel": "filter_life_level",
+ "type": "Number:Dimensionless",
+ "unit": "percentage",
+ "stateDescription": {
+ "minimum": 0,
+ "maximum": 100,
+ "step": 1,
+ "pattern": "%.0f %unit%",
+ "readOnly": true
+ },
+ "refresh": true,
+ "actions": []
+ },
+ {
+ "property": "filter-left-time",
+ "siid": 11,
+ "piid": 2,
+ "friendlyName": "Filter - Filter Left Time",
+ "channel": "filter_left_time",
+ "type": "Number:Time",
+ "unit": "hours",
+ "stateDescription": {
+ "minimum": 0,
+ "maximum": 150,
+ "step": 1,
+ "pattern": "%.0f %unit%",
+ "readOnly": true
+ },
+ "refresh": true,
+ "actions": []
+ },
+ {
+ "property": "work-mode",
+ "siid": 4,
+ "piid": 1,
+ "friendlyName": "Vacuum Extend - Work Mode",
+ "channel": "work_mode",
+ "type": "Number",
+ "stateDescription": {
+ "minimum": 0,
+ "maximum": 50,
+ "step": 1,
+ "pattern": "%.0f",
+ "readOnly": true
+ },
+ "refresh": true,
+ "actions": []
+ },
+ {
+ "property": "cleaning-time",
+ "siid": 4,
+ "piid": 2,
+ "friendlyName": "Vacuum Extend - Cleaning Time",
+ "channel": "cleaning_time",
+ "type": "Number:Time",
+ "unit": "minutes",
+ "stateDescription": {
+ "minimum": 0,
+ "maximum": 32767,
+ "step": 1,
+ "pattern": "%.0f %unit%",
+ "readOnly": true
+ },
+ "refresh": true,
+ "actions": []
+ },
+ {
+ "property": "cleaning-area",
+ "siid": 4,
+ "piid": 3,
+ "friendlyName": "Vacuum Extend - Cleaning Area",
+ "channel": "cleaning-area",
+ "type": "Number:Area",
+ "unit": "square_meter",
+ "stateDescription": {
+ "minimum": 0,
+ "maximum": 32767,
+ "step": 1,
+ "pattern": "%.1f %unit%",
+ "readOnly": true
+ },
+ "refresh": true,
+ "actions": []
+ },
+ {
+ "property": "cleaning-mode",
+ "siid": 4,
+ "piid": 4,
+ "friendlyName": "Vacuum Extend - Cleaning Mode",
+ "channel": "cleaning_mode",
+ "type": "Number",
+ "stateDescription": {
+ "options": [
+ {
+ "value": "0",
+ "label": "mode 0"
+ },
+ {
+ "value": "1",
+ "label": "mode 1"
+ },
+ {
+ "value": "2",
+ "label": "mode 2"
+ },
+ {
+ "value": "3",
+ "label": "mode 3"
+ }
+ ]
+ },
+ "refresh": true,
+ "actions": [
+ {
+ "command": "set_properties",
+ "parameterType": "STRING"
+ }
+ ],
+ "readmeComment": "Value mapping `[\"0\"\u003d\"mode 0\",\"1\"\u003d\"mode 1\",\"2\"\u003d\"mode 2\",\"3\"\u003d\"mode 3\"]`"
+ },
+ {
+ "property": "mop-mode",
+ "siid": 4,
+ "piid": 5,
+ "friendlyName": "Vacuum Extend - Mop Mode",
+ "channel": "mop_mode",
+ "type": "Number",
+ "stateDescription": {
+ "options": [
+ {
+ "value": "1",
+ "label": "low water"
+ },
+ {
+ "value": "2",
+ "label": "medium water"
+ },
+ {
+ "value": "3",
+ "label": "high water"
+ }
+ ]
+ },
+ "refresh": true,
+ "actions": [
+ {
+ "command": "set_properties",
+ "parameterType": "STRING"
+ }
+ ],
+ "readmeComment": "Value mapping `[\"1\"\u003d\"low water\",\"2\"\u003d\"medium water\",\"3\"\u003d\"high water\"]`"
+ },
+ {
+ "property": "waterbox-status",
+ "siid": 4,
+ "piid": 6,
+ "friendlyName": "Vacuum Extend - Waterbox Status",
+ "channel": "waterbox_status",
+ "type": "Number",
+ "stateDescription": {
+ "readOnly": true,
+ "options": [
+ {
+ "value": "0",
+ "label": "Status 0"
+ },
+ {
+ "value": "1",
+ "label": "Status 1"
+ }
+ ]
+ },
+ "refresh": true,
+ "actions": [],
+ "readmeComment": "Value mapping `[\"0\"\u003d\"Status 0\",\"1\"\u003d\"Status 1\"]`"
+ },
+ {
+ "property": "task-status",
+ "siid": 4,
+ "piid": 7,
+ "friendlyName": "Vacuum Extend - Task Status",
+ "channel": "task_status",
+ "type": "Number",
+ "stateDescription": {
+ "readOnly": true,
+ "options": [
+ {
+ "value": "0",
+ "label": "Notask"
+ },
+ {
+ "value": "1",
+ "label": "AutoClean"
+ },
+ {
+ "value": "2",
+ "label": "CustomClean"
+ },
+ {
+ "value": "3",
+ "label": "SelectAreanClean"
+ },
+ {
+ "value": "4",
+ "label": "SpotArea"
+ }
+ ]
+ },
+ "refresh": true,
+ "actions": [],
+ "readmeComment": "Value mapping `[\"0\"\u003d\"Notask\",\"1\"\u003d\"AutoClean\",\"2\"\u003d\"CustomClean\",\"3\"\u003d\"SelectAreanClean\",\"4\"\u003d\"SpotArea\"]`"
+ },
+ {
+ "property": "clean-extend-data",
+ "siid": 4,
+ "piid": 10,
+ "friendlyName": "Vacuum Extend - Clean Extend Data",
+ "channel": "clean_extend_data",
+ "type": "String",
+ "refresh": false,
+ "actions": [
+ {
+ "command": "set_properties",
+ "parameterType": "STRING"
+ }
+ ]
+ },
+ {
+ "property": "break-point-restart",
+ "siid": 4,
+ "piid": 11,
+ "friendlyName": "Vacuum Extend - Break Point Restart",
+ "channel": "break_point_restart",
+ "type": "Number",
+ "stateDescription": {
+ "options": [
+ {
+ "value": "0",
+ "label": "Off"
+ },
+ {
+ "value": "1",
+ "label": "On"
+ }
+ ]
+ },
+ "refresh": true,
+ "actions": [
+ {
+ "command": "set_properties",
+ "parameterType": "NUMBER"
+ }
+ ],
+ "readmeComment": "Value mapping `[\"0\"\u003d\"Off\",\"1\"\u003d\"On\"]`"
+ },
+ {
+ "property": "carpet-press",
+ "siid": 4,
+ "piid": 12,
+ "friendlyName": "Vacuum Extend - Carpet Press",
+ "channel": "carpet_press",
+ "type": "Number",
+ "stateDescription": {
+ "options": [
+ {
+ "value": "0",
+ "label": "Off"
+ },
+ {
+ "value": "1",
+ "label": "On"
+ }
+ ]
+ },
+ "refresh": true,
+ "actions": [
+ {
+ "command": "set_properties",
+ "parameterType": "NUMBER"
+ }
+ ],
+ "readmeComment": "Value mapping `[\"0\"\u003d\"Off\",\"1\"\u003d\"On\"]`"
+ },
+ {
+ "property": "remote-state",
+ "siid": 4,
+ "piid": 15,
+ "friendlyName": "Vacuum Extend - Remote State",
+ "channel": "remote_state",
+ "type": "String",
+ "refresh": false,
+ "actions": [
+ {
+ "command": "set_properties",
+ "parameterType": "STRING"
+ }
+ ]
+ },
+ {
+ "property": "clean-rags-tip",
+ "siid": 4,
+ "piid": 16,
+ "friendlyName": "Vacuum Extend - Clean Rags Tip",
+ "channel": "clean_rags_tip",
+ "type": "Number:Time",
+ "unit": "minutes",
+ "stateDescription": {
+ "minimum": 0,
+ "maximum": 120,
+ "step": 1,
+ "pattern": "%.0f %unit%"
+ },
+ "refresh": true,
+ "actions": [
+ {
+ "command": "set_properties",
+ "parameterType": "STRING"
+ }
+ ]
+ },
+ {
+ "property": "keep-sweeper-time",
+ "siid": 4,
+ "piid": 17,
+ "friendlyName": "Vacuum Extend - Keep Sweeper Time",
+ "channel": "keep_sweeper_time",
+ "type": "Number:Time",
+ "unit": "minutes",
+ "stateDescription": {
+ "minimum": -1,
+ "maximum": 1000000,
+ "step": 1,
+ "pattern": "%.0f %unit%",
+ "readOnly": true
+ },
+ "refresh": true,
+ "actions": []
+ },
+ {
+ "property": "faults",
+ "siid": 4,
+ "piid": 18,
+ "friendlyName": "Vacuum Extend - Faults",
+ "channel": "faults",
+ "type": "String",
+ "stateDescription": {
+ "readOnly": true
+ },
+ "refresh": true,
+ "actions": []
+ },
+ {
+ "property": "nation-matched",
+ "siid": 4,
+ "piid": 19,
+ "friendlyName": "Vacuum Extend - Nation Matched",
+ "channel": "nation_matched",
+ "type": "String",
+ "stateDescription": {
+ "readOnly": true
+ },
+ "refresh": true,
+ "actions": []
+ },
+ {
+ "property": "relocation-status",
+ "siid": 4,
+ "piid": 20,
+ "friendlyName": "Vacuum Extend - Relocation Status",
+ "channel": "relocation_status",
+ "type": "Number",
+ "stateDescription": {
+ "minimum": 0,
+ "maximum": 1000000,
+ "step": 1,
+ "pattern": "%.0f",
+ "readOnly": true
+ },
+ "refresh": true,
+ "actions": []
+ },
+ {
+ "property": "enable",
+ "siid": 5,
+ "piid": 1,
+ "friendlyName": "Do Not Disturb - Enable",
+ "channel": "enable",
+ "type": "Switch",
+ "refresh": true,
+ "actions": [
+ {
+ "command": "set_properties",
+ "parameterType": "ONOFFBOOL"
+ }
+ ]
+ },
+ {
+ "property": "start-time",
+ "siid": 5,
+ "piid": 2,
+ "friendlyName": "Do Not Disturb - Start Time",
+ "channel": "start_time",
+ "type": "String",
+ "refresh": true,
+ "actions": [
+ {
+ "command": "set_properties",
+ "parameterType": "STRING"
+ }
+ ]
+ },
+ {
+ "property": "end-time",
+ "siid": 5,
+ "piid": 3,
+ "friendlyName": "Do Not Disturb - End Time",
+ "channel": "end_time",
+ "type": "String",
+ "refresh": true,
+ "actions": [
+ {
+ "command": "set_properties",
+ "parameterType": "STRING"
+ }
+ ]
+ },
+ {
+ "property": "frame-info",
+ "siid": 6,
+ "piid": 2,
+ "friendlyName": "Map - Frame Info",
+ "channel": "frame_info",
+ "type": "String",
+ "refresh": false,
+ "actions": [
+ {
+ "command": "set_properties",
+ "parameterType": "STRING"
+ }
+ ]
+ },
+ {
+ "property": "map-extend-data",
+ "siid": 6,
+ "piid": 4,
+ "friendlyName": "Map - Map Extend Data",
+ "channel": "map_extend_data",
+ "type": "String",
+ "refresh": false,
+ "actions": [
+ {
+ "command": "set_properties",
+ "parameterType": "STRING"
+ }
+ ]
+ },
+ {
+ "property": "mult-map-state",
+ "siid": 6,
+ "piid": 7,
+ "friendlyName": "Map - Mult Map State",
+ "channel": "mult_map_state",
+ "type": "Number",
+ "stateDescription": {
+ "options": [
+ {
+ "value": "0",
+ "label": "Close"
+ },
+ {
+ "value": "1",
+ "label": "Open"
+ }
+ ]
+ },
+ "refresh": true,
+ "actions": [
+ {
+ "command": "set_properties",
+ "parameterType": "NUMBER"
+ }
+ ],
+ "readmeComment": "Value mapping `[\"0\"\u003d\"Close\",\"1\"\u003d\"Open\"]`"
+ },
+ {
+ "property": "mult-map-info",
+ "siid": 6,
+ "piid": 8,
+ "friendlyName": "Map - Mult Map Info",
+ "channel": "mult_map_info",
+ "type": "String",
+ "stateDescription": {
+ "readOnly": true
+ },
+ "refresh": true,
+ "actions": []
+ },
+ {
+ "property": "volume",
+ "siid": 7,
+ "piid": 1,
+ "friendlyName": "Audio - Volume",
+ "channel": "volume",
+ "type": "Number:Dimensionless",
+ "unit": "PERCENT",
+ "stateDescription": {
+ "minimum": 0,
+ "maximum": 100,
+ "step": 1,
+ "pattern": "%.0f"
+ },
+ "refresh": true,
+ "actions": [
+ {
+ "command": "set_properties",
+ "parameterType": "NUMBER"
+ }
+ ]
+ },
+ {
+ "property": "voice-packet-id",
+ "siid": 7,
+ "piid": 2,
+ "friendlyName": "Audio - Voice Packet Id",
+ "channel": "voice_packet_id",
+ "type": "String",
+ "refresh": true,
+ "actions": [
+ {
+ "command": "set_properties",
+ "parameterType": "STRING"
+ }
+ ]
+ },
+ {
+ "property": "voice-change-state",
+ "siid": 7,
+ "piid": 3,
+ "friendlyName": "Audio - Voice Change State",
+ "channel": "voice_change_state",
+ "type": "String",
+ "stateDescription": {
+ "readOnly": true
+ },
+ "refresh": true,
+ "actions": []
+ },
+ {
+ "property": "set-voice",
+ "siid": 7,
+ "piid": 4,
+ "friendlyName": "Audio - Set Voice",
+ "channel": "set_voice",
+ "type": "String",
+ "refresh": false,
+ "actions": [
+ {
+ "command": "set_properties",
+ "parameterType": "STRING"
+ }
+ ]
+ },
+ {
+ "property": "time-zone",
+ "siid": 8,
+ "piid": 1,
+ "friendlyName": "Time - Time Zone",
+ "channel": "time_zone",
+ "type": "String",
+ "stateDescription": {
+ "readOnly": true
+ },
+ "refresh": true,
+ "actions": []
+ },
+ {
+ "property": "timer-clean",
+ "siid": 8,
+ "piid": 2,
+ "friendlyName": "Time - Timer Clean",
+ "channel": "timer_clean",
+ "type": "String",
+ "refresh": true,
+ "actions": [
+ {
+ "command": "set_properties",
+ "parameterType": "STRING"
+ }
+ ]
+ },
+ {
+ "property": "first-clean-time",
+ "siid": 12,
+ "piid": 1,
+ "friendlyName": "Clean Logs - First Clean Time",
+ "channel": "first_clean_time",
+ "type": "Number",
+ "stateDescription": {
+ "minimum": 0,
+ "step": 1,
+ "pattern": "%.0f",
+ "readOnly": true
+ },
+ "refresh": true,
+ "actions": []
+ },
+ {
+ "property": "total-clean-time",
+ "siid": 12,
+ "piid": 2,
+ "friendlyName": "Clean Logs - Total Clean Time",
+ "channel": "total_clean_time",
+ "type": "Number:Time",
+ "unit": "minutes",
+ "stateDescription": {
+ "minimum": 0,
+ "step": 1,
+ "pattern": "%.0f %unit%",
+ "readOnly": true
+ },
+ "refresh": true,
+ "actions": []
+ },
+ {
+ "property": "total-clean-times",
+ "siid": 12,
+ "piid": 3,
+ "friendlyName": "Clean Logs - Total Clean Times",
+ "channel": "total_clean_times",
+ "type": "Number",
+ "stateDescription": {
+ "minimum": 0,
+ "step": 1,
+ "pattern": "%.0f",
+ "readOnly": true
+ },
+ "refresh": true,
+ "actions": []
+ },
+ {
+ "property": "total-clean-area",
+ "siid": 12,
+ "piid": 4,
+ "friendlyName": "Clean Logs - Total Clean Area",
+ "channel": "total_clean_area",
+ "type": "Number",
+ "stateDescription": {
+ "minimum": 0,
+ "step": 1,
+ "pattern": "%.0f",
+ "readOnly": true
+ },
+ "refresh": true,
+ "actions": []
+ },
+ {
+ "property": "auto-collect",
+ "siid": 15,
+ "piid": 1,
+ "friendlyName": "Collect Dust - Auto Collect",
+ "channel": "auto_collect",
+ "type": "Number",
+ "stateDescription": {
+ "options": [
+ {
+ "value": "0",
+ "label": "Close-auto-collect"
+ },
+ {
+ "value": "1",
+ "label": "Open-auto-collect"
+ }
+ ]
+ },
+ "refresh": true,
+ "actions": [
+ {
+ "command": "set_properties",
+ "parameterType": "STRING"
+ }
+ ],
+ "readmeComment": "Value mapping `[\"0\"\u003d\"Close-auto-collect\",\"1\"\u003d\"Open-auto-collect\"]`"
+ },
+ {
+ "property": "clean-times",
+ "siid": 15,
+ "piid": 2,
+ "friendlyName": "Collect Dust - Clean Times",
+ "channel": "clean_times",
+ "type": "Number",
+ "stateDescription": {
+ "minimum": 1,
+ "maximum": 1000000,
+ "step": 1,
+ "pattern": "%.0f"
+ },
+ "refresh": true,
+ "actions": []
+ },
+ {
+ "property": "dust-enable",
+ "siid": 15,
+ "piid": 3,
+ "friendlyName": "Collect Dust - Dust Enable",
+ "channel": "dust_enable",
+ "type": "Number",
+ "stateDescription": {
+ "readOnly": true,
+ "options": [
+ {
+ "value": "0",
+ "label": "Disable"
+ },
+ {
+ "value": "1",
+ "label": "Enable"
+ }
+ ]
+ },
+ "refresh": true,
+ "actions": [],
+ "readmeComment": "Value mapping `[\"0\"\u003d\"Disable\",\"1\"\u003d\"Enable\"]`"
+ }
+ ],
+ "experimental": true
+ }
+}
diff --git a/bundles/org.openhab.binding.miio/src/main/resources/database/dreame.vacuum.p2156o-miot.json b/bundles/org.openhab.binding.miio/src/main/resources/database/dreame.vacuum.p2156o-miot.json
index 0a698c2083f42..dcb5f1f25954f 100644
--- a/bundles/org.openhab.binding.miio/src/main/resources/database/dreame.vacuum.p2156o-miot.json
+++ b/bundles/org.openhab.binding.miio/src/main/resources/database/dreame.vacuum.p2156o-miot.json
@@ -1019,7 +1019,6 @@
"readmeComment": "Value mapping `[\"0\"\u003d\"Off\",\"1\"\u003d\"On\"]`"
}
],
- "readmeComment": "Identified manual actions for execution\u003cbr /\u003e`action{\"did\":\"vacuum-start-sweep\",\"siid\":2,\"aiid\":1,\"in\":[]}`\u003cbr /\u003e`action{\"did\":\"vacuum-stop-sweeping\",\"siid\":2,\"aiid\":2,\"in\":[]}`\u003cbr /\u003e`action{\"did\":\"battery-start-charge\",\"siid\":3,\"aiid\":1,\"in\":[]}`\u003cbr /\u003e`action{\"did\":\"brush-cleaner-reset-brush-life\",\"siid\":9,\"aiid\":1,\"in\":[]}`\u003cbr /\u003e`action{\"did\":\"brush-cleaner-reset-brush-life\",\"siid\":10,\"aiid\":1,\"in\":[]}`\u003cbr /\u003e`action{\"did\":\"filter-reset-filter-life\",\"siid\":11,\"aiid\":1,\"in\":[]}`\u003cbr /\u003e`action{\"did\":\"vacuum-extend-start-clean\",\"siid\":4,\"aiid\":1,\"in\":[10.0]}`\u003cbr /\u003e`action{\"did\":\"vacuum-extend-stop-clean\",\"siid\":4,\"aiid\":2,\"in\":[]}`\u003cbr /\u003e`action{\"did\":\"map-map-req\",\"siid\":6,\"aiid\":1,\"in\":[2.0]}`\u003cbr /\u003e`action{\"did\":\"map-update-map\",\"siid\":6,\"aiid\":2,\"in\":[4.0]}`\u003cbr /\u003e`action{\"did\":\"audio-position\",\"siid\":7,\"aiid\":1,\"in\":[]}`\u003cbr /\u003e`action{\"did\":\"audio-play-sound\",\"siid\":7,\"aiid\":2,\"in\":[]}`\u003cbr /\u003e`action{\"did\":\"time-delete-timer\",\"siid\":8,\"aiid\":1,\"in\":[3.0]}`\u003cbr /\u003ePlease test and feedback if they are working so they can be linked to a channel.",
"experimental": true
}
}
diff --git a/bundles/org.openhab.binding.miio/src/main/resources/database/dreame.vacuum.p2259-miot.json b/bundles/org.openhab.binding.miio/src/main/resources/database/dreame.vacuum.p2259-miot.json
new file mode 100644
index 0000000000000..24b75c8b1f32e
--- /dev/null
+++ b/bundles/org.openhab.binding.miio/src/main/resources/database/dreame.vacuum.p2259-miot.json
@@ -0,0 +1,1257 @@
+{
+ "deviceMapping": {
+ "id": [
+ "dreame.vacuum.p2259"
+ ],
+ "propertyMethod": "get_properties",
+ "maxProperties": 1,
+ "channels": [
+ {
+ "property": "",
+ "friendlyName": "Actions",
+ "channel": "actions",
+ "type": "String",
+ "stateDescription": {
+ "options": [
+ {
+ "value": "vacuum-start-sweep",
+ "label": "Vacuum Start Sweep"
+ },
+ {
+ "value": "vacuum-stop-sweeping",
+ "label": "Vacuum Stop Sweeping"
+ },
+ {
+ "value": "vacuum-start-room-sweep",
+ "label": "Vacuum Start Room Sweep"
+ },
+ {
+ "value": "battery-start-charge",
+ "label": "Battery Start Charge"
+ },
+ {
+ "value": "brush-cleaner-reset-brush-life",
+ "label": "Brush Cleaner Reset Brush Life"
+ },
+ {
+ "value": "brush-cleaner-reset-brush-life",
+ "label": "Brush Cleaner Reset Brush Life"
+ },
+ {
+ "value": "filter-reset-filter-life",
+ "label": "Filter Reset Filter Life"
+ },
+ {
+ "value": "vacuum-extend-start-clean",
+ "label": "Vacuum Extend Start Clean"
+ },
+ {
+ "value": "vacuum-extend-stop-clean",
+ "label": "Vacuum Extend Stop Clean"
+ },
+ {
+ "value": "map-map-req",
+ "label": "Map Map Req"
+ },
+ {
+ "value": "map-update-map",
+ "label": "Map Update Map"
+ },
+ {
+ "value": "audio-position",
+ "label": "Audio Position"
+ },
+ {
+ "value": "audio-play-sound",
+ "label": "Audio Play Sound"
+ },
+ {
+ "value": "time-delete-timer",
+ "label": "Time Delete Timer"
+ }
+ ]
+ },
+ "refresh": false,
+ "actions": [
+ {
+ "command": "action",
+ "parameterType": "EMPTY",
+ "siid": 2,
+ "aiid": 1,
+ "condition": {
+ "name": "matchValue",
+ "parameters": [
+ {
+ "matchValue": "vacuum-start-sweep"
+ }
+ ]
+ }
+ },
+ {
+ "command": "action",
+ "parameterType": "EMPTY",
+ "siid": 2,
+ "aiid": 2,
+ "condition": {
+ "name": "matchValue",
+ "parameters": [
+ {
+ "matchValue": "vacuum-stop-sweeping"
+ }
+ ]
+ }
+ },
+ {
+ "command": "action",
+ "parameterType": "NUMBER",
+ "parameters": [
+ 4.0
+ ],
+ "siid": 2,
+ "aiid": 3,
+ "condition": {
+ "name": "matchValue",
+ "parameters": [
+ {
+ "matchValue": "vacuum-start-room-sweep"
+ }
+ ]
+ }
+ },
+ {
+ "command": "action",
+ "parameterType": "EMPTY",
+ "siid": 3,
+ "aiid": 1,
+ "condition": {
+ "name": "matchValue",
+ "parameters": [
+ {
+ "matchValue": "battery-start-charge"
+ }
+ ]
+ }
+ },
+ {
+ "command": "action",
+ "parameterType": "EMPTY",
+ "siid": 9,
+ "aiid": 1,
+ "condition": {
+ "name": "matchValue",
+ "parameters": [
+ {
+ "matchValue": "brush-cleaner-reset-brush-life"
+ }
+ ]
+ }
+ },
+ {
+ "command": "action",
+ "parameterType": "EMPTY",
+ "siid": 10,
+ "aiid": 1,
+ "condition": {
+ "name": "matchValue",
+ "parameters": [
+ {
+ "matchValue": "brush-cleaner-reset-brush-life"
+ }
+ ]
+ }
+ },
+ {
+ "command": "action",
+ "parameterType": "EMPTY",
+ "siid": 11,
+ "aiid": 1,
+ "condition": {
+ "name": "matchValue",
+ "parameters": [
+ {
+ "matchValue": "filter-reset-filter-life"
+ }
+ ]
+ }
+ },
+ {
+ "command": "action",
+ "parameterType": "NUMBER",
+ "parameters": [
+ 10.0
+ ],
+ "siid": 4,
+ "aiid": 1,
+ "condition": {
+ "name": "matchValue",
+ "parameters": [
+ {
+ "matchValue": "vacuum-extend-start-clean"
+ }
+ ]
+ }
+ },
+ {
+ "command": "action",
+ "parameterType": "EMPTY",
+ "siid": 4,
+ "aiid": 2,
+ "condition": {
+ "name": "matchValue",
+ "parameters": [
+ {
+ "matchValue": "vacuum-extend-stop-clean"
+ }
+ ]
+ }
+ },
+ {
+ "command": "action",
+ "parameterType": "NUMBER",
+ "parameters": [
+ 2.0
+ ],
+ "siid": 6,
+ "aiid": 1,
+ "condition": {
+ "name": "matchValue",
+ "parameters": [
+ {
+ "matchValue": "map-map-req"
+ }
+ ]
+ }
+ },
+ {
+ "command": "action",
+ "parameterType": "NUMBER",
+ "parameters": [
+ 4.0
+ ],
+ "siid": 6,
+ "aiid": 2,
+ "condition": {
+ "name": "matchValue",
+ "parameters": [
+ {
+ "matchValue": "map-update-map"
+ }
+ ]
+ }
+ },
+ {
+ "command": "action",
+ "parameterType": "EMPTY",
+ "siid": 7,
+ "aiid": 1,
+ "condition": {
+ "name": "matchValue",
+ "parameters": [
+ {
+ "matchValue": "audio-position"
+ }
+ ]
+ }
+ },
+ {
+ "command": "action",
+ "parameterType": "EMPTY",
+ "siid": 7,
+ "aiid": 2,
+ "condition": {
+ "name": "matchValue",
+ "parameters": [
+ {
+ "matchValue": "audio-play-sound"
+ }
+ ]
+ }
+ },
+ {
+ "command": "action",
+ "parameterType": "NUMBER",
+ "parameters": [
+ 3.0
+ ],
+ "siid": 8,
+ "aiid": 1,
+ "condition": {
+ "name": "matchValue",
+ "parameters": [
+ {
+ "matchValue": "time-delete-timer"
+ }
+ ]
+ }
+ }
+ ],
+ "readmeComment": "Value mapping `[\"vacuum-start-sweep\"\u003d\"Vacuum Start Sweep\",\"vacuum-stop-sweeping\"\u003d\"Vacuum Stop Sweeping\",\"vacuum-start-room-sweep\"\u003d\"Vacuum Start Room Sweep\",\"battery-start-charge\"\u003d\"Battery Start Charge\",\"brush-cleaner-reset-brush-life\"\u003d\"Brush Cleaner Reset Brush Life\",\"brush-cleaner-reset-brush-life\"\u003d\"Brush Cleaner Reset Brush Life\",\"filter-reset-filter-life\"\u003d\"Filter Reset Filter Life\",\"vacuum-extend-start-clean\"\u003d\"Vacuum Extend Start Clean\",\"vacuum-extend-stop-clean\"\u003d\"Vacuum Extend Stop Clean\",\"map-map-req\"\u003d\"Map Map Req\",\"map-update-map\"\u003d\"Map Update Map\",\"audio-position\"\u003d\"Audio Position\",\"audio-play-sound\"\u003d\"Audio Play Sound\",\"time-delete-timer\"\u003d\"Time Delete Timer\"]`"
+ },
+ {
+ "property": "status",
+ "siid": 2,
+ "piid": 1,
+ "friendlyName": "Robot Cleaner - Status",
+ "channel": "status",
+ "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"
+ },
+ {
+ "value": "7",
+ "label": "Mopping"
+ }
+ ]
+ },
+ "refresh": true,
+ "actions": [],
+ "category": "status",
+ "tags": [
+ "Status"
+ ],
+ "readmeComment": "Value mapping `[\"1\"\u003d\"Sweeping\",\"2\"\u003d\"Idle\",\"3\"\u003d\"Paused\",\"4\"\u003d\"Error\",\"5\"\u003d\"Go Charging\",\"6\"\u003d\"Charging\",\"7\"\u003d\"Mopping\"]`"
+ },
+ {
+ "property": "fault",
+ "siid": 2,
+ "piid": 2,
+ "friendlyName": "Robot Cleaner - Device Fault",
+ "channel": "fault",
+ "type": "Number",
+ "stateDescription": {
+ "readOnly": true,
+ "options": [
+ {
+ "value": "0",
+ "label": "No Error"
+ },
+ {
+ "value": "1",
+ "label": "Drop"
+ },
+ {
+ "value": "2",
+ "label": "Cliff"
+ },
+ {
+ "value": "3",
+ "label": "Bumper"
+ },
+ {
+ "value": "4",
+ "label": "Gesture"
+ },
+ {
+ "value": "5",
+ "label": "Bumper Repeat"
+ },
+ {
+ "value": "6",
+ "label": "Drop Repeat"
+ },
+ {
+ "value": "7",
+ "label": "Optical Flow"
+ },
+ {
+ "value": "8",
+ "label": "No Box"
+ },
+ {
+ "value": "9",
+ "label": "No Tankbox"
+ },
+ {
+ "value": "10",
+ "label": "Waterbox Empty"
+ },
+ {
+ "value": "11",
+ "label": "Box full"
+ },
+ {
+ "value": "12",
+ "label": "Brush"
+ },
+ {
+ "value": "13",
+ "label": "Side Brush"
+ },
+ {
+ "value": "14",
+ "label": "Fan"
+ },
+ {
+ "value": "15",
+ "label": "Left Wheel motor"
+ },
+ {
+ "value": "16",
+ "label": "Right Wheel motor"
+ },
+ {
+ "value": "17",
+ "label": "Turn suffocate"
+ },
+ {
+ "value": "18",
+ "label": "Forward suffocate"
+ },
+ {
+ "value": "19",
+ "label": "Charger get"
+ },
+ {
+ "value": "20",
+ "label": "Battery low"
+ },
+ {
+ "value": "21",
+ "label": "Charge fault"
+ },
+ {
+ "value": "22",
+ "label": "Battery percentage"
+ },
+ {
+ "value": "23",
+ "label": "Heart"
+ },
+ {
+ "value": "24",
+ "label": "Camera occlusion"
+ },
+ {
+ "value": "25",
+ "label": "Camera fault"
+ },
+ {
+ "value": "26",
+ "label": "Event battery"
+ },
+ {
+ "value": "27",
+ "label": "Forward looking"
+ },
+ {
+ "value": "28",
+ "label": "Gyroscope"
+ }
+ ]
+ },
+ "refresh": true,
+ "actions": [],
+ "readmeComment": "Value mapping `[\"0\"\u003d\"No Error\",\"1\"\u003d\"Drop\",\"2\"\u003d\"Cliff\",\"3\"\u003d\"Bumper\",\"4\"\u003d\"Gesture\",\"5\"\u003d\"Bumper Repeat\",\"6\"\u003d\"Drop Repeat\",\"7\"\u003d\"Optical Flow\",\"8\"\u003d\"No Box\",\"9\"\u003d\"No Tankbox\",\"10\"\u003d\"Waterbox Empty\",\"11\"\u003d\"Box full\",\"12\"\u003d\"Brush\",\"13\"\u003d\"Side Brush\",\"14\"\u003d\"Fan\",\"15\"\u003d\"Left Wheel motor\",\"16\"\u003d\"Right Wheel motor\",\"17\"\u003d\"Turn suffocate\",\"18\"\u003d\"Forward suffocate\",\"19\"\u003d\"Charger get\",\"20\"\u003d\"Battery low\",\"21\"\u003d\"Charge fault\",\"22\"\u003d\"Battery percentage\",\"23\"\u003d\"Heart\",\"24\"\u003d\"Camera occlusion\",\"25\"\u003d\"Camera fault\",\"26\"\u003d\"Event battery\",\"27\"\u003d\"Forward looking\",\"28\"\u003d\"Gyroscope\"]`"
+ },
+ {
+ "property": "mode",
+ "siid": 2,
+ "piid": 3,
+ "friendlyName": "Robot Cleaner - Mode",
+ "channel": "mode",
+ "type": "Number",
+ "stateDescription": {
+ "options": [
+ {
+ "value": "0",
+ "label": "Silent"
+ },
+ {
+ "value": "1",
+ "label": "Basic"
+ },
+ {
+ "value": "2",
+ "label": "Strong"
+ },
+ {
+ "value": "3",
+ "label": "Full Speed"
+ }
+ ]
+ },
+ "refresh": true,
+ "actions": [
+ {
+ "command": "set_properties",
+ "parameterType": "NUMBER"
+ }
+ ],
+ "readmeComment": "Value mapping `[\"0\"\u003d\"Silent\",\"1\"\u003d\"Basic\",\"2\"\u003d\"Strong\",\"3\"\u003d\"Full Speed\"]`"
+ },
+ {
+ "property": "battery-level",
+ "siid": 3,
+ "piid": 1,
+ "friendlyName": "Battery - Battery Level",
+ "channel": "battery_level",
+ "type": "Number:Dimensionless",
+ "unit": "percentage",
+ "stateDescription": {
+ "minimum": 0,
+ "maximum": 100,
+ "step": 1,
+ "pattern": "%.0f %unit%",
+ "readOnly": true
+ },
+ "refresh": true,
+ "actions": []
+ },
+ {
+ "property": "charging-state",
+ "siid": 3,
+ "piid": 2,
+ "friendlyName": "Battery - Charging State",
+ "channel": "charging_state",
+ "type": "Number",
+ "stateDescription": {
+ "readOnly": true,
+ "options": [
+ {
+ "value": "1",
+ "label": "Charging"
+ },
+ {
+ "value": "2",
+ "label": "Not Charging"
+ },
+ {
+ "value": "5",
+ "label": "Go Charging"
+ }
+ ]
+ },
+ "refresh": true,
+ "actions": [],
+ "readmeComment": "Value mapping `[\"1\"\u003d\"Charging\",\"2\"\u003d\"Not Charging\",\"5\"\u003d\"Go Charging\"]`"
+ },
+ {
+ "property": "brush-left-time",
+ "siid": 9,
+ "piid": 1,
+ "friendlyName": "Main Cleaning Brush - Brush Left Time",
+ "channel": "brush_left_time",
+ "type": "Number:Time",
+ "unit": "hours",
+ "stateDescription": {
+ "minimum": 0,
+ "maximum": 300,
+ "step": 1,
+ "pattern": "%.0f %unit%",
+ "readOnly": true
+ },
+ "refresh": true,
+ "actions": []
+ },
+ {
+ "property": "brush-life-level",
+ "siid": 9,
+ "piid": 2,
+ "friendlyName": "Main Cleaning Brush - Brush Life Level",
+ "channel": "brush_life_level",
+ "type": "Number:Dimensionless",
+ "unit": "percentage",
+ "stateDescription": {
+ "minimum": 0,
+ "maximum": 100,
+ "step": 1,
+ "pattern": "%.0f %unit%",
+ "readOnly": true
+ },
+ "refresh": true,
+ "actions": []
+ },
+ {
+ "property": "brush-left-time1",
+ "siid": 10,
+ "piid": 1,
+ "friendlyName": "Side Cleaning Brush - Brush Left Time",
+ "channel": "brush_left_time1",
+ "type": "Number:Time",
+ "unit": "hours",
+ "stateDescription": {
+ "minimum": 0,
+ "maximum": 200,
+ "step": 1,
+ "pattern": "%.0f %unit%",
+ "readOnly": true
+ },
+ "refresh": true,
+ "actions": []
+ },
+ {
+ "property": "brush-life-level1",
+ "siid": 10,
+ "piid": 2,
+ "friendlyName": "Side Cleaning Brush - Brush Life Level",
+ "channel": "brush_life_level1",
+ "type": "Number:Dimensionless",
+ "unit": "percentage",
+ "stateDescription": {
+ "minimum": 0,
+ "maximum": 100,
+ "step": 1,
+ "pattern": "%.0f %unit%",
+ "readOnly": true
+ },
+ "refresh": true,
+ "actions": []
+ },
+ {
+ "property": "filter-life-level",
+ "siid": 11,
+ "piid": 1,
+ "friendlyName": "Filter - Filter Life Level",
+ "channel": "filter_life_level",
+ "type": "Number:Dimensionless",
+ "unit": "percentage",
+ "stateDescription": {
+ "minimum": 0,
+ "maximum": 100,
+ "step": 1,
+ "pattern": "%.0f %unit%",
+ "readOnly": true
+ },
+ "refresh": true,
+ "actions": []
+ },
+ {
+ "property": "filter-left-time",
+ "siid": 11,
+ "piid": 2,
+ "friendlyName": "Filter - Filter Left Time",
+ "channel": "filter_left_time",
+ "type": "Number:Time",
+ "unit": "hours",
+ "stateDescription": {
+ "minimum": 0,
+ "maximum": 150,
+ "step": 1,
+ "pattern": "%.0f %unit%",
+ "readOnly": true
+ },
+ "refresh": true,
+ "actions": []
+ },
+ {
+ "property": "work-mode",
+ "siid": 4,
+ "piid": 1,
+ "friendlyName": "Vacuum Extend - Work Mode",
+ "channel": "work_mode",
+ "type": "Number",
+ "stateDescription": {
+ "minimum": 0,
+ "maximum": 50,
+ "step": 1,
+ "pattern": "%.0f",
+ "readOnly": true
+ },
+ "refresh": true,
+ "actions": []
+ },
+ {
+ "property": "cleaning-time",
+ "siid": 4,
+ "piid": 2,
+ "friendlyName": "Vacuum Extend - Cleaning Time",
+ "channel": "cleaning_time",
+ "type": "Number:Time",
+ "unit": "minutes",
+ "stateDescription": {
+ "minimum": 0,
+ "maximum": 32767,
+ "step": 1,
+ "pattern": "%.0f %unit%",
+ "readOnly": true
+ },
+ "refresh": true,
+ "actions": []
+ },
+ {
+ "property": "cleaning-area",
+ "siid": 4,
+ "piid": 3,
+ "friendlyName": "Vacuum Extend - Cleaning Area",
+ "channel": "cleaning_area",
+ "type": "Number:Area",
+ "unit": "square_meter",
+ "stateDescription": {
+ "minimum": 0,
+ "maximum": 32767,
+ "step": 1,
+ "pattern": "%.1f %unit%",
+ "readOnly": true
+ },
+ "refresh": true,
+ "actions": []
+ },
+ {
+ "property": "cleaning-mode",
+ "siid": 4,
+ "piid": 4,
+ "friendlyName": "Vacuum Extend - Cleaning Mode",
+ "channel": "cleaning_mode",
+ "type": "Number",
+ "stateDescription": {
+ "options": [
+ {
+ "value": "0",
+ "label": "mode 0"
+ },
+ {
+ "value": "1",
+ "label": "mode 1"
+ },
+ {
+ "value": "2",
+ "label": "mode 2"
+ },
+ {
+ "value": "3",
+ "label": "mode 3"
+ }
+ ]
+ },
+ "refresh": true,
+ "actions": [
+ {
+ "command": "set_properties",
+ "parameterType": "STRING"
+ }
+ ],
+ "readmeComment": "Value mapping `[\"0\"\u003d\"mode 0\",\"1\"\u003d\"mode 1\",\"2\"\u003d\"mode 2\",\"3\"\u003d\"mode 3\"]`"
+ },
+ {
+ "property": "mop-mode",
+ "siid": 4,
+ "piid": 5,
+ "friendlyName": "Vacuum Extend - Mop Mode",
+ "channel": "mop_mode",
+ "type": "Number",
+ "stateDescription": {
+ "options": [
+ {
+ "value": "1",
+ "label": "low water"
+ },
+ {
+ "value": "2",
+ "label": "medium water"
+ },
+ {
+ "value": "3",
+ "label": "high water"
+ }
+ ]
+ },
+ "refresh": true,
+ "actions": [
+ {
+ "command": "set_properties",
+ "parameterType": "STRING"
+ }
+ ],
+ "readmeComment": "Value mapping `[\"1\"\u003d\"low water\",\"2\"\u003d\"medium water\",\"3\"\u003d\"high water\"]`"
+ },
+ {
+ "property": "waterbox-status",
+ "siid": 4,
+ "piid": 6,
+ "friendlyName": "Vacuum Extend - Waterbox Status",
+ "channel": "waterbox_status",
+ "type": "Number",
+ "stateDescription": {
+ "readOnly": true,
+ "options": [
+ {
+ "value": "0",
+ "label": "Status 0"
+ },
+ {
+ "value": "1",
+ "label": "Status 1"
+ }
+ ]
+ },
+ "refresh": true,
+ "actions": [],
+ "readmeComment": "Value mapping `[\"0\"\u003d\"Status 0\",\"1\"\u003d\"Status 1\"]`"
+ },
+ {
+ "property": "task-status",
+ "siid": 4,
+ "piid": 7,
+ "friendlyName": "Vacuum Extend - Task Status",
+ "channel": "task_status",
+ "type": "Number",
+ "stateDescription": {
+ "readOnly": true,
+ "options": [
+ {
+ "value": "0",
+ "label": "Notask"
+ },
+ {
+ "value": "1",
+ "label": "AutoClean"
+ },
+ {
+ "value": "2",
+ "label": "CustomClean"
+ },
+ {
+ "value": "3",
+ "label": "SelectAreanClean"
+ },
+ {
+ "value": "4",
+ "label": "SpotArea"
+ }
+ ]
+ },
+ "refresh": true,
+ "actions": [],
+ "readmeComment": "Value mapping `[\"0\"\u003d\"Notask\",\"1\"\u003d\"AutoClean\",\"2\"\u003d\"CustomClean\",\"3\"\u003d\"SelectAreanClean\",\"4\"\u003d\"SpotArea\"]`"
+ },
+ {
+ "property": "clean-extend-data",
+ "siid": 4,
+ "piid": 10,
+ "friendlyName": "Vacuum Extend - Clean Extend Data",
+ "channel": "clean_extend_data",
+ "type": "String",
+ "refresh": false,
+ "actions": [
+ {
+ "command": "set_properties",
+ "parameterType": "STRING"
+ }
+ ]
+ },
+ {
+ "property": "break-point-restart",
+ "siid": 4,
+ "piid": 11,
+ "friendlyName": "Vacuum Extend - Break Point Restart",
+ "channel": "break_point_restart",
+ "type": "Number",
+ "stateDescription": {
+ "options": [
+ {
+ "value": "0",
+ "label": "Off"
+ },
+ {
+ "value": "1",
+ "label": "On"
+ }
+ ]
+ },
+ "refresh": true,
+ "actions": [
+ {
+ "command": "set_properties",
+ "parameterType": "NUMBER"
+ }
+ ],
+ "readmeComment": "Value mapping `[\"0\"\u003d\"Off\",\"1\"\u003d\"On\"]`"
+ },
+ {
+ "property": "carpet-press",
+ "siid": 4,
+ "piid": 12,
+ "friendlyName": "Vacuum Extend - Carpet Press",
+ "channel": "carpet_press",
+ "type": "Number",
+ "stateDescription": {
+ "options": [
+ {
+ "value": "0",
+ "label": "Off"
+ },
+ {
+ "value": "1",
+ "label": "On"
+ }
+ ]
+ },
+ "refresh": true,
+ "actions": [
+ {
+ "command": "set_properties",
+ "parameterType": "NUMBER"
+ }
+ ],
+ "readmeComment": "Value mapping `[\"0\"\u003d\"Off\",\"1\"\u003d\"On\"]`"
+ },
+ {
+ "property": "remote-state",
+ "siid": 4,
+ "piid": 15,
+ "friendlyName": "Vacuum Extend - Remote State",
+ "channel": "remote_state",
+ "type": "String",
+ "refresh": false,
+ "actions": [
+ {
+ "command": "set_properties",
+ "parameterType": "STRING"
+ }
+ ]
+ },
+ {
+ "property": "clean-rags-tip",
+ "siid": 4,
+ "piid": 16,
+ "friendlyName": "Vacuum Extend - Clean Rags Tip",
+ "channel": "clean_rags_tip",
+ "type": "Number:Time",
+ "unit": "minutes",
+ "stateDescription": {
+ "minimum": 0,
+ "maximum": 120,
+ "step": 1,
+ "pattern": "%.0f %unit%"
+ },
+ "refresh": true,
+ "actions": [
+ {
+ "command": "set_properties",
+ "parameterType": "STRING"
+ }
+ ]
+ },
+ {
+ "property": "keep-sweeper-time",
+ "siid": 4,
+ "piid": 17,
+ "friendlyName": "Vacuum Extend - Keep Sweeper Time",
+ "channel": "keep_sweeper_time",
+ "type": "Number:Time",
+ "unit": "minutes",
+ "stateDescription": {
+ "minimum": -1,
+ "maximum": 1000000,
+ "step": 1,
+ "pattern": "%.0f %unit%",
+ "readOnly": true
+ },
+ "refresh": true,
+ "actions": []
+ },
+ {
+ "property": "faults",
+ "siid": 4,
+ "piid": 18,
+ "friendlyName": "Vacuum Extend - Faults",
+ "channel": "faults",
+ "type": "String",
+ "stateDescription": {
+ "readOnly": true
+ },
+ "refresh": true,
+ "actions": []
+ },
+ {
+ "property": "enable",
+ "siid": 5,
+ "piid": 1,
+ "friendlyName": "Do Not Disturb - Enable",
+ "channel": "enable",
+ "type": "Switch",
+ "refresh": true,
+ "actions": [
+ {
+ "command": "set_properties",
+ "parameterType": "ONOFFBOOL"
+ }
+ ]
+ },
+ {
+ "property": "start-time",
+ "siid": 5,
+ "piid": 2,
+ "friendlyName": "Do Not Disturb - Start Time",
+ "channel": "start_time",
+ "type": "String",
+ "refresh": true,
+ "actions": [
+ {
+ "command": "set_properties",
+ "parameterType": "STRING"
+ }
+ ]
+ },
+ {
+ "property": "end-time",
+ "siid": 5,
+ "piid": 3,
+ "friendlyName": "Do Not Disturb - End Time",
+ "channel": "end_time",
+ "type": "String",
+ "refresh": true,
+ "actions": [
+ {
+ "command": "set_properties",
+ "parameterType": "STRING"
+ }
+ ]
+ },
+ {
+ "property": "frame-info",
+ "siid": 6,
+ "piid": 2,
+ "friendlyName": "Map - Frame Info",
+ "channel": "frame_info",
+ "type": "String",
+ "refresh": false,
+ "actions": [
+ {
+ "command": "set_properties",
+ "parameterType": "STRING"
+ }
+ ]
+ },
+ {
+ "property": "map-extend-data",
+ "siid": 6,
+ "piid": 4,
+ "friendlyName": "Map - Map Extend Data",
+ "channel": "map_extend_data",
+ "type": "String",
+ "refresh": false,
+ "actions": [
+ {
+ "command": "set_properties",
+ "parameterType": "STRING"
+ }
+ ]
+ },
+ {
+ "property": "mult-map-state",
+ "siid": 6,
+ "piid": 7,
+ "friendlyName": "Map - Mult Map State",
+ "channel": "mult_map_state",
+ "type": "Number",
+ "stateDescription": {
+ "options": [
+ {
+ "value": "0",
+ "label": "Close"
+ },
+ {
+ "value": "1",
+ "label": "Open"
+ }
+ ]
+ },
+ "refresh": true,
+ "actions": [
+ {
+ "command": "set_properties",
+ "parameterType": "NUMBER"
+ }
+ ],
+ "readmeComment": "Value mapping `[\"0\"\u003d\"Close\",\"1\"\u003d\"Open\"]`"
+ },
+ {
+ "property": "mult-map-info",
+ "siid": 6,
+ "piid": 8,
+ "friendlyName": "Map - Mult Map Info",
+ "channel": "mult_map_info",
+ "type": "String",
+ "stateDescription": {
+ "readOnly": true
+ },
+ "refresh": true,
+ "actions": []
+ },
+ {
+ "property": "volume",
+ "siid": 7,
+ "piid": 1,
+ "friendlyName": "Audio - Volume",
+ "channel": "volume",
+ "type": "Number:Dimensionless",
+ "unit": "PERCENT",
+ "stateDescription": {
+ "minimum": 0,
+ "maximum": 100,
+ "step": 1,
+ "pattern": "%.0f"
+ },
+ "refresh": true,
+ "actions": [
+ {
+ "command": "set_properties",
+ "parameterType": "NUMBER"
+ }
+ ]
+ },
+ {
+ "property": "voice-packet-id",
+ "siid": 7,
+ "piid": 2,
+ "friendlyName": "Audio - Voice Packet Id",
+ "channel": "voice_packet_id",
+ "type": "String",
+ "refresh": true,
+ "actions": [
+ {
+ "command": "set_properties",
+ "parameterType": "STRING"
+ }
+ ]
+ },
+ {
+ "property": "voice-change-state",
+ "siid": 7,
+ "piid": 3,
+ "friendlyName": "Audio - Voice Change State",
+ "channel": "voice_change_state",
+ "type": "String",
+ "stateDescription": {
+ "readOnly": true
+ },
+ "refresh": true,
+ "actions": []
+ },
+ {
+ "property": "set-voice",
+ "siid": 7,
+ "piid": 4,
+ "friendlyName": "Audio - Set Voice",
+ "channel": "set_voice",
+ "type": "String",
+ "refresh": false,
+ "actions": [
+ {
+ "command": "set_properties",
+ "parameterType": "STRING"
+ }
+ ]
+ },
+ {
+ "property": "time-zone",
+ "siid": 8,
+ "piid": 1,
+ "friendlyName": "Time - Time Zone",
+ "channel": "time_zone",
+ "type": "String",
+ "stateDescription": {
+ "readOnly": true
+ },
+ "refresh": true,
+ "actions": []
+ },
+ {
+ "property": "timer-clean",
+ "siid": 8,
+ "piid": 2,
+ "friendlyName": "Time - Timer Clean",
+ "channel": "timer_clean",
+ "type": "String",
+ "refresh": true,
+ "actions": [
+ {
+ "command": "set_properties",
+ "parameterType": "STRING"
+ }
+ ]
+ },
+ {
+ "property": "first-clean-time",
+ "siid": 12,
+ "piid": 1,
+ "friendlyName": "Clean Logs - First Clean Time",
+ "channel": "first_clean_time",
+ "type": "Number",
+ "stateDescription": {
+ "minimum": 0,
+ "step": 1,
+ "pattern": "%.0f",
+ "readOnly": true
+ },
+ "refresh": true,
+ "actions": []
+ },
+ {
+ "property": "total-clean-time",
+ "siid": 12,
+ "piid": 2,
+ "friendlyName": "Clean Logs - Total Clean Time",
+ "channel": "total_clean_time",
+ "type": "Number:Time",
+ "unit": "minutes",
+ "stateDescription": {
+ "minimum": 0,
+ "step": 1,
+ "pattern": "%.0f %unit%",
+ "readOnly": true
+ },
+ "refresh": true,
+ "actions": []
+ },
+ {
+ "property": "total-clean-times",
+ "siid": 12,
+ "piid": 3,
+ "friendlyName": "Clean Logs - Total Clean Times",
+ "channel": "total_clean_times",
+ "type": "Number",
+ "stateDescription": {
+ "minimum": 0,
+ "step": 1,
+ "pattern": "%.0f",
+ "readOnly": true
+ },
+ "refresh": true,
+ "actions": []
+ },
+ {
+ "property": "total-clean-area",
+ "siid": 12,
+ "piid": 4,
+ "friendlyName": "Clean Logs - Total Clean Area",
+ "channel": "total_clean_area",
+ "type": "Number",
+ "stateDescription": {
+ "minimum": 0,
+ "step": 1,
+ "pattern": "%.0f",
+ "readOnly": true
+ },
+ "refresh": true,
+ "actions": []
+ }
+ ],
+ "experimental": true
+ }
+}