---
title: "OpenWeather"
description: "Integrácia OpenWeather API s TapHome — aktuálne počasie a 3-hodinová a 24-hodinová predpoveď teploty, vlhkosti, tlaku, viditeľnosti a vetra."
url: "https://taphome.com/sk/compatibility/openweather/"
language: sk
lastmod: 2026-03-28
generator: hugo
ai:
  topics: ["http","data-service","cloud-api","weather","packet-parser"]
  questions: ["Ako integrovať OpenWeather s TapHome?","Čo poskytuje šablóna OpenWeather pre TapHome?","Ako získať bezplatný API kľúč OpenWeather pre TapHome?","Aké meteorologické údaje číta TapHome z OpenWeather?","Ako funguje prepínač poveternostných podmienok s viacerými hodnotami v TapHome?","Je OpenWeather API bezplatné na používanie s TapHome?"]
---

# OpenWeather

Komunikácia: Packet Parser → HTTP

- [Oficiálna webstránka OpenWeather](https://openweathermap.org/)

## Návod na integráciu

OpenWeather je poskytovateľ meteorologických údajov, ktorý ponúka globálne informácie o počasí prostredníctvom REST API. Šablóna TapHome sa pripája k bezplatnému OpenWeather API v2.5 cez HTTPS a číta aktuálne poveternostné podmienky, 3-hodinovú predpoveď a 24-hodinovú predpoveď pre nakonfigurovanú lokalitu.

Šablóna vykonáva dva API volania každých 5 minút — jedno pre aktuálne počasie a jedno pre 5-dňovú/3-hodinovú predpoveď. Poskytuje 18 zariadení len na čítanie, ktoré pokrývajú teplotu vzduchu, pocitovú teplotu, vlhkosť, atmosférický tlak, viditeľnosť, rýchlosť vetra a poveternostné podmienky. Všetky teploty sú v stupňoch Celzia (metrické jednotky) a nie je potrebné platené predplatné.

## Konfigurácia

### Získanie API kľúča

1. Zaregistrujte si bezplatný účet na [openweathermap.org](https://home.openweathermap.org/users/sign_up) — nie je potrebná kreditná karta
2. Po registrácii sa API kľúč (APPID) odošle v potvrdzujúcom e-maile
3. Kľúč je tiež dostupný na stránke účtu v záložke **API key**
4. Nové kľúče sa aktivujú automaticky, zvyčajne do 10 minút až 2 hodín

> [!TIP]
> Bezplatná úroveň umožňuje 60 volaní za minútu a 1 000 000 volaní za mesiac. Šablóna TapHome vykoná približne 576 volaní denne (2 volania každých 5 minút), čo je v rámci bezplatných limitov.

### Parametre importu

Pri importovaní šablóny v TapHome sú potrebné tri parametre:

| Parameter | Popis | Príklad |
|-----------|-------|---------|
| `latitude` | Zemepisná šírka lokality v desatinných stupňoch | `48.1778` |
| `longitude` | Zemepisná dĺžka lokality v desatinných stupňoch | `17.1426` |
| `appid` | API kľúč OpenWeather z dashboardu účtu | `a1b2c3d4e5f6...` |

Na zistenie súradníc lokality kliknite pravým tlačidlom na [Google Maps](https://maps.google.com) a vyberte súradnice z kontextového menu.

### API koncové body

Modul sa pripája na `api.openweathermap.org` cez HTTPS (port 443) a volá dva koncové body v každom cykle:

```
GET /data/2.5/weather?units=metric&lat={latitude}&lon={longitude}&appid={AppId}
GET /data/2.5/forecast?units=metric&lat={latitude}&lon={longitude}&appid={AppId}&cnt=9
```

Prvá požiadavka vracia aktuálne poveternostné podmienky. Druhá vracia zoznam predpovedí, kde `list[0]` je nasledujúci 3-hodinový slot a `list[8]` je slot +24 hodín (8 x 3h = 24h).

## Možnosti zariadení

Šablóna sprístupňuje 18 zariadení len na čítanie, organizovaných do troch skupín: aktuálne počasie (6 zariadení), 3-hodinová predpoveď (6 zariadení) a 24-hodinová predpoveď (6 zariadení). Každá skupina poskytuje rovnakých šesť meraní.

### Teplota a vlhkosť

- **Current Air Temperature** — aktuálna teplota v stupňoch Celzia s vlhkosťou ako sekundárnou hodnotou (API vracia 0–100 %, konvertované na pomer 0–1 pre TapHome)
- **Current Feels Like Temperature** — pocitová teplota zohľadňujúca vplyv vetra a vlhkosti. Schopnosť vlhkosti je vypnutá (vracia NaN) — používa sa iba hodnota teploty
- **Forecast (+3h) Air Temperature** — teplota a vlhkosť pre nasledujúci 3-hodinový predpovedný slot. Obsahuje servisný atribút **Forecast Date** zobrazujúci časovú značku dátového bodu
- **Forecast (+3h) Feels Like Temperature** — pocitová teplota pre nasledujúci 3-hodinový slot
- **Forecast (+24h) Air Temperature** — teplota a vlhkosť pre predpovedný slot +24h. Obsahuje servisný atribút **Forecast Date**
- **Forecast (+24h) Feels Like Temperature** — pocitová teplota pre slot +24h

### Atmosférický tlak a viditeľnosť

- **Current Air Pressure** — atmosférický tlak v hPa
- **Current Visibility** — vzdialenosť viditeľnosti v metroch (maximálne 10 000 m)
- **Forecast (+3h) Air Pressure** — atmosférický tlak pre nasledujúci 3-hodinový slot
- **Forecast (+3h) Visibility** — viditeľnosť pre 3-hodinovú predpoveď
- **Forecast (+24h) Air Pressure** — atmosférický tlak pre slot +24h
- **Forecast (+24h) Visibility** — viditeľnosť pre 24-hodinovú predpoveď

> [!WARNING]
> Zariadenia Forecast (+3h) Visibility a Forecast (+24h) Visibility majú v aktuálnej verzii šablóny prehodené dátové indexy. Zariadenie +3h číta z list[8] (pozícia 24h) a zariadenie +24h číta z list[0] (pozícia 3h). Hodnoty sú obrátené, kým sa to neopraví v budúcej aktualizácii šablóny.

### Rýchlosť vetra

- **Current Wind Speed** — rýchlosť vetra v m/s
- **Forecast (+3h) Wind Speed** — rýchlosť vetra pre nasledujúci 3-hodinový slot
- **Forecast (+24h) Wind Speed** — rýchlosť vetra pre slot +24h

### Poveternostné podmienky

Tri zariadenia typu prepínač s viacerými hodnotami zobrazujú kategóriu poveternostných podmienok:

- **Current Weather** — aktuálne poveternostné podmienky
- **Forecast (+3h) Weather** — poveternostné podmienky pre nasledujúci 3-hodinový slot
- **Forecast (+24h) Weather** — poveternostné podmienky pre slot +24h

Každé zariadenie počasia mapuje pole API `weather[0].main` na jednu zo 7 kategórií:

| Hodnota prepínača | Označenie | Skupiny API počasia |
|-------------------|-----------|---------------------|
| 0 | Clear | Clear |
| 1 | Clouds | Clouds |
| 2 | Rain | Rain |
| 3 | Drizzle | Drizzle |
| 4 | Thunderstorm | Thunderstorm |
| 5 | Snow | Snow |
| 6 | Atmosphere | Mist, Smoke, Haze, Dust, Fog, Sand, Ash, Squall, Tornado |

Ak API vráti nerozpoznanú skupinu počasia, prepínač sa predvolene nastaví na 0 (Clear). Hodnoty prepínača 7, 8 a 9 sú definované v konfigurácii šablóny, ale nemajú mapovanie v logike skriptu — sú to nepoužívané zástupné hodnoty.

### Ďalšie možnosti

OpenWeather API tiež poskytuje smer vetra, nárazy vetra, percento oblačnosti, objem dažďa a snehu (1h) a časy východu/západu slnka. Vlhkosť je sprístupnená iba ako sekundárna hodnota na teplotných senzoroch, nie ako samostatné zariadenie. Tieto údaje je možné pridať v budúcej aktualizácii šablóny.

## Riešenie problémov

### Všetky zariadenia zobrazujú NaN alebo žiadne údaje

1. Overte, že TapHome Core má prístup na internet — šablóna vyžaduje odchádzajúce HTTPS pripojenie na `api.openweathermap.org`
2. Skontrolujte, či je API kľúč platný — otvorte `https://api.openweathermap.org/data/2.5/weather?lat=48.18&lon=17.14&appid=YOUR_KEY&units=metric` v prehliadači na otestovanie
3. Nové API kľúče sa môžu aktivovať až do 2 hodín po registrácii
4. Potvrďte, že hodnoty zemepisnej šírky a dĺžky sú správne desatinné súradnice (nie stupne/minúty/sekundy)

### Údaje predpovede sa zdajú nesprávne

Predpovedné API vracia údaje v 3-hodinových intervaloch. Zariadenia +3h čítajú prvý predpovedný slot (`list[0]`), čo je nasledujúci dostupný 3-hodinový blok — nie presne 3 hodiny od teraz. Podobne zariadenia +24h čítajú `list[8]` (9. slot), čo predstavuje približne 24 hodín dopredu.

Všimnite si prehodenosť indexov viditeľnosti popísanú vo varovaní vyššie — ak sa hodnoty viditeľnosti +3h a +24h zdajú byť vymenené, ide o známu chybu šablóny.

### Preklep v názve zariadenia

Zariadenie č. 17 v šablóne sa volá "Forecast (+24h)Weather" (chýba medzera pred "Weather"). Ide o kozmetický problém v XML šablóne, ktorý neovplyvňuje funkčnosť. Zariadenie sa v tabuľke zariadení TapHome zobrazuje správne pomocou obohateného názvu.

## Dostupné zariadenia 18

Tieto zariadenia sa po importe zobrazia v TapHome.

OpenWeather Modul

Vlastné premenné

|                      |                                                                                                             |
|----------------------|-------------------------------------------------------------------------------------------------------------|
| `longitude` (string) | Geografická zemepisná dĺžka polohy meteorologickej stanice v desatinných stupňoch (nastavené počas importu) |
| `latitude` (string)  | Geografická zemepisná šírka polohy meteorologickej stanice v desatinných stupňoch (nastavené počas importu) |
| `AppId` (string)     | Kľúč OpenWeather API (získajte bezplatný kľúč na openweathermap.org/api)                                    |

Čítanie (modul)

```taphome
responseJson := "error";
Daily := "error";

VAR path := "data/2.5/weather?units=metric&lat=" + latitude + "&lon=" + longitude + "&appid=" + AppId;
VAR response := SENDHTTPREQUEST(path);

IF response.IsSuccess
    responseJson := response.Content;
ELSE
    VAR contentJson := response.Content;
    VAR errCode := response.StatusCode;
    VAR message := PARSEJSON(contentJson, "message");
    #ADDERROR("Failed to read data - (" + errCode + ") " + message);
END

path := "data/2.5/forecast?units=metric&lat=" + latitude + "&lon=" + longitude + "&appid=" + AppId + "&cnt=9";
response := SENDHTTPREQUEST(path);

IF response.IsSuccess
    Daily := response.Content;
ELSE
    contentJson := response.Content;
    errCode := response.StatusCode;
    message := PARSEJSON(contentJson, "message");
    #ADDERROR("Failed to read data - (" + errCode + ") " + message);
END
```

Aktuálny tlak vzduchu Premenná Len na čítanie

numeric Jednotka: hPa json\_path

Čítanie

```taphome
IF(ISNULL(responseJson) | responseJson = "error", NaN, PARSEJSON(responseJson,"main.pressure"))
```

Čítanie (modul)

```taphome
IF(ISNULL(responseJson) | responseJson = "error", ADDERROR("Failed to read data "));
```

Aktuálna teplota vzduchu Teplotný senzor Len na čítanie

Aktuálna teplota a vlhkosť — vlhkosť je delená 100 (API vracia 0–100 %, TapHome očakáva pomer 0–1)

numeric Jednotka: °C json\_path

Čítanie vlhkosti

```taphome
IF(ISNULL(responseJson) | responseJson = "error", NaN, PARSEJSON(responseJson,"main.humidity") / 100)
```

Čítanie (modul)

```taphome
IF(ISNULL(responseJson) | responseJson = "error", ADDERROR("Failed to read data "));
```

Čítanie teploty

```taphome
IF(ISNULL(responseJson) | responseJson = "error", NaN, PARSEJSON(responseJson,"main.temp"))
```

Aktuálna pocitová teplota Teplotný senzor Len na čítanie

Pocitová teplota zohľadňujúca chlad vetra a vlhkosť — funkcia vlhkosti je vypnutá (vracia NaN)

numeric Jednotka: °C json\_path

Čítanie vlhkosti

```taphome
NaN
```

Čítanie (modul)

```taphome
IF(ISNULL(responseJson) | responseJson = "error", ADDERROR("Failed to read data "));
```

Čítanie teploty

```taphome
IF(ISNULL(responseJson) | responseJson = "error", NaN, PARSEJSON(responseJson,"main.feels_like"))
```

Aktuálna viditeľnosť Premenná Len na čítanie

Vzdialenosť viditeľnosti v metroch (maximum 10 000 m)

numeric Jednotka: m json\_path

Čítanie

```taphome
IF(ISNULL(responseJson) | responseJson = "error", NaN, PARSEJSON(responseJson,"visibility"))
```

Čítanie (modul)

```taphome
IF(ISNULL(responseJson) | responseJson = "error", ADDERROR("Failed to read data "));
```

Aktuálne počasie Viacstavový prepínač Len na čítanie

Stav počasia ako viachodnotový prepínač — jasno, oblačno, dážď, mrholenie, búrka, sneženie, atmosféra

string multi\_value\_switch

Hodnoty / Stavy: Clear · Clouds · Rain · Drizzle · Thunderstorm · Snow · Atmosphere

Čítanie stavu prepínača

```taphome
IF(ISNULL(responseJson) | responseJson = "error")
    return(NaN);
END

VAR weather := PARSEJSON(responseJson, "weather[0].main");
SWITCH(weather, "Clear", 0, "Clouds", 1, "Rain", 2, "Drizzle", 3, "Thunderstorm", 4, "Snow", 5, "Mist", 6, "Smoke", 6, "Haze", 6, "Dust", 6, "Fog", 6, "Sand", 6, "Ash", 6, "Squall", 6, "Tornado", 6, 0);
```

Čítanie (modul)

```taphome
IF(ISNULL(responseJson) | responseJson = "error", ADDERROR("Failed to read data "));
```

Aktuálna rýchlosť vetra Premenná Len na čítanie

numeric Jednotka: m/s json\_path

Čítanie

```taphome
IF(ISNULL(responseJson) | responseJson = "error", NaN, PARSEJSON(responseJson,"wind.speed"))
```

Čítanie (modul)

```taphome
IF(ISNULL(responseJson) | responseJson = "error", ADDERROR("Failed to read data "));
```

Predpoveď (+3h) Tlak vzduchu Premenná Len na čítanie

numeric Jednotka: hPa json\_path

Čítanie

```taphome
IF(ISNULL(Daily) | Daily = "error", NaN, PARSEJSON(Daily,"$.list[0].main.pressure"))
```

Čítanie (modul)

```taphome
IF(ISNULL(responseJson) | responseJson = "error", ADDERROR("Failed to read data "));
```

Predpoveď (+3h) Teplota vzduchu Teplotný senzor Len na čítanie

Teplota a vlhkosť pre nasledujúci 3-hodinový predpovedný slot — obsahuje servisný atribút Dátum predpovede

numeric Jednotka: °C json\_path

Servisné atribúty

|                  |                                                                 |
|------------------|-----------------------------------------------------------------|
| Dátum predpovede | Časová značka dátového bodu predpovede (dt\_txt z odpovede API) |

Čítanie vlhkosti

```taphome
IF(ISNULL(Daily) | Daily = "error", NaN, PARSEJSON(Daily,"$.list[0].main.humidity") / 100)
```

Čítanie (modul)

```taphome
IF(ISNULL(Daily) | Daily = "error", ADDERROR("Failed to read data "));
```

Čítanie teploty

```taphome
IF(ISNULL(Daily) | Daily = "error", NaN, PARSEJSON(Daily,"$.list[0].main.temp"))
```

Servisné atribúty

Forecast Date

```taphome
IF(ISNULL(Daily) | Daily = "error", NaN, PARSEJSON(Daily,"$.list[0].dt_txt"))
```

Predpoveď (+3h) Pocitová teplota Teplotný senzor Len na čítanie

Pocitová teplota pre nasledujúci 3-hodinový predpovedný slot — funkcia vlhkosti je vypnutá (vracia NaN)

numeric Jednotka: °C json\_path

Čítanie vlhkosti

```taphome
NaN
```

Čítanie (modul)

```taphome
IF(ISNULL(responseJson) | responseJson = "error", ADDERROR("Failed to read data "));
```

Čítanie teploty

```taphome
IF(ISNULL(Daily) | Daily = "error", NaN, PARSEJSON(Daily,"$.list[0].main.feels_like"))
```

Predpoveď (+3h) Viditeľnosť Premenná Len na čítanie

Známy problém: číta z list\[8] namiesto list\[0] — hodnoty viditeľnosti sú vymenené s Predpoveď (+24h)

numeric Jednotka: m json\_path

Čítanie

```taphome
IF(ISNULL(Daily) | Daily = "error", NaN, PARSEJSON(Daily,"$.list[8].visibility"))
```

Čítanie (modul)

```taphome
IF(ISNULL(responseJson) | responseJson = "error", ADDERROR("Failed to read data "));
```

Predpoveď (+3h) Počasie Viacstavový prepínač Len na čítanie

Stav počasia pre nasledujúci 3-hodinový predpovedný slot — rovnaké 7-kategóriové mapovanie ako Aktuálne počasie

string multi\_value\_switch

Hodnoty / Stavy: Clear · Clouds · Rain · Drizzle · Thunderstorm · Snow · Atmosphere

Čítanie stavu prepínača

```taphome
IF(ISNULL(Daily) | Daily = "error")
    return(NaN);
END

VAR weather := PARSEJSON(Daily, "$.list[0].weather[0].main");
SWITCH(weather, "Clear", 0, "Clouds", 1, "Rain", 2, "Drizzle", 3, "Thunderstorm", 4, "Snow", 5, "Mist", 6, "Smoke", 6, "Haze", 6, "Dust", 6, "Fog", 6, "Sand", 6, "Ash", 6, "Squall", 6, "Tornado", 6, 0);
```

Čítanie (modul)

```taphome
IF(ISNULL(Daily) | Daily = "error", ADDERROR("Failed to read data "));
```

Predpoveď (+3h) Rýchlosť vetra Premenná Len na čítanie

numeric Jednotka: m/s json\_path

Čítanie

```taphome
IF(ISNULL(Daily) | Daily = "error", NaN, PARSEJSON(Daily,"$.list[0].wind.speed"))
```

Čítanie (modul)

```taphome
IF(ISNULL(responseJson) | responseJson = "error", ADDERROR("Failed to read data "));
```

Predpoveď (+24h) Tlak vzduchu Premenná Len na čítanie

numeric Jednotka: hPa json\_path

Čítanie

```taphome
IF(ISNULL(Daily) | Daily = "error", NaN, PARSEJSON(Daily,"$.list[8].main.pressure"))
```

Čítanie (modul)

```taphome
IF(ISNULL(responseJson) | responseJson = "error", ADDERROR("Failed to read data "));
```

Predpoveď (+24h) Teplota vzduchu Teplotný senzor Len na čítanie

Teplota a vlhkosť pre +24h predpovedný slot — obsahuje servisný atribút Dátum predpovede

numeric Jednotka: °C json\_path

Servisné atribúty

|                  |                                                                 |
|------------------|-----------------------------------------------------------------|
| Dátum predpovede | Časová značka dátového bodu predpovede (dt\_txt z odpovede API) |

Čítanie vlhkosti

```taphome
IF(ISNULL(Daily) | Daily = "error", NaN, PARSEJSON(Daily,"$.list[8].main.humidity") / 100)
```

Čítanie (modul)

```taphome
IF(ISNULL(Daily) | Daily = "error", ADDERROR("Failed to read data "));
```

Čítanie teploty

```taphome
IF(ISNULL(Daily) | Daily = "error", NaN, PARSEJSON(Daily,"$.list[8].main.temp"))
```

Servisné atribúty

Forecast Date

```taphome
IF(ISNULL(Daily) | Daily = "error", NaN, PARSEJSON(Daily,"$.list[8].dt_txt"))
```

Predpoveď (+24h) Pocitová teplota Teplotný senzor Len na čítanie

Pocitová teplota pre +24h predpovedný slot — funkcia vlhkosti je vypnutá (vracia NaN)

numeric Jednotka: °C json\_path

Čítanie vlhkosti

```taphome
NaN
```

Čítanie (modul)

```taphome
IF(ISNULL(responseJson) | responseJson = "error", ADDERROR("Failed to read data "));
```

Čítanie teploty

```taphome
IF(ISNULL(Daily) | Daily = "error", NaN, PARSEJSON(Daily,"$.list[8].main.feels_like"))
```

Predpoveď (+24h) Viditeľnosť Premenná Len na čítanie

Známy problém: číta z list\[0] namiesto list\[8] — hodnoty viditeľnosti sú vymenené s Predpoveď (+3h)

numeric Jednotka: m json\_path

Čítanie

```taphome
IF(ISNULL(Daily) | Daily = "error", NaN, PARSEJSON(Daily,"$.list[0].visibility"))
```

Čítanie (modul)

```taphome
IF(ISNULL(responseJson) | responseJson = "error", ADDERROR("Failed to read data "));
```

Predpoveď (+24h) Rýchlosť vetra Premenná Len na čítanie

numeric Jednotka: m/s json\_path

Čítanie

```taphome
IF(ISNULL(Daily) | Daily = "error", NaN, PARSEJSON(Daily,"$.list[8].wind.speed"))
```

Predpoveď (+24h) Počasie Viacstavový prepínač Len na čítanie

Stav počasia pre +24h predpovedný slot — rovnaké 7-kategóriové mapovanie ako Aktuálne počasie

string multi\_value\_switch

Hodnoty / Stavy: Clear · Clouds · Rain · Drizzle · Thunderstorm · Snow · Atmosphere

Čítanie stavu prepínača

```taphome
IF(ISNULL(Daily) | Daily = "error")
    return(NaN);
END

VAR weather := PARSEJSON(Daily, "$.list[8].weather[0].main");
SWITCH(weather, "Clear", 0, "Clouds", 1, "Rain", 2, "Drizzle", 3, "Thunderstorm", 4, "Snow", 5, "Mist", 6, "Smoke", 6, "Haze", 6, "Dust", 6, "Fog", 6, "Sand", 6, "Ash", 6, "Squall", 6, "Tornado", 6, 0);
```

**Pripojenie:** Packet Parser → HTTP

Možné vylepšenia (7)

- Current Humidity (standalone) — Humidity is only exposed as secondary value on temperature sensors, not as standalone device
- Wind Direction — Wind direction in degrees available in API but not implemented in template
- Wind Gust — Wind gust speed available in API but not implemented in template
- Cloudiness — Cloudiness percentage available in API but not implemented
- Rain Volume (1h) — Rain volume for last 1 hour in mm, available in API
- Snow Volume (1h) — Snow volume for last 1 hour in mm, available in API
- Sunrise / Sunset — Unix timestamps for sunrise and sunset available in API

## Parametre importu

Tieto hodnoty zadáte pri importe XML.

| Pýta sa v aplikácii        | Predvolené |
|----------------------------|------------|
| latitude                   | `48.1778`  |
| longitude                  | `17.1426`  |
| OpenWeather application id | `appid`    |

## Zdroje

- Current Weather Data API 2.5
  
  [openweathermap.org](https://openweathermap.org/current) 2026-03-28
- 5 Day / 3 Hour Forecast API
  
  [openweathermap.org](https://openweathermap.org/forecast5) 2026-03-28
- Weather Condition Codes
  
  [openweathermap.org](https://openweathermap.org/weather-conditions) 2026-03-28
- API Key Setup Guide
  
  [openweathermap.org](https://openweathermap.org/appid) 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/)

