Xiaomi WiFi Devices Modul (Vacuum/Airpurifier/Fan) - 72_XiaomiDevice (Support)

Begonnen von Markus M., 11 Juni 2017, 12:48:58

Vorheriges Thema - Nächstes Thema

DeeSPe

MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

no_Legend

Zitat von: M@ik am 07 Januar 2018, 10:27:26
Guten Morgen, super damit hat es geklappt. wo nun aber der Fehler war konnte ich nicht erkennen. Dazu fehlen mir wohl die Kenntnisse. Ich habe das Gerät in FHEM als genericDeviceType=Switch konfiguriert. Ist das richtig? Ich kann dann über HomeKit aber auch nur an und aus schalten oder? Die Leistung erhöhen oder verringern geht nicht? Wie sieht das mit den Zusatndsmeldungen für die Bürsten usw. aus. Das geht nur in FHEM oder auch über das mapping in Homebridge?

Vielen Dank schon einmal für eure Bemühungen.

Gruß, M@ik
Der Fehler mit dem Ausschalten war auf das letzt "/" zurück zuführen.
Da DeeSPe das Mapping aus seiner FHEM Config Datei genommen hatte.

Die ganzen Funktionen sind nur mit EVE App richtig einstellbar.
Getestet hab ich mit iOS 11.2.5 Beta 3

So ich habe mal das Mapping in die Wiki eingepflegt.
https://wiki.fhem.de/wiki/Homebridge_User_Configs
Habe auch noch etwas dran gearbeitet.
Sleeping ist nun auch als  Zustand aus, und die Anwesenheit wird nun auch richtig dargestellt.

Danke @DeeSPe für deinen Vorarbeit.

Was ich bisher nicht nicht sinnvoll drin habe ist, wenn der Staubsauger hängen bleibt und wenn er zurück in die Basis fährt.

@DeeSPe Wie geht das Mapping mit Spaces um?

@ALL
Noch ein Aufruf in eigener Sache.

Das wühlen in diesen Übermächtigen Threads um ein Funktionierendes Mapping zu finden, ist schon sehr zeit intensive.
Um es noch gehoben auszudrücken.

Hier noch mal die bitte, wer will kann diese Mappings für die Allgemeinheit gerne im Wiki eintragen.
Dazu kann man einfach einen User im Wiki beantragen.
Wem es zu viel ist, kann sein Mapping mit kurzer Beschreibung und Screenshot auch gerne an mich per PN schicken.
Pflege es dann gerne wenn zeit ist ein.

@Markus M. kannst du diesen Aufruf bitte in deinen Startpost aufnehmen?


Gruß Robert
IntelNUC mit Ubuntu mit FHEM immer aktuell,2x HMLAN, CUL443, CUL868 -homekit/siri -tablet ui -homebridge
Device, diverse:
HM-SEC-KEY,HM-LC-BL1-FM,HM-SEC-SD,HM-Sen-DB-PCB,HM-Sec-RHS,HM-Sec-SC-2,HM-WDS10-TH-O,Harmony,Netamo, 433MHz Steckdosen uvm.

DeeSPe

Das wird hier alles ganz schön homebridge-lastig und sollte hier nicht weiter diskutiert werden.

Zitat von: no_Legend am 07 Januar 2018, 12:24:27
Danke @DeeSPe für deinen Vorarbeit.

Was ich bisher nicht nicht sinnvoll drin habe ist, wenn der Staubsauger hängen bleibt und wenn er zurück in die Basis fährt.

Was zeigt er an wenn er hängen bleibt? Dann baue ich dafür noch was.


Zitat von: no_Legend am 07 Januar 2018, 12:24:27
@DeeSPe Wie geht das Mapping mit Spaces um?

Einfach durch Punkte ersetzen im RegEx.

Hab das Mapping im Wiki nochmal leicht angepasst.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

no_Legend

Zitat von: DeeSPe am 07 Januar 2018, 12:56:50
Das wird hier alles ganz schön homebridge-lastig und sollte hier nicht weiter diskutiert werden.

Was zeigt er an wenn er hängen bleibt? Dann baue ich dafür noch was.


Einfach durch Punkte ersetzen im RegEx.

Hab das Mapping im Wiki nochmal leicht angepasst.

Gruß
Dan

