Guten Abend,
Ich versuche seit ein paar Tagen das Volkszaehler Modul zu nutzen. Leider bringt das Modul FHEM zum Absturz und ich wollte erst einmal herausfinden, ob es zum Modul support gibt.
Zu den Details
Ich habe 2 Devices definiert und an den Volkszaehler angebunden. Die laufen grundsätzlich, aber FHEM stürzt nach ein paar Stunden ab.
Die letzte Meldung im log ist
ZitatModification of non-creatable array value attempted, subscript -1 at ./FHEM/23_VOLKSZAEHLER.pm line 153.
FHEM läuft danach nicht mehr. Nach Reboot des Raspberries läuft es dann wieder. Verbose = 5 auf device Ebene bringt leider keine Erkenntnis. Ich könnte jetzt das gesamte System auf Level 5 laufen lassen oder mir den Code / die Werte mal im einzelnen anschauen und ausgeben. Ich fürchte aber es werden sehr viele Daten, da das System doch mehrere Stunden stabil läuft. Ich habe den Eindruck das Problem kommt vom Device für den Stromzähler, der ist über SML angebunden.
Hier das Listing des Stromdevices (ohne die statistischen readings)
Zitat
Internals:
Channel 62551880-405d-11ea-a71f-0172aab65ba6
DEF 192.168.178.56 80 62551880-405d-11ea-a71f-0172aab65ba6 average 60
FUUID 5e2ddaf4-f33f-c8fc-a974-b72b18f7bd34d6da
FVERSION 23_VOLKSZAEHLER.pm:?/2020-01-26
Host 192.168.178.56
Host_Port 80
NAME Verb.Haus.Strom
NR 347
Reading AVERAGE
STATE <embed src='fhem/SVGX_widget?type=bar&subtype=pink&size=200x120&p1=60.5685559259705&s1=150.0 kWh&p2=3421.589&s2=1 W&p3=EV'/>
TYPE VOLKSZAEHLER
READINGS:
2020-02-12 21:32:33 AVERAGE 3421.589
2020-02-12 21:58:47 CONSUMPTION 1.4
2020-02-12 21:58:47 Energie 60.5685559259705
2020-02-12 21:32:32 FROM 2020-02-12 21:32:32
2020-02-12 21:32:33 LAST 3421.589
2020-02-12 21:32:33 LAST_AT 2020-02-12 21:32:33
2020-02-12 21:32:33 MAX 3421.58859504611
2020-02-12 21:32:33 MAX_AT 2020-02-12 21:32:33
2020-02-12 21:32:33 MIN 3421.58859504611
2020-02-12 21:32:33 MIN_AT 2020-02-12 21:32:33
2020-02-12 21:32:33 TO 2020-02-12 21:32:33
Attributes:
delay 60
event-on-change-reading AVERAGE,Energie,statAVERAGEDayLast,statAVERAGEMonthLast,statAVERAGEYearLast,statEnergieDayLast,statEnergieMonthLast,statEnergieYearLast
period 60
room ESPEasy
stateFormat <embed src='fhem/SVGX_widget?type=bar&subtype=pink&size=200x120&p1=Energie&s1=150.0 kWh&p2=AVERAGE&s2=1 W&p3=EV'/>
userReadings Energie integral {ReadingsVal($name,"AVERAGE",0)/3600000}
verbose 5
Wäre froh ein paar Tipps zu bekommen, wie ich vorgehen sollte.
Vielen Dank
Guido Fett
Guten Abend,
da ich wohl der einzige mit dem Problem bin, habe ich es selber gelöst.
Das Problem tritt dann auf, wenn 0 Werte vom Volkszähler übertragen werden für
Zitatprint Dumper($decoded)
ist das ein Problem bei diesen Ergebnissen
Zitat
$VAR1 = {
'data' => {
'tuples' => [],
'uuid' => '8fb9f300-405d-11ea-a77c-a987446b9352',
'to' => '1581944199531',
'from' => '1581944199531',
'rows' => 1,
'average' => 0,
'consumption' => 0
},
'version' => '0.3'
};
Ich habe dann folgendes geändert, bzw den Originalcode auskommentiert und ersetzt.
Zitat#if ($tuplescount > 0 && $decoded->{data}->{rows} > 0){
if (($count >-1) and ($tuplescount > 0 && $decoded->{data}->{rows} > 0)){
Seitdem läuft er nicht mehr in das Problem, denke mal die Ergebnisse stimmen immer noch in FHEM
Viele Grüße
Guido Fett
Das Problem habe ich auch grad.
Danke für die Untersuchung, ich ändere es jetzt auch (in 23_VOLKSZAEHLER.pm Zeile 152).
Mal sehen, ob es bei mir auch läuft.
Vielen Dank Guido!
Hallo Guido,
die Änderung alleine hatte in der aktuellen 23_VOLKSZAEHLER.pm nicht ausgereicht. Ich musste in den Zeilen 118ff noch die Variable einkommentieren.
...
#used for debugging
#print $response->content."\n";
#print Dumper($decoded);
my $count = $decoded->{data}->{rows}||0;
# print $count, "\n";
$count = $count - 2;
# print $count, "\n";
...
Anbei die vollständig geänderte Datei.
Gruß,
MrPerfect
Hallo Mr. Perfect,
da war ich dann doch nicht der einzige mit dem Problem. Die Zeilen 118 ff sehen bei mir genauso aus, kann mich aber nicht erinnern, sie geändert zu haben.
Viele Grüße
Guido
Hi,
da stecken noch mehr Bugs im Modul 23_VOLKSZAEHLER.pm
Average, Min und Max werfen immer nur einen Momentanwert aus, der DELAY Sekunden in der Vergangenheit liegt, statt vom Zeitraum bis jetzt.
Habe hier https://forum.fhem.de/index.php/topic,125669.msg1215779.html#msg1215779 (https://forum.fhem.de/index.php/topic,125669.msg1215779.html#msg1215779)
mal eine neue Version eingestellt, wo die Average/min/max Abfragen auch funktionieren.
Grüße.
Hallo,
nutzt im Moment jemand das Modul 23_volkszaehler.pm mit der aktuellen FHEM und Perl Version auf einem Raspberry?
Ich habe leider eine Fehlermeldung:
Undefined subroutine &main::VOLKSZAEHLER_Initialize called at fhem.pl line 2764
Kennt sich jemand damit aus?
Mfg
Florian