TapHome

OpenHolidays API

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

Az OpenHolidays API egy ingyenes, nyílt forráskódú REST API, amely ünnepnapokról és iskolai szünetekről szolgáltat adatokat több mint 35 ország számára. A TapHome HTTPS-en keresztül csatlakozik ehhez a felhőszolgáltatáshoz egy PacketParser HTTP sablon segítségével — nem szükséges hitelesítés vagy API kulcs.

A sablon három csak olvasható logikai eszközt biztosít: egyet az ünnepnapokhoz, egyet az iskolai szünetekhez és egyet a hétvégékhez. Ezek felhasználhatók TapHome smart rules-ban fűtési ütemezések, riasztási módok, világítási jelenetek vagy bármilyen más automatizáció testreszabásához annak alapján, hogy ma munkanap-e vagy sem.

A sablont ToBo, egy közösségi hozzájáruló készítette.

Konfiguráció

A sablon importálásakor két paraméter szükséges:

  • Country — ISO 3166-1 alpha-2 országkód (pl. SK Szlovákia, DE Németország, CZ Csehország esetén). A támogatott országok teljes listája a https://openholidaysapi.org/Countries címen érhető el.
  • Region — ISO 3166-2 alegységkód (pl. SK-BC a Besztercebányai kerület, DE-BY Bajorország esetén). Egy adott ország alegységeinek listája a https://openholidaysapi.org/Subdivisions?countryIsoCode={CountryCode} címen érhető el.

Mindkét paraméter Module Variables-ként van tárolva a TapHome-ban, és az importálás után a sablon újraimportálása nélkül módosíthatók.

Sok országban vannak régióspecifikus ünnepnapok. Ha az ünnepnap-felismerés helytelennek tűnik, ellenőrizd, hogy az alegységkód a helyes régiónak felel-e meg — ne csak az országkódot.

Eszközképességek

Ünnepnap-felismerés

Az Ünnepnap eszköz óránként lekérdezi a GET /PublicHolidays végpontot. Elküldi a mai dátumot a beállított ország- és régiókódokkal együtt. Ha az API ünnepnap-bejegyzést ad vissza az adott dátumra, az eszköz Yes értéket mutat; ellenkező esetben No értéket.

Iskolai szünet felismerés

Az Iskolai szünet eszköz ugyanúgy működik, de a GET /SchoolHolidays végpontot kérdezi le. Felismeri, hogy a mai nap iskolai szüneti időszakba esik-e a beállított ország és régió szerint.

Az iskolai szüneti adatok elérhetősége országonként változik. Egyes országoknál korlátozott az alegységek lefedettsége — ellenőrizd az API dokumentációt, hogy a régiód támogatott-e.

Hétvége-felismerés

A Hétvége eszköz nem hívja meg az API-t. A TapHome helyi NOW().DAYOFWEEK függvényét használja annak megállapítására, hogy ma szombat (6. nap) vagy vasárnap (0. nap)-e. Ez az eszköz az API-tól függetlenül működik, és nem igényel internetkapcsolatot.

További képességek

Az OpenHolidays API emellett végpontokat biztosít ünnepnapok lekérdezéséhez egy adott dátumra az összes országban (/PublicHolidaysByDate, /SchoolHolidaysByDate), a támogatott országok és regionális alegységek listázásához, valamint az elérhető adattartományokról szóló statisztikák lekéréséhez. Ezek egy jövőbeli sablon-frissítésben adhatók hozzá.

Hibaelhárítás

Az ünnepnap-felismerés helytelen eredményeket ad
  1. Ellenőrizd, hogy az országkód helyes-e — a /Countries végpont segítségével tekintsd meg a támogatott országok listáját
  2. Ellenőrizd a régió (alegység) kódját — egyes ünnepnapok régióspecifikusak, és nem jelennek meg helytelen alegységkóddal
  3. Ellenőrizd az API-t közvetlenül a böngészőben: https://openholidaysapi.org/PublicHolidays?countryIsoCode=SK&subdivisionCode=SK-BC&validFrom=2026-01-01&validTo=2026-01-01 — cseréld le a dátumot és kódokat a saját értékeidre
  4. Ha az API üres tömböt [] ad vissza egy olyan dátumra, amely ünnepnap kellene hogy legyen, az adatok az adott országra vagy évre esetleg még nem állnak rendelkezésre
