Valetudo: Alternatives cloudfreies Webinterface ohne Dustcloud mit Livemap auf dem Saugroboter

  • Teilweise Offtopic

    Ich weiß ja nicht, ob ggf. noch wer so drauf ausgelegt ist, wenn man schonmal Hand am Ubuntu anlegt, gleich auch Updates oder wget/nano nach zu installieren.

    Für alle diejenigen, denen dabei auch auffällt, dass der Speicher zu klein ist auf dem Xiaomi, habe ich nun aus vielen Quellen (nein ich bin kein Linuxler durch und durch) Workarounds zusammengetragen ;) Hauptsächlich gebührt der Dank natürlich an den hießigen Threadersteller!


    Ich persönlich mag Vi nicht und nutze lieber Nano, daher installiere ich immer Nano auf Linux maschinen. Wget habe ich mir geladen um Valetudo direkt aus dem Netz auf den Robo zu ziehen anstatt das mit WinSCP oder dergleichen zu machen.


    apt update sorgt immer erst einmal dafür, dass die pakete auf den Speicher geladen werden und damit die 494 MB ziemlich voll packt (es reicht bei vollem Cache nicht aus um valetudo zu installieren, war zumindest bei mir so). Also hier nun meine einzelnen Schritte um Platz zu schaffen :)


    Prüft einmal vorher, wie viel Speicher ihr frei habt:


    Code
    1. df -h --total


    ungefähr so, sieht euer Ergebnis aus:



    Die erste /dev/root ist quasi euer arbeitsverzeichnis in dem so ziemlich alles rein läuft, u.A. auch die Updategeschichte. In einem jungfräulichen Zustand sollte dieses Verzeichnis noch lediglich 220-240 MB belegt haben. Bei mir ist jetzt Valetudo installiert und nano und wget und die Updates drauf. Die Partition /dev/mmcblk0p1 sollte ca. 600-800 MB frei haben im Ursprungszustand. Wer jetzt ggf. schon Updates installiert hat und zu wenig Platz auf /dev/root hat, kann mit den SSH Befehlen von Schritt 1 loslegen, alle diejenigen, wo das Kind noch nicht in den Brunnen gefallen ist (wie bei mir damals) wäre Schritt 2 wohl das beste ;)



    Schritt 1

    Code
    1. apt update && apt upgrade => läd die aktuellen Updates herunter und installiert diese
    2. apt install nano wget => installiert nano und wget
    3. apt-get clean => /var/cache/apt/archives/ wird gesäubert
    4. rm /var/lib/apt/lists/* => /var/lib/apt/lists/ wird gesäubert (Fehlermeldungen ignorieren)


    Schritt 2

    Script von der Dustcloud (danke an Hypfer für den Hinweis: https://github.com/dgiese/dust…um/scripts/morestorage.sh), unterm Strich werden unter dem Verzeichnis /mnt/data (dorthin wird die Partition /dev/mmcblk0p1 gemountet) neue Ordner angelegt und Links zu diesen Ordnern auf das Originalverzeichnis erstellt. Vorteil: Die Partition mit am meisten verfügbaren Speicher hat am Ende des Tages die Updates/Cache rumliegen und hat immer noch genügend Speicher frei. Folge: /dev/root bleibt von weiterer Speicherbelastung bei apt zeug einfach frei. Man könnte sogar drüber nachdenken, valetudo nicht gar in diese Partition noch auszulagern um mehr frei zu bekommen.


    Code
    1. mkdir /mnt/data/relocated
    2. mkdir /mnt/data/relocated/var
    3. mkdir /mnt/data/relocated/var/cache
    4. mkdir /mnt/data/relocated/var/lib
    5. mv /var/cache/apt /mnt/data/relocated/var/cache
    6. ln -s /mnt/data/relocated/var/cache/apt /var/cache/apt
    7. mv /var/lib/apt /mnt/data/relocated/var/lib
    8. ln -s /mnt/data/relocated/var/lib/apt /var/lib/apt
    9. rm /var/log/*.gz
    10. rm /var/log/*.1
  • Hallo@all und vielen Danke an Hypfer für seine Mühe mit dem Server und das Teilen hier im Forum.


    Habe soweit auch alles am laufen. Roboter ist gerootet, war niemals online (xiaomi-server, keine App, nichts).


    Mein Problem ist folgendes: Mein Roboter startet den Dienst Valetudo leider nicht automatisch. Wenn ich mich per SSH auf den Roboter schalte und im Verzeichnis

    /usr/local/bin/ valetudo von Hand starte läuft der Server und ich kann den Roboter steuern und erreichen. Sobald ich das Terminal schließe habe ich auch keinen Zugriff mehr.


    Die valetudo.conf liegt in /etc/init/ ( !!nicht!! in init.d)


    Habe keine Ahnung woran es liegt. Ist halt leider etwas umständlich veletudo immer von Hand erst starten zu müssen...


    Wäre toll, wenn jemand einen Tip hat.


    Gruß

    Roboter_Sauger

  • Hatte irgendwie mal das Problem, dass ich beim Herunterladen der valetudo.conf aus dem Github Verzeichnis irgendwie ne Datei erhalten habe, die am ende HTML Inhalt gehabt hat.

    Hab mir seit dem angewöhnt mit nem Texteditor jeweils selbst die valetudo.conf unter dem /etc/init/ Verzeichnis zu erstellen und die paar Zeilen per Copy Paste reinzukloppen ;) Danach hats bei mir gefunzt.

  • nicedevil

    habe gerade mir das ganze nochmals angeschaut und du hast recht! War bei mir ebenfalls HTML-Inhalt gespeichert. Habe Sie mir jetzt selber nochmal geschrieben und jetzt klappt es einwandfrei. Danke für den Tip ;-)

  • Meine wenigen Shellkenntnisse hab ich jetzt zum halbautomatisierten Update mal verwendet und nen Script gebastelt, bei dem man lediglich noch nach dem Link gefragt wird der jeweils gewünschten Version :) Wenn ich es recht weiß, gehts auch vollautomatisiert, dass man nur noch das Script ausführt, aber das übersteigt aktuell meine Kenntnisse, prüfen zu lassen, was die aktuellste Version auf Github ist.


    Für alle komplett Neuen im Debian/Ubuntu Linux:


    als Root auf dem Xiaomi anmelden und dann folgendes eingeben


    Code
    1. nano valetudo_update.sh

    Den folgenden Inhalt einfügen (das geht mit Rechtsclick über putty):

    Und mit STRG+O speichern (ggf. mit Y bestätigen), danach mit STRG+X nano verlassen.


    Jetzt noch Rechte zum Ausführen des Scripts setzen, fertig.

    Code
    1. chmod +x valetudo_update.sh

    Ausführen ließe sich das Script dann ganz einfach im Root Verzeichnis mit


    Code
    1. ./valetudo_update.sh
  • Moin,


    erstmal DANKE! für dieses großartige Umsetzung und die Zeit, die bereits in das Projekt geflossen ist.

    Ich habe mir auch ein kleines Script für Windows gebastelt, was das Updaten für mich deutlich vereinfacht.


    Ich habe mir dazu einfach einen Ordner (z.B. Valetudo_Update) angelegt, in dem:

    - der private key vom rooten hinterlegt ist (z.B. "roborock.id_rsa.ppk")

    - die neue Datei (z.B. "valetudo") liegt

    - das folgende Script als "update.bat" abgelegt wurde:


    SET certificate=".\roborock.id_rsa.ppk"

    SET valetudoFile=".\valetudo"

    SET roborockIP=192.168.22.32

    plink -i %certificate% root@%roborockIP% service valetudo status

    plink -i %certificate% root@%roborockIP% service valetudo stop

    plink -i %certificate% root@%roborockIP% rm /usr/local/bin/valetudo

    pscp -i %certificate% %valetudoFile% root@%roborockIP%:/usr/local/bin/valetudo

    plink -i %certificate% root@%roborockIP% chmod +x /usr/local/bin/valetudo

    plink -i %certificate% root@%roborockIP% service valetudo start

    pause


    - die roborockIP aus dem obrigen script so angepasst wurde, dass die IP vom Helferlein dort steht


    Ich habe Putty installiert - daher sind die entsprechenden Tools bei mir verfügbar. Ich gehe aber davon aus, dass die meisten, die den Roboter gerootet haben auch Putty installiert haben. Darüber hinaus ist die "valetudo.conf" beim ersten Mal manuell auf den Roboter hochzuladen.


    Der Ablauf zum/beim Update ist nun denkbar einfach:

    - Neue valetudo executable runterladen und in den Ordner schieben

    - das Update-Script (o.g. "update.bat") starten

    - ca. 1 Minute warten und sich freuen, dass es schon erledigt ist :-).


    Gruessle

    vom Krueger

  • wenn jetzt noch ein automatisch gitdownload mit drin wäre, wäre es perfekt

  • wenn jetzt noch ein automatisch gitdownload mit drin wäre, wäre es perfekt

    Stimmt schon. Habe es grad implementiert. Leider gibt es in Windows keine zuverlässige Variante (die mir bekannt ist) um ohne weitere Hilfsmittel Dateien herunterzuladen. Also musste eine wget Implementierung für Windows her. Die kann man sich z.B. dort für sein System (32 oder 64 bit OS) herunterladen (Ich hoffe, die Verlinkung geht klar) : https://eternallybored.org/misc/wget/


    Anschließend die "wget.exe" zusammen mit dem Script (als scriptname.bat) und dem private-key vom rooten in einen Ordner schieben - und das Script starten.

    Das Script holt sich dann von den github die Liste der Releases (coole API btw.) und bietet dem User eine Auswahl, welches Release installiert werden soll. Das Auserwählte wird geladen und auf den Roboter aufgespielt. Vorher wird noch auf die Existenz der config datei geprüft - die dann bei Bedarf ebenfalls heruntergeladen und eingespielt wird.

    Hier das Script - Viel Spaß damit ;-)!


    Ich habe (ggf. gibt es Codierungs-Probleme) noch einmal das Script mit angehängt. Bitte unbedingt in scriptname.bat umbenennen! Beigefügt ist es als *.bat.txt, da *.bat (verständlicher Weise) hier nicht erlaubt sind!

  • Hi,


    auch von mir ein herzliches Dankeschön für deine Arbeit hier :thumbup::thumbup::thumbup:


    Ich habe einen V1, jetzt in Verbindung mit Valetudo 0.0.3 :)

    Momentan kann ich nur die Live-Map sehen. Ich vermute daher, dass bei mir das Logging ausgeschaltet ist. Wo kann ich das denn sehen und Umschalten?

    Andererseits kann ich die abgeschlossenen Maps aus der robot.db exportieren und mit IrfanView anschauen. Also müsste Logging aktiv sein?

    Oder geht das mit dem V1 leider nicht?


    LG

    Holger

  • Die fehlenden Maps auf dem V1 hängen vermutlich mit diesem Issue zusammen.

    Ich publishe im laufe des Tages noch die 0.0.4 damit sollte das gefixt sein. Weiterhin gibts dann noch die Remote Control Funktion durch krueger

  • Danke!

    Es wird jetzt eine Karte angezeigt (allerdings keine, die in der robot.db gespeichert ist. Vermutlich ist es die letzte Live-Map. Ich hatte vorhin den Robby nur ganz kurz gestartet gehabt und dann gleich wieder auf die Basis hoppeln lassen.

    Nächste Frage: wo finde ich Erläuterungen zu Manual Control von Krueger? Mit der Forumssuche habe ich nichts gefunden.

  • Vermutlich ist es die letzte Livemap die noch in /dev/shm rumliegt, ja.

    Erläuterungen gibts keine ^^ Am PC wurde es über die Mausposition relativ zum Mittelpunkt gelöst. Mobile da wo der Finger hintoucht.
    Das ist nur ein Menüpunkt in Valetudo, ne?

  • Super Arbeit. Läuft bestens auf meinem staubi V1.

    Gibt es eigtl irgendeine Möglichkeit goto Anweisungen oder zoneCleaning Anweisungen zu schicken. Über mirobo RAW Command. Oder Python ect...

    (Der iobroker scheint es zu können)

    Ich hab schon ziemlich viel nachgelesen aber die Infos wie (ohne iobroker oder fhem)) hab ich nicht gefunden


    Keep up the good work

  • Vielen Dank für die Arbeit hypfer, das klingt genial!


    Weißt du (oder sonst jemand), ob das auch mit den neuen Modellen (E20, E35) funktioniert?

    Roborock S55 (Valetudo, dummycloud)

    McCulloch Rob 1000

  • Moin,


    hab gestern meinen GEN V1 Saugi mal gereinigt und wollte dann die Werte unter Consumables für den Sensor zurücksetzen.

    Wenn ich auf den Pflei hinten drücke, kommt die Abfrage ob ich es resetten möchte, allerdings passiert nichts, wenn ich auf ok gehe.


    Geht das bei euch?

  • @Hyper siehst eine Möglichkeit, dass man den Port von Valetudo von 80 auf irgendwas anderes ändern kann?


    Hab persönlich nen Ubuntu Server am laufen und da hab ich ne htaccess eingerichtet für fernzugriff auf manche dienste... nur hab ich net nur 1 Dienst sondern viele und die alle mit verschiedenen VirtualHosts angelegt und RedirectRules :) Dann könnt ich gar nen HTTPS Zertifikat mit LetsEncrypt machen ;)