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.
Erfasste Messwerte
Abschnitt betitelt „Erfasste Messwerte“Der Collector schreibt die folgenden Messwerte als Field in das angegebene Measurement der InfluxDB:
| Field | Beschreibung | Anbieter |
|---|---|---|
watt | Erwarteter Ertrag, in W | Alle |
watt_clearsky | Erwarteter Ertrag bei wolkenlosem Himmel, in W | nur pvnode |
watt_nosnow | Erwarteter Ertrag ohne Schneebedeckung, in W | nur pvnode v1 |
temp | Temperatur, in °C | nur pvnode |
humidity | Relative Luftfeuchte, in % | nur pvnode v2 |
weather_code | Wettercode (WMO-Standard) | nur pvnode |
Logging
Abschnitt betitelt „Logging“Der Collector schreibt ein Protokoll ins Docker-Log, das im Normalfall so aussieht:
Forecast collector for SOLECTRUS, Version v1.0.0, built at 2026-08-30T08:35:24.082Zhttps://github.com/solectrus/forecast-collectorCopyright (c) 2020-2026 Georg Ledermann, released under the MIT License
Using Ruby 4.0.6 on platform aarch64-linux-muslFound one pvnode site: My castle (site_xxxxxxxxxxxxxxxxxxxx)Pulling from pvnode (v2) when the API recommends it (next_poll_at)Pushing to InfluxDB at http://influxdb:8086, bucket solectrus, measurement forecast
Wait until InfluxDB is ready ... OK
#1 Fetching forecast at 2026-08-30T10:01:19+02:00 0: https://api.pvnode.com/v2/forecast/site_xxxxxxxxxxxxxxxxxxxx?include=default&include=clearsky&include=weather&past_days=0&timezone=utc ... OK pvnode quota: 4382 of 5000 requests left this month, resets 2026-09-01 00:00 UTC Pushing forecast to InfluxDB ... OK Sleeping until 2026-08-30 10:11:00 +0200 ......Unter der API v2 von pvnode nennt der Collector die gefundene Site und meldet nach jeder Abfrage das verbleibende Kontingent. Ein Intervall steht dort nicht, denn den nächsten Zeitpunkt gibt die API vor. 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. Schlägt ein Schreibzugriff auf die InfluxDB fehl, versucht er es mehrmals erneut.
Quelltext
Abschnitt betitelt „Quelltext“Der Forecast-Collector ist in Ruby implementiert, der Quelltext ist auf GitHub verfügbar:
github.com/solectrus/forecast-collector