TapHome

Meteosource Weather API

Packet Parser → HTTP
Autor
Posljednje ažuriranje: 03. 2026
Meteosource Weather API

Meteosource je globalni pružatelj vremenskih podataka koji preko REST API-ja nudi trenutačne uvjete, prognoze i povijesne podatke. Predložak TapHome spaja se preko HTTPS-a na API besplatnog paketa Meteosource i očitava trenutačne vremenske uvjete i današnju dnevnu prognozu za postavljenu GPS lokaciju.

Predložak daje 8 uređaja samo za čitanje: vrstu vremena, brzinu i smjer vjetra, trenutačnu temperaturu, dnevnu najnižu i najvišu temperaturu te oborine (trenutačne i dnevne). Modul šalje upit API-ju svakih 5 minuta i sprema cijeli JSON odgovor u predmemoriju — pojedini senzori zatim čitaju iz predmemorije u kraćim intervalima. Besplatni paket dopušta 400 poziva dnevno, a predložak koristi približno 288 poziva dnevno, što je unutar ograničenja.

Konfiguracija

Dobivanje API ključa
  1. Registrirajte besplatni korisnički račun na meteosource.com/client/sign-up
  2. Nakon registracije API ključ je dostupan u korisničkom računu (dashboard)
  3. Kopirajte ključ — trebat će vam pri uvozu predloška u TapHome

Besplatni paket nudi 400 API poziva dnevno uz ograničenje od 10 zahtjeva u minuti. Predložak TapHome šalje upit svakih 5 minuta (288 poziva dnevno), što ostavlja dovoljnu rezervu. Za komercijalnu upotrebu besplatni paket zahtijeva navođenje usluge Meteosource i povratnu poveznicu na nju.

Parametri uvoza

Pri uvozu predloška u TapHome potrebna su tri parametra:

ParametarOpisPrimjer
latitudeZemljopisna širina lokacije u decimalnim stupnjevima48.1778
longitudeZemljopisna dužina lokacije u decimalnim stupnjevima17.1426
apiKeyAPI ključ Meteosource iz korisničkog računaabc123def456...

Koordinate lokacije pronaći ćete tako da u Google Maps desnom tipkom miša kliknete na mjesto i u kontekstnom izborniku odaberete koordinate.

Varijable modula

Nakon uvoza predloška u postavkama modula može se prilagoditi jedna varijabla:

VarijablaOpisZadano
tzVremenska zona u formatu tzinfoEurope/Prague

Vremenska zona određuje kako se tumače vremenske oznake u odgovoru API-ja. Korisnici izvan vremenske zone CET/CEST trebaju ovu vrijednost promijeniti prema svojoj lokaciji (npr. America/New_York, Asia/Tokyo, UTC).

Krajnja točka API-ja

Modul se spaja na www.meteosource.com preko HTTPS-a (port 443) i poziva:

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

Predložak koristi sustav jedinica ca (kanadski): Celzijevi stupnjevi za temperaturu, km/h za brzinu vjetra, mm za oborine i hPa za tlak.

Mogućnosti uređaja

Vrsta vremena

Uređaj Vrsta vremena je prekidač s više vrijednosti koji polje Meteosource icon_num (vrijednosti 1–36) preslikava u 7 kategorija vremena u sustavu TapHome:

Vrijednost prekidačaKategorijaIkone Meteosource (dan)Ikone Meteosource (noć)
0Vedro / Sunčano2, 3, 4, 526, 27, 28
1Oblačno / Potpuno oblačno6, 7, 829, 30, 31
2Kiša11, 12, 13, 2532, 34, 35, 36
3Rosulja / Slaba kiša10—
4Grmljavina14, 1533
5Snijeg / Mraz16–24—
6Magla9—

Ako je broj ikone 1 ili nepoznat, prekidač se postavlja na 1 (Oblačno). Vrsta vremena očitava se svakih 30 minuta.

Temperatura

