TapHome

Meteosource API pogody

Packet Parser → HTTP
Dodane przez
Ostatnia aktualizacja: 03. 2026
Meteosource API pogody

Meteosource to globalny dostawca danych pogodowych oferujący aktualne warunki, prognozy i dane historyczne poprzez REST API. Szablon TapHome łączy się z darmowym planem API Meteosource przez HTTPS i odczytuje aktualne warunki pogodowe oraz dzienną prognozę dla skonfigurowanej lokalizacji GPS.

Szablon udostępnia 8 urządzeń tylko do odczytu, obejmujących typ pogody, prędkość i kierunek wiatru, aktualną temperaturę, dzienne temperatury minimalne i maksymalne oraz opady (aktualne i dzienne). Moduł odpytuje API co 5 minut i zapisuje pełną odpowiedź JSON w pamięci podręcznej — poszczególne czujniki odczytują następnie z pamięci podręcznej w krótszych odstępach. Darmowy plan pozwala na 400 wywołań dziennie, a szablon wykorzystuje około 288 wywołań dziennie, co mieści się w limicie z dużym zapasem.

Konfiguracja

Uzyskanie klucza API
  1. Zarejestruj darmowe konto na meteosource.com/client/sign-up
  2. Po rejestracji klucz API jest dostępny w dashboardzie konta
  3. Skopiuj klucz — będzie potrzebny podczas importu szablonu w TapHome

Darmowy plan zapewnia 400 wywołań API dziennie z limitem 10 żądań na minutę. Szablon TapHome odpytuje co 5 minut (288 wywołań/dzień), co zostawia wygodny margines. Darmowy plan wymaga wzmianki i linku zwrotnego do Meteosource przy użyciu komercyjnym.

Parametry importu

Podczas importu szablonu w TapHome wymagane są trzy parametry:

ParametrOpisPrzykład
latitudeSzerokość geograficzna lokalizacji w stopniach dziesiętnych48.1778
longitudeDługość geograficzna lokalizacji w stopniach dziesiętnych17.1426
apiKeyKlucz API Meteosource z dashboardu kontaabc123def456...

Aby znaleźć współrzędne lokalizacji, kliknij prawym przyciskiem na Google Maps i wybierz współrzędne z menu kontekstowego.

Zmienne modułu

Po zaimportowaniu szablonu można dostosować jedną zmienną w ustawieniach modułu:

ZmiennaOpisWartość domyślna
tzStrefa czasowa w formacie tzinfoEurope/Prague

Strefa czasowa określa, jak interpretowane są znaczniki czasu w odpowiedzi API. Użytkownicy spoza strefy czasowej CET/CEST powinni zmienić tę wartość, aby odpowiadała ich lokalizacji (np. America/New_York, Asia/Tokyo, UTC).

Endpoint API

Moduł łączy się z www.meteosource.com przez HTTPS (port 443) i wywołuje:

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

Szablon używa systemu jednostek ca (kanadyjskiego): Celsjusz dla temperatury, km/h dla prędkości wiatru, mm dla opadów i hPa dla ciśnienia.

Możliwości urządzeń

Typ pogody

Urządzenie Weather Type to przełącznik wielowartościowy, który mapuje pole Meteosource icon_num (wartości 1–36) na 7 kategorii pogodowych TapHome:

Wartość przełącznikaKategoriaIkony Meteosource (dzień)Ikony Meteosource (noc)
0Bezchmurnie / Słonecznie2, 3, 4, 526, 27, 28
1Pochmurno / Zachmurzenie6, 7, 829, 30, 31
2Deszcz11, 12, 13, 2532, 34, 35, 36
3Mżawka / Lekki deszcz10
4Burza14, 1533
5Śnieg / Marznięcie16–24
6Mgła9

Jeśli numer ikony to 1 lub jest nierozpoznany, przełącznik ustawia się na wartość domyślną 1 (Pochmurno). Typ pogody jest odpytywany co 30 minut.

Temperatura

Trzy urządzenia temperaturowe dostarczają aktualne dane i dane z prognozy:

  • Temperature — aktualna temperatura powietrza na wysokości 2 m w Celsjuszach. Używa dedykowanego typu urządzenia czujnika temperatury ze zgłaszaniem błędów, jeśli odpowiedź API jest niedostępna
  • Temperature Max — dzisiejsza prognozowana temperatura maksymalna w Celsjuszach, odczytana z sekcji prognozy dziennej (daily.data[0])
  • Temperature Min — dzisiejsza prognozowana temperatura minimalna w Celsjuszach, odczytana z sekcji prognozy dziennej (daily.data[0])
Wiatr
  • Wind Speed — aktualna prędkość wiatru na wysokości 10 m w km/h (przy użyciu systemu jednostek ca). Zgłasza błąd, jeśli zapisana odpowiedź jest niedostępna
  • Wind Direction — kierunek wiatru w stopniach (0–360, gdzie 0/360 = północ, 90 = wschód, 180 = południe, 270 = zachód). To najczęściej odpytywane urządzenie z interwałem 15 sekund, odczytujące z zapisanej odpowiedzi
Opady
  • Precipitation (1-hour) — aktualna ilość opadów w mm. Zgłasza błąd, jeśli zapisana odpowiedź jest niedostępna
  • Precipitation (Daily) — dzisiejsze całkowite dzienne prognozowane opady w mm, odczytane z sekcji prognozy dziennej
Dodatkowe możliwości

