TapHome

OpenHolidays API

Packet Parser → HTTP
Autor
Posljednje ažuriranje: 03. 2026
OpenHolidays API

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. SK za Slovačku, DE za Njemačku, CZ za Češku). Potpuni popis podržanih država dostupan je na https://openholidaysapi.org/Countries.
  • Region — kod regije prema ISO 3166-2 (npr. SK-BC za Banskobistrički kraj, DE-BY za Bavarsku). Popis regija za pojedinu državu dostupan je na https://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
  1. Provjerite je li kod države (Country) ispravan: popis podržanih država provjerite krajnjom točkom /Countries
  2. Provjerite kod regije (Region): neki državni praznici vrijede samo u pojedinim regijama i neće se pojaviti s pogrešnim kodom regije
  3. 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)
  4. 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.

Dostupni uređaji

OpenHolidays Modul
Prilagođene varijable
Country (string)Kod države prema ISO 3166-1 alpha-2 (npr. SK, DE, CZ)
Full list at openholidaysapi.org/Countries
Region (string)Kod regije prema ISO 3166-2 (npr. SK-BC, DE-BY)
List at openholidaysapi.org/Subdivisions?countryIsoCode={CountryCode}
Državni praznik Sklopka Samo za čitanje

Šalje upit API-ju OpenHolidays jednom na sat — Da ako je danas državni praznik za postavljenu državu i regiju, inače Ne

boolean json_path
Vrijednosti / stanja: Yes · No

Državni praznik

Čitanje stanja sklopke
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
Školski praznici Sklopka Samo za čitanje

Šalje upit API-ju OpenHolidays jednom na sat — Da ako danas traju školski praznici za postavljenu državu i regiju, inače Ne

boolean json_path
Vrijednosti / stanja: Yes · No

Školski praznici

Čitanje stanja sklopke
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
Vikend Sklopka Samo za čitanje

Lokalni izračun — Da u subotu i nedjelju, Ne radnim danima. Ne koristi API.

boolean
Vrijednosti / stanja: Yes · No

Vikend

Čitanje stanja sklopke
var dt := NOW();
return(dt.DAYOFWEEK = 0 or dt.DAYOFWEEK = 6);
Povezivanje: Packet Parser → HTTP
Moguća poboljšanja (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

Izvori

Pronašli ste problem s ovim predloškom uređaja?

Recite nam što ne radi, što nedostaje ili kako bi se predložak trebao ponašati. Vaše povratne informacije pomažu nam da katalog bude točan.

Provjerio TapHome

Želite ovo koristiti u svojoj centralnoj jedinici TapHome Core?

Otvorite ovaj predložak na portalu Customer Portal kako biste ga primijenili na jedan od svojih domova ili predložili poboljšanje i poslali ga natrag u katalog.

Otvorite na portalu