[RELEASE] Roborock Robot Vacuum

A Hubitat driver to allow integration between Hubitat and Roborock devices utilizing the Roborock Cloud API.

  • Please let me know your robot type and whether this driver works or does not work for you. I will keep an updated list of devices for others.
  • Requires Roborok application integration using Apple iOS and/or Android. Sorry, the Xiaomi Mi Home application integration will not work.
  • There are four locations for your account: US, EU, CH and RU. You can determine your location from the personal data section of your mobile application under 'region'. Release 1.0.6+ will attempt to find your location using any of the valid region settings.
  • If you have more than one robot, add a new device and slowly select the additional robot using the 'selectDevice' command.
  • Yes, you still need the mobile application, and your room setups are done there.
  • No, this does not work locally and requires Internet availability.
  • Yes, I plan to add additional functionality and will collaborate with others on further enhancements.
  • No, I have no plans for camera or map integration unless someone else wants to help with the coding.
  • You can experiment with other commands using the 'execute' command; a good source of information is listed here.
  • I included the 'PushableButton' capability to allow you to use the Hubitat Button Controller app to set commands and run your own macros. I don't plan on adding presets, so please don't ask.
  • I am not keen on creating extensive documentation. This is a hobby. Please respect that if you decide to use this driver.
  • As of version 1.1.2 there is a flag 'hubitatVersion239' when true changes attributes to use enum.

You can install using Hubitat Package Manager (HPM) with fast keyword search 'Roborock' or manually as per below.

Roborock Device Handlers:

Base Library: https://github.com/bloodtick/Hubitat/tree/main/roborockRobotVacuum

Vacuums that have been attempted and do work:

  • Roborock Q Revo
  • Roborock Q5+
  • Roborock S5
  • Roborock S5 Max
  • Roborock S6 MaxV
  • Roborock Q7 Max+
  • Roborock S7+
  • Roborock S8
  • Roborock Qrevo MaxV
  • Roborock Q8 Max+
  • Roborock S4
  • To be determined based on feedback

Vacuums that have been attempted and do not work:

  • Robots authorized with the Xiaomi (Mi Home) application

Releases:

Older Releases
  • Update 2024/04/18: Release 0.9.0. Initial Beta Release
  • Update 2024/04/19: Release 0.9.1. Log clean up and optimizations.
  • Update 2024/04/20: Release 0.9.2. Better queue management, updates to 'on/off' to indicate early.
  • Update 2024/04/21 Release 1.0.0. Formal release, added dustCollection & dockError states.
  • Update 2024/04/23 Release 1.0.1. Added wifi attribute and device sleeping waiting for wifi enable.
  • Update 2024/04/23 Release 1.0.2. Critical patch for multi-devices per user account.
  • Update 2024/04/24 Release 1.0.4 & 1.0.3 Critical limit to refresh of homeData, auto refresh for older devices. Thank you @user2574 for the help with this and 'solutioning' multi-device support.
  • Update 2024/04/29 Release 1.0.5 Reduced log output, added MapWater parameter to appRoomClean. See post below for more information.
  • Update 2024/05/11 Release 1.0.6 Added RU & CH regions, check for account location.
  • Update 2024/05/12 Release 1.1.0 Initial support for scenes (aka routines), proper rooms json fix. Thanks to @corinuss for the hints on scene support!
  • Update 2024/05/17 Release 1.1.1 Updated hash algo to match HA solution. Debug added for login.
  • Update 2024/05/20 Release 1.1.2 Updated for 2.3.9+ fix to attribute enum. Depreciated 'wifi' attribute and moved to error. Updated event processing to allow for log.warn on errors.
  • Update 2024/05/27 Release 1.1.3 numberOfButtons preference setting for new ez-dashboards. Suggest updating preferences after update.
  • Update 2024/06/25 Release 1.1.4 appRoomClean(space or comma roomIds), remainingHighSpeedMaintBrush attribute, Fix Water Filter Tracking. Thanks @shimbone.
  • Update 2024/08/05 Release 1.1.5 Hopefully a fix for the random 'not authorized to connect' with mqtt. Update Preferences after downloading.
  • Update 2024/11/28 Release 1.1.10 Updates to prevent healthStatus ping pong.
23 Likes

Current Command set and purpose:

Note: 'appRoomClean' has 'MopWater' as of version 1.0.5, and when set to OFF, it effectively disables all mop functions configured in the mobile application. Setting it to DEFAULT maintains the current device setting with no changes. This value is not required.

Commands as of 1.1.0:

Example push button macro example:

Examples using the Execute command with JSON param structures:

3 Likes

Reserved for future use #2.

AWESOME... Truly awesome.

I have the Roborock Q5+ ... no mopping on this unit. I installed the drivers via HPM... no issues. Enter my Roborock credentials and instantly the driver information was pulled via Roborock's web-portal. Tried out the commands from the driver... they worked perfectly.

Looking forward to begin adding some automation features with this new driver... THANK YOU!

2 Likes

Thanks for this, I have the S7+ (has mop) with Auto-Empty Dock. I'll be testing this for sure...

Just installed and login worked perfectly, will test tonight !

1 Like

Damn! I want to use this on my S8 pro ultra but...
The darm thing is so smart I'm not sure what I could do programatically to make it any better :rofl:

Marvellous effort! 0.91 confirmed working with S5 Max. Only used On/Off function, but that was all I was after.

1 Like

Selective Room cleaning on S7+ working perfectly. state of the vacuum also reporting correctly.

BTW, this probably has nothing to do with your driver but order of rooms you enter does not reflect the order that the robot does his thing, I had the same behaviour with the actual Roborock app. This might not be something that is possible?

Would like to see buttons to change fanPower and MopMode for now. Will most likely have more request later on :wink:

Just noticed the same on my S8. It runs in the order that I put into the map on the iOS mobile application. :person_shrugging:

Try this to change the mope mode. You need to hit refresh to show in the attributes. I will look into doing that in the code.
image

where:

standard = 300
deep = 301
deep_plus = 303
fast = 304
custom = 302

I don't see the fanPower control, but will pay attention ...

1 Like

@Bloodtick_Jones I have a Q7 Max+. I'll give it a whirl

1 Like

I also have a Q7 Max+, i'll give this a whirl this afternoon.

1 Like

This is fantastic -- thanks! I haven't tested all the functions yet, but the reporting and basic start functionality work on my S5 Max.

@Bloodtick_Jones Connected up, Existing functions work. Can you add the empty command (emptys into the dock)?

1 Like

I can't really test that ... try this command.

Should look like this:
image

1 Like

Holy cow awesome work... been waiting for something like this!

Question: In my case using WebCoRE, I can initiate a room clean "appRoomClean (18)" (which is [18,Kitchen], but it seems to want to mop AND vaccum. How can I just vaccum only without mopping?

Command works.....

2 Likes

Does it take a while for the rooms to populate? Looks like mine are currently blank


Mine populated immediately

Hummm wonder why mine aren’t populating. Tney are clearly set up?