Dienstag, 4. Januar 2022

Saugroboter der Neue

Zum Jahreswechsel sucht man sich was zum spielen. Der Saugroboter hat Schwierigkeiten mit dem Weihnachstbaum, Magnetstreifen auslegen habe ich keine Lust, außerdem hat Valetudo eine neue MQTT Api bekommen... Ein Artikel bei Heise hat mich über ValetudoRE nachdenken lassen.

Den Dreame L10 pro haben die Kumpels von DPD mal wieder kräftig mit CO² aufgeblasen, die Sache mit den Lieferdienstes macht mir immer mehr ein schlechtes Gewissen.

Ein erster Test: einfach auf die Taste drücken und fährt - der Weihnachtsbaum bleibt stehen. Aber jetzt erstmal rooten, bevor jemand eine neue Firmware aufspielt. Mit aktuellster Firmware soll es mit dem rooten wieder Probleme geben...

Die offizielle Anleitung gibt es hier. Aber wie immer gibt es für mich Ecken und Kanten, deswegen meine Notizen hier.

Vorbereitung

Zum Öffnen kann man ein übliches Hebeltool aus Plastik benutzen, damit es keine Kratzer gibt. Die ersten mm gehen mit den Fingern, in der Mitte kann man unterstützen, siehe Bild. Die runde Außenkante hat eine zusätzliche Kante in die Tiefe, deswegen den Hebel neben dem Dom ansetzen oder mit einem längeren Tool mehr am Rand.


Die Arbeit mit dem Linux Notebook, einem CP2102, 3 Dupont Kabeln (Buchse/Stecker) ist die Verbindung laut Bild in der Anleitung schnell gemacht. 

Auf meinem Linux mint fehlte screen, erstmal nachinstallieren und mein User war nicht in der Gruppe dialout, deswegen alles mit sudo

sudo apt update
sudo apt install screen
sudo screen /dev/ttyUSB0 115200,ixoff

Es funktioniert alles wie beschrieben, man muss aber nach dem Start noch den Reset Taster neben der blauen Wifi LED unter dem normalen Deckel kurz drücken, sonst kommt der login prompt nicht!

Firmware besorgen / bauen lassen

Die Dustbuilder Webseite hat eine Tücke: Man muss auf die Bilder klicken, nicht auf den nächsten Link darunter. Der ist nämlich für den Robot der keine Bilder bekommen hat! 

Ich habe mir ein ssh Keypair erzeugen lassen. Auf der Bestätigung Seite wird auch das Passwort für den user root angezeigt: kopieren sonst ist es weg.

Die Erstellung der Firmware mit dem Dustbuilder dauert etwas, sogar die erste Mail braucht ein paar Minuten, die Firmware ist dann nach gut 10 min fertig. Ruhe bewahren, Mail abwarten. Im Downloadlink (der öffnet einen Ordner) steht die verwirrende Info, man könne diese Firmware nur verwenden wenn man schon gerootet hat? Zählt die serielle Verbindung in dem Fall als root Zugang!?

Die empfohlene Sicherung über copy & paste ist ziemlich illusorisch (zuviel Daten) das macht man besser am Schluss mit Netzwerkverbindung und tar!

Firmware auf den Roboter schaffen

Zunächst verbindet man das Notebook per Wifi mit dem AP des Roboters. Der Roboter hat die IP 192.168.5.1 der erste Client (Notebook) bekommt die 100. 

Der empfohlene Python3 http Server startet auf Port 8000, das muss man bei der Angabe der url beachten! Ein neues Terminalfenster auf dem Notebook öffnen:

cd Downloads
python3 -m http.server

Im Fenster mit der seriellen Verbindung zunächst ein erstes mal die Firmware installieren

wget http://192.168.5.100:8000/dreame.vacuum.p2029_fw.tar.gz
tar -xvzf dreame.vacuum.p2029_fw.tar.gz
./install.sh

Eine Weile warten, der Robot bootet von selbst! Danach quasi nochmal das Gleiche (passiert in einer zweiten Partition)

cd /tmp
wget http://192.168.5.100:8000/dreame.vacuum.p2029_fw.tar.gz
tar -xvzf dreame.vacuum.p2029_fw.tar.gz
./install.sh

