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

chaot4ever

Hallo
Habe soeben erfolgreich den Xiaomi Humidifier eingerichtet mit den attr subType Humidifier, attr stateFormat state und erhalte bei den Internals STATE state und bei device_type unknown.
Somit erkennt man nicht ob er eingeschaltet ist und auch die eingegebenen Timer-Schaltzeiten werden nicht angezeigt.
Zudem zeigt das Log folgende Fehler:
Zitat2018.02.11 12:28:39 1: PERL WARNING: Subroutine XiaomiDevice_Define redefined at /opt/fhem/FHEM/72_XiaomiDevice.pm line 106.
2018.02.11 12:28:39 1: PERL WARNING: Subroutine XiaomiDevice_Undefine redefined at /opt/fhem/FHEM/72_XiaomiDevice.pm line 270.
2018.02.11 12:28:39 1: PERL WARNING: Subroutine XiaomiDevice_Get redefined at /opt/fhem/FHEM/72_XiaomiDevice.pm line 281.
2018.02.11 12:28:39 1: PERL WARNING: Subroutine XiaomiDevice_Set redefined at /opt/fhem/FHEM/72_XiaomiDevice.pm line 475.
2018.02.11 12:28:39 1: PERL WARNING: Subroutine XiaomiDevice_Init redefined at /opt/fhem/FHEM/72_XiaomiDevice.pm line 1264.
2018.02.11 12:28:39 1: PERL WARNING: Subroutine XiaomiDevice_GetUpdate redefined at /opt/fhem/FHEM/72_XiaomiDevice.pm line 1286.
2018.02.11 12:28:39 1: PERL WARNING: Subroutine XiaomiDevice_GetSettings redefined at /opt/fhem/FHEM/72_XiaomiDevice.pm line 1359.
2018.02.11 12:28:39 1: PERL WARNING: Subroutine XiaomiDevice_GetDeviceDetails redefined at /opt/fhem/FHEM/72_XiaomiDevice.pm line 1442.
2018.02.11 12:28:39 1: PERL WARNING: Subroutine XiaomiDevice_GetSpeed redefined at /opt/fhem/FHEM/72_XiaomiDevice.pm line 1480.
2018.02.11 12:28:39 1: PERL WARNING: Subroutine XiaomiDevice_GetDnd redefined at /opt/fhem/FHEM/72_XiaomiDevice.pm line 1525.
2018.02.11 12:28:39 1: PERL WARNING: Subroutine XiaomiDevice_WriteJSON redefined at /opt/fhem/FHEM/72_XiaomiDevice.pm line 1540.
2018.02.11 12:28:39 1: PERL WARNING: Subroutine XiaomiDevice_ParseJSON redefined at /opt/fhem/FHEM/72_XiaomiDevice.pm line 1593.
2018.02.11 12:28:39 1: PERL WARNING: Subroutine XiaomiDevice_connect redefined at /opt/fhem/FHEM/72_XiaomiDevice.pm line 2254.
2018.02.11 12:28:39 1: PERL WARNING: Subroutine XiaomiDevice_disconnect redefined at /opt/fhem/FHEM/72_XiaomiDevice.pm line 2303.
2018.02.11 12:28:39 1: PERL WARNING: Subroutine XiaomiDevice_initSend redefined at /opt/fhem/FHEM/72_XiaomiDevice.pm line 2323.
2018.02.11 12:28:39 1: PERL WARNING: Subroutine XiaomiDevice_connectFail redefined at /opt/fhem/FHEM/72_XiaomiDevice.pm line 2337.
2018.02.11 12:28:39 1: PERL WARNING: Subroutine XiaomiDevice_Read redefined at /opt/fhem/FHEM/72_XiaomiDevice.pm line 2353.
2018.02.11 12:28:39 1: PERL WARNING: Subroutine XiaomiDevice_Write redefined at /opt/fhem/FHEM/72_XiaomiDevice.pm line 2466.
2018.02.11 12:28:39 1: PERL WARNING: Subroutine XiaomiDevice_Attr redefined at /opt/fhem/FHEM/72_XiaomiDevice.pm line 2499.
2018.02.11 12:28:39 1: PERL WARNING: Subroutine XiaomiDevice_DbLog_splitFn redefined at /opt/fhem/FHEM/72_XiaomiDevice.pm line 2528.

Die Änderung von attr stateFormat state auf attr stateFormat power löst das Anzeigeproblem, aber device_type bleibt unknown und der Timer ist unerreichbar.

