# Roborock Binding
This binding is used to control Roborock robot vacuum cleaner products implementing the Roborock protocol.
# Supported Things
The following things types are available:
ThingType | Description |
---|---|
account | Account bridge for Roborock Robot Vacuum products |
vacuum | For Roborock Robot Vacuum products |
# Discovery
After (manually) adding a Roborock Account bridge, registered vacuums will be auto discovered.
# account
Bridge Configuration
Account configuration is necessary. The easiest way to do this is from the UI. Just add a new thing, select the Roborock binding, then Roborock Account Binding Thing, and enter the email and password for your Roborock account.
Thing Parameter | Default Value | Required | Advanced | Description |
---|---|---|---|---|
N/A | Yes | No | Email address for your Roborock account | |
password | N/A | Yes | No | Password for your Roborock account |
# vacuum
Thing Configuration
Thing Parameter | Default Value | Required | Advanced | Description |
---|---|---|---|---|
duid | N/A | Yes | No | duid (Device UID) of the robot from the Roborock api |
refresh | 5 | No | Yes | The frequency with which to refresh information from Roborock specified in minutes |
# Channels
Type | Channel | Description |
---|---|---|
String | network#ssid | Network SSID |
String | network#bssid | Network BSSID |
Number | network#rssi | Network RSSI |
String | actions#control | Control vacuum (dock, vacuum, spot, pause) |
String | actions#command | Send command via cloud |
String | actions#rpc | Send command via cloud |
Switch | actions#power | Power On/Off |
Switch | status#segment-status | Segment Status |
Number:Dimensionless | status#battery | Battery Status |
Number:Area | status#clean-area | Total Cleaning Area |
Number:Time | status#clean-time | Total Cleaning Time |
String | status#error | Error reported by vacuum |
Number | status#fan-power | Fan Power |
Switch | status#dnd-enabled | Do not Disturb Status |
Number | status#state | Vacuum Status |
Switch | status#map-status | Map Box Status |
Switch | status#led-status | Led Box Status |
String | info#carpet-mode | Carpet Mode details |
String | info#room-mapping | Room Mapping details |
String | info#multi-maps-list | Maps Listing details |
Number:Time | consumables#main-brush-time | Main Brush Time till Replacement |
Number:Time | consumables#side-brush-time | Side Brush Time till Replacement |
Number:Time | consumables#sensor-dirt-time | Sensor till Cleaning |
Number:Time | consumables#filter-time | Filter Time till Replacement |
Number:Area | history#total-clean-area | Total Cleaned Area |
String | history#total-clean-time | Total Clean Time |
Number | history#total-clean-count | Total # Cleanings |
String | cleaning#last-clean-start-time | Last Cleaning Start time |
String | cleaning#last-clean-end-time | Last Cleaning End time |
Number:Area | cleaning#last-clean-area | Last Cleaned Area |
Number:Time | cleaning#last-clean-duration | Last Clean Time |
Number | cleaning#last-clean-error | Last Clean Error |
Switch | cleaning#last-clean-finish | Last Cleaning Completed |
Additionally depending on the capabilities of your robot vacuum other channels may be enabled at runtime
Type | Channel | Description |
---|---|---|
Switch | status#water-box-status | Water Box Status |
Switch | status#lock-status | Lock Status |
Number | status#water-box-mode | Water Box Mode |
Number | status#mop-mode | Mop Mode |
Switch | status#water-box-carriage-status | Water Box Carriage Status |
Switch | status#mop-forbidden-enable | Mop Forbidden |
Switch | status#is-locating | Robot is locating |
Number | actions#segment | Room Clean (enter room #) |
Switch | actions#collect-dust | Start collecting dust |
Switch | actions#clean-mop-start | Start mop wash |
Switch | actions#clean-mop-stop | Stop mop wash |
Number | status#mop-drying-time | Mop drying Time |
Switch | status#is-mop-drying | Mop cleaning active |
Number | status#dock-state-id | Dock status id |
There are several advanced channels, which may be useful in rules (e.g. for individual room cleaning etc) In case your vacuum does not support one of these commands, it will show "unsupported_method" for string channels or no value for numeric channels.
# Full Example
# demo.things
Example
Bridge roborock:account:account [ email="xxxx", password="xxxx" ] {
roborock:vacuum:QrevoS [ refresh=5 ]
}
# example.items
Example
Group gVac "Roborock Robot Vacuum" <fan>
Group gVacStat "Status Details" <status> (gVac)
Group gVacCons "Consumables Usage" <line-increase> (gVac)
Group gVacDND "Do Not Disturb Settings" <moon> (gVac)
Group gVacHist "Cleaning History" <calendar> (gVac)
Group gVacLast "Last Cleaning Details" <calendar> (gVac)
String actionControl "Vacuum Control" {channel="roborock:vacuum:034F0E45:actions#control" }
String actionCommand "Vacuum Command" {channel="roborock:vacuum:034F0E45:actions#commands" }
Switch actionPower "Vacuum On/Off" {channel="roborock:vacuum:034F0E45:actions#power" }
Number:Dimensionless statusBat "Battery Level [%1.0f%%]" <battery> (gVac,gVacStat) {channel="roborock:vacuum:034F0E45:status#battery" }
Number:Area statusArea "Cleaned Area [%1.0fm²]" <zoom> (gVac,gVacStat) {channel="roborock:vacuum:034F0E45:status#clean-area" }
Number:Time statusTime "Cleaning Time [%1.0f']" <clock> (gVac,gVacStat) {channel="roborock:vacuum:034F0E45:status#clean-time" }
String statusError "Error [%s]" <error> (gVac,gVacStat) {channel="roborock:vacuum:034F0E45:status#error-code" }
Number:Dimensionless statusFanPow "Fan Power [%1.0f%%]" <signal> (gVacStat) {channel="roborock:vacuum:034F0E45:status#fan-power" }
Switch statusClean "In Cleaning Status [%1.0f]" <switch> (gVacStat) {channel="roborock:vacuum:034F0E45:status#in-cleaning" }
Switch statusDND "DND Activated" (gVacStat) {channel="roborock:vacuum:034F0E45:status#dnd-enabled" }
Number statusStatus "Status [%1.0f]" <status> (gVacStat) {channel="roborock:vacuum:034F0E45:status#state"}
Switch isLocating "Locating" (gVacStat) {channel="roborock:vacuum:034F0E45:status#is-locating" }
Number:Time consumableMain "Main Brush [%1.0f]" (gVacCons) {channel="roborock:vacuum:034F0E45:consumables#main-brush-time"}
Number:Time consumableSide "Side Brush [%1.0f]" (gVacCons) {channel="roborock:vacuum:034F0E45:consumables#side-brush-time"}
Number:Time consumableFilter "Filter Time[%1.0f]" (gVacCons) {channel="roborock:vacuum:034F0E45:consumables#filter-time" }
Number:Time consumableSensor "Sensor [%1.0f]" (gVacCons) {channel="roborock:vacuum:034F0E45:consumables#sensor-dirt-time"}
Switch dndFunction "DND Function" <moon> (gVacDND) {channel="roborock:vacuum:034F0E45:dnd#dnd-function"}
String dndStart "DND Start Time [%s]" <clock> (gVacDND) {channel="roborock:vacuum:034F0E45:dnd#dnd-start"}
String dndEnd "DND End Time [%s]" <clock-on> (gVacDND) {channel="roborock:vacuum:034F0E45:dnd#dnd-end"}
Number:Area historyArea "Total Cleaned Area [%1.0fm²]" <zoom> (gVacHist) {channel="roborock:vacuum:034F0E45:history#total-clean-area"}
String historyTime "Total Clean Time [%s]" <clock> (gVacHist) {channel="roborock:vacuum:034F0E45:history#total-clean-time"}
Number historyCount "Total # Cleanings [%1.0f]" <office> (gVacHist) {channel="roborock:vacuum:034F0E45:history#total-clean-count"}
String lastStart "Last Cleaning Start time [%s]" <clock> (gVacLast) {channel="roborock:vacuum:034F0E45:cleaning#last-clean-start-time"}
String lastEnd "Last Cleaning End time [%s]" <clock> (gVacLast) {channel="roborock:vacuum:034F0E45:cleaning#last-clean-end-time"}
Number:Area lastArea "Last Cleaned Area [%1.0fm²]" <zoom> (gVacLast) {channel="roborock:vacuum:034F0E45:cleaning#last-clean-area"}
Number:Time lastTime "Last Clean Time [%1.0f']" <clock> (gVacLast) {channel="roborock:vacuum:034F0E45:cleaning#last-clean-duration"}
Number lastError "Error [%s]" <error> (gVacLast) {channel="roborock:vacuum:034F0E45:cleaning#last-clean-error" }
Switch lastCompleted "Last Cleaning Completed" (gVacLast) {channel="roborock:vacuum:034F0E45:cleaning#last-clean-finish" }