NEWS
[Frage] Xiaomi Vacuum cleaner
-
Ok. Dann ist das Problem endlich gelöst. Bezüglich des Adapters müssen wir die alte main.js nehmen. Werde das am Wochenende in die Hand nehmen.
Danke, dass Du Dein Problem lösen konntest und das hier mitgeteilt hast.
-
Das war der FÜNFHUNDERTSTE Beitrag in dieser Angelegenheit!
-
und etwas OT… meiner scheint sich von China aus nach hier per Fuss zu bewegen...
Gearbeast
Bestellung 18.03.
Zum Versand 29.03.
noch nicht im Verteilzentrum
Geduld ist eine Tugend
-
Kannst Du hier und diesem Thread verfolgen wie das bei mir war. Hat fast 6 Wochen gedauert. Aber dann war er da!
Im Tracking war er bei mir auch nur bis England gekommen. Dann Pause. Und plötzlich nach 2-3 Wochen tauchte er bei DHL auf…
-
Anleitung mit der Flole-App:
Nachdem nun auch bei mir der Adapter funktioniert (es war auch die main.js falsch) möchte ich für diejenigen, die
eine Installation unter Zuhilfenahme der Flole Android App durführen wollen eine kurze Beschreibung anbieten:
1.) Adapter installieren:
In der Adaperseite von ioBroker "Installieren aus eigenem URL" wählen und "https://github.com/ioBroker/ioBroker.mi … arball/dev" eingeben.
Nach der Installation des Adapters die main.js im Ordner /iobroker/node_modules/iobroker.mihome-vacuum gegen die Version vom 17.3. austauschen.
Der Dateiname muss noch geändert werden!2.) Installation und ausführen der Flole App
Download von: https://xiaomi.flole.de/latest.apk
(Zur Installation muss vorher die Installation aus unsicheren Quellen zugelassen werden)
Ich habe ein ausrangiertes Android-Handy verwendet (die App kann dann wieder gelöscht werden)
Die Verwendung ist innerhalb der App genau beschrieben. (Robi muss wieder in den Auslieferungszustand versetzt werden, damit er ein eigens WLAN-Netzwerk aufbauen kann)
Wenn die Verbindung mit der App erfolgreich war, kann der Robi wieder mit der Original-App gekoppelt werden und mit dem Hauseigenen WLAN-Netz verbunden werden.
Danach muss man noch z.B. im WLAN-router die IP-Adresse ermitteln.
3.) Export des Tokens
In der Flole App kann nach der restlichen Konfiguration (eingabe der IP-Adresse) (geht vielleicht auch ohne Eingabe) die Einstellung exportiert werden.
Dazu im Menü den entsprechenden Punkt wählen - es gibt die Möglichkeiten SD-Karte oder Google Drive.
Ergebniss ist die Datei "RobotConfig" die folgendermaßen aussieht:
[{"c":"192.168.0.31","f":"Mi Vacuum","e":"6a355a686f4b7145746144416767707a","g":0,"d":55384739}]
wobei````
6a355a686f4b7145746144416767707aDieser und die IP kann nun in den Adapter eingtragen werden. Hoffe es glingt damit dem einen aoder anderen etwas früher das Teil zum laufen zu bekommen. Die 2\. Möglichkeit den Token am PC zu ergattern wurde ja bereits ausfühlich beschrieben. Ich möchte mich hier nur nochmals für die tolle Arbeit bei den Entwicklern dieses Adapters und der App bedanken
-
Muss man denn den Punkt 2 unbedigt ausführen?
Bis jetzt habe ich noch keine Handy-App installiert.
Ich setzte mit folgendem Befehl das Wlan für den Robo (Testumgebung ohne iobroker):
"method":"miIO.config_router","params":{"country_domain":"sg","ssid":"' + this._Wifi_SSIS + '","uid":' + this._XiaomiUid + ',"gmt_offset":3600,"passwd":"' + this._Wifi_PW + '"}
Wobei ich hier die uid 0 genommen habe.
Der Robo bekommt auch eine IP vom Router und ist verbunden.
Dann funktionieren aber die anderen Befehle nicht mehr.
-
Meines wissens gibt es zur Zeit 2 Möglichkeiten an den Token zu kommen:
1.) mittels Packet Sender:
` > Token Vorgehen:1. Um den Token des Roboters zu bekommen, muss man ihn erstmal aus dem Wlan abmelden.
Dies geht entweder über die app unter den Einstellungen des Gerätes
(genauer kann ich es nicht beschreiben weil ich kein Chinesisch kann).
Da steht Remove Device, über diesen Punkt kann man das Gerät Entfernen
Alternativ kann man auch den Resetknopf am Gerät drücken.
2. Nun verbindet man sich mit seinem Windows Rechner mit dem Wlan des Roboters
Wlan: rockrobo…
3. Programm Packet Sender
Bei HEX gibt man die folgende Nachricht ein:
21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
(=HALO Nachricht)
4. IP Vacuum 192.168.8.1, Port 54321, Nachrichtentyp UDP
5. Packet senden.
Fenster unten: a) gesetzte Nachricht
b) darüber die Antwort von dem Roboter
6. die letzten 16 Byte der Token `
oder
2.) mittels App
Den Token gibt der Robi nur preis wenn er sein eigenes Netzwerk aufgebaut hat.
-
Ja genau, den Token bekomme ich ja wenn ich die HELO Nachricht nach einem Reset des Robo sende.
Also beide Tasten des Robo gleichzeitig für 3 Sekunden drücken.
Mit diesem Token kann ich den Robo sogar in seinem WLAN steuern.
Mit diesem Token sende ich dann die Nachricht um den Robo in mein Netzt einzubuchen.
Funktioniert auch.
Doch die Steuerung funktioniert danach nicht mehr.
Ich habe den Verdacht, dass dem Robo noch irgend etwas fehlt, wenn er in das neue WLAn eingebucht wird.
-
habe heute die Stimme geändert und mitgeschnitten, sehr interessant, es wird eine url übergeben und der roberter installiert sie, bekomme die .pkg datei jedoch leider nicht entpackt, wäre ja der super wenn man ihm Deutsch beibringen kann oder noch geiler ausgabe von sayit….
2949;{"id":2949,"method":"get_consumable","params":[]} 2949;{ "result": [ { "main_brush_work_time": 231100, "side_brush_work_time": 231100, "filter_work_time": 231100, "sensor_dirty_time": 64935 } ], "id": 2949 } 2950;{"id":2950,"method":"get_log_upload_status","params":[]} 2950;{ "result": [ { "log_upload_status": 7 } ], "id": 2950 } 2951;{"id":2951,"method":"get_status","params":[]} 2951;{ "result": [ { "msg_ver": 4, "msg_seq": 63, "state": 8, "battery": 87, "clean_time": 37, "clean_area": 500000, "error_code": 0, "map_present": 0, "in_cleaning": 0, "fan_power": 40, "dnd_enabled": 0 } ], "id": 2951 } 2952;{"id":2952,"method":"get_map_v1","params":[]} 2952;{ "result": [ "retry" ], "id": 2952 } 2953;{"id":2953,"method":"get_status","params":[]} 2953;{ "result": [ { "msg_ver": 4, "msg_seq": 64, "state": 8, "battery": 87, "clean_time": 37, "clean_area": 500000, "error_code": 0, "map_present": 0, "in_cleaning": 0, "fan_power": 40, "dnd_enabled": 0 } ], "id": 2953 } 2954;{"id":2954,"method":"get_map_v1","params":[]} 2954;{ "result": [ "roboroommap%2F49417615%2F1" ], "id": 2954 } 2955;{"id":2955,"method":"get_consumable","params":[]} 2955;{ "result": [ { "main_brush_work_time": 231100, "side_brush_work_time": 231100, "filter_work_time": 231100, "sensor_dirty_time": 64935 } ], "id": 2955 } 2956;{"id":2956,"method":"get_consumable","params":[]} 2956;{ "result": [ { "main_brush_work_time": 231100, "side_brush_work_time": 231100, "filter_work_time": 231100, "sensor_dirty_time": 64935 } ], "id": 2956 } 2957;{"id":2957,"method":"get_consumable","params":[]} 2957;{ "result": [ { "main_brush_work_time": 231100, "side_brush_work_time": 231100, "filter_work_time": 231100, "sensor_dirty_time": 64935 } ], "id": 2957 } 2958;{"id":2958,"method":"get_clean_summary","params":[]} 2958;{ "result": [ 230955, 3236905000, 109, [ 1490832000, 1490745600 ] ], "id": 2958 } 2959;{"id":2959,"method":"get_clean_record","params":[1490832000]} 2959;{ "result": [ [ 1490878946, 1490879021, 37, 500000, 0, 0 ] ], "id": 2959 } 2960;{"id":2960,"method":"get_clean_record","params":[1490745600]} 2960;{ "result": [ [ 1490775760, 1490777787, 33, 462500, 0, 0 ], [ 1490775514, 1490775580, 25, 230000, 0, 0 ] ], "id": 2960 } 2961;{"id":2961,"method":"get_consumable","params":[]} 2961;{ "result": [ { "main_brush_work_time": 231100, "side_brush_work_time": 231100, "filter_work_time": 231100, "sensor_dirty_time": 64935 } ], "id": 2961 } 2962;{"id":2962,"method":"get_status","params":[]} 2962;{ "result": [ { "msg_ver": 4, "msg_seq": 65, "state": 8, "battery": 87, "clean_time": 37, "clean_area": 500000, "error_code": 0, "map_present": 0, "in_cleaning": 0, "fan_power": 40, "dnd_enabled": 0 } ], "id": 2962 } 2963;{"id":2963,"method":"app_rc_end","params":[{"seqnum":0}]} 2963;{ "result": 0, "id": 2963 } 2964;{"id":2964,"method":"get_consumable","params":[]} 2964;{ "result": [ { "main_brush_work_time": 231100, "side_brush_work_time": 231100, "filter_work_time": 231100, "sensor_dirty_time": 64935 } ], "id": 2964 } 2965;{"id":2965,"method":"get_log_upload_status","params":[]} 2965;{ "result": [ { "log_upload_status": 7 } ], "id": 2965 } 2966;{"id":2966,"method":"get_consumable","params":[]} 2966;{ "result": [ { "main_brush_work_time": 231100, "side_brush_work_time": 231100, "filter_work_time": 231100, "sensor_dirty_time": 64935 } ], "id": 2966 } 2967;{"id":2967,"method":"get_current_sound","params":[]} 2967;{ "result": [ { "sid_in_use": 1, "sid_in_progress": 0 } ], "id": 2967 } 2968;{"id":2968,"method":"get_current_sound","params":[]} 2968;{ "result": [ { "sid_in_use": 1, "sid_in_progress": 0 } ], "id": 2968 } 2969;{"id":2969,"method":"get_current_sound","params":[]} 2969;{ "result": [ { "sid_in_use": 1, "sid_in_progress": 0 } ], "id": 2969 } 2970;{"id":2970,"method":"get_current_sound","params":[]} 2970;{ "result": [ { "sid_in_use": 1, "sid_in_progress": 0 } ], "id": 2970 } 2971;{"id":2971,"method":"get_current_sound","params":[]} 2971;{ "result": [ { "sid_in_use": 1, "sid_in_progress": 0 } ], "id": 2971 } 2972;{"id":2972,"method":"get_current_sound","params":[]} 2972;{ "result": [ { "sid_in_use": 1, "sid_in_progress": 0 } ], "id": 2972 } 2973;{"id":2973,"method":"get_current_sound","params":[]} 2973;{ "result": [ { "sid_in_use": 1, "sid_in_progress": 0 } ], "id": 2973 } 2974;{"id":2974,"method":"dnld_install_sound","params":{"md5":"29a0efef2c2d40d3a9bb66c3441858ad","sid":1005,"url":"https:\/\/awsbj0.fds.api.xiaomi.com\/app\/voice-pkg\/package\/transformer.pkg"}} 2974;{ "result": [ { "progress": 0, "state": 0, "error": 0 } ], "id": 2974 } 2975;{"id":2975,"method":"get_sound_progress","params":[]} 2975;{ "result": [ { "sid_in_progress": 1005, "progress": 0, "state": 1, "error": 0 } ], "id": 2975 } 2976;{"id":2976,"method":"get_sound_progress","params":[]} 2976;{ "result": [ { "sid_in_progress": 1005, "progress": 0, "state": 1, "error": 0 } ], "id": 2976 } 2977;{"id":2977,"method":"get_sound_progress","params":[]} 2977;{ "result": [ { "sid_in_progress": 1005, "progress": 0, "state": 1, "error": 0 } ], "id": 2977 } 2978;{"id":2978,"method":"get_sound_progress","params":[]} 2978;{ "result": [ { "sid_in_progress": 1005, "progress": 2, "state": 1, "error": 0 } ], "id": 2978 } 2979;{"id":2979,"method":"get_sound_progress","params":[]} 2979;{ "result": [ { "sid_in_progress": 1005, "progress": 8, "state": 1, "error": 0 } ], "id": 2979 } 2980;{"id":2980,"method":"get_sound_progress","params":[]} 2980;{ "result": [ { "sid_in_progress": 1005, "progress": 15, "state": 1, "error": 0 } ], "id": 2980 } 2981;{"id":2981,"method":"get_sound_progress","params":[]} 2981;{ "result": [ { "sid_in_progress": 1005, "progress": 23, "state": 1, "error": 0 } ], "id": 2981 } 2982;{"id":2982,"method":"get_sound_progress","params":[]} 2982;{ "result": [ { "sid_in_progress": 1005, "progress": 36, "state": 1, "error": 0 } ], "id": 2982 } 2983;{"id":2983,"method":"get_sound_progress","params":[]} 2983;{ "result": [ { "sid_in_progress": 1005, "progress": 47, "state": 1, "error": 0 } ], "id": 2983 } 2984;{"id":2984,"method":"get_sound_progress","params":[]} 2984;{ "result": [ { "sid_in_progress": 1005, "progress": 62, "state": 1, "error": 0 } ], "id": 2984 } 2985;{"id":2985,"method":"get_sound_progress","params":[]} 2985;{ "result": [ { "sid_in_progress": 1005, "progress": 81, "state": 1, "error": 0 } ], "id": 2985 } 2986;{"id":2986,"method":"get_sound_progress","params":[]} 2986;{ "result": [ { "sid_in_progress": 1005, "progress": 100, "state": 2, "error": 0 } ], "id": 2986 } 2987;{"id":2987,"method":"get_sound_progress","params":[]} 2987;{ "result": [ { "sid_in_progress": 1005, "progress": 100, "state": 2, "error": 0 } ], "id": 2987 } 2988;{"id":2988,"method":"get_sound_progress","params":[]} 2988;{ "result": [ { "sid_in_progress": 1005, "progress": 100, "state": 2, "error": 0 } ], "id": 2988 } 2989;{"id":2989,"method":"get_sound_progress","params":[]} 2989;{ "result": [ { "sid_in_progress": 0, "progress": 100, "state": 3, "error": 0 } ], "id": 2989 } 2990;{"id":2990,"method":"get_current_sound","params":[]} 2990;{ "result": [ { "sid_in_use": 1005, "sid_in_progress": 0 } ], "id": 2990 } 2991;{"id":2991,"method":"get_current_sound","params":[]} 2991;{ "result": [ { "sid_in_use": 1005, "sid_in_progress": 0 } ], "id": 2991 } 2992;{"id":2992,"method":"get_current_sound","params":[]} 2992;{ "result": [ { "sid_in_use": 1005, "sid_in_progress": 0 } ], "id": 2992 } 2993;{"id":2993,"method":"get_current_sound","params":[]} 2993;{ "result": [ { "sid_in_use": 1005, "sid_in_progress": 0 } ], "id": 2993 } 2994;{"id":2994,"method":"get_current_sound","params":[]} 2994;{ "result": [ { "sid_in_use": 1005, "sid_in_progress": 0 } ], "id": 2994 } 2995;{"id":2995,"method":"get_current_sound","params":[]} 2995;{ "result": [ { "sid_in_use": 1005, "sid_in_progress": 0 } ], "id": 2995 } 2996;{"id":2996,"method":"get_current_sound","params":[]} 2996;{ "result": [ { "sid_in_use": 1005, "sid_in_progress": 0 } ], "id": 2996 } 2997;{"id":2997,"method":"get_current_sound","params":[]} 2997;{ "result": [ { "sid_in_use": 1005, "sid_in_progress": 0 } ], "id": 2997 } 2998;{"id":2998,"method":"get_current_sound","params":[]} 2998;{ "result": [ { "sid_in_use": 1005, "sid_in_progress": 0 } ], "id": 2998 } 2999;{"id":2999,"method":"get_current_sound","params":[]} 2999;{ "result": [ { "sid_in_use": 1005, "sid_in_progress": 0 } ], "id": 2999 } 3000;{"id":3000,"method":"get_current_sound","params":[]} 3000;{ "result": [ { "sid_in_use": 1005, "sid_in_progress": 0 } ], "id": 3000 } 3001;{"id":3001,"method":"get_current_sound","params":[]} 3001;{ "result": [ { "sid_in_use": 1005, "sid_in_progress": 0 } ], "id": 3001 } 3002;{"id":3002,"method":"get_current_sound","params":[]} 3002;{ "result": [ { "sid_in_use": 1005, "sid_in_progress": 0 } ], "id": 3002 } 3003;{"id":3003,"method":"get_current_sound","params":[]} 3003;{ "result": [ { "sid_in_use": 1005, "sid_in_progress": 0 } ], "id": 3003 } 3004;{"id":3004,"method":"get_current_sound","params":[]} 3004;{ "result": [ { "sid_in_use": 1005, "sid_in_progress": 0 } ], "id": 3004 } 3005;{"id":3005,"method":"get_current_sound","params":[]} 3005;{ "result": [ { "sid_in_use": 1005, "sid_in_progress": 0 } ], "id": 3005 } 3006;{"id":3006,"method":"get_current_sound","params":[]} 3006;{ "result": [ { "sid_in_use": 1005, "sid_in_progress": 0 } ], "id": 3006 } 3007;{"id":3007,"method":"get_current_sound","params":[]} 3007;{ "result": [ { "sid_in_use": 1005, "sid_in_progress": 0 } ], "id": 3007 } 3008;{"id":3008,"method":"get_current_sound","params":[]} 3008;{ "result": [ { "sid_in_use": 1005, "sid_in_progress": 0 } ], "id": 3008 }
-
Interessant sind auch die Statusmeldungen über Akku, Filter, …
Wäre super wenn die im Adapter abgreifbar wären...
Wie hast du das mitgeschnitten ?Wireshark?
-
Interessant sind auch die Statusmeldungen über Akku, Filter, …
Wäre super wenn die im Adapter abgreifbar wären...
Wie hast du das mitgeschnitten ?Wireshark? `
ja über Wireshark und dann hab ich mir aus dem XPN pythonscript einen File Übersetzer gemacht, damit nicht alles einzeln übersetzt werden muss.
Gut das du das ansprichst, ich habe gerade vor einer Minute einen Pull request mit den Änderungen, wo Die States alle mit eingebunden sind auf Github gestartet. Wobei ich dazusagen muss, dass ich vorher noch nix mit Github zu tun hatte und hoffe, dass ich das alles richtig gemacht habe. Mal abwarten
Fals du es nciht abwarten kannst:
https://github.com/MeisterTR/ioBroker.m … e/mehr_obj
Die Dateien (main, mihomepacket, und io-package) unter Node Module ersetzten
-
habs gerade getestet - leider keine neune Objekte gefunden.
Werden die Datenpunkte automatisch angelegt?
(Adapter wurde natürlich neu gestartet und die Objektliste akualisiert)
-
Einmal aus Instanzen deinstallieren und über Admin Seite neu installieren. Dann geht's. Die werden beim installieren angelegt
Gesendet von meinem E5823 mit Tapatalk
-
Also mit dem neuen Link hats nicht geklappt.
Aber warte noch - bin noch am testen…
1904_unbenannt.jpg -
Du brauchst das nicht laden. Das klappt nicht. Einfach die Dateien im Ordner tauschen und dann im Admin bei dem Adapter auf installieren. Dann hat er sie Änderungen mit drin.
Gesendet von meinem E5823 mit Tapatalk
-
Sehr geil
Tausend Dank - funktioniert!
1904_unbenannt.jpg -
Einmal aus Instanzen deinstallieren und über Admin Seite neu installieren. Dann geht's. Die werden beim installieren angelegt `
Habe soeben die Version 0.3.0 eingespielt und sie funktioniert perfekt! Sehr genial mit den zusätzlichen Daten :mrgreen:
Vielen Dank!
-
Hallo Zusammen,
war bisher nur stiller Leser, der bisher immer eine Antwort im Forum gefunden hat, jedoch komme ich jetzt nicht mehr weiter.
Ich habe 2 dieser tollen Sauger in Betrieb, und wollte diese jetzt in iobroker einbinden.
Einer funktioniert, wenn ich den zweiten dazu nehme funktioniert es nicht ( nur der erste ). Umgekehrt genauso. D.h. beide Token i.O.
Eine Instanz ist grün, die andere rot ( bleibt rot )
Hat jemand ne Idee?
Hier das Log:
2522_2017-04-08_164529.jpg -
Leider geht bei mir Version 0.3.0 nicht.
Der Adapter zeigt grün an, es werden die neuen Datenpunkte nicht befüllt,
und der Sauger lässt sich auch nicht steuern.
Log Auszug dazu : * mihome-vacuum.0 2017-04-08 21:10:16.900 info Connected
mihome-vacuum.0 2017-04-08 21:10:14.701 info starting. Version 0.3.0 in C:/ioBroker/node_modules/iobroker.mihome-vacuum, node: v6.10.0 host.Hasi-AK 2017-04-08 21:10:11.089 info instance system.adapter.mihome-vacuum.0 started with pid 2176 host.Hasi-AK 2017-04-08 21:10:08.609 info instance system.adapter.mihome-vacuum.0 terminated with code null () host.Hasi-AK 2017-04-08 21:10:08.609 warn instance system.adapter.mihome-vacuum.0 terminated due to SIGTERM host.Hasi-AK 2017-04-08 21:10:08.556 info stopInstance system.adapter.mihome-vacuum.0 killing pid 11624 host.Hasi-AK 2017-04-08 21:10:08.555 info stopInstance system.adapter.mihome-vacuum.0 host.Hasi-AK 2017-04-08 21:10:08.552 info object change system.adapter.mihome-vacuum.0
Wie erwähnt, funktionierte die Main.js vom 17.03.2017 auf Windows10 hervorragend.
-
Hallo Zusammen,
war bisher nur stiller Leser, der bisher immer eine Antwort im Forum gefunden hat, jedoch komme ich jetzt nicht mehr weiter.
Ich habe 2 dieser tollen Sauger in Betrieb, und wollte diese jetzt in iobroker einbinden.
Einer funktioniert, wenn ich den zweiten dazu nehme funktioniert es nicht ( nur der erste ). Umgekehrt genauso. D.h. beide Token i.O.
Eine Instanz ist grün, die andere rot ( bleibt rot )
Hat jemand ne Idee?
Hier das Log: `
Eigener Port bei einer Instanz ändern.