TapHome

Forecast.Solar

Packet Parser → HTTP
Beküldő
Utoljára frissítve: 03. 2026
Forecast.Solar

A Forecast.Solar egy ingyenes felhő API, amely napenergia-termelési becsléseket nyújt a helyszín, a panelok tájolása és a telepített teljesítmény alapján. Az EU Photovoltaic Geographical Information System (PVGIS) besugárzási adatait kombinálja időjárás-előrejelzésekkel, hogy megjósolja, mennyi energiát termel egy napelemes rendszer.

A TapHome HTTPS-en keresztül csatlakozik ehhez a szolgáltatáshoz egy PacketParser HTTP sablon segítségével. A sablon óránként egyszer kérdezi le az /estimate végpontot (az ingyenes szint óránkénti 12 kérés limitjén belül), és hat írásvédett energia szenzort biztosít: négy időablak-bontást az aktuális napról, valamint napi összesítőket a mai és holnapi napra. Nincs szükség hitelesítésre vagy API kulcsra.

Konfiguráció

A sablon importálásakor öt paraméter szükséges. Ezek határozzák meg a napelemes rendszert, és az API kérés URL összeállítására szolgálnak:

  • Latitude — a PV rendszer helyének tizedes szélességi foka (pl. 48.1778 Pozsonyhoz). Tartomány: -90-tól 90-ig, 0,0001 pontossággal (~10 m).
  • Longitude — a PV rendszer helyének tizedes hosszúsági foka (pl. 17.1426 Pozsonyhoz). Tartomány: -180-tól 180-ig.
  • PV_declination — a panelek dőlésszöge fokban. 0 = vízszintes (lapos tető), 90 = függőleges (falra szerelt). Tipikus lakóépület értékek: 20–45.
  • PV_azimuth — a panelek tájolása az égtájakhoz képest. -180 vagy 180 = észak, -90 = kelet, 0 = dél, 90 = nyugat. Déli tájolású panelekhez használjon 0-t.
  • PV_kWp — teljes telepített PV teljesítmény kilowatt csúcsban (pl. 5 egy 5 kWp-os rendszerhez).

Mind az öt paraméter modulváltozóként tárolódik a TapHome-ban, és importálás után módosítható a sablon újbóli importálása nélkül.

A Forecast.Solar API eltérő azimut konvenciót használ, mint egyes más eszközök. Ebben az API-ban 0 = dél, és az értékek az óramutató járásával megegyezően nőnek (-90 = kelet, 90 = nyugat, 180/-180 = észak). Ha Home Assistant-ből érkezik (ahol 180 = dél), vonjon le 180-at a HA értékből.

A koordináták megkereséséhez kattintson jobb gombbal a helyszínére a Google Maps-ben, és másolja ki a szélességi/hosszúsági értékeket.

Működés

A modul egy HTTP kérést küld lekérdezési ciklusonként:

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

Az API egy JSON választ ad vissza, amely tartalmazza az óránkénti kumulatív wattórákat (watt_hours), az időszaki energiát (watt_hours_period), a pillanatnyi teljesítményt (watts) és a napi összesítőket (watt_hours_day). A sablon a watt_hours és watt_hours_day értékeket elemzi mind a hat eszközérték levezetéséhez.

Két szolgáltatásattribútum olvasható a válasz metaadataiból: Place (a felismert helynév, pl. „Bratislava, Slovakia") és Time zone (pl. „Europe/Bratislava"). Ezek a modul részletes nézetében láthatók, és megerősítik, hogy az API helyesen azonosította a helyszínt.

Eszközök képességei

A sablon hat írásvédett energia szenzort biztosít. Minden érték wattórában (Wh) van megadva, és a PV energia előrejelzett termelését jelöli.

Időablak energiaelőrejelzés

