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

Dennis1234567890

Hallo, ich versuche gerade, meine HS100 per define <name> TPLinkHS110 <ip> in fhem einzubinden. Jedes Mal, wenn ich das versuche, stürzt fhem ab. Gespeichert ist dann natürlich nichts. Fhem läuft bei mir auf einem Raspberry 2, Perl ist installiert. Das logfile zeigt mir folgendes vor dem Absturz an:
PERL WARNING: substr outside of string at ./FHEM/24_TPLinkHS110.pm line 328.
2018.12.16 20:55:29 1: PERL WARNING: Use of uninitialized value $_[0] in split at ./FHEM/24_TPLinkHS110.pm line 328.
malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "(end of string)") at ./FHEM/24_TPLinkHS110.pm line 108
Kann mir da vielleicht jemand helfen?

Viele Grüße, Dennis

Volker Kettenbach

Scheinbar häufen sich diese Stabilitätsprobleme.
Ich kann die leider nicht nachvollziehen.
Ich hatte vor zwischen den Jahren nach der Implementierung der lb130 zu schauen.
Da werde ich auch den relevanten Codev anschauen.

chani666

Zitat von: klein.michael am 26 Oktober 2018, 20:09:27
Hallo,

ich habe hier seit vorigem Jahr 8 Stück HS110 in Hardware-Version 1.0, Firmware-Version 1.2.5 am laufen. Nun habe ich mir noch zwei weitere gekauft, diese sind Hardware-Version 2.0, Firmware-Version 1.5.4 (device HS110_09 und HS110_10).

Anscheinend sind die angezeigten Werte bei den Hardware-Versionen unterschiedlich (Version 1 in kWatt, Version 2 in Watt). Das hat bei der Anzeige im ersten Moment doch ... naja, eine kurze Panikattacke ob des Verbrauchswertes
verursacht   :o ;D


Auszug aus Datenbank, Tabelle "current"

timestamp               device    reading       value     unit
2018-10-26 19:38:22     HS110_01  daily_total   11.071   
2018-10-26 19:39:21     HS110_02  daily_total   8.426
2018-10-26 19:17:55     HS110_03  daily_total   0.000
2018-10-26 19:41:54     HS110_04  daily_total   2.198
2018-10-26 19:38:05     HS110_05  daily_total   0.000
2018-10-26 19:38:07     HS110_06  daily_total   2.892
2018-10-26 19:39:58     HS110_07  daily_total   4.527
2018-10-26 19:40:01     HS110_08  daily_total   1.867
2018-10-26 19:40:06     HS110_09  daily_total   2285.000
2018-10-26 19:41:24     HS110_10  daily_total   1429.000



Gibt es hier die Möglichkeit einer "Vereinheitlichung" der Einheit oder muss ich hier schlicht und ergreifend bezüglich Anzeige und Auswertung per Hand ran ?

Ich bedanke mich schon im voraus für allfällige Infos und Hinweise :-)

Liebe Grüße aus Österreich


ich hab das skript (neustes vom SVN so geändert) ungefähr bei Linie 220:

         my $total=0;
         foreach my $key (sort keys @{$json->{'emeter'}->{'get_daystat'}->{'day_list'}}) {
            foreach my $key2 ($json->{'emeter'}->{'get_daystat'}->{'day_list'}[$key]) {
               if ($hw_ver eq "1.0") {   
                  $total = $total+ $key2->{'energy'};
                  if ($key2->{'day'} == $mday) {
                  readingsBulkUpdate($hash, "daily_total", sprintf("%.3f", $key2->{'energy'}));
                  }
               } else {
                  $total = $total+ $key2->{'energy_wh'};
                  if ($key2->{'day'} == $mday) {
                  readingsBulkUpdate($hash, "daily_total", sprintf("%.3f", $key2->{'energy_wh'}*0.001));
                  }
               }
               
            }
         }
         my $count=1;
         $count = @{$json->{'emeter'}->{'get_daystat'}->{'day_list'}};
         if ($hw_ver eq "1.0") {readingsBulkUpdate($hash, "monthly_total", $total);}
         if ($hw_ver eq "2.0") {readingsBulkUpdate($hash, "monthly_total", $total*0.001);}

         

