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

masterpete23

Hi,

ich habe seit dem Firmware Update das Problem das mein Saugi bei set charge nicht mehr direkt zum Dock düst, sondern nur erstmal aufhört.
Wie kann man das am schlausten fixen?
Ich nutze Alexa um ihn zu steuern. Ggf. hat ja jemand ne super duper schlaue Lösung

zippo2k

Zitat von: Andy89 am 20 April 2020, 17:33:11
ist dein Luftreiniger im gleichen Subnetz wie der FHEM Host?
Bei mir ging es anfangs nicht, weil ich über UDP keine Verbindung bekommen habe. Habe dann den Luftreiniger in das Subnetz des FHEM Hosts gepackt und zack ging es.

edit:das habe ich einfach an die bisherig vorhanden angeglichen. Aber wenn das gewünscht ist, können wir das gerne so machen. ich bin da flexibel.

Guten Morgen Andy,
hatte ich gemacht, der 3H ist jetzt per Fritzbox im gleichen Subnet wie FHEM.  Läst sich auch pingen usw.  Im Log bekomme ich nur "Airpurifier: initialized, using AES".
wenn ich dann einen "set Airpurifier reconnect" ausführe, bekomme ich "XiaomiDevice Airpurifier is disabled. Aborting... ".

Wenn ich global logging auf 4 setze bekomme ich:
2020.04.19 11:50:56 1: PERL WARNING: Bareword found where operator expected at ./FHEM/72_XiaomiDevice.pm line 1, near "72_XiaomiDevice_org"
2020.04.19 11:50:56 1: PERL WARNING:    (Missing operator before XiaomiDevice_org?)
2020.04.19 11:50:56 1: PERL WARNING: Number found where operator expected at ./FHEM/72_XiaomiDevice.pm line 1, near "pm   2020"
2020.04.19 11:50:56 1: PERL WARNING:    (Do you need to predeclare pm?)
2020.04.19 11:50:56 1: PERL WARNING: Number found where operator expected at ./FHEM/72_XiaomiDevice.pm line 1, near "15 22"
2020.04.19 11:50:56 1: PERL WARNING:    (Missing operator before  22?)
2020.04.19 11:50:56 1: PERL WARNING: Bareword found where operator expected at ./FHEM/72_XiaomiDevice.pm line 2, near "72_XiaomiDevice"
2020.04.19 11:50:56 1: PERL WARNING:    (Missing operator before XiaomiDevice?)
2020.04.19 11:50:56 1: PERL WARNING: Number found where operator expected at ./FHEM/72_XiaomiDevice.pm line 2, near "pm   2020"
2020.04.19 11:50:56 1: PERL WARNING: Number found where operator expected at ./FHEM/72_XiaomiDevice.pm line 2, near "16 22"
2020.04.19 11:50:56 1: PERL WARNING: Array found where operator expected at ./FHEM/72_XiaomiDevice.pm line 3, near "@@"
2020.04.19 11:50:56 1: PERL WARNING:    (Missing semicolon on previous line?)
2020.04.19 11:50:56 1: PERL WARNING: Array found where operator expected at ./FHEM/72_XiaomiDevice.pm line 3, near "5 @@"
2020.04.19 11:50:56 1: PERL WARNING:    (Missing operator before  @@?)
2020.04.19 11:50:56 1: reload: Error:Modul 72_XiaomiDevice deactivated:
Unrecognized character \xEF; marked by <-- HERE after  <-- HERE near column 2 at ./FHEM/72_XiaomiDevice.pm line 4, <$fh> line 2209.
2020.04.19 11:50:56 0: Unrecognized character \xEF; marked by <-- HERE after  <-- HERE near column 2 at ./FHEM/72_XiaomiDevice.pm line 4, <$fh> line 2209.


scheine wohl irgendetwas mit dem Ersetzen des Moduls falsch gemacht zu haben...

Und nochmal vielen Dank für deine Hilfe!

zippo2k

Zitat von: zippo2k am 26 April 2020, 11:34:52
Guten Morgen Andy,
hatte ich gemacht, der 3H ist jetzt per Fritzbox im gleichen Subnet wie FHEM.  Läst sich auch pingen usw.  Im Log bekomme ich nur "Airpurifier: initialized, using AES".
wenn ich dann einen "set Airpurifier reconnect" ausführe, bekomme ich "XiaomiDevice Airpurifier is disabled. Aborting... ".

