# Was ist der Forecast-Collector?

> Der Forecast-Collector holt die Ertragsprognose der PV-Anlage von Forecast.Solar, Solcast oder pvnode und schreibt sie in die InfluxDB.

Der **Forecast-Collector** ermittelt den erwarteten Ertrag der PV-Anlage über die Anbieter [Forecast.Solar](https://forecast.solar), [Solcast](https://solcast.com) oder [pvnode](https://pvnode.com) 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

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

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

```log
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.

## Quelltext

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