Das mit dem hängenbleiben kann ich momentan nicht nachschauen, mache auch kein Log beim Sauger.
Hab den Fall grad leider nicht. Sobald es wieder soweit ist, werde ich es posten.

Danke für den Tip mit .

Hab deine Änderung übernommen, funktioniert so weit bisher alles.
IntelNUC mit Ubuntu mit FHEM immer aktuell,2x HMLAN, CUL443, CUL868 -homekit/siri -tablet ui -homebridge
Device, diverse:
HM-SEC-KEY,HM-LC-BL1-FM,HM-SEC-SD,HM-Sen-DB-PCB,HM-Sec-RHS,HM-Sec-SC-2,HM-WDS10-TH-O,Harmony,Netamo, 433MHz Steckdosen uvm.

drhirn

Ich habe mir die Informationen auf http://dontvacuum.me bzw. https://github.com/dgiese/dustcloud inzwischen genauer angesehen und wäre mental bereit, meinen Staubsauger zu rooten.

Was mir aber bisher nicht ganz klar wurde: Was hab ich dann genau davon? Um den Kontakt mit China abzubrechen müsste ich ja noch - wenn ich das richtig verstanden habe - eine "Dustcloud" installieren, oder? Aber in den Papers sieht das irgendwie so aus, als ob der trotzdem noch nach China funkt. Ist das richtig?

Hat das jemand von euch schon gemacht?

Esjay

Zitat von: drhirn am 09 Januar 2018, 09:37:44
Ich habe mir die Informationen auf http://dontvacuum.me bzw. https://github.com/dgiese/dustcloud inzwischen genauer angesehen und wäre mental bereit, meinen Staubsauger zu rooten.

Was mir aber bisher nicht ganz klar wurde: Was hab ich dann genau davon? Um den Kontakt mit China abzubrechen müsste ich ja noch - wenn ich das richtig verstanden habe - eine "Dustcloud" installieren, oder? Aber in den Papers sieht das irgendwie so aus, als ob der trotzdem noch nach China funkt. Ist das richtig?

Hat das jemand von euch schon gemacht?

Hab es selber noch nicht probiert, aber vll findest du hier mehr Informationen --> http://www.roboter-forum.com/forumdisplay.php?147-Root-Bereich-(1-amp-2-Generation)

Grüße

timmmmmey

Zitat von: Esjay am 09 Januar 2018, 10:42:35
Hab es selber noch nicht probiert, aber vll findest du hier mehr Informationen --> http://www.roboter-forum.com/forumdisplay.php?147-Root-Bereich-(1-amp-2-Generation)

Grüße
Wenn du auf die App-Bedingung verzichten kannst, so kannst du auch die Kommunikation mit Hilfe der /etc/hosts Datei unterbinden. Per SSH lässt sich die Karte (mMn die einzig fehlende Info ohne App) auch direk auslesen.

drhirn

Das große Problem ist immer noch, dass das Gerät ohne Kommunikation zu Xiaomi offline geht und dann nicht mehr über FHEM zu steuern ist. Da hoffe ich noch auf eine funktionierende Implementation der "Dustcloud". Oder auf eine andere Lösung.

timmmmmey

Ich bekomme mit dem Modul leider keine Verbindung, jedoch muss ich direkt dazu sagen, dass ich das Gerät gerootet habe und die Verbindung nach China gekappt habe.
Benötigt das Modul irgend eine Verbindung zu den Mi-Servern? Den Token habe ich direkt aus dem Gerät ausgelesen. Dieser funktioniert auch wunderbar für die Python-Api, jedoch bleibt das Modul im disconnected state. Das Modul scheint den Token auch korrekt in HEX-Darstellung überführt zu haben, zumindest ist es der selbe, den ich händisch auf der Konsole erzeugt habe. Die Clientports (54321-54323) sind auf dem Gerät auch offen. Jedoch finden sich in der Logfile Fehler bzgl. der MD5-Summe. Hat sich da eventuell etwas geändert?

Firmware-Version: v11_003094

/opt/fhem/log/miio.log
...
[20180111 19:38:57] [INFO] OT protocol diagrams come...
[20180111 19:38:57] [WARNING] OT MD5 not match.


