NEWS
[Frage] Xiaomi Vacuum cleaner
-
Hi,
sieht so aus, dass du noch node 0.10.22 hast.
Vermutlich läuft der Adapter damit nicht. Ich selber habe 4.7.2
Node 6.x ist aktuell und soll auch ohne Probleme laufen.
vG Looxer
-
Hallo,
habe zwar keinen Vakuum cleaner, dafür aber einen Xiaomi Intelligent Air Purifier 2.
Mich interessierte, ob dieser ähnlich angesprochen wird. Dem scheint so zu sein.
die Kommunikation läuft über UDP. Zwischen der App und dem Gerät werden immer vier Pakete ständig ausgetauscht.
Hier mal ein Beispiel:
1. Paket: Von App nach Air P.
! 0000 21 31 00 20 ff ff ff ff ff ff ff ff ff ff ff ff !1. ….........
! 0010 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................2. Paket: Von Air P. nach App
! 0000 21 31 00 20 00 00 00 00 00 c4 a0 9c 00 00 c0 d5 !1. ….........
! 0010 09 a3 f9 f8 6f 14 91 2f a7 aa b6 2a 4e cd d2 55 ....o../...*N..U3. Paket: Von App nach Air P.
! 0000 21 31 00 d0 00 00 00 00 00 c4 a0 9c 00 00 c0 d5 !1…...........
! 0010 27 88 97 04 24 18 a5 44 49 56 e5 46 4f 32 29 03 '...$..DIV.FO2).
! 0020 57 5e 39 47 3d 94 2d 4a da aa d5 a3 d9 ed a4 31 W^9G=.-J.......1
! 0030 df 69 89 f6 2e 24 dc 34 6a 9a b8 7e f2 f2 e4 a6 .i...$.4j..~....
! 0040 9e e2 3d 62 bf e4 82 aa c1 4a 53 cb 93 aa ba c6 ..=b.....JS.....
! 0050 70 ad 5f f4 8b cb d7 9c 78 22 e7 0a e2 6e a4 07 p._.....x"...n..
! 0060 34 7f 69 5b bf cd 75 ba 9e 0a 5b 2d bd 36 2b c8 4.i[..u...[-.6+.
! 0070 78 e5 fe fa ec ac f4 55 2a 20 15 57 35 13 38 63 x......U* .W5.8c
! 0080 70 60 21 4e 08 70 77 5c 33 c9 0c f0 43 75 43 be p`!N.pw\3...CuC.
! 0090 64 6c 77 ce 4d 2d d9 2e ef 18 c3 62 e3 d0 21 22 dlw.M-.....b..!"
! 00a0 c6 99 59 e0 40 37 08 e1 ff ee ab 3e e9 ba cf 87 ..Y.@7.....>....
! 00b0 a4 3a 61 85 35 05 5b 1b e7 9c 68 3a 1e d8 7a 6a .:a.5.[...h:..zj
! 00c0 09 fb 2b 87 b1 c6 48 b4 71 54 de 8e b1 92 ad 53 ..+...H.qT.....S4. Paket: Paket: Von Air P. nach App
! 0000 21 31 00 70 00 00 00 00 00 c4 a0 9c 00 00 c0 d5 !1.p….........
! 0010 0c 1d 5e 1d ea 5f 7f 75 21 f6 cb 55 6a e9 1e e4 ..^.._.u!..Uj...
! 0020 4c e9 7d c5 26 3a 07 4a 1a 10 4a f1 b7 81 79 ed L.}.&:.J..J...y.
! 0030 ee e2 4e 86 44 95 4c 72 4a c7 b1 a0 66 43 f5 0b ..N.D.LrJ...fC..
! 0040 8c 7f 25 cc 95 29 9f 6c d0 42 84 70 ea 1b 9e 7d ..%..).l.B.p...}
! 0050 7f 34 f5 d4 e0 c1 c1 e0 26 70 40 99 cb 88 50 79 .4......&p@...Py
! 0060 e3 61 f7 8e d1 b0 84 f5 31 14 15 f9 14 c9 dd 51 .a......1......QFolgende Schlüsse habe ich bislang gezogen:
2131 (Byte 0+1) Kennung für Xiaomi Mi
00xx (Byte 2+3) Eine Art Befehl. Ist der Wert 0x20 wird ein Sessionkey abgefragt.
Ist die Antwort 0020 wird der Sessionen zurückgegeben. Dieser befindet sich in den Bytes4-11. Die Bytes 12-15 sind wohl ein Counter, der Sekunden zählt (in Hex Werten). Der Sessionkey wird auch bei der weiteren Kommunikation verwendet.
Mich würde zunächst interessieren, ob auch der Roboter die Funktion mit dem Sessionkey hat. In dieser Antwort dürfte auch etwas über den Gerätetyp enthalten sein. Wenn es sich um eine Verschlüsselung handelt, stellt sich die Frage, ob der Key beim Einloggen ausgetauscht oder nur in dem Sessionkey enthalten ist.
Die sich daran anschließenden 16 Byte ändern sich bei mir nicht. Einstellungen des Geräts spielen keine Rolle. Daher an die Roboterfraktion: Könnt ihr mal den Befehl an euer Schätzchen schicken und hier posten? Spannend ist, ob bei euch allen die Folge identisch ist. Wenn ja, dann handelt es sich um eine Kennung für das Gerät. Ich mutmaße, dass der Code unterschiedlich ist und hier eine Art Seriennummer enthalten ist
-
Looxer,
Du könntest Recht haben. Aber jetzt habe ich ein neues Problem. Nach dem versuchten Update habe ich mir augenscheinlich iobroker komplett zerschossen. Ich melde mich…
-
Noch ein Nachtrag zum Air Purifier:
Anders als der Staubsauger scheint er replay-Attaken zu erkennen und führt sie nicht aus! Wahrscheinlich wertet er den Zeitstempel aus. Das könnte aber auch heißen, dass nicht nur Sekunden, sondern auch Millisekunden übergeben werden. Mal sehen, was sich nich rausfinden lässt
-
Kann das unterschreiben was du geschrieben hast, so weit war ich auch schon. Wenn ich eine nachricht eines Anderen nehme und da die bites ändere, reagiert der roboter nciht drauf und ich bekomme keine Antwort. Also wird er seinen key abgleichen und die daten mit zeit und key. verrechen. muss zugeben, dass ich jetzt schon mehrere Seiten voller Nullen Einsen und Hex Zahlen habe und versucht habe ein Muster zu sehen, bis lang jedoch noch kein erfolg.
! 213100200000000002f20d8f589722e6ffffffffffffffffffffffffffffffff
Interessant ist, dass sobald die mihome app geöfnetg ist (nicht das sauger menü) und noch keine nachricht von der app an den Sauger gegangen ist (über udp) beginnt der Sauger schon die Nachricht mit den key zu senden, also wurde dem Roboter schon vom xiaomi Server die ip mit der geöffneten app mitgeteilt.
-
looxer01 (jetzt richtig geschrieben, blöde Autokorrektur…),
daran dürfte es nicht liegen. Hier das log
/$ npm install iobroker.mihome-vacuum npm ERR! Linux 4.4.38-v7+ npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install" "iobroker.mihome-vacuum" npm ERR! node v6.9.5 npm ERR! npm v4.1.2 npm ERR! code E404 npm ERR! 404 Registry returned 404 for GET on https://registry.npmjs.org/iobroker.mihome-vacuum npm ERR! 404 npm ERR! 404 'iobroker.mihome-vacuum' is not in the npm registry. npm ERR! 404 You should bug the author to publish it (or use the name yourself!) npm ERR! 404 npm ERR! 404 Note that you can also install from a npm ERR! 404 tarball, folder, http url, or git url. npm ERR! Please include the following file with any support request: npm ERR! /npm-debug.log
ich habe node v6.9.5 und npm v4.1.2
Mir scheint vielmehr das das Problem " 'iobroker.mihome-vacuum' is not in the npm registry"
Oder? hat bluefox das wieder rausgenommen?
-
Hi,
Ich habe übrigens
@skorpil:daran dürfte es nicht liegen. Hier das log `
ich hatte das aus dem Log, das du vorher gepostet hast.npm ERR! node -v v0.10.22
npm ERR! npm -v 1.3.14
dieser Teil sagt, dass die source nicht gefunden wurde:
npm ERR! 404 Registry returned 404 for GET on https://registry.npmjs.org/iobroker.mihome-vacuum
npm ERR! 404
npm ERR! 404 'iobroker.mihome-vacuum' is not in the npm registry.
Versuche doch mal über den Admin zu installieren mit der URL die Bluefox im ersten post genannt hat.
vG Looxer
-
kann aber auch sein, dass der Adapter nicht für nodejs v0.1x.xx geeignet ist und der Fehler daher rührt!
Gruß
Rainer
-
Bluefox hat sich inzwischen gemeldet. Ist nicht im regulären npm. Installation über npm i https://github.com/ioBroker/ioBroker.mi … all/master
Danke für die Fürsorge und einen schönen Abend
-
Guten Morgen,
Hab mir jetzt auch mal so ein Teil bestellt.
Mal ne kurze Frage:
Hat denn jeder Roboter andere Codes, oder kann die hier übernehmen?
Mit freundlichen Grüßen
Dieter
-
Nur mal so zur Info: ich habe meinen am 29.Januar bei Gearbest bestellt, bezahlt und es tut sich: nix. Seit Tagen steht der Status auf "Processing " und meine Nachfragen im "Ticket" dto. Ich fange langsam an, ein bisschen unruhig zu werden, ob man denen vertrauen kann….
-
-
Na, dann beten wir mal…
-
Danke, Rainer
-
Guten Morgen,
Hab mir jetzt auch mal so ein Teil bestellt.
Mal ne kurze Frage:
Hat denn jeder Roboter andere Codes, oder kann die hier übernehmen?
Mit freundlichen Grüßen
Dieter `
Übernehmen kann man leider nichts. -
Hallo,
habe auch gerade meinen Mi-Robot bekommen und folgendes ist mir aufgefallen:
Wird ein "Locate my robot" (bzw. "Find") über die App gesendet erfolgt zuerst irgendein Request oder Ping mit 32 Byte Daten:
21 31 00 20 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
Die Antwort des Robot erfolgt auch mit 32 Byte Daten wovon die 14 Byte nach der Startkennung (21 31 00 20) in allen Kommandos verwendet wird.
Erst nach diesem Request und Response erfolgt das eigentliche "Find" Kommando.
Diese Requests & Responses sieht man auch so immer wieder im Telegrammverkehr…
Tipp für Wireshark:
Mit "ip.addr == 192.168.xxx.yyy" einen Filter mit der Ip des Robot im Feld "Anzeigefilter" setzen
-
Hallo,
habe auch gerade meinen Mi-Robot bekommen und folgendes ist mir aufgefallen:
Wird ein "Locate my robot" (bzw. "Find") über die App gesendet erfolgt zuerst irgendein Request oder Ping mit 32 Byte Daten:
21 31 00 20 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
Die Antwort des Robot erfolgt auch mit 32 Byte Daten wovon die 14 Byte nach der Startkennung (21 31 00 20) in allen Kommandos verwendet wird.
Erst nach diesem Request und Response erfolgt das eigentliche "Find" Kommando.
Diese Requests & Responses sieht man auch so immer wieder im Telegrammverkehr…
Tipp für Wireshark:
Mit "ip.addr == 192.168.xxx.yyy" einen Filter mit der Ip des Robot im Feld "Anzeigefilter" setzen `
Ich verwende das Telegram um Online status zu checken. -
Nur mal so zur Info: ich habe meinen am 29.Januar bei Gearbest bestellt, bezahlt und es tut sich: nix. Seit Tagen steht der Status auf "Processing " und meine Nachfragen im "Ticket" dto. Ich fange langsam an, ein bisschen unruhig zu werden, ob man denen vertrauen kann…. `
Nur mal so:
Ist das Teil jetzt angekommen bei dir ?
-
Nur mal so: nein
Aber es scheint auf dem Weg zu sein. Wenn es da ist werde ich berichten. Wenn nicht: auch
-
Vorab noch einmal ein Frage in die Runde:
muss ich, um die Hex Werte mit whireshark auszulesen, tatsächlich erst bluestacks installieren?
Ich habe irgendwann schon mal mit whireshark gearbeitet. Da ich das Programm aber nicht tagtäglich verwende, erinnere ich mich noch noch rudimentär an die Funktionen. Dennoch, soweit ich mich erinnere, konnte das Programm auch andere Sender und nicht nur sich selber überwachen.
Prinzipiell müsste es doch funktionieren, wenn ich whireshark auf meinem Laptop öffne und dann den Funkverkehr zwischen dem Sender (hier z.B. das Handy oder der iPad) und dem Empfänger (hier der Xiaomi) beobachte?
Oder? Denkfehler?