24_TPLinkHS110.pm: Support für TPLink HS100/HS110 v1/2/3 Steckdosen

Begonnen von Volker Kettenbach, 25 August 2016, 18:03:57

Vorheriges Thema - Nächstes Thema

matrixice

Hallo Leute,

bin noch etwas neu in FHEM aber habe soweit fast alles in meinem Zuhause zum Laufen gebracht bis auf meine LB130 Lampe. Ich kriege mit dem Modul meine LB130 nicht geschaltet. Es kommt immer ein trockenes "command failed" wenn ich die Lampe schalten möchte. Log und Event Monitor enthalten dabei zu dem Ereigniss  keine Meldungen dazu. Readings werden aber angezeigt. Readings unten.

Würde mich sehr freuen wenn mir jemand einen Lösungsansatz hätte.

LG Dmitri


Readings
active_mode

none

2019-04-06 11:56:37
alias

Lampa

2019-04-06 11:56:37
ctrl_protocols

HASH(0x2badfc0)

2019-04-06 11:56:37
decode_json

ok

2019-04-06 11:57:01
description

Smart Wi-Fi LED Bulb with Color Changing

2019-04-06 11:56:37
dev_state

normal

2019-04-06 11:56:37
deviceId

8012119C2E94CB91425852F39B34075D18E08E7A

2019-04-06 11:56:37
disco_ver

1.0

2019-04-06 11:56:37
err_code

0

2019-04-06 11:56:37
heapsize

315384

2019-04-06 11:56:37
hwId

111E35908497A05512E259BB76801E10

2019-04-06 11:56:37
hw_ver

1.0

2019-04-06 11:56:37
is_color

1

2019-04-06 11:56:37
is_dimmable

1

2019-04-06 11:56:37
is_factory

false

2019-04-06 11:56:37
is_variable_color_temp

1

2019-04-06 11:56:37
light_state

HASH(0x2ba3f70)

2019-04-06 11:56:37
mic_mac

704F5705054D

2019-04-06 11:56:37
mic_type

IOT.SMARTBULB

2019-04-06 11:56:37
model

LB130(EU)

2019-04-06 11:56:37
oemId

D5C424D3C480911C980ECDD56C27988F

2019-04-06 11:56:37
preferred_state

ARRAY(0x15f1438)

2019-04-06 11:56:37
rssi

-62

2019-04-06 11:56:37
state

off

2019-04-06 11:56:37
sw_ver

1.8.6 Build 180809 Rel.091659

2019-04-06 11:56:37

Volker Kettenbach



Xell1984

Moin, hab meine HS110 eben über die App ins WLAN gebracht und in fhem eingebunden. Wie kann ich Updates verhindern an der Dose bzw Cloud Sperren? Über die Firewall oder gibt's eine andere Lösung?

Gruß
Razpberry on Raspberry Pi 3 mit Raspian Jessy

TheTrumpeter

FHEM auf RPi3, THZ (LWZ404SOL), RPII2C & I2C_MCP342x (ADCPiZero), PowerMap, CustomReadings, RPI_GPIO, Twilight, nanoCUL (WMBus für Diehl Wasserzähler & Regenerationszähler für BWT AqaSmart), ESPEasy, TPLinkHS110

Volker Kettenbach

Zitat von: Xell1984 am 19 April 2019, 13:46:13
Moin, hab meine HS110 eben über die App ins WLAN gebracht und in fhem eingebunden. Wie kann ich Updates verhindern an der Dose bzw Cloud Sperren? Über die Firewall oder gibt's eine andere Lösung?

Gruß

Ich habe mich nicht an der cloud angemeldet.

TheTrumpeter

FHEM auf RPi3, THZ (LWZ404SOL), RPII2C & I2C_MCP342x (ADCPiZero), PowerMap, CustomReadings, RPI_GPIO, Twilight, nanoCUL (WMBus für Diehl Wasserzähler & Regenerationszähler für BWT AqaSmart), ESPEasy, TPLinkHS110

viegener

Nachdem mein zweiter TPLink auch ein HS110 mit neuerer Hardware (und firmware version) ist, habe ich leider auch regelmässige Probleme. Schaltfunktionen laufen problemlos, aber regelmässige Freezes, die nach meinem bisherigen Verständnis auf die TPLinks zurückzuführen sind.

Laut Readings:
sw_ver 1.5.4 Build 180815 Rel.121440
hw_ver 2.0