0x21 0x31 0x00 0x50 0x00 0x00 0x00 0x00 0x04 0xea 0x8b 0x19 0x00 0x00 0x28 0xba 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
...


FHEM-Log
2018.01.11 12:28:30 2: vacuum: connecting
2018.01.11 12:28:30 3: vacuum: initialized
2018.01.11 12:28:30 5: vacuum: initSend
2018.01.11 12:28:30 5: vacuum Send SUCCESS
2018.01.11 12:28:30 5: vacuum > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2018.01.11 12:28:30 5: vacuum < 213100200000000004ea8b190000263fffffffffffffffffffffffffffffffff (32)
2018.01.11 12:28:34 4: vacuum: write {"id":81,"method":"miIO.wifi_assoc_state","params":[""]} (56)
2018.01.11 12:28:34 5: vacuum: send 213100600000000004ea8b1900002643d12d255945482cbb606a966c9325b72643308e1c3fba3f490861232d3c7e048337c76de5f6cfd398ca6dbde540b97f22a58e2ae3f6137992aa1edf17133b0bb3eebf0e9940fb42a06a4d580cedb70158
2018.01.11 12:28:34 5: vacuum Send SUCCESS
2018.01.11 12:28:34 5: vacuum > 213100600000000004ea8b1900002643d12d255945482cbb606a966c9325b72643308e1c3fba3f490861232d3c7e048337c76de5f6cfd398ca6dbde540b97f22a58e2ae3f6137992aa1edf17133b0bb3eebf0e9940fb42a06a4d580cedb70158
2018.01.11 12:28:34 4: vacuum: write {"id":82,"method":"miIO.info","params":[""]} (44)
2018.01.11 12:28:34 5: vacuum: send 213100500000000004ea8b19000026432426fa6c3109133349e6320b86e9eb94421cfb6d23faac32b3a23727a7ce095240c97fe010ac6c74f2dd40a9584a02a9237431b367f9caff0d5a6333fe9f2812
2018.01.11 12:28:34 5: vacuum Send SUCCESS
2018.01.11 12:28:34 5: vacuum > 213100500000000004ea8b19000026432426fa6c3109133349e6320b86e9eb94421cfb6d23faac32b3a23727a7ce095240c97fe010ac6c74f2dd40a9584a02a9237431b367f9caff0d5a6333fe9f2812
2018.01.11 12:28:34 4: vacuum: write {"id":83,"method":"get_serial_number","params":[""]} (52)
2018.01.11 12:28:34 5: vacuum: send 213100600000000004ea8b1900002643336e9548ccf887d7e32d8feaead1e9f29eab7fddca85bea00526b1b660fd590e68eb56f86091dad32a59dca19026838a51ef9b8ff6f93590432e1b9661c964b9dc7df617a509236564d9158e933ba1f8
2018.01.11 12:28:34 5: vacuum Send SUCCESS
2018.01.11 12:28:34 5: vacuum > 213100600000000004ea8b1900002643336e9548ccf887d7e32d8feaead1e9f29eab7fddca85bea00526b1b660fd590e68eb56f86091dad32a59dca19026838a51ef9b8ff6f93590432e1b9661c964b9dc7df617a509236564d9158e933ba1f8
2018.01.11 12:28:34 4: vacuum: write {"id":84,"method":"get_timezone","params":[""]} (47)
2018.01.11 12:28:34 5: vacuum: send 213100500000000004ea8b19000026436c365f4c0326d449a4937f17b4a47b6b2dce6ce3d2305ec6f5f79d416f42b34824bd55102b1cb73fc7c94eb876a7ddf12051f4ef88e1641a2686742177ed72c0
2018.01.11 12:28:34 5: vacuum Send SUCCESS
2018.01.11 12:28:34 5: vacuum > 213100500000000004ea8b19000026436c365f4c0326d449a4937f17b4a47b6b2dce6ce3d2305ec6f5f79d416f42b34824bd55102b1cb73fc7c94eb876a7ddf12051f4ef88e1641a2686742177ed72c0
2018.01.11 12:28:37 4: vacuum: write {"id":85,"method":"get_consumable","params":[""]} (49)
2018.01.11 12:28:37 5: vacuum: send 213100600000000004ea8b1900002646f4495c98e7f252392789e135520c7a64ab8d8f44f47faf88347d4e08b12886bdb37ab3a269a8e977638e838575dc8791c2e24ce6ea03b673badd46c7058cb2bbb104b12e5bbc415fa36829352bcd1d51
2018.01.11 12:28:37 5: vacuum Send SUCCESS
2018.01.11 12:28:37 5: vacuum > 213100600000000004ea8b1900002646f4495c98e7f252392789e135520c7a64ab8d8f44f47faf88347d4e08b12886bdb37ab3a269a8e977638e838575dc8791c2e24ce6ea03b673badd46c7058cb2bbb104b12e5bbc415fa36829352bcd1d51
2018.01.11 12:28:37 4: vacuum: write {"id":86,"method":"get_clean_summary","params":[""]} (52)
2018.01.11 12:28:37 5: vacuum: send 213100600000000004ea8b19000026464b3f98c493a4a5746070a0154b9a38431aba773151f0cb823046275db2887c581b35df80d06fd57f276b0a6c8994889a4de829d8ed9441b77e1d467750cfddb396c007cf3af6657a3cd49439c45836c6
2018.01.11 12:28:37 5: vacuum Send SUCCESS
2018.01.11 12:28:37 5: vacuum > 213100600000000004ea8b19000026464b3f98c493a4a5746070a0154b9a38431aba773151f0cb823046275db2887c581b35df80d06fd57f276b0a6c8994889a4de829d8ed9441b77e1d467750cfddb396c007cf3af6657a3cd49439c45836c6
2018.01.11 12:28:37 4: vacuum: write {"id":87,"method":"get_dnd_timer","params":[""]} (48)
2018.01.11 12:28:37 5: vacuum: send 213100600000000004ea8b1900002646aea95f02b0e373a97f5d156ee8c76156460434e179cd0adb8a32089b6a795d6c95701e09706bcca5729fca7d6f2887007d145e2d4c8826d852566bee1ef09209505c240358cb0704067dd5d442176aac
2018.01.11 12:28:37 5: vacuum Send SUCCESS
2018.01.11 12:28:37 5: vacuum > 213100600000000004ea8b1900002646aea95f02b0e373a97f5d156ee8c76156460434e179cd0adb8a32089b6a795d6c95701e09706bcca5729fca7d6f2887007d145e2d4c8826d852566bee1ef09209505c240358cb0704067dd5d442176aac
2018.01.11 12:28:37 4: vacuum: write {"id":88,"method":"get_timer","params":[""]} (44)
2018.01.11 12:28:37 5: vacuum: send 213100500000000004ea8b1900002646dac00036136ec66364ad9aaeb7b7d549001a399ceb99cb869fe04a185e2023567e8252bd6bed8d5c209f864f8c101a47cdd0310b20e6c58a6a34361ab54dac95
2018.01.11 12:28:37 5: vacuum Send SUCCESS
2018.01.11 12:28:37 5: vacuum > 213100500000000004ea8b1900002646dac00036136ec66364ad9aaeb7b7d549001a399ceb99cb869fe04a185e2023567e8252bd6bed8d5c209f864f8c101a47cdd0310b20e6c58a6a34361ab54dac95

