FHEM Forum

FHEM - Hausautomations-Systeme => Unterstützende Dienste => Thema gestartet von: Petrosilius Zwackelmann am 29 Juni 2014, 16:26:13

Titel: 70_JSONMETER.pm Timeout Fehler
Beitrag von: Petrosilius Zwackelmann am 29 Juni 2014, 16:26:13
Hallo tupol

ich teste gerade dein Modul. Zunächst dachte ich alles läuft auf Anhieb, dann habe ich festgetellt dass die zyklischen Abragen an einem Timeout scheitern.
Ich verwende die Variante EFR-Smart Grid Hub...

Die Eingabe von jsonAnalysis funktioniert und die Daten werden ins Log-File geschrieben...
... die zyklischen Abfragen führen zu folgender Fehlermeldung.

2014.06.29 15:10:39 1: powermeter Error: Timeout when connecting to host 192.168.178.44
2014.06.29 15:10:39 1: Timeout for JSONMETER_GetJsonFile reached, terminated process 19536

Hast du hier eine Idee?
Gruß Manuel



define powermeter JSONMETER EFR 192.168.178.44 300
attr powermeter doStatistics 1
attr powermeter icon icoTool
attr powermeter pathString ?LogName=user&LogPSWD=user
attr powermeter room SYSTEM,Energie_Monitoring

define FileLog_powermeter FileLog /share/external/sds1/powermeter%Y.log powermeter
attr FileLog_powermeter logtype text
attr FileLog_powermeter room Energie_Monitoring

define weblink_powermeter SVG FileLog_powermeter:powermeter:CURRENT
attr weblink_powermeter label "Zähler$data{currval1}kWh, Leistung $data{currval2}W L1 $data{currval3}W, L2 $data{currval4}W , L3 $data{currval5}W"
attr weblink_powermeter room Energie_Monitoring

Titel: Antw:70_JSONMETER.pm Timeout Fehler
Beitrag von: tupol am 03 Juli 2014, 07:10:00
Hallo,

das ist tatsächlich seltsam. Bitte mal verbose auf 5 setzen und das Logfile posten.

Gruß

Tupol
Titel: Antw:70_JSONMETER.pm Timeout Fehler
Beitrag von: DerBodo am 11 Juli 2014, 12:12:36
Hallo Tupol,

ich erhalte den gleichen Fehler:


2014.07.11 12:07:50 4: easymeter: opening socket to host 192.168.200.8 port 80
2014.07.11 12:07:50 4: easymeter: Get json file from http://192.168.200.8:80/json.txt?LogName=XXXXX&LogPSWD=XXXXX
2014.07.11 12:08:00 1: Timeout for JSONMETER_GetJsonFile reached, terminated process 2369
2014.07.11 12:08:00 1: easymeter Error: Timeout when connecting to host 192.168.200.8


Wenn ich den link in den Browser kopiere habe ich sofort die Anzeige der Daten.

Gruß

Bodo
Titel: Antw:70_JSONMETER.pm Timeout Fehler
Beitrag von: tupol am 11 Juli 2014, 13:12:52
Das scheint am Timeout zu liegen. Manchmal brauchen HTTP-Server ewig lange um mitzuteilen, dass die Seite jetzt komplett gesendet wurde. D.h. Du siehst den Text zwar sofort, aber das Ladesymbol rotiert noch mehrere Sekunden weiter.

Am einfachsten wäre es, wenn Du es mal selber testes und ich übernehme es dann.
In Höhe von Zeile 345 gibt es den Code

   $hash->{helper}{RUNNING_PID} = BlockingCall("JSONMETER_GetJsonFile", $name,
                                          "JSONMETER_ParseJsonFile", 10,
                                          "JSONMETER_UpdateAborted", $hash)
                                unless(exists($hash->{helper}{RUNNING_PID}));

Hier müßte die 10 durch einen höheren Wert ersetzt werden. (Nicht vergessen nach der Änderung ein "reload 70_JSONMETER.pm" oder einen Restart zu machen.
Titel: Antw:70_JSONMETER.pm Timeout Fehler
Beitrag von: DerBodo am 11 Juli 2014, 13:26:24
Hallo Tupol,


sieht soweit ganz gut aus. Ich hatte bei einem manuellen get jsonFile gesehen, dass die Anfrage 21 Sekunden läuft.
Die richtige Stelle im Modul hatte ich allerdings leider noch nicht gefunden.

Ich habe den Wert nun bei mir auf 25 gesetzt und werde das ganze mal beobachten.

Vielen Dank für die schnelle Hilfe !

Gruß

Bodo
Titel: Antw:70_JSONMETER.pm Timeout Fehler
Beitrag von: tupol am 11 Juli 2014, 19:30:31
Ich habe dem Modul gerade das Attribute "timeOut" und eine runtime-Messung für "get <device> jsonFile" spendiert.

Morgen im update.
Titel: Antw:70_JSONMETER.pm Timeout Fehler
Beitrag von: Petrosilius Zwackelmann am 12 Juli 2014, 14:27:31
Hallo Tupol,

danke das update hat mir geholfen...
Gruß Manuel