New Robot, new Firmware, Various UX improvements and MQTT changes
Dreame W10 support
Starting with this release, the Dreame W10 (not-pro!) is supported by Valetudo.
Because I got pretty annoyed by the lack of proper mopping robots supported by Valetudo, I've finally just bought one myself to check if it is rootable and suitable for Valetudo.
Turns out:
It is. Looks like it always was.
We were just misinformed because we never had bought one ourselves due to its pricing and people on the internet told us incorrect information about it. The lesson here is that we absolutely have to buy all robots ourselves or else we go nowhere.
Anyway, rooting is possible with the catch that you will need a new custom PCB to do so.
I do have ~250 of them lying here waiting to be soldered and used, however the logistical issue of me getting those to you yet remains to be solved.
Dreame D9 Pro firmware backport
Because I got pretty annoyed by the lack of firmware updates for the D9 Pro, I've finally just bought one myself to check if I can do anything about it.
It seemed pretty wrong that the older D9 has a recent 2022 firmware while the newer D9 Pro is stuck with a firmware from early 2021.
Thus, I wondered how different those robots really are and if it would be possible to port the D9 firmware over to it.
Turns out:
They're pretty similar but not entirely.
And so with a few changes, you can now upgrade your D9 Pro to a much more recent firmware using the Dustbuilder.
Gone should be the days of the robot bumping into everything and its map slowly deteriorating over time.
You're welcome :)
Reminder:
Do not try to install a regular D9 firmware on your D9 Pro. It will brick your robot.
You absolutely need to select the customized D9 Pro version in the dustbuilder.
MQTT
This release features a few MQTT improvements.
Optional exposed capabilities
Valetudo's MQTT client has gotten a bit more flexible with this release.
To avoid additional load and traffic for features that aren't required in 90% of setups, not every capability is exposed to MQTT.
This unfortunately meant that 10% of people had to also use the REST API to solve their automation needs.
With optional exposed capabilities, it is possible to cater to those needs without polluting the MQTT broker of people that don't require the functionality. For now, the only option to select is the SpeakerVolumeControlCapability. Others may follow if someone makes a solid case for why it should be controllable via MQTT.
Please only enable optional exposed capabilities that you actually plan on using as each additional one adds system load due to periodic polling.
Improved MQTT Errors
The error mapping improvements that have been implemented in the last release are now also being published to MQTT.
It should make building reliable automations based on the error state much easier
Please note that this could be a breaking change if you've hardcoded the MQTT error topic somewhere.
Users of Home Assistant should not notice anything changing as the autoconfiguration payload change should take care of everything.
If you've created automations based on the value of the error topic, this will be a breaking change for those as well.
Better map integration instructions
The process of getting the Valetudo Map into Home Assistant always has been challenging for newcomers as it is not straightforward.
Therefore, the image displayed in Home Assistant was changed and a new docs microsite was created.
If you navigate to hass.valetudo.cloud, you'll find a step-by-step walkthrough to get the map integrated.
Furthermore, there is also an explanation why things are that complicated.
UX Improvements
The Mop Attachment Reminder event now gets dismissed automatically when you detach the Mop Attachment from the robot.
If the user attempts to start a full cleanup after selecting something in the map view, they will now see a warning dialog.
The Wi-Fi configuration settings are now hidden and replaced by an info box if the robot does not support reconfiguration while provisioned.
Operation Mode Control
This release features support for changing the operation mode of the robot.
This enables you to e.g., tell your new W10 that it should only mop.
More error code mappings
After staring at Ghidra for a while, I've managed to discover the meaning of a few more hardware error codes of dreame robots.
Furthermore, roborock hardware error code mappings were updated as well.
The usual
As you've seen at the beginning of these release notes, we do have to buy all robots ourselves if we want stuff to happen.
Thus, 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
Breaking Changes
- mqtt: Provide better error information
da6994a
Features
- vendor.dreame: Newer 1C firmwares do seem to support no mop zones
a06a86d
- vendor.dreame: Operation mode control
aefa436
- vendor.dreame: D9 Pro+ special edition support
ffbcb73
- vendor.dreame: Mop Stuff
0081cba
- ui: Allow configuration of optional exposable capabilities for mqtt
3f31186
- mqtt: Introduce optional exposed capabilities starting with the SpeakerVolumeControlCapabilityMqttHandle
685227b
- vendor.dreame: Initial support for the W10
6da6556
- ui: Warn the user when attempting to start a full cleanup with a MapAction pending
bc6a4ce
- ui: Add current browser timezone hint to timer timePicker
892cc09
- vendor.dreame: Automatically dismiss the MopAttachmentReminderValetudoEvent on Mop detachment
19f96a2
- mqtt: Update wrapper image to point to docs microsite
67f600a
- vendor.dreame: Map some internal error codes
c9bc1b8
- vendor.roborock: Add hardware fault error code mappings
19ce6aa
Fixes
- vendor.dreame: Fix generational differences in operation mode mapping
8b6643c
- vendor.dreame: 1C error codes might occasionally be numbers
93fdfb9
- Hide non-functional Wi-Fi configuration editor if not supported
fbcfd47
- vendor.dreame: Handle carpet information in maps
d1ad1af
- ui: Strip even more characters that home assistant doesn't like from all mqtt topic building blocks
5877381
- vendor.dreame: Voicepack hash must be lowercase
0deff82
- ui: Weekday order should be ISO 8601 compliant
3c884f5
Refactoring
- Misc cleanup
9fa98df
Chores
- release: 2022.10.0
dd49ecc
- mqtt: Minor cleanup
d27b189
- Bump github actions to setup-node@v3
4dbb745
- bump upx dependency
38fb6e4
- Revert axios bump due to broken builds
c3de7e5
- Bump dependencies
cefd3a7
- webserver: Minor data validation cleanup
263774b
- vendor.dreame: Ignore irrelevant POST_CHARGE_CONTINUE update on initial root
0fdec0c
- Docs update
a96501f
- mqtt: Update wrapper image
cd3b75f