github Hypfer/Valetudo 2021.01.0b0
Valetudo 2021.01.0b0

latest releases: 2024.11.0, 2024.10.0, 2024.06.2...
pre-release3 years ago
valetudo

2021.01.0b0

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

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.

Autogenerated changelog

Features

  • vacuum.viomi: Virtual Walls & No-Go Areas (96462ac)
  • Configure authorized_keys location via ENV variable (d06520d)
  • Viomi capabilities port (8486f04)
  • mqtt: Publish ValetudoGoToLocations & ValetudoZonePresets (76a9c52)
  • vacuum.roborock: Add support for no-mopping zones on S5 Max and S6 (#630) (61902ed)

Bug Fixes

  • ui: fix #565 ui not working with safari and basic auth (252c22d)
  • 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.