Wenn ich global logging auf 4 setze bekomme ich:
2020.04.19 11:50:56 1: PERL WARNING: Bareword found where operator expected at ./FHEM/72_XiaomiDevice.pm line 1, near "72_XiaomiDevice_org"
2020.04.19 11:50:56 1: PERL WARNING:    (Missing operator before XiaomiDevice_org?)
2020.04.19 11:50:56 1: PERL WARNING: Number found where operator expected at ./FHEM/72_XiaomiDevice.pm line 1, near "pm   2020"
2020.04.19 11:50:56 1: PERL WARNING:    (Do you need to predeclare pm?)
2020.04.19 11:50:56 1: PERL WARNING: Number found where operator expected at ./FHEM/72_XiaomiDevice.pm line 1, near "15 22"
2020.04.19 11:50:56 1: PERL WARNING:    (Missing operator before  22?)
2020.04.19 11:50:56 1: PERL WARNING: Bareword found where operator expected at ./FHEM/72_XiaomiDevice.pm line 2, near "72_XiaomiDevice"
2020.04.19 11:50:56 1: PERL WARNING:    (Missing operator before XiaomiDevice?)
2020.04.19 11:50:56 1: PERL WARNING: Number found where operator expected at ./FHEM/72_XiaomiDevice.pm line 2, near "pm   2020"
2020.04.19 11:50:56 1: PERL WARNING: Number found where operator expected at ./FHEM/72_XiaomiDevice.pm line 2, near "16 22"
2020.04.19 11:50:56 1: PERL WARNING: Array found where operator expected at ./FHEM/72_XiaomiDevice.pm line 3, near "@@"
2020.04.19 11:50:56 1: PERL WARNING:    (Missing semicolon on previous line?)
2020.04.19 11:50:56 1: PERL WARNING: Array found where operator expected at ./FHEM/72_XiaomiDevice.pm line 3, near "5 @@"
2020.04.19 11:50:56 1: PERL WARNING:    (Missing operator before  @@?)
2020.04.19 11:50:56 1: reload: Error:Modul 72_XiaomiDevice deactivated:
Unrecognized character \xEF; marked by <-- HERE after  <-- HERE near column 2 at ./FHEM/72_XiaomiDevice.pm line 4, <$fh> line 2209.
2020.04.19 11:50:56 0: Unrecognized character \xEF; marked by <-- HERE after  <-- HERE near column 2 at ./FHEM/72_XiaomiDevice.pm line 4, <$fh> line 2209.


scheine wohl irgendetwas mit dem Ersetzen des Moduls falsch gemacht zu haben...

Und nochmal vielen Dank für deine Hilfe!

So, hatte das 72_XiaomiDevice.pm jetzt richtig eingebunden (falsche Rechte auf das File), aber no-go.  bekomme nur ständig disconnected Meldungen, aber keine Daten.
Hätte irgendwer nen Tip bitte?

Andy89

Zitat von: zippo2k am 03 Mai 2020, 19:23:49
So, hatte das 72_XiaomiDevice.pm jetzt richtig eingebunden (falsche Rechte auf das File), aber no-go.  bekomme nur ständig disconnected Meldungen, aber keine Daten.
Hätte irgendwer nen Tip bitte?
der Token stimmt - der ändert sich ja mit jedem WLAN Wechsel? Was steht denn jetzt bei verbose 5, wenn ein dis-/connect kommt?
FHEM 6.0 auf rPi4 docker (mit Alexa & Siri); dbLog, FTUI, Sonos, XiaomiMapCreator auf rPi4 docker;
raspimatic auf rPi3+ > diverse Aktoren und Sensoren;
LGW > (PCA301),EC3000,LaCrosse; MQTT2 > WLAN-Steckdosen,Xiaomi Map;
Harmony Hub;Sonos;Onkyo AVR;RGB WLAN Controller;Netatmo;Withings;Unifi;AMAD

mkress

hi, habe seit heute den mi Air Purifier 3h - leider zum Vergleich kein anderes Model?
Kann es sein, dass sich hier die API komplett geändert hat zur 2er-Serie, oder mache ich etwas falsch?


Verstehe nicht, wieso das Device immer wieder auf "disabled" gestellt wird in FHEM?