drhirn

Genau das Problem, dass ich oben erwähnt habe. Ich habe in der Firewall derzeit folgende Konfiguration:


  • ALLOW:Port 443:54.222.0.0/15
  • ALLOW:Port 80:58.83.128.0/18
  • ALLOW:Port 442:52.80.0.0/16

Alles andere ist geblockt.

Mit der Konfiguration (die sicher noch zu optimieren ist, die Ranges sind groß), geht der Roboter ca. 8x am Tag ganz kurz offline, ist danach aber gleich wieder da.

mark79

Ich habe meinen auch gerootet und im Router die Verbindung vom Robi nach außen hin geblockt (Fritzbox Internetzugang > gesperrt).
Das steuern über Fhem klappt trotzdem noch bei mir, ohne irgendwelche Freigaben.

Was nur nicht ging, als ich mit der Doustcloud herumgespielt habe, bzw. versucht habe diese einzurichten und im Robi die /etc/hosts Datei geändert hatte:

192.168.2.41   ot.io.mi.com
192.168.2.41   ott.io.mi.com

Danach stand der Robi die ganze Zeit über auf disconnected in Fhem und lies sich nicht mehr Verbinden.
Nachdem ich die Einträge in der /etc/hosts wieder entfernt hatte, ging es wieder.
Rock64 4GB mit Debian Strech, FHEM im LXC, Sonoff Switches/Touch, HM Thermostate, HMUART/Zigbee2MQTT@MapleCUN, ESP RGBWW Wifi Controller, ESP8266 Door Sensor/Briefkastenwächter, BT CSL Stick, BT iTags, Alexa, FireTV, RPi2 mit Kodi, Xiaomi Vacuum v1/Smarthome Komponenten