A nap négy időablakra van felosztva. Minden eszköz az adott időszak várható energiatermelését mutatja:

  • Energy 0–9h — előrejelzett termelés éjféltől 9:00-ig. A kumulatív wattóra értéket olvassa a 09:00 időbélyegnél. A legtöbb helyszínen a napfelkeltétől a kora reggelig terjed.
  • Energy 9–12h — előrejelzett termelés 9:00-tól 12:00-ig. A 12:00 és 09:00 közötti kumulatív értékek különbségeként számítva.
  • Energy 12–15h — előrejelzett termelés 12:00-tól 15:00-ig. A 15:00 és 12:00 közötti kumulatív értékek különbségeként számítva. Jellemzően a legmagasabb teljesítményű időszak.
  • Energy 15–0h — előrejelzett termelés 15:00-tól a nap végéig. A napi összesítő mínusz a 15:00-kor mért kumulatív érték. A gyakorlatban a 15:00-tól napnyugtáig terjedő időszakot fedi le, mivel a termelés sötétedés után nullára csökken.

Ez a felosztás lehetővé teszi, hogy a smart rule-ok a nap meghatározott részeire célozzanak — például az akkumulátor töltését a 12–15h csúcs idejére ütemezzék, vagy az energiaigényes feladatokat a legmagasabb várható termelésű órákra halasszák.

Napi összesítők
  • PV Energy Forecast (Today) — az aktuális nap teljes előrejelzett energiatermelése. A watt_hours_day értéket olvassa a mai dátumra közvetlenül.
  • PV Energy Forecast (Tomorrow) — a következő nap teljes előrejelzett energiatermelése. A holnapi dátumot használja ugyanabból az API válaszból.

Ezek az összesítők hasznosak a napi tervezéshez — például annak eldöntéséhez, hogy a hőszivattyút PV energiával vagy hálózati árammal üzemeltessék az várható napelem-teljesítmény alapján.

További képességek

A Forecast.Solar API pillanatnyi teljesítménybecsléseket is nyújt (watt 15 perces időszakonként), kumulatív számítás nélküli időszaki energiaadatokat és csúcstermelési idő azonosítást. A fizetős szintek több paneltájolás támogatását (2–4 sík), történelmi termelési adatokat, tiszta égbolt becsléseket és csillapítási tényezőket kínálnak árnyékolás korrekciójához. Ezek egy jövőbeli sablonfrissítésben adhatók hozzá.

Automatizálási példák

Akkumulátor töltés előrejelzés alapján

Használja a PV Energy Forecast (Today) eszközt egy smart rule-ban:

  • Feltétel: PV Energy Forecast (Today) > 15000 (Wh = 15 kWh)
  • Művelet: akkumulátor beállítása „csak PV-ből tölt" módba

Felhős napokon alacsony előrejelzéssel váltson hálózati töltésre az olcsó tarifás órákban.

Energiaigényes feladatok ütemezése

Használja az időablak eszközöket a magas fogyasztású feladatokhoz legjobb időszak azonosításához:

  • Feltétel: Energy 12–15h > 3000 (Wh)
  • Művelet: medence szivattyú, vízmelegítő vagy EV töltés indítása 12:00-kor

Hibaelhárítás