Vermutung, diese treten beim normalerweise alle 5-minuten laufenden timergesteuerten ..._get auf, aber auch bei jedem aus FHEM initierten Schaltvorgang auf.

Wenn ich es im Thread richtig verstanden habe, gibt es dafür bisher keine Lösung?


Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

Volker Kettenbach

Leider richtig.
Ich kann die Probleme nicht nachvollziehen, da meine Steckdosen alle älter sind und die Firmware nicht aktualisiert wird.

WhyTea

Hallo
Ich habe aktuell fünf HS110. Bei vier von den fünf habe ich das Problem das die daily und monthly Werte nicht mehr aktualisiert werden.
Nach dem was ich in meinem Log sehe seit dem ersten April. Bzw. seit der letzten Firmwareaktualisierung und dem darauf folgenden Monatswechsel.

List von dem Einen der noch funktioniert:
Internals:
   CFGFN      /var/fhem/FHEM/KG_Badezimmer.cfg
   DEF        192.168.6.145
   FUUID      5c46c494-f33f-a5a6-a713-0d1daee70282dd5d
   HOST       192.168.6.145
   INTERVAL   300
   NAME       KG_BZ_Trockner
   NEXTUPDATE Mon May 20 13:10:31 2019
   NR         764
   STATE      on
   TIMEOUT    1
   TYPE       TPLinkHS110
   Helper:
     DBLOG:
       monthly_total:
         mylogdb:
           TIME       1558349132.81315
           VALUE      15.784
       power:
         mylogdb:
           TIME       1558350332.84528
           VALUE      0.308
       state:
         mylogdb:
           TIME       1558349132.81315
           VALUE      on
   READINGS:
     2019-05-20 13:05:31   active_mode     none
     2019-05-20 13:05:31   alias           KG_BZ_Trockner
     2019-05-20 13:05:31   current         0.038
     2019-05-20 13:05:31   daily_average   789.2
     2019-05-20 13:05:31   daily_total     0.003
     2019-05-20 13:05:31   decode_json     ok
     2019-05-20 13:05:31   dev_name        Smart Wi-Fi Plug With Energy Monitoring
     2019-05-20 13:05:31   deviceId        8006DAD6044104540C433830515A51681AA795E0
     2019-05-20 13:05:31   err_code        0
     2019-05-20 13:05:31   feature         TIM:ENE
     2019-05-20 13:05:31   fwId            00000000000000000000000000000000
     2019-05-20 13:05:31   hwId            044A516EE63C875F9458DA25C2CCC5A0
     2019-05-20 13:05:31   hw_ver          2.0
     2019-05-20 13:05:31   icon_hash       
     2019-05-20 13:05:31   latitude        51.4532
     2019-05-20 13:05:31   led_off         0
     2019-05-20 13:05:31   longitude       7.4875
     2019-05-20 13:05:31   mac             0C:80:63:DD:63:97
     2019-05-20 13:05:31   model           HS110(EU)
     2019-05-20 13:05:31   monthly_total   15.784
     2019-05-20 13:05:31   next_action     HASH(0x67756b4)
     2019-05-20 13:05:31   oemId           1998A14DAA86E4E001FD7CAF42868B5E
     2019-05-20 13:05:31   on_time         1898318
     2019-05-20 13:05:31   power           0.308
     2019-05-20 13:05:31   relay_state     1
     2019-05-20 13:05:31   rssi            -87
     2019-05-20 13:05:31   state           on
     2019-05-20 13:05:31   sw_ver          1.5.4 Build 180815 Rel.121440
     2019-05-20 13:05:31   total           19.166
     2019-05-20 13:05:31   type            IOT.SMARTPLUGSWITCH
     2019-05-20 13:05:31   updating        0
     2019-05-20 13:05:31   voltage         223.79
Attributes:
   disable    0
   event-min-interval monthly_total:1800,power:1800,state:1800
   event-on-change-reading monthly_total,power,state
   interval   300
   room       Keller->Badezimmer
   verbose    0