bart0190

Zitat von: bart0190 am 11 Februar 2018, 08:08:59
Hallo,
Bitte um Hilfe zum Auslesen des Tokens von meinem Xiaomi Mi Staubsaugerroboter 1. Generation und damit Einbindung in FHEM.
Für das Resultat bzw. die Frage bitte ab dem letzten Punkt lesen.

Folgendes habe ich gemacht:

  • Roboter Token mit Flolevac App ausgelesen (Verbinden mit Robo WLAN)
  • Neueste MiHome App (5.1.xxx) installiert und Roboter eingerichtet (Anmelden, Verbinden mit Robo WLAN, Flolevac App gekillt, MiHome App gekillt weil Roboter nicht gefunden, normales WLAN, Anmelden in MiHome, Robo WLAN, Roboter gefunden)
  • Update auf Roboter FW 3.3.9.003094
  • FHEM Einrichten laut Wiki https://wiki.fhem.de/wiki/Mi_vacuum . Ach ja, für den Download von 72_XiaomiDevice.pm (auf der 1. Seite) muss man angemeldet sein.
  • Roboter immer disconnected. Bin dann später über andere und dieses Forum/Thread draufgekommen, dass das mit der Flolevac App keinen korrekten Token mehr ausgibt bzw. es von der FW Version abhängen kann
  • Werksreset am Roboter (Hometaste halten und kurz auf Reset mit Kugelschreiber), 2 min warten bis der Roboter wieder ruhiger blinkt
  • Jetzt habe ich FW 3.3.9.003088
  • Trotzdem nochmal mit Flolevac App Token ausgelesen, klappt in FHEM wieder nicht
  • Dann hab ich MiHome App deinstalliert und version MiHome 4.2.0 via apk auf meinem Samsung Galaxy S5 neo, Android 5.1.1
  • /data/data/com.xiaomi.smarthome/databases/miio2.db finde ich nirgends
  • MiToolkit 1.6 am Laptop installiert. USB Debugging eingeschaltet, USB Verbindungsmode auf Kamera (PTP) gestellt. Bringt aber immer nur leeres Backup
  • Mein altes Samsung Galaxy S3 rausgekramt, Android 4.3, MiHome V5.0.1 über apk installiert. MiToolkit veruracht hier wenigstens, dass ich am Hany eine Abfrage bekomme, aber sonst wieder gleich leeres Backup.
  • Die .dll's in den adb Foldern von MiToolkit ausgetauscht. (weiß nicht mehr, wo ich das in welchem Forum gefunden habe). Klappt auch nicht.
  • Für App Backup Helium App am Handy installiert.
  • Helium SW am Laptop installiert. ADB Treiber installiert.
  • SW am Laptop gestartet. Helium App am S3 gestartet. USB Kabel verbunden. Rechts oben in App auf PC Download und dann auf dieser Homepage mit Laptop Browser backup datei .ab heruntergeladen.
  • android-backup-extractor am Laptop installiert
  • in cmd Fenster .ab in .tar entpacken. java -jar "C:\folder_wo_der_extractor_liegt\android-backup-tookit\android-backup-extractor\android-backup-extractor-20180203-bin\abe.jar" unpack "C:\folder_wo_die_ab_datei_liegt\com.xiaomi.smarthome.ab" "C:\zielverzeichnis_wo_tar_hin_soll\backup_xiaomi.tar"
  • .tar entpacken.
  • Somit hab ich nun für MiHome App 4.2.0 und 5.0.1 ein entpacktes Backup und Zugriff auf die Dateien. Roboter FW dazu war 3.3.9.003088

Jetzt meine große Frage: Wie komme ich zum Token aus dem Backup? MiToolkit bringe ich nicht zum Laufen.

Danke
bart

Hab es nun geschafft.  :D :D :D
Wahrscheinlich war das Schließen meines Laptops, sodass das Tool nun Zugriff hatte auf das Phone. Folgende Schritte hat mich nun zum Token geführt:
- MiHome App 4.2.0 auf Samsung Galaxy S3 installieren.
- Am Handy Entwicklermodus aktivieren und USB Debugging freischalten.
- In MiHome App anmelden und App schließen bzw. Homescreen.
- Handy mit Laptop verbinden.
- Am Handy erscheint, dass man akzeptieren soll, dass man Zugriff aufs Handy gewährt.
- MiToolkit v1.6 Starten
- ADB Version 39
- Token auslesen
- Am Handy startet die MiHome App mit der Info, dass Sicherung gestartet wird.
- Nach einer Weile erscheint in der MiHome App der Token.
:)