Minden eszköz nullát vagy NaN-t mutat
  1. Ellenőrizze a TapHome Core internetkapcsolatát — a sablon kimenő HTTPS hozzáférést igényel az api.forecast.solar-hoz
  2. Ellenőrizze, hogy az API válaszol — nyissa meg a https://api.forecast.solar/estimate/48.1778/17.1426/45/0/5 címet böngészőben (cserélje ki saját paramétereire)
  3. Ha a hiba állapotkódot tartalmaz (pl. „429"), túllépte a kéréslimitet. Az ingyenes szint óránként 12 kérést engedélyez — várja meg a gördülő ablak visszaállítását
  4. A 400-as állapotkód jellemzően érvénytelen koordinátákat jelent (a szélességi/hosszúsági fokok felcserélődtek vagy a helyszín víz felett van)
Az előrejelzett értékek túl magasnak vagy alacsonynak tűnnek
  1. Ellenőrizze, hogy a PV_kWp paraméter megfelel a ténylegesen telepített teljesítménynek — közvetlenül skálázza az összes előrejelzett értéket
  2. Ellenőrizze a PV_declination-t — egy vízszintes panel (0) kevesebbet termel, mint egy optimálisan döntött panel (30–40 Közép-Európában)
  3. Ellenőrizze a PV_azimuth-ot — győződjön meg, hogy a tájolás megfelel a valóságnak. Ne feledje: 0 = dél ebben az API-ban
  4. Az API időjárás-előrejelzési adatokat használ, amelyek nem feltétlenül tükrözik a helyi viszonyokat (közeli épületek, fák, átmeneti árnyékolás). Az árnyékolás korrekciójához használja a csillapítási tényezőt a fizetős API-n keresztül
Az Energy 15–0h váratlanul alacsony értékeket mutat

Ez várt viselkedés. A „15–0h" eszköz a napi összesítő mínusz a 15:00-kor mért kumulatív termelés. Mivel a PV termelés gyakorlatilag napnyugtakor ér véget, ez az érték a 15:00-tól napnyugtáig tartó termelést jelenti — nem éjfélig. Téli hónapokban korai napnyugtával ez az érték nagyon kicsi lehet.

A Forecast.Solar API negyedéves karbantartást végez minden negyedév 1. napján éjfél UTC körül (január, április, július, október). A karbantartás alatt az API HTTP 503-at ad vissza, és az eszközök átmenetileg hibákat fognak mutatni.

Elérhető eszközök

Forecast.Solar Modul
Szerviz attribútumok
HelyAz API által a beküldött koordináták alapján feloldott helynév — megerősíti, hogy az API a helyes helyet azonosította
IdőzónaAz API által a beállított helyhez meghatározott időzóna — a helyes időbélyeg-igazításhoz használatos
Egyéni változók
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

Olvasás (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
Szerviz attribútumok
Place
PARSEJSON(output, "$.message.info.place")
Time zone
PARSEJSON(output, "$.message.info.timezone")
Energia 0–9h Változó Csak olvasható

Előrejelzett FV energia éjféltől 9:00-ig — kumulatív wattóra a 09:00 időbélyegnél

numeric Egység: Wh json_path

Energia 0–9h

Olvasás
var date := tostring(NOW(), "yyyy-MM-dd");

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

PARSETEXT(tmp, date + " 09:00:00\":", ",");
Energia 9–12h Változó Csak olvasható

Előrejelzett FV energia 9:00-tól 12:00-ig — a kumulatív wattórák különbsége 12:00 és 09:00 között

numeric Egység: Wh json_path

Energia 9–12h

Olvasás
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 Változó Csak olvasható

Előrejelzett FV energia 12:00-tól 15:00-ig — a kumulatív wattórák különbsége 15:00 és 12:00 között

numeric Egység: Wh json_path

Energia 12–15h

Olvasás
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 Változó Csak olvasható

Előrejelzett FV energia 15:00-tól a nap végéig — napi összesen mínusz kumulatív wattóra 15:00-kor

numeric Egység: Wh json_path

Energia 15–0h

Olvasás
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
FV energiaelőrejelzés (ma) Változó Csak olvasható

A napelem teljes előrejelzett energiatermelése az aktuális napra wattórában

numeric Egység: Wh json_path

FV energiaelőrejelzés (ma)

Olvasás
var date := tostring(NOW(), "yyyy-MM-dd");

PARSEJSON(output, "$.result.watt_hours_day." + date)
FV energiaelőrejelzés (holnap) Változó Csak olvasható

A napelem teljes előrejelzett energiatermelése a következő napra wattórában

numeric Egység: Wh json_path

FV energiaelőrejelzés (holnap)

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

PARSEJSON(output, "$.result.watt_hours_day." + date)
Kapcsolat: Packet Parser → HTTP
Lehetséges fejlesztések (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

Források