Tomorrow (Thursday) is my last day of work until the 5th Jan - I’ll try look at this - cos it would be cool, but unlikely to make it into 5.1.0
Hey folks, for those with vacuums using the B01 protocol, who has the Q7 and who has the Q10 - they each use ‘flavours’ of B01. I have access to a Q10, just wondering who might have the Q7 as well.
Hi, I’m struggling with the Roborock binding. I’ve tried entering the 2FA code sent to my email, but I still get a ‘user is not authenticated’ error. My account was created via Google Login. Does the binding support Google-linked accounts, or do I need to set up a dedicated password?
log says:
Calling url: https://euiot.roborock.com/api/v1/getHomeDetail
GET request for https://euiot.roborock.com/api/v1/getHomeDetail
JSON response: ‘{“msg”:“user is not authentication”,“data”:null,“code”:2013}’
Hi Anders, it’s possible your account hasn’t been upgraded to the new ‘v4’ logon protocol, and the fallback code is failing.
Can you enable trace logging and paste the output of a logon attempt?
Edit: I found an issue with the legacy/fallback code logon - https://smedley.id.au/tmp/org.openhab.binding.roborock-5.2.0-SNAPSHOT.jar may fix.
Hi, I tested with the new JAR and see the same behavior. I’ve attached a log trace; let me know if you need additional information.
```
09:55:32.787 [INFO] [openhab.event.ThingStatusInfoChangedEvent] - Thing ‘roborock:account:4efa6d5a23’ changed from UNINITIALIZED to INITIALIZING
09:55:32.793 [TRACE] [org.openhab.binding.roborock.internal.RoborockAccountHandler] - 4efa6d5a23: API Init: Scheduling to run in 0 seconds
09:55:32.795 [TRACE] [org.openhab.binding.roborock.internal.RoborockAccountHandler] - 4efa6d5a23: API Init: Running one-shot
09:55:32.795 [INFO] [openhab.event.ThingStatusInfoChangedEvent] - Thing ‘roborock:account:4efa6d5a23’ changed from INITIALIZING to UNKNOWN
09:55:32.797 [DEBUG] [org.openhab.binding.roborock.internal.RoborockWebTargets] - Calling url: https://euiot.roborock.com/api/v1/getUrlByEmail?email=xxxxxxxxxx%40gmail.com&needtwostepauth=false
09:55:32.798 [TRACE] [org.openhab.binding.roborock.internal.RoborockWebTargets] - POST request for https://euiot.roborock.com/api/v1/getUrlByEmail?email=xxxxxxxxxx%40gmail.com&needtwostepauth=false
09:55:32.936 [TRACE] [org.openhab.binding.roborock.internal.RoborockWebTargets] - JSON response: ‘{“code”:200,“msg”:“success”,“data”:{“url”:“https://euiot.roborock.com”,“country”:null,“countrycode”:“45”}}’
09:55:32.938 [TRACE] [org.openhab.binding.roborock.internal.RoborockAccountHandler] - Country determined to be null and code 45
09:55:32.938 [DEBUG] [org.openhab.binding.roborock.internal.RoborockAccountHandler] - No available token or rriot values from sessionStorage, logging in
09:55:32.939 [DEBUG] [org.openhab.binding.roborock.internal.RoborockWebTargets] - Calling url: https://euiot.roborock.com/api/v4/email/code/send?email=xxxxxxxxxx%40gmail.com&type=login&platform=
09:55:32.940 [TRACE] [org.openhab.binding.roborock.internal.RoborockWebTargets] - POST request for https://euiot.roborock.com/api/v4/email/code/send?email=xxxxxxxxxx%40gmail.com&type=login&platform=
09:55:33.164 [TRACE] [org.openhab.binding.roborock.internal.RoborockWebTargets] - JSON response: ‘{“code”:200,“msg”:“success”,“data”:null}’
09:55:59.178 [TRACE] [org.openhab.binding.roborock.internal.RoborockAccountHandler] - 4efa6d5a23: API Init: Scheduling to run in 0 seconds
09:55:59.179 [TRACE] [org.openhab.binding.roborock.internal.RoborockAccountHandler] - 4efa6d5a23: API Init: Running one-shot
09:55:59.179 [DEBUG] [org.openhab.binding.roborock.internal.RoborockAccountHandler] - No available token or rriot values from sessionStorage, logging in
09:56:32.786 [DEBUG] [org.openhab.binding.roborock.internal.discovery.RoborockVacuumDiscoveryService] - Starting device discovery
09:56:32.787 [DEBUG] [org.openhab.binding.roborock.internal.RoborockWebTargets] - Calling url: https://euiot.roborock.com/api/v1/getHomeDetail
09:56:32.787 [TRACE] [org.openhab.binding.roborock.internal.RoborockWebTargets] - GET request for https://euiot.roborock.com/api/v1/getHomeDetail
09:56:32.809 [TRACE] [org.openhab.binding.roborock.internal.RoborockWebTargets] - JSON response: ‘{“msg”:“user is not authentication”,“data”:null,“code”:2013}’
```
OK this is helpful… It actually isn’t submitting the authentication code…
There were several issues with the fallback code where country=null.
Please try again with https://smedley.id.au/tmp/org.openhab.binding.roborock-5.2.0-SNAPSHOT.jar
Give https://smedley.id.au/tmp/org.openhab.binding.roborock-5.2.0-SNAPSHOT.jar a try - it should now add the routines detected to the actions#routine channel as options.
This works perfectly! Nice feature, thanks for implementation ![]()
Thanks for the suggestion - I learned something along the way
I’ll raise a PR to get this into OH!
routines change is now committed. As it’s considered an enhancement, it will be in 5.2.0
Hi Paul, Im using 5.1.0 and I see two bindings. Which should I be using for the S8 Ultra? Despite getting my thing online for the account and vaccum, I cant get it to control the vaccum at all.
Cheers
For 5.1.0 you should really only see the OpenHAB version - unless you previously installed a binding manually in /usr/share/openhab/addons ?
Is the S8 Ultra detected and appear in inbox? If not, trace logs please ![]()
The one on the right is the marketplace version, which shouldn’t show up in 5.1.x?
Trace logs should show why the vac isn’t being detected.
But it does. Change [5.0.0; 5.0.99] to [5.0.0.0; 5.1.0.0) in thread header will fix this. openHAB checks 4 digits, don’t ask me why.
I have succesfully connected this great binding in Openhab 5.11 to my Roborock S7 MaxV. So far all connected channels work well unless _Room_Mapping. The string remains empty. In want to use the app_segment_clean command but I need to figure out the room names/numbers. Wild guesses in using this command (like app_segment_clean[16] and varying the number) give the reponse “unknown method”. Any ideas what can go wrong?
I recently upgraded to openHAB 5.1 and installed this binding. After some troubles I was able to get the account and my vacuum (QRevo Master) online. Unfortunately I only get values for some channels like battery or fan-power. In the logs i see the message Received MQTT message for unknown device destination popping up, with the same value I used for the duid of my vacuum thing. I’m using file configuration for this, but I also tried it via MainUI with the same result. I also had this issues in openHAB 5.0. Any idea how to solve this.
Check out the info#room-mapping channel - it will give you a string like:
\[\[16,"Dining room"\],\[17,"Living room"\],\[18,"Toilet"\],\[19,"Storage"\],\[20,"Master bedroom"\],\[21,"Corridor"\],\[22,"Ensuite"\],\[23,"Laundry"\],\[24,"Kitchen"\]\]
Which are the room numbers. If you want to vac multiple rooms, separate with a comma.
Trace logs please. Nothing obvious springs to mind. The ‘unknown destination’ suggests the ‘vacuum’ thing isn’t subscribing to mqtt correctly (hence the unknown destination) but I need to see logs to try understand it.
Thanks Paul, getting there with it!