lg
bart
Raspberry Pi 4 - FHEM, Homematic HM-CFG-LAN, ESP32 mit ePaper Display, Raspberry Pi 3 - BT Lokalisierung, PC - Squeezebox Server, Raspberry Pi 2 +HifiBerry - SB Player1, Raspberry Pi 2 +AVReceiver - SB Player2, nVidia Shield TV +AVReceiver - SB Player3, 2x Logitech Harmony Hub, echo dot Gen3

Markus M.

Zitat von: chaot4ever am 11 Februar 2018, 12:54:42
Hallo
Habe soeben erfolgreich den Xiaomi Humidifier eingerichtet mit den attr subType Humidifier, attr stateFormat state und erhalte bei den Internals STATE state und bei device_type unknown.
Somit erkennt man nicht ob er eingeschaltet ist und auch die eingegebenen Timer-Schaltzeiten werden nicht angezeigt.
Das im Log sind keine Fehler, das Modul wurde neu geladen. device_type darfst du ignorieren und ein Timer ist im Modul überhaupt nicht implementiert?!
Versuch doch mal stateFormat=mode und webCmd=limit_hum:mode
FHEM dev + HomeBridge + Lenovo Flex15 + HM-CFG-USB + RFXtrx433 + Fritz!Box 7590/7580/546E

HM Aktor/Sensor/Winmatic/Keymatic/Thermostat, HUE, Netatmo Weather/Security/Heating, Xiaomi AirPurifier/Vacuum, Withings Aura/BPM/Cardio/Go/Pulse/Thermo, VSX828, Harmony, Siro ERB15LE
https://paypal.me/mm0

chaot4ever

Das mit stateFormat=mode und webCmd=limit_hum:mode geht auch perfekt.
Trotzdem kann ich im iOS Menu von Xiaomi einen Timer eingeben, der auch schaltet, wenn mein iPhone abgeschaltet ist. Wo ist dann dieser Timer hinterlegt, wenn nicht im Xiaomi Gerät selbst? Ev. in der Cloud?, was dann eher beunruhigend wäre.

Markus M.

Wahrscheinlich im Device. Ist allerdings im Modul nicht implementiert.
Ist das neu in der Firmware?
Ich kann mal gucken ob ich an die Kommunikation noch rankomme oder ob es identisch zum Ventilator ist.
FHEM dev + HomeBridge + Lenovo Flex15 + HM-CFG-USB + RFXtrx433 + Fritz!Box 7590/7580/546E

HM Aktor/Sensor/Winmatic/Keymatic/Thermostat, HUE, Netatmo Weather/Security/Heating, Xiaomi AirPurifier/Vacuum, Withings Aura/BPM/Cardio/Go/Pulse/Thermo, VSX828, Harmony, Siro ERB15LE
https://paypal.me/mm0

no_Legend

Zitat von: Markus M. am 12 Februar 2018, 10:35:11
Wahrscheinlich im Device. Ist allerdings im Modul nicht implementiert.
Ist das neu in der Firmware?
Ich kann mal gucken ob ich an die Kommunikation noch rankomme oder ob es identisch zum Ventilator ist.

Hi Markus,

mal ne frage, planst du auch einen Offizielles Checkin?

Danke 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.

chaot4ever

@Markus
Nein, das war schon immer vorhanden, hier noch meine Firmware, welche ich nach Erhalt des Xiaomi-Teils vor 1,5 Monaten sogleich aktualisiert hatte: 1.2.9_5033
Die Möglichkeiten des Timers sind eine einmalige Start- sowie eine einmalige Stoppzeit plus eine Repeat-Funktion mit Once, Every Day, Weekdays, Weekends und Custom mit Aus- und Abwahl der Wochentage.

MarkusRobertAllen

Mit den Hinweisen von @bart0190 habe ich nun geschafft, meinen Xiaomi Mi an FHEM anzuschliessen. Vielen Dank für das tolle Modul!

Markus M.

