---
title: "OpenWeather"
description: "Integrace OpenWeather API s TapHome — aktuální počasí a 3hodinová a 24hodinová předpověď teploty, vlhkosti, tlaku, viditelnosti a větru."
url: "https://taphome.com/cs/compatibility/openweather/"
language: cs
lastmod: 2026-03-28
generator: hugo
ai:
  topics: ["http","data-service","cloud-api","weather","packet-parser"]
  questions: ["Jak integrovat OpenWeather s TapHome?","Co poskytuje šablona OpenWeather pro TapHome?","Jak získat bezplatný API klíč OpenWeather pro TapHome?","Jaká meteorologická data čte TapHome z OpenWeather?","Jak funguje přepínač povětrnostních podmínek s více hodnotami v TapHome?","Je OpenWeather API zdarma pro použití s TapHome?"]
---

# OpenWeather

Komunikace: Packet Parser → HTTP

- [Oficiální webové stránky OpenWeather](https://openweathermap.org/)

## Návod na integraci

OpenWeather je poskytovatel meteorologických dat nabízející globální informace o počasí prostřednictvím REST API. Šablona TapHome se připojuje k bezplatnému OpenWeather API v2.5 přes HTTPS a čte aktuální povětrnostní podmínky, 3hodinovou předpověď a 24hodinovou předpověď pro nakonfigurovanou lokalitu.

Šablona provádí dvě API volání každých 5 minut — jedno pro aktuální počasí a jedno pro 5denní/3hodinovou předpověď. Poskytuje 18 zařízení pouze pro čtení, pokrývajících teplotu vzduchu, pocitovou teplotu, vlhkost, atmosférický tlak, viditelnost, rychlost větru a povětrnostní podmínky. Všechny teploty jsou ve stupních Celsia (metrické jednotky) a není nutné placené předplatné.

## Konfigurace

### Získání API klíče

1. Zaregistrujte si bezplatný účet na [openweathermap.org](https://home.openweathermap.org/users/sign_up) — není potřeba kreditní karta
2. Po registraci se API klíč (APPID) odešle v potvrzovacím e-mailu
3. Klíč je také dostupný na stránce účtu v záložce **API key**
4. Nové klíče se aktivují automaticky, obvykle do 10 minut až 2 hodin

> [!TIP]
> Bezplatná úroveň umožňuje 60 volání za minutu a 1 000 000 volání za měsíc. Šablona TapHome provede přibližně 576 volání denně (2 volání každých 5 minut), což je v rámci bezplatných limitů.

### Parametry importu

Při importu šablony v TapHome jsou vyžadovány tři parametry:

| Parametr | Popis | Příklad |
|----------|-------|---------|
| `latitude` | Zeměpisná šířka lokality v desítkových stupních | `48.1778` |
| `longitude` | Zeměpisná délka lokality v desítkových stupních | `17.1426` |
| `appid` | API klíč OpenWeather z dashboardu účtu | `a1b2c3d4e5f6...` |

Pro zjištění souřadnic lokality klikněte pravým tlačítkem na [Google Maps](https://maps.google.com) a vyberte souřadnice z kontextové nabídky.

### API koncové body

Modul se připojuje na `api.openweathermap.org` přes HTTPS (port 443) a volá dva koncové body v každém cyklu:

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

První požadavek vrací aktuální povětrnostní podmínky. Druhý vrací seznam předpovědí, kde `list[0]` je následující 3hodinový slot a `list[8]` je slot +24 hodin (8 x 3h = 24h).

## Možnosti zařízení

Šablona zpřístupňuje 18 zařízení pouze pro čtení, organizovaných do tří skupin: aktuální počasí (6 zařízení), 3hodinová předpověď (6 zařízení) a 24hodinová předpověď (6 zařízení). Každá skupina poskytuje stejných šest měření.

### Teplota a vlhkost

- **Current Air Temperature** — aktuální teplota ve stupních Celsia s vlhkostí jako sekundární hodnotou (API vrací 0–100 %, převedeno na poměr 0–1 pro TapHome)
- **Current Feels Like Temperature** — pocitová teplota zohledňující vliv větru a vlhkosti. Schopnost vlhkosti je vypnutá (vrací NaN) — používá se pouze hodnota teploty
- **Forecast (+3h) Air Temperature** — teplota a vlhkost pro následující 3hodinový předpovědní slot. Obsahuje servisní atribut **Forecast Date** zobrazující časové razítko datového bodu
- **Forecast (+3h) Feels Like Temperature** — pocitová teplota pro následující 3hodinový slot
- **Forecast (+24h) Air Temperature** — teplota a vlhkost pro předpovědní slot +24h. Obsahuje servisní atribut **Forecast Date**
- **Forecast (+24h) Feels Like Temperature** — pocitová teplota pro slot +24h

### Atmosférický tlak a viditelnost

- **Current Air Pressure** — atmosférický tlak v hPa
- **Current Visibility** — vzdálenost viditelnosti v metrech (maximálně 10 000 m)
- **Forecast (+3h) Air Pressure** — atmosférický tlak pro následující 3hodinový slot
- **Forecast (+3h) Visibility** — viditelnost pro 3hodinovou předpověď
- **Forecast (+24h) Air Pressure** — atmosférický tlak pro slot +24h
- **Forecast (+24h) Visibility** — viditelnost pro 24hodinovou předpověď

> [!WARNING]
> Zařízení Forecast (+3h) Visibility a Forecast (+24h) Visibility mají v aktuální verzi šablony prohozené datové indexy. Zařízení +3h čte z list[8] (pozice 24h) a zařízení +24h čte z list[0] (pozice 3h). Hodnoty jsou prohozené, dokud se to neopraví v budoucí aktualizaci šablony.

### Rychlost větru

- **Current Wind Speed** — rychlost větru v m/s
- **Forecast (+3h) Wind Speed** — rychlost větru pro následující 3hodinový slot
- **Forecast (+24h) Wind Speed** — rychlost větru pro slot +24h

### Povětrnostní podmínky

Tři zařízení typu přepínač s více hodnotami zobrazují kategorii povětrnostních podmínek:

- **Current Weather** — aktuální povětrnostní podmínky
- **Forecast (+3h) Weather** — povětrnostní podmínky pro následující 3hodinový slot
- **Forecast (+24h) Weather** — povětrnostní podmínky pro slot +24h

Každé zařízení počasí mapuje pole API `weather[0].main` na jednu ze 7 kategorií:

| Hodnota přepínače | Označení | Skupiny API počasí |
|-------------------|----------|--------------------|
| 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 |

Pokud API vrátí nerozpoznanou skupinu počasí, přepínač se výchozně nastaví na 0 (Clear). Hodnoty přepínače 7, 8 a 9 jsou definovány v konfiguraci šablony, ale nemají mapování v logice skriptu — jsou to nepoužívané zástupné hodnoty.

### Další možnosti

OpenWeather API také poskytuje směr větru, nárazy větru, procento oblačnosti, objem dešťových a sněhových srážek (1h) a časy východu/západu slunce. Vlhkost je zpřístupněna pouze jako sekundární hodnota na teplotních senzorech, nikoli jako samostatné zařízení. Tyto údaje mohou být přidány v budoucí aktualizaci šablony.

## Řešení problémů

### Všechna zařízení zobrazují NaN nebo žádná data

1. Ověřte, že TapHome Core má přístup k internetu — šablona vyžaduje odchozí HTTPS připojení na `api.openweathermap.org`
2. Zkontrolujte, zda je API klíč platný — otevřete `https://api.openweathermap.org/data/2.5/weather?lat=48.18&lon=17.14&appid=YOUR_KEY&units=metric` v prohlížeči pro otestování
3. Nové API klíče se mohou aktivovat až do 2 hodin po registraci
4. Potvrďte, že hodnoty zeměpisné šířky a délky jsou správné desítkové souřadnice (nikoli stupně/minuty/sekundy)

### Data předpovědi se zdají nesprávná

Předpovědní API vrací data ve 3hodinových intervalech. Zařízení +3h čtou první předpovědní slot (`list[0]`), což je následující dostupný 3hodinový blok — nikoli přesně 3 hodiny od teď. Obdobně zařízení +24h čtou `list[8]` (9. slot), což představuje přibližně 24 hodin dopředu.

Všimněte si prohozenosti indexů viditelnosti popsané ve varování výše — pokud se hodnoty viditelnosti +3h a +24h zdají být prohozené, jedná se o známou chybu šablony.

### Překlep v názvu zařízení

Zařízení č. 17 v šabloně se jmenuje "Forecast (+24h)Weather" (chybí mezera před "Weather"). Jedná se o kosmetický problém v XML šabloně, který neovlivňuje funkčnost. Zařízení se v tabulce zařízení TapHome zobrazuje správně pomocí obohaceného názvu.

## Dostupná zařízení 18

Tato zařízení se po importu zobrazí v TapHome.

OpenWeather Modul

Vlastní proměnné

|                      |                                                                                              |
|----------------------|----------------------------------------------------------------------------------------------|
| `longitude` (string) | Zeměpisná délka polohy meteorologické stanice v desetinných stupních (nastaveno při importu) |
| `latitude` (string)  | Zeměpisná šířka polohy meteorologické stanice v desetinných stupních (nastaveno při importu) |
| `AppId` (string)     | Klíč OpenWeather API (získejte bezplatný klíč na openweathermap.org/api)                     |

Čtení (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ální atmosférický tlak Proměnná Pouze ke čtení

numeric Jednotka: hPa json\_path

Čtení

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

Čtení (modul)

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

Aktuální teplota vzduchu Teplotní senzor Pouze ke čtení

Aktuální teplota a vlhkost — vlhkost je dělená 100 (API vrací 0–100 %, TapHome očekává poměr 0–1)

numeric Jednotka: °C json\_path

Čtení vlhkosti

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

Čtení (modul)

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

Čtení teploty

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

Aktuální pocitová teplota Teplotní senzor Pouze ke čtení

Pocitová teplota zohledňující chlad větru a vlhkost — funkce vlhkosti je vypnutá (vrací NaN)

numeric Jednotka: °C json\_path

Čtení vlhkosti

```taphome
NaN
```

Čtení (modul)

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

Čtení teploty

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

Aktuální viditelnost Proměnná Pouze ke čtení

Vzdálenost viditelnosti v metrech (maximum 10 000 m)

numeric Jednotka: m json\_path

Čtení

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

Čtení (modul)

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

Aktuální počasí Vícestavový přepínač Pouze ke čtení

Stav počasí jako vícehodnotový přepínač — jasno, oblačno, déšť, mrholení, bouřka, sněžení, atmosféra

string multi\_value\_switch

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

Čtení stavu přepínače

```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);
```

Čtení (modul)

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

Aktuální rychlost větru Proměnná Pouze ke čtení

numeric Jednotka: m/s json\_path

Čtení

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

Čtení (modul)

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

Předpověď (+3h) Atmosférický tlak Proměnná Pouze ke čtení

numeric Jednotka: hPa json\_path

Čtení

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

Čtení (modul)

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

Předpověď (+3h) Teplota vzduchu Teplotní senzor Pouze ke čtení

Teplota a vlhkost pro další 3hodinový předpovědní slot — obsahuje servisní atribut Datum předpovědi

numeric Jednotka: °C json\_path

Servisní atributy

|                  |                                                                 |
|------------------|-----------------------------------------------------------------|
| Datum předpovědi | Časová značka datového bodu předpovědi (dt\_txt z odpovědi API) |

Čtení vlhkosti

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

Čtení (modul)

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

Čtení teploty

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

Servisní atributy

Forecast Date

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

Předpověď (+3h) Pocitová teplota Teplotní senzor Pouze ke čtení

Pocitová teplota pro další 3hodinový předpovědní slot — funkce vlhkosti je vypnutá (vrací NaN)

numeric Jednotka: °C json\_path

Čtení vlhkosti

```taphome
NaN
```

Čtení (modul)

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

Čtení teploty

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

Předpověď (+3h) Viditelnost Proměnná Pouze ke čtení

Známý problém: čte z list\[8] místo list\[0] — hodnoty viditelnosti jsou prohozeny s Předpověď (+24h)

numeric Jednotka: m json\_path

Čtení

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

Čtení (modul)

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

Předpověď (+3h) Počasí Vícestavový přepínač Pouze ke čtení

Stav počasí pro další 3hodinový předpovědní slot — stejné 7kategoriové mapování jako Aktuální počasí

string multi\_value\_switch

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

Čtení stavu přepínače

```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);
```

Čtení (modul)

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

Předpověď (+3h) Rychlost větru Proměnná Pouze ke čtení

numeric Jednotka: m/s json\_path

Čtení

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

Čtení (modul)

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

Předpověď (+24h) Atmosférický tlak Proměnná Pouze ke čtení

numeric Jednotka: hPa json\_path

Čtení

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

Čtení (modul)

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

Předpověď (+24h) Teplota vzduchu Teplotní senzor Pouze ke čtení

Teplota a vlhkost pro +24h předpovědní slot — obsahuje servisní atribut Datum předpovědi

numeric Jednotka: °C json\_path

Servisní atributy

|                  |                                                                 |
|------------------|-----------------------------------------------------------------|
| Datum předpovědi | Časová značka datového bodu předpovědi (dt\_txt z odpovědi API) |

Čtení vlhkosti

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

Čtení (modul)

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

Čtení teploty

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

Servisní atributy

Forecast Date

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

Předpověď (+24h) Pocitová teplota Teplotní senzor Pouze ke čtení

Pocitová teplota pro +24h předpovědní slot — funkce vlhkosti je vypnutá (vrací NaN)

numeric Jednotka: °C json\_path

Čtení vlhkosti

```taphome
NaN
```

Čtení (modul)

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

Čtení teploty

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

Předpověď (+24h) Viditelnost Proměnná Pouze ke čtení

Známý problém: čte z list\[0] místo list\[8] — hodnoty viditelnosti jsou prohozeny s Předpověď (+3h)

numeric Jednotka: m json\_path

Čtení

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

Čtení (modul)

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

Předpověď (+24h) Rychlost větru Proměnná Pouze ke čtení

numeric Jednotka: m/s json\_path

Čtení

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

Předpověď (+24h) Počasí Vícestavový přepínač Pouze ke čtení

Stav počasí pro +24h předpovědní slot — stejné 7kategoriové mapování jako Aktuální počasí

string multi\_value\_switch

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

Čtení stavu přepínače

```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);
```

**Připojení:** Packet Parser → HTTP

Možná vylepšení (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

## Parametry importu

Tyto hodnoty zadáte při importu XML.

| Ptá se v aplikaci          | Výchozí   |
|----------------------------|-----------|
| 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

## Související dokumentace

- [Integrace Packet Parser](https://taphome.com/cs/compatibility/packet-parser-guide/)
- [Packet Parser (HTTP, TCP, UDP, FTP, MQTT)](https://taphome.com/cs/docs/integration/packet-parser/)
- [Funkce Packet parser](https://taphome.com/cs/docs/script/packet-parser/)
- [Funkce pro parsování](https://taphome.com/cs/docs/script/parsing-functions/)

