FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Jojo11 am 17 November 2013, 11:36:32

Titel: Anzahl Nachkommastellen in Plot-Überschrift
Beitrag von: Jojo11 am 17 November 2013, 11:36:32
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
Titel: Antw:Anzahl Nachkommastellen in Plot-Überschrift
Beitrag von: Firedrake am 26 August 2014, 14:52:30
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?
Titel: Antw:Anzahl Nachkommastellen in Plot-Überschrift
Beitrag 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}"
Titel: Antw:Anzahl Nachkommastellen in Plot-Überschrift
Beitrag von: Firedrake am 26 August 2014, 16:24:03
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.
Titel: Antw:Anzahl Nachkommastellen in Plot-Überschrift
Beitrag von: justme1968 am 26 August 2014, 16:31:45
"Leistung in W Max ". sprintf("%.2f",$data{max1}) ."Last $data{curval1}"

gruss
  andre
Titel: Antw:Anzahl Nachkommastellen in Plot-Überschrift
Beitrag von: Firedrake am 26 August 2014, 18:08:02
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.
Titel: Antw:Anzahl Nachkommastellen in Plot-Überschrift
Beitrag von: frank am 26 August 2014, 18:38:35
ZitatEine kurze Erklärung für den Perl noob wäre super.
verkettungsoperator. teilstrings zu einem ganzen string verketten.
Titel: Antw:Anzahl Nachkommastellen in Plot-Überschrift
Beitrag von: flurin am 26 August 2014, 20:08:36
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})

Titel: Antw:Anzahl Nachkommastellen in Plot-Überschrift
Beitrag von: Jojo11 am 26 August 2014, 20:59:48
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