Beiträge zu “Piko-Stats”

Piko Stats: Minimum und Maximum eines Monats berechnen

Ich wollte aus den vorhandenen Daten der PV Anlage die Werte für das Maximu, das Minimum und den Durchschnitt berechnen

./Piko_db.py --db pv-data.db --dump-stat --filter-time "`date +%Y-%m`-%" --day | cut -d"|" -f2,6  | cut -c 21-  | sed -e "s/ \+ / /g" | cut -d " " -f 5 |  tail -n "`date +%d`" | awk 'NR == 1 { max=$1; min=$1; sum=0 }   { if ($1>max) max=$1; if ($1<min) min=$1; sum+=$1;}    END {printf "Minimum: %d\t\nMaximum: %d\t\nDurchschnitt: %f\n\n", min, max, sum/NR}

Minimum: 8265    
Maximum: 26382    
Durchschnitt: 19693.625000

 

8.8.13
Weitere Beiträge zu: Piko-Stats  

Darstellung der Statistik einer PV Anlage nach Tagen

Als Erweiterung der hier vorgestellten Auswertung wollte ich auch eine graphische Darstellung des Leistung unserer PV Anlage der letzten Tage bekommen. Das Vorgehen ist im Prinzip wie hier.

1. Auswertung der Daten

Hier reicht diesmal eine Zeile

./Piko_db.py --db pv-data.db --dump-stat --filter-time "`date +%Y-`%" --hour  | tail -n 140 |  cut -d"|" -f2,6 |  sed -e "s/ \+ / /g" | sed -e "s/|/ /g" | awk '{ print $1 " "  $(NF)}' > pv-hourly.dat

Das Ergebniss sieht dann so aus

2013-08-04T12:00:00 1429
2013-08-04T13:00:00 701
2013-08-04T13:04:00 2035
2013-08-04T14:00:00 2212
2013-08-04T14:04:00 2173
2013-08-04T15:00:00 2641
2013-08-04T16:00:00 1856

2. Darstellung der Daten mit gnuplot

vi pv-auswertung.plt

set terminal png
set nokey
set grid
set output '/var/www/weather/pv-hourly.png'
set xtic rotate by -45 scale 0 font ",8"
set xdata time
set timefmt "%Y-%m-%dT%H:%M:%S"
set style data lines
set style line 1 lc rgb '#0060ad' lt 1 lw 2 pt 7 ps 1.5
set format x "%d:%m"
plot "pv-hourly.dat" using 1:2

Und so sieht das das Ergebniss aus

201308-pv-hourly.png

 

4.8.13
Weitere Beiträge zu: Photovoltaik   Piko-Stats   gnuplot  

Darstellung der Statistik einer PV Anlage nach Monaten

Ich wollte eine Darstellung der Monatserträge unsere PV Anlage über das Jahr hinweg erstellen. Die Daten sind mit Piko_stats bereits verfügbar, müssen aber nur in das richtige Format transportiert werden. Zur Darstellung der Daten habe ich zum ersten Mal gnuplot verwendet. Die hier dokumentierte Lösung ist mit Sicherheit nicht die eleganteste aber ich bekomme das Bild was ich gesucht habe und gut ist.

1. Auswertung der Daten

Bei diesem Script gibt es zum Zeitpunkt der Erarbeitung noch die Besonderheit, das mit dem Mai begonnen wird. Dieser Monat ist der erste Monat der eine volle Laufzeit der Anlage hat. In den folgenden Jahren wird das Exportscript noch auf "das ganze" Jahr angepasst.

vi pv-monthly.sh

#!/bin/bash
output=/opt/c/tools/solar/pv-monthly.dat
rm $output
ende_monat=$(/bin/date +%m)
start_monat=5
for j in `seq $start_monat $ende_monat`
do
monat_dat=$(./Piko_db.py --db pv-data.db --dump-stat --filter-time "`date +%Y-`%$j-%" --day | cut -d"|" -f2,6  | cut -c 21-  | sed -e "s/ \+ / /g" | cut -d " " -f 5 | tr "\n" " " )
monat_sum=0
for i in $monat_dat
do
    monat_sum=`expr $monat_sum + $i`
done

echo "$j" "$monat_sum">> $output
done
gnuplot pv-monthly.plt

Ich bekomme mit diesem Script eine Datei mit folgendem Format: Monat - Ertrag (Die Erklärung für den gnuplot Befehl kommt gleich)

vi pv-monthly.dat

5 560814
6 631329
7 690376

2. Auswerten der Daten mit gnuplot

