Roborock binding for robot vacuum cleaners [5.0.0.0;5.1.0.0)

Trace logs? You could also install the binding that included wih 5.1 and remove the marketplace binding. Infact, I should adjust marketplace so it won’t install on 5.1.

I installed the latest update from here: Roborock binding for robot vacuum cleaners [5.0.0; 5.0.99] - #190 by Paul_Smedley

openhab.log
2025-12-06 04:40:38.905 [WARN ] [mmon.WrappedScheduledExecutorService] - Scheduled runnable ended with an exception: 
java.lang.NullPointerException: Cannot read field "rrHomeId" because "home.data" is null
	at org.openhab.binding.roborock.internal.RoborockAccountHandler.refreshHomeData(RoborockAccountHandler.java:140) ~[?:?]
	at org.openhab.core.cache.ExpiringCache.refreshValue(ExpiringCache.java:103) ~[?:?]
	at org.openhab.core.cache.ExpiringCache.getValue(ExpiringCache.java:73) ~[?:?]
	at org.openhab.binding.roborock.internal.RoborockAccountHandler.getHomeData(RoborockAccountHandler.java:130) ~[?:?]
	at org.openhab.binding.roborock.internal.discovery.RoborockVacuumDiscoveryService.getHomeData(RoborockVacuumDiscoveryService.java:87) ~[?:?]
	at org.openhab.binding.roborock.internal.discovery.RoborockVacuumDiscoveryService.discover(RoborockVacuumDiscoveryService.java:112) ~[?:?]
	at org.openhab.binding.roborock.internal.discovery.RoborockVacuumDiscoveryService.startScan(RoborockVacuumDiscoveryService.java:126) ~[?:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) ~[?:?]
	at java.util.concurrent.FutureTask.runAndReset(Unknown Source) ~[?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source) ~[?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) ~[?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ~[?:?]
	at java.lang.Thread.run(Unknown Source) [?:?]

Edit: the binding included in 5.1. generate the warning too

Need to see more of the log, but home.data being null suggests the token is invalid…..

here my log:

openhab.log (11.0 KB)

Sorry, need trace logging enabled…

Hope, that’s what you want

Deleted URL

unfortunately, I don’t see anything related to the roborock binding in this log :frowning: despite it’s size, it only spans ~2 minutes…

maybe this part of the log is better :thinking:

link deleted

Unfortunately not - I’d at least expect the see the line:

Cannot read field "rrHomeId" because "home.data" is null"

in the log, but there’s nothing to do with the roborock binding that I can see….

Think i need to wait first. Is it right, that the @ will be send as %40 ?

2025-12-06 07:46:09.180 [TRACE] [rock.internal.RoborockAccountHandler] - e6fbfda6cc: API Init: Scheduling to run in 0 seconds
2025-12-06 07:46:09.181 [TRACE] [rock.internal.RoborockAccountHandler] - e6fbfda6cc: API Init: Running one-shot
2025-12-06 07:46:09.181 [DEBUG] [rock.internal.RoborockAccountHandler] - No available token or rriot values from sessionStorage, logging in
2025-12-06 07:46:09.181 [DEBUG] [roborock.internal.RoborockWebTargets] - Calling url: https://euiot.roborock.com/api/v1/login?username=***%40web.de&password=*******&needtwostepauth=false2025-12-06 07:46:09.181 [TRACE] [roborock.internal.RoborockWebTargets] - POST request for https://euiot.roborock.com/api/v1/login?username=***%40web.de&password=*******&needtwostepauth=false
2025-12-06 07:46:09.248 [TRACE] [roborock.internal.RoborockWebTargets] - JSON response: '{"msg":"mqtt message rate limit exceeded, sign in blocked for 7 days","data":null,"code":9004}'

ugggh I wish I knew how to prevent this. I’ve never seen a message saying sign in blocked for 7 days though…

FWIW - I just tried a ‘new’ login on a test install and got an error:
2025-12-07 09:33:26.970 \[TRACE\] \[roborock.internal.RoborockWebTargets\] - JSON response: ‘{“msg”:“need two step validate”,“data”:null,“code”:2031}’

Will investigate, Homey has the same problem, seems python-roborock has a fix already.

Edit: I need to study python-roborock/roborock/web_api.py at main · Python-roborock/python-roborock · GitHub

Edit2: created an issue for this at [roborock] login failing with "need two step validate" · Issue #19759 · openhab/openhab-addons · GitHub which I’m working to address.

1 Like

OK, new build to test. https://smedley.id.au/tmp/org.openhab.binding.roborock-5.1.0-SNAPSHOT.jar

If your vacuum is currently working - there is no need to upgrade. This update is purely to fix the new login methods.

If you want to test, I suggest you create a new thing so you don’t risk breaking your current working vac.

I still need to update the readme. The password is no longer used, in config there is a field for a 2FA code.

To create a new thing, just enter your email. If you have a roborock account, you’ll get an mail with a 6 digit code. Add this to the 2FA field and hit save. If correct, your account should go online, and the 2FA field will be cleared.

[roborock] Update login to use new protocol by psmedley · Pull Request #19760 · openhab/openhab-addons · GitHub is tracking this - currently set to WIP pending feedback.

1 Like

Thanks for the new build. I could login super fast and easy and add my Roborock S7. Now i can test :smiley:

1 Like

Good timing that this broke before the release of 5.1.0 :slight_smile:

Looks Like the Roborock Binding Breaks the Enocean Binding. Both get Error:Com. :thinking:

I will Look, was the log say if im back home

hmmm that doesn’t make a lot of sense….. I just fixed a few copilot suggestions so the build has updated again.

I’ll update on my main install too (not that it should be impacted at all as it has a working token already)

I know now, why i had the Problem. My Raspberry Pi with Openhab 4 was still running and connected to the cloud instead of my raspberry with Openhab 5. So i was trying to controll items on the wrong openhab.

The Roborock Binding Runs actually without problems

1 Like

Hi Paul,

very good job and thank you so much for that binding.

I’m on 5.0.3 stable, is com.google.gson 2.13 really a requirement for your 5.1.0 snapshot?

openhab> bundle:start 355
Error executing command: Error executing command on bundles:
Error starting bundle 355: Could not resolve module: org.openhab.binding.roborock \[355\]
Unresolved requirement: Import-Package: com.google.gson; version=“\[2.13.0,3.0.0)”

or could you imagine to build a snapshot for 5.0.3 too?

the gson isn’t a requirement per se - but it’s driven by building from the main branch.

Login broke again, so updated per python-roborock latest fix (fix: align V4 code login with app by Lash-L · Pull Request #657 · Python-roborock/python-roborock · GitHub)

Synced code into 5.0 branch, (untested) build is available at https://smedley.id.au/tmp/org.openhab.binding.roborock-5.0.2-SNAPSHOT.jar

1 Like