Zum Inhalt springen

Was ist der Forecast-Collector?

Der Forecast-Collector ermittelt den erwarteten Ertrag der PV-Anlage über die Anbieter Forecast.Solar, Solcast oder pvnode und schreibt diesen in die InfluxDB.

Der Ertrag ergibt sich aus Wetterdaten und der Anlagenkonfiguration. Folgende Parameter sind erforderlich:

  • Standort der Anlage (Längen- und Breitengrad)
  • Anzahl, Ausrichtung, Neigung und maximale Leistung (in kWp) der Dachflächen

Jeder Anbieter rechnet mit einem eigenen Modell. Die Genauigkeit der Prognosen unterscheidet sich entsprechend.

Zur Nutzung ist bei Solcast und pvnode eine (kostenfreie) Registrierung erforderlich. Bei Solcast liegen die Anlagendaten im Solcast-Portal, bei pvnode ab der API v2 ebenfalls beim Anbieter. Nur bei Forecast.Solar (und bei pvnode v1) werden sie direkt im Collector konfiguriert. Alle drei Anbieter bieten auch eine kostenpflichtige Variante an.

Der Collector schreibt die folgenden Messwerte als Field in das angegebene Measurement der InfluxDB:

FieldBeschreibungAnbieter
wattErwarteter Ertrag, in WAlle
watt_clearskyErwarteter Ertrag bei wolkenlosem Himmel, in Wnur pvnode
watt_nosnowErwarteter Ertrag ohne Schneebedeckung, in Wnur pvnode v1
tempTemperatur, in °Cnur pvnode
humidityRelative Luftfeuchte, in %nur pvnode v2
weather_codeWettercode (WMO-Standard)nur pvnode

Der Collector schreibt ein Protokoll ins Docker-Log, das im Normalfall so aussieht:

Forecast collector for SOLECTRUS, Version v0.10.0, built at 2026-07-10T09:48:01.254Z
https://github.com/solectrus/forecast-collector
Copyright (c) 2020-2026 Georg Ledermann, released under the MIT License
Using Ruby 4.0.5 on platform x86_64-linux-musl
Pulling from pvnode (v2) in Nowcast mode (every 10 min during daylight, slot-based at night)
Pushing to InfluxDB at http://influxdb:8086, bucket solectrus, measurement Forecast
Wait until InfluxDB is ready ... OK
#1 Fetching forecast at 2026-07-13T20:01:19+02:00
0: https://api.pvnode.com/v2/forecast/site_xxxxxxxxxxxxxxxxxxxx?include=default&include=clearsky&include=weather&forecast_days=7&past_days=0 ... OK
Pushing forecast to InfluxDB ... OK
Sleeping until 2026-07-13 20:04:00 +0200 ...
...

Bei pvnode steht dort kein Intervall, denn der Collector bestimmt die Abrufzeitpunkte selbst. Bei Forecast.Solar und Solcast steht stattdessen every <n> seconds.

Fehler protokolliert der Collector ebenfalls, etwa wenn der Anbieter nicht erreichbar ist oder den API-Key nicht akzeptiert.

Der Forecast-Collector ist in Ruby implementiert, der Quelltext ist auf GitHub verfügbar:
github.com/solectrus/forecast-collector