Freitag, 21. Mai 2021

OpenWrt Router - mehr als nur ins Internet

 Ich habe seit Jahren einen WRT 1900 ACS und zwei (langsame) DSL Leitungen. Zwei Themen stehen immer im Hinterkopf und ich will mal dazu wieder ein paar Informationen aufschreiben.

  1. Zwei WAN Anschlüsse bündeln und etwas intelligenter verwenden als nur mit ein paar Routing Einträgen.
  2. Jeweils getrennte WLAN und LAN Zugänge für IoT Geräte und für Gäste.
  3. Werbeblocker zentral mit adblock einrichten
Um sich in die Begriffe der Netzwerkthematik ein bisschen einzulesen, kann man die OpenWrt Wiki Hauptseite Firewall and Network Interfaces als Start nutzen.

Sonntag, 2. Mai 2021

Gesundheit für den Saugroboter

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. 

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

Voraussetzung: MQTT2_SERVER in FHEM vorhanden, autocreate steht auf simpel
Im Webinterface valetudo/Einstellungen/MQTT Einstellungen
  • aktivieren
  • url eintragen in der Form: mqtt://Name/IPAdresse:1883
Ein MQTT2_DEVICE wird erstellt. Das AttrTemplate rockroboRE anwenden.

Features/Hinweise

Eine Liste der Features von Valetudo RE findet man hier. Diese lassen sich natürlich auch über MQTT verwenden! Die MQTT Topics sind hier beschrieben und entwickeln sich offenbar ständig. Meine Highlights:
  • 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
Die Zeitangaben in den MQTT Readings sind in Millisekunden! So kann man die Zeit in lesbarer Form anzeigen.
{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.

ToDo

Code



Montag, 12. April 2021

Windows To Go

- auch zum mitnehmen 😂 -

Es gab mal eine spezielle Live Version für Windows mit gleicher Bezeichnung, diese Variation wurde aber wieder eingestellt.

mobiles Windows - auf einem Stick

Als Werkzeugkasten - es ist relativ unkompliziert und einfach zu erstellen: Wer sich nicht weiter mit Internas beschäftigen will, nimmt das Tool Rufus, das macht einen guten Job! Es kopiert quasi das Windows ISO Image auf einen USB Stick. Entweder hat man das schon oder es wird vom Tool herunterladen. Die Bedienung ist aus meiner Sicht eindeutig.

Mittwoch, 17. Februar 2021

BootStick für den RaspberryPi

 Über USB Boot bei SD Card basierten SBCs hab ich schon mal was geschrieben, ab Version Pi2B v1.2 (Link) kann der Pi ohne SD Card direkt vom USB booten. Dazu muss man u.U. eine einmalige Programmierung vornehmen. Ob der Pi schon bereit ist, kann man leicht prüfen:

vcgencmd otp_dump | grep 17:
17:3020000a
#bei ausgabe 17:1020000a programmieren:
cp /boot/config.txt /boot/config.back
echo program_usb_boot_mode=1 | sudo tee -a /boot/config.txt
# einmal booten wenn erfolgreicher Test config wieder zurück
cp /boot/config.bak /boot/config.txt

Ich hatte die Idee ob man den Pi temporär mit einem Stick booten kann um die SD Card zu sichern oder mit einem neuen Image zu versorgen. Ist vielleicht nur eine Machbarkeitsstudie - ich habe es ausprobiert und auf alle Fälle mal aufgeschrieben. Meine Beschreibung bezieht sich auf ein laufendes System mit RaspiOs lite.

Freitag, 29. Januar 2021

Befehle und Scripts per ssh ausführen

Ich möchte über ssh (mit Powershell oder Perl) auf einem Linux Computer Befehle ausführen und dort Aktionen steuern.

Dazu braucht man ein paar Vorbereitungen, muss ein paar Eigenheiten beachten und ich möchte hier meine Erkenntnisse notieren.

Die ssh Einrichtung für Linux (fhem) habe ich hier schon mal beschrieben. Auf die Übertragung des public mit der Powershell gehe ich kurz ein. 

Dienstag, 12. Januar 2021

Container Schiff

Schon oft gelesen und dann immer wieder abgestorben - so lief das Thema Docker für mich bisher. Dabei bin ich ja schon seit der ersten vmware Version ein großer Fan von Virtualisierung!

Aber jetzt - ein kleiner Vortrag über FHEM im Container hat mich bewogen es zu versuchen, wie so oft schreib ich hier mal mit, damit ich später weiß was ich gemacht habe.

Ich habe als Ergebnis des Artikels ein Setup Script auf Github abgelegt.

Samstag, 12. Dezember 2020

Freie MQTT Instanz im Internet für Testzwecke

Es muss ja nicht immer einfach sein, einen kostenlosen Dienst zu nutzen. Deswegen meine Notiz, damit ich beim nächsten Mal noch weiß wie es geht. 

Registrierung https://myqtthub.com/en/

Hier braucht man eine funktionierende Email Adresse, gibt sich einen Usernamen und Passwort. Innerhalb kurzer Zeit bekommt man 4 Emails. Sie enthalten keine wesentlichen Informationen außer einem Link zur eigentlichen Accountverwaltung https://pas.aspl.es/