Autor Thema: !!! gelöst !!! SVG-Plot - Andere Farbe für Werte grösser/kleiner als (z.B. >=0)  (Gelesen 154 mal)

Online Shadow3561

  • Full Member
  • ***
  • Beiträge: 375
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
« Letzte Änderung: 22 März 2020, 10:57:18 von Shadow3561 »

Offline Wzut

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3316
Antw:SVG-Plot vom DBlog andere Farbe für Werte <0
« Antwort #1 am: 22 März 2020, 08:09:21 »
gab doch diese Woche zu dem Thema ein Update -> https://forum.fhem.de/index.php/topic,108858.0.html
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Online Damian

  • Developer
  • Hero Member
  • ****
  • Beiträge: 7059
Antw:SVG-Plot vom DBlog andere Farbe für Werte <0
« Antwort #2 am: 22 März 2020, 09:00:35 »
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
Programmierte FHEM-Module: DOIF mit uiTable, DOIF-Perl, THRESHOLD, FHEM-Befehl: IF

Online Shadow3561

  • Full Member
  • ***
  • Beiträge: 375
Antw:SVG-Plot vom DBlog andere Farbe für Werte <0
« Antwort #3 am: 22 März 2020, 10:15:14 »
@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


Online Damian

  • Developer
  • Hero Member
  • ****
  • Beiträge: 7059
Antw:!!! gelöst !!! SVG-Plot vom DBlog andere Farbe für Werte <0
« Antwort #4 am: 22 März 2020, 10:44:02 »
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
Programmierte FHEM-Module: DOIF mit uiTable, DOIF-Perl, THRESHOLD, FHEM-Befehl: IF

Online Shadow3561

  • Full Member
  • ***
  • Beiträge: 375
Antw:!!! gelöst !!! SVG-Plot vom DBlog andere Farbe für Werte <0
« Antwort #5 am: 22 März 2020, 10:56:05 »
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

Online Damian

  • Developer
  • Hero Member
  • ****
  • Beiträge: 7059
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.
Programmierte FHEM-Module: DOIF mit uiTable, DOIF-Perl, THRESHOLD, FHEM-Befehl: IF