TapHome

Forecast.Solar

Packet Parser → HTTP
Eingereicht von
Zuletzt aktualisiert: 03. 2026
Forecast.Solar

Forecast.Solar ist eine kostenlose Cloud-API, die Schätzungen zur Solarenergie-Produktion basierend auf Standort, Panelausrichtung und installierter Leistung liefert. Sie kombiniert Bestrahlungsdaten des EU Photovoltaic Geographical Information System (PVGIS) mit Wettervorhersagen, um vorherzusagen, wie viel Energie eine Solaranlage produzieren wird.

TapHome verbindet sich mit diesem Dienst über HTTPS mithilfe einer PacketParser-HTTP-Vorlage. Die Vorlage fragt den /estimate-Endpunkt einmal pro Stunde ab (innerhalb des kostenlosen Limits von 12 Anfragen pro Stunde) und stellt sechs schreibgeschützte Energiesensoren bereit: vier Zeitfenster-Aufschlüsselungen des aktuellen Tages und Tagessummen für heute und morgen. Keine Authentifizierung oder API-Schlüssel erforderlich.

Konfiguration

Beim Vorlagenimport werden fünf Parameter benötigt. Diese definieren die Solaranlage und werden zur Erstellung der API-Anfrage-URL verwendet:

  • Latitude — Dezimalbreitengrad des PV-Systemstandorts (z. B. 48.1778 für Bratislava). Bereich: -90 bis 90, Genauigkeit auf 0,0001 (~10 m).
  • Longitude — Dezimallängengrad des PV-Systemstandorts (z. B. 17.1426 für Bratislava). Bereich: -180 bis 180.
  • PV_declination — Neigungswinkel der Panele in Grad. 0 = horizontal (Flachdach), 90 = vertikal (Wandmontage). Typische Werte für Wohngebäude: 20–45.
  • PV_azimuth — Ausrichtung der Panele relativ zur Himmelsrichtung. -180 oder 180 = Norden, -90 = Osten, 0 = Süden, 90 = Westen. Für nach Süden ausgerichtete Panele verwenden Sie 0.
  • PV_kWp — Gesamte installierte PV-Leistung in Kilowatt Peak (z. B. 5 für eine 5-kWp-Anlage).

Alle fünf Parameter werden als Modulvariablen in TapHome gespeichert und können nach dem Import ohne erneuten Import der Vorlage geändert werden.

Die Forecast.Solar-API verwendet eine andere Azimut-Konvention als einige andere Tools. In dieser API bedeutet 0 = Süden und die Werte steigen im Uhrzeigersinn (-90 = Osten, 90 = Westen, 180/-180 = Norden). Wenn Sie von Home Assistant kommen (wo 180 = Süden), subtrahieren Sie 180 vom HA-Wert.

Um Ihre Koordinaten zu finden, klicken Sie mit der rechten Maustaste auf Ihren Standort in Google Maps und kopieren Sie die Breiten-/Längenwerte.

Funktionsweise

Das Modul sendet eine HTTP-Anfrage pro Abfragezyklus:

1
2
GET /estimate/{Latitude}/{Longitude}/{PV_declination}/{PV_azimuth}/{PV_kWp}
Accept: application/json

Die API gibt eine JSON-Antwort zurück, die kumulative Wattstunden pro Stunde (watt_hours), Energie pro Zeitraum (watt_hours_period), Momentanleistung (watts) und Tagessummen (watt_hours_day) enthält. Die Vorlage parst watt_hours und watt_hours_day, um alle sechs Gerätewerte abzuleiten.

Zwei Dienstattribute werden aus den Antwortmetadaten gelesen: Place (der aufgelöste Standortname, z. B. „Bratislava, Slovakia") und Time zone (z. B. „Europe/Bratislava"). Diese sind in der Moduldetailansicht sichtbar und bestätigen, dass die API den Standort korrekt identifiziert hat.

