OpenHolidays API je bezplatné open-source REST API, ktoré poskytuje údaje o štátnych sviatkoch a školských prázdninách pre viac ako 35 krajín. TapHome sa pripája k tejto cloudovej službe cez HTTPS pomocou PacketParser HTTP šablóny — nie je potrebná žiadna autentifikácia ani API kľúč.
Šablóna poskytuje tri zariadenia s booleovským stavom (len čítanie): jedno pre štátne sviatky, jedno pre školské prázdniny a jedno pre víkendy. Tieto zariadenia sa dajú použiť v smart rules na prispôsobenie harmonogramu vykurovania, režimov alarmu, svetelných scén alebo akejkoľvek inej automatizácie podľa toho, či je dnes pracovný deň alebo nie.
Šablónu vytvoril ToBo, komunitný prispievateľ.
Konfigurácia
Počas importu šablóny sú potrebné dva parametre:
- Country — ISO 3166-1 alpha-2 kód krajiny (napr.
SKpre Slovensko,DEpre Nemecko,CZpre Česko). Kompletný zoznam podporovaných krajín je dostupný nahttps://openholidaysapi.org/Countries. - Region — ISO 3166-2 kód subdivízie (napr.
SK-BCpre Banskobystrický kraj,DE-BYpre Bavorsko). Zoznam subdivízií pre danú krajinu je dostupný nahttps://openholidaysapi.org/Subdivisions?countryIsoCode={CountryCode}.
Oba parametre sú uložené ako Module Variables v TapHome a dajú sa zmeniť po importe bez nutnosti opätovného importu šablóny.
Mnohé krajiny majú regionálne špecifické sviatky. Ak detekcia sviatkov vyzerá nesprávne, overte, že kód subdivízie zodpovedá správnemu regiónu — nielen kódu krajiny.
Schopnosti zariadení
Detekcia štátnych sviatkov
Zariadenie Štátny sviatok dotazuje endpoint GET /PublicHolidays raz za hodinu. Odošle dnešný dátum spolu s nakonfigurovanými kódmi krajiny a regiónu. Ak API vráti záznam o sviatku pre daný dátum, zariadenie zobrazí Yes; inak zobrazí No.
Detekcia školských prázdnin
Zariadenie Školské prázdniny funguje rovnako, ale dotazuje endpoint GET /SchoolHolidays. Deteguje, či dnešný deň spadá do obdobia školských prázdnin pre nakonfigurovanú krajinu a región.
Dostupnosť údajov o školských prázdninách sa líši podľa krajiny. Niektoré krajiny majú obmedzenú pokrytie subdivízií — skontrolujte dokumentáciu API a overte, že váš región je podporovaný.
Detekcia víkendov
Zariadenie Víkend nevolá API. Používa lokálnu funkciu TapHome NOW().DAYOFWEEK na určenie, či je dnes sobota (deň 6) alebo nedeľa (deň 0). Toto zariadenie funguje nezávisle od API a nepotrebuje internetové pripojenie.
Ďalšie schopnosti
OpenHolidays API taktiež poskytuje endpointy na dopytovanie sviatkov podľa konkrétneho dátumu naprieč všetkými krajinami (/PublicHolidaysByDate, /SchoolHolidaysByDate), výpis podporovaných krajín a regionálnych subdivízií a získavanie štatistík o dostupných dátových rozsahoch. Tieto môžu byť doplnené v budúcej aktualizácii šablóny.
Riešenie problémov
Detekcia sviatkov vracia nesprávne výsledky
- Overte, že kód krajiny je správny — na kontrolu zoznamu podporovaných krajín použite endpoint
/Countries - Overte kód regiónu (subdivízie) — niektoré štátne sviatky sú regionálne špecifické a nezobrazia sa s nesprávnym kódom subdivízie
- Skontrolujte API priamo v prehliadači:
https://openholidaysapi.org/PublicHolidays?countryIsoCode=SK&subdivisionCode=SK-BC&validFrom=2026-01-01&validTo=2026-01-01— nahraďte dátum a kódy vašimi hodnotami - Ak API vráti prázdne pole
[]pre dátum, ktorý by mal byť sviatkom, údaje pre danú krajinu alebo rok ešte nemusia byť dostupné
Zariadenie zobrazuje chybu (NaN)
Ak je API nedostupné (problém so sieťou, zlyhanie DNS alebo výpadok API), šablóna vráti NaN s HTTP stavovým kódom v chybovej správe. OpenHolidays API je komunitný projekt bez SLA — aktuálnu dostupnosť skontrolujte na stránke stavu na https://openpotato.github.io/uptime/.
OpenHolidays API je komunitne udržiavaný open data projekt. Hoci je spoľahlivo dostupný, neexistuje žiadna garancia dostupnosti. Pre kritické automatizácie zvážte pridanie záložného pravidla, ktoré elegantne spracuje chybový stav.