|
| 1 | +--- |
| 2 | +title: Umstellung auf pvnode |
| 3 | +sidebar: |
| 4 | + hidden: true |
| 5 | +--- |
| 6 | + |
| 7 | +Diese Anleitung beschreibt die Umstellung des Forecast-Collectors von einem anderen Anbieter (Forecast.Solar oder Solcast) auf **pvnode**. |
| 8 | + |
| 9 | +## Schritt 1: Registrierung bei pvnode |
| 10 | + |
| 11 | +1. Erstelle einen kostenlosen Account bei [pvnode.com](https://pvnode.com) |
| 12 | +2. Nach der Anmeldung navigiere zu [API Keys](https://pvnode.com/api-keys) |
| 13 | +3. Erstelle einen neuen API-Key und kopiere ihn |
| 14 | + |
| 15 | +:::tip |
| 16 | +Der kostenlose Account hat zwei Einschränkungen: |
| 17 | + |
| 18 | +- Maximal 40 API-Anfragen pro Monat (reicht für eine Dachfläche bei täglichen Updates) |
| 19 | +- Nur Prognose für den nächsten Tag |
| 20 | + |
| 21 | +Der kostenpflichtige Account bietet 1.000 Anfragen pro Monat und Prognosen für bis zu 7 Tage. |
| 22 | +::: |
| 23 | + |
| 24 | +## Schritt 2: `.env` anpassen |
| 25 | + |
| 26 | +#### Provider ändern |
| 27 | + |
| 28 | +```properties title=".env" |
| 29 | +# Alt: |
| 30 | +# FORECAST_PROVIDER=forecast.solar |
| 31 | + |
| 32 | +# Neu: |
| 33 | +FORECAST_PROVIDER=pvnode |
| 34 | +``` |
| 35 | + |
| 36 | +#### API-Key hinzufügen |
| 37 | + |
| 38 | +```properties title=".env" |
| 39 | +PVNODE_APIKEY=pvn_dein-api-key-hier |
| 40 | +``` |
| 41 | + |
| 42 | +#### Azimuth-Werte anpassen |
| 43 | + |
| 44 | +pvnode verwendet ein anderes Koordinatensystem für die Dachausrichtung: **Grad von Nord** (0-360) statt Grad von Süd (-180 bis 180). Die Werte müssen daher umgerechnet werden: |
| 45 | + |
| 46 | +| Himmelsrichtung | Forecast.Solar | pvnode | |
| 47 | +| --------------- | -------------: | -----: | |
| 48 | +| Süd | 0 | 180 | |
| 49 | +| Ost | -90 | 90 | |
| 50 | +| West | 90 | 270 | |
| 51 | +| Nord | 180 / -180 | 0 | |
| 52 | + |
| 53 | +**Formel:** `pvnode = (alter_wert + 180) mod 360` |
| 54 | + |
| 55 | +```properties title=".env (Beispiel für zwei Dachflächen)" |
| 56 | +# Alt (Forecast.Solar): |
| 57 | +# FORECAST_0_AZIMUTH=10 |
| 58 | +# FORECAST_1_AZIMUTH=-90 |
| 59 | + |
| 60 | +# Neu (pvnode): |
| 61 | +FORECAST_0_AZIMUTH=190 |
| 62 | +FORECAST_1_AZIMUTH=90 |
| 63 | +``` |
| 64 | + |
| 65 | +Der Forecast-Collector schreibt in ein eigenes InfluxDB-Measurement, standardmäßig heißt dieses `Forecast`. Eine Umstellung auf pvnode erfordert keine Anpassung der InfluxDB-Einstellungen, da die Daten im selben Measurement bleiben. Prüfe aber, ob bei dir ggfs. ein anderes Measurement in der `.env` eingetragen ist: |
| 66 | + |
| 67 | +```properties title=".env" |
| 68 | +INFLUX_MEASUREMENT_FORECAST=Forecast |
| 69 | +``` |
| 70 | + |
| 71 | +Der Forecast-Collector schreibt die erhaltenen in Prognosen in folgende Fields von InfluxDB: |
| 72 | + |
| 73 | +| Feldname | Beschreibung | |
| 74 | +| --------------- | ------------------------------- | |
| 75 | +| `watt` | Prognostizierte Leistung (Watt) | |
| 76 | +| `watt_clearsky` | Clearsky-Prognose (Watt) | |
| 77 | +| `temp` | Außentemperatur (°C) | |
| 78 | + |
| 79 | +#### Dashboard-Sensoren hinzufügen |
| 80 | + |
| 81 | +Um die zusätzlichen Daten von **pvnode** im Dashboard anzuzeigen, müssen zwei neue Sensoren in der `.env` definiert werden: |
| 82 | + |
| 83 | +```properties title=".env" |
| 84 | +# Bereits vorhanden |
| 85 | +INFLUX_SENSOR_INVERTER_POWER_FORECAST=Forecast:watt |
| 86 | + |
| 87 | +# Neu hinzuzufügen |
| 88 | +INFLUX_SENSOR_INVERTER_POWER_FORECAST_CLEARSKY=Forecast:watt_clearsky |
| 89 | +INFLUX_SENSOR_OUTDOOR_TEMP_FORECAST=Forecast:temp |
| 90 | +``` |
| 91 | + |
| 92 | +Wichtig: Achte auf die korrekte Groß-/Kleinschreibung des Measurements, hier `Forecast` - InfluxDB ist case-sensitive. Wenn der Collector z.b. nach `forecast` schreibt, das Dashboard aber `Forecast` abfragt, werden keine Daten angezeigt! |
| 93 | + |
| 94 | +#### Optionale Einstellungen |
| 95 | + |
| 96 | +```properties title=".env" |
| 97 | +# Bei kostenpflichtigem Account: |
| 98 | +# PVNODE_PAID=true |
| 99 | + |
| 100 | +# Optionale zusätzliche Parameter: |
| 101 | +# PVNODE_EXTRA_PARAMS=diffuse_radiation_model=perez |
| 102 | +``` |
| 103 | + |
| 104 | +## Schritt 3: `compose.yaml` anpassen |
| 105 | + |
| 106 | +Damit die neuen Variablen aus der `.env` auch in die Container übernommen werden, müssen sie in der `compose.yaml` eingetragen werden. |
| 107 | + |
| 108 | +#### A. Beim `forecast-collector` |
| 109 | + |
| 110 | +Beim `forecast-collector`-Service müssen die pvnode-spezifischen Variablen ergänzt werden: |
| 111 | + |
| 112 | +```yaml title="compose.yaml (Auszug)" |
| 113 | +services: |
| 114 | + forecast-collector: |
| 115 | + # ... |
| 116 | + environment: |
| 117 | + # ... |
| 118 | + - PVNODE_APIKEY # NEU |
| 119 | + - PVNODE_PAID # NEU |
| 120 | + - PVNODE_EXTRA_PARAMS # NEU |
| 121 | + - PVNODE_0_EXTRA_PARAMS # NEU |
| 122 | + - PVNODE_1_EXTRA_PARAMS # NEU |
| 123 | + - PVNODE_2_EXTRA_PARAMS # NEU |
| 124 | + - PVNODE_3_EXTRA_PARAMS # NEU |
| 125 | + # ... |
| 126 | +``` |
| 127 | + |
| 128 | +#### B. Beim `dashboard` |
| 129 | + |
| 130 | +Beim `dashboard`-Service müssen die neuen Sensor-Variablen ergänzt werden: |
| 131 | + |
| 132 | +```yaml title="compose.yaml (Auszug)" |
| 133 | +services: |
| 134 | + dashboard: |
| 135 | + # ... |
| 136 | + environment: |
| 137 | + # ... |
| 138 | + - INFLUX_SENSOR_INVERTER_POWER_FORECAST |
| 139 | + - INFLUX_SENSOR_INVERTER_POWER_FORECAST_CLEARSKY # NEU |
| 140 | + - INFLUX_SENSOR_OUTDOOR_TEMP_FORECAST # NEU |
| 141 | + # ... |
| 142 | +``` |
| 143 | + |
| 144 | +:::note |
| 145 | + |
| 146 | +Bei alten Installationen heißt der Service möglicherweise `app` statt `dashboard`. Das kann so bleiben, passe einfach dort die Umgebungsvariablen an. |
| 147 | + |
| 148 | +::: |
| 149 | + |
| 150 | +## Schritt 4: Neustart der Container |
| 151 | + |
| 152 | +Nach dem Speichern der Dateien müssen die Container aktualisiert und neu gestartet werden: |
| 153 | + |
| 154 | +```bash |
| 155 | +docker compose pull |
| 156 | +docker compose up -d |
| 157 | +``` |
| 158 | + |
| 159 | +Prüfe anschließend das Protokoll des Forecast-Collectors: |
| 160 | + |
| 161 | +```bash |
| 162 | +docker compose logs -f forecast-collector |
| 163 | +``` |
| 164 | + |
| 165 | +Bei erfolgreicher Konfiguration sollten nach kurzer Zeit die ersten Prognosen abgerufen werden und mit "OK" quittiert werden. |
| 166 | + |
| 167 | +## Tipps |
| 168 | + |
| 169 | +#### Koordinaten nicht ändern |
| 170 | + |
| 171 | +pvnode speichert Standorte auf 5 Nachkommastellen genau. Bei einer Änderung wird ein neuer Standort angelegt, was im kostenlosen Tarif zur Fehlermeldung _"Site limit has been exceeded"_ führen kann. |
| 172 | + |
| 173 | +Daraus folgt: Nach dem ersten Abruf dürfen `FORECAST_LATITUDE` und `FORECAST_LONGITUDE` für eine Weile **nicht mehr geändert** werden! Sorge also dafür, dass die Koordinaten bereits vor dem ersten Abruf korrekt und genau eingetragen sind. |
| 174 | + |
| 175 | +#### Bereits verwendete Standorte einsehen |
| 176 | + |
| 177 | +Im [pvnode Studio](https://www.pvnode.com/studio) kannst du unter "Standort auswählen" → "Bereits verwendeten Standort auswählen" deine gespeicherten Standorte einsehen. |
| 178 | + |
| 179 | +#### Fehlerbehebung |
| 180 | + |
| 181 | +Wenn der Forecast-Collector Daten erfolgreich abruft, diese aber nicht im Dashboard erscheinen: |
| 182 | + |
| 183 | +1. Prüfe, ob die Sensor-Variablen in der `.env` korrekt definiert sind |
| 184 | +2. Prüfe, ob die Variablen auch in der `compose.yaml` beim Dashboard-Service eingetragen sind |
| 185 | +3. Achte auf die korrekte Groß-/Kleinschreibung des Measurements (InfluxDB ist case-sensitive) |
| 186 | + |
| 187 | +## Weiterführende Links |
| 188 | + |
| 189 | +- [pvnode Referenz-Dokumentation](/referenz/forecast-collector/konfiguration-pvnode/) |
| 190 | +- [Allgemeine Forecast-Collector Konfiguration](/referenz/forecast-collector/allgemeine-konfiguration/) |
| 191 | +- [Dashboard Sensor-Konfiguration](/referenz/dashboard/sensor-konfiguration/) |
0 commit comments