question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

RFC: The future of Valetudo 2020+

See original GitHub issue

Moving 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:closed
  • Created 4 years ago
  • Reactions:33
  • Comments:21 (13 by maintainers)

github_iconTop GitHub Comments

10reactions
balu-commented, Feb 24, 2020

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]

9reactions
legomindcommented, Feb 1, 2020

@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.

Read more comments on GitHub >

github_iconTop Results From Across the Web

Bountysource
RFC: The future of Valetudo 2020 +.
Read more >
Buying Supported Robots - Valetudo
The recommended source to buy a supported robot is wherever it is cheapest. In general, when buying something, you should always use price...
Read more >
Untitled
Md ez pass phone number, Days future past footage, Crash test dummies tv show ... staten island zip code, Rapid fire mod xbox...
Read more >
Untitled
Sociale bijdragen vennootschappen 2012, Future tv tropes, Bmw esch alzette ... De hoge dijk, Rainbow astronaut shirt, Chinnor rugby club directions, ...
Read more >
Ali Bagov - Wikipedia
Ali Bagov (born February 12, 1990) is a Russian mixed martial artist who competes in the Lightweight and Welterweight divisions of the Absolute...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found