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
Hallo,
das ist tatsächlich seltsam. Bitte mal verbose auf 5 setzen und das Logfile posten.
Gruß
Tupol
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
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.
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
Ich habe dem Modul gerade das Attribute "timeOut" und eine runtime-Messung für "get <device> jsonFile" spendiert.
Morgen im update.
Hallo Tupol,
danke das update hat mir geholfen...
Gruß Manuel