
OpenHolidays API este un REST API gratuit, open source, care oferă date despre sărbătorile legale și vacanțele școlare pentru peste 35 de țări. TapHome se conectează la acest serviciu cloud prin HTTPS, folosind un șablon PacketParser HTTP — nu este necesară autentificarea sau o cheie API.
Șablonul oferă trei dispozitive binare doar pentru citire: unul pentru sărbătorile legale, unul pentru vacanțele școlare și unul pentru weekend. Le puteți folosi în smart rules TapHome pentru a ajusta programele de încălzire, modurile de alarmă, scenele de iluminat sau orice altă automatizare în funcție de faptul că ziua de azi este sau nu zi lucrătoare.
Șablonul a fost creat de ToBo, un colaborator din comunitate.
Configurare
La importul șablonului sunt necesari doi parametri:
- Country — codul de țară ISO 3166-1 alpha-2 (de ex.
SKpentru Slovacia,DEpentru Germania,CZpentru Cehia). Lista completă a țărilor suportate este disponibilă lahttps://openholidaysapi.org/Countries. - Region — codul subdiviziunii ISO 3166-2 (de ex.
SK-BCpentru regiunea Banska Bystrica,DE-BYpentru Bavaria). Lista subdiviziunilor unei țări este disponibilă lahttps://openholidaysapi.org/Subdivisions?countryIsoCode={CountryCode}.
Ambii parametri se salvează în TapHome ca variabile ale modulului și pot fi modificați după import, fără reimportarea șablonului.
Multe țări au sărbători legale specifice regiunilor. Dacă detectarea sărbătorilor pare incorectă, verificați dacă codul subdiviziunii corespunde regiunii corecte — nu doar codul țării.
Funcțiile dispozitivului
Detectarea sărbătorilor legale
Dispozitivul Sărbătoare legală interoghează endpointul GET /PublicHolidays o dată pe oră. Trimite data de azi împreună cu codurile de țară și de regiune configurate. Dacă API-ul returnează o sărbătoare pentru data respectivă, dispozitivul afișează Da; altfel afișează Nu.
Detectarea vacanțelor școlare
Dispozitivul Vacanță școlară funcționează la fel, dar interoghează endpointul GET /SchoolHolidays. Detectează dacă ziua de azi se încadrează într-o perioadă de vacanță școlară pentru țara și regiunea configurate.
Disponibilitatea datelor despre vacanțele școlare diferă de la o țară la alta. Unele țări au o acoperire limitată a subdiviziunilor — verificați în documentația API dacă regiunea dvs. este suportată.
Detectarea weekendului
Dispozitivul Weekend nu apelează API-ul. Folosește funcția locală TapHome NOW().DAYOFWEEK pentru a determina dacă ziua de azi este sâmbătă (ziua 6) sau duminică (ziua 0). Acest dispozitiv funcționează independent de API și nu necesită conexiune la internet.
Funcții suplimentare
OpenHolidays API expune și endpointuri pentru interogarea sărbătorilor dintr-o anumită dată în toate țările (/PublicHolidaysByDate, /SchoolHolidaysByDate), pentru listarea țărilor și a subdiviziunilor regionale suportate și pentru obținerea statisticilor despre perioadele acoperite de datele disponibile. Acestea pot fi adăugate într-o actualizare viitoare a șablonului.
Rezolvarea problemelor
Detectarea sărbătorilor returnează rezultate incorecte
- Verificați dacă codul Country este corect — folosiți endpointul
/Countriespentru a verifica lista țărilor suportate - Verificați codul Region (subdiviziunea) — unele sărbători legale sunt specifice regiunii și nu apar cu un cod de subdiviziune greșit
- Verificați API-ul direct în browser:
https://openholidaysapi.org/PublicHolidays?countryIsoCode=SK&subdivisionCode=SK-BC&validFrom=2026-01-01&validTo=2026-01-01— înlocuiți data și codurile cu valorile dvs. - Dacă API-ul returnează un tablou gol
[]pentru o dată care ar trebui să fie sărbătoare, este posibil ca datele să nu fie încă disponibile pentru țara sau anul respectiv
Dispozitivul afișează eroare (NaN)
Dacă API-ul nu este accesibil (problemă de rețea, eroare DNS sau indisponibilitatea API-ului), șablonul returnează NaN, cu codul de stare HTTP în mesajul de eroare. OpenHolidays API este un proiect al comunității, fără SLA — verificați disponibilitatea actuală pe pagina de stare https://openpotato.github.io/uptime/.
OpenHolidays API este un proiect de date deschise întreținut de comunitate. Deși până acum a funcționat fiabil, disponibilitatea sa nu este garantată. Pentru automatizările critice, luați în considerare adăugarea unui smart rule de rezervă care tratează corect starea de eroare.