und dank an Herr Kettenbach für die letzten updates, SVN läuft bei mir Problemlos. Übrigens glaube ich dass die Probleme teilweise von HW ver 2.0 ohne FW update kommen, da ich meine erst nach ein paare Tage updatete und danach erst die Probleme mit einer neueren Modulversion kamen, und mit der alten FW im Auslieferzustand ich keine Probleme hatte... aber ja, das ist anekdotisch :/

Frohe Weihnachten und Guten Rutsch!

Volker Kettenbach

#273
Danke für den Code!
Ich will versuchen, den auch einzubauen.
Ich hoffe, ich komme in den nächsten Tagen noch wie versprochen dazu.

Wg. dem Thema Stabilität:
Welche Firmware Version führt denn bei der HW 2.0 (vermutlich) zu den Instabilitäten?

Noch mal der Aufruf: bitte schickt mal Eure HW und SW Versionen mit einem Vermerkt, ob stabil oder nicht!

Bitte einfach die Tabelle im kommenden Post ergänzen!

Und noch mal der Hinweis:
Mir würde es sehr helfen, wenn jeglicher Code zumindest als Patch oder - noch viel besser - als Merge Reuqest über Gitlab eingebracht würde:
https://gitlab.com/volkerkettenbach/FHEM-TPLink-Kasa
Git(Lab) nicht zu verwenden ist, wie wenn Du einen Auto-Motor mit einem Taschenmesser auseinander baust, obwohl neben dran ein Werkzeugwagen mit dem feinsten Spezialwerkzeug steht.

Volker Kettenbach

Übersicht der HW und Software Versionen








ProduktHWSWStabil?Owner
HS1101.01.0.8 Build 151101 Rel.24452JaVolkerKettenbach
HS1102.01.4.3 Build 171009 Rel.104144JaVolkerKettenbach

delta8585

Zitat von: Volker Kettenbach am 30 Dezember 2018, 10:50:23
Übersicht der HW und Software Versionen








ProduktHWSWStabil?Owner
HS1101.01.0.8 Build 151101 Rel.24452JaVolkerKettenbach
HS1102.01.4.3 Build 171009 Rel.104144JaVolkerKettenbach











ProduktHWSWStabil?Owner
HS1101.01.0.8 Build 151101 Rel.24452JaVolkerKettenbach
HS1102.01.4.3 Build 171009 Rel.104144JaVolkerKettenbach
HS1101.01.1.4 Build ? Rel.?neinJohannes Maier

BM030












ProduktHWSWStabil?Owner
HS1101.01.0.8 Build 151101 Rel.24452JaVolkerKettenbach
HS1102.01.4.3 Build 171009 Rel.104144JaVolkerKettenbach
HS1101.01.1.4 Build ? Rel.?neinJohannes Maier
HS1101.01.2.5 Build 171213 Rel.101523jaBM030


Volker Kettenbach












ProduktHWSWCloudStabil?Owner
HS1101.01.0.8 Build 151101 Rel.24452NeinJaVolkerKettenbach
HS1102.01.4.3 Build 171009 Rel.104144NeinJaVolkerKettenbach
HS1101.01.1.4 Build ? Rel.??neinJohannes Maier (delta8585)
HS1101.01.2.5 Build 171213 Rel.101523?jaBM030

BM030












ProduktHWSWCloudStabil?Owner
HS1101.01.0.8 Build 151101 Rel.24452NeinJaVolkerKettenbach
HS1102.01.4.3 Build 171009 Rel.104144NeinJaVolkerKettenbach
HS1101.01.1.4 Build ? Rel.??neinJohannes Maier (delta8585)
HS1101.01.2.5 Build 171213 Rel.101523neinjaBM030

TheTrumpeter











ProduktHWSWCloudStabil?Owner
HS1101.01.0.8 Build 151101 Rel.24452NeinJaVolkerKettenbach
HS1102.01.4.3 Build 171009 Rel.104144NeinJaVolkerKettenbach
HS1101.01.1.4 Build ? Rel.??neinJohannes Maier (delta8585)
HS1101.01.2.5 Build 171213 Rel.101523neinjaBM030
HS1102.01.5.4 Build 180815 Rel.121440?neinTheTrumpeter
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