Tri uređaja za temperaturu daju trenutačne i prognozirane podatke:

  • Temperatura — trenutačna temperatura zraka na visini od 2 m u Celzijevim stupnjevima. Koristi namjensku vrstu uređaja „Senzor temperature” i javlja grešku ako odgovor API-ja nije dostupan
  • Najviša temperatura — današnja prognozirana najviša temperatura u Celzijevim stupnjevima, očitana iz odjeljka dnevne prognoze (daily.data[0])
  • Najniža temperatura — današnja prognozirana najniža temperatura u Celzijevim stupnjevima, očitana iz odjeljka dnevne prognoze (daily.data[0])
Vjetar
  • Brzina vjetra — trenutačna brzina vjetra na visini od 10 m u km/h (sustav jedinica ca). Javlja grešku ako odgovor u predmemoriji nije dostupan
  • Smjer vjetra — smjer vjetra u stupnjevima (0–360, gdje je 0/360 = sjever, 90 = istok, 180 = jug, 270 = zapad). Ovaj se uređaj očitava najčešće, svakih 15 sekundi, iz odgovora u predmemoriji
Oborine
  • Oborine (1 sat) — trenutačna količina oborina u mm. Javlja grešku ako odgovor u predmemoriji nije dostupan
  • Oborine (dnevno) — ukupna količina oborina prognozirana za danas u mm, očitana iz odjeljka dnevne prognoze
Dodatne mogućnosti

API Meteosource daje i osjetnu temperaturu, udare vjetra, naoblaku, atmosferski tlak, vlažnost, vidljivost, UV indeks, temperaturu rosišta, faktor hlađenja vjetrom, vrstu oborina i tekstualni opis trenutačnog vremena. Zasebno je dostupna krajnja točka za kvalitetu zraka s vrijednostima PM10, PM2.5, NO2, CO, O3 i AQI. Mogu se dodati u budućem ažuriranju predloška.

Rješavanje problema

Svi uređaji prikazuju NaN ili nemaju podataka
  1. Provjerite ima li TapHome Core pristup internetu — predložak zahtijeva odlaznu HTTPS vezu prema www.meteosource.com
  2. Provjerite je li API ključ valjan i nije li ponovno generiran
  3. Provjerite jesu li zemljopisna širina i dužina ispravne decimalne koordinate
  4. Aktivacija novih API ključeva može potrajati nekoliko minuta nakon registracije
Zastarjela ili zakašnjela očitanja

Modul šalje upit API-ju Meteosource svakih 5 minuta i odgovor sprema u varijablu predmemorije. Pojedini senzori čitaju iz te predmemorije u kraćim intervalima (od 15 sekundi do 1 minute). Ako poziv API-ja ne uspije, svi senzori i dalje vraćaju posljednje vrijednosti iz predmemorije do sljedećeg uspješnog upita.

API Meteosource je usluga u oblaku za koju TapHome Core treba aktivnu internetsku vezu. Tijekom prekida internetske veze ili nedostupnosti API-ja predložak neće primati nove vremenske podatke. Zadana vremenska zona je Europe/Prague — korisnici u drugim regijama moraju promijeniti varijablu modula tz kako bi lokalne vremenske oznake bile točne.

Dostupni uređaji

Meteosource Modul
Prilagođene varijable
apiKey (string)API ključ Meteosource za autentifikaciju (dobiva se u korisničkom računu na meteosource.com)
lat (string)Zemljopisna širina lokacije za vremenske podatke u decimalnim stupnjevima (postavlja se pri uvozu)
lon (string)Zemljopisna dužina lokacije za vremenske podatke u decimalnim stupnjevima (postavlja se pri uvozu)
tz (string) = Europe/PragueIANA oznaka vremenske zone za pretvorbu vremenskih oznaka (npr. Europe/Prague, America/New_York)

Meteosource