im Log bekomme ich das:
20.05.05 21:22:28 1: LuftReiniger: Token could not be retrieved automatically from already cloud-connected device!
2020.05.05 21:22:28 5: LuftReiniger < 2131002000000000123f347500005aaeffffffffffffffffffffffffffffffff (32)
2020.05.05 21:22:28 5: LuftReiniger > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2020.05.05 21:22:28 5: LuftReiniger Send SUCCESS
2020.05.05 21:22:28 5: LuftReiniger: initSend
2020.05.05 21:22:28 3: LuftReiniger: initialized
2020.05.05 21:22:28 2: LuftReiniger: connecting
2020.05.05 21:22:28 3: LuftReiniger: disconnecting
2020.05.05 21:22:27 3: XiaomiDevice LuftReiniger is disabled, communication cancelled.
2020.05.05 21:22:27 4: LuftReiniger: write {"id":4,"method":"get_prop","params":["power","mode","motor1_speed","temp_dec","humidity","aqi","average_aqi","favorite_level","use_time","purify_volume","filter1_life","f1_hour_used","f1_hour","button_pressed","motor2_speed"]} (227)
2020.05.05 21:22:24 3: XiaomiDevice LuftReiniger is disabled, communication cancelled.
2020.05.05 21:22:24 4: LuftReiniger: write {"id":3,"method":"get_prop","params":["buzzer","led_b","child_lock","app_extra","act_sleep","sleep_time","volume","rfid_product_id","rfid_tag"]} (144)
2020.05.05 21:22:21 3: XiaomiDevice LuftReiniger is disabled, communication cancelled.
2020.05.05 21:22:21 4: LuftReiniger: write {"id":2,"method":"miIO.info","params":[""]} (43)
2020.05.05 21:22:21 3: XiaomiDevice LuftReiniger is disabled, communication cancelled.
2020.05.05 21:22:21 4: LuftReiniger: write {"id":1,"method":"miIO.wifi_assoc_state","params":[""]} (55)
2020.05.05 21:22:17 1: LuftReiniger: Token could not be retrieved automatically from already cloud-connected device!
2020.05.05 21:22:17 5: LuftReiniger < 2131002000000000123f347500005aa3ffffffffffffffffffffffffffffffff (32)
2020.05.05 21:22:17 5: LuftReiniger > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2020.05.05 21:22:17 5: LuftReiniger Send SUCCESS
2020.05.05 21:22:17 5: LuftReiniger: initSend
2020.05.05 21:22:17 3: LuftReiniger: initialized
2020.05.05 21:22:17 2: LuftReiniger: connecting
2020.05.05 21:22:17 3: LuftReiniger: disconnecting


schöne Grüße
Markus

TWART016

Zitat von: mkress am 05 Mai 2020, 21:28:00
hi, habe seit heute den mi Air Purifier 3h - leider zum Vergleich kein anderes Model?
Kann es sein, dass sich hier die API komplett geändert hat zur 2er-Serie, oder mache ich etwas falsch?


Verstehe nicht, wieso das Device immer wieder auf "disabled" gestellt wird in FHEM?

im Log bekomme ich das:
20.05.05 21:22:28 1: LuftReiniger: Token could not be retrieved automatically from already cloud-connected device!
2020.05.05 21:22:28 5: LuftReiniger < 2131002000000000123f347500005aaeffffffffffffffffffffffffffffffff (32)
2020.05.05 21:22:28 5: LuftReiniger > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2020.05.05 21:22:28 5: LuftReiniger Send SUCCESS
2020.05.05 21:22:28 5: LuftReiniger: initSend
2020.05.05 21:22:28 3: LuftReiniger: initialized
2020.05.05 21:22:28 2: LuftReiniger: connecting
2020.05.05 21:22:28 3: LuftReiniger: disconnecting
2020.05.05 21:22:27 3: XiaomiDevice LuftReiniger is disabled, communication cancelled.
2020.05.05 21:22:27 4: LuftReiniger: write {"id":4,"method":"get_prop","params":["power","mode","motor1_speed","temp_dec","humidity","aqi","average_aqi","favorite_level","use_time","purify_volume","filter1_life","f1_hour_used","f1_hour","button_pressed","motor2_speed"]} (227)
2020.05.05 21:22:24 3: XiaomiDevice LuftReiniger is disabled, communication cancelled.
2020.05.05 21:22:24 4: LuftReiniger: write {"id":3,"method":"get_prop","params":["buzzer","led_b","child_lock","app_extra","act_sleep","sleep_time","volume","rfid_product_id","rfid_tag"]} (144)
2020.05.05 21:22:21 3: XiaomiDevice LuftReiniger is disabled, communication cancelled.
2020.05.05 21:22:21 4: LuftReiniger: write {"id":2,"method":"miIO.info","params":[""]} (43)
2020.05.05 21:22:21 3: XiaomiDevice LuftReiniger is disabled, communication cancelled.
2020.05.05 21:22:21 4: LuftReiniger: write {"id":1,"method":"miIO.wifi_assoc_state","params":[""]} (55)
2020.05.05 21:22:17 1: LuftReiniger: Token could not be retrieved automatically from already cloud-connected device!
2020.05.05 21:22:17 5: LuftReiniger < 2131002000000000123f347500005aa3ffffffffffffffffffffffffffffffff (32)
2020.05.05 21:22:17 5: LuftReiniger > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2020.05.05 21:22:17 5: LuftReiniger Send SUCCESS
2020.05.05 21:22:17 5: LuftReiniger: initSend
2020.05.05 21:22:17 3: LuftReiniger: initialized
2020.05.05 21:22:17 2: LuftReiniger: connecting
2020.05.05 21:22:17 3: LuftReiniger: disconnecting


