TapHome

Forecast.Solar

Packet Parser → HTTP
Pridal
Posledná aktualizácia: 03. 2026
Forecast.Solar

Forecast.Solar je bezplatné cloudové API, ktoré poskytuje odhady výroby solárnej FV energie na základe polohy, orientácie panelov a inštalovaného výkonu. Kombinuje dáta o žiarení z EU Photovoltaic Geographical Information System (PVGIS) s predpoveďami počasia na predpovedanie množstva energie, ktoré solárna inštalácia vyrobí.

TapHome sa pripája k tejto službe cez HTTPS pomocou šablóny PacketParser HTTP. Šablóna polluje endpoint /estimate raz za hodinu (v rámci limitu bezplatnej úrovne 12 požiadaviek za hodinu) a poskytuje šesť read-only senzorov energie: štyri časové okná aktuálneho dňa a denné súčty pre dnešok a zajtrajšok. Nie je potrebná žiadna autentifikácia ani API kľúč.

Konfigurácia

Pri importe šablóny je potrebných päť parametrov. Tieto definujú solárnu inštaláciu a používajú sa na zostavenie URL API požiadavky:

  • Latitude — desatinná zemepisná šírka polohy FV systému (napr. 48.1778 pre Bratislavu). Rozsah: -90 až 90, presnosť na 0,0001 (~10 m).
  • Longitude — desatinná zemepisná dĺžka polohy FV systému (napr. 17.1426 pre Bratislavu). Rozsah: -180 až 180.
  • PV_declination — uhol sklonu panelov v stupňoch. 0 = horizontálne (plochá strecha), 90 = vertikálne (na stene). Typické hodnoty pre obytné budovy: 20–45.
  • PV_azimuth — orientácia panelov vzhľadom na svetové strany. -180 alebo 180 = sever, -90 = východ, 0 = juh, 90 = západ. Pre panely orientované na juh použite 0.
  • PV_kWp — celkový inštalovaný FV výkon v kilowattoch peak (napr. 5 pre systém 5 kWp).

Všetkých päť parametrov je uložených ako premenné modulu v TapHome a je možné ich zmeniť po importe bez nutnosti opätovného importu šablóny.

API Forecast.Solar používa odlišnú konvenciu azimutu ako niektoré iné nástroje. V tomto API 0 = juh a hodnoty rastú v smere hodinových ručičiek (-90 = východ, 90 = západ, 180/-180 = sever). Ak prechádzate z Home Assistant (kde 180 = juh), odpočítajte 180 od hodnoty HA.

Na zistenie súradníc kliknite pravým tlačidlom na vašu polohu v Google Maps a skopírujte hodnoty zemepisnej šírky a dĺžky.

Ako to funguje

Modul odošle jednu HTTP požiadavku za cyklus pollingu:

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

API vráti JSON odpoveď obsahujúcu kumulatívne watthodiny v každej hodine (watt_hours), energiu za obdobie (watt_hours_period), okamžitý výkon (watts) a denné súčty (watt_hours_day). Šablóna parsuje watt_hours a watt_hours_day na odvodenie všetkých šiestich hodnôt zariadení.

Dva atribúty služby sa čítajú z metadát odpovede: Place (rozpoznaný názov lokality, napr. „Bratislava, Slovakia") a Time zone (napr. „Europe/Bratislava"). Tieto sú viditeľné v detaile modulu a potvrdzujú, že API správne identifikovalo polohu.

Schopnosti zariadení

Šablóna poskytuje šesť read-only senzorov energie. Všetky hodnoty sú vo watthodinách (Wh) a reprezentujú predpovedanú výrobu FV energie.

Predpoveď energie v časových oknách

Deň je rozdelený na štyri časové okná. Každé zariadenie zobrazuje očakávanú výrobu energie pre dané obdobie:

  • Energy 0–9h — predpovedaná výroba od polnoci do 9:00. Číta kumulatívnu hodnotu watthodín pri časovej značke 09:00. Vo väčšine lokalít pokrýva východ slnka cez skoré ráno.
  • Energy 9–12h — predpovedaná výroba od 9:00 do 12:00. Vypočítaná ako rozdiel medzi kumulatívnymi hodnotami o 12:00 a 09:00.
  • Energy 12–15h — predpovedaná výroba od 12:00 do 15:00. Vypočítaná ako rozdiel medzi kumulatívnymi hodnotami o 15:00 a 12:00. Typicky obdobie s najvyšším výkonom.
  • Energy 15–0h — predpovedaná výroba od 15:00 do konca dňa. Vypočítaná ako denný súčet mínus kumulatívna hodnota o 15:00. V praxi pokrýva 15:00 až západ slnka, keďže výroba po zotmení klesne na nulu.

Toto rozdelenie umožňuje smart rules cieliť na konkrétne časti dňa — napríklad naplánovať nabíjanie batérie počas špičky 12–15h alebo odložiť energeticky náročné úlohy na hodiny s najvyššou očakávanou výrobou.

Denné súčty
  • PV Energy Forecast (Today) — celková predpovedaná výroba energie pre aktuálny deň. Číta hodnotu watt_hours_day pre dnešný dátum priamo.
  • PV Energy Forecast (Tomorrow) — celková predpovedaná výroba energie pre nasledujúci deň. Používa zajtrajší dátum z rovnakej API odpovede.

Tieto súčty sú užitočné pre denné plánovanie — napríklad rozhodnutie, či prevádzkovať tepelné čerpadlo na FV energiu alebo zo siete na základe očakávaného solárneho výkonu.

Ďalšie schopnosti

