Autor Thema: Plots mit den Werten untereinander erzeugen  (Gelesen 1285 mal)

Offline moonsorrox

  • Hero Member
  • *****
  • Beiträge: 3940
  • Online
Plots mit den Werten untereinander erzeugen
« am: 19 Mai 2021, 15:33:33 »
Ich habe jetzt schon einige Plots, aber keines kann ich als Beispiel nutzen.
Ich habe eine PV Anlage und im Filelog werden mir die Daten wie folgt dargestellt.

Example lines for input:
2021-05-19_15:08:14 Growatt data_00_30: 0
2021-05-19_15:08:14 Growatt data_01_00: 0
2021-05-19_15:08:14 Growatt data_01_30: 0
2021-05-19_15:08:14 Growatt data_01_currentPower: 1.09 kW
2021-05-19_15:08:14 Growatt data_01_isHaveStorage: false
2021-05-19_15:08:14 Growatt data_01_plantId: 294937
2021-05-19_15:08:14 Growatt data_01_plantMoneyText: 1720.7 (€)
2021-05-19_15:08:14 Growatt data_01_plantName: PV Resse
2021-05-19_15:08:14 Growatt data_01_todayEnergy: 4 kWh
2021-05-19_15:08:14 Growatt data_01_totalEnergy: 1.43 MWh
2021-05-19_15:08:14 Growatt data_02_00: 0
2021-05-19_15:08:14 Growatt data_02_30: 0
2021-05-19_15:08:14 Growatt data_03_00: 0
2021-05-19_15:08:14 Growatt data_03_30: 0
2021-05-19_15:08:14 Growatt data_04_00: 0
2021-05-19_15:08:14 Growatt data_04_30: 0
2021-05-19_15:08:14 Growatt data_05_00: 0
2021-05-19_15:08:14 Growatt data_05_30: 0
2021-05-19_15:08:14 Growatt data_06_00: 7.65
2021-05-19_15:08:14 Growatt data_06_30: 20.78
2021-05-19_15:08:14 Growatt data_07_00: 64.1
2021-05-19_15:08:14 Growatt data_07_30: 126.3
2021-05-19_15:08:14 Growatt data_08_00: 149.45
2021-05-19_15:08:14 Growatt data_08_30: 232.52
2021-05-19_15:08:14 Growatt data_09_00: 299.67
2021-05-19_15:08:14 Growatt data_09_30: 778.3
2021-05-19_15:08:14 Growatt data_10_00: 626.28
2021-05-19_15:08:14 Growatt data_10_30: 900.53
2021-05-19_15:08:14 Growatt data_11_00: 552
2021-05-19_15:08:14 Growatt data_11_30: 273.95
2021-05-19_15:08:14 Growatt data_12_00: 618.55
2021-05-19_15:08:14 Growatt data_12_30: 680.52
2021-05-19_15:08:14 Growatt data_13_00: 439.55
2021-05-19_15:08:14 Growatt data_13_30: 702.62
2021-05-19_15:08:14 Growatt data_14_00: 769.38
2021-05-19_15:08:14 Growatt data_14_30: 759.83
2021-05-19_15:08:14 Growatt data_15_00: 936.94

2021-05-19_15:08:14 Growatt jsonPlantData: {"data": [{"plantMoneyText": "1720.7 (€)", "plantName": "PV Resse", "plantId": "294937", "isHaveStorage": "false", "todayEnergy": "4 kWh", "totalEnergy": "1.43 MWh", "currentPower": "1.09 kW"}], "totalData": {"currentPowerSum": "1.09 kW", "CO2Sum": "0 T", "isHaveStorage": "false", "eTotalMoneyText": "1720.7 (€)", "todayEnergySum": "4 kWh", "totalEnergySum": "1.43 MWh"}, "success": true}

