NEWS
[Frage] Xiaomi Vacuum cleaner
-
ich für mich errechne mir die zonen folgendermaßen:
anfangspunkt ist immer der dock und mein robi schaut zur wand nach links… |<-- `
Ich verstehe das nicht. Hier ist mehrfahch die Rede davon, dass die Ladestation genau in der Mitte der Map wäre.
Wenn ich mir die Map direkt vom Robi hole –> /var/run/shm/*.ppm
Dann ist bei mir die Mitte der Map, die Mitte von den 51000 Map-Punkten und nicht das Docking. Die Docking Station ist bei mir auf keinen Fall in der Mitte der Karte bzw auch nicht auf Position 25500x25500.
Ich errechne die cleanup zone immer von Bildmitte aus und nicht von der Doc und das passt fast auf den Pixel genau.
-
Wenn du ohne Root an die Karte kommst, kannst du ja mal eine Anleitung posten.
Wenn nicht ist die Erklärung ganz einfach, alle anderen arbeiten mit Screenshots, die man sich noch selber zuschneiden muss. Und da passt 25500,25500 ganz gut als Basis Standort. Den Maßstab des Rasters muss man sich erst austesten, weil es eben keine feste Kartendatei gibt.
Grüße
Brati
-
ich für mich errechne mir die zonen folgendermaßen:
anfangspunkt ist immer der dock und mein robi schaut zur wand nach links… |<-- `
Ich verstehe das nicht. Hier ist mehrfahch die Rede davon, dass die Ladestation genau in der Mitte der Map wäre.
Wenn ich mir die Map direkt vom Robi hole –> /var/run/shm/*.ppm
Dann ist bei mir die Mitte der Map, die Mitte von den 51000 Map-Punkten und nicht das Docking. Die Docking Station ist bei mir auf keinen Fall in der Mitte der Karte bzw auch nicht auf Position 25500x25500.
Ich errechne die cleanup zone immer von Bildmitte aus und nicht von der Doc und das passt fast auf den Pixel genau. ` Lässt du uns teilhaben an deinem Wissen? Holst du dir map über die dustcloud? Script auf den robbie? Oder über ftp? Verarbeitung der Karte mit js oder python?
Gesendet von meinem Handy
-
das war das, was ich nicht verstanden habe Ja, ich habe ihn gerootet und hole mir die Karte direkt vom Robo. Aber egal, wie das Bild entstanden ist, sollte doch 25500/25500 auch 25500/25500 sein. Es sei denn, der Robo macht einen Unterschied, ob er an die Cloud kommt oder nicht. Bei mir kommt er gerade nicht an die Cloud. Vermutlich ist dann die Mitte wo anders.
Lässt du uns teilhaben an deinem Wissen? Holst du dir map über die dustcloud? Script auf den robbie? Oder über ftp? Verarbeitung der Karte mit js oder python? `
Wie jetzt klar ist, habe ich gerootet. Ich hole mir die Karte und das Log der Bewegung vom Roboter per ssh mit rsync (ähnlich wie es dustcloud macht), male die Route mit php rein und zeige sie in einem Webfrontend an. Dort setze ich mir einen Pin, um das Ziel zu markieren. Ich verwende iobroker nicht und kann auch kein python. Darum habe ich mir jeweils eigene Dinge gestrickt und mich durch die Foren gelesen, was die Leute so gemacht haben.
Ich bin hier eben auf die Bildmitte gestoßen und habe mich gewundert, warum das abweicht
Das Problem an der Map ist, dass a) die Map meist neu aufgebaut wird. Beim neuen Starten wird eine neue Map erstellt und diese steht erst zur Verfügung, wenn der Robo aus der Station fährt. Anders als mit App. Und daraus folgt b) dass diese sich ab und zu dreht, wie ihr hier auch festgestellt habt. Wenn der Robo beim Laden steht, weiß man noch nicht, wie herum dann beim Starten die Map aufgebaut wird. Ich glaube, bei der App war bei mir die Map immer in gleiche Richtung.
Bei konkreten Fragen, gerne. Was ich alles gemacht habe, würde meine Antwort sprengen.
Ich wollte ursprünglich die Cloud ersetzen und habe jetzt einen Proxy Server zwischen Robo und Cloud. Einen Versuch eines Proxies zwischen Smartphone und Cloud. Einen Command Server (Steuerung wie mit miio py). Einen Recorder für die Remote Steuerungsfunktion. Ein Webfrontend zum Verwalten mehrerer Robos und die Navigation auf der Map. Die Server-Seite ist mit php/symfony und das Webfrontend mit javascript/angular.
Anmerkung: Den Proxy verwende ich nicht mehr, weil das nur Sinn macht, wenn man dem Robo vorgaukeln kann, dass er mit der Cloud kommunizieren würde und hier war mein Hauptaugenmerk die Map. Für alles andere benötige ich die Cloud nicht, weil Kommandos senden geht auch ohne Cloud. Ich habe versucht diesen Miio Bucket der Cloud zu simulieren .. also dort wo der Robo die Map ablegt. Das ist aber daran gescheitert, dass ich mit dem Xiaomi Framework die Maps nicht aus der Cloud bekommen habe. War nur ein kurzer Versuch, den ich verworfen habe.
Den Proxy zwischen Smartphone und Cloud/Robo habe ich auch verworfen, weil es mir zu aufwendig war die Kommunikation zu entschlüsseln. Wäre aber cool gewesen, um die Kommunikation zur Map abzufangen bzw. komplett zu ersetzen. Aber der Proxy leitet zumindest die Kommunikation von der App auf dem Smartphone durch zur Cloud. Das verwende ich auch nicht mehr, weil ich jetzt die Map vom Robo mit rsync hole.
Jetzt weißt Du an was ich gebastelt habe. Wenn Du denkst, dass etwas davon interessant sein könnte, gehe ich auch gerne ins Detail.
-
Jetzt weißt Du an was ich gebastelt habe. Wenn Du denkst, dass etwas davon interessant sein könnte, gehe ich auch gerne ins Detail. `
Interessant ist es, habe meinen S50 und auch damals meinen gen1 auch gerootet. mir geht es eigentlich nur um die Karte. Dustcloud hatte ich 2 mal versucht aber irgendwie war das nicht das wahre (da war die Karte Damals noch nciht drin). Dann hatte ich ein versuch mit js gestartet, die mir die db entpackt und mir Karten generieren sollte, jedoch an einem Modul gescheitert welches nicht installiert werden konnte. Mein Schwager hat ein script auf dem Roboter laufen welches die Karte als webservice Bereitstellt, jedoch noch etwas instabil. würde mich freuen wenn du mir deine lösung zur verfügung stellen könntest.
-
Interessant ist es, […] würde mich freuen wenn du mir deine lösung zur verfügung stellen könntest. `
Ja, das könnte ich machen. Ich war im Kopf noch weiter weg das öffentlich zur Verfügung zu stellen, weil ich die Oberfläche einfach nur funktional gemacht habe und noch einige Dinge aus Zeitgründen nicht lupenrein sind, wie z.B. Konfiguration. Das muss ich noch bereinigen und ohne saubere Installationsanleitung auch wertlos. Vor allem war mein letztes Ding die Map. Das funktioniert zwar, aber ich bin noch nicht fertig
Zum Schluss muss ich dann das ganze noch mal auf einem frischen Rechner installieren. Weil ich so viel experimentiert habe, habe ich Pakete installiert und wieder deinstalliert. Daher muss ich noch mal von vorne die Requirements zusammen stellen. Vielleicht mache ich gleich ein PI image oder docker draus. Hast Du Linux oder einen PI?
edit: gebe mit ein paar Wochen, dann mache ich das flott.
-
Ich bekomme die Map von meinem Helfer nicht ausgelesen! Was mache ich falsch. Versuche es mit dem Befehl "get_map_v1". was mache ich falsch? Muss er definitiv gerootet sein?
-
Ich bekomme die Map von meinem Helfer nicht ausgelesen! Was mache ich falsch. Versuche es mit dem Befehl "get_map_v1". was mache ich falsch? Muss er definitiv gerootet sein? ` Kurze Antwort, nix und ja. Selbst wenn er gerootet ist, ist es nicht einfach an die Karte zu kommen.
Gesendet von meinem Handy
-
Wenn es nur um die Karte geht dann einfach auf dem Handy die Karte anzeigen lassen und einen Screenshot machen.
Man kann auch sehr schön das Koordinatengitter herausfinden indem man über io.broker einen "zone_clean" startet und dann auf dem Handy die mihome-app öffnet. Dann wird nämlich die vorher definierte Zone angezeigt und man kann diese Markierung für die Erstellung des Koordinatengitters benutzen.
VG
Gesendet von meinem SM-G950F mit Tapatalk
-
Selbst wenn er gerootet ist, ist es nicht einfach an die Karte zu kommen. `
Wenn Du das Gerät gerootet hast kannst Du Dir so zumindest einen Cronjob auf dem Sauger einrichten, der die die Kartendaten bei Veränderung an einen Webhook schickt und dann dort die Kartendaten als Image bearbeiten sowie die Koordinaten auslesen. Extra dafür aber das Gerät rooten zu müssen, finde ich etwas unglücklich und ist auch nicht jedermanns Sache. Wenn ihr auf irgendeine Idee kommt auf die Kartendaten ohne root zuzugreifen, wäre ich auch für Ideen dankbar. -
habe nun auch für mich die passende Einstellung für eine Zonenreinigung gefunden wo bei mir die Karte immer korrekt aufgebaut wird! (kein verdrehen um 90° Grad oder so)
per Blockly leicht umsetzbar - die Schritte im einzelnen
starte zuerst immer eine ganz normale Reinigung (dadurch wird die Karte auch immer korrekt aufgebaut, danach pausiert der Sauger kurz (da er ansonsten auf den Befehl der Zonenreinigung nicht reagiert) und geht dann in die Zonenreinigung über). Wie im Screenshot zu sehen muss die Karte nicht vollständig vorliegen (aber das war eh schon bekannt)
update
ein weiteres Blockly von mir im Anhang (wo ich den Staubi zuerst mit GoTo in den bestimmten Bereich schicke und erst dann die Zonenreinigung starte, Bsp "Wintergarten")
Ob die Blocklys inhaltlich 100% korrekt sind kann ich nicht sagen, auf jeden Fall funktioniert es so tadellos
3845_2018-05-03_17_21_38-home_-teamviewer-freie_lizenz__keine_kommerzielle_nutzung.png
3845_img_4160.png
3845_wintergarten.png
3845_img_4174.png
3845_img_4175.png -
Ich habe versucht dein Skript nachzubauen ! Jedoch fehlt mir der eintrag : send command :?
Edit :
Habe es gefunden
-
Ich habe versucht dein Skript nachzubauen ! Jedoch fehlt mir der eintrag : send command :? `
Wenn der in den Objekten fehlt, dann einfach in der Instanz des Xiaomi Adapters "Sende eigene Kommandos" anhaken…
Grüße
Brati
-
Habe es jetzt folgendes gemacht . Aber der sauger macht nichts
5130_alexa_reinige_k_che.jpg -
Weil dein Trigger State nicht durch Alexa gesetzt werden kann.
http://www.iobroker.net/docu/?page_id=6567&lang=de
Nimm hier die ersten Punkte wähle diesen State als Trigger für dein Blockly.
Grüße Brati
-
irgendwie komme ich da nicht wirklich klar
habe jetzt alles so wie in der Beschreibung gemacht ! Da tut sich immer noch nichts
Bei den Objekt ID kommt der von der Scene oder Javascipt-Adapter Objekt ?
EDIT :
Es funktioniert jetzt ! DANKE SCHÖN
-
Hallo Forengemeinschaft,
leider gelingt bei meinem Roborock S50 die Zoneneinrichtung mittels ioBroker noch nicht wirklich.
Ich verwende keine Szene sondern versuche es über Alexa State/Blockly.
Der Status, der mittels Alexa erfolgreich gesetzt wird, sieht wie folgt aus:
Das dazugehörige Blockly, welches ich zu Testzwecken verwenden möchte, um meine Zonen zu identifizieren:
Leider reagiert der Sauger überhaupt nicht und ich erhalte stattdessen im ioBroker Log folgendes:
Hat evtl. jemand einen Tipp für mich, was hier zu dem genannten Verhalten führt?
Vielen Lieben Dank im Voraus und noch einen schönen, sonnigen Feiertag
Sony
-
Ich habe das Problem, dass der Saugroboter bei den Fahrbefehlen immer gegen die Ladestation fährt und diese versucht umzureißen.
Egal, ob ich das Fahren per Script in IObroker durchführe oder per MI-App.
Trage ich den Saugroboter etwas von der Ladestation weg und starte dann das Script oder fahre per App mit ihm, dann geht dies ohne Probleme.
Hat hier jemand das selbe Problem?
-
Ja habe das gleiche Problem.
Kann es vielleicht daran liegen das er nicht genügend Abstand zu Möbeln an den Seiten hat? Wäre super wenn jemand eine Lösung hätte.
LG Torsten
Gesendet von meinem MHA-L29 mit Tapatalk
-
@spoerl.torsten:Ja habe das gleiche Problem.
Kann es vielleicht daran liegen das er nicht genügend Abstand zu Möbeln an den Seiten hat? Wäre super wenn jemand eine Lösung hätte.
LG Torsten
Gesendet von meinem MHA-L29 mit Tapatalk `
In der Tat steht dieser in einer Art "Garage".
Hinten ist die Ladestation und vorne ist es offen.
Ich habe extra geschaut, er steht aber seitlich nirgends an -> jeweils ca. 2cm frei.
Das sonderbare daran ist, dass er im normalen Saugbetrieb problemlos raus fährt.