[Gelöst]: Nach Neuinstallation PERL WARNING: Redundant argument in sprintf

Begonnen von daheim, 14 Oktober 2022, 14:37:44

Vorheriges Thema - Nächstes Thema

daheim

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

Otto123

#1
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
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

betateilchen

Die runden Klammern um das ReadingsVal() sind auch zuviel.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

daheim

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....