Xiaomi Roborock Saugroboter von der Cloud befreien

Die Roborock Saugroboter von Xiaomi sind fabelhafte Produkte, wenn nur nich der Zwang zur chinesischen Cloud wäre. Mit der alternativen Firmware Valetudo RE funktioniert der Sauger auch ohne Cloud und bekommt zusätzlich interessante neue Funktionen.

Wir haben seit 2 Jahren einen Xiaomi Roborock S50 Saugroboter, der sich zu unserem Vorwerk VR200 und einem iRobot gesellt. Dabei ist es für den S50 ein Leichtes, die beiden anderen Sauger in praktisch jeder Disziplin zu degradieren. Einzig der Zwang zur chinesischen Cloud war mir ein Dorn im Auge. Mir ist es zwar egal, ob die Chinesen den Grundriss unseres Hauses kennen oder wann wir saugen. Sollte die Cloud jedoch ausfallen, fehlen auch viele Funktionen.

Auf dem Roborock läuft auch mit der Original-Software ein vollständiges Ubuntu-Linux als Betriebssystem. Findige Hacker haben geschafft, auf dessen Basis eine gepatchte Firmware zu entwickeln, die alle Funktionen der Xiaomi Home-App bietet und noch ein bisschen mehr.

Mit der Valetudo RE Firmware, kann man verschiedene Roborock-Sauger vom Cloud-Zwang befreien und man erhält zusätzliche Funktionen, die sehr interessant sind. Valetudo RE ist ein Fork der Valetudo Firmware, die mehr Funktionen bietet.

Dabei wird auf dem Saugroboter ein Webserver installiert, der eine Benutzeroberfläche für alle Funktionen zur Verfügung stellt. Damit lässt sich der Roboter komfortabel bedienen und einrichten.

Die Original-App von Xiaomi funktioniert mit dem Update auf Valetudo RE nicht mehr, sodass auch der Fernzugriff nur noch per VPN möglich wäre. Die Valetudo-Entwickler haben jedoch eine Schnittstelle zum Telegram Messenger integriert, über die man den Roboter auch aus der Ferne steuern kann und Statusmeldung zurückbekommt – inklusive Karte. Außerdem versteht der Roborock mit Valetudo-Herz nun auch MQTT und lässt sich damit ohne Tricks in viele Smarthome-Systeme einbinden.

Zum Upgrade auf die alternative Firmware braucht man einen Linux-Rechner mit WLAN. Am einfachsten geht das mit einem Raspberry Pi samt Monitor und Tastatur. Alternativ kann man ein Live-Linux von einem USB-Stick booten. Mit dem LinuxLive USB Creator kann man sich so ein Live-Linux aus einem ISO-Image selbst generieren. Ich habe für solche Basteleien immer ein bootbare Linux Mint Cinnamon auf einem Stick parat.

DustBuilder baut euch die passende Firmware

Während bislang recht viele Schritte notwendig waren, die alternative Firmware auf den Roborock zu bekommen, geht das mit dem Dustbuilder recht einfach. Hier kann man sich die passende Firmware als Installations-Paket generieren lassen.

Dustbuilder-Einstellungen für die Valetudo Firmware meines S50

Den Download-Link bekommt man nach einigen Minuten an die angegebene E-Mail-Adresse geschickt. Mit dem Firmware-Paket erhält man auch ein Schlüsselpaar für einen SSH-Zugang. Damit kann man z. B. mit Putty direkt per SSH auf den Sauger zugreifen. Das solltet ihr aber nur tun, wenn ihr damit vertraut seid, denn hier habt ihr einen Root-Zugang und könnt damit auch jede Menge zerschießen.

Valetudo-Installation

Hinweis

Seid euch bitte im Klaren darüber, dass ihr bei Fehlern und unsachgemäßem Update den Roborock in die ewigen Jagdgründe schicken könnt. Ihr solltet bereits etwas Erfahrung mit dieser Art von Bastelei haben.

Um die Firmware zu installieren, benötigt man zunächst eine Python-Umgebung auf dem Linux-Rechner:

Einen Ordner anlegen:

mkdir valetudo

Vorsichtshalber die Paketquellen updaten und upgraden:

sudo apt-get update
sudo apt-get upgrade

In den neuen Ordner gehen und die Python-Umgebung einrichten:

cd valetudo
python3 -m venv venv

und danach das Flash-Tool miio-tools installieren:

source venv/bin/activate
pip3 install wheel
pip3 install python-miio
cd ..

Um nun die Firmware flashen zu können, müssen die WLAN-Einstellungen des Saugers zurückgesetzt werden, damit er wieder einen Access Point öffnet. Dazu kann man entweder den Sauger aus der Xiaomi-Home-App löschen oder (ab Gen2 Saugern) den Reset-Taster unter der Klappe bei der blauen Wifi-LED mehrere Sekunden lang drücken. Bei anderen Modellen müssen die beiden äußeren Tasten (Spotreinigung und Docking) lange gleichzeitig gedrückt werden. Dann sollte im WLAN ein Gerät mit dem Namen Xiaomi- oder Roborock-Irgendwas erscheinen. Damit verbindet ihr euren Linux-Rechner – ein WLAN-Passwort ist nicht erforderlich.

