Ich habe ein Device (PV-Wechselrichter) was mir den aktuellen Netzbezug ausgibt.
Dieses habe ich als SVG-Plot aus einem DBlog Device erstellt. Die ausgegebenen Werte sind Zahlen.
Positive = Netzbezug
Negative = Einspeisung
Wie schaffe ich es, dass im Plot alle positiven Werte eine andere Farbe haben als die negativen?
Anbei ein Plot zur Verdeutlichung.
Das ist was ich bisher habe, funktioniert aber leider nicht.
# Created by FHEM/98_SVG.pm, 2020-03-21 16:39:43
set terminal png transparent size <SIZE> crop
set output '.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title '<L1>'
set ytics
set y2tics
set grid y2tics
set ylabel ""
set y2label ""
#logdb WR_Fronius_Meter:Power_total__W:::$val=($val<0?hide:$val)
#logdb WR_Fronius_Meter:Power_total__W:::$val=($val=~s/^⁄-(?:\d{1,4})/?hide:$val)
#logdb WR_Fronius:Power_Site__W
plot "<IN>" using 1:2 axes x1y2 title 'Netzbezug' ls l1fill lw 0.5 with lines,\
"<IN>" using 1:2 axes x1y2 title 'Netzbezug' ls l5fill lw 0.5 with lines,\
"<IN>" using 1:2 axes x1y2 title 'PV Leistung' ls l3fill lw 0.2 with lines
gab doch diese Woche zu dem Thema ein Update -> https://forum.fhem.de/index.php/topic,108858.0.html
Zitat von: Shadow3561 am 22 März 2020, 07:55:28
Ich habe ein Device (PV-Wechselrichter) was mir den aktuellen Netzbezug ausgibt.
Dieses habe ich als SVG-Plot aus einem DBlog Device erstellt. Die ausgegebenen Werte sind Zahlen.
Positive = Netzbezug
Negative = Einspeisung
Wie schaffe ich es, dass im Plot alle positiven Werte eine andere Farbe haben als die negativen?
Anbei ein Plot zur Verdeutlichung.
Das ist was ich bisher habe, funktioniert aber leider nicht.
# Created by FHEM/98_SVG.pm, 2020-03-21 16:39:43
set terminal png transparent size <SIZE> crop
set output '.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title '<L1>'
set ytics
set y2tics
set grid y2tics
set ylabel ""
set y2label ""
#logdb WR_Fronius_Meter:Power_total__W:::$val=($val<0?hide:$val)
#logdb WR_Fronius_Meter:Power_total__W:::$val=($val=~s/^⁄-(?:\d{1,4})/?hide:$val)
#logdb WR_Fronius:Power_Site__W
plot "<IN>" using 1:2 axes x1y2 title 'Netzbezug' ls l1fill lw 0.5 with lines,\
"<IN>" using 1:2 axes x1y2 title 'Netzbezug' ls l5fill lw 0.5 with lines,\
"<IN>" using 1:2 axes x1y2 title 'PV Leistung' ls l3fill lw 0.2 with lines
Wenn du Netzbezug negativ darstellst, Produktion positiv ebenso positiv Eigenverbrauch (Produktion - Einspeisung), dann sieht es so aus: https://forum.fhem.de/index.php/topic,108858.msg1032530.html#msg1032530
@Damian
Danke, wie es dargestellt werden sollte, wusste ich bereits. Wäre super wenn du auch das dazugehörende gplot gepostet hättest.
Ich habe es jetzt so gelöst.
# Created by FHEM/98_SVG.pm, 2020-03-22 09:50:04
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 '<L1>'
set ytics
set y2tics
set grid y2tics
set ylabel ""
set y2label ""
#logdb WR_Fronius_Meter:Power_total__W:::$val=~s/(-.*)//g
#logdb WR_Fronius_Meter:Power_total__W
#logdb WR_Fronius:Power_Site__W
plot "<IN>" using 1:2 axes x1y2 title 'Netzbezug' ls l0fill lw 0.5 with lines,\
"<IN>" using 1:2 axes x1y2 title 'Einspeisung' ls l1fill lw 0.5 with lines,\
"<IN>" using 1:2 axes x1y2 title 'PV Leistung' ls l3fill lw 0.2 with lines
Im Plot selbst sind keine Regeln definiert:
# Created by FHEM/98_SVG.pm, 2020-03-22 09:11:31
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 'Strom'
set ytics
set y2tics
set grid y2tics
set ylabel "KW"
set y2label "KW"
#FileLog_CUL_WZ 11:zaehler.Aktuell\x3a:0:
#FileLog_CUL_WZ 13:zaehler.Aktuell\x3a::
#FileLog_CUL_WZ 5:zaehler.Aktuell\x3a::
plot "<IN>" using 1:2 axes x1y1 title 'Bezug' ls l0fill_gyr lw 1 with histeps,\
"<IN>" using 1:2 axes x1y1 title 'Eigenverb.' ls l2fill_gyr lw 1 with histeps,\
"<IN>" using 1:2 axes x1y1 title 'Produktion' ls l8fill_gyr lw 1 with histeps
In meinem Beispiel ist das SVG aus einem DBlog erstellt.
Für ein FileLog-SVG habe ich schon Beispiele gefunden. Beim DBlog muss das @fld-Array anders aussehen. Damit habe ich mich ein wenig schwer getan.
Jetzt hat es ja geklappt und in diesem Thread sind jetzt Beispiele für SVG aus DBlog und FileLog.
Daher werde ich den Titel noch einmal ändern damit es in der Suche leichter zu finden ist.
Danke für dein Beispiel.
Mit freundlichen Grüßen
Ja, es steht und fällt alles mit der Datenbasis. Bei mir werden von verschiedenen Zählern die Daten (Einspeisung, Produktion, Eigenverbrauch, ...) in einem Modul errechnet und in Readings zur Verfügung gestellt. Die brauche ich dann nur noch zu loggen und wie gepostet anzuzeigen.
Für FileLog ist es die Variable: $fld[3] (mit dem richtigen Index)
z.B. um Werte über und unter 0 zu "filtern".
$fld[3]=($fld[3]<=0?0:$fld[3])
$fld[3]=($fld[3]<0?$fld[3]:0)
(analog dem Beispiel mit DBLog)
Hallo zusammen,
ich habe heute ein ganze Weile versucht das hinzubekommen.
Am Ende denke ich das die Formeln oben so bei mir nicht funktionierten.
größer oder gleich 0
$fld[3]>=0?$fld[3]:0
kleiner 0
$fld[3]<0?$fld[3]:0
Dies hat bei mir dann das Diagramm in der gewünschten Form dargestellt.
26-08-2023_00-22-49.jpg
Falls noch jemand hier versucht, das als Hinweis.
# Created by FHEM/98_SVG.pm, 2023-08-26 00:03:26
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 'Stromzaehler (Tasmota) 2.8.0 vs aktuell'
set ytics
set y2tics
set grid y2tics
set ylabel "Erzeugung [kWh]"
set y2label "Verbrauch (aktuell) [W]"
#FileLog_MQTT2_DVES_FFC0C3 4:MQTT2_DVES_FFC0C3.SML_export_total_kwh\x3a::
#FileLog_MQTT2_DVES_FFC0C3 4:MQTT2_DVES_FFC0C3.SML_curr_w\x3a::$fld[3]>=0?$fld[3]:0
#FileLog_MQTT2_DVES_FFC0C3 4:MQTT2_DVES_FFC0C3.SML_curr_w\x3a::$fld[3]<0?$fld[3]:0
#FileLog_MQTT2_AHOY_DTU_JME_01_C8D330 4:MQTT2_AHOY_DTU_JME_01_C8D330.P_AC\x3a::$fld[3]*-1
plot "<IN>" using 1:2 axes x1y1 title 'Erzeugung (Summe, 2.8.0) [kWh]' ls l2 lw 1 with lines,\
"<IN>" using 1:2 axes x1y2 title 'aktueller Verbrauch [W]' ls l0fill lw 1 with histeps,\
"<IN>" using 1:2 axes x1y2 title 'aktueller Einspeisung [W]' ls l1fill lw 2 with histeps,\
"<IN>" using 1:2 axes x1y2 title 'BKW AC Power [W]' ls l5fill_stripe lw 1 with lines