Zitat von: chaot4ever am 12 Februar 2018, 15:29:48Die Möglichkeiten des Timers sind eine einmalige Start- sowie eine einmalige Stoppzeit plus eine Repeat-Funktion mit Once, Every Day, Weekdays, Weekends und Custom mit Aus- und Abwahl der Wochentage.
Ahh ok! Diese Timer scheinen tatsächlich irgendwie über die Cloud zu laufen, nicht nur über die lokale Kommunikation zum Gerät.
Zumindest hab ich nicht auf Anhieb herausgefunden wie sie funktionieren und der Implementierungsaufwand war mir zu hoch.
Nimm doch einfach die FHEM Bordmittel dafür- on-for-timer etc. sollten problemlos funktionieren.
FHEM dev + HomeBridge + Lenovo Flex15 + HM-CFG-USB + RFXtrx433 + Fritz!Box 7590/7580/546E

HM Aktor/Sensor/Winmatic/Keymatic/Thermostat, HUE, Netatmo Weather/Security/Heating, Xiaomi AirPurifier/Vacuum, Withings Aura/BPM/Cardio/Go/Pulse/Thermo, VSX828, Harmony, Siro ERB15LE
https://paypal.me/mm0

chaot4ever

OK, alles klar, mach ich, wollte nur wissen ob die Chinesen via Claud schon bei mir sind.  ;D :-\

Fhemschorsch

Zitat von: Fhemschorsch am 23 Dezember 2017, 13:25:55
Komisch, ich habe heute den Staubsauger noch einmal resettet und den Token ganz frisch ausgelesen.

Aus:
ÅM∑@JflG‡ia√@#ˇëÍxØE8:8D:28:5E:CF:89Fully charged646993973.3.9_003077010.103.247.2534:CE:00:EA:E9:83rockrobo.vacuum.v1Mi Robot Vacuum5678a21e8f1c7220fd24dd9941d54d793cd9e7080b09206f7af979ca8591a52f0143db63ee66b0cdff9f69917680151eÅ}Å#
habe ich :
5678a21e8f1c7220fd24dd9941d54d793cd9e7080b09206f7af979ca8591a52f0143db63ee66b0cdff9f69917680151e
ausgelesen und daraus wiederum:
775431515353664c65714a48497a325a
ermittelt.

Aber das Modul liefert immer noch den Encryption cipher error. Ich verstehe es nicht  ???

Sorry, dass ich noch einmal so doof nachfrage, aber ändert es jetzt etwas, wenn ich meinen Vacuum roote? Dann brauche ich doch immer noch den Token, oder verstehe ich das falsch? Ich hab bei mir alle perl-Pakete noch einmal überprüft, habe aber alles aus dem ersten Post dieses Threads installiert.

Typ1er

Hallo, ich habe mal eine Frage ob jemand das Homebridgemapping, nicht als On/Off sondern als Dim Befehl hat, um die Geschwindigkeit damit gleich einzustellen. Möchte gern gleich entscheiden ob 60 oder 90% Leistung.

RappaSan

@Fhemschorsch:
Ohne Token wird alles schwierig bis unmöglich - soweit ich weiß.
Token wie in #632 beschrieben ausgelesen?
Den Sinn vom rooten konnte ich bisher noch nicht so richtig erkennen.

tobi_555

Hallo Markus,

wird es in deinem Modul auch eine Untersützung für die 2. Generation des Xiaomi Mi Vacuum geben ?

Ich haben meine erfolgreich verbunden und die meisten Readings gehen. Wenn der Vacuum aber einen Fehler hat wird dieser nicht übertragen. (Was ein Update so alles macht. Jetzt kommen die Fehler)

Bei den Internals ist device_type = unknown

Mit der neuen Firmware 3.3.9_001228 kann der Carped mode in de Mi-Home App aktiviert werden um auf dem Tepich die Saugleistung zu erhöhen

Grüße Tobi

Fhemschorsch

Zitat von: RappaSan am 18 Februar 2018, 10:11:33
@Fhemschorsch:
Ohne Token wird alles schwierig bis unmöglich - soweit ich weiß.
Token wie in #632 beschrieben ausgelesen?
Den Sinn vom rooten konnte ich bisher noch nicht so richtig erkennen.

Den Token habe ich ausgelesen. Der ist auch korrekt, ich habe vor ein paar Tagen schon das deutsche Sprachpaket installiert, da braucht man ja auch den Token.

Ich glaube, das Problem ist eher, dass bei den PERL-Paketen etwas schief hängt. Ich habe aber alle nochmal mit cpan install Paketname installiert, war alles soweit aktuell. Ich weiß leider nicht, wo ich da jetzt ansetzen soll.