Ertragsprognosedaten in Solaranzeige einbinden

PDF Dokumente für Informationen im Detail, sowie Bauanleitungen.

Moderator: Schattenschimmer

Antworten
Bogeyof
Beiträge: 83
Registriert: Mi 13. Mai 2020, 10:04

Ertragsprognosedaten in Solaranzeige einbinden

Beitrag von Bogeyof »

Hallo zusammen,
ich habe die Tage eine Ertragsprognose vom DWD (MOSMIX-Daten) in die Solaranzeige eingebunden und inzwischen so aufbereitet, dass sie sich einfach in die Software integrieren lassen sollte.
Die Daten werden wie gesagt vom DWD geliefert (für bis zu 10 Tage) und das Ganze ist kostenlos. Der erste Schritt ist seinen Standort in der Liste unter folgendem Link herauszusuchen und die Standort-ID zu notieren:
https://www.dwd.de/DE/leistungen/met_ve ... &nn=495490
Solltet Ihr Euren Standort nicht finden, dann halt einen möglichst in der Nähe aussuchen.

Im Anhang findet Ihr 2 Skripte (prognose.php und prognose.py.txt, weil Python-Dateien nicht angehängt werden können).
Zuerst müsst Ihr die "prognose.py.txt" in "prognose.py" umbenennen, anschließend müssen die beiden Skripte auf Euren RaspBerry Pi in das Verzeichnis "/var/www/html" kopiert werden (z.B. mit WinSCP oder welches Tool Ihr sonst benutzt).
Anschließend müsst Ihr diesen Skripten Berechtigung zum Ausführen erteilen, dies erfolgt am besten mit der Kommandozeile an der Konsole des Raspi oder mit putty:

Code: Alles auswählen

cd /var/www/html
sudo chmod +x prognose.*
Als nächstes brauchen wir noch einen Eintrag in die Crontab, um das Skript prognose.php automatisch alle 30 Minuten ausführen zu lassen. Aufruf erfolgt wieder in der Kommandozeile an der Konsole (oder auch mit putty)

Code: Alles auswählen

crontab -e
Dort tragen wir eine Zeile z.B. unter der vorhandenen Zeile mit .../var/www/html/wetterdaten.php... ein:

Code: Alles auswählen

*/30  *  *  *  *    /var/www/html/prognose.php                 >/dev/null
Crontab speichern mit Funktionstaste F10 und noch den Button "Ja" auswählen zum Bestätigen.

Der letzte Schritt ist das Konfigurieren des Skripts auf Eure Anlage. Wir brauchen dazu folgende Informationen:
  • Die Standort-ID haben wir vorher schon ermittelt, diese müssen wir gleich in das Skript eintragen.
    Die Modulfläche, hier nehmen wir näherungsweise die (Anzahl Module * Länge * Breite) * 0.95 (pauschaler Abzug für 5% Ränder). Ergebnis sollten die qm Eurer Modulfläche sein (Beispiel 42).
    Den Wirkungsgrad der Module aus dem Datenblatt. Beispiel: Für 19,6% Wirkungsgrad schreiben wir 0.196 (immer Punkt als Dezimalstelle verwenden!).
    Einen pauschalen Reduzierungsfaktor für Ausrichtung, Dachneigung, Wirkungsverluste (liegt zwischen 0.8 und 0.95), Beispiele:
    - bei Sued-Ausrichtung und optimaler Dachneigung ca. 0.95
    - bei Sued-Ausrichtung und nicht alles optimal ca. 0.90
    - bei Ost-West und sonst guten Werten ca. 0.85
    - bei Ost-West und z.B. Verschattung usw. ca. 0.80
Jetzt tragen wir die Daten in das Skript prognose.php ein und sind fertig:

Code: Alles auswählen

mcedit /var/www/html/prognose.php
Ab ca. Zeile 73 findet ihr die Variablen, die Ihr mit Euren Werten anpassen müsst (Achtung immer Dezimalpunkt statt Komma verwenden):

Code: Alles auswählen

  $Standort = 10852;
  $Wirkungsgrad = 0.197;
  $Modulflaeche = 42;
  $Wirkungsverluste = 0.82;  
Gespeichert wird wieder mit Funktionstaste F10 und anschließender Bestätigung durch den Button "Ja".