TheTrumpeter

Irgendwelche Neuigkeiten dazu?
Ich habe weiterhin ein paar solcher Logfile-Einträge pro Tag:

2019.02.13 19:31:25 1: TPLinkHS110: LBE250.Steckdose: Received zero bytes of realtime data. Cannot process realtime data
2019.02.13 19:34:27 1: TPLinkHS110: LBE250.Steckdose Error updating daystat. Success: 0, json:
2019.02.13 19:44:28 1: TPLinkHS110: LBE250.Steckdose Error updating daystat. Success: 0, json:
2019.02.13 19:53:28 1: TPLinkHS110: LBE250.Steckdose Error updating daystat. Success: 0, json:
2019.02.13 20:00:28 1: TPLinkHS110: LBE250.Steckdose: Received zero bytes of realtime data. Cannot process realtime data
2019.02.13 20:16:28 1: TPLinkHS110: LBE250.Steckdose: Received zero bytes of realtime data. Cannot process realtime data
2019.02.13 22:27:35 1: TPLinkHS110: LBE250.Steckdose: Received zero bytes of realtime data. Cannot process realtime data
2019.02.14 06:04:09 1: TPLinkHS110: LBE250.Steckdose: Received zero bytes of realtime data. Cannot process realtime data
2019.02.14 19:55:49 1: TPLinkHS110: LBE250.Steckdose Error updating daystat. Success: 0, json:
2019.02.14 19:57:49 1: TPLinkHS110: LBE250.Steckdose Error updating daystat. Success: 0, json:
2019.02.14 20:33:48 1: TPLinkHS110: LBE250.Steckdose: Received zero bytes of realtime data. Cannot process realtime data
2019.02.15 06:05:18 1: TPLinkHS110: LBE250.Steckdose: Received zero bytes of realtime data. Cannot process realtime data
2019.02.16 19:16:13 1: TPLinkHS110: LBE250.Steckdose: Received zero bytes of realtime data. Cannot process realtime data
2019.02.17 19:26:27 1: TPLinkHS110: LBE250.Steckdose: Received zero bytes of realtime data. Cannot process realtime data
2019.02.17 20:39:32 1: TPLinkHS110: LBE250.Steckdose Error updating daystat. Success: 0, json:
2019.02.17 20:41:32 1: TPLinkHS110: LBE250.Steckdose Error updating daystat. Success: 0, json:
2019.02.17 20:54:32 1: TPLinkHS110: LBE250.Steckdose Error updating daystat. Success: 0, json:
2019.02.17 22:08:37 1: TPLinkHS110: LBE250.Steckdose Error updating daystat. Success: 0, json:
2019.02.17 22:50:39 1: TPLinkHS110: LBE250.Steckdose Error updating daystat. Success: 0, json:
2019.02.17 23:06:38 1: TPLinkHS110: LBE250.Steckdose: Received zero bytes of realtime data. Cannot process realtime data
2019.02.18 21:24:51 1: TPLinkHS110: LBE250.Steckdose Error updating daystat. Success: 0, json:
2019.02.18 21:34:50 1: TPLinkHS110: LBE250.Steckdose: Received zero bytes of realtime data. Cannot process realtime data
2019.02.18 21:35:50 1: TPLinkHS110: LBE250.Steckdose: Received zero bytes of realtime data. Cannot process realtime data
2019.02.19 05:58:17 1: TPLinkHS110: LBE250.Steckdose: Received zero bytes of realtime data. Cannot process realtime data
2019.02.19 06:17:18 1: TPLinkHS110: LBE250.Steckdose: Received zero bytes of realtime data. Cannot process realtime data
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

DS_Starter

Schließe mich TheTrumpeter an. Diese Meldungen gibt es immer wieder. Ich möchte deswegen aber ungern den verbose level 0 einstellen. Vielleicht gibt es ja auch ein paar sinnvolle Meldungen die man lesen sollte.  ;)
Ich wage zu behaupten dass frühere Versionen des Moduls dieses Problem in dieser Form nicht hatten, kann mich aber auch täuschen.

LG,
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Volker Kettenbach

