TapHome

Meteosource API počasí

Packet Parser → HTTP
Přidal
Poslední aktualizace: 03. 2026
Meteosource API počasí

Meteosource je globální poskytovatel dat o počasí, který nabízí aktuální podmínky, předpovědi a historická data prostřednictvím REST API. Šablona TapHome se připojuje k bezplatnému tarifu Meteosource API přes HTTPS a načítá aktuální počasí a denní předpověď pro nakonfigurovanou GPS polohu.

Šablona poskytuje 8 zařízení pouze pro čtení, která pokrývají typ počasí, rychlost a směr větru, aktuální teplotu, denní minimální a maximální teploty a srážky (aktuální i denní). Modul dotazuje API každých 5 minut a ukládá celou JSON odpověď do vyrovnávací paměti — jednotlivé senzory pak čtou z vyrovnávací paměti v kratších intervalech. Bezplatný tarif povoluje 400 volání za den a šablona využívá přibližně 288 volání za den, což je bezpečně v rámci limitu.

Konfigurace

Získání API klíče
  1. Zaregistrujte si bezplatný účet na meteosource.com/client/sign-up
  2. Po registraci je API klíč dostupný v dashboardu účtu
  3. Zkopírujte klíč — budete ho potřebovat při importu šablony v TapHome

Bezplatný tarif poskytuje 400 API volání za den s limitem 10 požadavků za minutu. Šablona TapHome dotazuje každých 5 minut (288 volání/den), což ponechává dostatečnou rezervu. Bezplatný tarif vyžaduje uvedení a zpětný odkaz na Meteosource při komerčním použití.

Parametry importu

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

ParametrPopisPříklad
latitudeZeměpisná šířka lokality v desítkových stupních48.1778
longitudeZeměpisná délka lokality v desítkových stupních17.1426
apiKeyAPI klíč Meteosource z dashboardu účtuabc123def456...

Pro nalezení souřadnic lokality klikněte pravým tlačítkem na Google Maps a vyberte souřadnice z kontextového menu.

Proměnné modulu

Po importu šablony lze upravit jednu proměnnou v nastavení modulu:

ProměnnáPopisVýchozí hodnota
tzČasová zóna ve formátu tzinfoEurope/Prague

Časová zóna určuje, jak se interpretují časová razítka v odpovědi API. Uživatelé mimo časovou zónu CET/CEST by měli tuto hodnotu změnit tak, aby odpovídala jejich lokalitě (např. America/New_York, Asia/Tokyo, UTC).

API endpoint

Modul se připojuje na www.meteosource.com přes HTTPS (port 443) a volá:

1
GET /api/v1/free/point?lat={lat}&lon={lon}&sections=current,daily&timezone={tz}&language=en&units=ca&key={apiKey}

Šablona používá jednotkový systém ca (kanadský): Celsius pro teplotu, km/h pro rychlost větru, mm pro srážky a hPa pro tlak.

Schopnosti zařízení

Typ počasí

Zařízení Typ počasí je přepínač s více hodnotami, který mapuje pole Meteosource icon_num (hodnoty 1–36) na 7 kategorií počasí TapHome:

Hodnota přepínačeKategorieIkony Meteosource (den)Ikony Meteosource (noc)
0Jasno / Slunečno2, 3, 4, 526, 27, 28
1Oblačno / Zataženo6, 7, 829, 30, 31
2Déšť11, 12, 13, 2532, 34, 35, 36
3Mrholení / Slabý déšť10
4Bouřka14, 1533
5Sníh / Námraza16–24
6Mlha9

Pokud je číslo ikony 1 nebo nerozpoznané, přepínač se nastaví na výchozí hodnotu 1 (Oblačno). Typ počasí se dotazuje každých 30 minut.

Teplota

Tři teplotní zařízení poskytují aktuální data a data z předpovědi:

  • Temperature — aktuální teplota vzduchu ve výšce 2 m ve stupních Celsia. Používá dedikovaný typ zařízení teplotního senzoru s hlášením chyb, pokud je odpověď API nedostupná
  • Temperature Max — dnešní předpovězená maximální teplota ve stupních Celsia, načtená ze sekce denní předpovědi (daily.data[0])
  • Temperature Min — dnešní předpovězená minimální teplota ve stupních Celsia, načtená ze sekce denní předpovědi (daily.data[0])
