github Hypfer/Valetudo 2021.01.1
Valetudo 2021.01.1

latest releases: 2024.06.2, 2024.06.1, 2024.06.0...
3 years ago
valetudo

2021.01.1

Be advised: This release will break (almost) everything that you're currently using.

Config format, HTTP API and MQTT have changed significantly in this release.

You will need to recreate your Zone presets as well as your Home Assistant Robot entity.

Make sure to disable any Timers you might've configured before upgrading, since there's no way to delete/configure them in this release anymore!

Also, note that this release comes with fewer features than the previous, because not everything has been ported to the new structures yet.

Core rewrite (Capabilities)

To support a growing number of Vacuum Robots with different feature sets made by different Vendors, the core infrastructure
of Valetudo was completely rewritten.

Now, instead of having robots that inherit from other robots, there are so-called capabilities as an abstraction of features.

There's always a generic base class for each feature (e.g. GoToLocationCapability) which is extended by multiple vendor-specific
implementations (e.g. RoborockGoToLocationCapability, ViomiGoToLocationCapability etc).

This approach completely encapsulates vendor-specific implementation details and makes them invisible for e.g. the webinterface or other
users of the HTTP API which has also been rewritten.

Overall, I'm quite happy with how it turned out. Time will tell whether this abstraction was generic enough to deal with
all possible vendor-specific differences.

New HTTP REST Interface

As mentioned, the REST interface was rewritten and is now an official way of communicating with Valetudo.

All endpoints are dynamically generated according to which capabilities are available for the robot implementation Valetudo is using.
For example basic controls such as "start", "stop" or "home" are done via a PUT request to /api/v2/robot/capabilities/BasicControlCapability.

To find out more about all possible endpoints for your Valetudo instance, a meta-endpoint has also been added.

At /api/v2/ you will get JSON containing all endpoints as well as their accepted methods.

image

New MQTT Interface

The MQTT interface was also rewritten to support different subsets of capabilities.
Instead of having a single topic, which contains all the information available, data is now split up onto different topics
based on capabilities.

This also means that you will have multiple entities for your robot in Home Assistant:

image

Furthermore, Wi-Fi information is now also available over MQTT so in theory, one could build a microservice which subscribes
to both map and Wi-Fi data updates and build a Wi-Fi heatmap of their home by mapping the measurements to the position in the map.

image

Note that the default identifier changed from rockrobo to robot, since Valetudo is not just dealing with Roborock anymore.

Therefore when reconfiguring this release, you may want to change that back to the old value if your setup relies on it.

New Config Schema + Location

To support different robots with different folder structures (some of them being read-only), the configuration location
had to be made configurable, which is a chicken/egg problem, because the information on where to find the configuration
would be configured within the configuration.

To solve this, Valetudo is now using the environment variable VALETUDO_CONFIG_PATH and defaults to os.tmpdir() if it isn't set.

Due to the fact that the configuration schema also changed significantly, you will need to reconfigure Valetudo on upgrade.

You will also need to update your means of running valetudo to include this ENV variable since otherwise your configuration will vanish on each reboot.
This can be done either by building a new firmware image or copying the changes required from these commits

Roborock

Viomi

Dreame Support

With the launch of the Dreame D9, there's now a promising successor to the Roborock S5 regarding both pricing and ease of installation.
This release already contains support for basic controls, Map Rendering, Segment Cleaning and Zoned Cleaning.

Rooting instructions will follow soon-ish. :)

It looks like this code should also be adaptable to the F9. We'll see about that if/when I get my hands on one

Misc

Viomi note: If you're upgrading on a Viomi, make sure to change the cloud IP used for redirection to 203.0.113.1 which is now hardcoded.

The docs have been updated to reflect that.

Valetudo is now using the CalVer versioning scheme, because it better fits the constantly changing scope of the project.

I'd like to especially thank @Depau for his port of the Viomi robot to the new infrastructure using only the half-finished capabilities branch
and no documentation whatsoever as a reference.

Furthermore, thanks to @bensweet86 for porting more capabilities to the new framework.

Autogenerated changelog

Features

  • mqtt: Publish ValetudoGoToLocations & ValetudoZonePresets (76a9c52)
  • ui: Bring back consumable monitoring & resetting for now (fde2ffd)
  • vacuum.roborock: Add support for no-mopping zones on S5 Max and S6 (#630) (61902ed
    )
  • vacuum.roborock: Re-added support for S6 Pure (0226cd5)
  • vacuum.viomi: Virtual Walls & No-Go Areas (96462ac)
  • vendor.dreame: Basic Dreame D9 support (7c5e231)
  • vendor.dreame: Re-add support for 1c as well as more dreame capabilities (cd76abe)
  • vendor.roborock: Do not disturb capability (#659) (4b3ed97)
  • vendor.roborock: Use the lo alias approach for more robots (58a2618)
  • Add properties to capability (7114fcc)
  • Configure authorized_keys location via ENV variable (d06520d)
  • Viomi capabilities port (8486f04)

Bug Fixes

  • miio: Only report a new token from handshake if it is actually new (b373703)
  • Fix map layer dimensions calculation for empty layers (216c347)
  • ui: fix #565 ui not working with safari and basic auth (252c22d)
  • vendor.dreame: Fix map parser tests (a81b8e9)
  • vendor.roborock: Use lo alias cloud redirection approach for S6 & S5Max with miio_client 3.5.8 (71bc1f8)
  • Set VALETUDO_CONFIG_PATH variable for Upstart (#648) (f75b70d)
  • mqtt: missing / in set_fan_speed topic (26ceb95)
  • vacuum.roborock: Fix broken cloud connectivity on newer roborock vacuums caused by missing region (28483ab)
  • vacuum.viomi: Added model names for viomi.v8 (20d86c3)
  • vacuum.viomi: Fix fan speed state parsing (3ca7450)
  • vacuum.viomi: Fix invalid property access (6da2822)
  • vacuum.viomi: Segments + Docs (#600) (89a5485)
  • Improved dnshack to catch all problematic dns.lookup requests (8609612)

Don't miss a new Valetudo release

NewReleases is sending notifications on new releases.