Valetudo 2021.11.0
Likely the most important release of the year.
Recap 0.6.1 to 2021.11.0
Apparently, Valetudo 0.6.1 was released only a bit more than a year ago, but tbh it feels like an eternity.
So much has changed since then. The iteration speed of the project has been insane in the last months.
As we've now finished most if not all of the huge tasks, I expect things to slow down a little.
Here's a quick recap of what happened since 0.6.1:
- Complete core rewrite to easily support multiple vendors and different robots
- A proper REST-API documented with Swagger UI
- Complete MQTT rewrite to support Home Assistant as well as Homie
- Easy map display in Home Assistant via MQTT and the custom lovelace valetudo map card
- Complete UI rewrite based on a proper UI framework
- Support for all relevant features of the robots
- Support for autodiscovery of Valetudo-enabled robots via mDNS and SSDP
- Support for Dreame-made robots
- An android companion app that makes use of said autodiscovery feature
- Valeronoi: A companion app that generates Wi-Fi signal strength maps using Valetudo
- An updater functionality
- Proper docs
- General polishing. A lot of it
Default new UI
Starting with this release, the new react-based UI introduced by @Jomik with large contributions by @ccoors is now the default.
The existing map renderer was ported to react with a few quality of life improvements:
- You can now specify an iteration count when cleaning segments or zones
- Layers are now sorted, meaning that walls will always be on top. This solves some visual issues of vSlam-based devices
- Adding a new zone/virtual wall/etc. will now spawn it in the middle of your viewport
- Map segment labels now attempt to actually be inside the segment they're for. This fixes issues with cornered hallways. No more stray triangles
- Editing the map will now refresh your current view instead of navigating back
- Rendering has been partly moved to a webworker for improved performance
Speaking of navigating back: Given that the new UI is based on a frontend framework including proper routing,
we now have a working back button. Amazing!
The only thing not yet available in the new UI is management of Zone and GoTo presets. This will be added later.
For now, please navigate to the old UI via the menu and use that.
Screenshots
Phone/Mobile
Tablet/Desktop
Updater
Starting with this release, Valetudo will be capable of updating itself with the press of a button.
This has been a long-requested feature and considering how mature this whole project has become, I decided that
it was finally time to actually implement that.
As it is implemented now, it uses the GitHub API by default, meaning that I am not able to track you.
There's also no automatic update check, because periodical pings to some cloud service are obviously problematic.
You will decide when to press the "Check for Updates" button and also when to update.
More stickers
I've decided to get a few more stickers printed because merch
Misc
I'm currently looking for a job that isn't a corporate hellhole with nice people doing interesting stuff.
If you're a likeminded hacker looking for a new colleague or know someone who does feel free to ping me
Thanks :)
Autogenerated changelog
Features
- ui: Add Valetudo logo to bottom sheet (76eeaff)
- ui: Bring back the old map renderer (7aa6822)
- ui: Change map colors according to theme in use (b17745e)
- ui: Fan speed icon and battery level bar improvements (d0a0671)
- ui: Improve controls (b678cda)
- ui: Map Editing (35feb65)
- ui: Move locate to the map view (32de2b8)
- ui: Place new client structures in the middle of the viewport (d9d2a64)
- ui: Remove map transparency (ace000b)
- ui: Remove obsolete segment controls (9912cf5)
- updater: Introduce ValetudoUpdaterNoUpdateRequiredState (354028e)
- Updater (5db2c55)
- ui: Remove Accordion from interface settings (c4c31bb)
- ui: Set the new UI as the default (c0f90fb)
- ui: Use a WebWorker for rendering the map layers when possible (3eafded)
- ui: Use real swagger icon in sidebar (#1160) (f4c0093)
- ValetudoEvents: Add Mop Attachment Reminder event (ac268d7)
- Add nonce to every instance of a Valetudo map (f0489f1)
Bug Fixes
- Fix MopAttachmentReminderValetudoEvent not being a DismissibleValetudoEvent (302f6ce)
- mqtt: Fix consumable state attribute data being published multiple times (894bba9)
- mqtt: Fix zone cleanup (#1130) (bb951b2)
- mqtt: Hopefully avoid a deadlock (c3313ea)
- ui: Allow more states for zone/segment cleanup and goto (c738938)
- ui: Better placement of segment labels (ba788a0)
- ui: Combinations of scrolling and touch events also should not cause any jank (e36c40f)
- ui: Fix controls jumping around when there is a status flag (c641fb1)
- ui: Fix draw order for ControlsBottomSheet (c46ef10)
- ui: Fix SSE not reconnecting after having closed the connection once (6feaaf8)
- ui: Further improve segment label placement using the median (6545cc7)
- ui: Ignore map updates if the tab is invisible (370753d)
- ui: MQTT port is an integer (#1159) (5b91c96)
- ui: Postpone map data updates during pan/zoom to prevent jank (92a9147)
- ui: Postpone map data updates during scroll to prevent jank (adcd117)
- ui: Prevent issues with zooming on mobile (a5057fd)
- ui: Use the correct canvas size for the map layer renderer (b55ffa6)
- ui: Zone dimensions should be based on the pixelSize (b317c85)
- updater: Fix fallback download location for roborock (d515f04)
- vendor.dreame: Fix virtual restriction coordinates being not sorted properly (17cc303)
- vendor.dreame: Ignore error 68 (dd44320)
- webserver: Allow unsetting names of segments (f992e5a)
- Use shorter model names (d268013)