Vítr
  • Wind Speed — aktuální rychlost větru ve výšce 10 m v km/h (pomocí jednotkového systému ca). Hlásí chybu, pokud je uložená odpověď nedostupná
  • Wind Direction — směr větru ve stupních (0–360, kde 0/360 = sever, 90 = východ, 180 = jih, 270 = západ). Toto je nejrychleji dotazované zařízení s intervalem 15 sekund, čtoucí z uložené odpovědi
Srážky
  • Precipitation (1-hour) — aktuální množství srážek v mm. Hlásí chybu, pokud je uložená odpověď nedostupná
  • Precipitation (Daily) — dnešní celkové denní předpovězené srážky v mm, načtené ze sekce denní předpovědi
Další schopnosti

Meteosource API také poskytuje pocitovou teplotu, nárazy větru, oblačnost, atmosférický tlak, vlhkost, viditelnost, UV index, rosný bod, pocit chladu, typ srážek a textový souhrn počasí pro aktuální podmínky. Endpoint kvality ovzduší s PM10, PM2.5, NO2, CO, O3 a AQI je dostupný samostatně. Tato data lze přidat 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 www.meteosource.com
  2. Zkontrolujte, zda je API klíč platný a nebyl přegenerován
  3. Potvrďte, že hodnoty zeměpisné šířky a délky jsou správné desítkové souřadnice
  4. Nové API klíče mohou vyžadovat několik minut na aktivaci po registraci
Zastaralá nebo opožděná data

Modul dotazuje Meteosource API každých 5 minut a ukládá odpověď do proměnné vyrovnávací paměti. Jednotlivé senzory čtou z této vyrovnávací paměti v kratších intervalech (15 sekund až 1 minuta). Pokud volání API selže, všechny senzory pokračují ve vracení posledních uložených hodnot až do dalšího úspěšného dotazu.

Meteosource API je cloudová služba, která vyžaduje aktivní internetové připojení na TapHome Core. Během výpadků internetu nebo nedostupnosti API šablona nebude přijímat aktualizovaná data o počasí. Výchozí časová zóna je Europe/Prague — uživatelé v jiných regionech musí změnit proměnnou modulu tz pro správná lokální časová razítka.

Dostupná zařízení

Meteosource Modul
Vlastní proměnné
apiKey (string)Meteosource API key for authentication (obtain from meteosource.com dashboard)
lat (string)Geographic latitude of the weather location in decimal degrees (set during import)
lon (string)Geographic longitude of the weather location in decimal degrees (set during import)
tz (string) = Europe/PragueIANA timezone identifier for timestamp conversion (e.g. Europe/Prague, America/New_York)

Meteosource

Čtení (modul)
VAR request := HTTPREQUEST(
	"/api/v1/free/point?lat=" + lat + "&lon=" + lon + "&sections=current,daily&timezone=" + tz + "&language=en&units=ca&key=" + apiKey,
	"GET" 
);
VAR response := SENDHTTPREQUEST(request);
VAR responseHeaders := response.Headers;
IF response.IsSuccess  
  responseJson := response.Content;
END
Typ počasí Vícestavový přepínač Pouze ke čtení

Stav počasí jako multi-value switch — Jasno, Oblačno, Déšť, Mrholení, Bouřka, Sníh, Mlha

integer → mapped Jednotka: category JSON parsejson()
Hodnoty / Stavy: ${weather_clear} · ${weather_clouds} · ${weather_rain} · ${weather_drizzle} · ${weather_thunderstorm} · ${weather_snow} · ${weather_fog}

Typ počasí

Čtení stavu přepínače
IF(ISNULL(responseJson) | responseJson = "error")
    return(NaN);
END 

VAR weather := PARSEJSON(responseJson, "current.icon_num");
SWITCH(weather, 
2, 0, 3, 0, 4, 0,26,0, 27,0,28,0,
5, 0, 6, 1, 7, 1, 8,1,29,1,30,1,31,1, 
	11,2,12,2,13,2,25,2,32,2,34,2,35,2,36,2,
10,3,
	16,5,17,5,18,5,19,5,20,5,21,5,22,5,23,5,24,5,
14,4,15,4,33,4,
9,6, 
1);
Rychlost větru Proměnná Pouze ke čtení
numeric Jednotka: km/h JSON parsejson()