schöne Grüße
Markus

hast du diese Version genommen?
https://forum.fhem.de/index.php/topic,73052.msg1045277.html#msg1045277

mkress

danke für die schnelle Antwort - hatte ich "natürlich" nicht :-/
Ist jetzt drin  aber selbes Ergebnis - nach löschen des disabled-Attributes ist es danach sofort wieder drin.
Benötigt der 3h jetzt auch ein Token (bei der 2er-Version steht ja, dass es nicht notwendig ist).



Internals:
   DEF        192.168.178.76
   FD         37
   FUUID      5eb1988e-f33f-a682-b0d1-0432d2b70383e4d7
   NAME       LuftReiniger
   NR         312
   STATE      pm25 µg/m³ / speed rpm / mode
   TYPE       XiaomiDevice
   READINGS:
     2020-05-05 21:10:41   state           disconnected
   helper:
     ConnectionState initialized
     crypt      AES
     delay      60
     dev        123f
     id         3475
     ip         192.168.178.76
     last_read  1588707930
     packetid   15
     port       54321
     sequence   1588683335
     packet:
       1          wifi_stats
       10         air_data_3H
       11         wifi_stats
       12         device_info
       13         air_settings_3H
       14         air_data_3H
       2          device_info
       3          wifi_stats
       4          device_info
       5          air_settings_3H
       6          air_data_3H
       7          wifi_stats
       8          device_info
       9          air_settings_3H
Attributes:
   disable    1
   stateFormat pm25 µg/m³ / speed rpm / mode
   subType    AirPurifier3H
   verbose    5

2020.05.05 21:45:39 3: XiaomiDevice LuftReiniger is disabled, communication cancelled.
2020.05.05 21:45:39 4: LuftReiniger: write {"id":14,"method":"get_properties","params":[{"did": "power", "siid": 2, "piid": 2}, {"did": "fan_level", "siid": 2, "piid": 4}, {"did": "mode", "siid": 2, "piid": 5}, {"did": "humidity", "siid": 3, "piid": 7}, {"did": "temperature", "siid": 3, "piid": 8}, {"did": "aqi", "siid": 3, "piid": 6}, {"did": "filter_life_remaining", "siid": 4, "piid": 3}, {"did": "purify_volume", "siid": 13, "piid": 1}, {"did": "filter_hours_used", "siid": 4, "piid": 5},  {"did": "favorite_level", "siid": 10, "piid": 10}, {"did": "favorite_rpm", "siid": 10, "piid": 7},{"did": "motor_speed", "siid": 10, "piid": 8}, {"did": "use_time", "siid": 12, "piid": 1},{"did": "average_aqi", "siid": 13, "piid": 2}]} (688)
2020.05.05 21:45:36 3: XiaomiDevice LuftReiniger is disabled, communication cancelled.
2020.05.05 21:45:36 4: LuftReiniger: write {"id":13,"method":"get_properties","params":[{"did": "led", "siid": 6, "piid": 6},{"did": "buzzer", "siid": 5, "piid": 1}, {"did": "buzzer_volume", "siid": 5, "piid": 2},{"did": "led_brightness", "siid": 6, "piid": 1},{"did": "child_lock", "siid": 7, "piid": 1}, {"did": "app_extra", "siid": 15, "piid": 1}, {"did": "filter_rfid_product_id", "siid": 14, "piid": 3}, {"did": "filter_rfid_tag", "siid": 14, "piid": 1}]} (417)
2020.05.05 21:45:33 3: XiaomiDevice LuftReiniger is disabled, communication cancelled.
2020.05.05 21:45:33 4: LuftReiniger: write {"id":12,"method":"miIO.info","params":[""]} (44)
2020.05.05 21:45:33 3: XiaomiDevice LuftReiniger is disabled, communication cancelled.
2020.05.05 21:45:33 4: LuftReiniger: write {"id":11,"method":"miIO.wifi_assoc_state","params":[""]} (56)
2020.05.05 21:45:30 1: LuftReiniger: Token could not be retrieved automatically from already cloud-connected device!
2020.05.05 21:45:30 5: LuftReiniger < 2131002000000000123f347500006013ffffffffffffffffffffffffffffffff (32)
2020.05.05 21:45:29 5: LuftReiniger > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2020.05.05 21:45:29 5: LuftReiniger Send SUCCESS
2020.05.05 21:45:29 5: LuftReiniger: initSend
2020.05.05 21:45:29 3: LuftReiniger: initialized
2020.05.05 21:45:29 2: LuftReiniger: connecting
2020.05.05 21:45:29 3: LuftReiniger: disconnecting


