Anzahl Nachkommastellen in Plot-Überschrift

Begonnen von Jojo11, 17 November 2013, 11:36:32

Vorheriges Thema - Nächstes Thema

Jojo11

Hallo zusammen,

ich komme nicht weiter  :(
Ich habe erfolgreich einige Plots für Temperatursensoren erstellt.
Mit
attr SVG_FileLog_sensor1_1 label "Dachboden - Min. $data{min1}°C, Max. $data{max1}°C, Aktuell $data{currval1}°C"
werden jeweils die minimalen, maximalen und aktuellen Werte in der Überschrift des Plots angezeigt. Die 1wire-Sensoren liefern dabei teilweise auf 4 Nachkommastellen genaue Werte zurück.
Ist es möglich, diese Nachkommastellen z.B. mit sprintf zu begrenzen?

schöne Grüße
Jo

Firedrake

Hallo,

die Anfrage von Jojo11 ist ja schon etwas älter. Ich konnte aber auch noch keine Lösung für die beschriebene Problematik finden. Bei mir geht es um einen ESA2000 LED.

Ich habe verschiedene Varianten bei Attributes label in folgender Form ausprobiert ohne Erfolg:
"Leistung in W Max $data{sprintf("%%.2f",max1)}, Last $data{currval1}"

Mit den oben stehenden Code bekomme ich die Fehlermeldung "Missing right curly or square bracket at (eval 2451) line 1, within string"

Oder ist sprintf einfach nicht Möglich im Label beim Plot und muss daher das FileLog anstelle dessen mit sprintf auf die gewünschte Nachkommastelle begrenzt werden?

frank

hast du mal folgendes probiert?

"Leistung in W Max sprintf("%%.2f",$data{max1}), Last $data{currval1}"
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Firedrake

Hi,
Danke für die schnelle Antwort.

Zitat von: frank am 26 August 2014, 15:42:19
hast du mal folgendes probiert?

"Leistung in W Max sprintf("%%.2f",$data{max1}), Last $data{currval1}"

Ja das hatte ich bereits probiert gehabt. In dieser Form erscheint im Diagramm folgende Fehlermeldung:
syntax error at (eval 2488) line 1, near "%.2"

Ich denke jedoch das die Schreibweise "%%.2f" korrekt ist. Mit einen % geht es auch nicht.

justme1968

"Leistung in W Max ". sprintf("%.2f",$data{max1}) ."Last $data{curval1}"

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Firedrake

Hallo justme1968,

ja Super, Danke. Bis auf einen kleinen Schreibfehler (currval1 -> ein r zu viel) Funktioniert es nun so:


"Leistung in W Max: ".sprintf("%.1f",$data{max1})." Last $data{curval1}"


Eine kurze Erklärung für den Perl noob wäre super. Ich finde den "Punkt" im FHEM WiKi und Perl Handbuch immer nur Platzhalter für ein beliebiges Zeichen.

frank

ZitatEine kurze Erklärung für den Perl noob wäre super.
verkettungsoperator. teilstrings zu einem ganzen string verketten.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

flurin

Zitat von: Jojo11 am 17 November 2013, 11:36:32
attr SVG_FileLog_sensor1_1 label "Dachboden - Min. $data{min1}°C, Max. $data{max1}°C, Aktuell $data{currval1}°C"
Ist es möglich, diese Nachkommastellen z.B. mit sprintf zu begrenzen?
Jo

probier es mal so:


attr SVG_FileLog_sensor1_1 label sprintf("Dachboden - Min %.1f °C, Max %.1f °C, Aktuell %.1f °C",$data{min1},$data{max1},$data{currval1})


Jojo11

Zitat von: justme1968 am 26 August 2014, 16:31:45
"Leistung in W Max ". sprintf("%.2f",$data{max1}) ."Last $data{curval1}"

gruss
  andre

Vielen Dank! So klappt es jetzt auch bei mir  :)

schöne Grüße
Jo