NEWS
[Frage] Xiaomi Vacuum cleaner
-
Toller Fehler. Ist ein Fehler beim Abfangen des Fehlers. Was für ein Trottel programmiert denn so etwas. Da muss ich mir mal an den Ohren ziehen.
Teste doch bitte mal, ob es sich ändert, wenn Du ausdrücklich die IP des Robot angibst (mit -ip x.x.x.x).
Müssen dann mal schauen, ob der Fehler beim Senden, oder beim Empfangen auftritt.
Gratulation zu Deiner Auswertung der Befehle. Spannend finde ich, ob wir irgendwann auch mal die Karte verstehen werden. Ich glaube ich brauche auch so ein Ding.
-
was denn für eine Fernbedienung ?
Gibt es eine solche für den xiaomi vacuum ? `
Das ist vermutlich die Fernbedienung wo Du den Roboter selbst steuern könntest -
Gratulation zu Deiner Auswertung der Befehle. Spannend finde ich, ob wir irgendwann auch mal die Karte verstehen werden. Ich glaube ich brauche auch so ein Ding. `
Gratulation von meiner Seite auch, es ist sehr hilfreich! Ich baue mir gerade eine Python-Bibliotek & einen Client womit man das alles steuern kann (mein Ziel ist schließlich das mit Home Assistant zu verbinden).@gst666 ich benutze deinen Kryptocode hier, hoffentlich ist das in Ordnung. Über die Karte, sie wird anscheinbar nicht über das gleiche Protokoll übertragen
edit: Danke ebenso für Deine Mitteilungen @Meistertr, sie waren wirklich echt hilfreich
Hier eine kleine Abschnitt von meinem Mitschnitt, wo zu sehen ist wie get_map_v1 ohne Netzverbindung (gar nicht) funktioniert:
TO DEV >> {'id': 1648, 'method': 'get_map_v1'} FROMDEV << {'result': ['retry'], 'id': 1648} TO DEV >> {'id': 1649, 'method': 'get_status'} FROMDEV << {'result': [{'msg_ver': 4, 'msg_seq': 79, 'state': 8, 'battery': 100, 'clean_time': 52, 'clean_area': 1217500, 'error_code': 0, 'map_present': 1, 'in_cleaning': 0, 'fan_power': 60, 'dnd_enabled': 1}], 'id': 1649} TO DEV >> {'id': 1650, 'method': 'get_map_v1'} FROMDEV << {'result': ['retry'], 'id': 1650} TO DEV >> {'id': 1651, 'method': 'get_status'} FROMDEV << {'result': [{'msg_ver': 4, 'msg_seq': 80, 'state': 8, 'battery': 100, 'clean_time': 52, 'clean_area': 1217500, 'error_code': 0, 'map_present': 1, 'in_cleaning': 0, 'fan_power': 60, 'dnd_enabled': 1}], 'id': 1651} TO DEV >> {'id': 1652, 'method': 'get_map_v1'} FROMDEV << {'result': ['retry'], 'id': 1652} TO DEV >> {'id': 1653, 'method': 'get_consumable'} FROMDEV << {'result': [{'main_brush_work_time': 31255, 'side_brush_work_time': 31255, 'filter_work_time': 31255, 'sensor_dirty_time': 2642}], 'id': 1653} TO DEV >> {'id': 1654, 'method': 'get_consumable'} FROMDEV << {'result': [{'main_brush_work_time': 31255, 'side_brush_work_time': 31255, 'filter_work_time': 31255, 'sensor_dirty_time': 2642}], 'id': 1654}
-
<u>ACHTUNG</u>: Wer Nachrichten encodieren will: Habe gerade auf meinem Handy die die Gesendeten Datenpakete nachgeschaut. wo vor wenigen Tagen noch die UDP Nachrichten gesendet wurden, werden nun nur noch verschlüsselte Nachrichten an den xiaomi Server geschickt, ich glaube die haben die UDP verbindung von der App gekappt also nicht die app updaten…
in Bluestack habe ich noch die version 4.0.8, die wollte sicher gerade updaten, konnte es noch rechtzeitig verhindern, ab version 4.0.11 keine UDP mehr...
-
Toller Fehler. Ist ein Fehler beim Abfangen des Fehlers. Was für ein Trottel programmiert denn so etwas. Da muss ich mir mal an den Ohren ziehen.
Teste doch bitte mal, ob es sich ändert, wenn Du ausdrücklich die IP des Robot angibst (mit -ip x.x.x.x).
Müssen dann mal schauen, ob der Fehler beim Senden, oder beim Empfangen auftritt.
Gratulation zu Deiner Auswertung der Befehle. Spannend finde ich, ob wir irgendwann auch mal die Karte verstehen werden. Ich glaube ich brauche auch so ein Ding. `
Wenn ich die IP Adresse mit angebe erhalte ich folgendes:
C:\Python27>python xpn.py -token '4c4a645a4630696c314e56484e464737' -ip '192.168.0.8' -cmd '{"id":4966,"method":"get_status"}' Error Code: 11001 Messge: getaddrinfo failed
Habe aus dem Excelfile von Meistertr schon alle Status Befehle durch. Immer das gleiche.
Gruß Kay
-
Die Fehlermeldung ist schon besser. Sie besagt, dass er anscheinend die URL in eine IP-Adresse umwandeln kann. Werde mal schauen, ob ich den Fehler provozieren kann.
Funktioniert bei Dir
python xpn.py -info
?
Dann kommen wir dem Problem etwas näher
-
Die Fehlermeldung ist schon besser. Sie besagt, dass er anscheinend die URL in eine IP-Adresse umwandeln kann. Werde mal schauen, ob ich den Fehler provozieren kann.
Funktioniert bei Dir
python xpn.py -info
?
Dann kommen wir dem Problem etwas näher `
Ja funktioniert. Aber nur wenn ich in der xpn.py die IP Adresse des Saugers manuell eintrage. Mache ich das nicht, startet zwar die xpn.py aber es kommt einfach nichts / hängt sich auf.
Hier die Ausgabe mit eingetragener IP:
C:\Python27>python xpn.py -info 192.18.0.8 Device Type: 02f2 Token: ffffffffffffffffffffffffffffffff
-
<u>ACHTUNG</u>: Wer Nachrichten encodieren will: Habe gerade auf meinem Handy die die Gesendeten Datenpakete nachgeschaut. wo vor wenigen Tagen noch die UDP Nachrichten gesendet wurden, werden nun nur noch verschlüsselte Nachrichten an den xiaomi Server geschickt, ich glaube die haben die UDP verbindung von der App gekappt also nicht die app updaten…
in Bluestack habe ich noch die version 4.0.8, die wollte sicher gerade updaten, konnte es noch rechtzeitig verhindern, ab version 4.0.11 keine UDP mehr... `
Was meinst du denn jetzt?
bluestack oder die app für den robo
Beim robo hab ich derzeit: 3.3.6_003030
Er bietet mir an: 3.3.6_003047
Können wir dieses update noch machen ?
Oder erst einmal warten?
mfg
Dieter
-
gst66:
Teste doch bitte mal, ob es sich ändert, wenn Du ausdrücklich die IP des Robot angibst (mit -ip x.x.x.x).
Ergebnis:
filename="bild1.jpg" index="0">~~Fazit:
gleicher Fehler wie oben
-
ACHTUNG: Wer Nachrichten encodieren will: Habe gerade auf meinem Handy die die Gesendeten Datenpakete nachgeschaut. wo vor wenigen Tagen noch die UDP Nachrichten gesendet wurden, werden nun nur noch verschlüsselte Nachrichten an den xiaomi Server geschickt, ich glaube die haben die UDP verbindung von der App gekappt also nicht die app updaten…
Was meinst du denn jetzt?
Meinst Du die Kommunikation App<->Roboter oder wirklich App<->Xiaomi Server? Soweit ich mir die Kommunikation App<->Xiaomi Server anschauen konnte war die auch früher verschlüsselt. Nicht aber UDP sonder per SSL/HTTP. Da gab es keinen Klartext.
-
Ja funktioniert. Aber nur wenn ich in der xpn.py die IP Adresse des Saugers manuell eintrage. Mache ich das nicht, startet zwar die xpn.py aber es kommt einfach nichts / hängt sich auf.
Hier die Ausgabe mit eingetragener IP: … `
OK, das ist schon mal gut zu wissen. Anscheinend geht unter Windows der Multicast so nicht. Muss mal sehen, ob ich auf einen Windows Rechner das mal aufsetze. Spannend ist auch, warum das Programm nicht per timeout einfach abbricht.
Prima ist, das -info mit der IP geht. Warum dann der Rest nicht ist komisch. Mal sehen, werde wohl Morgen daran rumbauen. Eigentlich wollte ich ja an der Portierung Javascript arbeiten …
-
Und um mal eine Bemerkung zur Qualität zu machen: ich habe bisher drei Geräte getestet, eine. Roomba 780, einen Roomba 650 sowie einen LG Hombot. Im Vergleich zu unserem Xiaomi können die alle nix. Der Xiaomi ist denen hinsichtlich Saugleistung, Userfreundlichkeit, Lautstärke und vor allem der Qualität, Technik und Intelligenz haushoch überlegen. Die Chinesen können was!
Und jetzt müssen wir ihn nur noch "einfach" in den iobroker kriegen!
So, das war mein Wort zum Sonntag!
Liebe Grüße
Bernd
-
Meinst Du die Kommunikation App<->Roboter oder wirklich App<->Xiaomi Server? Soweit ich mir die Kommunikation App<->Xiaomi Server anschauen konnte war die auch früher verschlüsselt. Nicht aber UDP sonder per SSL/HTTP. Da gab es keinen Klartext. `
ich Dachte eigentlich App –> Roboter aber es wahr ein fehlalarm. Die App hatte kein wlan, deswegen wurden keine udp nachrichten gesendet..
Leider muss ich mich in sachen überführung in js ergeben. Ich bekomme es einfach nicht hin.. bleibe aber dran..
-
Ich arbeite gerade an der Umsetzung nach Javascript.
Habe erfahren, dass jemand an einer Python Bibliothek arbeitet. Es gibt also auf jeden Fall Bewegung.
-
Ich kann leider hier nichts zur Entwicklung des Adapters beitragen (keine programmierkenntnisse),
aber sollte jemand mit dem Gedanken spielen, den Vakuum Cleaner zu kaufen, bei Gearbest mit dem
Promocode : XMSDJDE gibt es das Teil für 329,63€ incl. Germany Express Transport (ca. 14 Tage)
-
Ich kann leider hier nichts zur Entwicklung des Adapters beitragen (keine programmierkenntnisse),
aber sollte jemand mit dem Gedanken spielen, den Vakuum Cleaner zu kaufen, bei Gearbest mit dem
Promocode : XMSDJDE gibt es das Teil für 329,63€ incl. Germany Express Transport (ca. 14 Tage) `
Bestellt. Ganze Thema durchgelesen. Nichts verstanden
aber ich bin optimistisch das was passiert.
Zumal Bluefox im Youtube Video den Staubi schon per Sprache steuert. Die Tochter ist cool.
-
Das Python-Skript von mir ist jetzt da zu haben: https://github.com/rytilahti/python-mirobo - dank zu gst666 (für krypto) und Meistertr (kommandos). Bis jetzt es ist nur mit meinem Robo gestetet, soweit ist die IP + das Token vorhanden sollte es einfach zu nutzen sein. Wer mehrere Kommandos weiß, bitte Bescheid (am liebsten als github issue) sagen / PR erzeugen.
-
Tpr,
Danke.
Nur kurze Frage: was tut das Skript? Ich, als Laie, brauche da noch etwas Info. Danke!
Bernd
///////////////
Nachtrag: in den Github Beschreibung ist ja alles drin. Danke. Muss man halt nur jeden. Ich bin ein Dummy
-
Nur kurze Frage: was tut das Skript? Ich, als Laie, brauche da noch etwas Info. Danke! `
Es lässt das Gerät einfach vom Terminal betreiben sobald man dieses Token zuvor extrahiert hat, also ist nicht so super Laiefreundlich, ich habe aber ein paar Beispiele hinzugefügt zu zeigen was es jetzt kann: https://github.com/rytilahti/python-mir … e-examples . Zurzeit alle Grundfunktionalität ist schon da außer Fernbedienung (links fahren, rechts fahren usw.), Einstellung von Putzplanungen, u.ä. Kleinigkeiten. -
Den Token und die ip habe ich. Werde ich in den kommenden Tagen testen.
Noch eine Frage: wie wäre der prinzipielle Weg, um das Skript über iobroker auszuführen. Den da gibt es ja nur Java Skript. Ich habe auf dem Raspi aber Python und iobroker laufen. Kann ich von iobroker aus über ein Java Skript das Python Skript auslösen?