github Hypfer/Valetudo 2022.05.0
Valetudo 2022.05.0

latest releases: 2024.11.0, 2024.10.0, 2024.06.2...
2 years ago
valetudo

2022.05.0

Spring-cleaning 2022: Usability improvements, bugfixes and the removal of zone/goto presets + the old UI

Zone/GoTo Preset removal

Valetudo 2022.05.0 removes the Zone Preset/GoTo Location feature that has been deprecated since more than six months now.

As a replacement for this feature, the MQTT interface now accepts coordinates instead of preset IDs.
Thus, users can just change the place where they store their coordinates from the Valetudo config file to e.g., the Home Assistant config files.

Please head over to the MQTT docs to find out how to use it.
It's the same payload that is used by the REST API. No surprises there.

If you're unhappy and/or like to know more about why this change was done, feel free to click on this spoiler
Feature removal is delicate topic, since there always will be at least one person that is very upset and unhappy with whatever change was done to a project. See also: XKCD 1172.

Still, it has to be done once in a while to keep a clean codebase and focus on what is most important.
Without these kinds of cleanups, projects eventually grow to a point when they start suffocating under their own weight.

If you've ever worked with larger legacy enterprise codebases, you should understand the issue.
They tend to be torn apart by

  • legacy features/behaviour having to stay like they are for existing customers/long-running support contracts

and

  • management, sales and the market in general demanding newer features that no one could ever have predicted previously

See also this anecdote on Oracle 12.2 found on Hackernews.

As avid listeners of my ramblings have likely been aware, I've been very unhappy with that preset feature for more much more than just half a year now.
It was always a very fragile feature to begin with, given that Valetudo itself would store these coordinates without knowing anything about the underlying map.
The robot might've decided to rotate the map, leading to them pointing to a completely different location without Valetudo being able to catch that.

At the time when it was added, it was the best we had, given that map segments simply weren't invented just yet.
We didn't even have persistent maps, which is very strange to look back to.

That however was almost four years ago. Since then, the market changed a lot as you can tell.
Basically every robot now supports not only persistent maps but also the map segmentation, which is handled by the firmware and not Valetudo.
Those are objectively superior to some rectangles that are drawn onto the map, which is why it was finally time to remove this hack.

I know that this may be bad news for V1 owners who do not have segments support and also don't want to use something like Home Assistant.
However, I'd like to point out that there is nothing forcing anyone to upgrade to a newer Valetudo version.
There is no automatic update check that periodically annoys the user.
There is no cloud that will change its API.
It just works and will continue to do so.

Therefore, for those who want to continue using zone presets and goto locations, it is recommended to stick with Valetudo 2022.03.1.
It also shouldn't be too hard to backport changes to that version. I however simply can't provide that kind of support.
I hope that you will all understand that.

Removal of the old UI

With the presets gone, we can finally remove the old frontend entirely, which reduced the binary size by around 1MiB.
While this doesn't sound like much given that it's "only" 3%, it's important to note that currently, 24MiB of the armv7 build consist of the bundled nodejs runtime. This means that with this update, the size of Valetudo itself shrunk by 15%!

UI improvements

The menu opening thingy of the mobile UI now always stays at the bottom of the screen to improve user experience when using long phones.

image

The live map now renders virtual restrictions with more opacity and less bright colors as they were pretty obstructive previously.
The edit map remains unchanged.

image

The log viewer now uses the jetbrains mono font.

image

Attachments

Your robot will now only report and display attachments whose state it is able to track. No more always attached dustbins confusing users.

Companion apps

Over the last weeks, a few new companion applications were built:

  1. valetudo-tray-companion

    A tray icon that allows easy access to Valetudo instances on your network. It's mostly handy when dealing with 4+ robots

  2. valetudo-helper-miioota

    A standalone all-in-one firmware update flasher tool for roborock v1 and s5. The docs have been updated to suggest using it

  3. valetudo-helper-httpbridge

    A standalone self-contained utility webserver currently most useful for rooting dreames. The docs have been updated to suggest using it

  4. valetudo-helper-miio

    A standalone self-contained utility to send raw miio commands. Useful for development of valetudo or other software interacting via miio

  5. valetudo-helper-voicepacks

    A WIP tool to help with Voicepacks

These should make installation and usage of Valetudo even easier than before.

Other news

We're currently pretty busy figuring out how to root new robots and/or firmware versions.
These endeavors are partly funded by your donations. Thank you!

If you want to see Valetudo on more robots, you might want to consider donating:

https://github.com/sponsors/Hypfer

https://builder.dontvacuum.me/donations.txt

Autogenerated changelog

Features

  • mqtt: Provide attachment state attributes autodiscovery for home assistant (b7b6344)
  • ui: Improve mobile controls for long screens (f7f3f0d)
  • ui: Reduce live map obstructions caused by virtual restrictions (ddec0b3)
  • ui: Use JetBrains Mono (5a7045c)
  • vendor.dreame: 1C PendingMapChangeHandling (1b2f3bf)
  • vendor.dreame: Add support for the STYTJO6ZHM (519c5b4)
  • vendor.viomi: Fetch and display firmware version (7f08743)
  • vendor.viomi: Raise zone count limit to 10 (8130e24)
  • Provide list of attachments supported by the model of robot (fe65df3)

Bug Fixes

  • mqtt: MqttController default state should be disconnected (137e630)
  • networkadvertisement: Disabling the Network advertisement multiple times in a row should not cause any issues (789608f)
  • ui: Allow closing of ValetudoEvents even if there are a lot (ec599b2)
  • ui: Fix auto empty dock control loading state (7ec1e5d)
  • ui: Handle timers with invalid actions (b467443)
  • ui: use correct relative paths to allow hosting in a subdirectory (6129ec5)
  • vendor.dreame: Fix 1C powersave state mapping (fdb51e7)
  • vendor.roborock: Don't update state for attachments that we don't have (f27bbfd)
  • vendor.roborock: Fix manual control for roborock v1 (abccee4)
  • vendor.roborock: Fix obnoxious "no error" error event (f3b4a54)
  • vendor.roborock: Remove confusing attachments that never get updated (e4274d3)

Don't miss a new Valetudo release

NewReleases is sending notifications on new releases.