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

ahlermi

Danke,
Ich gucke mir das Modul nächste Woche Mal genauer an.
Wenn ich ne Lösung habe melde ich diese.

Gruß Michael
PI4 FHEM, PI3 FHEM, 6 x Echo mit talk2fhem, Siri, SNIPS auf PI3 mit Samson UB1, YeeLight, Homematic, MAX!, 433Mhz, LaCross, Xiaomi Vacuum V1, ESPEasy, Gardena, Telegram, FLOORPLAN, HEOS, Xiaomi Aqara, Sonoff, SolvisMax, SolvisClient, HUE, ESPEasy für Bayernlüfter, Harmony, Tasmota, JKBMS, EASUN

distel

Zitat von: distel am 10 August 2017, 20:40:00
ich bekomme einfach nicht die Xiaomi Schreibtischlampe angesprochen. Token (32 Zeichen) hab ich, verbose 5 gibt immer (sowohl bei subtyp eyecare als auch smartlamp) nur Folgendes:[...]
Mit dem Modul 32_YeeLight aus diesem Thread https://forum.fhem.de/index.php/topic,62570.0.html und über die YeeLight aktivierten Developer-Modus hat es geklappt. Da braucht es dann aber gar keinen Token (Developermodus = "unverschlüsselte Kommunikation"). War dieses Modul am Ende das Falsche? Wie auch immer, mit dem anderen Modul klappt es.
NUC-I37100
Docker: eBus, fhem, ha-bridge, unifi
Hardware: Homematic, FS20, Somfy RTS, 1wire, FBAHA, enOcean

Markus M.

Zitat von: distel am 25 September 2017, 14:01:40
Mit dem Modul 32_YeeLight aus diesem Thread https://forum.fhem.de/index.php/topic,62570.0.html und über die YeeLight aktivierten Developer-Modus hat es geklappt. Da braucht es dann aber gar keinen Token (Developermodus = "unverschlüsselte Kommunikation"). War dieses Modul am Ende das Falsche? Wie auch immer, mit dem anderen Modul klappt es.

Dieses Modul hätte auch funktionieren sollen, du hättest dazu aber deinen Token nochmal überprüfen müssen.
Die gleiche Lampe steht übrigens auf meinem Schreibtisch und funktioniert.
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

distel

Zitat von: Markus M. am 25 September 2017, 14:52:21
Dieses Modul hätte auch funktionieren sollen, du hättest dazu aber deinen Token nochmal überprüfen müssen.
Sorry, hatte es nicht geschrieben: Ich hab's seit dem letzten Post (verzweifelt) und weit mehr als einmal versucht - leider ohne Erfolg. Alles versucht: Kopiert aus SQlite-Editor bis abtippen - no way.

Sei es drum. Vielleicht bekomm ich es ja eines schönen Tages hin. Ich bin mir jedenfalls bewusst, dass der Fehler irgendwo bei mir liegen muss. Letztlich zählt für mich erstmal: es löppt.

Gruß Dirk
NUC-I37100
Docker: eBus, fhem, ha-bridge, unifi
Hardware: Homematic, FS20, Somfy RTS, 1wire, FBAHA, enOcean

ahlermi

Ich bin jetzt etwas schlauer.

In Zeile 1523 wird der jsonstring decodiert, es muss irgendwo ein Sonderzeichen oder ähnliches im String enthalten sein.

Ich habe die Logzeile geändert:

Log3 $name, 2, "$name: invalid json evaluation: \"$jsonstring\" $@";


2017.09.26 07:03:04 2: vacuum: invalid json evaluation: "{"id":19,"code":0,"message":"ok","result":{"state":"ONLINE","auth_fail_count":0,"conn_success_count":1,"conn_fail_count":0,"dhcp_fail_count":0}}" garbage after JSON object, at character offset 145 (before "(end of string)") at ./FHEM/72_XiaomiDevice.pm line 1525.

Wenn ich den jsonstring mit dem selben Wert hart fülle der im Log ausgegeben wird, dann klappt die Verarbeitung.


$jsonstring = "\{\"result\":\[\{\"msg_ver\":5,\"msg_seq\":60,\"state\":8,\"battery\":100,\"clean_time\":3550,\"clean_area\":50132500,\"error_code\":0,\"map_present\":0,\"in_cleaning\":0,\"fan_power\":60,\"dnd_enabled\":1\}\],\"id\":38\}";


PI4 FHEM, PI3 FHEM, 6 x Echo mit talk2fhem, Siri, SNIPS auf PI3 mit Samson UB1, YeeLight, Homematic, MAX!, 433Mhz, LaCross, Xiaomi Vacuum V1, ESPEasy, Gardena, Telegram, FLOORPLAN, HEOS, Xiaomi Aqara, Sonoff, SolvisMax, SolvisClient, HUE, ESPEasy für Bayernlüfter, Harmony, Tasmota, JKBMS, EASUN

ahlermi

Habe jetzt in Zeile 1523 diesen Code eingebaut.

$jsonstring =~ tr/a-zA-ZÄÖÜäöüß0-9.,\:\"\[\{\]\}//cd;

