
OpenHolidays API besplatni je REST API otvorenog koda s podacima o državnim i školskim praznicima za više od 35 država. TapHome se na tu uslugu u oblaku spaja preko HTTPS-a predloškom PacketParser HTTP, a nisu potrebni ni autentifikacija ni API ključ.
Predložak daje tri binarna uređaja samo za čitanje: jedan za državne praznike, jedan za školske praznike i jedan za vikende. Mogu se koristiti u smart rules sustava TapHome za prilagodbu rasporeda grijanja, načina alarma, svjetlosnih scena ili bilo koje druge automatizacije, ovisno o tome je li danas radni dan.
Predložak je izradio ToBo, član zajednice.
Konfiguracija
Pri uvozu predloška potrebna su dva parametra:
- Country — kod države prema ISO 3166-1 alpha-2 (npr.
SKza Slovačku,DEza Njemačku,CZza Češku). Potpuni popis podržanih država dostupan je nahttps://openholidaysapi.org/Countries. - Region — kod regije prema ISO 3166-2 (npr.
SK-BCza Banskobistrički kraj,DE-BYza Bavarsku). Popis regija za pojedinu državu dostupan je nahttps://openholidaysapi.org/Subdivisions?countryIsoCode={CountryCode}.
Oba se parametra u sustavu TapHome spremaju kao varijable modula i mogu se promijeniti nakon uvoza bez ponovnog uvoza predloška.
Mnoge države imaju državne praznike koji vrijede samo u pojedinim regijama. Ako prepoznavanje praznika ne radi ispravno, provjerite je li postavljen ispravan kod regije, a ne samo kod države.
Mogućnosti uređaja
Prepoznavanje državnih praznika
Uređaj Državni praznik jednom na sat šalje upit krajnjoj točki GET /PublicHolidays. Šalje današnji datum zajedno s postavljenim kodovima države i regije. Ako API za taj datum vrati zapis o prazniku, uređaj prikazuje Da, a inače Ne.
Prepoznavanje školskih praznika
Uređaj Školski praznici radi na isti način, ali šalje upit krajnjoj točki GET /SchoolHolidays. Prepoznaje traju li danas školski praznici za postavljenu državu i regiju.
Dostupnost podataka o školskim praznicima razlikuje se po državama. Neke države imaju ograničenu pokrivenost regija, pa u dokumentaciji API-ja provjerite je li vaša regija podržana.
Prepoznavanje vikenda
Uređaj Vikend ne šalje upit API-ju. Koristi lokalnu funkciju sustava TapHome NOW().DAYOFWEEK kako bi utvrdio je li danas subota (dan 6) ili nedjelja (dan 0). Uređaj radi neovisno o API-ju i ne treba internetsku vezu.
Dodatne mogućnosti
OpenHolidays API daje i krajnje točke za upit o praznicima za određeni datum u svim državama (/PublicHolidaysByDate, /SchoolHolidaysByDate), za popis podržanih država i regija te za statistiku o dostupnim rasponima podataka. Mogu se dodati u nekom budućem ažuriranju predloška.
Rješavanje problema
Prepoznavanje praznika daje netočne rezultate
- Provjerite je li kod države (Country) ispravan: popis podržanih država provjerite krajnjom točkom
/Countries - Provjerite kod regije (Region): neki državni praznici vrijede samo u pojedinim regijama i neće se pojaviti s pogrešnim kodom regije
- Provjerite API izravno u pregledniku:
https://openholidaysapi.org/PublicHolidays?countryIsoCode=SK&subdivisionCode=SK-BC&validFrom=2026-01-01&validTo=2026-01-01(datum i kodove zamijenite svojim vrijednostima) - Ako API za datum koji bi trebao biti praznik vrati prazan niz
[], podaci za tu državu ili godinu možda još nisu dostupni
Uređaj prikazuje grešku (NaN)
Ako API nije dostupan (problem s mrežom, greška DNS-a ili prekid rada API-ja), predložak vraća NaN s HTTP statusnim kodom u poruci o grešci. OpenHolidays API projekt je zajednice bez ugovora o razini usluge (SLA), a trenutačnu dostupnost možete provjeriti na stranici stanja https://openpotato.github.io/uptime/.
OpenHolidays API projekt je otvorenih podataka koji održava zajednica. Iako je dosad bio pouzdano dostupan, dostupnost nije zajamčena. Za ključne automatizacije razmislite o dodavanju rezervnog smart rule koji primjereno obrađuje stanje greške.