TapHome

Forecast.Solar

Packet Parser → HTTP
Přidal
Poslední aktualizace: 03. 2026
Forecast.Solar

Forecast.Solar je bezplatné cloudové API, které poskytuje odhady výroby solární FV energie na základě polohy, orientace panelů a instalovaného výkonu. Kombinuje data o záření z EU Photovoltaic Geographical Information System (PVGIS) s předpověďmi počasí k předpovídání množství energie, které solární instalace vyrobí.

TapHome se připojuje k této službě přes HTTPS pomocí šablony PacketParser HTTP. Šablona dotazuje endpoint /estimate jednou za hodinu (v rámci limitu bezplatné úrovně 12 požadavků za hodinu) a poskytuje šest senzorů energie pro čtení: čtyři časová okna aktuálního dne a denní součty pro dnešek a zítřek. Není potřeba žádná autentifikace ani API klíč.

Konfigurace

Při importu šablony je potřeba pět parametrů. Tyto definují solární instalaci a používají se k sestavení URL API požadavku:

  • Latitude — desítková zeměpisná šířka polohy FV systému (např. 48.1778 pro Bratislavu). Rozsah: -90 až 90, přesnost na 0,0001 (~10 m).
  • Longitude — desítková zeměpisná délka polohy FV systému (např. 17.1426 pro Bratislavu). Rozsah: -180 až 180.
  • PV_declination — úhel sklonu panelů ve stupních. 0 = horizontální (plochá střecha), 90 = vertikální (na stěně). Typické hodnoty pro obytné budovy: 20–45.
  • PV_azimuth — orientace panelů vzhledem ke světovým stranám. -180 nebo 180 = sever, -90 = východ, 0 = jih, 90 = západ. Pro panely orientované na jih použijte 0.
  • PV_kWp — celkový instalovaný FV výkon v kilowattech peak (např. 5 pro systém 5 kWp).

Všech pět parametrů je uloženo jako proměnné modulu v TapHome a lze je změnit po importu bez nutnosti opětovného importu šablony.

API Forecast.Solar používá odlišnou konvenci azimutu než některé jiné nástroje. V tomto API 0 = jih a hodnoty rostou ve směru hodinových ručiček (-90 = východ, 90 = západ, 180/-180 = sever). Pokud přecházíte z Home Assistant (kde 180 = jih), odečtěte 180 od hodnoty HA.

Pro zjištění souřadnic klikněte pravým tlačítkem na vaši polohu v Google Maps a zkopírujte hodnoty zeměpisné šířky a délky.

Jak to funguje

Modul odesílá jednu HTTP požadavek za cyklus dotazování:

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

API vrátí JSON odpověď obsahující kumulativní watthodiny v každé hodině (watt_hours), energii za období (watt_hours_period), okamžitý výkon (watts) a denní součty (watt_hours_day). Šablona parsuje watt_hours a watt_hours_day k odvození všech šesti hodnot zařízení.

Dva atributy služby se čtou z metadat odpovědi: Place (rozpoznaný název lokality, např. „Bratislava, Slovakia") a Time zone (např. „Europe/Bratislava"). Tyto jsou viditelné v detailu modulu a potvrzují, že API správně identifikovalo polohu.

Schopnosti zařízení

Šablona poskytuje šest senzorů energie pro čtení. Všechny hodnoty jsou ve watthodinách (Wh) a reprezentují předpovídanou výrobu FV energie.

Předpověď energie v časových oknech

Den je rozdělen na čtyři časová okna. Každé zařízení zobrazuje očekávanou výrobu energie pro dané období:

  • Energy 0–9h — předpovídaná výroba od půlnoci do 9:00. Čte kumulativní hodnotu watthodin při časovém razítku 09:00. Ve většině lokalit pokrývá východ slunce přes brzy ráno.
  • Energy 9–12h — předpovídaná výroba od 9:00 do 12:00. Vypočtená jako rozdíl mezi kumulativními hodnotami ve 12:00 a 09:00.
  • Energy 12–15h — předpovídaná výroba od 12:00 do 15:00. Vypočtená jako rozdíl mezi kumulativními hodnotami v 15:00 a 12:00. Typicky období s nejvyšším výkonem.
  • Energy 15–0h — předpovídaná výroba od 15:00 do konce dne. Vypočtená jako denní součet mínus kumulativní hodnota v 15:00. V praxi pokrývá 15:00 až západ slunce, protože výroba po setmění klesne na nulu.

Toto rozdělení umožňuje smart rules cílit na konkrétní části dne — například naplánovat nabíjení baterie během špičky 12–15h nebo odložit energeticky náročné úlohy na hodiny s nejvyšší očekávanou výrobou.

Denní součty
  • PV Energy Forecast (Today) — celková předpovídaná výroba energie pro aktuální den. Čte hodnotu watt_hours_day pro dnešní datum přímo.
  • PV Energy Forecast (Tomorrow) — celková předpovídaná výroba energie pro následující den. Používá zítřejší datum ze stejné API odpovědi.

Tyto součty jsou užitečné pro denní plánování — například rozhodnutí, zda provozovat tepelné čerpadlo na FV energii nebo ze sítě na základě očekávaného solárního výkonu.

Další schopnosti