Backup der Originale Konfiguration

Der Robot startet wieder neu und spannt sein Wifi AP auf. Mit der neuen Firmware ist ssh aktiv und man kann einfacher vom Notebook das oben genannte Backup machen.

cd / ; tar cvf /tmp/backup.tar /mnt/private/ /mnt/misc/

Auf dem Notebook die Wifi Verbindung zum Roboter AP aufbauen und das backup holen

scp -i filename.id_rsa root@192.168.5.1:/tmp/backup.tar .

Provisionierung 

Die letzte Hürde war die Verbindung zum Wifi, die man mit der lokalen Valetudo Software machen soll (die Companion App finde ich nutzlos). 

Mein Wifi des OpenWrt Router (Version 19.07.) wird aus irgendeinem Grund nicht akzeptiert, mein Fritzbox Wifi, ein Fritz Repeater oder auch ein alte Easybox mit OpenWrt 21.02 als Accesspoint im gleichen Netzwerksegment wurden akzeptiert. 

Es ist tatsächlich bisher das einzige Gerät welches mit diesem Router Schwierigkeiten hatte.

Ich habe das Update auf OpenWrt Version 21.02. durchgeführt und die Wifi Verbindung funktioniert wie gedacht. (Leider ist das Update des Routers mit einer kompletten Neukonfiguration verbunden)

Update

Für ein Update fordert man bei dustbuilder eine neue Firmware an. Dabei kann man den alten ssh Key wieder verwenden. Achtung: man darf nicht den private Key hochladen, sondern muss selbst einen public key erzeugen:

ssh-keygen -f filename.id_rsa -y > dustbuilder.pub

Das Update selbst ist simpel: in der howto.html, die mit dem Link kommt, steht alles drin. Einfach ssh Verbindung zum Roboter aufmachen und die Datei herunterladen, entpacken und installieren. Der Roboter bootet selbstständig neu. 

Notizen

Was passiert wenn man Firmware Reset (Reset neben Wifi > 3 sec drücken) macht?

  • Valetudo ist offenbar weg, man muss den zweiten Teil nochmal machen.

Man kann kein "Wissen" von einem auf den anderen Sauger übertragen:

  • Valetudo und ValetudoRE sind in vielen Punkten komplett verschieden.
  • Die Features und Vorgehensweisen der Firmware der Roboter sind verschieden.

Normales Wifi reset beim Dreame L10 pro geht mit den beiden äußeren Tasten (Spot und Home) gleichzeitig (ca 3 sec). Langes Drücken der mittleren Taste schaltet den Sauger aus (geht nicht im Dock) und auch wieder ein.

Es gibt folgende Pfade die "rw mounted" sind:

  • /dev/by-name/UDISK on /data type ext4 (rw,relatime,data=ordered)
    • enthält alle möglichen Konfigurations- und Bewegungsdaten.
    • /data/config/miio/wifi.conf - letzte Wifi Konfiguration im Textformat (eine Änderung hier mit Neustart bewirkt nichts). Hier steht offenbar die Wifi Konfiguration drin, die man in der Valetudo Webui als letztes eingetragen hat.
    • /data/config/wifi/ap_config.json - hier wird jede jemals verbundene Wifi Konfiguration gesammelt (Inhalt ist json Format). Die Datei wird zur Steuerung des wifi_managers verwendet, der bei "Bedarf" das Wifi wechselt! Man kann die Datei erfolgreich editieren, reboot erforderlich!
  • /dev/by-name/misc on /mnt/misc type ext4 (rw,relatime,data=ordered)
    • enthält Daten die Sauger an sich betreffend z.B. Statistiken...

Nach Änderung der Wifi Verbindung in der Valetudo UI muss man den Robot unter Umständen neu starten, damit wieder eine Verbindung zum MQTT Broker aufgebaut wird. 

Wenn man die Datei ap_config.json editiert um Wifi Verbindungen zu entfernen, sind die Einträge noch im Speicher. Erst nach einem reboot wechselt der Roboter nicht mehr in die unerwünschte Wifiverbindung!

ToDo

Soundfiles installieren?

upgrading valetudo offizielle Seite -> Link

Code

Text

Keine Kommentare:

Kommentar veröffentlichen