RFC: The future of Valetudo 2020+
See original GitHub issueMoving forward, I guess that it is safe to say that there will be more vacuums at some point. There’s a Viomi one in #420 but that will certainly not be the last one.
This seems to be a good time to emphasize the mission of Valetudo.
What Valetudo is
Valetudo aims to be a generic thing that you can put on your vacuum to remove cloud connetivity, provide a local MQTT Interface and maybe the Web interface as well, although I’m unsure about that. It might make sense to decouple it completely.
Valetudo should completely remove any vendor-specific details such as Map formats, Command formats etc. Basically you should be able to buy a robot, install Valetudo and it works exactly the same as your existing Valetudo-enabled vacuum even if it is made by another vendor.
What Valetudo isn’t
Valetudo shall not become a swiss army knife of some sort. That means that everything that can be done elsewhere shall be done elsewhere. (e.g. connectivity to other services such as Telegram)
How do we get there?
I think that Valetudo requires a major rewrite. The current state is basically just a prototype.
The main ToDos that come to my mind are the following:
Capabilities
This should feature some kind of capability system similar to the supported_features of an mqtt.vacuum in home assistant. Especially with the new room detection features, there’s just no point in hacking those into the current codebase.
We’d need to figure out what those might be (preferably future-proof) and how to incorporate limits to it such as the 5-Zone Zoned Cleanup limit of the roborock vacuums which often caused confusion e.g. #421
Map Data Format
There needs to be a proper Valetudo Map format which is future-proof and may contain new capabilities we don’t even know yet. It will most likely be some binary blob since the current state using JSON just isn’t feasible for larger setups as well as mobile access (#356)
Something like Protobuf could probably be used here.
Deployment
Valetudo binaries are huge which worked out okay-ish at first but since vendors have now started trimming down hardware specs of their vacuum, I think it’s safe to say that the current state isn’t future-proof.
We’re also using an old and deprecated version of the pkg
tool used to package valetudo into a single binary since newer pkg versions require a newer libc. That will also certainly break completely at some point.
Challenges
As you might have noticed, development of Valetudo slowed down quite a bit. There are multiple reasons for that but for the most part it’s the fact that it is mostly just me who worked on Valetudo.
Looking at Heise, private Messages, the comments in #400 and many more things, It became clear that the way I mentioned contributers apparently was misleading. There is almost no community.
There only thing there is plenty of are entitled end-users who don’t understand FOSS at all and just demand that things shall be done for them because reasons.
This ultimately led me to pretty much abandon the project because it just isn’t fun.
There are also still unsolved issues with randomly resetting robots (#206) which constantly leads to a lot of frustration on all sides.
Also also there seem to be some interpersonal conflicts which I don’t really understand but am unable to clarify since there’s just silence.
Moving forward
There however is a solution to the mentioned challenges:
If you are unhappy with Valetudo but unable to contribute something to change that just use the non-fork fork Valetudo-RE and get the fuck off my lawn.
I am so done with you people.
Closing remarks
So anyways these are my plans for Valetudo. As you may have noticed, this Issue is labeled RFC so feel free to add your thoughts
Issue Analytics
- State:
- Created 4 years ago
- Reactions:33
- Comments:21 (13 by maintainers)
hi @Hypfer thanks for making this project happen. Also thanks for laying out your thoughs so clearly as you did. I totaly get your frustration, about the “one man community” and the “demanding” attitude of some users. Further I’d totaly secound your view on the rewrite step that needs to be done to get to a “bright valetudo future”. But at least in my opinion a very big part of the current situation isn’t pure codequality. For me the Gordian knot is #206 (the random firmware resets) which i think needs a solution first.
why do i think that is such a big deal
it annoys everyone who has to reflash her/his robot. (Especialy because the time that i notice i need to reflash is most often when I don’t have it) Further I have noticed a few comments that were along the lines “to much effort i use my robo the normal way” - which is realy sad in my opinion (I would argue that those aren’t “entitled end-users” but more “helpless users”)
it’s not clear if this issue is solvable. Correct me if I’m wrong but as far as I know noboy really knows exactly where this issue comes from (it seems like its something the firmware does but it’s uncertain if it is triggerd by rooting or using valetudo or if its just not recognized in normal use). So it might never be solvable which seems like a real bummer & doesn’t motivate me to put time in the project (as my skills are not enough to fix this issue).
it makes me unable to recomend the project to most people. I would love to tell all my nerd friends “buy a roborock and run valetudo - its cloudless awesomness”, unfortunately I can’t. I would have to explain the whole reflash story - and feel bad if they run into this issue - so I just don’t tell
I know those are my very personal reasons, but I imagine that those are reasons that are at least in part holding the community back.
I really hope we find a solution to this issue. [If there is anything i can do for that please let me know]
@Hypfer I totally get your frustrations regarding the lack of contributors & community around the project. I happen to be one of the users dealing with the reset issue, and I regret that I am unable to add to the discussion regarding a solution. Thank you for being up front about the future of this project. Hopefully, the possibility of extending this project to other vacuums will entice more contributors. Your work on this has been amazing, I am sorry that there are many who do not seem to appreciate this project is FREE.