API Forecast.Solar poskytuje také odhady okamžitého výkonu (watty za 15minutová období), data energie za období bez kumulativního výpočtu a identifikaci času špičkové výroby. Placené úrovně přidávají podporu více orientací panelů (2–4 roviny), historická data výroby, odhady při jasné obloze a tlumicí faktory pro úpravu stínu. Tyto lze přidat v budoucí aktualizaci šablony.

Příklady automatizace

Nabíjení baterie na základě předpovědi

Použijte zařízení PV Energy Forecast (Today) v smart rule:

  • Podmínka: PV Energy Forecast (Today) > 15000 (Wh = 15 kWh)
  • Akce: nastavit baterii do režimu „nabíjet pouze z FV"

V zatažených dnech s nízkou předpovědí přepněte na nabíjení ze sítě během levných tarifních hodin.

Plánování energeticky náročných úloh

Použijte zařízení časových oken k identifikaci nejlepšího období pro úlohy s vysokou spotřebou:

  • Podmínka: Energy 12–15h > 3000 (Wh)
  • Akce: spustit bazénové čerpadlo, ohřívač vody nebo nabíjení EV ve 12:00

Řešení problémů

Všechna zařízení zobrazují nulu nebo NaN
  1. Ověřte internetové připojení na TapHome Core — šablona vyžaduje odchozí HTTPS přístup na api.forecast.solar
  2. Zkontrolujte, zda API odpovídá — otevřete https://api.forecast.solar/estimate/48.1778/17.1426/45/0/5 v prohlížeči (nahraďte vašimi parametry)
  3. Pokud chyba obsahuje stavový kód (např. „429"), byl překročen limit požadavků. Bezplatná úroveň povoluje 12 požadavků za hodinu — počkejte na reset okna
  4. Stavový kód 400 typicky znamená neplatné souřadnice (zeměpisná šířka/délka mohou být prohozeny nebo lokace je nad vodou)
Předpovídané hodnoty se zdají příliš vysoké nebo nízké
  1. Ověřte, že parametr PV_kWp odpovídá skutečnému instalovanému výkonu — přímo škáluje všechny předpovídané hodnoty
  2. Zkontrolujte PV_declination — horizontální panel (0) vyrábí méně než optimálně nakloněný panel (30–40 ve střední Evropě)
  3. Zkontrolujte PV_azimuth — ověřte, že orientace odpovídá realitě. Pamatujte: 0 = jih v tomto API
  4. API používá data předpovědi počasí, která nemusí odrážet místní podmínky (blízké budovy, stromy, dočasné stínění). Pro úpravu stínu použijte tlumicí faktor přes placené API
Energy 15–0h zobrazuje neočekávaně nízké hodnoty

Toto je očekávané chování. Zařízení „15–0h" počítá denní součet mínus kumulativní výrobu v 15:00. Protože FV výroba efektivně končí při západu slunce, tato hodnota představuje výrobu od 15:00 do západu slunce — nikoli do půlnoci. V zimních měsících s brzkým západem slunce může být tato hodnota velmi malá.

API Forecast.Solar provádí čtvrtletní údržbu 1. dne každého čtvrtletí kolem půlnoci UTC (leden, duben, červenec, říjen). Během údržby API vrací HTTP 503 a zařízení budou dočasně zobrazovat chyby.

Dostupná zařízení

Forecast.Solar Modul
Servisní atributy
MístoNázev lokality určený API z odeslaných souřadnic — potvrzuje, že API správně identifikovalo polohu
Časové pásmoČasové pásmo určené API pro nakonfigurovanou polohu — používá se pro správné zarovnání časových značek
Vlastní proměnné
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

Čtení (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í atributy
Place
PARSEJSON(output, "$.message.info.place")
Time zone
PARSEJSON(output, "$.message.info.timezone")
Energie 0–9h Proměnná Pouze ke čtení

Předpovídaná FV energie od půlnoci do 9:00 — kumulativní watthodiny k časové značce 09:00

numeric Jednotka: Wh json_path

Energie 0–9h

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

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

PARSETEXT(tmp, date + " 09:00:00\":", ",");
Energie 9–12h Proměnná Pouze ke čtení

Předpovídaná FV energie od 9:00 do 12:00 — rozdíl kumulativních watthodin mezi 12:00 a 09:00

numeric Jednotka: Wh json_path

Energie 9–12h

Čtení
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 Proměnná Pouze ke čtení

Předpovídaná FV energie od 12:00 do 15:00 — rozdíl kumulativních watthodin mezi 15:00 a 12:00

numeric Jednotka: Wh json_path

Energie 12–15h

Čtení
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 Proměnná Pouze ke čtení

Předpovídaná FV energie od 15:00 do konce dne — denní součet mínus kumulativní watthodiny v 15:00

numeric Jednotka: Wh json_path

Energie 15–0h

Čtení
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
Předpověď výroby FVE (dnes) Proměnná Pouze ke čtení

Celková předpovídaná výroba solární energie na aktuální den ve watthodinách

numeric Jednotka: Wh json_path

Předpověď výroby FVE (dnes)

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

PARSEJSON(output, "$.result.watt_hours_day." + date)
Předpověď výroby FVE (zítra) Proměnná Pouze ke čtení

Celková předpovídaná výroba solární energie na následující den ve watthodinách

numeric Jednotka: Wh json_path

Předpověď výroby FVE (zítra)

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

PARSEJSON(output, "$.result.watt_hours_day." + date)
Připojení: Packet Parser → HTTP
Možná vylepšení (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