Ich denke, dass es nicht frühere Versionen des Moduls waren, sondern frühere Versionen der Firmware.
Wie man an der Tabelle sieht, wird diese ja eifrig upgedatet.
Bei mir aber nicht, da ich meine Steckdosen nicht in der Cloud habe.
Ich selbst kann da wenig machen, da ich die Probleme nicht nachvollziehen kann. Und auch derzeit keine Zeit habe. Vlt. im Laufe des Jahres mal.

steff555

Hi - ich kann Volker da bestätigen: Meiner Meinung nach ist es ein Problem der Firmware in Verbindung mit einer stark genutzten Wlan Umgebung.
Ich habe 4 HS110 (1 x Version 1 / 3 x Version V3 (bzw. V2 laut App)). Leider haben alle 3 V3 Versionen massive Probleme (Die V1 gar nicht). Die HS110 sind alle im gleichen Raum im Umkreis von ca 3m.
Ich hatte auch Kontakt mir TP-Link - aber leider können (bzw. wollen) die nicht wirklich helfen.
Ich habe nun über Wochen hinweg diverses ausprobiert (Wlan Kanal geändert, Wlan Sendeleistung auf 100% / 50%, Reset der HS110 , Firewall offen für die Dosen oder mal nur der Zeitserver pool.org ...) Leider hat alles keine Besserung gebracht.
Dann habe ich in meinem Router (Fritz 7490) die An- und Abmeldeversuche protokollieren lassen und habe festgestellt, dass sich die V3 Versionen sich alle 5 Minuten (mal alle Stunde) ab und wieder neu anmelden! Leider habe ich in meiner Umgebung (Mehrfamilienhaus) ca. 60-70 Wlan-Funknetze. Auch wenn man das nicht unbedingt machen sollte: Ich habe testweise auf Kanal 13 gewechselt und siehe da: Seit dem haben sich die Wlan Ab - und Anmeldungen auf ein Minimum reduziert (ca. 4-20 am Tag, von vorher ca. 50-80)! Und damit auch die Meldungen in FHEM!
Ich vermute dies hängt direkt mit den Meldungen in FHEM zusammen - wenn die HS110 gerade nicht erreichbar ist, dann klappt der decode JSON halt nicht und es kommt zu den oben genannten Meldungen (Timeout).
Ich hoffe auf ein baldiges Firmware-Update (in der Hoffnung, das dies dann auch eine stabile Version sein wird - ansonsten würde ich mich über eine PM freuen, falls noch jemand die V1.4.3 als *.bin file rumliegen hat.
Wer also diese Probleme hat, sollte auf jeden Fall mal die An- und Abmeldungen protokollieren und ggf. auf einen ,,exotsichen"  Kanal wechseln und weiter beobachten.
@Volker: Wäre aber trotzdem schön, wenn du bei Gelegenheit mal die von chani666 genannten Zeilen anpassen könntest (dann muß nicht nach jedem Update die Sicherung ,,24_TPLINKHS110.pm" zurückgespielt werden)
Danke & schöne Grüße
Steff



Volker Kettenbach

Hallo steff555,

danke für die systematische Analyse.
Ich kann von meiner Seite bestätigen, dass meine HS110 mit alter (also die zum Kaufzeitpunkt) Firmware (kein Update über Cloud möglich, da nicht in Cloud angemeldet) i.d.R. keine Reconnects zum WLAN machen sondern dauerhaft connected sind. Folglich machen Sie auch keine Probleme mit FHEM. Meine WLAN Umgebung würde ich eher als ruhig bezeichnen und der Empfang der Geräte ist gut, da sie immer recht nah (wenige Meter) von einem Access-Point entfernt sind.

Sorry, den Code von chani666 hatte ich übersehen. Ich kann hier nur immer wieder darauf hinweisen, dass ein Merge Request oder zumindest in Issue auf https://gitlab.com/volkerkettenbach/FHEM-TPLink-Kasa der wesentlich bessere Weg ist, Code bei zu tragen.

Ich habe den Code von chani666 gerade eingebaut und ins Gitlab gepushed: https://gitlab.com/volkerkettenbach/FHEM-TPLink-Kasa
Das FHEM-SVN sollte meiner Kenntnis nach morgen das aktuelle Modul haben.

Gruß
Volker