Čitanje (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
Vrsta vremena Prekidač s više vrijednosti Samo za čitanje

Vremenski uvjeti kao prekidač s više vrijednosti — vedro, oblačno, kiša, rosulja, grmljavina, snijeg, magla

integer → mapped Jedinica: category JSON parsejson()
Vrijednosti / stanja: ${weather_clear} · ${weather_clouds} · ${weather_rain} · ${weather_drizzle} · ${weather_thunderstorm} · ${weather_snow} · ${weather_fog}

Vrsta vremena

Čitanje stanja sklopke
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);
Brzina vjetra Varijabla Samo za čitanje
numeric Jedinica: km/h JSON parsejson()

Brzina vjetra

Čitanje
IF(
	ISNULL(responseJson) | responseJson = "error", 
	NaN,
	TODOUBLE(PARSEJSON(responseJson,
		"current.wind.speed"))
);
Čitanje (modul)
IF(ISNULL(responseJson) | responseJson = "error", ADDERROR("Failed to read data "));
Smjer vjetra Varijabla Samo za čitanje

Smjer vjetra u stupnjevima — 0/360 = sjever, 90 = istok, 180 = jug, 270 = zapad

numeric Jedinica: ° JSON parsejson()

Smjer vjetra

Čitanje
IF(
	ISNULL(responseJson) | responseJson = "error", 
	NaN,
	TODOUBLE(PARSEJSON(responseJson,
		"current.wind.angle"))
)
Temperatura Senzor temperature Samo za čitanje
numeric Jedinica: °C JSON parsejson()

Temperatura

Čitanje (modul)
IF(ISNULL(responseJson) | responseJson = "error", ADDERROR("Failed to read data "));
Čitanje temperature
IF(ISNULL(responseJson) | responseJson = "error", NaN, TODOUBLE(PARSEJSON(responseJson,"current.temperature")))
Najviša temperatura Varijabla Samo za čitanje

Današnja prognozirana najviša temperatura iz odjeljka dnevne prognoze

numeric Jedinica: °C JSON parsejson()

Najviša temperatura

Čitanje
IF(ISNULL(responseJson) | responseJson = "error", NaN, TODOUBLE(PARSEJSON(responseJson,"daily.data[0].all_day.temperature_max")))
Najniža temperatura Varijabla Samo za čitanje

Današnja prognozirana najniža temperatura iz odjeljka dnevne prognoze

numeric Jedinica: °C JSON parsejson()

Najniža temperatura

Čitanje
IF(ISNULL(responseJson) | responseJson = "error", NaN, TODOUBLE(PARSEJSON(responseJson,"daily.data[0].all_day.temperature_min")))
Oborine (1 sat) Varijabla Samo za čitanje
numeric Jedinica: mm JSON parsejson()

Oborine (1 sat)

Čitanje
IF(ISNULL(responseJson) | responseJson = "error", NaN, TODOUBLE(PARSEJSON(responseJson,"current.precipitation.total")))
Čitanje (modul)
IF(ISNULL(responseJson) | responseJson = "error", ADDERROR("Failed to read data "));
Oborine (dnevno) Varijabla Samo za čitanje

Ukupna količina oborina prognozirana za danas iz odjeljka dnevne prognoze

numeric Jedinica: mm JSON parsejson()

Oborine (dnevno)

Čitanje
IF(ISNULL(responseJson) | responseJson = "error", NaN, TODOUBLE(PARSEJSON(responseJson,"daily.data[0].all_day.precipitation.total")))
Povezivanje: Packet Parser → HTTP
Moguća poboljšanja (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

Izvori

Pronašli ste problem s ovim predloškom uređaja?

Recite nam što ne radi, što nedostaje ili kako bi se predložak trebao ponašati. Vaše povratne informacije pomažu nam da katalog bude točan.

Provjerio TapHome

Želite ovo koristiti u svojoj centralnoj jedinici TapHome Core?

Otvorite ovaj predložak na portalu Customer Portal kako biste ga primijenili na jedan od svojih domova ili predložili poboljšanje i poslali ga natrag u katalog.

Otvorite na portalu