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

redlav

Hallo,

zuerst einmal vielen Dank für das Modul. Ich habe mittlerweile 6 TPLinkHS110 im Einsatz und bin soweit auch zufrieden!.
Hin und wieder kommt es beim Schalten zu einem Fehler, wobei dann die betroffene Steckdose auch über die APP nicht
mehr zu schalten ist und als inaktiv dargestellt wird. Das übelste ist aber, das FHEM dann nicht mehr reagiert.

Beim Neustart des Servers erscheint im Log folgende Fehlermeldung:

2016.11.14 15:12:52.813 1: PERL WARNING: substr outside of string at ./FHEM/24_TPLinkHS110.pm line 310.
2016.11.14 15:12:52.813 1: PERL WARNING: Use of uninitialized value $_[0] in split at ./FHEM/24_TPLinkHS110.pm line 310.
malformed JSON string, neither array, object, number, string or atom, at character offset 0 (before "(end of string)") at ./FHEM/24_TPLinkHS110.pm line 107.


Das Device sieht so aus:


Internals:
   DEF        192.168.1.10
   HOST       192.168.1.10
   INTERVAL   300
   NAME       stSteckdose2
   NEXTUPDATE Mon Nov 14 15:24:37 2016
   NR         670
   STATE      off
   TIMEOUT    1
   TYPE       TPLinkHS110
   Readings:
     2016-11-14 15:19:37   active_mode     schedule
     2016-11-14 15:19:37   alias           Steckdose 2
     2016-11-14 15:19:37   dev_name        Wi-Fi Smart Plug
     2016-11-14 15:19:37   deviceId        80065A934CBB34FC14E1EB59D8481541174CF316
     2016-11-14 15:19:37   err_code        0
     2016-11-14 15:19:37   feature         TIM
     2016-11-14 15:19:37   fwId            BFF24826FBC561803E49379DBE74FD71
     2016-11-14 15:19:37   hwId            22603EA5E716DEAEA6642A30BE87AFCA
     2016-11-14 15:19:37   hw_ver          1.0
     2016-11-14 15:19:37   icon_hash
     2016-11-14 15:19:37   latitude        0
     2016-11-14 15:19:37   led_off         0
     2016-11-14 15:19:37   longitude       0
     2016-11-14 15:19:37   mac             50:C7:BF:03:FD:13
     2016-11-14 15:19:37   model           HS100(EU)
     2016-11-14 15:19:37   oemId           812A90EB2FCF306A993FAD8748024B07
     2016-11-14 15:19:37   on_time         0
     2016-11-14 15:19:37   relay_state     0
     2016-11-14 15:19:37   rssi            -57
     2016-11-14 15:19:37   state           off
     2016-11-14 15:19:37   sw_ver          1.0.8 Build 151101 Rel.24452
     2016-11-14 15:19:37   type            smartplug
     2016-11-14 15:19:37   updating        0
Attributes:
   disable    0
   room       020_Steckdosen


Ist es vielleicht möglich den Fehler abzufangen, damit die Steckdose nicht den FHEM-Prozeß killt.

Gruß Norbert

Volker Kettenbach

Zitat von: redlav am 14 November 2016, 21:56:33

Ist es vielleicht möglich den Fehler abzufangen, damit die Steckdose nicht den FHEM-Prozeß killt.


Danke für den präzisen Report!
Ist auf jeden Fall machbar.
Ich schaue, dass ich mich nachher mal dran setze!

Volker Kettenbach

So, ich habe eine paar Sicherheitschecks eingebaut, dass FHEM im Falle eines gecrashten HS100/110 nicht auch crashed.

Code ist im github und (ich glaube) am morgen auch im FHEM-SVN.

Würde ich mich über Feedback und weitere Bugreports freuen.
Meine Erfahrungen mit dem TPLinks sind auch ganz gut. Man bekommt viele Features für wenig Geld und die FHEM-Anbindung funktioniert auch gut.

redlav

Hallo Volker,

nach dem Update hatte ich heute das erste mal wieder das Problem mit der Steckdose. Dieses mal ist FHEM aber nicht abgestürzt :)
Offensichtlich verträgt sich die Steckdose nicht mit einem eingesteckten Netzteil eines kleinen Springbrunnen und verliert dadurch
die wlan-Verbindung. Die gleiche Steckdose mit einer Lampe funktioniert ohne Problem.

Vielen Dank für deinen schnellen Support!

Gruß Norbert

cs1711

Ich habe leider das Problem, dass sich FHEM regelmäßig beim ersten/zweiten Ausschaltvorgang der TPLink-Steckdose aufhängt und nur noch ein FHEM Neustart hilft. FHEM läuft noch, aber es passiert nichts mehr und FHEM ist über das Webinterface nicht mehr erreichbar.

