Ertragsprognose über Solcast

Alle zusätzlichen Module, die in die Solaranzeige integriert wurden, wie den Wetterbericht, die Solarprognose, der Messenger Pushover, Sun & Moon, aWATTar Strompreise und weitere Module.

Moderator: Ulrich

PhotoRudi
Beiträge: 54
Registriert: Mo 5. Okt 2020, 11:23
Danksagung erhalten: 2 Mal

Ertragsprognose über Solcast

Beitrag von PhotoRudi »

Hallo,
ich bin ganz neu in dem Thema. Meine PV Anlage ist gerade ganz frisch installiert und ich hatte schon ein wenig im Internet gestöbert.

Viel zu spät habe ich dieses super Projekt entdeckt. Genau das, was ich gesucht habe: Monitoring der PV Anlage. Ich will sie gar nicht darüber steuern, allerdings möchte ich die Anlage visualisieren.
Dazu gehören natürlich die Anlagen-Parameter, sowie Umweltparameter.

Beim Thema Ertragsprognose bin ich auf https://toolkit.solcast.com.au/ gestoßen. Deren Vorhersage soll sehr gut sein. Getestet habe ich es mangels Erfahrung noch nicht.
Aber kann man die Ertragsprognose von Solcast in Grafana visualisieren? Die Daten von Solarprognose.de passen bei mir irgendwie gar nicht und die Seite macht mir momentan Probleme.
Die API von Solcast ist der von Solarprognose.de sehr ähnlich finde ich.
Wäre super, wenn Solcast mit aufgenommen werden könnte

Grüße

Stefan_E
Beiträge: 48
Registriert: Do 2. Jan 2020, 22:08
Danksagung erhalten: 2 Mal

Re: Ertragsprognose über Solcast

Beitrag von Stefan_E »

Ich habe eben ein Python script in Github freigestellt, wo ich mich etwas ausgetobt habe bezüglich Ertragsprognosen:
  1. SolCast - eigentlich die eleganteste Art, zu Prognosedaten zu kommen, inkl. 10%/90% Konfidenzintervall
  2. Deutscher Wetterdienst (MOSMIX) - ähnlich dem hier diskutierten Ansatz
  3. OpenWeatherMap - das von Solaranzeige ja schon für Wetterprognosen verwendet werden kann
Die Prognosen lassen sich einfach in Solaranzeige integrieren und stehen damit Grafana zur Verfügung.

SolCast ist ein Australischer Startup, der sich zum Ziel gesetzt hat, zuverlässige kurzfristige Ertragsprognosen basierend auf Satellitendaten zu generieren - vor allem für Grossanlagen. Für Dachinstallationen stellt er die Vorhersagen kostenfrei zur Verfügung. Er erlaubt zudem, effektive Ertragsdaten hochzuladen. Damit sollten die Ertragsprognosen mit der Zeit Abschattungen, etc. erkennen.

Ich vermute allerdings, dass der Hintergedanke ist, damit die zu Grunde liegenden kurzfristigen Modelle zu verbessern - gerne stelle ich meine Daten dafür zur Verfügung! Denn: wenn man Ertragsschwankungen vorhersagen kann, kann man sich vorstellen, die unsinnige 70%-Abregelung noch unsinniger werden zu lassen ... Ob man eigene Daten hochladen will, ist allerdings im Script konfigurierbar.

Für (2) und (3) muss man natürlich (a) die Einstrahlung und (b) die Solaranlage modellieren. Für die Einstrahlung kann man entweder GHI (Global Horizontal Irradiation) verwenden, wie sie von MOSMIX für die meisten (?) Stationen zur Verfügung gestellt wird, oder die Bewölkungsdichte (die man auch von OWM kriegt).

Man kann sie auch in eine SQLite Datenbank schreiben. Falls man das tut, werden alle Daten erhalten (also z.B. die Vorhersage von heute für übermorgen, von morgen für übermorgen und die ganz kurzfristigen). Damit will ich gelegentlich herausfinden, wie genau die Prognosen über welchen Zeitraum sind. Aber dazu muss ich erst mal ... warten ...

