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
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?
hast du mal folgendes probiert?
"Leistung in W Max sprintf("%%.2f",$data{max1}), Last $data{currval1}"
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.
"Leistung in W Max ". sprintf("%.2f",$data{max1}) ."Last $data{curval1}"
gruss
andre
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.
ZitatEine kurze Erklärung für den Perl noob wäre super.
verkettungsoperator. teilstrings zu einem ganzen string verketten.
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})
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