jetzt läuft es wie gewollt  :)
PI4 FHEM, PI3 FHEM, 6 x Echo mit talk2fhem, Siri, SNIPS auf PI3 mit Samson UB1, YeeLight, Homematic, MAX!, 433Mhz, LaCross, Xiaomi Vacuum V1, ESPEasy, Gardena, Telegram, FLOORPLAN, HEOS, Xiaomi Aqara, Sonoff, SolvisMax, SolvisClient, HUE, ESPEasy für Bayernlüfter, Harmony, Tasmota, JKBMS, EASUN

Markus M.

Zitat von: ahlermi am 26 September 2017, 08:23:31
Habe jetzt in Zeile 1523 diesen Code eingebaut.
$jsonstring =~ tr/a-zA-ZÄÖÜäöüß0-9.,\:\"\[\{\]\}//cd;
jetzt läuft es wie gewollt  :)
Ich muss zugeben dass ich nicht allzu viel Ahnung von regex habe, aber was sagt jetzt eigentlich dein Timezone Reading? ;)
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

ahlermi

Es gibt optimirungspotential ;-)

aber besser als nix


$jsonstring =~ tr/a-zA-ZÄÖÜäöüß0-9.,\:\"\[\{\]\}\/\\//cd;


sollte jetzt klappen
PI4 FHEM, PI3 FHEM, 6 x Echo mit talk2fhem, Siri, SNIPS auf PI3 mit Samson UB1, YeeLight, Homematic, MAX!, 433Mhz, LaCross, Xiaomi Vacuum V1, ESPEasy, Gardena, Telegram, FLOORPLAN, HEOS, Xiaomi Aqara, Sonoff, SolvisMax, SolvisClient, HUE, ESPEasy für Bayernlüfter, Harmony, Tasmota, JKBMS, EASUN

tomahawk2015

Hallo,

ich habe seit Sommer den Airpurifier und versucht diesen in FHEM einzubinden. Ich erhielt jedoch zu Beginn im Log die
Meldung "no or incorrect token defined", wobei ich davon ausgegangen war, daß ja kein Token benötigt wird.
Ich habe dann mit der einschlägigen Anleitung, ein Token für den Purifier extrahiert, erhalte auch die Meldung nicht
mehr, es findet jedoch auch weiterhin keinerlei Kommunikation per get/set    statt.
Define sollte passen, IP-Adresse etc ist erreichbar.
Habe ich noch was übersehen?
Hier die weiteren Auszüge aus dem Log betreffend den Purifier:
2017.09.30 15:28:45 3: Luftreiniger: disconnecting
2017.09.30 15:28:45 2: Luftreiniger: connecting
2017.09.30 15:28:45 3: Luftreiniger: initialized
2017.09.30 15:28:45 5: Luftreiniger: initSend
2017.09.30 15:28:45 5: Luftreiniger Send SUCCESS
2017.09.30 15:28:45 5: Luftreiniger > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff

Vielen Dank im voraus

Thorsten

Esjay


tomahawk2015

Ja, Subtype ist gesetzt. Mich hat halt auch die Meldung, dass ein falsches oder kein Token gesetzt ist, stutzig gemacht.

Markus M.

Hat das Gerät Internet?
Bitte mal ein komplettes list incl. Token nach dem Verbindungsversuch
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

tomahawk2015

Hallo,

erstmal vielen Dank für die Rückmeldungen. Ja, das Gerät hat Internet, kann es normal über die MiHome App ansprechen, ist nichts per Firewall
geblockt.
Bei der Definition mit Token ergibt ein List:

Internals:
   DEF        192.168.89.223 6892a5fa00230f4af5d3d2ddc7f92c09
   FD         151
   NAME       Luftreiniger
   NR         428
   STATE      ??
   TYPE       XiaomiDevice
   Helper:
     ConnectionState initialized
     crypt      AES
     delay      0
     ip         192.168.89.223
     packetid   1
     port       54321
     token      6892a5fa00230f4af5d3d2ddc7f92c09
Attributes:
   subType    AirPurifier
   verbose    5

Noch einmal die relevanten Logs nach Neustart Fhem:

2017.10.01 09:40:46 3: Luftreiniger: initialized, using AES
2017.10.01 09:40:56 3: Luftreiniger: disconnecting
2017.10.01 09:40:56 2: Luftreiniger: connecting
2017.10.01 09:40:56 3: Luftreiniger: initialized
2017.10.01 09:40:56 5: Luftreiniger: initSend
2017.10.01 09:40:56 5: Luftreiniger Send SUCCESS
2017.10.01 09:40:56 5: Luftreiniger > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff

Markus M.

Zitat von: tomahawk2015 am 01 Oktober 2017, 10:53:59
Bei der Definition mit Token ergibt ein List...

Und wenn du jetzt manuell ein paar Updates für die verschiedenen Daten anstösst, was sagen List und Log danach?
Bist du dir sicher dass der Token richtig 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

tomahawk2015

Hallo,

ich habe das ganze jetzt noch mal parallel auf meiner Zweitumgebung (Raspberry) eingerichtet und da funktioniert es, auch ohne Token,
das wird mir auch (ist gleich dem per App ermittelten) im Log angezeigt. Ich muß noch einmal auf der Erstinstanz forschen woran es liegen
könnte aber damit ist mir jetzt erstmal geholfen.

Vielen Dank für die Hilfe!