List von einem der nicht mehr funktioniert:
Internals:
   CFGFN      /var/fhem/FHEM/KG_Badezimmer.cfg
   CHANGED   
   DEF        192.168.6.144
   FUUID      5c46c496-f33f-a5a6-79d4-2a0cd00419275a01
   HOST       192.168.6.144
   INTERVAL   300
   NAME       KG_BZ_Waschmaschine
   NEXTUPDATE Mon May 20 13:10:33 2019
   NIGHTMODE  off
   NR         768
   STATE      on
   TIMEOUT    1
   TYPE       TPLinkHS110
   Helper:
     DBLOG:
       monthly_total:
         mylogdb:
           TIME       1558350035.91618
           VALUE      0
       power:
         mylogdb:
           TIME       1558350035.91618
           VALUE      0
       state:
         mylogdb:
           TIME       1558350035.91618
           VALUE      on
   READINGS:
     2019-05-20 13:05:34   active_mode     none
     2019-05-20 13:05:34   alias           KG_BZ_Waschmaschine
     2019-05-20 13:05:34   current         0.049
     2019-05-20 13:05:34   decode_json     ok
     2019-05-20 13:05:34   dev_name        Smart Wi-Fi Plug With Energy Monitoring
     2019-05-20 13:05:34   deviceId        800686FE2560C35F95A68FAB4632B8C01A090A10
     2019-05-20 13:05:34   err_code        0
     2019-05-20 13:05:34   feature         TIM:ENE
     2019-05-20 13:05:34   fwId            00000000000000000000000000000000
     2019-05-20 13:05:34   hwId            044A516EE63C875F9458DA25C2CCC5A0
     2019-05-20 13:05:34   hw_ver          2.0
     2019-05-20 13:05:34   icon_hash       
     2019-05-20 13:05:34   latitude        51.4532
     2019-05-20 13:05:34   led_off         0
     2019-05-20 13:05:34   longitude       7.4875
     2019-05-20 13:05:34   mac             AC:84:C6:65:A5:CD
     2019-05-20 13:05:34   model           HS110(EU)
     2019-05-20 13:05:34   monthly_total   0
     2019-05-20 13:05:34   next_action     HASH(0x6c5bc6c)
     2019-05-20 13:05:34   oemId           1998A14DAA86E4E001FD7CAF42868B5E
     2019-05-20 13:05:34   on_time         1897846
     2019-05-20 13:05:34   power           0
     2019-05-20 13:05:34   relay_state     1
     2019-05-20 13:05:34   rssi            -78
     2019-05-20 13:05:34   state           on
     2019-05-20 13:05:34   sw_ver          1.5.4 Build 180815 Rel.121440
     2019-05-20 13:05:34   total           8.397
     2019-05-20 13:05:34   type            IOT.SMARTPLUGSWITCH
     2019-05-20 13:05:34   updating        0
     2019-05-20 13:05:34   voltage         223.668
Attributes:
   disable    0
   event-min-interval monthly_total:1800,power:1800,state:1800
   event-on-change-reading monthly_total,power,state
   interval   300
   nightmode  off
   room       Keller->Badezimmer
   verbose    0

Angeblich sind HW und SW Version gleich.
Was mir aufgefallen ist ist das der Anfang der MAC Adresse bei den nicht funktionierenden anders ist als bei dem der funktioniert.

Der Funktionierende hat eine 0C:80:63 und alle Anderen eine AC:84:C6.

Auch in der KASA App werden keine Statistikwerte mehr angezeigt. Dort wird auch lediglich die aktuelle Leistungsaufnamhme angezeigt.
Ich gehe daher nicht von einem Fehler im Fhem Modul aus.

Hat noch jemand das Problem oder weis vielleicht sogar wie ich es beheben kann?

Gruß
Daniel

viegener

Zitat von: Volker Kettenbach am 20 Mai 2019, 07:46:17
Leider richtig.
Ich kann die Probleme nicht nachvollziehen, da meine Steckdosen alle älter sind und die Firmware nicht aktualisiert wird.

Ich kann Dir gerne eine neue Version zur Verfügung stellen.
Inzwischen habe ich aber auch etwas in den Code reingeschaut, grundsätzlich sind die Verbindungsaufbauten im _get ja blockierend, so dass der freeze erklärbar ist. bei den 110er werden ja eigentlich 3 requests gemacht (status, realtime data, daystats), jeder davon braucht etwas Zeit zum Verbindungsaufbau und hat ein Read timeout von 0.5 sek --> also sagen wir mal jeweils 0.6 s --> das entspricht ziemlich genau den 1.8s freezes bei mir.

Kann es also sein, dass die alte Firmware direkt nach dem Datentransfer den Socket zumacht --> kaum Verzögerung, während die neue Firmware daten sendet aber eben die Verbindung nicht schliesst?