Ich habe als 24_TPLinkHS110.pm den neuesten Code von Github verwendet. Hilft aber leider nicht :-(

Für Hilfe wäre ich dankbar!

Nachtrag:
Ich habe jetzt den Hostnamen durch die IP-Adresse ersetzt und jetzt scheint es stabil(er) zu funktionieren. Werde das mal weiter beobachten.

Wie ist das bei Euch, funktioniert es zuverlässig oder gibt es immer mal wieder Aussetzer/fehlerhafte Schaltvorgänge?

Viele Grüße
Christian

Volker Kettenbach

Bei mir läuft es stabil.
Auch mit hostname.
Aber ich schalte auch nicht oft.
Aber ich Frage alle 5 Minuten die Readings ab.

rola

HI,

ich habe 5 TPLink HS110 im Einsatz. Manchmal bekomme ich folgende Fehler-Meldung (verschiedene Geräte, nicht nachvollziehbar wann):
-->json-decoding failed. Problem decoding getting statistical data
Daraufhin habe ich ein paar Debug-messages eingebaut und herausgefunden dass in dem eval (Zeile 157) das letzte readingsBulkUpdate schiefgeht, weil $count = 0 ist und die Division dann scheitert.
$jason enthält folgende Daten:
{"emeter":{"get_daystat":{"day_list":[],"err_code":0}}}
Kann es sein, dass dass Array-Format in day_list der Grund ist - wenn die Abfrage klappt, ist es wie erwartet ein Hash
Testweise habe ich ein if ($count) um das letzte readingsBulkUpdate gebaut und damit die Fehlermeldung erledigt.

Viele Grüße

cs1711

Zitat von: cs1711 am 24 November 2016, 22:02:10
Ich habe leider das Problem, dass sich FHEM regelmäßig beim ersten/zweiten Ausschaltvorgang der TPLink-Steckdose aufhängt und nur noch ein FHEM Neustart hilft. FHEM läuft noch, aber es passiert nichts mehr und FHEM ist über das Webinterface nicht mehr erreichbar.

Ich habe als 24_TPLinkHS110.pm den neuesten Code von Github verwendet. Hilft aber leider nicht :-(

Für Hilfe wäre ich dankbar!

Nachtrag:
Ich habe jetzt den Hostnamen durch die IP-Adresse ersetzt und jetzt scheint es stabil(er) zu funktionieren. Werde das mal weiter beobachten.

Jetzt hatte ich gerade wieder einen FHEM Hänger, weil die Steckdose nicht erreichbar ist. Auch die TPLink-Software KASA meldet, dass der Device nicht erreichbar ist.

Das sie nicht schaltet, weil sie nicht im WLAN erreichbar ist, ist ja eine Sache. Aber das FHEM sich komplett deswegen aufhängt und damit auch sämtliche andere (automatische) Steuerung nicht mehr geht, ist schon extrem ärgerlich.

Bin nun leider kein PERL-Spezialist, aber kann man das ggf. irgendwie weiter stabilisieren?

Volker Kettenbach


cs1711

Hallo Volker,

TIMEOUT 1

Sollte das auf einem anderen Wert stehen?

Viele Grüße
Christian

Volker Kettenbach

Nein.
An sich sollte fhem nach einer Sekunde aufgeben, wenn keine Verbindung zur Steckdose zu Stande kommt.

Antwortet Deine Steckdose noch auf Ping, wenn sie hängt?

cs1711

Kann ich Dir leider nicht sagen, vergessen zu überprüfen. Checke ich beim nächsten Hänger. Hilft es Dir bei der Fehleranalyse, wenn ich einen bestimmten Loglevel o. ä. setze?

Im FHEM Log kann ich sehen, dass alle fünf Minuten bis 20:57:33 der Status abgefragt wurde:
2016.11.30 20:57:33 3: TPLinkHS110: ESSZIMMER_ECKE Get called. Relay state: 1, RSSI: -53
2016.11.30 20:57:33 3: TPLinkHS110: ESSZIMMER_ECKE Device is an HS110. Got extra realtime data: 2.326024 Watt, 237.422021 Volt, 0.023718 Ampere
2016.11.30 20:57:33 3: TPLinkHS110: ESSZIMMER_ECKE Get end


Dann ist der nächste Befehl:
2016.11.30 21:01:00 3: TPLinkHS110: ESSZIMMER_ECKE Set <off> called

Danach ist Schluß.

Timeout 1 bedeutet, dass FHEM durchaus für eine Minute hängen könnte, bis der Timeout zuschlägt?

Volker Kettenbach


NeoMatrix

Zitat von: pc1246 am 14 Oktober 2016, 09:18:28
Moin
Mal eine kurze Frage so zwischendrin. Kann man die Steckdose so konfigurieren, dass Sie nach einem Stromausfall wieder an geht? (Kuehlschrank!)
Gruss Christoph

Hallo.

Ich habe die Firmware sw_ver 1.0.8 Build 151101 Rel.24452 auf meiner gerade gekaufte HS110. Wenn sie eingeschaltet ist und stromlos "wird" kehrt sie nach "Rückkehr" des Stroms wieder in den "AN-Zustand" zurück. Evtl. hilft also ein Firmwareupdate?

Gruß

Andre

NeoMatrix

Hallo.

Erstmal vielen Dank für die ganze Arbeit. Auch ich musste auf Jessie upgraden borvor es funktionierte. Was mich interessiert ist ob man den Schalten (An/Aus) sperren kann und auch die Schaltfunktion in FHEM "deaktivieren" kann. Hintergrund ist das ich die Dose bzw. bestimmte Dosen nur für die Verbrauchsmessung nutzen möchte und daher diese Funktion gerne gegen Fremdzugriff schützen möchte.

Danke für jede Hilfe.

Gruß

Andre