Hallo zusammen,
ich musste meinen RPi neu aufsetzten. Nachdem ich das Backup zurückgespielt habe, bekomme ich den Fehler (die Anzeige funktioniert jedoch?!):
2022.10.14 14:30:27 1: PERL WARNING: Redundant argument in sprintf at (eval 1170) line 1.
2022.10.14 14:30:27 3: eval: {sprintf("%.0f",4500-(split " ",(ReadingsVal("HeizoelReading","Heizoel","")))[10],0)}
2022.10.14 14:30:27 1: stacktrace:
2022.10.14 14:30:27 1: main::__ANON__ called by (eval 1170) (1)
2022.10.14 14:30:27 1: (eval) called by fhem.pl (4917)
2022.10.14 14:30:27 1: main::readingsEndUpdate called by ./FHEM/98_HTTPMOD.pm (2437)
2022.10.14 14:30:27 1: HTTPMOD::ReadCallback called by FHEM/HttpUtils.pm (729)
2022.10.14 14:30:27 1: main::__ANON__ called by fhem.pl (779)
2022.10.14 14:30:27 1: PERL WARNING: Redundant argument in sprintf at (eval 1172) line 1.
2022.10.14 14:30:27 3: eval: {sprintf("%.0f",(ReadingsVal("Heizoel_esyoil","Nachtanken_Hackertsbergweg",""))+(ReadingsVal("Heizoel_esyoil","Nachtanken_SchneerWeg","")),0)}
2022.10.14 14:30:27 1: stacktrace:
2022.10.14 14:30:27 1: main::__ANON__ called by (eval 1172) (1)
2022.10.14 14:30:27 1: (eval) called by fhem.pl (4917)
2022.10.14 14:30:27 1: main::readingsEndUpdate called by ./FHEM/98_HTTPMOD.pm (2437)
2022.10.14 14:30:27 1: HTTPMOD::ReadCallback called by FHEM/HttpUtils.pm (729)
2022.10.14 14:30:27 1: main::__ANON__ called by fhem.pl (779)
Mein userReadings sieht so aus:
Nachtanken_Hackertsbergweg {sprintf("%.0f",4500-(split " ",(ReadingsVal("HeizoelReading","Heizoel","")))[10],0)},
Nachtanken_SchneerWeg {sprintf("%.0f",2500)},
Nachtanken_gesamt {sprintf("%.0f",(ReadingsVal("Heizoel_esyoil","Nachtanken_Hackertsbergweg",""))+(ReadingsVal("Heizoel_esyoil","Nachtanken_SchneerWeg","")),0)},
Kosten_Hackertsbergweg {sprintf("%.0f",(ReadingsVal("Heizoel_esyoil","Nachtanken_Hackertsbergweg",""))/100*(ReadingsVal("Heizoel_esyoil","OelPreisCheck24","")))},
Kosten_SchneerWeg {sprintf("%.0f",(ReadingsVal("Heizoel_esyoil","Nachtanken_SchneerWeg",""))/100*(ReadingsVal("Heizoel_esyoil","OelPreisCheck24","")))},
Kosten_gesamt {sprintf("%.0f",(ReadingsVal("Heizoel_esyoil","Nachtanken_gesamt",""))/100*(ReadingsVal("Heizoel_esyoil","OelPreisCheck24","")))}
Ich hoffe das mir jemand das Brett vorm Kopf wegnehmen kann, bevor ich den Monitor dran hänge...
Viele Grüße
Daniel
Hallo Daniel,
kein Fehler eine Warnung.
Ich meine die Komma Null am Ende ist zuviel. https://perldoc.perl.org/functions/sprintf#order-of-arguments
Ohne Warnung
{sprintf("%.0f",4500-(split " ",(ReadingsVal("HeizoelReading","Heizoel","1 2 3 4 5 6 7 8 9 10 11")))[10])}
und mit Hinweis von Betateilchen und man könnte noch zwei Klammern sparen
{ sprintf "%.0f",4500 - (split " ", ReadingsVal("HeizoelReading","Heizoel","1 2 3 4 5 6 7 8 9 10 11") )[10] }
Mit Warnung
{sprintf("%.0f",4500-(split " ",(ReadingsVal("HeizoelReading","Heizoel","1 2 3 4 5 6 7 8 9 10 11")))[10],0)}
Gruß Otto
Die runden Klammern um das ReadingsVal() sind auch zuviel.
Guten Abend zusammen,
soweit so gut :-) Nachdem ich eure Tipps umgesetzt habe, habe ich die Warnung nicht mehr.
Jedoch nach einem Neustart habe ich jetzt diese Warnungen:
2022.10.16 19:15:43 1: PERL WARNING: Use of uninitialized value $2 in concatenation (.) or string at ./FHEM/98_HTTPMOD.pm line 507, <$fh> line 72.
2022.10.16 19:15:43 1: stacktrace:
2022.10.16 19:15:43 1: main::__ANON__ called by ./FHEM/98_HTTPMOD.pm (507)
2022.10.16 19:15:43 1: HTTPMOD::AttrFn called by fhem.pl (3961)
2022.10.16 19:15:43 1: main::CallFn called by fhem.pl (3183)
2022.10.16 19:15:43 1: main::CommandAttr called by fhem.pl (1274)
2022.10.16 19:15:43 1: main::AnalyzeCommand called by fhem.pl (1125)
2022.10.16 19:15:43 1: main::AnalyzeCommandChain called by fhem.pl (1413)
2022.10.16 19:15:43 1: main::CommandInclude called by fhem.pl (1274)
2022.10.16 19:15:43 1: main::AnalyzeCommand called by fhem.pl (1125)
2022.10.16 19:15:43 1: main::AnalyzeCommandChain called by fhem.pl (1413)
2022.10.16 19:15:43 1: main::CommandInclude called by fhem.pl (626)
2022.10.16 19:15:43 1: PERL WARNING: Use of uninitialized value $2 in concatenation (.) or string at ./FHEM/98_HTTPMOD.pm line 507, <$fh> line 75.
2022.10.16 19:15:43 1: stacktrace:
2022.10.16 19:15:43 1: main::__ANON__ called by ./FHEM/98_HTTPMOD.pm (507)
2022.10.16 19:15:43 1: HTTPMOD::AttrFn called by fhem.pl (3961)
2022.10.16 19:15:43 1: main::CallFn called by fhem.pl (3183)
2022.10.16 19:15:43 1: main::CommandAttr called by fhem.pl (1274)
2022.10.16 19:15:43 1: main::AnalyzeCommand called by fhem.pl (1125)
2022.10.16 19:15:43 1: main::AnalyzeCommandChain called by fhem.pl (1413)
2022.10.16 19:15:43 1: main::CommandInclude called by fhem.pl (1274)
2022.10.16 19:15:43 1: main::AnalyzeCommand called by fhem.pl (1125)
2022.10.16 19:15:43 1: main::AnalyzeCommandChain called by fhem.pl (1413)
2022.10.16 19:15:43 1: main::CommandInclude called by fhem.pl (626)
2022.10.16 19:15:43 1: PERL WARNING: Use of uninitialized value $2 in concatenation (.) or string at ./FHEM/98_HTTPMOD.pm line 507, <$fh> line 78.
2022.10.16 19:15:43 1: stacktrace:
2022.10.16 19:15:43 1: main::__ANON__ called by ./FHEM/98_HTTPMOD.pm (507)
2022.10.16 19:15:43 1: HTTPMOD::AttrFn called by fhem.pl (3961)
2022.10.16 19:15:43 1: main::CallFn called by fhem.pl (3183)
2022.10.16 19:15:43 1: main::CommandAttr called by fhem.pl (1274)
2022.10.16 19:15:43 1: main::AnalyzeCommand called by fhem.pl (1125)
2022.10.16 19:15:43 1: main::AnalyzeCommandChain called by fhem.pl (1413)
2022.10.16 19:15:43 1: main::CommandInclude called by fhem.pl (1274)
2022.10.16 19:15:43 1: main::AnalyzeCommand called by fhem.pl (1125)
2022.10.16 19:15:43 1: main::AnalyzeCommandChain called by fhem.pl (1413)
2022.10.16 19:15:43 1: main::CommandInclude called by fhem.pl (626)
Wo kann ich suchen, um diese Warnung auch noch in den Griff zu bekommen?
Viele Grüße
Daniel
EDIT:
Ich weiß woran es liegt, ich übergebe dynamisch die Menge an die WebSeite, jedoch ist dann die Variable leer. Daher ignoriere ich das....