Rychlost větru

Čtení
IF(
	ISNULL(responseJson) | responseJson = "error", 
	NaN,
	TODOUBLE(PARSEJSON(responseJson,
		"current.wind.speed"))
);
Čtení (modul)
IF(ISNULL(responseJson) | responseJson = "error", ADDERROR("Failed to read data "));
Směr větru Proměnná Pouze ke čtení

Směr větru ve stupních — 0/360 = sever, 90 = východ, 180 = jih, 270 = západ

numeric Jednotka: ° JSON parsejson()

Směr větru

Čtení
IF(
	ISNULL(responseJson) | responseJson = "error", 
	NaN,
	TODOUBLE(PARSEJSON(responseJson,
		"current.wind.angle"))
)
Teplota Teplotní senzor Pouze ke čtení
numeric Jednotka: °C JSON parsejson()

Teplota

Čtení (modul)
IF(ISNULL(responseJson) | responseJson = "error", ADDERROR("Failed to read data "));
Čtení teploty
IF(ISNULL(responseJson) | responseJson = "error", NaN, TODOUBLE(PARSEJSON(responseJson,"current.temperature")))
Teplota max Proměnná Pouze ke čtení

Dnešní předpovědní maximální teplota ze sekce denní předpovědi

numeric Jednotka: °C JSON parsejson()

Teplota max

Čtení
IF(ISNULL(responseJson) | responseJson = "error", NaN, TODOUBLE(PARSEJSON(responseJson,"daily.data[0].all_day.temperature_max")))
Teplota min Proměnná Pouze ke čtení

Dnešní předpovědní minimální teplota ze sekce denní předpovědi

numeric Jednotka: °C JSON parsejson()

Teplota min

Čtení
IF(ISNULL(responseJson) | responseJson = "error", NaN, TODOUBLE(PARSEJSON(responseJson,"daily.data[0].all_day.temperature_min")))
Srážky (1 hodina) Proměnná Pouze ke čtení
numeric Jednotka: mm JSON parsejson()

Srážky (1 hodina)

Čtení
IF(ISNULL(responseJson) | responseJson = "error", NaN, TODOUBLE(PARSEJSON(responseJson,"current.precipitation.total")))
Čtení (modul)
IF(ISNULL(responseJson) | responseJson = "error", ADDERROR("Failed to read data "));
Srážky (denní) Proměnná Pouze ke čtení

Dnešní celkové denní předpovědní srážky ze sekce denní předpovědi

numeric Jednotka: mm JSON parsejson()

Srážky (denní)

Čtení
IF(ISNULL(responseJson) | responseJson = "error", NaN, TODOUBLE(PARSEJSON(responseJson,"daily.data[0].all_day.precipitation.total")))
Připojení: Packet Parser → HTTP
Možná vylepšení (12)
  • Feels Like Temperature — Perceived temperature accounting for wind chill and humidity. Float, Celsius with ca units
  • Wind Gusts — Peak wind gust speed at 10m. Float, km/h with ca units
  • Cloud Cover — Total cloud cover percentage. Integer, 0–100%
  • Atmospheric Pressure — Sea level atmospheric pressure. Float, hPa with ca units
  • Relative Humidity — Relative humidity. Integer, 0–100%
  • Visibility — Visibility distance. Float, km with ca units
  • UV Index — UV radiation index. Float, 0–11+ scale
  • Dew Point — Dew point temperature. Float, Celsius with ca units
  • Wind Chill — Wind chill temperature. Float, Celsius with ca units
  • Precipitation Type — Type of precipitation — none, rain, snow, rain_snow, ice_pellets, frozen_rain. String value
  • Weather Summary — Human-readable text description of current weather. Translated per language parameter
  • Air Quality Index — Requires separate /air_quality endpoint. Includes PM10, PM2.5, NO2, CO, O3, AQI (1–6 scale). Not available via Point endpoint

Zdroje