[gelöst] Pluszeichen bei positiver Zahl?

Begonnen von mi.ke, 18 Februar 2019, 19:08:21

Vorheriges Thema - Nächstes Thema

mi.ke

moin,
ich schaff es leider alleine nicht.

Ich möchte ein Reading mit dem Wert z.B. 2.2902 mit nur einer Nachkommastelle (gerundet) darstellen.
So weit so gut.
stateformat {sprintf("%.1f",ReadingsVal($name,"DIV",0)}

Bei negativen Werten kommt wie erwartet ein führendes Minus.
Nun soll das Ergebnis aber bei positiven Werten ein Pluszeichen anzeigen.

Laut Recherche über gxxgle kann bei Perl mit dem Parameter +d genau dieses veranlasst werden.

Ich hätte jetzt erwartet, dass ein  {sprintf("%+d.1f", ....)} funktioniert, aber als Resultat kommt +2.1f

Habe jetzt schon alles Mögliche probiert, aber es scheinen nur ganze Zahlen zu funktionieren.
Das runden wird anscheinend als Text interpretiert.

... ich kriegs nicht hin.
Kann mir jemand helfen?

vielen Dank im Voraus

Cheers

mi.ke
FHEM 5.9 | RPi4 + 5 x RPi(Z) + FB7590 + FB 6890 LTE via LAN und WAN (VPN) verbunden.
2 x CUL868 + 3 x RFXTRX(e) + 6 x HMwLanGW + 4 x z2tGw + 5 x LGW + 2 x IRBlast + CO2 +++
FS20, FHT, FMS, Elro(mod), CM160, Revolt, LGTV, STV, AVR, withings, HM-sec-*, HM-CC-RT-DN, AMAD, PCA301, arlo, Aqara

amenomade

Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

mi.ke

Ok, das funktioniert so, vielen Dank.

Ich hatte versuche zu escapen und/oder Zeichen dazuzufügen, aber weniger ist ja manchmal mehr.

Danke  und Grüße

Cheers

mi.ke

PS.
Warum das jetzt so ist, ist mir zwar schleierhaft, aber ich versuch es mir einfach mal so zu merken.
FHEM 5.9 | RPi4 + 5 x RPi(Z) + FB7590 + FB 6890 LTE via LAN und WAN (VPN) verbunden.
2 x CUL868 + 3 x RFXTRX(e) + 6 x HMwLanGW + 4 x z2tGw + 5 x LGW + 2 x IRBlast + CO2 +++
FS20, FHT, FMS, Elro(mod), CM160, Revolt, LGTV, STV, AVR, withings, HM-sec-*, HM-CC-RT-DN, AMAD, PCA301, arlo, Aqara