---
title: "OpenHolidays API"
description: "Integrácia OpenHolidays API pre TapHome. Zisťovanie štátnych sviatkov a školských prázdnin pre 35+ krajín cez HTTP — automatizácia vykurovania, osvetlenia."
url: "https://taphome.com/sk/compatibility/openholidays/"
language: sk
lastmod: 2026-03-28
generator: hugo
ai:
  topics: ["http","other","rest-api","holiday-detection","scheduling"]
  questions: ["Ako integrovať OpenHolidays API s TapHome?","Ako TapHome automaticky deteguje štátne sviatky?","Ako nakonfigurovať kódy krajiny a regiónu pre OpenHolidays v TapHome?","Prečo zariadenie štátnych sviatkov zobrazuje nesprávne výsledky?","Aký je rozdiel medzi IsPublicHoliday a IsSchoolHoliday v TapHome?","Dokáže TapHome prispôsobiť harmonogram vykurovania podľa sviatkov?"]
---

# OpenHolidays API

Komunikácia: Packet Parser → HTTP

- [Webová stránka OpenHolidays API](https://www.openholidaysapi.org)

## Návod na integráciu

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. `SK` pre Slovensko, `DE` pre Nemecko, `CZ` pre Česko). Kompletný zoznam podporovaných krajín je dostupný na `https://openholidaysapi.org/Countries`.
- **Region** — ISO 3166-2 kód subdivízie (napr. `SK-BC` pre Banskobystrický kraj, `DE-BY` pre Bavorsko). Zoznam subdivízií pre danú krajinu je dostupný na `https://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.

> [!TIP]
> 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.

> [!NOTE]
> 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

1. Overte, že kód krajiny je správny — na kontrolu zoznamu podporovaných krajín použite endpoint `/Countries`
2. 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
3. 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
4. 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/`.

> [!WARNING]
> 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.

## Dostupné zariadenia 3

Tieto zariadenia sa po importe zobrazia v TapHome.

OpenHolidays Modul

Vlastné premenné

`Country` (string) Kód krajiny podľa ISO 3166-1 alpha-2 (napr. SK, DE, CZ)

Full list at openholidaysapi.org/Countries

`Region` (string) Kód regiónu podľa ISO 3166-2 (napr. SK-BC, DE-BY)

List at openholidaysapi.org/Subdivisions?countryIsoCode={CountryCode}

Štátny sviatok Prepínač Len na čítanie

Dotazuje OpenHolidays API raz za hodinu — Áno, ak je dnes štátny sviatok pre nakonfigurovanú krajinu a región, inak Nie

boolean json\_path

Hodnoty / Stavy: Yes · No

Čítanie stavu prepínača

```taphome
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
```

Školské prázdniny Prepínač Len na čítanie

Dotazuje OpenHolidays API raz za hodinu — Áno, ak dnes spadá do obdobia školských prázdnin pre nakonfigurovanú krajinu a región, inak Nie

boolean json\_path

Hodnoty / Stavy: Yes · No

Čítanie stavu prepínača

```taphome
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
```

Víkend Prepínač Len na čítanie

Lokálny výpočet — Áno v sobotu a nedeľu, Nie v pracovné dni. Nepoužíva API.

boolean

Hodnoty / Stavy: Yes · No

Čítanie stavu prepínača

```taphome
var dt := NOW();
return(dt.DAYOFWEEK = 0 or dt.DAYOFWEEK = 6);
```

**Pripojenie:** Packet Parser → HTTP

Možné vylepšenia (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

## Parametre importu

Tieto hodnoty zadáte pri importe XML.

| Pýta sa v aplikácii | Predvolené |
|---------------------|------------|
| Country             | `SK`       |
| Region              | `SK-BC`    |

## Zdroje

- OpenHolidays API Reference (OpenAPI)
  
  [openholidaysapi.org](https://openholidaysapi.org/swagger/v1/swagger.json) 2026-03-28
- OpenHolidays API — Website Overview
  
  [www.openholidaysapi.org](https://www.openholidaysapi.org/en/api/) 2026-03-28
- OpenHolidays API — GitHub Repository
  
  [github.com](https://github.com/openpotato/openholidaysapi) 2026-03-28

## Súvisiaca dokumentácia

- [Integrácia Packet Parser](https://taphome.com/sk/compatibility/packet-parser-guide/)
- [Packet Parser (HTTP, TCP, UDP, FTP, MQTT)](https://taphome.com/sk/docs/integration/packet-parser/)
- [Funkcie Packet parsera](https://taphome.com/sk/docs/script/packet-parser/)
- [Parsovacie funkcie](https://taphome.com/sk/docs/script/parsing-functions/)