Jetzt hoffe ich, dass ich nicht allzu viele Bugs eingebaut habe ... :roll:

Viel Spass, Stefan

PhotoRudi
Beiträge: 54
Registriert: Mo 5. Okt 2020, 11:23
Danksagung erhalten: 2 Mal

Re: Ertragsprognose über Solcast

Beitrag von PhotoRudi »

Hallo Stefan,

schaut sehr gut aus.
Ich werde das Script mal testen. So kann ich sehen, wie viel Ertrag meine Anlage bringen würde, wenn sie nicht tief im Schnee vergraben wäre :|

Grüße

PhotoRudi
Beiträge: 54
Registriert: Mo 5. Okt 2020, 11:23
Danksagung erhalten: 2 Mal

Re: Ertragsprognose über Solcast

Beitrag von PhotoRudi »

So, ich hab das Script mal installiert. Scheint auch alles zu funktionieren. Nur ein Problem:
Wohin werden die Daten in die Influxdb geschrieben?
Datenbank solaranzeige. Power.Field PV.Gesamtleistung?
Kann ich hier nicht einen anderen Namen statt PV.Gesamtleistung eingeben? z.B. Solcast

Das habe ich leide noch nicht verstanden.

Es wird beim Ausführen des Scripts kein Fehler ausgegeben. Ich finde aber auch obigen Eintrag nicht in der Datenbank

Grüße


EDIT:
Um etwas weiter zu verwirren, habe ich nun nicht die Light-Version sondern die richtige Version genutzt. Nun kommen die Fehler:
python3 SolCastLight.py >> /home/pi/PVForecast/err.txt
Traceback (most recent call last):
File "SolCastLight.py", line 24, in <module>
mySolCast.getSolCast()
File "/home/pi/PVForecast/PVForecast/solcast.py", line 81, in getSolCast
self._influx.loadData(self) # store data to Influx, client was opened in self._doDownload()
File "/home/pi/PVForecast/PVForecast/influx.py", line 21, in loadData
client.write_points(data.DataTable[data.InfluxFields]+0.0, data.SQLTable) # +0.0 to force float
File "/usr/local/lib/python3.7/dist-packages/influxdb/_dataframe_client.py", line 125, in write_points
numeric_precision=numeric_precision)
File "/usr/local/lib/python3.7/dist-packages/influxdb/_dataframe_client.py", line 418, in _convert_dataframe_to_lines
datatype='field')
File "/usr/local/lib/python3.7/dist-packages/influxdb/_dataframe_client.py", line 439, in _stringify_dataframe
int_columns = dframe.select_dtypes(include=['integer']).columns
File "/usr/lib/python3/dist-packages/pandas/core/frame.py", line 3077, in select_dtypes
include_these = Series(not bool(include), index=self.columns)
File "/usr/lib/python3/dist-packages/pandas/core/series.py", line 275, in __init__
raise_cast_failure=True)
File "/usr/lib/python3/dist-packages/pandas/core/series.py", line 4149, in _sanitize_array
value, len(index), dtype)
File "/usr/lib/python3/dist-packages/pandas/core/dtypes/cast.py", line 1201, in construct_1d_arraylike_from_scalar
subarr = np.empty(length, dtype=dtype)
TypeError: Cannot interpret '<attribute 'dtype' of 'numpy.Wortzensur' objects>' as a data type


Kannst du mir hier helfen?

Stefan_E
Beiträge: 48
Registriert: Do 2. Jan 2020, 22:08
Danksagung erhalten: 2 Mal

Re: Ertragsprognose über Solcast

Beitrag von Stefan_E »

