[miio] add support ROIDMI EVA - roidmi.vacuum.v66 (#13940)

Adding support for the following models:
* ROIDMI EVA (modelId: roidmi.vacuum.v66)

close #13813

Signed-off-by: Marcel Verpaalen <marcel@verpaalen.com>
This commit is contained in:
Marcel 2022-12-31 17:15:16 +01:00 committed by GitHub
parent a6e4ab130d
commit d0d3005b34
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 2137 additions and 41 deletions

View File

@ -102,7 +102,6 @@ in case of gateway, instead of defining it as a Thing, use Bridge
`Bridge miio:gateway:lumigateway "Mi Smarter Gateway" [ host="10.10.x.x", token="put here your token", deviceId="326xxxx", model="lumi.gateway.mieu01", communication="direct", cloudServer="de" ]`
# Advanced: Unsupported devices
Newer devices may not yet be supported.
@ -175,11 +174,11 @@ _Cloud connectivity is not working_
The most common problem is a wrong or missing userId/password. Update your Xiaomi cloud userId & password in the [miio binding configuration screen](#binding-configuration).
If the problem persists you can try the following:
* Xiaomi Account verification might be needed. For some users login by the binding is unsuccessful as account verification is required, but the binding currently has no possibilities to handle this.
- Xiaomi Account verification might be needed. For some users login by the binding is unsuccessful as account verification is required, but the binding currently has no possibilities to handle this.
In order to pass validation your (openHAB server) ip need to be validated/confirmed.
Browse to [https://account.xiaomi.com/](https://account.xiaomi.com/) and logon to your account. Note: use the same external ip address as your openHAB server, e.g. you may need to disable your VPN.
* If above is not possible or fails, You can try to find in the binding debug logging a `location url`. Try to login using this url (just after it fails) with your browser.
* Several users also reported success by resetting their Xiaomi password.
- If above is not possible or fails, You can try to find in the binding debug logging a `location url`. Try to login using this url (just after it fails) with your browser.
- Several users also reported success by resetting their Xiaomi password.
If it still fails, you're bit out of luck. You may try to restart openHAB (not just the binding) to clean the cookies.
As the cloud logon process is still little understood, your only luck might be to enable trace logging and see if you can translate the Chinese error code that it returns.
@ -390,6 +389,7 @@ Currently the miio binding supports more than 340 different models.
| Roborock Vacuum S6 | miio:vacuum | [rockrobo.vacuum.s6](#rockrobo-vacuum-s6) | Yes | |
| Mi Robot Vacuum | miio:vacuum | [rockrobo.vacuum.v1](#rockrobo-vacuum-v1) | Yes | |
| ROIDMI EVE vacuum | miio:basic | [roidmi.vacuum.v60](#roidmi-vacuum-v60) | Yes | |
| ROIDMI EVA | miio:basic | [roidmi.vacuum.v66](#roidmi-vacuum-v66) | Experimental | Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses |
| PTX OneKey Switch (WIFI) | miio:basic | [090615.switch.xswitch01](#090615-switch-xswitch01) | Yes | |
| PTX Twokey switch(wifi) | miio:basic | [090615.switch.xswitch02](#090615-switch-xswitch02) | Yes | |
| PTX ThreeKey Switch (WIFI) | miio:basic | [090615.switch.xswitch03](#090615-switch-xswitch03) | Yes | |
@ -575,7 +575,7 @@ note: Supported means we received feedback from users this device is working wit
For devices with experimental support, we did not yet confirmation that channels are correctly working.
Please feedback your findings for these devices (e.g. Are all channels working, do they contain the right information, is controlling the devices working etc.)
# Channels
## Channels
Depending on the device, different channels are available.
@ -591,8 +591,7 @@ All devices have available the following channels (marked as advanced) besides t
| actions#rpc | String | send commands via cloud. see below |
note: the ADVANCED `actions#commands` and `actions#rpc` channels can be used to send commands that are not automated via the binding. This is available for all devices
e.g. `openhab:send actionCommand 'upd_timer["1498595904821", "on"]'` would enable a pre-configured timer. See https://github.com/marcelrv/XiaomiRobotVacuumProtocol for all known available commands.
e.g. `openhab:send actionCommand 'upd_timer["1498595904821", "on"]'` would enable a pre-configured timer. See <https://github.com/marcelrv/XiaomiRobotVacuumProtocol> for all known available commands.
### Robo Rock vacuum Channels
@ -634,7 +633,6 @@ To (re-)read the file either restart openHAB, restart the binding or alternative
Note, cropping is disabled (hence showing like the maps in OH3.1 and earlier) for any `cropBorder` value < 0.
Note, not all the values need to be in the json file, e.g. a subset of the parameters also works, the parameters not in the `mapConfig.json` will take the default values.
### Mi Air Frying Pan (<a name="careli-fryer-maf01">careli.fryer.maf01</a>) Channels
| Channel | Type | Description | Comment |
@ -2737,6 +2735,68 @@ Note, not all the values need to be in the json file, e.g. a subset of the param
| path_type | Number | Map - Path Type | Value mapping `["0"="Normal","1"="Y-Mopping","2"="Repeat-Mopping"]` |
| sweep_mode | Number | Sweep - Sweep Mode | Value mapping `["1"="Total","2"="Area","3"="Curpoint","4"="Point","7"="Smart","8"="AmartArea","9"="DepthTotal","10"="AlongWall","0"="Idle"]` |
### ROIDMI EVA (<a name="roidmi-vacuum-v66">roidmi.vacuum.v66</a>) 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","filter-reset-filter-life"="Filter Reset Filter Life","brush-cleaner-reset-brush-life"="Brush Cleaner Reset Brush Life","brush-cleaner-reset-brush-life"="Brush Cleaner Reset Brush Life","brush-cleaner-reset-brush-life"="Brush Cleaner Reset Brush Life","custom-find-robot"="Custom Find Robot","custom-stop-find-charge"="Custom Stop Find Charge","custom-continue-sweep"="Custom Continue Sweep","custom-start-dust"="Custom Start Dust","custom-pause"="Custom Pause","custom-pause-find-charge"="Custom Pause Find Charge","custom-continue-find-charge"="Custom Continue Find Charge","custom-update-audio"="Custom Update Audio","custom-set-voice"="Custom Set Voice","map-request-path"="Map Request Path","map-change-area-name"="Map Change Area Name","map-set-auto-area"="Map Set Auto Area","map-local-map"="Map Local Map","map-area-custom"="Map Area Custom","map-area-order"="Map Area Order","map-set-current-map"="Map Set Current Map","map-change-map-name"="Map Change Map Name","map-delete-map-list"="Map Delete Map List","map-save-map"="Map Save Map","sweep-start-sweep"="Sweep Start Sweep","mop-reset-mop-life"="Mop Reset Mop Life","basestation-start-ota"="Basestation Start Ota","basestation-set-ap-name"="Basestation Set Ap Name","basestation-set-back-clean-freq"="Basestation Set Back Clean Freq"]` |
| status | Number | Robot Cleaner - Status | Value mapping `["1"="Dormant","2"="Idle","3"="Paused","4"="Sweeping","5"="Go Charging","6"="Charging","7"="Error","8"="Rfctrl","9"="Fullcharge","10"="Shutdown","11"="Findchargerpause","12"="Station Working","13"="Backing Clean"]` |
| fault | Number | Robot Cleaner - Device Fault | Value mapping `["0"="No Faults","1"="Low Battery Find Charger","2"="Low Battery And Poweroff","3"="Wheel Trap","4"="Collision Error","5"="Tile Do Task","6"="Lidar Point Error","7"="Front Wall Error","8"="Psd Dirty","9"="Middle Brush Fatal","10"="Side Brush","11"="Fan Speed Error","12"="Lidar Cover","13"="Garbage Box Full","14"="Garbage Box Out","15"="Garbage Box Full Out","16"="Physical Trapped","17"="Pick Up Do Task","18"="No Water Box Do Task","19"="Water Box Empty","20"="Clean Cannot Arrive","21"="Start Form Forbid","22"="Drop","23"="Kit Water Pump","24"="Find Charger Failed","25"="Err 25","26"="Err 26","27"="Err 27","28"="Err 28","29"="Err 29"]` |
| mode | Number | Robot Cleaner - Mode | Value mapping `["1"="Silent","2"="Basic","3"="Strong","4"="Full Speed","0"="Sweep"]` |
| sweep_type | Number | Robot Cleaner - Sweep Type | Value mapping `["0"="Sweep","1"="Mop","2"="Mop And Sweep"]` |
| on | Switch | Robot Cleaner - Switch Status | |
| battery_level | Number:Dimensionless | Battery - Battery Level | |
| charging_state | Number | Battery - Charging State | Value mapping `["1"="Charging","2"="Not charging","3"="Not chargeable"]` |
| volume | Number:Dimensionless | Speaker - Volume | |
| mute | Switch | Speaker - Mute | |
| filter_life_level | Number:Dimensionless | Filter - Filter Life Level | |
| filter_left_time | Number:Time | Filter - Filter Left Time | |
| brush_left_time | Number:Time | Brush Cleaner - Brush Left Time | |
| brush_life_level | Number:Dimensionless | Brush Cleaner - Brush Life Level | |
| brush_left_time1 | Number:Time | Brush Cleaner - Brush Left Time | |
| brush_life_level1 | Number:Dimensionless | Brush Cleaner - Brush Life Level | |
| brush_left_time2 | Number:Time | Brush Cleaner - Brush Left Time | |
| brush_life_level2 | Number:Dimensionless | Brush Cleaner - Brush Life Level | |
| mop | Switch | Custom - Mop | |
| work_station_freq | Number | Custom - Work Station Freq | |
| timing | String | Custom - Timing | |
| clean_area | Number | Custom - Clean Area | |
| uid | String | Custom - Uid | |
| auto_boost | Switch | Custom - Auto Boost | |
| forbid_mode | String | Custom - Forbid Mode | |
| water_level | Number | Custom - Water Level | Value mapping `["1"="First","2"="Second","3"="Three","4"="Fourth","0"="Mop"]` |
| total_clean_time | Number:Time | Custom - Total Clean Time | |
| total_clean_areas | Number | Custom - Total Clean Areas | |
| clean_counts | Number | Custom - Clean Counts | |
| clean_time | Number:Time | Custom - Clean Time | |
| double_clean | Switch | Custom - Double Clean | |
| edge_sweep | Switch | Custom - Edge Sweep | |
| led_switch | Switch | Custom - Led Switch | |
| lidar_collision | Switch | Custom - Lidar Collision | |
| current_audio | String | Custom - Current Audio | |
| progress | String | Custom - Progress | |
| station_type | Number | Custom - Station Type | |
| voice_conf | String | Custom - Voice Conf | |
| rug_avoid | Switch | Custom - Rug Avoid | |
| clean_path | String | Map - Clean Path | |
| restricted_zone | String | Map - Restricted Zone | |
| auto_area | String | Map - Auto Area | |
| map_memory | Switch | Map - Map Memory | |
| map_name | String | Map - Map Name | |
| use_auto_area | Switch | Map - Use Auto Area | |
| path_type | Number | Map - Path Type | Value mapping `["0"="Normal","1"="Y-Mopping","2"="Repeat-Mopping"]` |
| sweep_mode | Number | Sweep - Sweep Mode | Value mapping `["1"="Total","2"="Area","3"="Curpoint","4"="Point","7"="Smart","8"="Smart Area","9"="DepthTotal","10"="AlongWall","0"="Idle"]` |
| mop_life_time | Number:Time | Mop - Mop Life Time | |
| mop_life_level | Number:Dimensionless | Mop - Mop Life Level | |
| signal | Number | Basestation - Signal | |
| clear_tank_status | Switch | Basestation - Clear Tank Status | |
| sewage_tank_status | Switch | Basestation - Sewage Tank Status | |
| work_status | Number | Basestation - Work Status | |
| version | String | Basestation - Version | |
| ota_progress | String | Basestation - Ota Progress | |
| ap_name | String | Basestation - Ap Name | |
| back_clean_freq | Number:Time | Basestation - Back Clean Freq | |
### PTX OneKey Switch (WIFI) (<a name="090615-switch-xswitch01">090615.switch.xswitch01</a>) Channels
| Channel | Type | Description | Comment |
@ -5925,10 +5985,9 @@ Note, not all the values need to be in the json file, e.g. a subset of the param
## Example item file Rockrobo vacuum
```
```java
Group gVac "Xiaomi Robot Vacuum" <fan>
Group gVacStat "Status Details" <status> (gVac)
Group gVacCons "Consumables Usage" <line-increase> (gVac)
@ -5972,7 +6031,6 @@ Switch lastCompleted "Last Cleaning Completed" (gVacLast) {channel="miio:vac
Image map "Cleaning Map" (gVacLast) {channel="miio:vacuum:034F0E45:cleaning#map"}
```
### Mi Air Frying Pan (careli.fryer.maf01) item file lines
note: Autogenerated example. Replace the id (fryer) in the channel with your own. Replace `basic` with `generic` in the thing UID depending on how your thing was discovered.
@ -8480,6 +8538,71 @@ Number path_type "Map - Path Type" (G_vacuum) {channel="miio:basic:vacuum:path_t
Number sweep_mode "Sweep - Sweep Mode" (G_vacuum) {channel="miio:basic:vacuum:sweep_mode"}
```
### ROIDMI EVA (roidmi.vacuum.v66) 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 "ROIDMI EVA" <status>
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 sweep_type "Robot Cleaner - Sweep Type" (G_vacuum) {channel="miio:basic:vacuum:sweep_type"}
Switch on "Robot Cleaner - Switch Status" (G_vacuum) {channel="miio:basic:vacuum:on"}
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:Dimensionless volume "Speaker - Volume" (G_vacuum) {channel="miio:basic:vacuum:volume"}
Switch mute "Speaker - Mute" (G_vacuum) {channel="miio:basic:vacuum:mute"}
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:Time brush_left_time "Brush Cleaner - Brush Left Time" (G_vacuum) {channel="miio:basic:vacuum:brush_left_time"}
Number:Dimensionless brush_life_level "Brush Cleaner - Brush Life Level" (G_vacuum) {channel="miio:basic:vacuum:brush_life_level"}
Number:Time brush_left_time1 "Brush Cleaner - Brush Left Time" (G_vacuum) {channel="miio:basic:vacuum:brush_left_time1"}
Number:Dimensionless brush_life_level1 "Brush Cleaner - Brush Life Level" (G_vacuum) {channel="miio:basic:vacuum:brush_life_level1"}
Number:Time brush_left_time2 "Brush Cleaner - Brush Left Time" (G_vacuum) {channel="miio:basic:vacuum:brush_left_time2"}
Number:Dimensionless brush_life_level2 "Brush Cleaner - Brush Life Level" (G_vacuum) {channel="miio:basic:vacuum:brush_life_level2"}
Switch mop "Custom - Mop" (G_vacuum) {channel="miio:basic:vacuum:mop"}
Number work_station_freq "Custom - Work Station Freq" (G_vacuum) {channel="miio:basic:vacuum:work_station_freq"}
String timing "Custom - Timing" (G_vacuum) {channel="miio:basic:vacuum:timing"}
Number clean_area "Custom - Clean Area" (G_vacuum) {channel="miio:basic:vacuum:clean_area"}
String uid "Custom - Uid" (G_vacuum) {channel="miio:basic:vacuum:uid"}
Switch auto_boost "Custom - Auto Boost" (G_vacuum) {channel="miio:basic:vacuum:auto_boost"}
String forbid_mode "Custom - Forbid Mode" (G_vacuum) {channel="miio:basic:vacuum:forbid_mode"}
Number water_level "Custom - Water Level" (G_vacuum) {channel="miio:basic:vacuum:water_level"}
Number:Time total_clean_time "Custom - Total Clean Time" (G_vacuum) {channel="miio:basic:vacuum:total_clean_time"}
Number total_clean_areas "Custom - Total Clean Areas" (G_vacuum) {channel="miio:basic:vacuum:total_clean_areas"}
Number clean_counts "Custom - Clean Counts" (G_vacuum) {channel="miio:basic:vacuum:clean_counts"}
Number:Time clean_time "Custom - Clean Time" (G_vacuum) {channel="miio:basic:vacuum:clean_time"}
Switch double_clean "Custom - Double Clean" (G_vacuum) {channel="miio:basic:vacuum:double_clean"}
Switch edge_sweep "Custom - Edge Sweep" (G_vacuum) {channel="miio:basic:vacuum:edge_sweep"}
Switch led_switch "Custom - Led Switch" (G_vacuum) {channel="miio:basic:vacuum:led_switch"}
Switch lidar_collision "Custom - Lidar Collision" (G_vacuum) {channel="miio:basic:vacuum:lidar_collision"}
String current_audio "Custom - Current Audio" (G_vacuum) {channel="miio:basic:vacuum:current_audio"}
String progress "Custom - Progress" (G_vacuum) {channel="miio:basic:vacuum:progress"}
Number station_type "Custom - Station Type" (G_vacuum) {channel="miio:basic:vacuum:station_type"}
String voice_conf "Custom - Voice Conf" (G_vacuum) {channel="miio:basic:vacuum:voice_conf"}
Switch rug_avoid "Custom - Rug Avoid" (G_vacuum) {channel="miio:basic:vacuum:rug_avoid"}
String clean_path "Map - Clean Path" (G_vacuum) {channel="miio:basic:vacuum:clean_path"}
String restricted_zone "Map - Restricted Zone" (G_vacuum) {channel="miio:basic:vacuum:restricted_zone"}
String auto_area "Map - Auto Area" (G_vacuum) {channel="miio:basic:vacuum:auto_area"}
Switch map_memory "Map - Map Memory" (G_vacuum) {channel="miio:basic:vacuum:map_memory"}
String map_name "Map - Map Name" (G_vacuum) {channel="miio:basic:vacuum:map_name"}
Switch use_auto_area "Map - Use Auto Area" (G_vacuum) {channel="miio:basic:vacuum:use_auto_area"}
Number path_type "Map - Path Type" (G_vacuum) {channel="miio:basic:vacuum:path_type"}
Number sweep_mode "Sweep - Sweep Mode" (G_vacuum) {channel="miio:basic:vacuum:sweep_mode"}
Number:Time mop_life_time "Mop - Mop Life Time" (G_vacuum) {channel="miio:basic:vacuum:mop_life_time"}
Number:Dimensionless mop_life_level "Mop - Mop Life Level" (G_vacuum) {channel="miio:basic:vacuum:mop_life_level"}
Number signal "Basestation - Signal" (G_vacuum) {channel="miio:basic:vacuum:signal"}
Switch clear_tank_status "Basestation - Clear Tank Status" (G_vacuum) {channel="miio:basic:vacuum:clear_tank_status"}
Switch sewage_tank_status "Basestation - Sewage Tank Status" (G_vacuum) {channel="miio:basic:vacuum:sewage_tank_status"}
Number work_status "Basestation - Work Status" (G_vacuum) {channel="miio:basic:vacuum:work_status"}
String version "Basestation - Version" (G_vacuum) {channel="miio:basic:vacuum:version"}
String ota_progress "Basestation - Ota Progress" (G_vacuum) {channel="miio:basic:vacuum:ota_progress"}
String ap_name "Basestation - Ap Name" (G_vacuum) {channel="miio:basic:vacuum:ap_name"}
Number:Time back_clean_freq "Basestation - Back Clean Freq" (G_vacuum) {channel="miio:basic:vacuum:back_clean_freq"}
```
### PTX OneKey Switch (WIFI) (090615.switch.xswitch01) item file lines
note: Autogenerated example. Replace the id (switch) in the channel with your own. Replace `basic` with `generic` in the thing UID depending on how your thing was discovered.

View File

@ -221,6 +221,7 @@ public enum MiIoDevices {
ROCKROBO_VACUUM_S6("rockrobo.vacuum.s6", "Roborock Vacuum S6", THING_TYPE_VACUUM),
ROCKROBO_VACUUM_V1("rockrobo.vacuum.v1", "Mi Robot Vacuum", THING_TYPE_VACUUM),
ROIDMI_VACUUM_V60("roidmi.vacuum.v60", "ROIDMI EVE vacuum", THING_TYPE_BASIC),
ROIDMI_VACUUM_V66("roidmi.vacuum.v66", "ROIDMI EVA", THING_TYPE_BASIC),
S090615_SWITCH_XSWITCH01("090615.switch.xswitch01", "PTX OneKey Switch (WIFI)", THING_TYPE_BASIC),
S090615_SWITCH_XSWITCH02("090615.switch.xswitch02", "PTX Twokey switch(wifi)", THING_TYPE_BASIC),
S090615_SWITCH_XSWITCH03("090615.switch.xswitch03", "PTX ThreeKey Switch (WIFI)", THING_TYPE_BASIC),

View File

@ -196,6 +196,7 @@ thing.roborock.vacuum.t7v3 = Roborock Vacuum T7 v3
thing.rockrobo.vacuum.s6 = Roborock Vacuum S6
thing.rockrobo.vacuum.v1 = Mi Robot Vacuum
thing.roidmi.vacuum.v60 = ROIDMI EVE vacuum
thing.roidmi.vacuum.v66 = ROIDMI EVA
thing.090615.switch.xswitch01 = PTX OneKey Switch (WIFI)
thing.090615.switch.xswitch02 = PTX Twokey switch(wifi)
thing.090615.switch.xswitch03 = PTX ThreeKey Switch (WIFI)
@ -1259,6 +1260,63 @@ ch.roidmi.vacuum.v60-miot.voice_conf = Custom - Voice Conf
ch.roidmi.vacuum.v60-miot.volume = Speaker - Volume
ch.roidmi.vacuum.v60-miot.water_level = Custom - Water Level
ch.roidmi.vacuum.v60-miot.work_station_freq = Custom - Work Station Freq
ch.roidmi.vacuum.v66-moit.actions = Actions
ch.roidmi.vacuum.v66-moit.ap_name = Basestation - Ap Name
ch.roidmi.vacuum.v66-moit.auto_area = Map - Auto Area
ch.roidmi.vacuum.v66-moit.auto_boost = Custom - Auto Boost
ch.roidmi.vacuum.v66-moit.back_clean_freq = Basestation - Back Clean Freq
ch.roidmi.vacuum.v66-moit.battery_level = Battery - Battery Level
ch.roidmi.vacuum.v66-moit.brush_left_time = Brush Cleaner - Brush Left Time
ch.roidmi.vacuum.v66-moit.brush_left_time1 = Brush Cleaner - Brush Left Time
ch.roidmi.vacuum.v66-moit.brush_left_time2 = Brush Cleaner - Brush Left Time
ch.roidmi.vacuum.v66-moit.brush_life_level = Brush Cleaner - Brush Life Level
ch.roidmi.vacuum.v66-moit.brush_life_level1 = Brush Cleaner - Brush Life Level
ch.roidmi.vacuum.v66-moit.brush_life_level2 = Brush Cleaner - Brush Life Level
ch.roidmi.vacuum.v66-moit.charging_state = Battery - Charging State
ch.roidmi.vacuum.v66-moit.clean_area = Custom - Clean Area
ch.roidmi.vacuum.v66-moit.clean_counts = Custom - Clean Counts
ch.roidmi.vacuum.v66-moit.clean_path = Map - Clean Path
ch.roidmi.vacuum.v66-moit.clean_time = Custom - Clean Time
ch.roidmi.vacuum.v66-moit.clear_tank_status = Basestation - Clear Tank Status
ch.roidmi.vacuum.v66-moit.current_audio = Custom - Current Audio
ch.roidmi.vacuum.v66-moit.double_clean = Custom - Double Clean
ch.roidmi.vacuum.v66-moit.edge_sweep = Custom - Edge Sweep
ch.roidmi.vacuum.v66-moit.fault = Robot Cleaner - Device Fault
ch.roidmi.vacuum.v66-moit.filter_left_time = Filter - Filter Left Time
ch.roidmi.vacuum.v66-moit.filter_life_level = Filter - Filter Life Level
ch.roidmi.vacuum.v66-moit.forbid_mode = Custom - Forbid Mode
ch.roidmi.vacuum.v66-moit.led_switch = Custom - Led Switch
ch.roidmi.vacuum.v66-moit.lidar_collision = Custom - Lidar Collision
ch.roidmi.vacuum.v66-moit.map_memory = Map - Map Memory
ch.roidmi.vacuum.v66-moit.map_name = Map - Map Name
ch.roidmi.vacuum.v66-moit.mode = Robot Cleaner - Mode
ch.roidmi.vacuum.v66-moit.mop = Custom - Mop
ch.roidmi.vacuum.v66-moit.mop_life_level = Mop - Mop Life Level
ch.roidmi.vacuum.v66-moit.mop_life_time = Mop - Mop Life Time
ch.roidmi.vacuum.v66-moit.mute = Speaker - Mute
ch.roidmi.vacuum.v66-moit.on = Robot Cleaner - Switch Status
ch.roidmi.vacuum.v66-moit.ota_progress = Basestation - Ota Progress
ch.roidmi.vacuum.v66-moit.path_type = Map - Path Type
ch.roidmi.vacuum.v66-moit.progress = Custom - Progress
ch.roidmi.vacuum.v66-moit.restricted_zone = Map - Restricted Zone
ch.roidmi.vacuum.v66-moit.rug_avoid = Custom - Rug Avoid
ch.roidmi.vacuum.v66-moit.sewage_tank_status = Basestation - Sewage Tank Status
ch.roidmi.vacuum.v66-moit.signal = Basestation - Signal
ch.roidmi.vacuum.v66-moit.station_type = Custom - Station Type
ch.roidmi.vacuum.v66-moit.status = Robot Cleaner - Status
ch.roidmi.vacuum.v66-moit.sweep_mode = Sweep - Sweep Mode
ch.roidmi.vacuum.v66-moit.sweep_type = Robot Cleaner - Sweep Type
ch.roidmi.vacuum.v66-moit.timing = Custom - Timing
ch.roidmi.vacuum.v66-moit.total_clean_areas = Custom - Total Clean Areas
ch.roidmi.vacuum.v66-moit.total_clean_time = Custom - Total Clean Time
ch.roidmi.vacuum.v66-moit.uid = Custom - Uid
ch.roidmi.vacuum.v66-moit.use_auto_area = Map - Use Auto Area
ch.roidmi.vacuum.v66-moit.version = Basestation - Version
ch.roidmi.vacuum.v66-moit.voice_conf = Custom - Voice Conf
ch.roidmi.vacuum.v66-moit.volume = Speaker - Volume
ch.roidmi.vacuum.v66-moit.water_level = Custom - Water Level
ch.roidmi.vacuum.v66-moit.work_station_freq = Custom - Work Station Freq
ch.roidmi.vacuum.v66-moit.work_status = Basestation - Work Status
ch.scishare.coffee.s1102.Status = status
ch.scishare.coffee.s1102.boil = Boil water
ch.scishare.coffee.s1102.expresso = Brew Americano
@ -2928,6 +2986,107 @@ option.roidmi.vacuum.v60-miot.water_level-1 = First
option.roidmi.vacuum.v60-miot.water_level-2 = Second
option.roidmi.vacuum.v60-miot.water_level-3 = Three
option.roidmi.vacuum.v60-miot.water_level-4 = Fourth
option.roidmi.vacuum.v66-moit.actions-basestation-set-ap-name = Basestation Set Ap Name
option.roidmi.vacuum.v66-moit.actions-basestation-set-back-clean-freq = Basestation Set Back Clean Freq
option.roidmi.vacuum.v66-moit.actions-basestation-start-ota = Basestation Start Ota
option.roidmi.vacuum.v66-moit.actions-battery-start-charge = Battery Start Charge
option.roidmi.vacuum.v66-moit.actions-brush-cleaner-reset-brush-life = Brush Cleaner Reset Brush Life
option.roidmi.vacuum.v66-moit.actions-custom-continue-find-charge = Custom Continue Find Charge
option.roidmi.vacuum.v66-moit.actions-custom-continue-sweep = Custom Continue Sweep
option.roidmi.vacuum.v66-moit.actions-custom-find-robot = Custom Find Robot
option.roidmi.vacuum.v66-moit.actions-custom-pause = Custom Pause
option.roidmi.vacuum.v66-moit.actions-custom-pause-find-charge = Custom Pause Find Charge
option.roidmi.vacuum.v66-moit.actions-custom-set-voice = Custom Set Voice
option.roidmi.vacuum.v66-moit.actions-custom-start-dust = Custom Start Dust
option.roidmi.vacuum.v66-moit.actions-custom-stop-find-charge = Custom Stop Find Charge
option.roidmi.vacuum.v66-moit.actions-custom-update-audio = Custom Update Audio
option.roidmi.vacuum.v66-moit.actions-filter-reset-filter-life = Filter Reset Filter Life
option.roidmi.vacuum.v66-moit.actions-map-area-custom = Map Area Custom
option.roidmi.vacuum.v66-moit.actions-map-area-order = Map Area Order
option.roidmi.vacuum.v66-moit.actions-map-change-area-name = Map Change Area Name
option.roidmi.vacuum.v66-moit.actions-map-change-map-name = Map Change Map Name
option.roidmi.vacuum.v66-moit.actions-map-delete-map-list = Map Delete Map List
option.roidmi.vacuum.v66-moit.actions-map-local-map = Map Local Map
option.roidmi.vacuum.v66-moit.actions-map-request-path = Map Request Path
option.roidmi.vacuum.v66-moit.actions-map-save-map = Map Save Map
option.roidmi.vacuum.v66-moit.actions-map-set-auto-area = Map Set Auto Area
option.roidmi.vacuum.v66-moit.actions-map-set-current-map = Map Set Current Map
option.roidmi.vacuum.v66-moit.actions-mop-reset-mop-life = Mop Reset Mop Life
option.roidmi.vacuum.v66-moit.actions-sweep-start-sweep = Sweep Start Sweep
option.roidmi.vacuum.v66-moit.actions-vacuum-start-room-sweep = Vacuum Start Room Sweep
option.roidmi.vacuum.v66-moit.actions-vacuum-start-sweep = Vacuum Start Sweep
option.roidmi.vacuum.v66-moit.actions-vacuum-stop-sweeping = Vacuum Stop Sweeping
option.roidmi.vacuum.v66-moit.charging_state-1 = Charging
option.roidmi.vacuum.v66-moit.charging_state-2 = Not charging
option.roidmi.vacuum.v66-moit.charging_state-3 = Not chargeable
option.roidmi.vacuum.v66-moit.fault-0 = No Faults
option.roidmi.vacuum.v66-moit.fault-1 = Low Battery Find Charger
option.roidmi.vacuum.v66-moit.fault-10 = Side Brush
option.roidmi.vacuum.v66-moit.fault-11 = Fan Speed Error
option.roidmi.vacuum.v66-moit.fault-12 = Lidar Cover
option.roidmi.vacuum.v66-moit.fault-13 = Garbage Box Full
option.roidmi.vacuum.v66-moit.fault-14 = Garbage Box Out
option.roidmi.vacuum.v66-moit.fault-15 = Garbage Box Full Out
option.roidmi.vacuum.v66-moit.fault-16 = Physical Trapped
option.roidmi.vacuum.v66-moit.fault-17 = Pick Up Do Task
option.roidmi.vacuum.v66-moit.fault-18 = No Water Box Do Task
option.roidmi.vacuum.v66-moit.fault-19 = Water Box Empty
option.roidmi.vacuum.v66-moit.fault-2 = Low Battery And Poweroff
option.roidmi.vacuum.v66-moit.fault-20 = Clean Cannot Arrive
option.roidmi.vacuum.v66-moit.fault-21 = Start Form Forbid
option.roidmi.vacuum.v66-moit.fault-22 = Drop
option.roidmi.vacuum.v66-moit.fault-23 = Kit Water Pump
option.roidmi.vacuum.v66-moit.fault-24 = Find Charger Failed
option.roidmi.vacuum.v66-moit.fault-25 = Err 25
option.roidmi.vacuum.v66-moit.fault-26 = Err 26
option.roidmi.vacuum.v66-moit.fault-27 = Err 27
option.roidmi.vacuum.v66-moit.fault-28 = Err 28
option.roidmi.vacuum.v66-moit.fault-29 = Err 29
option.roidmi.vacuum.v66-moit.fault-3 = Wheel Trap
option.roidmi.vacuum.v66-moit.fault-4 = Collision Error
option.roidmi.vacuum.v66-moit.fault-5 = Tile Do Task
option.roidmi.vacuum.v66-moit.fault-6 = Lidar Point Error
option.roidmi.vacuum.v66-moit.fault-7 = Front Wall Error
option.roidmi.vacuum.v66-moit.fault-8 = Psd Dirty
option.roidmi.vacuum.v66-moit.fault-9 = Middle Brush Fatal
option.roidmi.vacuum.v66-moit.mode-0 = Sweep
option.roidmi.vacuum.v66-moit.mode-1 = Silent
option.roidmi.vacuum.v66-moit.mode-2 = Basic
option.roidmi.vacuum.v66-moit.mode-3 = Strong
option.roidmi.vacuum.v66-moit.mode-4 = Full Speed
option.roidmi.vacuum.v66-moit.path_type-0 = Normal
option.roidmi.vacuum.v66-moit.path_type-1 = Y-Mopping
option.roidmi.vacuum.v66-moit.path_type-2 = Repeat-Mopping
option.roidmi.vacuum.v66-moit.status-1 = Dormant
option.roidmi.vacuum.v66-moit.status-10 = Shutdown
option.roidmi.vacuum.v66-moit.status-11 = Findchargerpause
option.roidmi.vacuum.v66-moit.status-12 = Station Working
option.roidmi.vacuum.v66-moit.status-13 = Backing Clean
option.roidmi.vacuum.v66-moit.status-2 = Idle
option.roidmi.vacuum.v66-moit.status-3 = Paused
option.roidmi.vacuum.v66-moit.status-4 = Sweeping
option.roidmi.vacuum.v66-moit.status-5 = Go Charging
option.roidmi.vacuum.v66-moit.status-6 = Charging
option.roidmi.vacuum.v66-moit.status-7 = Error
option.roidmi.vacuum.v66-moit.status-8 = Rfctrl
option.roidmi.vacuum.v66-moit.status-9 = Fullcharge
option.roidmi.vacuum.v66-moit.sweep_mode-0 = Idle
option.roidmi.vacuum.v66-moit.sweep_mode-1 = Total
option.roidmi.vacuum.v66-moit.sweep_mode-10 = AlongWall
option.roidmi.vacuum.v66-moit.sweep_mode-2 = Area
option.roidmi.vacuum.v66-moit.sweep_mode-3 = Curpoint
option.roidmi.vacuum.v66-moit.sweep_mode-4 = Point
option.roidmi.vacuum.v66-moit.sweep_mode-7 = Smart
option.roidmi.vacuum.v66-moit.sweep_mode-8 = Smart Area
option.roidmi.vacuum.v66-moit.sweep_mode-9 = DepthTotal
option.roidmi.vacuum.v66-moit.sweep_type-0 = Sweep
option.roidmi.vacuum.v66-moit.sweep_type-1 = Mop
option.roidmi.vacuum.v66-moit.sweep_type-2 = Mop And Sweep
option.roidmi.vacuum.v66-moit.water_level-0 = Mop
option.roidmi.vacuum.v66-moit.water_level-1 = First
option.roidmi.vacuum.v66-moit.water_level-2 = Second
option.roidmi.vacuum.v66-moit.water_level-3 = Three
option.roidmi.vacuum.v66-moit.water_level-4 = Fourth
option.viomi.vacuum.v18-miot.clean-mode-0 = Everywhere
option.viomi.vacuum.v18-miot.clean-mode-1 = Edges
option.viomi.vacuum.v18-miot.clean-mode-2 = Surface