Current state of HA support for Roborock and Valetudo

Hey all

Thinking of buying our first robo vacuum. The Roborock S4 Max looks good (we don’t need / want a mop), but possibly open to other models. Only non negotiatable requirement besides HA compatibility is no Chinese cloud anywhere near my home (or any cloud device for that matter). So the only option is to root the thing and install Valetudo. The S4 Max seems supported (according to their rooting instructions under Init override), but you have to take the entire thing apart. I’m willing to go for it, but before voiding the warranty on a brand new device, I thought about asking around to see if someone has done this.

So… What’s the current status of HA support for rooted Roborocks over MQTT ? And does anyone have some hands on experience with rooting one of their newer Max models, especially those that require full disassembly to get to the UART on the main PCB ? And finally, how well does HA work with those over Valetudo ? Are there any serious drawbacks doing this, anything vital that won’t work compared to the original cloud firmware ? Any feedback welcome !

Thanks a lot :grinning:

You’ll likely get better answers or answers at all by asking/searching in e.g. the Valetudo Telegram Group.

Anyways, there’s at least one person with a rooted S4 Max which at least as far as I can tell works like it should. Regarding HA compatibility, there is no difference between robot models. It’s all Valetudo so it all works identically with HA.

anything vital that won’t work compared to the original cloud firmware

There are and will be no multi-map support so if that’s important to you you should keep that in mind

What’s the current status of HA support for rooted Roborocks over MQTT ?

Valetudo has definitely outgrown the vacuum.mqtt component which is why you will need to use mqtt.publish to access some features instead of a neat HA service like vacuum.set_water_grade or something. That is by no means a dealbreaker. It’s just not as streamlined as it could be.

The solution to that would most likely be a valetudo custom_component. We’ll see if/when that happens

1 Like

Thanks for the reply, always good to get direct feedback from the developer :grinning: Awesome work with Valetudo btw !

I never used Telegram, so I wasn’t aware of the Valetudo group. It’s good to know that the rooting procedure seems to be repeatable on that particular model. Of course there’s always the risk of Xiaomi updating the firmware on these models sold in the future.

Yes this is a major issue, multi-map support is absolutely required for us. I see that the Valetudo RE fork seems to support it (somewhat), so that might be the (only ?) way forward then.

Valetudo RE is based on the old pre-rewite Valetudo codebase which I think still works to some extend on the S5 Max but will definitely require changes for the S4 Max, due to the new miot communication.

I’m not so sure that that codebase will be able to reasonable handle those changes but that’s coming from someone who threw that away completely and rewrote it over the process of a few months. I might be somewhat biased against it.

In any case, I’m pretty sure that you’d be the one who has to implement that S4 Max specific stuff in RE. If you can’t do that, I’d advise against buying that model.
It also doesn’t seem like there’s proper Multi-Map support like you’d get in the official app but just the map save/reload hack for the V1.

If you’d allow me to get preachy, IMO, multi-map doesn’t make much sense since it disables the core feature of the vacuum robot: automatic operation with no human intervention required.
Also, speaking from experience, I can say that none of the vendors managed to implement that feature in a stable and reliable way. It’s all just a huge lie to get people to make their first purchase, notice that it is great but the multi-floor stuff sucks and then buy another robot.
This feature only makes sense from a marketing perspective and certainly not on a technical level.

Sorry, I know this is a bit offtopic…

Based on your comments, what’s the easiest way to migrate my S6 from RE to Valetudo?

Ok, thanks for your reply. That’s pretty bad news.

In a perfect world, I would agree. Sadly the world is rarely perfect, nor are house layouts, especially from older homes. The ground floor is not the same height throughout our house. There are steps and thresholds that a robot cannot physically cross. Our upper floor is separated into two physically disjoint parts that are only reachable over the ground floor. That’s just the way people built houses 300 years or so ago. We’d need 5 robots to cover everything - and that’s just not going to happen.

What would be your advice to handle this situation with the current Valetudo ? Is there a way to swap out the current map set using an MQTT command (HA could do this automatically if I integrate a BLE beacon into the robot) ?

You can save and load maps with Valetudo.

How ? As far as I understand, you can’t. See issue #69 here. Someone actually went ahead and implemented it here, but the merge got denied for some strange reasons I don’t really understand.

Is there any other way I missed ?

IIRC, there’s a setting you can enable to save persistent maps. Mine isn’t working right now because I tried to move from RE to vanilla Valetudo, but I assure you its there.

Can you point me anywhere in the official Valetudo resources where this feature is ? Because the github issues above and the maintainer himself seem to say that it doesn’t exist.

Not RE mind you, which does have that feature.

That must be my confusion then. I thought they both had it, but you must be correct - its RE only.

Ah yes that makes sense. As it looks like this feature will never be implemented into the original Valetudo from what seem to be ideological reasons more than technical ones, I think that I have reached a dead end here. I will look into Valetudo RE more, they seem to have added added some interesting features that were missing from the original one.

What made you want to switch from RE back to the original one if I may ask ?

The mention of no mop zones.