Oops - jetzt verwirrst Du mich :-(
Um etwas weiter zu verwirren, habe ich nun nicht die Light-Version sondern die richtige Version genutzt. Nun kommen die Fehler:
python3 SolCastLight.py >> /home/pi/PVForecast/err.txt
Wenn Du die volle Version benutzen willst, solltest Du sagen

Code: Alles auswählen

python3 PVForecasts.py >> /home/pi/PVForecast/err.txt
Da Du 'SolCastLight.py' sagst, bist Du in der light version - macht nichts, da Du ursprünglich ja nur Solcast wolltest :-)

Schauen wir mal die Fehlermeldung an: Du scheinst Daten von Solcast richtig herunter geladen zu haben, aber nicht richtig nach Influx zu bringen. Du steckst in self._influx.loadData(self) fest ... Hmm ... Die genaue Ursache kann ich noch nicht erkennen. Aber lass mich mal das Prinzip erklaeren: Dein `solcast_light_config.ini' sollte ungefähr so aussehen:

Code: Alles auswählen

[SolCast]
    resource_id       = <resource_id_from_solcast.com>
    api_key           = <api_id_from_solcast.com>

    Latitude          = <latitude_of_your_system>
    Longitude         = <longitude_of_your_system>
    post              = 0
    storeInflux       = 1
    
[Influx]
    # host            = localhost
    database          = <your_influx_db_name>
    # power_field     = PV.Gesamtleistung
Influx kann mehrere Datenbanken verwalten - also musst Du sagen, in welche Datenbank Du schreiben willst. 'database = solaranzeige' schreibt in die Datenbank 'solaranzeige' (wo auch Deine PV Daten stehen). Sollte kein Problem sein, aber wenn Dir das zu ungeheuerlich ist, kannst Du sagen 'database = forecast'. Nur musst Du die dann zuerst erstellen:

Code: Alles auswählen

~ $ influx
> show databases
> create database forecast
> show databases
> quit
~ $
Egal, Du weisst jetzt in welche Datenbank Du schreiben willst. 'solaranzeige' gabs schon, aber vielleicht hast Du Dich entschlossen 'forecast' zu wählen. Ich spiel jetzt mal mit letzterem weiter. Jetzt sollte das Script durch laufen und Du solltest sagen können:

Code: Alles auswählen

~ $ influx
> show databases
...
> use forecast
> show measurements
name
----
forecast_log
solcast
> show field keys on forecast from solcast
name: solcast
fieldKey      fieldType
--------      ---------
pv_estimate   float
pv_estimate10 float
pv_estimate90 float
> quit
~ $
pv_estimate ist was Du sehen willst.

Ich hab jetzt 'post = 0' gesetzt und 'power_field' raus kommentiert. Ich komme darauf zurück wenn das, was ich hier beschrieben steht laeuft.
So kann ich sehen, wie viel Ertrag meine Anlage bringen würde, wenn sie nicht tief im Schnee vergraben wäre :|
... so einfach geht das nicht :-) Meine PV liegt zwar frei wegen dem vielen Wind, aber Solcast sagt Schnee ueber PV? Passt nicht - Leistung 0W

Stefan

PhotoRudi
Beiträge: 54
Registriert: Mo 5. Okt 2020, 11:23
Danksagung erhalten: 2 Mal

Re: Ertragsprognose über Solcast

Beitrag von PhotoRudi »

Hallo,

ja du hast Recht. Die kopierten Fehler passten nicht zu der Beschreibung :D
Aber ich habe die Fehler gefunden und beseitigt
Die Versionen von numpy und pandas waren inkompatibel.

Obige Fehlermeldung konnte ich mit: "sudo pip3 install numpy --upgrade" beheben. Jetzt ist Version 1.21 (glaube ich) installiert.
Dann musste ich mit "sudo pip3 install pandas --upgrade" noch pandas updaten.

Ich bin auch der Meinung, dass man alle Abhängigkeiten aus der Readme installieren muss, sonst läuft auch das Light-Script nicht.

Aber nun läuft alles! :)

Ich hatte nach der Influx DB gefragt, weil kein Eintrag angelegt wurde. Nun sind EIntäge in solaranzeige unter solcast angelegt und es funktioniert.
Ich glaube, die EInträge "forecast_log" unter solaranzeige sind dann auch von dir? Die könnten meiner Meinung nach eher in eine Textdatei geschrieben werden.

Sonst einfach Klasse und für mich ist SolCast viel genauer als die anderen Vorhersagen! Zumindest was ich bislang immer beobachtet habe.


Besten Dank und weiter so!

Grüße

Bogeyof
Beiträge: 579
Registriert: Mi 13. Mai 2020, 10:04
Hat sich bedankt: 8 Mal
Danksagung erhalten: 54 Mal

Re: Ertragsprognose über Solcast

Beitrag von Bogeyof »

So, ich habe es auch mal installiert. Nur die Light-Version, die anderen Vorhersagen habe ich ja schon alle (MOSMIX, PVLIB). Es scheint schon interessant, für die nächsten Tage ist eigentlich Sonnenschein angesagt, aber SOLCAST scheint zu wissen, dass Schnee auf der Anlage liegt und gibt kaum Ertrag aus. MOSMIX und PVLIB dagegen gehen von guten Ertragsdaten aus.
Was mich ein wenig stört ist, dass man nur eine "Anlage" anlegen kann. Ich habe OST-WEST und damit kann ich die Anlage nicht wirklich konfigurieren. Ich kann die beiden Richtungen nicht anlegen, nach der ersten, OST, war Schluss. Ich habe mal die Gesamtleistung als SÜD angelegt in der Hoffnung, dass das "Tuning" das mit der Zeit gerade zieht, aber ich vermute die Werte werden nie stimmen.
Ansonsten müsste ich 2 Accounts anlegen und die Abfragen duplizieren und die Werte kumulieren. Da müsste ich aber einiges ändern, PY-Skripte, 2 INI-Dateien, unterschiedliche Einträge in die Datenbank, unterschiedliche Namen für die Abfragen wegen Tuning (einzelne Strings statt Gesamtleistung), letzter Eintrag solcast usw. Das erscheint mir zu aufwendig für eine weitere Prognose.
Also lasse ich mal die "SÜD"-Anlage laufen und sehe zu, wie es sich "tunt...

Stefan_E
Beiträge: 48
Registriert: Do 2. Jan 2020, 22:08
Danksagung erhalten: 2 Mal

Re: Ertragsprognose über Solcast

Beitrag von Stefan_E »

@PhotoRudi: Schoen dass es laeuft. Da ich keine alten Versionen von Numpy/Pandas habe ... ich vermute das Problem zu kennen (ich hab auf die billige Art columns nach float konvertiert ... einfach +0.0; vielleicht sollte ich das explizit tun. Ich werde das ändern... ob's hift werden wir erleben)

Nein, pvlib solltest Du nur fuer solcast nicht noetig haben ... nur die ersten beiden Steps (basics + minimal requirements).

@Bogeyof: im (überschaubaren) Forum von Solcast gibt's Beitraege die darauf hinweisen, dass gesplittete Anlagen mit Tunen gehandhabt werden können. Falls Du aber das Script aufbohren möchtest (auch fuer MOSMIX oder OWM): Einige Vorkehrungen sind schon getroffen - schick mir eine PM, falls Dich die Details interessieren.

Für's Tuning will ich jetzt nochmals auf

Code: Alles auswählen

[SolCast]
    # ...
    post              = 1
    
[Influx]
    # ...
    database        = solaranzeige
    power_field     = PV.Gesamtleistung
zurueck kommen. 'post = 1' schaltet das Tuning ein - was heisst, dass man die Leistung der eigenen Anlage in 5min-Intervallen hochlädt, auf dass Solcast daraus schlau werde:
  • Ost-/West Anlagen Performance voraussagen, obwohl Bogeyof nur eine (Sued-)lage definiert hat
  • Abschattungen - vor 9-Uhr steht bei mir ein Baum in der Sonne
  • ich nehme stark an, dass Solcast das auch dazu verwendet, "Insider Knowledge" zu bekommen wie gut ihr Algorithmus funktioniert - was ich sympatisch finde!
Damit man überhaupt was hochladen kann, muss man natürlich die eigene PV Leistung kennen. Genau dazu hat man aber Solaranzeige installiert. Wenn also 'database = solaranzeige' muss man die Daten "irgendwo" finden.

Wo genau? Im measurement 'PV' im Feld 'Gesamtleistung' :-).

Das stimmt z.B. fuer Kostal. Aber wenn jemand z.B. einen Solaredge hat, schreibt Solaranzeige das in's Feld 'Leistung' - also konfiguriert man 'power_field = PV.Leistung' und gut sollte sein...
die EInträge "forecast_log" unter solaranzeige sind dann auch von dir? Die könnten meiner Meinung nach eher in eine Textdatei geschrieben werden.
Könnte man - gaebe aber mehr Arbeit. Da SolCast nur 20 Abfragen pro Tag erlaubt, frage ich nur stündlich nach. Der Tag hat aber leider 24 Stunden. Also frag ich zwischen Sonnenuntergang und Sonnenaufgang nicht nach... Wenn jetzt die letzte Abfrage um 17:00 war und die Sonne geht um 17:59 unter, werden also die Daten zwischen 17:00 und 17:59 nicht fuer's Tuning verwendet. Das ist schade, denn Solcast wird dann denken, da steht ein Baum.

Also muss ich mir merken, wann ich zum letzten mal hochgeladen habe. Das kann man über eine Textdatei tun, aber wenn schon eine Datenbank da steht... na ja, der Mensch ist ein Faultier. Und zudem kann ich dann nachschauen, ob alles so funktioniert wie's soll.

Stefan

PhotoRudi
Beiträge: 54
Registriert: Mo 5. Okt 2020, 11:23
Danksagung erhalten: 2 Mal

Re: Ertragsprognose über Solcast

Beitrag von PhotoRudi »

@PhotoRudi: Schoen dass es laeuft. Da ich keine alten Versionen von Numpy/Pandas habe ... ich vermute das Problem zu kennen (ich hab auf die billige Art columns nach float konvertiert ... einfach +0.0; vielleicht sollte ich das explizit tun. Ich werde das ändern... ob's hift werden wir erleben)
Stimmt, in der Art lauteten die Fehlermeldungen. Aber egal, es funktioniert ja nun :)

Ich nutze nun auch nur noch das "Simply"-Script.
Wo genau? Im measurement 'PV' im Feld 'Gesamtleistung' :-).
Tuning habe ich bisher nicht eingeschaltet, werde ich aber tun, sobald der Schnee abgetaut ist. Ich habe einen SMA Tripower 4; hier heißt der Parameter nur "Leistung".

Das mit dem forecast_log hab ich nun verstanden und finde deine Lösung dafür natürlich gut.
Ich bin froh, dass jemand die Vorhersage über SolCast umgesetzt hat. Ich hätte das nicht hinbekommen.

SolCast war in Vergleichen letztes Jahr deutlich genauer als die anderen Vorhersagen.

Grüße

etofi
Beiträge: 47
Registriert: Fr 27. Nov 2020, 12:15
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal

Re: Ertragsprognose über Solcast

Beitrag von etofi »

Hi,

ich habe das Script jetzt mal installiert und sowohl die solcast_light_config.ini als auch die config.ini konfiguriert.

Wo bekomme ich eigentlich die Kürzel für ModuleName und InverterName her?

Wenn ich nun python3 PVForecast.py ausführe erhalte ich folgende Fehlermeldung:
Fehler.PNG

Wenn ich nun python3 SolCastLight.py ausführe scheint es durchzulaufen es wird aber nichts in der Influx DB abgelegt.

Ne Idee was das sein könnte?
Danke.

Grüße
Eric

Antworten