Modul Volkszaehler (inoffiziell) & FHEM Abbruch

Begonnen von fettgu, 12 Februar 2020, 22:05:30

Vorheriges Thema - Nächstes Thema

fettgu

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

fettgu

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

MrPerfect

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!

MrPerfect

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

fettgu

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

JoergBo

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 
mal eine neue Version eingestellt, wo die Average/min/max Abfragen auch funktionieren.

Grüße.
RasPI4, S5-95U, Hue, Volkszaehler, 1wireTemp, HMLan, sduino, Wlan-IR-Gateway, TelegramBot, Alexa, ...

fourstroker

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