FHEM Forum

FHEM => Frontends => SVG / Plots / logProxy => Thema gestartet von: cmonty14 am 17 April 2017, 09:48:07

Titel: [solved] Stromverbrauch mit min=0 und max=dynamisch
Beitrag von: cmonty14 am 17 April 2017, 09:48:07
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
Titel: Antw:Stromverbrauch mit min=0 und max=dynamisch
Beitrag von: rudolfkoenig am 17 April 2017, 10:13:43
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.
Titel: Antw:Stromverbrauch mit min=0 und max=dynamisch
Beitrag von: CQuadrat am 17 April 2017, 10:58:24
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.
Titel: Antw:Stromverbrauch mit min=0 und max=dynamisch
Beitrag 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.
Titel: Antw:Stromverbrauch mit min=0 und max=dynamisch
Beitrag von: cmonty14 am 17 April 2017, 21:22:38
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
Titel: Antw:Stromverbrauch mit min=0 und max=dynamisch
Beitrag von: justme1968 am 17 April 2017, 21:52:40
z.b. so:set yrange {"[0:".($data{max1}+1)."]"}
oder so:
set yrange {"[".($data{min2}-1).":".($data{max2}+1)."]"}
Titel: Antw:Stromverbrauch mit min=0 und max=dynamisch
Beitrag von: cmonty14 am 18 April 2017, 02:03:44
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).
Titel: Antw:Stromverbrauch mit min=0 und max=dynamisch
Beitrag von: justme1968 am 18 April 2017, 09:38:55
du musst die bezeichner an deine gegebenheiten anpassen.

Titel: Antw:Stromverbrauch mit min=0 und max=dynamisch
Beitrag von: cmonty14 am 18 April 2017, 19:40:15
aha... die Bezeichner anpassen.
Aber wie genau sind die Bezeichner des HM-ES-PMSw1-Pl?

(Ich habe bisher wenig Erfahrung mit FHEM gesammelt.)
Titel: Antw:Stromverbrauch mit min=0 und max=dynamisch
Beitrag von: justme1968 am 18 April 2017, 21:02:55
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.
Titel: Antw:[solved] Stromverbrauch mit min=0 und max=dynamisch
Beitrag von: cmonty14 am 19 April 2017, 00:21:01
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
Titel: Antw:[solved] Stromverbrauch mit min=0 und max=dynamisch
Beitrag von: Tomsc1984 am 21 Juni 2017, 16:49:56
wie kann ich das einfügen? mir geht es eigentlich nur um die Berechnung von Wh auf kWh