drhirn

Zitat von: mark79 am 11 Januar 2018, 13:53:40
Was nur nicht ging, als ich mit der Doustcloud herumgespielt habe, bzw. versucht habe diese einzurichten und im Robi die /etc/hosts Datei geändert hatte:

192.168.2.41   ot.io.mi.com
192.168.2.41   ott.io.mi.com

Danach stand der Robi die ganze Zeit über auf disconnected in Fhem und lies nicht mehr Verbinden.
Nachdem ich die Einträge in der /etc/hosts wieder entfernt hatte, ging es wieder.


Ja, bei mir leider auch. Aber ich hab auch genau den selben Effekt, wenn ich den Roboter in der Firewall komplett blocke.
Wobei witzigerweise ot.io.mi.com und ott.io.mi.com nicht in meinen Allow-Regeln vorkommen. Also irgendwie komisch, dass es bei mir funktioniert.

mark79

Zitat von: drhirn am 11 Januar 2018, 13:58:45
Ja, bei mir leider auch. Aber ich hab auch genau den selben Effekt, wenn ich den Roboter in der Firewall komplett blocke.
Wobei witzigerweise ot.io.mi.com und ott.io.mi.com nicht in meinen Allow-Regeln vorkommen. Also irgendwie komisch, dass es bei mir funktioniert.
Das habe ich auch schon von anderen gelesen, aus dem roboter-forum, das bei denen dann python-miio nicht mehr funktioniert.

Keine Ahnung warum das bei mir geht... Hast du eine Fritzbox und hast es so wie ich gesperrt?

Wenn ich vom Robo aus z.B. Google anpinge, dann krieg ich das hier:
root@rockrobo:/opt/rockrobo/logs# ping google.de
PING google.de (216.58.206.3) 56(84) bytes of data.
From xxx.dip0.t-ipconnect.de (93.203.xxx.xxx) icmp_seq=1 Packet filtered
From xxx.dip0.t-ipconnect.de (93.203.xxx.xxx) icmp_seq=2 Packet filtered
From xxx.dip0.t-ipconnect.de (93.203.xxx.xxx) icmp_seq=3 Packet filtered


Wenn du es bei dir machst, was kriegst du da als Antwort? Ein Timeout?
Rock64 4GB mit Debian Strech, FHEM im LXC, Sonoff Switches/Touch, HM Thermostate, HMUART/Zigbee2MQTT@MapleCUN, ESP RGBWW Wifi Controller, ESP8266 Door Sensor/Briefkastenwächter, BT CSL Stick, BT iTags, Alexa, FireTV, RPi2 mit Kodi, Xiaomi Vacuum v1/Smarthome Komponenten

drhirn

Zitat von: mark79 am 11 Januar 2018, 14:05:46
Wenn du es bei dir machst, was kriegst du da als Antwort? Ein Timeout?

Ähhhhm ... ich bekomm da eine funktionierende Antwort ...
Das ist jetzt schräg! Ich geh nochmal meine Einstellungen durch.

timmmmmey

Zitat von: drhirn am 11 Januar 2018, 13:58:45
Ja, bei mir leider auch. Aber ich hab auch genau den selben Effekt, wenn ich den Roboter in der Firewall komplett blocke.
Wobei witzigerweise ot.io.mi.com und ott.io.mi.com nicht in meinen Allow-Regeln vorkommen. Also irgendwie komisch, dass es bei mir funktioniert.

App/FHEM + Offline scheint derzeit nicht zu gehen, sobald das WLAN eingerichtet ist. Ein Github-User bastelt gerade an einem Ersatz für den Client auf dem Roboter -> https://github.com/dgiese/dustcloud/issues/15 . Hoffe mal ich kann das die Tage mal testen :)