Hallo!
Ich möchte den Stromverbrauch des HM-ES-PMSw1-Pl (https://wiki.fhem.de/wiki/HM-ES-PMSw1-Pl_Funk-Schaltaktor_1-fach_mit_Leistungsmessung (https://wiki.fhem.de/wiki/HM-ES-PMSw1-Pl_Funk-Schaltaktor_1-fach_mit_Leistungsmessung)) dynamisch darstellen, wobei der min Wert bei 0 beginnen soll und der max Wert unbestimmt sein soll.
Wenn ich keine Range definiere, dann sieht der Plot so aus (siehe 2017-04-14_081152.png).
Das heißt, der min Wert wird entsprechend dem zuletzt bekannten Messwert angepasst.
Wenn ich die Range so definiere set y2range [0:]
set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title 'Trockner'
set ytics
set y2tics
set grid ytics
set ylabel "Leistung [W]"
set y2label "Stromverbrauch [kWh]"
set yrange [0:1000]
set y2range [0:]
#DbLog WK.Trockner_Pwr:power::
#DbLog WK.Trockner_Pwr:energyCalc:::$val=($val*0.001)
plot "<IN>" using 1:2 axes x1y1 title 'Leistung' ls l0 lw 1 with lines,\
"<IN>" using 1:2 axes x1y2 title 'Stromverbrauch' ls l1fill lw 1 with lines
erhalte ich den gewünschten Plot (siehe 2017-04-17_094449.png).
Allerdings ist der zuletzt ermittelte Messwert jetzt der max Wert der Range.
Frage:
Wie kann ich den max Wert der Range um einen Wert z noch oben verschieben abhängig vom zuletzt ermittelten Messwert, damit der Plot nicht "oben anstößt"?
THX
ZitatWie kann ich den max Wert der Range um einen Wert z noch oben verschieben abhängig vom zuletzt ermittelten Messwert, damit der Plot nicht "oben anstößt"?
Das wurde schon oefters gefragt, mW ohne Ergebnis/Loesung.
Setze erstens in der SVG-Datei:
set y2range [<L2>:<L3>]
und bei den Attributen im SVG-Device dann
attr <SVG> label "Irgend ein Titel"::$data{min2}*0.001-10::$data{max2}*0.001+10
Die +/--Werte dann entsprechend anpassen. Hier wird auch die untere Grenze angepasst.
der umweg über label ist seit einer ganzen weile nicht mehr nötig.
für die range attribute ist auch perl code möglich der den passenden ausdruck liefert.
Zitat von: justme1968 am 17 April 2017, 15:47:38
der umweg über label ist seit einer ganzen weile nicht mehr nötig.
für die range attribute ist auch perl code möglich der den passenden ausdruck liefert.
Hallo!
Könntest du bitte eine Info / Hinweis geben, wie der Perl Code aussehen sollte?
THX
z.b. so:set yrange {"[0:".($data{max1}+1)."]"}
oder so:
set yrange {"[".($data{min2}-1).":".($data{max2}+1)."]"}
Nein, mit diesem Coding funktioniert das nicht wie gewünscht.
1. Wird die y-Skala auf den Maximalwert 1 gesetzt
2. Überschreitet der Chart den Maximalwert
Ich habe einen Screenshot angehängt (2017-04-18_020203.png).
du musst die bezeichner an deine gegebenheiten anpassen.
aha... die Bezeichner anpassen.
Aber wie genau sind die Bezeichner des HM-ES-PMSw1-Pl?
(Ich habe bisher wenig Erfahrung mit FHEM gesammelt.)
yrange oder y2range je nach dem ob es um die linke oder rechte achse geht, die zahl nach min und max je nach der laufenden nummer der jeweiligen kurve.
Diese SVG Konfiguration erfüllt die Anforderungen:
set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title 'Waschmaschine'
set ytics
set y2tics
set grid ytics
set ylabel "Leistung [W]"
set y2label "Stromverbrauch [kWh]"
set yrange [0:2500]
set y2range {"[0:".($data{max2}+1)."]"}
#DbLog WK.Waschmaschine_Pwr:power::
#DbLog WK.Waschmaschine_Pwr:energyCalc:::$val=($val*0.001)
plot "<IN>" using 1:2 axes x1y1 title 'Leistung' ls l0 lw 1 with lines,\
"<IN>" using 1:2 axes x1y2 title 'Stromverbrauch' ls l1fill lw 1 with lines
wie kann ich das einfügen? mir geht es eigentlich nur um die Berechnung von Wh auf kWh