Jetzt sollte die Prognose alle 30 Minuten im Hintergrund erstellt werden. Die Daten werden in der Datenbank "solaranzeige" oder was auch immer Ihr in der user.config.php (bzw. 1.user.config.php bei der Multi-Regler-Version) hinterlegt habt, abgelegt. Auch in die evtl. konfigurierte Remote-Datenbank sollte geschrieben werden.
Ihr findet den Wert im Measurement (in der Serie) "Wetterprognose" im Feld "eigenePrognose". Es ist ein stündlicher Wert, dieser soll den prognostizierten Ertrag für die kommende Stunde in Wh angeben. D.h. der Wert um 10:00 Uhr zeigt die Ertragsprognose für den Zeitraum 10:00 Uhr bis 10:59 Uhr.

Wenn Ihr nicht warten wollt (max. 30 Minuten) und die Prognose selbst direkt ausführen wollt, dann bitte in der Kommandozeile (Konsole oder putty) folgendes eingeben:

Code: Alles auswählen

cd /var/www/html
sudo ./prognose.php
Jetzt bin ich gespannt auf Eure Erfahrungen und natürlich auch, was an Skript, Installationsbeschreibung und Daten verbessert werden könnte. Viel Spaß damit!
Dateianhänge
prognose.php
(10.85 KiB) 35-mal heruntergeladen
prognose.py.txt
(19.96 KiB) 34-mal heruntergeladen

Bogeyof
Beiträge: 83
Registriert: Mi 13. Mai 2020, 10:04

Re: Ertragsprognosedaten in Solaranzeige einbinden

Beitrag von Bogeyof »

Ein paar Bilder zur Illustration, was damit gemacht werden könnte:
Pronose1.png
Hier werden die realen Erträge den Prognosewerten gegenübergestellt. An einem Tag mit vielen Wolken kann die Prognose nicht wirklich stundengenau sein, aber der Gesamtertrag und die Gesamtprognose sollten schon besser passen. Wenn einmal ein reiner Sonnentag ist, sollte es ziemlich gut passen (hoffe ich, wenn nicht, dann an den Parametern nachsteuern in der prognose.php)
Pronose2.png
Hier z.B. Verlaufskurven für heute und die nächsten 2 Tage (bis 10 Tage werden Daten geliefert).

Oder mein gesamtes Dashboard, rechts unten z.B. für 10 Tage die Tagesprognose
Pronose3.png
Und bitte nicht wundern, ich verwende 2 Prognosen, die 2. wird Ulrich in Kürze noch als Option innerhalb Solaranzeige anbieten.
(Siehe auch viewtopic.php?f=29&t=795).

Bogeyof
Beiträge: 83
Registriert: Mi 13. Mai 2020, 10:04

Re: Ertragsprognosedaten in Solaranzeige einbinden

Beitrag von Bogeyof »

Heute noch einmal eine verbesserte Version, hier werden deutlich mehr Prognosewerte aus den Wetterdaten übernommen, z.B. Windstärke und Richtung, Regenmenge, Sonnenscheindauer pro Stunde, Bewölkungsgrad, Luftdruck usw.
Alles wird unter der Serie (Measurement) Wetterprognose abgelegt.

In der prognose.php gibt es nun auch eine Möglichkeit, die Prognose besser auf die eigene Anlage zu tunen. Dabei kann ab Zeile 227 für jede Stunde ein Korrekturfaktor eingetragen werden. Dazu geht Ihr am besten so vor:
- man wartet einen möglichst sonnigen Tag ab, vergleicht dann die Stundenwerte der Prognose mit den tatsächlichen Produktionswerten (pro Stunde) und korrigiert in der prognose.php dann mit einem Faktor für die jeweilige Stunden. Diese korrigierten Werte sind unter eigenePrognoseL abgelegt (eigenePrognose wird nicht verändert).
- In der Praxis hat es sich bei mir bewährt, einen Durchschnitt aus (eigenePrognose + eigenePrognoseL) / 2 zu bilden, mit passendem Korrekturfaktor habe ich an sonnigen Tagen kaum noch eine Abweichung.
Nach dem Download wieder die prognose.py.txt in prognose.py umbenennen! Viel Erfolg!

Prognose.png
Wie man in der folgenden Grafik vom 24.06.20 erkennen kann, war zwischen 14:00 und 16:30 die Sonneneinstrahlung öfter vermindert, aber in allen anderen Stunden passten Prognose und tatsächliche Produktion fast perfekt:

Prognose2.png
Dateianhänge
Prognose.py.txt
(22.5 KiB) 36-mal heruntergeladen
prognose.php
(13.65 KiB) 30-mal heruntergeladen

Antworten