[Gelöst] Problem mit dem Escapen von "%" in sprintf (Invalid conversion in sprintf)

Begonnen von sunrise, 19 November 2023, 12:09:44

Vorheriges Thema - Nächstes Thema

sunrise

Hallo zusammen!

Ich habe eine Verständnisfrage zu folgendem, wo offenbar die Syntax falsch ist, ich aber nicht verstehe, wie ich es richtig machen muss. Ich möchte, dass nach den Werten jeweils "%" bzw. "Hz" steht, aber "%" geht hier offenbar nicht, weil es als Teil der Formatierung angesehen wird.

Aktuell so (mit Fehlermeldungen im Logfile, s.u.):
attr Mythz_Plot4_Fans label sprintf("Zuluft_Soll %0.0f%, Zuluft_Ist %0.0fHz, Abluft_Soll %0.0f%, Abluft_Ist %0.0fHz, Fortluft_Ist %0.0fHz", $data{currval1}, $data{currval2}, $data{currval3}, $data{currval4}, $data{currval5})
Muss ich da etwas escapen? Aber wie? Mit jeweils einem Backslash (\) vor den beiden %-Zeichen, die nach dem Wert für "Zuluft_Soll" und "Abluft_Soll" angezeigt werden sollen, scheint es auch nicht korrekt zu sein ...
attr Mythz_Plot4_Fans label sprintf("Zuluft_Soll %0.0f\%, Zuluft_Ist %0.0fHz, Abluft_Soll %0.0f\%, Abluft_Ist %0.0fHz, Fortluft_Ist %0.0fHz", $data{currval1}, $data{currval2}, $data{currval3}, $data{currval4}, $data{currval5})(Dass "Soll" in % und "Ist" in Hz ausgegeben werden, ist so gewollt bzw. vorgegeben.)

... denn es kommen dieselben Fehlermeldungen im Logfile:
2023.11.19 11:27:02 1: PERL WARNING: Invalid conversion in sprintf: "%," at (eval 47044) line 1.
2023.11.19 11:27:02 3: eval: { sprintf("Zuluft_Soll %0.0f%, Zuluft_Ist %0.0fHz, Abluft_Soll %0.0f%, Abluft_Ist %0.0fHz, Fortluft_Ist %0.0fHz", $data{currval1}, $data{currval2}, $data{currval3}, $data{currval4}, $data{currval5}) }

Die Darstellung des Labels über dem Plot sieht - trotz Fehlermeldungen im Logfile (s.o.) - wie gewünscht aus:

ZitatZuluft_Soll 57%, Zuluft_Ist 27Hz, Abluft_Soll 58%, Abluft_Ist 42Hz, Fortluft_Ist 0Hz

Danke für Eure Hinweise! :)
Viele Grüße/kind regards
sunrise
_________________
Tecalor THZ 303 (SOL, 2006/09-2008/08), FW 2.16 | FHEM THZ module testing with FW 2.06 (INTEGRAL, 2006/12-2008/08) & FW 2.14 (SOL, 2002/10-2004/08) on Raspberry Pi 2


sunrise

Ganz lieben Dank! ❤️ Passt! 🤗

Und die Referenz, die Du verlinkt hast, habe ich mir gleich als Favorit abgespeichert - sehr hilfreich! ;)
Viele Grüße/kind regards
sunrise
_________________
Tecalor THZ 303 (SOL, 2006/09-2008/08), FW 2.16 | FHEM THZ module testing with FW 2.06 (INTEGRAL, 2006/12-2008/08) & FW 2.14 (SOL, 2002/10-2004/08) on Raspberry Pi 2