Gerätefähigkeiten

Die Vorlage stellt sechs schreibgeschützte Energiesensoren bereit. Alle Werte sind in Wattstunden (Wh) und stellen die prognostizierte PV-Energieproduktion dar.

Energieprognose in Zeitfenstern

Der Tag ist in vier Zeitfenster unterteilt. Jedes Gerät zeigt die erwartete Energieproduktion für den jeweiligen Zeitraum:

  • Energy 0–9h — prognostizierte Produktion von Mitternacht bis 9:00. Liest den kumulativen Wattstundenwert beim Zeitstempel 09:00. An den meisten Standorten deckt dies Sonnenaufgang bis frühen Morgen ab.
  • Energy 9–12h — prognostizierte Produktion von 9:00 bis 12:00. Berechnet als Differenz zwischen kumulativen Werten um 12:00 und 09:00.
  • Energy 12–15h — prognostizierte Produktion von 12:00 bis 15:00. Berechnet als Differenz zwischen kumulativen Werten um 15:00 und 12:00. Typischerweise der Zeitraum mit der höchsten Leistung.
  • Energy 15–0h — prognostizierte Produktion von 15:00 bis Tagesende. Berechnet als Tagessumme minus kumulativer Wert um 15:00. In der Praxis deckt dies 15:00 bis Sonnenuntergang ab, da die Produktion nach Einbruch der Dunkelheit auf null fällt.

Diese Aufteilung ermöglicht Smart Rules, die auf bestimmte Tagesabschnitte abzielen — zum Beispiel Batterieladung während der 12–15h-Spitze planen oder energieintensive Aufgaben auf Stunden mit der höchsten erwarteten Produktion verschieben.

Tagessummen
  • PV Energy Forecast (Today) — prognostizierte Gesamtenergieproduktion für den aktuellen Tag. Liest den watt_hours_day-Wert für das heutige Datum direkt.
  • PV Energy Forecast (Tomorrow) — prognostizierte Gesamtenergieproduktion für den nächsten Tag. Verwendet das morgige Datum aus derselben API-Antwort.

Diese Summen sind nützlich für die Tagesplanung — zum Beispiel die Entscheidung, ob die Wärmepumpe mit PV-Strom oder Netzstrom betrieben wird, basierend auf der erwarteten Solarleistung.

Weitere Fähigkeiten

Die Forecast.Solar-API bietet auch Schätzungen der Momentanleistung (Watt pro 15-Minuten-Intervall), Energie-pro-Zeitraum-Daten ohne kumulative Berechnung und Identifikation der Spitzenproduktionszeit. Bezahltarife bieten Unterstützung für mehrere Panelausrichtungen (2–4 Ebenen), historische Produktionsdaten, Schätzungen bei klarem Himmel und Dämpfungsfaktoren für Schattenanpassung. Diese können in einem zukünftigen Vorlagenupdate hinzugefügt werden.

Automatisierungsbeispiele

Batterieladung basierend auf Prognose

Verwenden Sie das Gerät PV Energy Forecast (Today) in einer Smart Rule:

  • Bedingung: PV Energy Forecast (Today) > 15000 (Wh = 15 kWh)
  • Aktion: Batterie auf „nur aus PV laden"-Modus setzen

An bewölkten Tagen mit niedriger Prognose auf Netzladung während günstiger Tarifzeiten umschalten.

Energieintensive Aufgaben planen

Verwenden Sie die Zeitfenster-Geräte, um den besten Zeitraum für Aufgaben mit hohem Verbrauch zu identifizieren:

  • Bedingung: Energy 12–15h > 3000 (Wh)
  • Aktion: Poolpumpe, Warmwasserbereiter oder EV-Ladung um 12:00 starten

Fehlerbehebung

