Valetudo befreit den Roboter von der China Cloud. Ich wollte das schon lange mal probieren - ein Thread im FHEM Forum hat mich wieder getriggert.
Ich hatte kurz vorher die aktuelle Firmware mit dem mirobo Tool aufgespielt. Dazu habe ich meinen alten Artikel etwas aktualisiert. Das hat problemlos geklappt, leider konnte ich danach nicht noch einmal die gleiche Firmware Version mit integriertem Valetudo RE flashen.
Offenbar verhindert die neuere Firmware das flashen über mirobo. Nach einem Werksreset kann man ohne Umstände die aktuelle Firmware mit integriertem Valetudo RE flashen.
Installation
Die aktuelle Firmware des Roboters enthält kein wget, deshalb habe ich die Software heruntergeladen und per scp auf den Roboter kopiert:
wget https://github.com/rand256/valetudo/releases/download/0.10.5/valetudo-re_0.10.5_armhf.deb
scp valetudo-re_0.10.5_armhf.deb root@rockrobo:
Die Installation und der Neustart per ssh root@rockrobo war problemlos:
dpkg -i valetudo-re_0.10.5_armhf.deb
reboot
Genauso kann man jederzeit die valetudo Version aktualisieren.
Komplette Firmware flashen
Wenn die vorhandene Firmware ein flashen zulässt, kann man die komplette Firmware mit valetudo flashen. Der Sauger muss in der Ladestation stehen!
Man kann auch ein Werkreset ausführen und die Firmware über das WLAN des Saugers flashen. Dazu muss sich der PC und der Sauger in unmittelbarer Nachbarschaft befinden!
Mit einem Raspberry Pi Zero kann man sich zunächst zum "normalen" WLAN verbinden und die Firmware Datei herunterladen. Dann die WLAN Verbindung zum zurückgesetzten Sauger herstellen und die Firmware flashen. Eine passende wpa_supplicant.conf muss man vorbereiten. Siehe Hinweise am Ende.
datei="NameDerFirmwareDatei"
wget https://vacuumz.info/download/gen1/$datei
#Verbindung mit dem WLAN des Saugers herstellen
wpa_cli -i wlan0 select_network ID
Man könnte den Token vom Sauger direkt in die Umgebungsvariable schicken.
mirobo discover --handshake true
# export MIROBO_TOKEN=$(mirobo discover --handshake true|grep -Po "(?<=b')\w*+(?=')")
export MIROBO_IP="192.168.8.1"
export MIROBO_TOKEN="Token 32 stellig"
mirobo update-firmware $datei
Verwendung
Nach diesem Setup funktioniert:
- der Zugriff mit der Xiaomi Home oder Flole App erwartungsgemäß nicht mehr,
- der Zugriff mit FHEM nach wie vor.
- die Steuerung über eine HTTP App auf dem Roboter.
Damit lässt sich der Roboter lokal steuern:
http://rockrobo
In den Settings kann man die Weboberfläche auf german stellen. Die Verwendung der Valetudo Web App ist intuitiv und sehr komfortabel!
Steuerung von unterwegs
Die Einrichtung des Telegram Bots zur Steuerung von Unterwegs war gut erklärt:
- Start in der Oberfläche des Roboters: Menu / Einstellungen / Telegram-Bot
- den Telegram Bot mit dem BotFather im Dialog einrichten
- API Token auf dem Roboter eintragen und Passwort vergeben
- den Bot mit /setme Passwort am Roboter anmelden
Einrichtung MQTT
- aktivieren
- url eintragen in der Form: mqtt://Name/IPAdresse:1883
Features/Hinweise
- Zielpunkte und Zonen in valetudo anlegen und per MQTT verwenden, ohne umzurechnen.
- nach der Reinigung kann ein Zwischenstop am Mülleimer erfolgen.
- Zonen als Liste übergeben: Bad,Eingang,Schlafzimmer
- Die Entnahme des dustbin wird gemeldet und kann ausgewertet werden.
- Nach Entleerung Fahrt zur Ladestation fortsetzen.
- Den Sauger mit der Valetudo App von Punkt zu Punkt schicken und parallel in der Karte auch die Spots und Zonen festlegen.
- Die aktuelle Karte speichern und falls die verloren geht, wieder laden
- set sauger map store Name
- set sauger map load Name
{localtime(ReadingsNum((devspec2array('a:model=roborockRE'))[0],'last_loaded_map_date',0)/1000)}
Die Daten von valetudo werden in der Struktur /mnt/data/valetudo abgelegt. Nach einem Werksreset wäre das Einrichten der Spots, Zone und Kartendaten nur mit Aufwand wiederherstellbar. Man sollte diese Daten sichern. Erstmal als Idee: tar -czf rockrobo.tar.gz /mnt/data/valetudo und dann über scp auf den Backupserver schaffen.
Mehrere WLAN's in der Datei wpa_supplicant.conf
Die Datei kann man einfach mit dem Editor editieren und erweitern. Jedes Netzwerk kommt in einen separaten Abschnitt: {network ...}
Die vorhanden, definierten Wlan's kann man sich anzeigen lassen:
wpa_cli -i wlan0 list_networks
Dabei steht in der ersten Spalte eine ID (fortlaufende Nummer), diese ID verwendet man zur Umschaltung:
wpa_cli -i wlan0 select_network 2
Achtung: Das Programm akzeptiert auch einen String als ID Parameter, dieser wird aber durch 0 ersetzt!
Nachtrag Oktober 2022
Mittlerweile setze ich valetudoRE nicht mehr ein. Ich bin der Meinung Original valetudo wird solider entwickelt. Will man die aktuelle valetudo Version ausprobieren, kann man einfach valetudoRE beenden und die neue Version interaktiv starten.
wget https://github.com/Hypfer/Valetudo/releases/latest/download/valetudo-armv7 -O valetudo
service valetudo stop
./valetudo
ToDo
- Einrichtung Valetudo Mapper - braucht man das?
Code
Sehr interessanter Beitrag! Allerdings wird das nichts daran ändern, dass bei uns vor allem die Katze mit dem Saugroboter herumfährt haha. Danke für den informativen Artikel!
AntwortenLöschenLiebe Grüße
Dennis