Stromzähler ESP8266 "illegal division by zero" nach Neustart

Begonnen von Antimaster, 04 September 2017, 12:52:22

Vorheriges Thema - Nächstes Thema

Antimaster

Hallo,
Ich nutze einen ESP8266 mit Espeasy für meinen Stromzähler. Ich starte jede Nacht um 00:00 den ESP8266 neu. Ich habe jetzt das Problem das im Log ständig einträge mit "Illegal division by zero at (eval 888953) line 3." auftreten. Ich berechene mit einem Script die Leistung/Strom pro Tag / usw. Die Fehlermeldung ist ja richtig, da durch den Neustart noch die Zählimpulse bzw. Time 0 sind bis die Zählscheibe zum ersten mal vorbei kommt. Hat jemand eine Idee wie ich das ändern / unterdrücken kann?

Hier die Meldung aus dem Log
2017.09.04 00:02:06 1: ERROR evaluating my $SELF='StromverbrNoti';my $NAME='ESPEasy_EspEasy_Elektrozaehler';my $EVTPART3='0.00';my $EVTPART5='0.00';my $EVENT='Cou: 0.00 Tim: 0.00 Tot: 0.00';my $EVTPART0='Cou:';my $EVTPART4='Tot:';my $EVTPART2='Tim:';my $EVTPART1='0.00';my $TYPE='ESPEasy';{
my $StromUmlaufzeit = ReadingsVal("ESPEasy_EspEasy_Elektrozaehler","Time","0") / 1000;
my $StromProStd=3.6/$StromUmlaufzeit;;
my $StromVerbrauchAktuell=int((1000000 * $StromProStd + 0.5) / 75);
my $StromProTag = (ReadingsVal("ESPEasy_EspEasy_Elektrozaehler","Total","0") *1000) / 75;
my $Summe = ReadingsVal("Strom","Stromzaehler_jetzt","0") + ReadingsVal("Strom","Offset","0");
fhem("set Strom StromverbrauchTag $StromProTag");;
fhem("set Strom StromAktuell $StromVerbrauchAktuell");;
fhem("set StromZaehlerStand $Summe");;
}: Illegal division by zero at (eval 888953) line 3.



pink99panther

Hallo Antimaster,

Da helfen 2 mal if und my $.......=0 im notify
Ich hab das bei meinen Gaszähler so:
Kellersensor:time:.* {
my $GasUmlaufzeit = ReadingsVal("Kellersensor","time","0") / 1000;
my $count = ReadingsVal("Kellersensor","count","0");

my $GasProStd=0;

if ($GasUmlaufzeit > 0){
$GasProStd=36/$GasUmlaufzeit;
}

my $GasProStdRounded = 0;

if($count > 0){
$GasProStdRounded = int(100 * $GasProStd + 0.5) / 100;
}

my $GasProTag = ReadingsVal("Kellersensor","total","0");
my $Summe = ReadingsVal("Gas","zaehler_vortag","0") + ReadingsVal("Kellersensor","total","0");
fhem("set Gas zaehler_jetzt $Summe");;
fhem("set Gas GasverbrauchStd $GasProStdRounded");;
fhem("set Gas GasverbrauchTag $GasProTag");;
}