Alle Geräte zeigen Null oder NaN
  1. Überprüfen Sie die Internetverbindung des TapHome Core — die Vorlage benötigt ausgehenden HTTPS-Zugriff auf api.forecast.solar
  2. Prüfen Sie, ob die API antwortet — öffnen Sie https://api.forecast.solar/estimate/48.1778/17.1426/45/0/5 im Browser (ersetzen Sie durch Ihre Parameter)
  3. Wenn der Fehler einen Statuscode enthält (z. B. „429"), wurde das Anfragelimit überschritten. Das kostenlose Kontingent erlaubt 12 Anfragen pro Stunde — warten Sie auf den Reset des Zeitfensters
  4. Statuscode 400 bedeutet typischerweise ungültige Koordinaten (Breiten-/Längengrad vertauscht oder Standort über Wasser)
Prognosewerte scheinen zu hoch oder zu niedrig
  1. Überprüfen Sie, ob der Parameter PV_kWp der tatsächlich installierten Leistung entspricht — er skaliert alle Prognosewerte direkt
  2. Prüfen Sie PV_declination — ein horizontales Panel (0) produziert weniger als ein optimal geneigtes Panel (30–40 in Mitteleuropa)
  3. Prüfen Sie PV_azimuth — überprüfen Sie, ob die Ausrichtung der Realität entspricht. Beachten Sie: 0 = Süden in dieser API
  4. Die API verwendet Wettervorhersagedaten, die lokale Bedingungen (nahegelegene Gebäude, Bäume, temporäre Verschattung) möglicherweise nicht berücksichtigen. Verwenden Sie den Dämpfungsfaktor über das kostenpflichtige API-Kontingent für Schattenanpassung
Energy 15–0h zeigt unerwartet niedrige Werte

Dies ist erwartetes Verhalten. Das Gerät „15–0h" berechnet die Tagessumme minus kumulative Produktion um 15:00. Da die PV-Produktion effektiv bei Sonnenuntergang endet, stellt dieser Wert die Produktion von 15:00 bis Sonnenuntergang dar — nicht bis Mitternacht. In Wintermonaten mit frühem Sonnenuntergang kann dieser Wert sehr gering sein.

Die Forecast.Solar-API führt vierteljährliche Wartung am 1. jedes Quartals gegen Mitternacht UTC durch (Januar, April, Juli, Oktober). Während der Wartung gibt die API HTTP 503 zurück und Geräte zeigen vorübergehend Fehler an.

Verfügbare Geräte

Forecast.Solar Modul
Serviceattribute
StandortOrtsname, der von der API aus den übermittelten Koordinaten ermittelt wurde — bestätigt, dass die API den richtigen Standort identifiziert hat
ZeitzoneZeitzone, die von der API für den konfigurierten Standort bestimmt wurde — wird für die korrekte Zeitstempel-Ausrichtung verwendet
Benutzerdefinierte Variablen
Latitude (numeric)Geographic latitude of the PV installation in decimal degrees (set during import)
Longitude (numeric)Geographic longitude of the PV installation in decimal degrees (set during import)
PV_declination (numeric)Tilt angle of the PV panels in degrees (0 = horizontal, 90 = vertical)
PV_azimuth (numeric)Compass orientation of the PV panels in degrees (0 = north, 180 = south)
PV_kWp (numeric)Installed peak power of the PV system in kilowatts

forecast.solar

Lesen (Modul)
VAR response := SENDHTTPREQUEST("/estimate/" + Latitude + "/" + Longitude + "/" + PV_declination + "/" + PV_azimuth + "/" + PV_kWp, "GET", "", "Accept: application/json");
IF response.IsSuccess
    output := response.Content;
ELSE
    ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
END
Serviceattribute
Place
PARSEJSON(output, "$.message.info.place")
Time zone
PARSEJSON(output, "$.message.info.timezone")
Energie 0–9h Variable Nur lesen

Prognostizierte PV-Energie von Mitternacht bis 9:00 — kumulative Wattstunden zum Zeitstempel 09:00

numeric Einheit: Wh json_path

Energie 0–9h

Lesen
var date := tostring(NOW(), "yyyy-MM-dd");

var tmp := PARSEJSON(output,"$.result.watt_hours");

PARSETEXT(tmp, date + " 09:00:00\":", ",");
Energie 9–12h Variable Nur lesen

Prognostizierte PV-Energie von 9:00 bis 12:00 — Differenz der kumulativen Wattstunden zwischen 12:00 und 09:00

numeric Einheit: Wh json_path

Energie 9–12h

Lesen
var date := tostring(NOW(), "yyyy-MM-dd");

var tmp := PARSEJSON(output,"$.result.watt_hours");

var h9 := PARSETEXT(tmp, date + " 09:00:00\":", ",");
var h12 := PARSETEXT(tmp, date + " 12:00:00\":", ",");

h12 - h9
Energie 12–15h Variable Nur lesen

Prognostizierte PV-Energie von 12:00 bis 15:00 — Differenz der kumulativen Wattstunden zwischen 15:00 und 12:00

numeric Einheit: Wh json_path

Energie 12–15h

Lesen
var date := tostring(NOW(), "yyyy-MM-dd");

var tmp := PARSEJSON(output,"$.result.watt_hours");

var h12 := PARSETEXT(tmp, date + " 12:00:00\":", ",");
var h15 := PARSETEXT(tmp, date + " 15:00:00\":", ",");

h15 - h12
Energie 15–0h Variable Nur lesen

Prognostizierte PV-Energie von 15:00 bis Tagesende — Tagessumme minus kumulative Wattstunden um 15:00

numeric Einheit: Wh json_path

Energie 15–0h

Lesen
var date := tostring(NOW(), "yyyy-MM-dd");

var tmp := PARSEJSON(output,"$.result.watt_hours");

var last := PARSEJSON(output, "$.result.watt_hours_day." + date);

var h15 := PARSETEXT(tmp, date + " 15:00:00\":", ",");

last - h15
PV-Energieprognose (heute) Variable Nur lesen

Gesamte prognostizierte Solarenergieproduktion für den aktuellen Tag in Wattstunden

numeric Einheit: Wh json_path

PV-Energieprognose (heute)

Lesen
var date := tostring(NOW(), "yyyy-MM-dd");

PARSEJSON(output, "$.result.watt_hours_day." + date)
PV-Energieprognose (morgen) Variable Nur lesen

Gesamte prognostizierte Solarenergieproduktion für den nächsten Tag in Wattstunden

numeric Einheit: Wh json_path

PV-Energieprognose (morgen)

Lesen
var date := tostring(DATETIMEADD(NOW(), 0, 0, 1), "yyyy-MM-dd");

PARSEJSON(output, "$.result.watt_hours_day." + date)
Verbindung: Packet Parser → HTTP
Mögliche Verbesserungen (9)
  • Instantaneous Power (watts) — Power average (W) per 15-min period — HA integration exposes this as 'Estimated Power Production — Now'
  • Energy per Period (watt_hours_period) — Energy produced in each 15-min period — alternative to cumulative watt_hours with delta calculation
  • Remaining Energy Today — Daily total minus current cumulative — HA exposes this, template could compute from existing data
  • Peak Production Time — Timestamp of highest watts value — requires iterating watts object, not trivially extractable with PARSEJSON
  • Multi-Plane Support (2-4 planes) — Paid tiers support 2-4 panel orientations per request — requires API key import parameter
  • Historic Production Data — Past production data for comparison — requires paid API key
  • Clear Sky Estimate — Theoretical maximum production without clouds — requires Professional tier API key
  • Damping Factor (shadow adjustment) — Adjusts morning/evening predictions for shadows, trees, buildings — could be added as import parameter
  • Inverter Power Limit — Limits peak prediction to inverter capacity — could be added as import parameter

Quellen