Hallo,
ich versuche hier ein falsches Reading abzufangen:
PV_Leistung-temp_2:I_DC_Power.* {
sprintf("%.2f",(ReadingsNum ($name, 'I_DC_Power', 0) +ReadingsNum ($name, 'B_Instantaneous_Power', 0) + ReadingsNum ($name, 'M_AC_POWER_FeendIn', 0)))
}
soll eigentlich Werte < 7.5 erzeugen.
Hin und wieder kommt aber ein Ausreißer der um Faktor 10 zu hoch ist.
Mein Versuch da abzufangen mit:
PV_Leistung_2:PV_Leistung-temp_2.* {
my $pwr = ReadingsNum ($name, 'PV_Leistung-temp_2', 0);
$pwr = $pwr > 8 ? $pwr : $pwr/10;
$pwr
}
resultiert mit Log-Meldungen:
PERL WARNING: Useless use of division (/) in void context at (eval 97764) line 3
Kann mich jemand auf die richtige Spur lenken?
Mit besten Grüßen
Martin
Moin,
ich würde es mit einer if Abfrage versuchen
cheers mi.ke
Du kannst es in Klammern setzen
$pwr = $pwr > 8 ? $pwr : ($pwr/10);
aber es gehört doch umgedreht
$pwr = $pwr > 8 ? $pwr/10 : $pwr;
Größer 8 möchtest du doch durch 10 teilen!?
@mi.ke das ist eine if-Abfrage, nur in verkürzter Schreibweise.