From d40e12e3120233fa1772439055bbfc1f59550c11 Mon Sep 17 00:00:00 2001 From: Marcel Date: Tue, 17 Dec 2024 01:22:01 +0100 Subject: [PATCH] [miio] Add support for Xiaomi Robot Vacuum X20+ (#17902) Adding support for the following models: * Xiaomi Robot Vacuum X20+ (modelId: xiaomi.vacuum.c102gl) Signed-off-by: Marcel Verpaalen Signed-off-by: Ciprian Pascu --- bundles/org.openhab.binding.miio/README.md | 113 +- .../binding/miio/internal/MiIoDevices.java | 1 + .../resources/OH-INF/i18n/basic.properties | 108 ++ .../database/xiaomi.vacuum.c102gl-miot.json | 1357 +++++++++++++++++ 4 files changed, 1578 insertions(+), 1 deletion(-) create mode 100644 bundles/org.openhab.binding.miio/src/main/resources/database/xiaomi.vacuum.c102gl-miot.json diff --git a/bundles/org.openhab.binding.miio/README.md b/bundles/org.openhab.binding.miio/README.md index 20a5cce76ab..bc7e7f8ccc2 100644 --- a/bundles/org.openhab.binding.miio/README.md +++ b/bundles/org.openhab.binding.miio/README.md @@ -234,7 +234,7 @@ Currently the miio binding supports more than 360 different models. | Mi IH Pressure Rice Cooker | miio:unsupported | chunmi.cooker.press1 | No | | | Mi IH Pressure Rice Cooker | miio:unsupported | chunmi.cooker.press2 | No | | | Gosund Smart Plug | miio:basic | [cuco.plug.cp1](#cuco-plug-cp1) | Yes | | -| Xiaomi Smart Plug 2 (Wi-Fi) | miio:basic | [cuco.plug.v2eur](#cuco-plug-v2eur) | Yes | | +| Xiaomi Smart Plug 2 (Wi-Fi) | miio:basic | [cuco.plug.v2eur](#cuco-plug-v2eur) | Yes | Device only works with cloud connection (stays offline with direct connection). Select in your thing configuration Communication Method 'Cloud' | | Mi Smart Antibacterial Humidifier | miio:basic | [deerma.humidifier.jsq](#deerma-humidifier-jsq) | Yes | | | Mi S Smart Humidifer | miio:basic | [deerma.humidifier.jsq1](#deerma-humidifier-jsq1) | Yes | | | Xiaomi Smart Humidifier 2 | miio:basic | [deerma.humidifier.jsq2w](#deerma-humidifier-jsq2w) | Yes | | @@ -461,6 +461,7 @@ Currently the miio binding supports more than 360 different models. | Mi Smart Ultra Electricity Saving Air Conditioner (1HP/Inverter/New China Energy Label Level 1) | miio:basic | [xiaomi.aircondition.mt7](#xiaomi-aircondition-mt7) | Experimental | Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses | | Mi Smart Ultra Electricity Saving Air Conditioner (1.5HP/Inverter/New China Energy Label Level 1) | miio:basic | [xiaomi.aircondition.mt8](#xiaomi-aircondition-mt8) | Experimental | Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses | | Mi Wi-Fi Repeater 2 | miio:unsupported | xiaomi.repeater.v2 | No | | +| Xiaomi Robot Vacuum X20+ | miio:basic | [xiaomi.vacuum.c102gl](#xiaomi-vacuum-c102gl) | Yes | | | Mi Network Speaker | miio:unsupported | xiaomi.wifispeaker.v1 | No | | | Uclean Smart Toilet Seat | miio:basic | [xjx.toilet.pro](#xjx-toilet-pro) | Experimental | Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses | | Uclean Smart Toilet pure | miio:basic | [xjx.toilet.pure](#xjx-toilet-pure) | Experimental | Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses | @@ -3905,6 +3906,59 @@ Note, not all the values need to be in the json file, e.g. a subset of the param | fan-percent | Number:Dimentionless | Fan Speed % | | | timer | String | Enhance - Timer | | +### Xiaomi Robot Vacuum X20+ (xiaomi.vacuum.c102gl) 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","vacuum-start-dust-arrest"="Vacuum Start Dust Arrest","vacuum-start-mop-wash"="Vacuum Start Mop Wash","vacuum-start-dry"="Vacuum Start Dry","vacuum-stop-dry"="Vacuum Stop Dry","vacuum-start-eject"="Vacuum Start Eject","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","mop-reset-mop-life"="Mop Reset Mop 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","14"="Upgrading","19"="WaterInspecting","21"="WashingMopPause","22"="DustCollecting","23"="RemoteClean"]` | +| fault | Number | Robot Cleaner - Device Fault | | +| mode | Number | Robot Cleaner - Mode | Value mapping `["0"="Silent","1"="Basic","2"="Strong","3"="Full Speed"]` | +| dry_left_time | Number:Time | Robot Cleaner - Dry Left Time | | +| 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 | | +| mop_life_level | Number:Dimensionless | Mop - Mop Life Level | | +| mop_left_time | Number:Time | Mop - Mop Left Time | | +| work_mode | Number | Vacuum Extend - Work Mode | | +| cleaning_time | Number:Time | Vacuum Extend - Cleaning Time | | +| cleaning_area | Number | Vacuum Extend - Cleaning Area | | +| cleaning_mode | Number | Vacuum Extend - Cleaning Mode | Value mapping `["0"="Quiet","1"="Standard","2"="Medium","3"="Strong"]` | +| mop_mode | Number | Vacuum Extend - Mop Mode | Value mapping `["1"="Low","2"="Medium","3"="High"]` | +| waterbox_status | Number | Vacuum Extend - Waterbox Status | Value mapping `["0"="No","1"="Yes"]` | +| task_status | Number | Vacuum Extend - Task Status | | +| clean_extend_data | String | Vacuum Extend - Clean Extend Data | | +| break_point_restart | Number | Vacuum Extend - Break Point Restart | Value mapping `["0"="Close","1"="Open"]` | +| carpet_press | Number | Vacuum Extend - Carpet Press | Value mapping `["0"="Close","1"="Open"]` | +| serial_number | String | Vacuum Extend - Serial Number | | +| 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 | | +| wash_station | Number | Vacuum Extend - Wash Station | | +| 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 | | +| volume | Number | 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 | | + ### Uclean Smart Toilet Seat (xjx.toilet.pro) Channels | Channel | Type | Description | Comment | @@ -10176,6 +10230,62 @@ Number:Dimentionless fan_percent "Fan Speed %" (G_aircondition) {channel="miio:b String timer "Enhance - Timer" (G_aircondition) {channel="miio:basic:aircondition:timer"} ``` +### Xiaomi Robot Vacuum X20+ (xiaomi.vacuum.c102gl) 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. + +```java +Group G_vacuum "Xiaomi Robot Vacuum X20+" +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:Time dry_left_time "Robot Cleaner - Dry Left Time" (G_vacuum) {channel="miio:basic:vacuum:dry_left_time"} +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:Dimensionless mop_life_level "Mop - Mop Life Level" (G_vacuum) {channel="miio:basic:vacuum:mop_life_level"} +Number:Time mop_left_time "Mop - Mop Left Time" (G_vacuum) {channel="miio:basic:vacuum:mop_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 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 serial_number "Vacuum Extend - Serial Number" (G_vacuum) {channel="miio:basic:vacuum:serial_number"} +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 wash_station "Vacuum Extend - Wash Station" (G_vacuum) {channel="miio:basic:vacuum:wash_station"} +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"} +Number 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"} +``` + ### Uclean Smart Toilet Seat (xjx.toilet.pro) item file lines note: Autogenerated example. Replace the id (toilet) in the channel with your own. Replace `basic` with `generic` in the thing UID depending on how your thing was discovered. @@ -13048,6 +13158,7 @@ Number lp_autooff_delay "Low Power Limit Time" (G_powerstrip) {channel="miio:bas Number lp_threshold "Low Power Threshold" (G_powerstrip) {channel="miio:basic:powerstrip:lp_threshold"} ``` + ### Country Servers Known country Servers: cn, de, i2, ru, sg, us 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 aafbac3c626..c8a7eda18eb 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 @@ -312,6 +312,7 @@ public enum MiIoDevices { "Mi Smart Ultra Electricity Saving Air Conditioner (1.5HP/Inverter/New China Energy Label Level 1)", THING_TYPE_BASIC), XIAOMI_REPEATER_V2("xiaomi.repeater.v2", "Mi Wi-Fi Repeater 2", THING_TYPE_UNSUPPORTED), + XIAOMI_VACUUM_C102GL("xiaomi.vacuum.c102gl", "Xiaomi Robot Vacuum X20+", THING_TYPE_BASIC), XIAOMI_WIFISPEAKER_V1("xiaomi.wifispeaker.v1", "Mi Network Speaker", THING_TYPE_UNSUPPORTED), XJX_TOILET_PRO("xjx.toilet.pro", "Uclean Smart Toilet Seat", THING_TYPE_BASIC), XJX_TOILET_PURE("xjx.toilet.pure", "Uclean Smart Toilet pure", THING_TYPE_BASIC), diff --git a/bundles/org.openhab.binding.miio/src/main/resources/OH-INF/i18n/basic.properties b/bundles/org.openhab.binding.miio/src/main/resources/OH-INF/i18n/basic.properties index 8ec7d2d72b9..dff4d7d4751 100644 --- a/bundles/org.openhab.binding.miio/src/main/resources/OH-INF/i18n/basic.properties +++ b/bundles/org.openhab.binding.miio/src/main/resources/OH-INF/i18n/basic.properties @@ -253,6 +253,7 @@ thing.xiaomi.aircondition.mt5 = Mi Smart Gentle Breeze Vertical Air Conditioner thing.xiaomi.aircondition.mt7 = Mi Smart Ultra Electricity Saving Air Conditioner (1HP/Inverter/New China Energy Label Level 1) thing.xiaomi.aircondition.mt8 = Mi Smart Ultra Electricity Saving Air Conditioner (1.5HP/Inverter/New China Energy Label Level 1) thing.xiaomi.repeater.v2 = Mi Wi-Fi Repeater 2 +thing.xiaomi.vacuum.c102gl = Xiaomi Robot Vacuum X20+ thing.xiaomi.wifispeaker.v1 = Mi Network Speaker thing.xjx.toilet.pro = Uclean Smart Toilet Seat thing.xjx.toilet.pure = Uclean Smart Toilet pure @@ -1719,6 +1720,54 @@ ch.xiaomi.aircondition.mc1-miot.target-temperature = Air Conditioner - Target Te ch.xiaomi.aircondition.mc1-miot.temperature = Environment - Temperature ch.xiaomi.aircondition.mc1-miot.timer = Enhance - Timer ch.xiaomi.aircondition.mc1-miot.vertical-swing = Fan Control - Vertical Swing +ch.xiaomi.vacuum.c102gl-miot.actions = Actions +ch.xiaomi.vacuum.c102gl-miot.battery_level = Battery - Battery Level +ch.xiaomi.vacuum.c102gl-miot.break_point_restart = Vacuum Extend - Break Point Restart +ch.xiaomi.vacuum.c102gl-miot.brush_left_time = Main Cleaning Brush - Brush Left Time +ch.xiaomi.vacuum.c102gl-miot.brush_left_time1 = Side Cleaning Brush - Brush Left Time +ch.xiaomi.vacuum.c102gl-miot.brush_life_level = Main Cleaning Brush - Brush Life Level +ch.xiaomi.vacuum.c102gl-miot.brush_life_level1 = Side Cleaning Brush - Brush Life Level +ch.xiaomi.vacuum.c102gl-miot.carpet_press = Vacuum Extend - Carpet Press +ch.xiaomi.vacuum.c102gl-miot.charging_state = Battery - Charging State +ch.xiaomi.vacuum.c102gl-miot.child_lock = Vacuum Extend - Child Lock +ch.xiaomi.vacuum.c102gl-miot.clean_cancel = Vacuum Extend - Clean Cancel +ch.xiaomi.vacuum.c102gl-miot.clean_extend_data = Vacuum Extend - Clean Extend Data +ch.xiaomi.vacuum.c102gl-miot.clean_rags_tip = Vacuum Extend - Clean Rags Tip +ch.xiaomi.vacuum.c102gl-miot.cleaning_area = Vacuum Extend - Cleaning Area +ch.xiaomi.vacuum.c102gl-miot.cleaning_mode = Vacuum Extend - Cleaning Mode +ch.xiaomi.vacuum.c102gl-miot.cleaning_time = Vacuum Extend - Cleaning Time +ch.xiaomi.vacuum.c102gl-miot.dry_left_time = Robot Cleaner - Dry Left Time +ch.xiaomi.vacuum.c102gl-miot.enable = Do Not Disturb - Enable +ch.xiaomi.vacuum.c102gl-miot.end_time = Do Not Disturb - End Time +ch.xiaomi.vacuum.c102gl-miot.fault = Robot Cleaner - Device Fault +ch.xiaomi.vacuum.c102gl-miot.faults = Vacuum Extend - Faults +ch.xiaomi.vacuum.c102gl-miot.filter_left_time = Filter - Filter Left Time +ch.xiaomi.vacuum.c102gl-miot.filter_life_level = Filter - Filter Life Level +ch.xiaomi.vacuum.c102gl-miot.first_clean_time = Clean Logs - First Clean Time +ch.xiaomi.vacuum.c102gl-miot.keep_sweeper_time = Vacuum Extend - Keep Sweeper Time +ch.xiaomi.vacuum.c102gl-miot.mode = Robot Cleaner - Mode +ch.xiaomi.vacuum.c102gl-miot.mop_left_time = Mop - Mop Left Time +ch.xiaomi.vacuum.c102gl-miot.mop_life_level = Mop - Mop Life Level +ch.xiaomi.vacuum.c102gl-miot.mop_mode = Vacuum Extend - Mop Mode +ch.xiaomi.vacuum.c102gl-miot.nation_matched = Vacuum Extend - Nation Matched +ch.xiaomi.vacuum.c102gl-miot.relocation_status = Vacuum Extend - Relocation Status +ch.xiaomi.vacuum.c102gl-miot.remote_state = Vacuum Extend - Remote State +ch.xiaomi.vacuum.c102gl-miot.serial_number = Vacuum Extend - Serial Number +ch.xiaomi.vacuum.c102gl-miot.set_voice = Audio - Set Voice +ch.xiaomi.vacuum.c102gl-miot.start_time = Do Not Disturb - Start Time +ch.xiaomi.vacuum.c102gl-miot.status = Robot Cleaner - Status +ch.xiaomi.vacuum.c102gl-miot.task_status = Vacuum Extend - Task Status +ch.xiaomi.vacuum.c102gl-miot.time_zone = Time - Time Zone +ch.xiaomi.vacuum.c102gl-miot.timer_clean = Time - Timer Clean +ch.xiaomi.vacuum.c102gl-miot.total_clean_area = Clean Logs - Total Clean Area +ch.xiaomi.vacuum.c102gl-miot.total_clean_time = Clean Logs - Total Clean Time +ch.xiaomi.vacuum.c102gl-miot.total_clean_times = Clean Logs - Total Clean Times +ch.xiaomi.vacuum.c102gl-miot.voice_change_state = Audio - Voice Change State +ch.xiaomi.vacuum.c102gl-miot.voice_packet_id = Audio - Voice Packet Id +ch.xiaomi.vacuum.c102gl-miot.volume = Audio - Volume +ch.xiaomi.vacuum.c102gl-miot.wash_station = Vacuum Extend - Wash Station +ch.xiaomi.vacuum.c102gl-miot.waterbox_status = Vacuum Extend - Waterbox Status +ch.xiaomi.vacuum.c102gl-miot.work_mode = Vacuum Extend - Work Mode ch.xjx.toilet.fan_temp = Fan Temperature ch.xjx.toilet.seat_temp = Seat Temperature ch.xjx.toilet.status_led = Night Light @@ -3864,6 +3913,65 @@ option.xiaomi.aircondition.mc1-miot.mode-2 = Cool option.xiaomi.aircondition.mc1-miot.mode-3 = Dry option.xiaomi.aircondition.mc1-miot.mode-4 = Fan option.xiaomi.aircondition.mc1-miot.mode-5 = Heat +option.xiaomi.vacuum.c102gl-miot.actions-audio-play-sound = Audio Play Sound +option.xiaomi.vacuum.c102gl-miot.actions-audio-position = Audio Position +option.xiaomi.vacuum.c102gl-miot.actions-battery-start-charge = Battery Start Charge +option.xiaomi.vacuum.c102gl-miot.actions-brush-cleaner-reset-brush-life = Brush Cleaner Reset Brush Life +option.xiaomi.vacuum.c102gl-miot.actions-filter-reset-filter-life = Filter Reset Filter Life +option.xiaomi.vacuum.c102gl-miot.actions-map-map-req = Map Map Req +option.xiaomi.vacuum.c102gl-miot.actions-map-update-map = Map Update Map +option.xiaomi.vacuum.c102gl-miot.actions-mop-reset-mop-life = Mop Reset Mop Life +option.xiaomi.vacuum.c102gl-miot.actions-time-delete-timer = Time Delete Timer +option.xiaomi.vacuum.c102gl-miot.actions-vacuum-extend-start-clean = Vacuum Extend Start Clean +option.xiaomi.vacuum.c102gl-miot.actions-vacuum-extend-stop-clean = Vacuum Extend Stop Clean +option.xiaomi.vacuum.c102gl-miot.actions-vacuum-start-dry = Vacuum Start Dry +option.xiaomi.vacuum.c102gl-miot.actions-vacuum-start-dust-arrest = Vacuum Start Dust Arrest +option.xiaomi.vacuum.c102gl-miot.actions-vacuum-start-eject = Vacuum Start Eject +option.xiaomi.vacuum.c102gl-miot.actions-vacuum-start-mop-wash = Vacuum Start Mop Wash +option.xiaomi.vacuum.c102gl-miot.actions-vacuum-start-room-sweep = Vacuum Start Room Sweep +option.xiaomi.vacuum.c102gl-miot.actions-vacuum-start-sweep = Vacuum Start Sweep +option.xiaomi.vacuum.c102gl-miot.actions-vacuum-stop-dry = Vacuum Stop Dry +option.xiaomi.vacuum.c102gl-miot.actions-vacuum-stop-sweeping = Vacuum Stop Sweeping +option.xiaomi.vacuum.c102gl-miot.break_point_restart-0 = Close +option.xiaomi.vacuum.c102gl-miot.break_point_restart-1 = Open +option.xiaomi.vacuum.c102gl-miot.carpet_press-0 = Close +option.xiaomi.vacuum.c102gl-miot.carpet_press-1 = Open +option.xiaomi.vacuum.c102gl-miot.charging_state-1 = Charging +option.xiaomi.vacuum.c102gl-miot.charging_state-2 = Not Charging +option.xiaomi.vacuum.c102gl-miot.charging_state-5 = Go Charging +option.xiaomi.vacuum.c102gl-miot.child_lock-0 = Close +option.xiaomi.vacuum.c102gl-miot.child_lock-1 = Open +option.xiaomi.vacuum.c102gl-miot.cleaning_mode-0 = Quiet +option.xiaomi.vacuum.c102gl-miot.cleaning_mode-1 = Standard +option.xiaomi.vacuum.c102gl-miot.cleaning_mode-2 = Medium +option.xiaomi.vacuum.c102gl-miot.cleaning_mode-3 = Strong +option.xiaomi.vacuum.c102gl-miot.mode-0 = Silent +option.xiaomi.vacuum.c102gl-miot.mode-1 = Basic +option.xiaomi.vacuum.c102gl-miot.mode-2 = Strong +option.xiaomi.vacuum.c102gl-miot.mode-3 = Full Speed +option.xiaomi.vacuum.c102gl-miot.mop_mode-1 = Low +option.xiaomi.vacuum.c102gl-miot.mop_mode-2 = Medium +option.xiaomi.vacuum.c102gl-miot.mop_mode-3 = High +option.xiaomi.vacuum.c102gl-miot.status-1 = Sweeping +option.xiaomi.vacuum.c102gl-miot.status-10 = Go Washing +option.xiaomi.vacuum.c102gl-miot.status-11 = Building +option.xiaomi.vacuum.c102gl-miot.status-12 = Sweeping And Mopping +option.xiaomi.vacuum.c102gl-miot.status-13 = Charging Completed +option.xiaomi.vacuum.c102gl-miot.status-14 = Upgrading +option.xiaomi.vacuum.c102gl-miot.status-19 = WaterInspecting +option.xiaomi.vacuum.c102gl-miot.status-2 = Idle +option.xiaomi.vacuum.c102gl-miot.status-21 = WashingMopPause +option.xiaomi.vacuum.c102gl-miot.status-22 = DustCollecting +option.xiaomi.vacuum.c102gl-miot.status-23 = RemoteClean +option.xiaomi.vacuum.c102gl-miot.status-3 = Paused +option.xiaomi.vacuum.c102gl-miot.status-4 = Error +option.xiaomi.vacuum.c102gl-miot.status-5 = Go Charging +option.xiaomi.vacuum.c102gl-miot.status-6 = Charging +option.xiaomi.vacuum.c102gl-miot.status-7 = Mopping +option.xiaomi.vacuum.c102gl-miot.status-8 = Drying +option.xiaomi.vacuum.c102gl-miot.status-9 = Washing +option.xiaomi.vacuum.c102gl-miot.waterbox_status-0 = No +option.xiaomi.vacuum.c102gl-miot.waterbox_status-1 = Yes option.yeelink.light.ceiling.colorMode-0 = Default option.yeelink.light.ceiling.colorMode-1 = RGB mode option.yeelink.light.ceiling.colorMode-2 = CT mode diff --git a/bundles/org.openhab.binding.miio/src/main/resources/database/xiaomi.vacuum.c102gl-miot.json b/bundles/org.openhab.binding.miio/src/main/resources/database/xiaomi.vacuum.c102gl-miot.json new file mode 100644 index 00000000000..c84124ac0c8 --- /dev/null +++ b/bundles/org.openhab.binding.miio/src/main/resources/database/xiaomi.vacuum.c102gl-miot.json @@ -0,0 +1,1357 @@ +{ + "deviceMapping": { + "id": [ + "xiaomi.vacuum.c102gl" + ], + "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": "vacuum-start-dust-arrest", + "label": "Vacuum Start Dust Arrest" + }, + { + "value": "vacuum-start-mop-wash", + "label": "Vacuum Start Mop Wash" + }, + { + "value": "vacuum-start-dry", + "label": "Vacuum Start Dry" + }, + { + "value": "vacuum-stop-dry", + "label": "Vacuum Stop Dry" + }, + { + "value": "vacuum-start-eject", + "label": "Vacuum Start Eject" + }, + { + "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": "mop-reset-mop-life", + "label": "Mop Reset Mop 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": "UNKNOWN", + "parameters": [ + 4.0 + ], + "siid": 2, + "aiid": 3, + "condition": { + "name": "matchValue", + "parameters": [ + { + "matchValue": "vacuum-start-room-sweep" + } + ] + } + }, + { + "command": "action", + "parameterType": "EMPTY", + "siid": 2, + "aiid": 4, + "condition": { + "name": "matchValue", + "parameters": [ + { + "matchValue": "vacuum-start-dust-arrest" + } + ] + } + }, + { + "command": "action", + "parameterType": "EMPTY", + "siid": 2, + "aiid": 6, + "condition": { + "name": "matchValue", + "parameters": [ + { + "matchValue": "vacuum-start-mop-wash" + } + ] + } + }, + { + "command": "action", + "parameterType": "EMPTY", + "siid": 2, + "aiid": 8, + "condition": { + "name": "matchValue", + "parameters": [ + { + "matchValue": "vacuum-start-dry" + } + ] + } + }, + { + "command": "action", + "parameterType": "EMPTY", + "siid": 2, + "aiid": 9, + "condition": { + "name": "matchValue", + "parameters": [ + { + "matchValue": "vacuum-stop-dry" + } + ] + } + }, + { + "command": "action", + "parameterType": "EMPTY", + "siid": 2, + "aiid": 10, + "condition": { + "name": "matchValue", + "parameters": [ + { + "matchValue": "vacuum-start-eject" + } + ] + } + }, + { + "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": "EMPTY", + "siid": 18, + "aiid": 1, + "condition": { + "name": "matchValue", + "parameters": [ + { + "matchValue": "mop-reset-mop-life" + } + ] + } + }, + { + "command": "action", + "parameterType": "UNKNOWN", + "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": "UNKNOWN", + "parameters": [ + 2.0 + ], + "siid": 6, + "aiid": 1, + "condition": { + "name": "matchValue", + "parameters": [ + { + "matchValue": "map-map-req" + } + ] + } + }, + { + "command": "action", + "parameterType": "UNKNOWN", + "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": "UNKNOWN", + "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\",\"vacuum-start-dust-arrest\"\u003d\"Vacuum Start Dust Arrest\",\"vacuum-start-mop-wash\"\u003d\"Vacuum Start Mop Wash\",\"vacuum-start-dry\"\u003d\"Vacuum Start Dry\",\"vacuum-stop-dry\"\u003d\"Vacuum Stop Dry\",\"vacuum-start-eject\"\u003d\"Vacuum Start Eject\",\"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\",\"mop-reset-mop-life\"\u003d\"Mop Reset Mop 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" + }, + { + "value": "14", + "label": "Upgrading" + }, + { + "value": "19", + "label": "WaterInspecting" + }, + { + "value": "21", + "label": "WashingMopPause" + }, + { + "value": "22", + "label": "DustCollecting" + }, + { + "value": "23", + "label": "RemoteClean" + } + ] + }, + "refresh": true, + "actions": [], + "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\",\"14\"\u003d\"Upgrading\",\"19\"\u003d\"WaterInspecting\",\"21\"\u003d\"WashingMopPause\",\"22\"\u003d\"DustCollecting\",\"23\"\u003d\"RemoteClean\"]`" + }, + { + "property": "fault", + "siid": 2, + "piid": 2, + "friendlyName": "Robot Cleaner - Device Fault", + "channel": "fault", + "type": "Number", + "stateDescription": { + "minimum": 0, + "maximum": 255, + "step": 1, + "pattern": "%.0f", + "readOnly": true + }, + "refresh": true, + "actions": [] + }, + { + "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": "dry-left-time", + "siid": 2, + "piid": 5, + "friendlyName": "Robot Cleaner - Dry Left Time", + "channel": "dry_left_time", + "type": "Number:Time", + "unit": "minutes", + "stateDescription": { + "minimum": 0, + "maximum": 9999, + "step": 1, + "pattern": "%.0f %unit%", + "readOnly": true + }, + "refresh": true, + "actions": [] + }, + { + "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": 1000, + "step": 1, + "pattern": "%.0f %unit%", + "readOnly": true + }, + "refresh": true, + "actions": [] + }, + { + "property": "mop-life-level", + "siid": 18, + "piid": 1, + "friendlyName": "Mop - Mop Life Level", + "channel": "mop_life_level", + "type": "Number:Dimensionless", + "unit": "percentage", + "stateDescription": { + "minimum": 0, + "maximum": 100, + "step": 1, + "pattern": "%.0f %unit%", + "readOnly": true + }, + "refresh": true, + "actions": [] + }, + { + "property": "mop-left-time", + "siid": 18, + "piid": 2, + "friendlyName": "Mop - Mop Left Time", + "channel": "mop_left_time", + "type": "Number:Time", + "unit": "hours", + "stateDescription": { + "minimum": 0, + "maximum": 9999, + "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", + "stateDescription": { + "minimum": 0, + "maximum": 32767, + "step": 1, + "pattern": "%.0f", + "readOnly": true + }, + "refresh": true, + "actions": [] + }, + { + "property": "cleaning-mode", + "siid": 4, + "piid": 4, + "friendlyName": "Vacuum Extend - Cleaning Mode", + "channel": "cleaning_mode", + "type": "Number", + "stateDescription": { + "readOnly": true, + "options": [ + { + "value": "0", + "label": "Quiet" + }, + { + "value": "1", + "label": "Standard" + }, + { + "value": "2", + "label": "Medium" + }, + { + "value": "3", + "label": "Strong" + } + ] + }, + "refresh": true, + "actions": [], + "readmeComment": "Value mapping `[\"0\"\u003d\"Quiet\",\"1\"\u003d\"Standard\",\"2\"\u003d\"Medium\",\"3\"\u003d\"Strong\"]`" + }, + { + "property": "mop-mode", + "siid": 4, + "piid": 5, + "friendlyName": "Vacuum Extend - Mop Mode", + "channel": "mop_mode", + "type": "Number", + "stateDescription": { + "options": [ + { + "value": "1", + "label": "Low" + }, + { + "value": "2", + "label": "Medium" + }, + { + "value": "3", + "label": "High" + } + ] + }, + "refresh": true, + "actions": [ + { + "command": "set_properties", + "parameterType": "STRING" + } + ], + "readmeComment": "Value mapping `[\"1\"\u003d\"Low\",\"2\"\u003d\"Medium\",\"3\"\u003d\"High\"]`" + }, + { + "property": "waterbox-status", + "siid": 4, + "piid": 6, + "friendlyName": "Vacuum Extend - Waterbox Status", + "channel": "waterbox_status", + "type": "Number", + "stateDescription": { + "readOnly": true, + "options": [ + { + "value": "0", + "label": "No" + }, + { + "value": "1", + "label": "Yes" + } + ] + }, + "refresh": true, + "actions": [], + "readmeComment": "Value mapping `[\"0\"\u003d\"No\",\"1\"\u003d\"Yes\"]`" + }, + { + "property": "task-status", + "siid": 4, + "piid": 7, + "friendlyName": "Vacuum Extend - Task Status", + "channel": "task_status", + "type": "Number", + "stateDescription": { + "minimum": 0, + "maximum": 255, + "step": 1, + "pattern": "%.0f", + "readOnly": true + }, + "refresh": true, + "actions": [] + }, + { + "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": "Close" + }, + { + "value": "1", + "label": "Open" + } + ] + }, + "refresh": true, + "actions": [ + { + "command": "set_properties", + "parameterType": "NUMBER" + } + ], + "readmeComment": "Value mapping `[\"0\"\u003d\"Close\",\"1\"\u003d\"Open\"]`" + }, + { + "property": "carpet-press", + "siid": 4, + "piid": 12, + "friendlyName": "Vacuum Extend - Carpet Press", + "channel": "carpet_press", + "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": "serial-number", + "siid": 4, + "piid": 14, + "friendlyName": "Vacuum Extend - Serial Number", + "channel": "serial_number", + "type": "String", + "stateDescription": { + "readOnly": true + }, + "refresh": true, + "actions": [] + }, + { + "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": "wash-station", + "siid": 4, + "piid": 25, + "friendlyName": "Vacuum Extend - Wash Station", + "channel": "wash_station", + "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": "NUMBER" + } + ], + "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": "volume", + "siid": 7, + "piid": 1, + "friendlyName": "Audio - Volume", + "channel": "volume", + "type": "Number", + "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, + "maximum": -1, + "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, + "maximum": -1, + "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, + "maximum": -1, + "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, + "maximum": -1, + "step": 1, + "pattern": "%.0f", + "readOnly": true + }, + "refresh": true, + "actions": [] + } + ], + "experimental": false + } +}