Hauptmenü

Plot Label Werte runden

Begonnen von hhsch, 20 Mai 2014, 16:15:45

Vorheriges Thema - Nächstes Thema

hhsch

Hallo,

ich versuche schon seit einiger Zeit, das Plotlabel so anzupassen, dass die Werte z.B. aus "$data{sum2}" gerundet werden. Ich habe dann in der 98_SVG.pm Datei die Funktion SVG_doround gefunden und dann in das Label so eingebunden: "$data{SVG_doround(sum2, 3, 1)}". Dies funktioniert aber nicht, sondern gibt einen falschen Wert aus. Wie verwende ich solche Funktionen richtig? Wo (in welcher Datei) kann ich die anderen Funktionen wie z.B. sum, currval, min, max etc. finden? Gibt es auch eine AVG Funktion?

Grüße
hhsch
FHEM mit DbLog (MySQL) auf BananaPi M2 (RPiTC-2_beta1-bpi-m2), mit CUL868 (fw 1.57) und CUL868 (fw 1.57) im HM Betrieb
12xCUL_EM, 2xCUL_WS, 6xHMS100T, 4xHMS100TF, CUL_HM_HM_CC_RT_DN, CUL_HM_HM_TC_IT_WM_W_EU, CUL_HM_HM_SEC_SCo, CUL_HM_HM_LC_SW2_FM, KS300

betateilchen

Die von Dir genannte Funktion aus dem Modul ist für etwas anderes gedacht, nicht für die direkte Nutzung durch die Anwender.

Probiers doch einfach mal mit sprintf() im Label, damit kannst Du auch problemlos runden.

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

hhsch

FHEM mit DbLog (MySQL) auf BananaPi M2 (RPiTC-2_beta1-bpi-m2), mit CUL868 (fw 1.57) und CUL868 (fw 1.57) im HM Betrieb
12xCUL_EM, 2xCUL_WS, 6xHMS100T, 4xHMS100TF, CUL_HM_HM_CC_RT_DN, CUL_HM_HM_TC_IT_WM_W_EU, CUL_HM_HM_SEC_SCo, CUL_HM_HM_LC_SW2_FM, KS300

Gisbert

Hallo,

der Threads ist schon sehr alt, trifft aber genau mein Problem(chen).

Ich hab Plot title <L1> und das Attribut label "Gaszähler: today sprintf("%.1f", $data{ currval2}) kWh"

Ich bekomme 3 Nachkommastellen im Diagrammtitel, hätte aber gern eine. Ich hab es mit sprintf versucht, bekomme aber eine Fehlermeldung.

Kann mir jemand helfen?

Viele Grüße Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome

betateilchen

Zuviele doppelte Anführungszeichen in Deinem String, die sich gegenseitig behindern.
Außerdem: Nimm plotReplace, denn das Attribut label ist ohnehin deprecated.

attr <device> plotReplace L1={"Gaszähler: today ".sprintf("%.1f", $data{currval2})." kWh"}
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Gisbert

Hallo betateilchen,

funktioniert :) und so ist es für mich verständlich.

Danke
Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome

betateilchen

Zitat von: Gisbert am 11 Oktober 2022, 19:16:47
so ist es für mich verständlich.

gut, dann jetzt für Fortgeschrittene:

attr <device> plotReplace L1={sprintf("Gaszähler: today %.1f kWh", $data{currval2})}
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Gisbert

Hallo betateilchen,

vielen Dank, da hab ich wieder was dazu gelernt.

Jetzt kommt die Kür, (Selbstgespräch: es hat eigentlich nichts mit Hausautomation zu tun und dient nur meinem Drang nach Perfektion):
attr <Device> plotReplace L1={sprintf("Heizung Buderus GB112: T(a) %.1f°C", $data{currval5})." - ".sprintf("T(eff) %.1f°C", $data{currval4})}
Ich hätte gerne das (a) und (eff) tief gestellt. Bei userReadings schaffe ich das, hier nicht. Interessant ist, dass man °C oder auch % ohne Leerzeichen an die Formatierung hängen kann.

Wenn du der Meinung bist, dass es unsinnig ist, dann akzeptiere ich das natürlich.

Viele Grüße Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome

betateilchen

Zitat von: Gisbert am 12 Oktober 2022, 20:39:19
Ich hätte gerne das (a) und (eff) tief gestellt.

Das geht nicht, weil Textausgaben in SVG plots anders für die Anzeige generiert werden als userReadings in der HTML Detailansicht.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!