Posts by Toby_CGN

    Die Karte kann ich leider nicht größer anlegen, da unser Wohnzimmer durch zwei Stufen von der restlichen Wohnung für den Sauger getrennt ist.

    Ich würde es so machen: Neue Karte oberhalb der Treppe erstellen lassen, falls er dann unten nach dem Heruntertragen den schon von "oben" gesehenen Grundriss nicht erkennt und die Karte nicht weiter zeichnet (bzw. ergänzt), Karte oben nochmal neu erstellen, aus Karton o.ä. eine Rampe über die zwei Stufen legen und diese dann vorsichtig mit der manuellen Fernsteuerung in der app herunterfahren. Diese "große" Karte dann bearbeiten und speichern


    Gruß

    Toby

    So bleiben immer Kleinstflächen übrig, die noch nicht gereinigt wurden.

    Werden diese Flächen etwa gar nicht gereinigt? Das darf natürlich nicht sein.

    Ich weis ja nicht, reinigt man in Asien seine Wohnung so?

    Warum bei der Komplettreinigung Räume teilweise erstmal halb gesaugt werden hat Mansen Dir hier ja schonmal erklärt, aber ich versuche es gerne auch nochmal:

    Der Roboter besitzt im Moment einfach nicht die Intelligenz Räume zu erkennen. Du schaust auf die Karte und kannst die Umrisse den Räumen Deiner Wohnung sofort zuordnen. Der Roboter kann das nicht, für ihn sind Wände einfach nur Hinternisse die umfahren werden.

    Er teil sich diese "riesige Fläche mit Hinternissen" in jeweils ca. 4x4m große Zonen auf, die er dann nach und nach abarbeitet, wobei sein Startpunkt genau in der Mitte dieser Zone liegt. Setzt Du den Roboter also z.B. in der Küche in die Nähe zur Tür zum Esszimmer, reinigt er erst 2m in der Küche (halb) und dann 2m im Esszimmer. Möchtest Du das zuerst die Küche gereinigt wird, musst Du den Startpunkt so verlegen, dass seine Zone komplett in der Küche liegt.

    Sauber sollte aber alles werden, nur halt vielleicht nicht in der Reihenfolge, die Dir als logisch und sinnvoll erscheint. ;)


    Und jetzt noch was aus dem Nähkästchen: Aus diesem Grund verwende ich nur noch die Zonenreinigung, weil die 4x4m Zonen der Komplettreinigung im Teppich unregelmäßige Muster hinterlassen, die mich irgendwie stören. Ob man da schon von einer Zwangsstörung sprechen kann? Keine Ahnung...


    Gruß

    Toby

    Hmmm...mit welchem Editor hast Du die Skripte erstellt? Nicht, dass sich da Windows Zeilenenden eingeschlichen haben...ansonsten würde ich mal zum testen in ssh-button einen anderen Befehl (z.B. aplay /mnt/data/MapManagement/Sounds/EG.wav) versuchen, um sicher zu gehen, dass es wirklich an den Skripten und nicht an was anderem liegt...


    Gruß

    Toby

    Na dann wollen wir mal...ich hoffe ich kriege das einigermaßen verständlich erklärt...


    Erstmal ein grober Überblick was später möglich ist:
    Mit der app SSH Button wird die gewünschte Karte/Etage ausgewählt:

    SSH-Button_Beispiel.jpg

    Der Roboter quitiert das erfolgreiche Laden mit dem Abspielen eines Soundfiles. In meine Fall "Erdgeschoss geladen, Untergeschoss geladen, aktuelle Karte wiederhergestellt" usw.

    Nachdem man jetzt kurz die Komplettreinigung gestartet hat, erscheint die neu geladene Karte in der Mi Home app.


    Was braucht man dafür?

    • SSH Zugang auf dem Roboter
    • Für jede Karte/Etage ein "Lade-Skript"
    • Für jede Karte/Etage müssen die 4 benötigten Kartendateien "last_map", "user_map0", "PersistData_1.data" und "PersistData_2.data" vorliegen
    • Die Soundfiles kann man mit diversen "Text-to-Speech"-Online-Tools generieren. Ich finde "Deutsch - Arabella" bei notevibes kommt der Roborock-Stimme schon relativ nah. Die mp3s müssen dann noch in .wav-Dateien umgewandelt werden.
    • Auf dem Roboter muss "aplay" aus den alsa-utils installiert sein. (apt install alsa-utils)

    Alles weitere werde ich am Beispiel meiner Bastelei erklären, hier kann (und muss?) jeder natürlich die Datei- und Pfadnamen seinen Bedürfnissen anpassen.

    Wir legen einen Ordner "/mnt/data/MapManagement" an. In diesem Order befinden sich

    • Unterordner für jede Karte/Etage (/mnt/data/MapManagement/EG, /mnt/data/MapManagement/UG usw.) in diese Unterordner kopieren wir die jeweiligen 4 Kartendateien
    • Ordner für die Soundfiles (/mnt/data/MapManagement/Sounds)
    • die Lade-Skripte
    • Textdatei "ActiveMap.txt"

    Bei mir sieht das dann so aus:

    Ordner.jpg


    In der "ActiveMap.txt" wird die gerade geladene/"aktive" Karte/Etage (EG, UG, EG-Wisch usw.) eingetragen, später wird das in jedem Skript automatisch geändert.

    Ganz wichtig: Egal was man manuell kopiert, der Eintrag in der ActiveMap.txt muss immer mit den Karten-Dateien in /mnt/data/rockrobo übereinstimmen, sonst werden nachher vom Skript Karten mit falschen Dateien überschrieben!

    Bei meiner Variante wird, vor dem laden der neuen Karte, jeweils die alte gerade aktive Karte bzw. deren Status abgespeichert, wer also immer dieselbe "alte" Karte (wegen Türproblemen o.ä.) laden will, muss dies dementsprechend abändern.

    Hier mein "EG-load.sh"-Skript als Beispiel mit Erläuterungen. Vorweg; ich bin absoluter Skript-Anfänger, dies sind quasi meine ersten "Gehversuche", die Dinger funktionieren aber ich bin mir ziemlich sicher, dass man das ganze eleganter, schöner, effizienter, höher, weiter, schneller umsetzen kann.


    Dementsprechend sieht mein "UG-load.sh"-Skript so aus:

    Falls mal eine Karte "zerschossen" wurde hier mein "MapRestore.sh"-Skript:

    Jetzt müssen wir nur noch die Daten in der SSH-Button-app eintragen:

    • Label: Erdgeschoss laden
    • Command: . /mnt/data/MapManagement/EG-load.sh
    • SSH hostname: <IP des Roboters>
    • SSH username: root
    • SSH password: <leer>
    • Use private key: <aktivieren>
    • Select Private key file: <SSH private Schlüsseldatei auswählen>
    • SSH port: 22

    Soweit erstmal...ich hoffe das war jetzt nicht zu kompliziert erklärt...bei Fragen natürlich bitte fragen... ;)


    Gruß

    Toby

    Thyraz hat hier ja eine sehr geile Backup/Restore Lösung über den smarthome-Ansatz vorgestellt. Da bei uns eine Vollautomatisierung daran scheitert, dass man den Roboter zwangsläufig die Treppen hoch- und runtertragen muss (es gibt weder einen Aufzug, noch einen für den Robbi modifizierten Treppenlift), habe ich mir eine einfache Karten-/Etagenauswahl für mein Android-phone gebastelt. Falls Interesse daran besteht, könnte ich davon ein kleines Howto zusammenklöppeln... ;)


    Gruß

    Toby

    Hmmm...sehe ich das richtig, dass der Robo noch ein eigenes Funknetz hat? Dieser hotspot sollte eigentlich nur bei der Ersteinrichtung da sein, damit die app den Roboter findet und danach nicht mehr.

    Im Moment sieht das so aus, als ob Du dem Robo noch nicht die Daten Deines WLANs gegeben hättest. Manchmal kommt es vor, dass auf bestimmten smartphones mit bestimmten Auflösungen der "weiter"- oder "speichern"-Button blöd von der Tastatur verdeckt wird und Benutzer deshalb nicht weiterkommen. Ich kann mich allerdings nicht mehr erinnern, wie das bei Ersteinrichtung meines Robos war...

    Ist halt nur eine Vermutung meinerseits... ;)


    Gruß

    Toby

    Wird denn bei Dir die Karte so oft gelöscht? Das ist mir ehrlich gesagt noch nie passiert, Karte mit falschen Wänden aus einem anderen Stockwerk "ergänzt" ja, aber so richtig gelöscht noch nicht, vielleicht weil ich von Anfang an eine "user_map0" hatte?...:/

    Ich habe bisher die "user_map0" auch nur durch Speichern in der app generieren können, während der normalen Reinigung werden nur "last_map" und "PersistData_1.data" erzeugt/aktualisiert. Ich konnte auch noch nicht herausfinden unter welchen Umständen (außer nach dem Speichern der Sperrzonen) auf die "user_map0" zugegriffen wird. Daher meine Vermutung, dass diese als eine Art "internes Backup" der "last_map" fungiert...aber so richtig weiß das wohl noch nicht mal Roborock, wenn man sich das aktuelle "Kartenmanagement" des S6/T6 ansieht...;)


    Gruß

    Toby

    Thyraz

    Ich habe jetzt nochmal bei github nachgesehen. Hier vermutet der User ein "Verfallsdatum" der Karten. Allerdings schreibt er ein paar Kommentare weiter oben, dass er immer den gesamten Roborock-Ordner kopiert und wiederherstellt (=O). Ich vermute daher, dass bei ihm nicht die Karten, sondern eher andere Dateien (z.B. die, die jede Nacht um 3:30 Uhr automatisch geändert/aktualisiert werden) die Probleme bzgl. des Datums verursachen. :/


    Gruß

    Toby

    Über ein zweites Dock habe ich auch schon nachgedacht, aber der Preis steht irgendwie in keinem Verhältnis zum Roboterpreis...;)


    Bei mir hat er jetzt auf der geladenen UG-Karte (die ohne Dock) nach kurzem Herausfahren aus dem EG-Dock, in einem Raum, der dem "EG-Dock-Raum" am nächsten kommt, das Dock eingezeichnet. Dafür hat er in der app kurz eine neue Karte generiert, um dann auf dem Dock wieder auf die UG-Karte zu wechseln.


    Ich hab auch noch ein bisschen bei den "issues" bei Valetudo-GitHub gelesen, dort ist das Thema auf mehrere Einträge verteilt. Jemand schrieb dort, dass seine Karten anscheinend nur 6 Wochen "gültig" sind, daher könnte das "alte Karte kopieren" auf Dauer zu Problemen führen.

    Ich werde mich als nächstes mal was mit automatischen Copy/Backup-Scripts auseinandersetzen und dort jeweils vor dem Kopieren der neuen Karte, die Alte sichern. So sollte auf jeden Stockwerk immer die letzte Version verfügbar sein und es, solange man ein Stockwerk innerhalb von 6 Wochen saugt, auch keine Probleme diesbezüglich geben.

    Ich bleibe auf jeden Fall dran... :)


    Gruß

    Toby

    Nachdem ich am Wochenende endlich mal dazu gekommen bin den Roboter zu rooten, konnte ich etwas herumexperimentieren:

    Wenn die Karte bearbeitet wurde, werden im Verzeichnis /mnt/data/rockrobo folgende 5 Dateien angelegt/geändert:

    • user_map0
    • last_map
    • PersistData_1.data
    • PersistData_2.data
    • RoboController.cfg

    Durch "Karte zurücksetzen" werden 4 der Dateien, außer der "RoboController.cfg" gelöscht.


    So konnte ich vom UG eine neue Karte anlegen lassen und jetzt durch das jeweilige Kopieren der 4 Dateien zwischen den Karten wechseln. :)


    Die "Sperrzonen" und "Absperrbänder" werden nicht in der "user_map0" oder der "last_map" abgespeichert, sondern in "PersistData_2.data".


    Noch wichtig: die neu hochgeladene Karte und die Sperrzonen und Bänder erscheinen (zumindest in der Xiaomi-Home-app) erst, wenn man die Komplettreinigung startet, also weder bei der Zonenreinigung noch beim "Bearbeiten der Karte". Man kann diese aber natürlich, sobald die Karte geladen ist ohne Probleme abbrechen und danach z.B. eine Zonenreinigung in der neuen Karte starten.

    Im Moment tausche ich die Dateien einfach mit WinSCP aus, keine Ahnung wie aufwändig es wäre das z.B. in Valetudo zu implementieren?

    Soweit erstmal...


    Gruß

    Toby

    Die Karten-"Verwaltung" ist tatsächlich etwas schwer nachzuvollziehen. Grundsätzlich hilft es nach (oder auch schon während) dem Erstellen der Karte rechts oben auf "Bearbeiten" zu klicken, dann temporär eine no-go-Zone oder virtuelle Wand einzuzeichnen, um die Karte dann speichern zu können (rechts unten). Wenn der Robbi wieder auf dem Dock ist, können die temporären Zonen oder Linien gelöscht werden. Danach speichern nicht vergessen... ;)


    Gruß

    Toby

    frank.zt

    Damit das hier nicht zu sehr offtopic wird, nur ganz kurz:

    Man kann den Roboter auch per python-script ansteuern:

    https://github.com/haim0n/python-mirobo

    Und für homematic hat jemand netterweise auch ein python-addon gebastelt:

    https://larsmichelsen.github.io/pmatic/doc/index.html

    Ich bin noch nicht dazu gekommen das weiter auszuprobieren, aber theoretisch sollte es so möglich sein, aus homematic ohne iobroker sogar einen ungerooteten Roboter (inkl. timergetriggerter Zonenreinigung) anzusteuern.

    Hoffe, dass ich in den nächsten Wochen Zeit habe, mich da reinzufummeln. ;)


    Gruß

    Toby

    Klar, darauf soll es langfristig hinauslaufen...aber ich dachte wir fangen mal klein an...;)

    Es wundert mich ehrlich gesagt etwas, dass obwohl das Ding quasi bis ins letzte Detail auseinandergenommen und die Software untersucht wurde, anscheinend bisher noch niemand über die "Main-map"-Datei gestolpert ist. Oder derjenige behält diese Information für sich und erfreut sich nicht nur über ein Mehrkarten-Management, sondern auch über "Wischkarten" mit als No-Go-Zonen gekennzeichneten Teppichen...:)


    Gruß

    Toby