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.
SKSzlovákia,DENémetország,CZCsehország esetén). A támogatott országok teljes listája ahttps://openholidaysapi.org/Countriescímen érhető el. - Region — ISO 3166-2 alegységkód (pl.
SK-BCa Besztercebányai kerület,DE-BYBajorország esetén). Egy adott ország alegységeinek listája ahttps://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
- Ellenőrizd, hogy az országkód helyes-e — a
/Countriesvégpont segítségével tekintsd meg a támogatott országok listáját - Ellenőrizd a régió (alegység) kódját — egyes ünnepnapok régióspecifikusak, és nem jelennek meg helytelen alegységkóddal
- 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 - 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.