github Hypfer/Valetudo 2022.09.0
Valetudo 2022.09.0

latest releases: 2024.02.0, 2023.12.0, 2023.10.0...
20 months ago
valetudo

2022.09.0

An interesting newly supported robot plus security and usability improvements

Dreame P2148 Ultra Slim

Thanks to generous user donations, I was able to buy a Mijia Ultra Slim Robot to take a look at.
As you can see, it is very small, measuring only 5.5cm in height and 32.3cm in diameter.
For comparison:
The Z10 next to it measures a height of 9.6cm and a diameter of 35cm.

This makes the ultra slim a very interesting robot as it fills a niche that no other supported one did previously.
Apart from that, it's a decent vSLAM robot that - thanks to the ToF sensor in the front - doesn't bump into every wall that it can find.

Fortunately it turned out that even the latest available firmware is rootable via the very easy debug UART rooting method :)
Thus, there's now support for it in Valetudo.

Unfortunately however, it is a china-exclusive model, meaning that both it and any spare part have to be imported to wherever you live (unless you live in china that is).
Because of its size, it also uses completely different consumables than other dreames. Do keep that in mind if you're thinking about buying one.

Nonetheless, I am very happy to have it supported, as it is a proper solution to a problem that previously was unsolvable without outright replacing your furniture. There is simply nothing else like it in the market.
Thus, if you've ever wanted to use Valetudo but couldn't as all supported robots were too large for your scenario, then now there's an option for you.

I do want to stress again that this would not have been possible if it weren't for user donations.
There simply is no way to pay for all those robots out of our own pocket... especially considering the pricing of some upcoming models and even more so since we'll need at least two of them

Thank you for your ongoing support!

Encrypted Wi-Fi provisioning

One thing that slightly annoyed me for a long time now was the fact that Wi-Fi provisioning was done via an unencrypted connection over an unencrypted Wi-Fi Access Point, meaning that anyone passively sniffing Wi-Fi traffic during the provisioning process could've in theory gained access to your Wi-Fi credentials.

To solve this unlikely scenario, the Valetudo frontend now requests an RSA-Key from the backend and encrypts the provisioning payload with it, before it is sent over the Wi-Fi.
This slight improvement in security does not prevent MITM-attacks, however that wasn't ever the goal to begin with as those are even less plausible than the passive Wi-Fi sniffing attack.

If you want to know more about the reasoning behind this, feel free to take a look at this very extensive code comment further explaining things.

Usability improvements

Larger ClientStructure hitboxes

It should now be easier to interact with the map on mobile as the hitbox size of various things has been increased.

Robot Coverage map

Based on user feedback, the coverage map now renders the coverage and the robots' path.

Map Data Export Button

There's now a button that allows the user to download a ValetudoMap JSON e.g., for use with the ValetudoMap to Minecraft Map converter.
Previously, users had to manually call the REST API route and save the JSON.

MQTT resubscribe workaround

In some setups with MQTT brokers that don't have any persistence enabled, a broker restart or a loss of connectivity could lead to Valetudo not reacting to any MQTT commands anymore as all subscriptions were gone. It would still continue publishing status updates though, leading to even more confusion.

This issue should now be solved.

Swagger UI

The Swagger UI now only displays routes that are supported by the currently running ValetudoRobot implementation.

Quality improvements

  • Errors have been refactored to have a proper place in the abstraction
  • The updater has been refactored
  • Binaries are now 1MB smaller due to the removal of irrelevant sourcemaps

The usual

If you want to see Valetudo on more robots and/or like this release, you might want to consider donating if you haven't done so already:

https://github.com/sponsors/Hypfer

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

Autogenerated changelog

Features

  • ui: ValetudoMap data export button f1aea85
  • vendor.dreame: Add support for the P2148 Xiaomi Mijia Ultra Slim 22419f4
  • Encrypted Wi-Fi provisioning 2b6dd04
  • Classify robot errors e8715cb
  • vendor.dreame: Add mop dock error code mapping 6179e19
  • webserver: Filter openapi spec to only display endpoints supported by the implementation in swagger ui 3ab4033
  • ui: Improve coverage view 4ac2928
  • ui: Improve map interaction by allowing for slightly misaligned clicks/taps 6e87ba3

Fixes

  • mqtt: Fix resubscribe on broker restart be33e12
  • vendor.dreame: Remove confusing MCU version logline 4c21394
  • miio: Correctly update our stamp ee6a60d
  • vendor.dreame: Remove broken mop only quirk dbbd0f0
  • vendor.dreame: Fix wrong quirk description afac067
  • vendor.dreame: Ignore another useless piid on the 1C 922aece
  • http.ServerResponse.socket can occasionally be null 03d22dc

Refactoring

  • miio: Code cleanup 81809f1
  • updater: Break updater up into multiple files b9bcbe3
  • vendor.dreame: Change implementation name to something pronounceable b198b10
  • ui: Reduce duplicate code in map structures and improve readability 4f05dcd

Chores

  • release: 2022.09.0 8e3c889
  • remove body-parser in favor of built-in feature (#1568) 4ee0004
  • Misc promise handling cleanup 278ba6e
  • Remove obsolete code + comments 7de1590
  • ui: Disable source maps for production builds to save 1mb compressed total binary size 2a11a82
  • Minor cleanup e0a0800

Don't miss a new Valetudo release

NewReleases is sending notifications on new releases.