New Data Format
I've finally found the time to rework the Map Data format as well as the robot state format.
Both previously being heavily influenced by roborock, the new and improved formats are a huge step for easier adaption
of Valetudo to new Vacuums as well as implementation of new features.
In fact it has already proven itself in other work that has been done for this release and decreased memory pressure quite a bit.
This change is also of course a breaking change.
Make sure to update any dependant applications/integrations/etc. as well.
(Initial) Support for many more Vacuums + a new Vendor
The list of technically supported roborock vacuums has grown quite a bit.
Especially since Dennis released his guide on how to root the S6 which you can find here.
Furthermore, Valetudo has also received initial support for a dreame-made xiaomi vacuum robot: Xiaomi MiJia 1C
There's no map parsing yet though. Contributions much appreciated.
Please note that there's no dreame rooting guide available yet.
These release notes will be updated when it becomes available.
Segment Cleaning via the Web and MQTT
Owners of room-cleaning capable roborock vacuums can now use Valetudo to do so.
Simply select the segments you want to clean and start the cleanup like you would start a zoned cleanup.
Currently cleaned segments are denoted by a rotated icon.
If you zoom in on a segment marker, it will display both it's segment id as well as the segments' area in
The latter also being a benefit of the new Map Data format.
Segment cleaning is of course also available via MQTT.
Check out the updated Home Assistant docs for an example on how to use it.
Since this is a generic implementation, support for other vacuum vendors will follow.
You just need to open a PR for that.
Dynamic zones now display their size in meters which is also a helpful addition if you quickly want to measure something without leaving your desk.
Furthermore, it is now impossible for you to break the map by zooming out too far.
- The map renderer has been updated by @aa-ko to always color adjacent segments in a different color thanks to math™
- MQTT supports client certificate authentication thanks to @mqtt-fan
and of course there's the autogenerated changelog:
- Segment cleanup via WebUI + MQTT (f14f6cc)
- entities.state: Added Charging/Charged/Discharging status to BatteryStateAttribute (97b5cdf)
- mqtt: add support for client certificate (#549) (33f94ec)
- roborock: Experimental support for even more roborock vacuums (2450ceb)
- ui: Added zone size display, proper icon/text scaling and limited scaling (6b61ca8)
- ui: Use math (four color theorem) to properly color segments (d462f65)
- vacuum.dreame: Initial basic support for the dreame.vacuum.mc1808 (f73c7c6)
- vacuum.viomi: add support for viomi.vacuum.v8 + mop enhancements (#543) (17bb01e), closes #541 #538 #548
- Experimental support(?) for S6 MaxV (88de212)
- entities.map: Fixed MapLayer area calculation (ac86c84)
- mqtt: Check DNS resolution before connecting to mqtt broker to fix #563 (38a0af8)
- ui: Default to colorIndex 0 if solver can't find the segment in its graph (e1565d0)
- ui: Fix map coloring (#567) (890120c)
- ui: Fixed zone dimensions (0ca13e3)
- vacuum.roborock: Changed set_lab_status payload for S6 to fix #540 (19e141e)
- vacuum.roborock: Fix map parsing failing for maps with no image data (f187906)
- vacuum.viomi: Hackishly fixed map parsing for viomi v6 + fan speed settings for all viomi (ffbb8e7)
- vacuum.viomi: Hackishly fixed path + angle (fdd80d2)