Da das Format ja in den ersten 4 Bytes die Länge der Daten versendet, ist das vermutlich auch bei der Antwort so. Damit sollte es möglich sein erst die 4 Bytes zu lesen und dann danach genau soviele Bytes zu lesen wie zu erwarten sind und nicht auf das Timeout zu warten.

Ich habe dazu noch keine Experimente gemacht, aber vielleicht löst das zumindest das timeout/freeze problem?

Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

viegener

#296
Ich habe mal eine Testversion erstellt, die beim set und get nur soviele Daten liest, wie benötigt wird.

Bei mir scheint das soweit zu funktionieren und ich habe bisher auch keine freezes mehr gesehen. Möchte das noch jemand anders ausprobieren?


EDIT: 22.5. - Update mit Fehlerbehebung für Realtimedata und Statistik

EDIT: 27.5 - Update für Unterstützung auch längerer Datenmengen
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

ufo-hans

Da bei mir auch bei eine von 5 identen HS110 die Log-Einträge erzeugte, habe ich mal die neue Version aus dem vorherigen Post ausprobiert. Fehler ist weg, bis jetzt keinerlei Auffälligkeiten.

Danke - und *daumengedrückthalten*!

TheTrumpeter

Zitat von: viegener am 21 Mai 2019, 20:55:31
Ich habe mal eine Testversion erstellt, die beim set und get nur soviele Daten liest, wie benötigt wird.

Bei mir scheint das soweit zu funktionieren und ich habe bisher auch keine freezes mehr gesehen. Möchte das noch jemand anders ausprobieren?
Hattest Du davor auch die folgenden Fehler?
2019.05.20 21:50:12 1: PERL WARNING: Use of uninitialized value in split at ./FHEM/24_TPLinkHS110.pm line 415.
2019.05.20 21:50:12 1: PERL WARNING: substr outside of string at ./FHEM/24_TPLinkHS110.pm line 415.
2019.05.20 21:50:12 1: PERL WARNING: Use of uninitialized value $_[0] in split at ./FHEM/24_TPLinkHS110.pm line 415.
2019.05.22 06:12:57 1: PERL WARNING: Use of uninitialized value $json in concatenation (.) or string at ./FHEM/24_TPLinkHS110.pm line 243.
2019.05.22 06:12:57 1: TPLinkHS110: LBE250.Steckdose Error updating daystat. Success: 0, json:
2019.05.22 06:44:58 1: TPLinkHS110: LBE250.Steckdose: Received zero bytes of realtime data. Cannot process realtime dat
FHEM auf RPi3, THZ (LWZ404SOL), RPII2C & I2C_MCP342x (ADCPiZero), PowerMap, CustomReadings, RPI_GPIO, Twilight, nanoCUL (WMBus für Diehl Wasserzähler & Regenerationszähler für BWT AqaSmart), ESPEasy, TPLinkHS110

viegener

Zitat von: TheTrumpeter am 22 Mai 2019, 07:25:31
Hattest Du davor auch die folgenden Fehler?
2019.05.20 21:50:12 1: PERL WARNING: Use of uninitialized value in split at ./FHEM/24_TPLinkHS110.pm line 415.
2019.05.20 21:50:12 1: PERL WARNING: substr outside of string at ./FHEM/24_TPLinkHS110.pm line 415.
2019.05.20 21:50:12 1: PERL WARNING: Use of uninitialized value $_[0] in split at ./FHEM/24_TPLinkHS110.pm line 415.
2019.05.22 06:12:57 1: PERL WARNING: Use of uninitialized value $json in concatenation (.) or string at ./FHEM/24_TPLinkHS110.pm line 243.
2019.05.22 06:12:57 1: TPLinkHS110: LBE250.Steckdose Error updating daystat. Success: 0, json:
2019.05.22 06:44:58 1: TPLinkHS110: LBE250.Steckdose: Received zero bytes of realtime data. Cannot process realtime dat


Nein ich hatte andere Meldungen --> das hängt aber vielleicht auch damit zusammen, das die Fehlermeldungen von Dir nicht zur aktuellen Version des Moduls in FHEM passt. Hast Du mal ein update gemacht?

Generell sollten auch ähnliche Fehler nicht mehr auftreten, ich habe dazu nochmal eine aktualisierte Version oben eingespielt, da ist auch ein Fehler ausgemerzt.
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können