2021-05-19_15:08:14 Growatt jsonPlantDetails: {"plantData": {"plantMoneyText": "4.8 (€)", "plantName": "PV Resse", "plantId": "294937", "currentEnergy": "4 kWh"}, "data": {"15:00": "936.94", "05:00": "0", "11:30": "273.95", "12:00": "618.55", "07:30": "126.3", "08:30": "232.52", "10:30": "900.53", "09:00": "299.67", "03:00": "0", "14:00": "769.38", "13:30": "702.62", "02:00": "0", "01:00": "0", "12:30": "680.52", "04:00": "0", "06:30": "20.78", "07:00": "64.1", "05:30": "0", "10:00": "626.28", "09:30": "778.3", "08:00": "149.45", "03:30": "0", "11:00": "552", "14:30": "759.83", "01:30": "0", "04:30": "0", "06:00": "7.65", "13:00": "439.55", "00:30": "0", "02:30": "0"}, "success": true}

2021-05-19_15:08:14 Growatt plantData_currentEnergy: 4 kWh

Ich bekomme also alle halbe Stunde einen Wert dazu, jetzt wollte ich gerne im Plot die Tagesansicht haben das gelingt mir aber nicht.
Wenn ich einen Wert angebe so z.B. "2021-05-19_15:08:14 Growatt data_14_30: 759.83" wird der mir angeziegt, aber eben nur der.

Kann mir jemand sagen wie ich das hinbekomme das ich die komplette Tagesansicht angezeigt bekomme.?

list:
Internals:
   CFGFN     
   DEF        FileLog_Growatt:SVG_FileLog_Growatt_1:CURRENT
   FUUID      60a4fb89-f33f-a6c6-eabd-1d053619ff0b3c3b
   GPLOTFILE  SVG_FileLog_Growatt_1
   LOGDEVICE  FileLog_Growatt
   LOGFILE    CURRENT
   NAME       SVG_FileLog_Growatt_1
   NR         39817
   STATE      initialized
   TYPE       SVG
Attributes:
   room       HWR

Plot Svg:
# Created by FHEM/98_SVG.pm, 2021-05-19 16:20:48
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 'PV Tageswert'
set ytics
set y2tics
set grid y2tics
set ylabel ""
set y2label "Leistung in W"
set yrange [0:1350]
set y2range [0:1350]

#FileLog_Growatt 4:Growatt.data_14_30\x3a:1:

plot "<IN>" using 1:2 axes x1y2 title 'Watt' ls l2fill lw 1 with lines
« Letzte Änderung: 19 Mai 2021, 16:21:36 von moonsorrox »
Intel-NUC i3: FHEM-Server 5.9 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 24707
Antw:Plots mit den Werten untereinander erzeugen
« Antwort #1 am: 19 Mai 2021, 18:44:07 »
Zitat
Kann mir jemand sagen wie ich das hinbekomme das ich die komplette Tagesansicht angezeigt bekomme.?

Damit ein FileLog fuer die SVG sinnvolle Daten liefert, muessen in der ersten Spalte die richtigen Zeitstempel stehen, und diese Zeitstempel muessen monoton steigend sein.

Variante 1:
man definiert ein notify/DOIF/etc, was (durch Aufruf einer perl-Funktion) die FileLog Datei im korrekten Format fuellt. Weiterhin definiert man ein Fake-Filelog (d.h. mit der gerade erzeugten Datei und einem "unmoeglichen" Regexp, z.Bsp. fakelog), was zum Fuellen der SVG dient.

Variante 2:
man belaesst es beim aktuellen Format, und man bastelt die Zeile mit dem richtigen Zeitstempel mit einer im reformatFn Attribut hinterlegten perl-Funktion. Da die Funktion fuer jede Zeile aufgerufen wird, ist es nicht sehr performant. Weiterhin muessen die unkonvertierten Daten auch in der richtigen Reihenfolge kommen.

Variante 3:
man ueberzeugt die Quelle ein Feld mit dem aktuellen Wert regelmaessig (alle halbe Stunde, etc) zu senden, und man loggt direkt dann genau diesen einen Wert. So machen eigentlich alle anderen Systeme.
Zustimmung Zustimmung x 1 Liste anzeigen

Offline moonsorrox

  • Hero Member
  • *****
  • Beiträge: 3940
  • Online
Antw:Plots mit den Werten untereinander erzeugen
« Antwort #2 am: 19 Mai 2021, 18:56:02 »
OK Rudolf, dass war der entscheidene Hinweis... ich war wohl etwas blind vorhin. :-\
Natürlich ist Variante 3 die entscheidene.... ;)

Vielen Dank
Intel-NUC i3: FHEM-Server 5.9 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

 

decade-submarginal