Das Script und eine Dokumentation ist im Anhang. Es kann sowohl auf dem Raspi installiert werden (einfach, aber langsam) oder auf einem PC (etwas mehr Installationsschritte, dafür schneller - bei mir 10x schneller).
Im einfachsten Fall (ohne config.ini file) wird ein Excel File mit einem Tab für den laufenden Monat generiert, das die Tabellen PV, AC, Batterie, Summen enthält.
Code: Alles auswählen
perl Dump_InFluxDB.pl
- welche Tabellen genau gedumped werden sollen
- dass man gewisse columns nicht sehen will
- gewisse columns aus Rohdaten gerechnet werden sollen
- Excel charts erstellt werden sollen
Das .pdf File im Anhang beschreibt die Details (sorry - auf English, da ich immer wieder Versatzstücke aus anderen Scripts und Dokumenten verwende...)
Beispiel: Mit dem config.ini file unten sagt man:
- kontaktiere Influx auf 192.168.178.89 (mein SolarAnzeige Raspi)
- hol Daten aus den Tabellen PV und AC (Datenbank solaranzeige ist default)
- lösche die Columns die zu String 3 gehören (im Moment nichts angeschlossen ... - die Batterie ist wegen Covid in China steckengeblieben)
- rechne eine Column 'Inverter_Loss_%' aus DC und AC Leistung
- generiere einen Plot, der diesen Loss gegen die DC Leistung aufträgt (alle calls set_xxx sind nur zur Verschönerung der Defaults)
Code: Alles auswählen
[GENERAL]
# Demo config.ini file
host : 192.168.178.89 # host containing db
tables : { 01_Data => PV, AC ; }
[01_Data] # tab name; must be key in hash 'tables' in secion [GENERAL]
# List of field names to be dropped:
drop : { PV.Leistung_Str_3 ;
PV.Spannung_Str_3 ;
PV.Strom_Str_3 ;
}
calculate : { Inverter_Loss_% => if('PV.Gesamtleistung'=0, "", ('PV.Gesamtleistung' - 'AC.Leistung')/'PV.Gesamtleistung') ; }
charts : { Eff_Loss => add_chart( type => 'scatter',
name => 'Inverter',
embedded => 1 )
add_series( categories => 'PV.Gesamtleistung',
values => 'Inverter_Loss_%',
name => 'Inverter Efficiency Loss',
marker => { type => 'diamond', size => 3 } )
set_x_axis( name => 'PV.Gesamtleistung',
name_font => { name => 'Calibri (Body)', size => 10.5, bold => 1 },
num_font => { name => 'Calibri (Body)', size => 9, bold => 0 },
min => 0,
max => 10000 )
set_y_axis( name => 'Efficiency Loss',
name_font => { name => 'Calibri (Body)', size => 10.5, bold => 1 },
num_font => { name => 'Calibri (Body)', size => 9, bold => 0 },
num_format => '0.0%',
major_unit => 0.1,
min => 0,
max => 0.4 )
set_legend( none => 1 )
insert_chart('AB3', $chart);
}

Enjoy!