Andy89

Zitat von: mkress am 05 Mai 2020, 21:49:30
Benötigt der 3h jetzt auch ein Token (bei der 2er-Version steht ja, dass es nicht notwendig ist).
ja der Token ist notwendig. Ohne diesen geht es nicht.
FHEM 6.0 auf rPi4 docker (mit Alexa & Siri); dbLog, FTUI, Sonos, XiaomiMapCreator auf rPi4 docker;
raspimatic auf rPi3+ > diverse Aktoren und Sensoren;
LGW > (PCA301),EC3000,LaCrosse; MQTT2 > WLAN-Steckdosen,Xiaomi Map;
Harmony Hub;Sonos;Onkyo AVR;RGB WLAN Controller;Netatmo;Withings;Unifi;AMAD

mkress

super, scheint zu funktionieren mit Token.
Hatte erst Probleme auf meinem Mi A2 (Android 10) das Token zu bekommen.
damit war es ganz easy: https://github.com/Maxmudjon/com.xiaomi-miio/blob/master/docs/obtain_token.md - mit dem Mitoolkit und manuell mit adb konnte ich kein Backup erstellen.
ZitatNon-Rooted Android Phones
Extract token from log file
This method will only work when you install the Mi Home app version v5.4.54. You can find it here. It looks like Xiaomi made a mistake in this app version where the log file written to internal memory exposes the device tokens of your Xiaomi miio devices.

Setup your Android device with the Mi Home app version 5.4.54
Log in with you Xiaomi account
Use a file explorer to navigate to /sdcard/SmartHome/logs/Plug_Devicemanager/
Look for a log file named yyyy-mm-dd.txt and open it with a file editor
Search for a string similar to this with you device name and token

https://android-apk.org/com.xiaomi.smarthome/43397902-mi-home/

PS: in der XiaomiDevice_3h_update2 habe ich folgenden Warning noch in den Logs gesehen:
2020.05.06 09:56:45 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/72_XiaomiDevice.pm line 2243.


schöne Grüße
Markus

Markus M.

Zitat von: mkress am 06 Mai 2020, 09:53:34
PS: in der XiaomiDevice_3h_update2 habe ich folgenden Warning noch in den Logs gesehen:
2020.05.06 09:56:45 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/72_XiaomiDevice.pm line 2243.
Was steht bei dir in der Zeile?


Update 2020-05-07
Die neue Version läuft bei mir soweit stabil (auch wenn ich die neuen Geräte natürlich nicht testen kann) und ist seit gerade eben im SVN.
Morgen bitte mal ein Update machen und beobachten, bei Fehlern oder Problemen hier melden ;)
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


Markus M.

Zitat von: mkress am 06 Mai 2020, 12:36:42
Bin nur am Handy. Habe aber das File von hier verwendet:
https://forum.fhem.de/index.php?action=dlattach;topic=73052.0;attach=134701
Ahh ok, das war nur das Debugging das nicht mit im Update ist
    Log3 $name, 2, "$name: power: ".$json->{result}[0]{value};
Danke ;)
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

TWART016

Hi,

ich habe eben das Update gemacht.

Folgendes funktioniert nicht
- favorite_level
- led_brightness

Fehler jeweils:
Unknown argument favorite_level, choose one of reconnect:noArg wifi_setup on:noArg off:noArg mode:auto,fan,favorite,silent favorite_level:slider,0,1,14 fan_level:1,2,3 buzzer:on,off led:on,off led_brightness:bright,dim,off child_lock:on,off


In einer der letzten Beta's gab es bei led nur on/off/dim. In der Version ist wieder led_brightness mit drin. Vielleicht könnte man dies noch anpassen.

Markus M.

Copy/paste Fehler, mach morgen früh nochmal ein Update und probiers damit.
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

TWART016

Zitat von: Markus M. am 07 Mai 2020, 23:38:01
Copy/paste Fehler, mach morgen früh nochmal ein Update und probiers damit.

Gut, der Fehler ist nun weg.

Könnte man noch den Befehl hinter led von bright zu on ändern? Also: on / dim / off?