API Meteosource udostępnia również temperaturę odczuwalną, porywy wiatru, zachmurzenie, ciśnienie atmosferyczne, wilgotność, widoczność, indeks UV, punkt rosy, odczuwalny chłód wiatru, typ opadów i tekstowe podsumowanie pogody dla aktualnych warunków. Endpoint jakości powietrza z PM10, PM2.5, NO2, CO, O3 i AQI jest dostępny osobno. Mogą one zostać dodane w przyszłej aktualizacji szablonu.

Rozwiązywanie problemów

Wszystkie urządzenia pokazują NaN lub brak danych
  1. Sprawdź, czy TapHome Core ma dostęp do internetu — szablon wymaga wychodzącego połączenia HTTPS do www.meteosource.com
  2. Sprawdź, czy klucz API jest prawidłowy i nie został ponownie wygenerowany
  3. Potwierdź, że wartości szerokości i długości geograficznej są poprawnymi współrzędnymi dziesiętnymi
  4. Nowe klucze API mogą wymagać kilku minut na aktywację po rejestracji
Nieaktualne lub opóźnione odczyty

Moduł odpytuje API Meteosource co 5 minut i zapisuje odpowiedź w zmiennej pamięci podręcznej. Poszczególne czujniki odczytują z tej pamięci podręcznej w krótszych odstępach (od 15 sekund do 1 minuty). Jeśli wywołanie API się nie powiedzie, wszystkie czujniki kontynuują zwracanie ostatnich zapisanych wartości do następnego udanego odpytania.

API Meteosource to usługa chmurowa, która wymaga aktywnego połączenia internetowego na TapHome Core. Podczas przerw w dostępie do internetu lub przestojów API szablon nie będzie otrzymywał zaktualizowanych danych pogodowych. Domyślna strefa czasowa to Europe/Prague — użytkownicy w innych regionach muszą zmienić zmienną modułu tz dla poprawnych lokalnych znaczników czasu.

Dostępne urządzenia

Meteosource Moduł
Zmienne niestandardowe
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

Odczyt (moduł)
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 pogody Przełącznik wielowartościowy Tylko do odczytu

Stan pogody jako multi-value switch — Bezchmurnie, Pochmurnie, Deszcz, Mżawka, Burza, Śnieg, Mgła

integer → mapped Jednostka: category JSON parsejson()
Wartości / Stany: ${weather_clear} · ${weather_clouds} · ${weather_rain} · ${weather_drizzle} · ${weather_thunderstorm} · ${weather_snow} · ${weather_fog}

Typ pogody

Odczyt stanu przełącznika
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);
Prędkość wiatru Zmienna Tylko do odczytu
numeric Jednostka: km/h JSON parsejson()

Prędkość wiatru

Odczyt
IF(
	ISNULL(responseJson) | responseJson = "error", 
	NaN,
	TODOUBLE(PARSEJSON(responseJson,
		"current.wind.speed"))
);
Odczyt (moduł)
IF(ISNULL(responseJson) | responseJson = "error", ADDERROR("Failed to read data "));
Kierunek wiatru Zmienna Tylko do odczytu

Kierunek wiatru w stopniach — 0/360 = północ, 90 = wschód, 180 = południe, 270 = zachód

numeric Jednostka: ° JSON parsejson()

Kierunek wiatru

Odczyt
IF(
	ISNULL(responseJson) | responseJson = "error", 
	NaN,
	TODOUBLE(PARSEJSON(responseJson,
		"current.wind.angle"))
)
Temperatura Czujnik temperatury Tylko do odczytu
numeric Jednostka: °C JSON parsejson()

Temperatura

Odczyt (moduł)
IF(ISNULL(responseJson) | responseJson = "error", ADDERROR("Failed to read data "));
Odczyt temperatury
IF(ISNULL(responseJson) | responseJson = "error", NaN, TODOUBLE(PARSEJSON(responseJson,"current.temperature")))
Temperatura max Zmienna Tylko do odczytu

Dzisiejsza prognozowana temperatura maksymalna z sekcji prognozy dziennej

numeric Jednostka: °C JSON parsejson()

Temperatura max

Odczyt
IF(ISNULL(responseJson) | responseJson = "error", NaN, TODOUBLE(PARSEJSON(responseJson,"daily.data[0].all_day.temperature_max")))
Temperatura min Zmienna Tylko do odczytu

Dzisiejsza prognozowana temperatura minimalna z sekcji prognozy dziennej

numeric Jednostka: °C JSON parsejson()

Temperatura min

Odczyt
IF(ISNULL(responseJson) | responseJson = "error", NaN, TODOUBLE(PARSEJSON(responseJson,"daily.data[0].all_day.temperature_min")))
Opady (1 godzina) Zmienna Tylko do odczytu
numeric Jednostka: mm JSON parsejson()

Opady (1 godzina)

Odczyt
IF(ISNULL(responseJson) | responseJson = "error", NaN, TODOUBLE(PARSEJSON(responseJson,"current.precipitation.total")))
Odczyt (moduł)
IF(ISNULL(responseJson) | responseJson = "error", ADDERROR("Failed to read data "));
Opady (dzienne) Zmienna Tylko do odczytu

Dzisiejsze całkowite dzienne prognozowane opady z sekcji prognozy dziennej

numeric Jednostka: mm JSON parsejson()

Opady (dzienne)

Odczyt
IF(ISNULL(responseJson) | responseJson = "error", NaN, TODOUBLE(PARSEJSON(responseJson,"daily.data[0].all_day.precipitation.total")))
Połączenie: Packet Parser → HTTP
Możliwe ulepszenia (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

Źródła