Hallo,
gibt es eine Möglichkeit diese Meldung:
Error evaluating hmod_sq_bla userReading percent: Illegal division by zero at ./FHEM/99_bla_myUtils.pm line 38.
zu vermeiden, wenn ich vorübergehend meiner Funktion :
sub usrpercent {
my $name = shift;
my $number = shift;
my $ek = shift;
my $ep=$number*$ek;
my $k=ReadingsNum($name,"blibla","0")*$number;
my $p=sprintf('%.2f',($k/$ep-1)*100);
return $p;
}
in $number und $ek eine 0 übergebe ?
Das Device vorübergehend zu deaktivieren ist nicht der Weg den ich suche, das Device soll weiterhin in einer readingsGroup dargestellt werden, nur halt mit Null.
Gruß
Thomas
Hallo Thomas,
Also nur für die FHEM Kommandozeile zum testen 8)
{my $ep=0;;$ep='DeinGewünschterWert' if ($ep==0)}
Gruß Otto
sub usrpercent {
my $name = shift;
my $number = shift;
my $ek = shift;
my $ep=$number*$ek;
my $k=ReadingsNum($name,"blibla","0")*$number;
my $p= ($ek == 0) ? "0.00" : sprintf('%.2f',($k/$ep-1)*100);
return $p;
}
Aber der Threadtitel ist mal wieder eine Vollkatastrophe.
--
Danke, beiden.
Zitat
Aber der Threadtitel ist mal wieder eine Vollkatastrophe.
Die Frage hätt ich mir auch besser gespart, erst nach dem stellen hab ich mir Gedanken gemacht, um dann selbst auf deinen Lösungsansatz zu kommen.
Zitat von: TomLee am 04 Februar 2021, 13:28:28
erst nach dem stellen hab ich mir Gedanken gemacht,
Das beweist meine Theorie...
Zumal es nichts mit Perl zu tun hat :)
Allgemeine Frage(n) zum rechnen ...
Was soll rauskommen bei der Division durch null? Udos Vorschlag ist eine Variante - meine Vorschlag wäre eher 99999999999999
Zitat von: Otto123 am 04 Februar 2021, 19:29:34
Udos Vorschlag ist eine Variante - meine Vorschlag wäre eher 99999999999999
Das widerspricht aber dem geplanten Vorhaben...
Zitat von: TomLee am 04 Februar 2021, 12:54:08
das Device soll weiterhin in einer readingsGroup dargestellt werden, nur halt mit Null.