Az eszköz hibát mutat (NaN)

Ha az API nem érhető el (hálózati probléma, DNS-hiba vagy API-leállás), a sablon NaN értéket ad vissza a HTTP státuszkóddal a hibaüzenetben. Az OpenHolidays API egy közösségi projekt SLA nélkül — az aktuális elérhetőséget a https://openpotato.github.io/uptime/ státuszoldalon ellenőrizheted.

Az OpenHolidays API egy közösség által karbantartott nyílt adatprojekt. Bár megbízhatóan elérhető, nincs rendelkezésre állási garancia. Kritikus fontosságú automatizációkhoz érdemes egy tartalék szabályt hozzáadni, amely elegánsan kezeli a hibás állapotot.

Elérhető eszközök

OpenHolidays Modul
Egyéni változók
Country (string)ISO 3166-1 alpha-2 country code (e.g. SK, DE, CZ)
Full list at openholidaysapi.org/Countries
Region (string)ISO 3166-2 subdivision code (e.g. SK-BC, DE-BY)
List at openholidaysapi.org/Subdivisions?countryIsoCode={CountryCode}
Ünnepnap Kapcsoló Csak olvasható

Óránként lekérdezi az OpenHolidays API-t — Igen, ha ma ünnepnap a beállított ország és régió szerint, egyébként Nem

boolean json_path
Értékek / Állapotok: Yes · No

Ünnepnap

Kapcsoló állapot olvasása
var dt := NOW();
var date := dt.YEAR + "-" + dt.MONTH + "-" + dt.DAY;
var req:= "PublicHolidays?countryIsoCode=" + Country + "&subdivisionCode=" + Region + "&validFrom="+date + "&validTo="+date;
var response := SENDHTTPREQUEST(req);

if response.IsSuccess
  var content := response.Content;
  var isHoliday := PARSEJSON( content, "[0].temporalScope", 1);
  if isHoliday != null
    return(1);
  else
    return(0);
  end
else
  adderror(response.StatusCode + " (" + response.ReasonPhrase + ")");
  return(NaN);
end
Iskolai szünet Kapcsoló Csak olvasható

Óránként lekérdezi az OpenHolidays API-t — Igen, ha ma iskolai szünetre esik a beállított ország és régió szerint, egyébként Nem

boolean json_path
Értékek / Állapotok: Yes · No

Iskolai szünet

Kapcsoló állapot olvasása
var dt := NOW();
var date := dt.YEAR + "-" + dt.MONTH + "-" + dt.DAY;
var req:= "SchoolHolidays?countryIsoCode=" + Country + "&subdivisionCode=" + Region + "&validFrom="+date + "&validTo="+date;
var response := SENDHTTPREQUEST(req);

if response.IsSuccess
  var content := response.Content;
  var isHoliday := PARSEJSON( content, "[0].temporalScope", 1);
  if isHoliday != null
    return(1);
  else
    return(0);
  end
else
  adderror(response.StatusCode + " (" + response.ReasonPhrase + ")");
  return(NaN);
end
Hétvége Kapcsoló Csak olvasható

Helyi számítás — Igen szombaton és vasárnap, Nem hétköznapokon. Nem használja az API-t.

boolean
Értékek / Állapotok: Yes · No

Hétvége

Kapcsoló állapot olvasása
var dt := NOW();
return(dt.DAYOFWEEK = 0 or dt.DAYOFWEEK = 6);
Kapcsolat: Packet Parser → HTTP
Lehetséges fejlesztések (7)
  • Public Holidays By Date — Returns all public holidays across all countries for a single date — alternative to country-scoped query
  • School Holidays By Date — Returns all school holidays across all countries for a single date
  • Supported Countries — List of 35+ supported countries — useful for configuration but not a sensor
  • Regional Subdivisions — List of regional divisions for a country — useful for configuration
  • Public Holiday Data Range — Date range of available public holiday data for a country
  • School Holiday Data Range — Date range of available school holiday data for a country
  • Holiday Groups — Non-geographic holiday groupings (language zones, school types) for a country

Források