API Forecast.Solar poskytuje aj odhady okamžitého výkonu (watty za 15-minútové obdobia), dáta energie za obdobie bez kumulatívneho výpočtu a identifikáciu času špičkovej výroby. Platené úrovne pridávajú podporu viacerých orientácií panelov (2–4 roviny), historické dáta výroby, odhady pri jasnej oblohe a tlmiace faktory pre úpravu tieňa. Tieto je možné pridať v budúcej aktualizácii šablóny.

Príklady automatizácie

Nabíjanie batérie na základe predpovede

Použite zariadenie PV Energy Forecast (Today) v smart rule:

  • Podmienka: PV Energy Forecast (Today) > 15000 (Wh = 15 kWh)
  • Akcia: nastaviť batériu do režimu „nabíjať len z FV"

V zamračených dňoch s nízkou predpoveďou prepnite na nabíjanie zo siete počas lacných tarifných hodín.

Plánovanie energeticky náročných úloh

Použite zariadenia časových okien na identifikáciu najlepšieho obdobia pre úlohy s vysokou spotrebou:

  • Podmienka: Energy 12–15h > 3000 (Wh)
  • Akcia: spustiť bazénové čerpadlo, ohrievač vody alebo nabíjanie EV o 12:00

Riešenie problémov

Všetky zariadenia zobrazujú nulu alebo NaN
  1. Overte internetové pripojenie na TapHome Core — šablóna vyžaduje odchádzajúci HTTPS prístup na api.forecast.solar
  2. Skontrolujte, či API odpovedá — otvorte https://api.forecast.solar/estimate/48.1778/17.1426/45/0/5 v prehliadači (nahraďte vašimi parametrami)
  3. Ak chyba obsahuje stavový kód (napr. „429"), bol prekročený limit požiadaviek. Bezplatná úroveň povoľuje 12 požiadaviek za hodinu — počkajte na reset okna
  4. Stavový kód 400 typicky znamená neplatné súradnice (zemepisná šírka/dĺžka môžu byť prehodené alebo lokácia je nad vodou)
Predpovedané hodnoty sa zdajú príliš vysoké alebo nízke
  1. Overte, že parameter PV_kWp zodpovedá skutočnému inštalovanému výkonu — priamo škáluje všetky predpovedané hodnoty
  2. Skontrolujte PV_declination — horizontálny panel (0) vyrába menej ako optimálne naklonený panel (30–40 v strednej Európe)
  3. Skontrolujte PV_azimuth — overte, že orientácia zodpovedá realite. Pamätajte: 0 = juh v tomto API
  4. API používa dáta predpovede počasia, ktoré nemusia odrážať lokálne podmienky (blízke budovy, stromy, dočasné tienenie). Pre úpravu tieňa použite tlmiaci faktor cez platené API
Energy 15–0h zobrazuje neočakávane nízke hodnoty

Toto je očakávané správanie. Zariadenie „15–0h" počíta denný súčet mínus kumulatívnu výrobu o 15:00. Keďže FV výroba efektívne končí pri západe slnka, táto hodnota predstavuje výrobu od 15:00 do západu slnka — nie do polnoci. V zimných mesiacoch so skorým západom slnka môže byť táto hodnota veľmi malá.

API Forecast.Solar vykonáva štvrťročnú údržbu 1. dňa každého štvrťroka okolo polnoci UTC (január, apríl, júl, október). Počas údržby API vracia HTTP 503 a zariadenia budú dočasne zobrazovať chyby.

Dostupné zariadenia

Forecast.Solar Modul
Servisné atribúty
MiestoNázov lokality určený API z odoslaných súradníc — potvrdzuje, že API správne identifikovalo polohu
Časové pásmoČasové pásmo určené API pre nakonfigurovanú polohu — používa sa na správne zarovnanie časových značiek
Vlastné premenné
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

Čítanie (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
Servisné atribúty
Place
PARSEJSON(output, "$.message.info.place")
Time zone
PARSEJSON(output, "$.message.info.timezone")
Energia 0–9h Premenná Len na čítanie

Predpovedaná FV energia od polnoci do 9:00 — kumulatívne watthodiny k časovej značke 09:00

numeric Jednotka: Wh json_path

Energia 0–9h

Čítanie
var date := tostring(NOW(), "yyyy-MM-dd");

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

PARSETEXT(tmp, date + " 09:00:00\":", ",");
Energia 9–12h Premenná Len na čítanie

Predpovedaná FV energia od 9:00 do 12:00 — rozdiel kumulatívnych watthodín medzi 12:00 a 09:00

numeric Jednotka: Wh json_path

Energia 9–12h

Čítanie
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
Energia 12–15h Premenná Len na čítanie

Predpovedaná FV energia od 12:00 do 15:00 — rozdiel kumulatívnych watthodín medzi 15:00 a 12:00

numeric Jednotka: Wh json_path

Energia 12–15h

Čítanie
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
Energia 15–0h Premenná Len na čítanie

Predpovedaná FV energia od 15:00 do konca dňa — denný súčet mínus kumulatívne watthodiny o 15:00

numeric Jednotka: Wh json_path

Energia 15–0h

Čítanie
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
Predpoveď výroby FVE (dnes) Premenná Len na čítanie

Celková predpovedaná výroba solárnej energie na aktuálny deň vo watthodinách

numeric Jednotka: Wh json_path

Predpoveď výroby FVE (dnes)

Čítanie
var date := tostring(NOW(), "yyyy-MM-dd");

PARSEJSON(output, "$.result.watt_hours_day." + date)
Predpoveď výroby FVE (zajtra) Premenná Len na čítanie

Celková predpovedaná výroba solárnej energie na nasledujúci deň vo watthodinách

numeric Jednotka: Wh json_path

Predpoveď výroby FVE (zajtra)

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

PARSEJSON(output, "$.result.watt_hours_day." + date)
Pripojenie: Packet Parser → HTTP
Možné vylepšenia (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

Zdroje