Cloudless Roborock

Cloudless Roborock

Viele von euch mit einem der vielen mit dem Internet verbundenen Geräten kennen es bestimmt: Es gibt eine App zur Konfiguration und Fernsteuerung. Über solche lassen sich beispielsweise Alexa Skills installieren oder auch der Reinigungsfortschritt der eigenen Waschmaschine prüfen.
Sehr praktisch … oder?

Kommt man aus einem eher technischen Umfeld, besteht (zumindest oft bei mir) die Frage: Wie machen die das denn?

Aus den endlos vielen Möglichkeiten hat sich in letzter Zeit eine zentralisierte Lösung bei vielen Herstellern etabliert. Das heißt konkret ein Smart-Home Gerät übermittelt seine gesammelten Daten an einen oder mehrere Server im Internet und dort werden diese erst mal abgelegt. Frägt man nun per App den Status seines Geräts ab, empfängt man eigentlich nur den zwischengespeicherten Datenstand auf dem Server. Ähnlich ist es mit ausgelösten Aktionen welche an den Server übertragen werden, welcher dann den Befehl an das Gerät weiterleitet. Diese Art der Kommunikation erleichtert den Entwicklungsaufwand und auch die Installation des Geräts beim Endkunden enorm, allerdings werden so auch permanent Daten auf ein entferntes System übertragen.

Jetzt wird es “Cloudless”

Ich bin allerdings sehr bemüht meine Daten auch in meinen eigenen vier Wänden zu behalten. Das führte dazu das mein neuer Haushaltshelfer “Dusty” auch erst mal kein Internet sehen durfte. Zumindest so lange bis einige “Daten-Knebel” an Ort und Stelle sind.

dusty
Der Roborock S55 in der Ladestation.

Um “Dusty” kurz vorzustellen: Es handelt sich um einen Xiaomi “Roborock S55” der seit Februar 2018 auf dem Markt ist. Es ist ein runder Saugroboter, welcher seine Umgebung mittels eines Laser-Entfernungsmessers und weiteren Sensoren erkennt und seine Route den aktuellen Gegebenheiten anpasst.

Root-Zugriff

Für die Veränderung der Software auf dem Roboter benötigen man als ersten Schritt den Zugriff auf das Betriebssystem. Um “Dusty” für das Vorhaben zu “öffnen” hab ich das Ergebnis des Hacks von Dennis Giese and Daniel Wegemer auf dem 34. Chaos Computer Congress (34c3) benutzt. Die beiden verwenden eine etwas unkonventionelle Methode um Root-Zugriff auf den Roboter zu bekommen. Sie benutzen ein Stück-Alufolie um zwei Pins des verbauten Prozessors kurzzuschließen und diesen in einen Notfall-Modus zu bringen. In diesem Modus ist es möglich eine eigene Software in den Arbeitsspeicher zu laden und somit Zugriff auf das Roboter-Betriebssystem zu erhalten. Was im in diesem Fall ein minimal angepasstes Ubuntu Linux System ist. Beim analysieren des Update-Prozesses haben sie das Passwort der Verschlüsselung ermittelt ('rockrobo') und somit kann auch über weitere Geräte ohne Alu-Folie die volle Kontrolle übernommen werden. Alle ihre Ergebnisse und Daten, auch von weiteren Hacks von Xiaomi Geräte findet man in der Dustcloud.

Um “Dusty” jetzt zu rooten, habe ich die Punkte aus dem Wiki des Dustcloud-Projekts befolgt welche ich kurz mit euch durchgehe.

Für die Erzeugung der eigenen Firmware muss man zwingend ein Linux zu benutzen, da manche der benutzten Tools nur dafür verfügbar sind. Für so etwas fahre ich bei mir eine virtuelle Maschine mit einem Debiansystem hoch. Das Generieren des neuen Firmware Image ging damit relativ unkompliziert und ohne Probleme vonstatten.

Die frische Firmware wird jetzt nach der gleichen Anleitung auf den Staubsaugroboter übertragen. Wichtig dabei ist die Verbindung zum Roboter, wenn also noch nicht getan, müsst ihr euch mit dem Roborock-* WLAN verbinden.

Sollte das jemand auch aus einer Virtualbox raus machen, gebt Acht dass ihr euer WLAN-Interface über eine Netzwerkbrücke verbindet.

Bei mir ist an dieser Stelle alles gut gegangen und ich konnte mich mit SSH auf den Roboter verbinden. (Mit dem Benutzernamen root!)

Weboberfläche

Jetzt ist es an der Zeit die Kommunikation zu den Xiaomi Servern zu trennen und alles auf den Roboter selber umzuleiten. Dazu habe ich wieder eine Anleitung zu Installation der dummycloudbenutzt.

Ab sofort kann der Roboter nicht mehr mit der offiziellen App benutzt werden, da keine Verbindung zu den Xiaomi Server mehr besteht. Um trotzdem die Remote-Funktionalität zu erhalten habe ich mich für die Installation von Valetudo entschieden. Valetudo ist eine auf dem Roboter laufende Webanwendung die den Funktionsumfang der Original-App nachbildet und aktiv von einer großen Community weiterentwickelt wird.
Die Installation läuft hier relativ einfach ab und am Ende wird die Weboberfläche unter htto://ip.de.s.robo gestartet.

Screenshot Valetudo
Das Hauptmenü von Valetudo

Internetzugang

Zu guter Letzt wird jetzt der Roboter mit Hilfe der Valetudo-Oberfläche unter Einstellungen in das heimische WLAN eingebunden.
Somit kann jedes Gerät auf die Weboberfläche des Roboters zugreifen und steuern.

Ich habe zusätzlich für mich noch einen VPN-Tunnel eingerichtet.
Somit kann ich auch relativ sicher über den Tunnel aus der Ferne immer mal wieder nachschauen, was “Dusty” so treibt, ohne meinen Router direkt zum Internet hin öffnen zu müssen.

Ich hoffe euch hat dieser kleine Ausflug in eine eher technischere Welt gut gefallen. Wenn ja dann lasst gerne einen Kommentar da, wenn nicht dann erst recht! Mann will sich ja verbessern.

The following two tabs change content below.

Mr. Pöschl

Ein technisch sehr interessierter Sourcecode-Gärtner, welcher in seiner Freizeit auch das ein oder andere Spiel am Rechner zockt. Er liebt auch technische Spielereien und Gadgets welche teilweise auch selbst angefertigt und gedruckt werden.

Neueste Artikel von Mr. Pöschl (alle ansehen)

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.