NEWS
[Frage] Xiaomi Vacuum cleaner
-
Gerade ausprobiert, läuft 1A
-
habe mir gerade einen neuen Token geholt. Ist anders als mein letzter. Wie kann das sein?
Habe nichts geändert.
Mit meinem neuen geht es wieder :?
-
Ich habe es jetzt endlich geschafft, die Android-App zu dekompilieren. 64bit-Java mit vergrößertem Heap war notwendig, dass jadx nicht abstürzt.
Wer den Code will, bitte PN, da ich davon ausgehe dass ich den hier nicht posten sollte. Vorhanden sind die Versionen
-
4.2.5
-
4.3.11 `
Wie sieht es mit der Karte aus?
-
-
Wie sieht es mit der Karte aus?
`
Danach hab ich tatsächlich gesucht, aber nix gefunden. Vielleicht hab ich auch an der falschen Stelle gesucht, ich hab nämlich allgemein fast nix zum Staubsauger ("rockrobo") gefunden. -
Hallo zusammen,
ich habe mich extra hier angemeldet nachdem ich den gesamten Thread durchgelesen habe und immer wieder erstaunt bin wieviel Enthusiasmus hier in solche Dinge gelegt wird.
Leider bin ich nicht der Programmierer, würde aber trotzdem gerne von euren Erkenntnissen in meiner Hausautomation profitieren. Daher versuche ich gerade den Sauger in ein einfaches php Script zu integrieren, scheitere allerdings schon ganz am Anfang.
Meinen Token habe ich bereits und diverse Pakete mit Wireshark mitgeschnitten habe ich auch schon, leider reagiert der Sauger nicht auf die einfache Wiederholung der Pakete (also wenn ich sie nochmal sende) <- liegt wahrscheinlich am Timestamp
Daher würde ich sie gerne in php selber zusammen bauen.
Mir ist ehrlich gesagt der Aufbau der Telegramme nicht klar.
Was ich bis jetzt verstanden habe ist folgendes:
Der Vacuum wird per UDP auf port 54321 angesprochen.
1. 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff sendet einen Reset an den Robotor, darauf antwortet er auch immer
2. will man einen Befehl senden, als Beispiel "start" muss das Telegram ja zusammen gebaut werden aus:
2131 -> magic byte immer gleich
0050 -> length immer gleich bei Befehlen
00000000 -> unknown
xxxxxxxx -> Serialnumber
59CCBC17 -> aktueller Timestamp
16 byte -> checksum
? byte -> data
16 byte -> token
16 byte -> key
16 byte -> iv
Die checksum ergibt sich aus md5sum(magicbyte+length+unknown+serial+timestamp+token+data)
Der key ergibt sich aus md5sum(token)
Der iv ergibt sich aus md5sum(key+token)
Allerdings spielt ja auch die Verschlüsselung eine Rolle, ich hatte was von aes-128-cbc gelesen.
Wie gesagt, mir geht es nur um den Zusammenbau der udp Pakete, der Token ist ja bekannt.
Wie komme ich an "data" und sind meine Annahmen oben so richtig?
Danke
-
data müsste die eigentliche Nachricht sein, siehe auch hier: https://github.com/MeisterTR/XiaomiRobo … rotocol.md
Mögliche Kommandos sind hier beschrieben: https://github.com/MeisterTR/XiaomiRobotVacuumProtocol
-
Wie sieht es mit der Karte aus?
Danach hab ich tatsächlich gesucht, aber nix gefunden. Vielleicht hab ich auch an der falschen Stelle gesucht, ich hab nämlich allgemein fast nix zum Staubsauger ("rockrobo") gefunden.
In der App ist auch nichts, die Plugins werden dynamisch nachgeladen.
Die aktuelle Version hast du gerade per PM bekommen, leg sie bitte einfach mit in deinen Dropbox Ordner
-
Na dann kann ich lange suchen
Wird später hinzugefügt!
Edit: Ist drin. Wer den Link noch nicht hat, einfach PN schicken
-
Hallo Zusammen.
Habe gestern noch einige neue Geräte des Herstellers Xiaomi eingelernt (Smart Gateway, Cube, Bewegungssensor und Fensterkontakte). Nun funzt der Staubsauger nicht mehr über ioBroker obwohl die Verbindung steht (grünes Licht). Ich habe nochmal den Token ausgelesen und eingegeben, aber ich sehe keine aktuellen Stati in den Objekten und ich kann den Sauger auch nicht mehr steuern, nur noch über die App.
Weiß jemand woran das liegen kann?
:?:
-
Hi Leute,
mal so nebenbei gefragt… braucht man unbedingt die Logs für Connected/Disconnected? Das passiert einfach zu oft und müllt mein Log zu. :roll:
21-09-_2017_11-49-26.png
Grüße,
ldittmar `
Können die Logs adapter.log.info('Connected') und adapter.log.info('Disconnected') weg? Wäre echt super toll. Danke!
Grüße,
ldittmar
-
Können die Logs adapter.log.info('Connected') und adapter.log.info('Disconnected') weg? Wäre echt super toll. Danke! `
Tadaa: https://github.com/ioBroker/ioBroker.mi … um/pull/25 -
Heute Regnet es den ganzen Tag, Tochter ist bei Oma und Frau näht. Also hatte ich viel zeit mir Milliarden Buchstaben anzuschauen. Alles unter vorbehalt, da ich js erst seit einem halben jahr und Java noch keine Berührungspunkte hatte.
Die Saugkarte wird anscheinen über eine url aufgerufen und scheint ein BMP zu sein meine erste vermutung oder wird generriert aus den daten des links
Serverkommunikation läuft wohl über die "SmarthomeAPI" Dateien in der App würde ich jetzt sagen:
SmartHomeOpenApi, SmartHomeOAuthHttpsApi, SmartHomeAesApi, SmartHomeHttpsApi
soweit meine Vermutungen
-
Die Saugkarte wird anscheinen über eine url aufgerufen und scheint ein BMP zu sein `
Die URL bekommen wir, allerdings kann sie nur aufgerufen werden wenn sie signiert ist.
Es ist eine Pixel Grafik, allerdings passt der Header zu keinem bekannten Format.
-
Hi,
ich habe auch einen Xiaomi Robotersauger und diesen seit 2 Wochen im Einsatz. So weit bin ich ganz zufrieden (er macht das was er soll).
Allerdings stört mich die Kommunikation mit dem Hersteller. Aus diesem Grund hab ich etwas recherchiert und bin auf Python-mirobo (https://github.com/rytilahti/python-miio) gestossen.
Kennt das Jemand zw. gibt es Erfahrungen damit?
Würde dem Staubsauger gerne den I-Netzugriff verweigern und die komplette Steuerung über das Python-mirobo erledigen (Vorteil ich kann es auch in mein Smart-Home einbinden).
Kann mir jemand etwas darüber berichten und gibt es eine Möglichkeit z.B. die Karte aufzurufen und Timereinstellungen auf dem Staubsauger zu ändern?
Danke
-
Wieso nimmst du nicht den Adapter für iobroker den es dafür gibt? Die saugkarte gibt es bis lang nur, wenn der Sauger Internet hat und du die app nutzt.
Gesendet von meinem Handy
-
Ich habe dem Sauger auch in der Fritzbox den Internet-Zugang verweigert und arbeite mit dem ioBroker-Adapter. Geht prima. Die App nutze ich nicht.
-
Ich habe dem Sauger auch in der Fritzbox den Internet-Zugang verweigert und arbeite mit dem ioBroker-Adapter. Geht prima. Die App nutze ich nicht. `
Kann ich die timerfunktion darüber einstelle und sind die Daten für die Kartendarstellung über iobroker auswertbar?
-
Kann ich die timerfunktion darüber einstellen `
Ja, es gibt z.B. im Beitrag von @looxer01 http://forum.iobroker.net/viewtopic.php?p=74510#p74510 eine vis-Visualisierung, die das kann. Steuern, suchen, Zustand ansehen, Verbrauchsmaterial abfragen und rücksetzen und dann gibt es noch einen konfigurierbaren Wochenfahrplan. Man muß halt vis installiert haben und muß noch ein paar widgets runterladen. Wahrscheinlich gibt es in diesem Thread noch weitere Visualisierungen, ber die genannte ist mir eben unter die Finger gekommen und funktioniert.und sind die Daten für die Kartendarstellung über iobroker auswertbar? `
Das leider nicht. Das scheint nur die App zu können.Ist ein nettes Gimmick. Braucht man allerdings nur einmal, um zu sehen wo er überall hinkommt. Wenn man das will, muß man ihm einmal das Internet erlauben und die App mitlaufen lassen. Dann einen Screenshot machen. Den kann man dann auswerten und ggf. für interessierte Zeitgenossen abspeichern.
-
So…
beim dritten Anlauf habe ich es endlich auch hinbekommen gleich zwei Staubsauger einzubinden. Allerdings hat es bei mir nicht auf Anhieb geklappt. Musste ein bißchen tricksen.
Hatte zunächst den Adapter v0.56 drauf. http://technikzeugs.de/xiaomi-mirobot-staubsaugroboter-mit-iobroker-und-echo-bzw-alexa-fernsteuern/ via iPhone Backup lief auch noch halbwegs easy.
Habe aber einen Moment gebraucht bis ich gemerkt habe, dass das Token mit der letzten Firmware 96 statt 32 Stellen hatte. Nach ein wenig Recherche hatte ich dann festgestellt, dass es im Repository mittlerweile die Adapter Version 0.58 gibt die laut Beschreibung die 96 Char-Tokens unterstützen sollte. Also Adapter neu installiert und Token eingefügt. Erst dachte ich das eingabefeld ist einfach zu kurz, aber dann habe ich festgestellt, dass obwohl in der Adapter Ansicht des ioBrokers v0.58 angezeigt wurde der Adapter immernoch nur 32 Stellen verarbeiten konnte. Bei weiteren Recherechen bin ich dann auf folgender Seite auf https://forum.smartapfel.de/forum/thread/370-saugroboter-xiaomi-mi-robot-vacuum-token-auslesen/?pageNo=10 gestoßen. Entsprechend dem dortigen Hinweis habe ich die http://aes.online-domain-tools.com/ zurück gerechnet.
Kleiner Hinweis: Der Schlüssel im Keyfeld besteht aus 32 Nullen…nur falls euch das wie mir nicht direkt aufgefallen ist.
Danach solltet ihr einen 32 stelligen Token erhalten. Einfach die beiden Zeilen von links nach rechts und oben nach unten (Zeile 2 hinter Zeile 1) zusammensetzen, Leerzeichen entfernen...und dann sollte es klappen.
Mit den ermittelten Tokens waren bei mir die Objekteinträge für den Adapter im ioBroker ruckzuck gefüllt und der Sauger fuhr los.
Hoffe das hilft anderen hier auch etwas weiter.
-
Ja das Eingabefeld in der Config ist noch zu Kurz, dennoch sollte der 96 Charakter Lage token verarbeitet werden. Das wurde nun eigentlich mehrfach getestet. Was kam denn für eine Fehlermeldung? Screenshot? Nur mit der Aussage geht nicht… Kann man leider das Problem nicht beheben.
Gesendet von meinem Handy