Als Nächstes benötigt ihr den Token eures Saugers:

mirobo --debug discover --handshake true

Hier bekommt ihr eine Ausgabe, in der ihr eine Zeile mit dem Token findet. Diesen kopiert ihr euch in die Zwischenablage oder noch besser: in eine Textdatei.

Zwischenzeitlich solltet ihr auch den Download-Link des Dustbuilder bekommen haben. Ladet die .pkg Datei herunter und speichert sie im Valetudo-Verzeichnis auf eurem Linux-Rechner mit dem Dateinamen valetudo.pkg

Nun geht es ans eigentliche Firmware-Update. Der Sauger sollte dazu vollständig geladen sein und sich möglichst nahe an eurem Linux-Rechner befinden. Die IP-Adresse des Saugers ist im Access-Point-Modus übrigens immer 192.168.8.1

mirobo --ip 192.168.8.1 --token DEINTOKEN update-firmware valetudo.pkg

Damit wird die Firmware zum Sauger hochgeladen und installiert. Das dauert einige Minuten und ihr solltet hier nicht ungeduldig werden. Die Fortschrittsanzeige ist hier nicht sonderlich hilfreich und stockt oft schon bei wenigen Prozent. Das Update geht trotzdem weiter.

War das Update erfolgreich, bekommt ihr eine entsprechende Sprachausgabe. Nun müsst ihr den Sauger noch einmal Neustarten: Sauger von der Ladestation nehmen, Power-Taste lange drücken, bis er ausschaltet und dann wieder einschalten.

Verbindet euch wieder mit dem WLAN des Saugers (siehe oben). Nun sollte der Sauger per Browser unter der 192.168.8.1 erreichbar sein und ein Webinterface anzeigen:

Unter „Einstellungen -> WLAN“ kann man den Sauger nun ins heimische WLAN hieven.

Sollte die Installation fehlschlagen, habt ihr vermutlich eine sehr neue Original-Firmware auf eurem Sauger. So war es auch bei mir. Abhilfe schafft ein Werks-Reset: Docking-Taste 3 Sekunden gedrückt halten und dann die Reset-Taste für 10 Sekunden ebenfalls gedrückt halten. Damit ist der Sauger wieder komplett auf der Software-Version bei der Auslieferung. Er macht damit auch wieder seinen Access-Point auf, allerdings hat sich nun auch der Token geändert, sodass ihr den erst noch einmal neu – wie oben beschrieben – auslesen müsst.

Roborock Saugroboter aufgebohrt

Auch mit der alternativen Firmware lassen sich Zonen-, Räume und Verbotslinien einzeichnen. Man kann nun auch mehrere Zonen einrichten, die der Sauger dann anfährt.

Für die einzelnen Zonen/Räume lässt sich auch festlegen, wie oft sie pro Durchgang gesaugt werden sollten.

Wer möchte, kann detaillierte Zeitpläne anlegen, die dann automatisch abgearbeitet werden:

Fernsteuerung mit Valetudo

Durch den Wegfall der Mi-Home-App und Cloud-Anbindung könnt ihr den Sauger nun nicht mehr von außerhalb eures WLANs steuern. Ein Weg ist natürlich, das Webinterface per VPN aufzurufen. Valetudo RE lässt sich aber auch per Telegram steuern. Dazu richtet ihr einen Telegram-Bot ein und damit habt ihr auch unterwegs volle Kontrolle über den Saugroboter, inkl. Zonenauswahl, Statusmeldungen und Karte.

Wer bereits eine Haussteuerungssoftware wie Symcon, FHEM, OpenHAB etc. im Einsatz hat, kann den Sauger dort auch per MQTT einbinden und ihn z. B. dann automatisch losschicken, wenn man das Haus verlassen hat.

Fazit

Die Roborock-Sauger sind meiner Ansicht und Erfahrung nach, die beste Wahl, wenn es um einen Saugroboter geht. Mit dem Valetudo Update ist man unabhängig vom Cloud-Zwang und bekommt obendrein noch zusätzliche Funktionen. Der Aufwand ist überschaubar und mit etwas Linux-Übung, hat man das Update in 20-30 Minuten erledigt.

Ist man mit der alternativen Firmware trotzdem nicht zufrieden (was ich für sehr unwahrscheinlich halte), kann man über einen Werksreset immer wieder zurück zur Hersteller-Firmware.

5 1 vote
Article Rating

Der kostenlose nachbelichtet-Newsletter für dich

Abonnieren
Benachrichtige mich bei
1 Kommentar
Newest
Oldest Most Voted
Inline Feedbacks
View all comments

Vielen Dank für diese gute Anleitung!

Ich hatte ein paar Probleme mit den pip3-Befehlen, ich musste erst „apt install python3-pip“ ausführen, dann ging’s 🙂

Kannst du mir sagen, wo ich aktuelle deutsche Sprachpakete als PKG-Datei für den Gen1 finden kann?