TapHome

Meteosource Weather API

Packet Parser → HTTP
Trimis de
Ultima actualizare: 03. 2026
Meteosource Weather API

Meteosource este un furnizor global de date meteo, care oferă condițiile curente, prognoze și date istorice printr-un REST API. Șablonul TapHome se conectează prin HTTPS la API-ul Meteosource din planul gratuit și citește condițiile meteo curente și prognoza zilnică pentru azi, pentru o locație GPS configurată.

Șablonul oferă 8 dispozitive numai pentru citire, care acoperă tipul vremii, viteza și direcția vântului, temperatura curentă, temperaturile zilnice minimă/maximă și precipitațiile (curente și zilnice). Modulul interoghează API-ul la fiecare 5 minute și păstrează în cache întregul răspuns JSON — senzorii individuali citesc apoi din cache la intervale mai scurte. Planul gratuit permite 400 de apeluri pe zi, iar șablonul folosește aproximativ 288 de apeluri pe zi, cu mult sub limită.

Configurare

Obținerea cheii API
  1. Înregistrați un cont gratuit pe meteosource.com/client/sign-up
  2. După înregistrare, cheia API este disponibilă în dashboard-ul contului
  3. Copiați cheia — veți avea nevoie de ea la importul șablonului în TapHome

Planul gratuit oferă 400 de apeluri API pe zi, cu o limită de 10 cereri pe minut. Șablonul TapHome interoghează la fiecare 5 minute (288 de apeluri/zi), ceea ce lasă o rezervă confortabilă. Pentru utilizarea comercială, planul gratuit cere menționarea Meteosource și un backlink către acesta.

Parametrii de import

La importul șablonului în TapHome sunt necesari trei parametri:

ParametruDescriereExemplu
latitudeLatitudinea locației în grade zecimale48.1778
longitudeLongitudinea locației în grade zecimale17.1426
apiKeyCheia API Meteosource din dashboard-ul contuluiabc123def456...

Pentru a afla coordonatele unei locații, faceți clic dreapta în Google Maps și selectați coordonatele din meniul contextual.

Variabilele modulului

După importul șablonului, în setările modulului se poate ajusta o variabilă:

VariabilăDescriereImplicit
tzFusul orar în format tzinfoEurope/Prague

Fusul orar determină cum sunt interpretate marcajele de timp din răspunsul API. Utilizatorii din afara fusului orar CET/CEST trebuie să schimbe această valoare în funcție de locația lor (de ex. America/New_York, Asia/Tokyo, UTC).

Endpoint-ul API

Modulul se conectează la www.meteosource.com prin HTTPS (portul 443) și apelează:

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

Șablonul folosește sistemul de unități ca (canadian): grade Celsius pentru temperatură, km/h pentru viteza vântului, mm pentru precipitații și hPa pentru presiune.

Funcțiile dispozitivului

Tipul vremii

Dispozitivul Tipul vremii este un comutator cu mai multe valori, care mapează câmpul Meteosource icon_num (valorile 1–36) pe 7 categorii meteo TapHome:

Valoare comutatorCategoriePictograme Meteosource (zi)Pictograme Meteosource (noapte)
0Senin / Însorit2, 3, 4, 526, 27, 28
1Noros / Înnorat6, 7, 829, 30, 31
2Ploaie11, 12, 13, 2532, 34, 35, 36
3Burniță / Ploaie slabă10–
4Furtună14, 1533
5Ninsoare / Îngheț16–24–
6Ceață9–

Dacă numărul pictogramei este 1 sau nu este recunoscut, comutatorul trece implicit pe 1 (Noros). Tipul vremii este interogat la fiecare 30 de minute.

Temperatură

Trei dispozitive de temperatură oferă date curente și din prognoză:

  • Temperatură – temperatura curentă a aerului la 2 m înălțime, în grade Celsius. Folosește tipul de dispozitiv dedicat senzorilor de temperatură și raportează o eroare dacă răspunsul API nu este disponibil
  • Temperatură max. – temperatura maximă prognozată pentru azi, în grade Celsius, citită din secțiunea de prognoză zilnică (daily.data[0])
  • Temperatură min. – temperatura minimă prognozată pentru azi, în grade Celsius, citită din secțiunea de prognoză zilnică (daily.data[0])
Vânt
  • Viteza vântului – viteza curentă a vântului la 10 m înălțime, în km/h (cu sistemul de unități ca). Raportează o eroare dacă răspunsul din cache nu este disponibil
  • Direcția vântului – direcția vântului în grade (0–360, unde 0/360 = nord, 90 = est, 180 = sud, 270 = vest). Este dispozitivul interogat cel mai des, la intervale de 15 secunde, și citește din răspunsul din cache
Precipitații
  • Precipitații (1 oră) – cantitatea curentă de precipitații în mm. Raportează o eroare dacă răspunsul din cache nu este disponibil
  • Precipitații (zilnic) – totalul precipitațiilor prognozate pentru azi, în mm, citit din secțiunea de prognoză zilnică
Funcții suplimentare

API-ul Meteosource pune la dispoziție și temperatura resimțită, rafalele de vânt, nebulozitatea, presiunea atmosferică, umiditatea, vizibilitatea, indicele UV, punctul de rouă, temperatura resimțită din cauza vântului, tipul precipitațiilor și un rezumat text al vremii pentru condițiile curente. Separat este disponibil un endpoint pentru calitatea aerului, cu PM10, PM2.5, NO2, CO, O3 și AQI. Acestea pot fi adăugate într-o actualizare viitoare a șablonului.

Rezolvarea problemelor

