Roborock binding for robot vacuum cleaners [5.0.0; 5.0.99]

Promising. Do you have a 5.0 milestone jar with the latest version or is your previous post from 5 days ago the latest one?

I’ve just updated the jar with the latest code from git, but this is all minor changes….

1 Like

Cumulative small changes bring great effects! :smiley:I’ll join the fun this week!

1 Like

Maps aren’t supported yet, neither is communicating via local IP. Some cloud use is still required, even with local IP comms in order to retrieve the token and also for some commands (ie maps).

Just ensure that if you installed any previous builds, that they have been removed so that only the latest code is loaded.

Hello Paul,

Many thanks for your efforts in this.

As a long time OpenHab user, I decided to give this a whirl but cannot get it to see my Robo Q10.

Is it something specific to this model or any other configuration needed on my side apart from the RR account details ?

I’m trying at my summer house in Turkey, the account used to have TR as the region, however I changed it to Germany on a new account to see if there’s any change, nothing..

Discovery detects nothing, and manually adding the robot vacuum also yields no results, thing appears online but nothing gets executed.

Many thanks,

Jan

Logs please :slight_smile: Bump the logging up to trace 1st and try adding a thing and pushing ā€˜Scan’.

Manually adding won’t work unles syou know the roborock device id thorugh something like the python roborock binding.

Thank you for the reply.

I seem to get empty JSON responses from the new account with Germany as the country.

However, when I migrate the device back to the original account (TR), the binding seems to list a device ID in the logs. Adding the log below:

Scan Log.txt (4.5 KB)

Also, the binding seems to occasionally receive MQTT responses for a device in the logs. (Received MQTT message for device 6mll6LOS1OLPmEkuOgjFT6).

But when I create a new device using this ID in the Things section, it comes online, but nothing gets executed as explained. Also, none of the status variables receive data from the device (battery etc.). I’m probably doing it wrong.

Adding the log after the creation of the device, also the screen for the robot vacuum thing.

RoboRock Binding - JSON response.txt (17.1 KB)

Thanks!

image

Is there a reason to manually add the vacuum, rather than using the Scan results? I’ll look at the logs this evening (my time)

Fwiw 3gKDz7BnDrjXOVBAEXj4uw appears to be the device id for the Q10.

Nothing gets listed through a scan, it returns no results despite multiple tries.

Also tried adding the device in the logs manually, but I might be doing it wrong.

interesting - let me have a closer look at the discovery code and see what’s different….

Edit: ok I see - the format of the data is different to what I’m looking for.

In your discovery log example, towards the end it has:

"devices":[],"receivedDevices":[],"rooms":[]},"status":"ok","success":true}'

My example has:

ā€œdevicesā€:[{ā€œduidā€:ā€œ2AqtxeQr7LPvHdROZSIWJ4ā€,ā€œnameā€:ā€œS7ā€ā€¦ā€¦.

Just confirming - the robovac is currently setup using the Roborock app or the Xiaomi Home app?

Depending which app is used, the API responses change To use this binding, you MUST be using the Roborock app.

It is registered only through the Roborock app.

The vacuum shows up as S8 Pro+ in the TR account, and Q10 series when added to the account with Germany set as the region.

Probably due to regional naming of the same device.

Adding the screen below:

IMG-20250808-WA0000

I don’t have much more to report from the logs..

I wonder if the binding is still using a token from the ā€˜wrong’ account.

Did you modify the email/password of the ā€˜Account’ thing when changing from TR to DE or create a new Thing?

Perhaps remove /var/lib/openhab/jsondb/roborock*.json and let it login again, using the same details as you’re using in the app. Other than that, I’m kinda out of ideas, other than checking if python-roborock works?

Yes, I was editing the account details in binding when changing account.

I cleared all files from the dir and gave another shot, nothing comes through discovery again, but the log seems to contain a bit more information. The same device is also listed in the logs.

Is it possible to create a manual device with the ID found in the logs, perhaps by editing through the Code tab in the thing’s menu ?

Please find the new log attached.

Scan Log after Reinit.txt (16.7 KB)

Thank you.

Unfortunately, the list of devices is still blank: "devices":[]

If you’re running on linux, it would be interesting to see if GitHub - Python-roborock/python-roborock: Python library & console tool for controlling Roborock vacuum can detect your vacuum with your account details.

Edit: Roborock: Q10, Q7, and other new vacuums not supported Ā· Issue #144138 Ā· home-assistant/core Ā· GitHub might explain the issue. Seems there are different formats for the response from home-data

Can you try the new build at https://smedley.id.au/tmp/org.openhab.binding.roborock-5.1.0-SNAPSHOT.jar - this uses the v3 endpoint to get home-data. It doesn’t seem to break anything here, but may help you.

1 Like

Many thanks for the update.

The binding discovers the vacuum correctly through a scan now, and it’s added as a Thing.

However, the trouble with MQTT messages seems to continue, the binding cannot read values from the vacuum (battery etc.), and the commands sent to Control Vacuum channel returns invalid message format errors.

Please find both the discovery and action logs attached.

Discovery Log.txt (26.0 KB)

Action Log.txt (1.5 KB)

OK this is progress at least. Your vacuum sends messages with a different protocol - B01 not 101.

Unfortunately, it seems this protocol isn’t supported yet by python roborock - python-roborock/roborock/protocols at cbd6df23da93681b72d47a68c1d64dcb25b27db5 Ā· Python-roborock/python-roborock Ā· GitHub

Edit: Updated Post 1 to describe this, and just made a change to the discovery code to only add vacuums that use the 1.0 protocol, and add a log entry for detected vacuums that use other protocols.

Edit2: A01 protocol should be very easy to support, it seems to be just a different encryption method, but the same method structure. I’ll probably add (untested) support for this soon.

1 Like

Hello everyone,

I installed OH 5.0.0 on a Pi4.
Unfortunately, an error occurred when installing the Roborock binding for robot vacuum cleaners [5.0.0; 6.0.0]:

Message
marketplace:164698: Cannot copy bundle to local cache: https://smedley.id.au/tmp/org.openhab.binding.roborock-5.1.0-SNAPSHOT-.jar

Restarting and clearing the cache did not help. Does anyone have any ideas?

I’d managed to include a typo in the URL - hopefully fixed now

1 Like

Great. Installation worked. Unfortunately, all items remain at NULL. S7 Max Ultra is probably not supported.

Did you add your robot manuel or with scan?

I had the Same Problem, after the device scan i got stats