Bugfixes, polishing, two minor breaking changes and new features.
Don't forget: If you're running Valetudo 2021.11.0, you can now use the integrated updater :)
UI
Polishing
- Controls in the UI were slightly rearranged/reworked.
- The mobile controls drawer now works slightly different and more importantly more reliably with better performance (+ 50kb less bundle size).
- There's a neat loading splashscreen, which you should only see for longer than a second if your Wi-Fi sucks
Provisioning
The UI now checks if the robot is connected to a Wi-Fi network and if not opens a special provisioning page.
It's pretty neat and also fixes the issue of Dreames not being provisionable with the new UI.
Backend
CurrentStatisticsCapability
Statistics related to the current (or most recent) operation of the robot are now back.
Yes, they are also being published to MQTT. Stop asking.
Data is published to MQTT as machine-readable (seconds for runtime, cm² for the area) as it is meant to build automations with it.
Using cm² instead of m² saves us from having to deal with floats.
TotalStatisticsCapability
More importantly, you can now get total statistics from your robot.
Depending on your model those can be
- Total operation count
- Total runtime
- Total area
This isn't available via the UI yet as it is yet TBD how to do that.
Maybe have like badges, achievements or a rank system?
Maybe have random trivia related to the numbers? (e.g. having cleaned 0.0001% of the Saarland)
Feel free to leave your input in the comments. Like, subscribe and click the bell icon
If you're good with graphics design, something like e.g. a Corporal IV vacuum robot badge would be a great contribution.
Zeroconf hostname changes
By actually reading the relevant RFCs, we've discovered that valetudo_something.local
is not a valid bonjour hostname as the _
is illegal.
While it does seem to work in most setups, it might cause problems in some, which is why starting with this release, Valetudo will use an RFC-compliant hostname: valetudo-something.local
.
Please update your bookmarks if you were using any.
MQTT
Home Assistant 2021.11 MQTT Changes
Valetudo 2021.11.1 makes use of new features introduced in Home Assistant 2021.11 (namely configuration_url
and entity_category
).
This means that Home Assistant >= 2021.11 is now required if you want to use it with Valetudo.
You might also have to delete your Valetudo device in HA and let it get rediscovered so that the changes are applied properly.
It now looks like this:
Possible MQTT OOM fixes
We have received unconfirmed, unsubstantiated and possibly falsified reports of Valetudo going OOM related to Wi-Fi connectivity issues and the MQTT interface.
To combat this, Valetudo now drops any outgoing MQTT message if there are more than 1 MiB of outgoing messages buffered. This may or may not ever happen.
If you see a warning in your log related to this, please report back. I have not been able to reproduce this.
Homie Consumables
Home consumable durations are now reported as an int. This should fix issues with OpenHab.
Bugfixes
Dreame paths
Dreame paths now parse to multiple path map entities instead of a single one, which fixes the visual with lines going straight across the map connecting the previous path to the next one.
Consumers of the Valetudo map data might have to be updated to properly display multiple path entities.
1C-related fixes
I've bought a Dreame 1C to do some QA, which led to a few fixes.
I'm now quite happy with the current state of its implementation in Valetudo.
Autogenerated changelog
Features
- core: CurrentStatisticsCapability (8e4e183)
- core: CurrentStatisticsCapability & TotalStatisticsCapability properties (4fc9df2)
- core: Introduce ConsumableMonitoringCapability properties and remove mqtt consumables hack (a998ee1)
- core: TotalStatisticsCapability (55b6696)
- MockRobot: Add MockCurrentStatisticsCapability + fix MockConsumableMonitoringCapability (bda0b1a)
- mqtt: Homie consumables should always be int (c39ad93)
- mqtt: Limit outgoing message buffer size to prevent OOM situations (1a74f91)
- mqtt: Publish current statistics to mqtt (102a078)
- ui: Add Valetudo loading splash (a7ca33c)
- ui: Collapse preset selection controls (4f8aaec)
- ui: Display current statistics (0fbc182)
- ui: Slightly decrease required zoom level for segment label text (08209a3)
- vendor.dreame: Total and current statistics for the 1C (c1a51e9)
- Provision Wizard thingy (a6f6ded)
- ui: Reorder state display (828e54d)
- ui: Replace bottom sheet with simpler mobile controls (17ff7ec)
- vendor.dreame: DreameCurrentStatisticsCapability (656a19e)
- vendor.dreame: DreameTotalStatisticsCapability (4bb9342)
- vendor.roborock: RoborockCurrentStatisticsCapability (93aa77b)
- vendor.roborock: RoborockKeyLockCapability (#1222) (02e155c)
- vendor.roborock: RoborockTotalStatisticsCapability (e0cbbff)
- vendor.viomi: ViomiCurrentStatisticsCapability (9dd1091)
- webserver: Add 404 page (8f5095c)
Bug Fixes
- mqtt: Attempt to mitigate problems related to connectivity issues (cf0f2d6)
- mqtt: homie.durationsAsInteger should not be a breaking change (bbd918a)
- ui: Align preset selection labels with icons (c6803f6)
- ui: Attachment buttons should be disabled (922572a)
- ui: Fix CurrentStatistics trying to map something that isn't an array (4d6f3d8)
- ui: Fix mobile control scrolling (6264400)
- ui: Only check for provisioning once (6bd0480)
- ui: Only regular mouse clicks should interact with the map (d452d88)
- ui: Preset selection labels should not be user selectable (965a061)
- ui: Swap presetSelection open/close icons (380109b)
- ui: The whole controls body should not be user-selectable (861f15f)
- vendor.dreame: 1C shall ignore persistent map property updates (5744346)
- vendor.dreame: Assume that we're in the docked state if we're charging on the 1C (c73e062)
- vendor.dreame: Fine-tune 1C manual control (72614e2)
- vendor.dreame: Fine-tune manual control (cc267c7)
- vendor.dreame: Fix Dreame1CManualControlCapability (9c85ca5)
- vendor.dreame: Properly parse path data to multiple paths (e083af2)
- vendor.dreame: Remove capabilities for models that don't support them (0d6d6ad)
- vendor.dreame: The 1C does not support multiple iterations for segment cleanups (2d35bd9)
- vendor.viomi: Fix ViomiPersistentMapControlCapability (#1218) (80d7bb2)
- Fix LinuxWifiConfigurationCapability not_connected state reporting (25271f2)
- vendor.roborock: RoborockSpeakerVolumeControlCapability.getVolume() should return a number (32898d1)
- vendor.viomi: Fix volume control (0269182)
- webserver: try/catch for SpeakerVolumeControlCapabilityRouter (5cb7c5a)
- Nested assign configuration defaults + don't persist if there are no changes to persist (b12c452)