Toate dispozitivele afișează NaN sau nu au date
  1. Verificați dacă TapHome Core are acces la internet – șablonul necesită conectivitate HTTPS de ieșire către www.meteosource.com
  2. Verificați dacă cheia API este validă și nu a fost regenerată
  3. Verificați dacă valorile latitudinii și longitudinii sunt coordonate zecimale corecte
  4. Cheile API noi pot avea nevoie de câteva minute pentru activare după înregistrare
Citiri vechi sau întârziate

Modulul interoghează API-ul Meteosource la fiecare 5 minute și stochează răspunsul într-o variabilă cache. Senzorii individuali citesc din acest cache la intervale mai scurte (de la 15 secunde la 1 minut). Dacă apelul API eșuează, toți senzorii continuă să returneze ultimele valori din cache până la următoarea interogare reușită.

API-ul Meteosource este un serviciu cloud care necesită o conexiune activă la internet pe TapHome Core. În timpul întreruperilor de internet sau al indisponibilității API, șablonul nu primește date meteo actualizate. Fusul orar implicit este Europe/Prague – utilizatorii din alte regiuni trebuie să schimbe variabila de modul tz pentru marcaje de timp locale corecte.

Dispozitive disponibile

Meteosource Modul
Variabile personalizate
apiKey (string)Cheia API Meteosource pentru autentificare (se obține din dashboard-ul meteosource.com)
lat (string)Latitudinea geografică a locației meteo, în grade zecimale (se setează la import)
lon (string)Longitudinea geografică a locației meteo, în grade zecimale (se setează la import)
tz (string) = Europe/PragueIdentificatorul IANA al fusului orar pentru conversia marcajelor de timp (de ex. Europe/Prague, America/New_York)

Meteosource

Citire (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
Tipul vremii Comutator cu mai multe valori Doar citire

Starea vremii ca comutator cu mai multe valori — Senin, Noros, Ploaie, Burniță, Furtună, Ninsoare, Ceață

integer → mapped Unitate: category JSON parsejson()
Valori / Stări: ${weather_clear} · ${weather_clouds} · ${weather_rain} · ${weather_drizzle} · ${weather_thunderstorm} · ${weather_snow} · ${weather_fog}

Tipul vremii

Citirea stării comutatorului
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);
Viteza vântului Variabilă Doar citire
numeric Unitate: km/h JSON parsejson()

Viteza vântului

Citire
IF(
	ISNULL(responseJson) | responseJson = "error", 
	NaN,
	TODOUBLE(PARSEJSON(responseJson,
		"current.wind.speed"))
);
Citire (modul)
IF(ISNULL(responseJson) | responseJson = "error", ADDERROR("Failed to read data "));
Direcția vântului Variabilă Doar citire

Direcția vântului în grade — 0/360 = nord, 90 = est, 180 = sud, 270 = vest

numeric Unitate: ° JSON parsejson()

Direcția vântului

Citire
IF(
	ISNULL(responseJson) | responseJson = "error", 
	NaN,
	TODOUBLE(PARSEJSON(responseJson,
		"current.wind.angle"))
)
Temperatură Senzor de temperatură Doar citire
numeric Unitate: °C JSON parsejson()

Temperatură

Citire (modul)
IF(ISNULL(responseJson) | responseJson = "error", ADDERROR("Failed to read data "));
Citirea temperaturii
IF(ISNULL(responseJson) | responseJson = "error", NaN, TODOUBLE(PARSEJSON(responseJson,"current.temperature")))
Temperatură max. Variabilă Doar citire

Temperatura maximă prognozată pentru azi, din secțiunea de prognoză zilnică

numeric Unitate: °C JSON parsejson()

Temperatură max.

Citire
IF(ISNULL(responseJson) | responseJson = "error", NaN, TODOUBLE(PARSEJSON(responseJson,"daily.data[0].all_day.temperature_max")))
Temperatură min. Variabilă Doar citire

Temperatura minimă prognozată pentru azi, din secțiunea de prognoză zilnică

numeric Unitate: °C JSON parsejson()

Temperatură min.

Citire
IF(ISNULL(responseJson) | responseJson = "error", NaN, TODOUBLE(PARSEJSON(responseJson,"daily.data[0].all_day.temperature_min")))
Precipitații (1 oră) Variabilă Doar citire
numeric Unitate: mm JSON parsejson()

Precipitații (1 oră)

Citire
IF(ISNULL(responseJson) | responseJson = "error", NaN, TODOUBLE(PARSEJSON(responseJson,"current.precipitation.total")))
Citire (modul)
IF(ISNULL(responseJson) | responseJson = "error", ADDERROR("Failed to read data "));
Precipitații (zilnic) Variabilă Doar citire

Totalul precipitațiilor prognozate pentru azi, din secțiunea de prognoză zilnică

numeric Unitate: mm JSON parsejson()

Precipitații (zilnic)

Citire
IF(ISNULL(responseJson) | responseJson = "error", NaN, TODOUBLE(PARSEJSON(responseJson,"daily.data[0].all_day.precipitation.total")))
Conexiune: Packet Parser → HTTP
Îmbunătățiri posibile (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

Surse

Ați găsit o problemă la acest șablon de dispozitiv?

Spuneți-ne ce nu funcționează, ce lipsește sau cum ar trebui să se comporte șablonul. Feedbackul dvs. ne ajută să păstrăm catalogul corect.

Verificat de TapHome

Doriți să folosiți acest șablon în TapHome Core?

Deschideți acest șablon în Customer Portal pentru a-l aplica într-una dintre locuințele dvs. sau pentru a propune o îmbunătățire și a o trimite înapoi în catalog.

Deschideți în portal