github Hypfer/Valetudo 2021.12.0
Valetudo 2021.12.0

latest releases: 2024.02.0, 2023.12.0, 2023.10.0...
pre-release2 years ago
valetudo

2021.12.0

Map data format changes, quality of life improvements and bugfixes.

Map data format changes

This release features the first version increment of the ValetudoMap data format.
Initially, in version 1, pixel data such as walls or floor were stored as a huge array of coordinate pairs:
[x0, y0, x1, y1, ...]. This was not a very efficient way of storing that data as most of it is redundant.

This resulted in map files that were over 1 MiB in size being pushed to your browser every 3 seconds.

To combat this, some thought was put into how the data is stored.
If you have a row of pixels, all of them will have the same y-coordinate, meaning that you only have to store that once.
People already figured that out in the 60s.

With Map V2, pixels are stored as [xStart0, y0, count0, xStart1, y1, count1, ...] where [xStart, y] is the starting point and count represents additional pixels with the same y-coordinate to the right.

This resulted in V2 map files using between 5% and 15% of the size of the equivalent V1 map.
The huge testfile map for example was compressed from 847 kB to 75 kB.

While this is a breaking change, the breakage actually isn't that big of a change as V2 can easily be converted back to V1.
In fact, running JSON.parse() on a V2 map and then converting it to a V1 one in memory is more than twice as fast as running JSON.parse() on a V1 map.

Since this change drastically reduces the traffic caused by live maps, I expect to see general usability and reliability
improvements in situations where the Wi-Fi reception isn't that great.

LogViewer

The LogViewer has been greatly improved and now features a structured and color-coded view of your log.

You can use the text filter at the top to either filter for the loglevel or the message contents.
Just start typing.

UI Help

Both consumables and timers now feature a help button, which shall explain how to use these features.

Misc

  • Map reset on newer roborock models should now be fixed thanks to @supersmile2009
  • Zooming the map should now work much better if you zoom via a touchpad or trackpoint instead of a mousewheel
  • MQTT current statistics now have a unit_of_measurement in HA
  • Lowmem builds now have a reduced map poll rate to reduce memory pressure
  • Valetudo now manages its logfile size to prevent it from growing indefinitely

Autogenerated changelog

Features

  • logger: Automatically clear the logfile when it gets too large (c0698b4)
  • Reduce map polling interval for lowmem hosts (fcf94ce)
  • ntpClient: Improve log messages (8880bbf)
  • ui: Add help button + modal to consumables view (d1388f1)
  • ui: Add timers help (c864170)
  • ui: Implement LogViewer component (1b96ae0)
  • ui: Remove obsolete about > github release info (253d9f9)
  • ui: Swap Manual control cw & ccw rotation button (44eab06)

Bug Fixes

  • ui: Try avoiding bright flashes on initial loading (f84a51d)
  • Fix log sse endpoint (fd6f0e2), closes #1256
  • mqtt: Fix unit_of_measurement for current statistics and consumables (7f052dc)
  • ntpClient: Delay initial ntp sync to wait for valetudo to start up properly (727af04)
  • ui: AppBar and menu should not be user-selectable (69754b7)
  • ui: Cleanup unused code (c050940)
  • ui: Fix map zoom behavior for trackpoint and trackpad scroll zoom (ca94600)
  • ui: Updater changelog should stay in its constraints (5d815bf)
  • updater: Ensure that there is enough space besides process.argv0 to store the new binary (c298e98)
  • vendor.dreame: Fix wrong segment iteration count (9fd9c17)
  • vendor.dreame: There are actually no firmware limits for virtual restrictions (8a8b536)
  • vendor.roborock: Fix resetting incomplete map on Roborock. Detect and reset current map slot. (#1252) (ba86057)
  • Fix CurrentStatistics UI refresh (93249ad)
  • ui: Fix LogViewer overflow-wrap (4799027)

Don't miss a new Valetudo release

NewReleases is sending notifications on new releases.