gnuplot kann man von der Kommandozeile starten und die einzelnen Befehle manuell eingeben und starten. Diese ist für den Beginn hilfreich wenn man die ersten Schritte geht. Zeigt sich die erste Grafik auf dem Bildschirm ist es einfacher die Befehle hintereinander in eine Textdatei zu schreiben und diese dann an einem Stück ausführen zu lassen

vi pv-monthly.plt

set terminal png
set nokey
set datafile sep ' '
set grid
set ylabel "Leistung in Watt"
set xlabel "Monat"
set output '/var/www/weather/pv-monthly.png'
set yrange [0:800000]
set timefmt "%m"
set format x "%b"
set xtic rotate by -45 scale 0 font ",8"
set boxwidth 0.3
set style data boxes
set style fill transparent solid 0.5 noborder
plot "pv-monthly.dat" u 2 : xtic(1)

Wichtig ist hierbei, das ger "set terminal png" Entrag ganz an den Anfang kommt. Als ich ihn später in der Definietion hatte bekam ich die Fehlermeldeung "Failed to initialize wxWidgets. Segmentation fault"

Nun kann ich mit gnuplot pv-monthly.plt die Grafik erzeugen.

Und so sieht das dann aus

2013-07-pv_montly.png
 

29.7.13
Weitere Beiträge zu: gnuplot   Piko-Stats   Photovoltaik  

Piko stats: Nachträgliche Berechnung der Statistiken automatisieren

Ich habe von ein paar Wochen begonnen die Erträge meiner Photovoltaikanlage mit aufzuzeichnen. Eine Sache die ich damals vergessen hatte war auch gleichzeitig die Berechnung der täglichen Statistiken zu automatisieren. Der Author des Programms weist auch darauf hin dieses Berechnung immer mit einer entsprechenden Einschränkung auf einen Tag durchzuführen. Mit folgendem kleinen Progam konnte ich die manuelle Eingabe von 110 Tagen rückwirkend automatisieren (110 Tage weil das ungefähr der Tag war an dem ich begonnen hatte)

Nicht schön aber für den einmaligen oder gelegentlichen Aufruf ausreichend.

#!/bin/bash
start_date=20130718    # "heute"
num_days=110
for i in `seq 1 $num_days`
do
    date=`date +%Y-%m-%d -d "${start_date}-${i} days"`
    echo $date 
  ./Piko_db.py --db pv-data.db --calc-stat --filter-time=$date\% --day  --hour --quarter --mins
done

 

28.7.13
Weitere Beiträge zu: Piko-Stats  

Auswertung einer Photovoltaik Anlage

Seit gestern ist der Wechselrichter unsere Photovoltaik Anlage mit dem Netzwerk verbunden. Der Hersteller liefert zwar ein Windows Programm mit und die Daten können auch auf einem Hersteller spezifisches Portal ausgewertet werden. Nur leider "habe ich kein Windows" und außerdem habe ich Daten lieber selber.

Piko Stats bietet diese Möglichkeit. Es kann die Daten auslesen und in eine kleine Datenbank schreiben. Die Installation ist recht einfach

mkdir solar
cd solar/
wget http://sourceforge.net/projects/piko/files/Rel_20130227_v125/Piko_125.tgz/download
tar xzvf download
rm download
chmod +x Piko.py

Die ersten Tests

./Piko.py --host=192.168.1.13 -n -r
Inverter Name   : Bauer
Inverter SN     : 90506LKD0000F

./Piko.py --host=192.168.1.13 -p  -i -d -r -y
Inverter SN     : 90506LKD0000F
Total energy    : 247494 Wh
Today energy    : 2042 Wh
DC Power        :    3 W
AC Power        :    0 W
Efficiency      :  0.0%

Jetzt die Datenbanken anlegen und mit den historischen Daten befüllen

./Piko_db.py --db pv-history.db --create-history --create-stat
./Piko_db.py --db pv-data.db  --create-realtime --create-stat
./Piko.py --host=192.168.1.13 --history --db pv-history.db

Das ganze noch mit cron automatisieren

* 5-22 * * * /opt/tools/solar/Piko.py --host=192.168.1.13  --db /opt/tools/solar/pv-data.db --tech
*/30 5-22 * * * /opt/tools/solar/Piko.py --host=192.168.1.13 --db /opt/tools/solar/pv-history.db --history

Später werde ich sehen was ich mit diesen Daten für Grafiken und Statistiken erstellen kann

27.4.13
Weitere Beiträge zu: Photovoltaik   Piko-Stats  

Dies ist ein privater Blog von Hagen Bauer- berufstätiger Vater, Ehemann, Naturliebhaber, Läufer, Zelter, technikverliebt.


Creative Commons License
This blog is licensed under a Creative Commons License