TapHome

Weathercloud

Packet Parser → HTTP
Dodane przez
Ostatnia aktualizacja: 03. 2026
Weathercloud

Weathercloud to chmurowa platforma danych pogodowych z globalną siecią ponad 100 000 prywatnych stacji pogodowych. TapHome łączy się z Weathercloud za pomocą szablonu HTTP Packet Parser, który regularnie pobiera aktualne dane pogodowe z wewnętrznego API webowego platformy. Integracja jest tylko do odczytu — wszystkie 14 urządzeń w szablonie to czujniki wyświetlające dane pogodowe z podłączonej stacji.

Ta integracja korzysta z nieoficjalnego, uzyskanego metodą inżynierii wstecznej API (wewnętrzne endpointy aplikacji webowej Weathercloud). Weathercloud nie oferuje publicznego API do pobierania danych. Endpointy mogą się zmienić lub zostać zablokowane bez uprzedzenia.

Konfiguracja

Podczas importu szablonu wprowadź Device ID — dziesięciocyfrowy numer identyfikujący stację pogodową w Weathercloud. Szablon używa tego ID do odpytywania app.weathercloud.net/device/values?code={DeviceID}.

Uzyskanie Device ID
  1. Zaloguj się do konta Weathercloud na weathercloud.net
  2. Otwórz stronę Devices z menu profilu
  3. Kliknij ikonę Settings (koło zębate) przy docelowym urządzeniu
  4. Wybierz Link deviceWeathercloud ID to wymagane Device ID

API Weathercloud wymaga cookie sesji do uwierzytelnienia. Szablon wysyła nagłówek cookie z każdym żądaniem. Aby uzyskać prawidłowe cookie sesji:

  1. Zaloguj się na app.weathercloud.net w przeglądarce
  2. Otwórz narzędzia deweloperskie przeglądarki (F12) i sprawdź nagłówki żądań
  3. Skopiuj pełną wartość cookie z dowolnego żądania do app.weathercloud.net
  4. Zastąp symbol zastępczy COOKIE w nagłówku skryptu odczytu szablonu rzeczywistym ciągiem cookie

Cookie sesji wygasają po okresie nieaktywności. Jeśli integracja przestanie zwracać dane, uwierzytelnij się ponownie i zaktualizuj wartość cookie w TapHome.

Funkcje urządzeń

Szablon udostępnia 14 urządzeń tylko do odczytu, które parsują pola z jednej odpowiedzi JSON. Wszystkie urządzenia współdzielą ten sam mechanizm HTTP polling z interwałem 15 sekund (UV Index odpytuje co 2,5 sekundy). Każdy skrypt odczytu zawiera obsługę błędów — jeśli odpowiedź jest null lub zawiera "error", urządzenie zwraca NaN.

Temperatura i wilgotność
  • Temperature & Humidity — temperatura zewnętrzna w °C i wilgotność względna. Wilgotność jest raportowana w API jako 0–100, a szablon konwertuje ją na współczynnik 0–1.
  • Dew Point — temperatura punktu rosy w °C
  • Wind Chill — temperatura odczuwalna uwzględniająca chłodzący efekt wiatru, w °C. Opcjonalne — nie wszystkie stacje raportują wind chill.
Pomiary wiatru
  • Wind Speed — aktualna prędkość wiatru, konwertowana z m/s na km/h (mnożenie przez 3,6)
  • Average Wind Speed — średnia prędkość wiatru w interwale raportowania stacji, konwertowana z m/s na km/h
  • Wind Gust — szczytowa prędkość wiatru, konwertowana z m/s na km/h
  • Wind Direction — aktualny kierunek wiatru w stopniach (0–360)
  • Average Wind Direction — średni kierunek wiatru w stopniach
Opady
  • Rain Rate — aktualna intensywność opadów w mm/h
  • Rainfall Today — skumulowane opady od północy w mm
Dane atmosferyczne i słoneczne
  • Atmospheric Pressure — ciśnienie atmosferyczne w hPa
  • Solar Radiation — natężenie promieniowania słonecznego w W/m². Opcjonalne — dostępne tylko na stacjach wyposażonych w czujnik promieniowania słonecznego.
  • UV Index — poziom promieniowania UV wyświetlany jako wskaźnik wielowartościowy z 10 nazwanymi poziomami: 0–1 Low, 2–3 Medium, 4–5 Medium High, 6–7 High, 8–9 Very High. Opcjonalne — wymaga czujnika UV na stacji.
Aktualność danych
  • Last Update Time — znacznik czasu Unix (sekundy) ostatniego przesłania danych ze stacji pogodowej. Przydatne do weryfikacji, czy stacja aktywnie raportuje.
Dodatkowe możliwości

API Weathercloud udostępnia również indeks cieplny, indeks temperatura-wilgotność-wiatr (THW), widoczność, dodatkowe czujniki temperatury i wilgotności oraz odczyty środowiska wewnętrznego (temperatura, wilgotność, punkt rosy, indeks cieplny — dostępne tylko dla właściciela stacji). Mogą one zostać dodane w przyszłej aktualizacji szablonu.

Rozwiązywanie problemów

Dane się nie aktualizują
  1. Sprawdź wartość Last Update Time — jeśli nie postępuje, stacja pogodowa przestała przesyłać dane do Weathercloud
  2. Sprawdź, czy stacja jest online na app.weathercloud.net — wyszukaj Device ID i sprawdź znacznik czasu ostatniej aktualizacji
  3. Darmowe konta Weathercloud aktualizują się co 10 minut. Chociaż TapHome odpytuje co 15 sekund, nowe dane pojawiają się dopiero w interwale przesyłania stacji.
Wszystkie wartości pokazują NaN
  1. Potwierdź, że Device ID jest prawidłowe — musi to być dziesięciocyfrowy numer z ustawień Weathercloud „Link device", a nie nazwa stacji
  2. Sprawdź wartość cookie w skrypcie odczytu szablonu. Jeśli sesja wygasła, API zwraca błąd i wszystkie urządzenia pokazują NaN. Uwierzytelnij się ponownie i zaktualizuj cookie.
  3. Sprawdź, czy stacja istnieje i jest publicznie dostępna na Weathercloud — prywatne stacje mogą wymagać uwierzytelnienia właściciela
Niektóre czujniki pokazują NaN, podczas gdy inne działają

Nie wszystkie stacje pogodowe mają te same czujniki. Pola takie jak promieniowanie słoneczne (solarrad), indeks UV (uvi) i wind chill (chill) są opcjonalne i zależą od fizycznego wyposażenia stacji. Jeśli stacja nie raportuje danego pola, API je pomija, a szablon zwraca NaN dla tego urządzenia.

Interwał odpytywania szablonu wynosi 15 sekund, ale dane Weathercloud odświeżają się tylko w tempie przesyłania stacji (10 minut dla darmowych kont, 1 minuta dla płatnych). Częstsze odpytywanie nie przynosi nowszych danych — jedynie potwierdza ostatni dostępny odczyt.

Dostępne urządzenia

WeatherCloud Moduł
Zmienne niestandardowe
code (string)WeatherCloud station device ID used in API request URL (set during import)

WeatherCloud

Odczyt (moduł)
#documentation https://github.com/maxime-mrl/weathercloud-js/blob/main/api-documentation.md#api-documentation
VAR request := HTTPREQUEST("/device/values?code=" + code, "GET");
request.Headers := { "Content-Type: application/x-www-form-urlencoded; charset=UTF-8", "X-Requested-With: XMLHttpRequest", "cookie: COOKIE"};
request.Method := "GET";
VAR response := SENDHTTPREQUEST(request);


IF response.IsSuccess
    VAR content := response.Content;
    responseJson := content;
    END
Średni kierunek wiatru Zmienna Tylko do odczytu
numeric Jednostka: ° json_path

Średni kierunek wiatru

Odczyt
IF(ISNULL(responseJson) | responseJson = "error", NaN, PARSEJSON(responseJson,"wdiravg"))
Średnia prędkość wiatru Zmienna Tylko do odczytu

Średnia prędkość wiatru w interwale raportowania stacji — konwertowana z m/s na km/h

numeric Jednostka: km/h json_path

Średnia prędkość wiatru

Odczyt
IF(ISNULL(responseJson) | responseJson = "error", NaN, PARSEJSON(responseJson,"wspdavg")*3.6)
Temperatura i wilgotność Czujnik temperatury Tylko do odczytu

Temperatura zewnętrzna (°C) i wilgotność względna ze stacji pogodowej

numeric Jednostka: °C / % json_path

Temperatura i wilgotność

Odczyt wilgotności
IF(ISNULL(responseJson) | responseJson = "error", NaN, PARSEJSON(responseJson,"hum")/100)
Odczyt temperatury
IF(ISNULL(responseJson) | responseJson = "error", NaN, PARSEJSON(responseJson,"temp"))
Punkt rosy Zmienna Tylko do odczytu
numeric Jednostka: °C json_path

Punkt rosy

Odczyt
IF(ISNULL(responseJson) | responseJson = "error", NaN, PARSEJSON(responseJson,"dew"))
Ciśnienie atmosferyczne Zmienna Tylko do odczytu
numeric Jednostka: hPa json_path

Ciśnienie atmosferyczne

Odczyt
IF(ISNULL(responseJson) | responseJson = "error", NaN, PARSEJSON(responseJson,"bar"))
Intensywność opadów Zmienna Tylko do odczytu
numeric Jednostka: mm/h json_path

Intensywność opadów

Odczyt
IF(ISNULL(responseJson) | responseJson = "error", NaN, PARSEJSON(responseJson,"rainrate"))
Opady dzisiaj Zmienna Tylko do odczytu
numeric Jednostka: mm json_path

Opady dzisiaj

Odczyt
IF(ISNULL(responseJson) | responseJson = "error", NaN, PARSEJSON(responseJson,"rain"))
Promieniowanie słoneczne Zmienna Tylko do odczytu

Natężenie promieniowania słonecznego w W/m² — dostępne tylko na stacjach z czujnikiem promieniowania słonecznego

numeric Jednostka: W/m² json_path

Promieniowanie słoneczne

Odczyt
IF(ISNULL(responseJson) | responseJson = "error", NaN, PARSEJSON(responseJson,"solarrad"))
Czas ostatniej aktualizacji Zmienna Tylko do odczytu

Znacznik czasu Unix ostatniego przesłania danych ze stacji pogodowej — przydatny do weryfikacji aktywności stacji

numeric json_path

Czas ostatniej aktualizacji

Odczyt
IF(ISNULL(responseJson) | responseJson = "error", NaN, PARSEJSON(responseJson,"epoch"))
Indeks UV Przełącznik wielowartościowy Tylko do odczytu

Poziom promieniowania UV — 0-1 Niski, 2-3 Średni, 4-5 Średnio wysoki, 6-7 Wysoki, 8-9 Bardzo wysoki

integer multi_value
Wartości / Stany: 0 - Low · 1 - Low · 2 - Medium · 3 - Medium · 4 - Medium High · 5 - Medium High · 6 - High · 7 - High · 8 - Very High · 9 - Very High

Indeks UV

Odczyt stanu przełącznika
IF(ISNULL(responseJson) | responseJson = "error", NaN, round(PARSEJSON(responseJson,"uvi")))
Kierunek wiatru Zmienna Tylko do odczytu
numeric Jednostka: ° json_path

Kierunek wiatru

Odczyt
IF(ISNULL(responseJson) | responseJson = "error", NaN, PARSEJSON(responseJson,"wdir"))
Poryw wiatru Zmienna Tylko do odczytu

Szczytowa prędkość wiatru — konwertowana z m/s na km/h

numeric Jednostka: km/h json_path

Poryw wiatru

Odczyt
IF(ISNULL(responseJson) | responseJson = "error", NaN, PARSEJSON(responseJson,"wspdhi")*3.6)
Temperatura odczuwalna Zmienna Tylko do odczytu

Temperatura odczuwalna uwzględniająca chłodzący efekt wiatru — nie wszystkie stacje raportują tę wartość

numeric Jednostka: °C json_path

Temperatura odczuwalna

Odczyt
IF(ISNULL(responseJson) | responseJson = "error", NaN, PARSEJSON(responseJson,"chill"))
Prędkość wiatru Zmienna Tylko do odczytu

Aktualna prędkość wiatru — konwertowana z m/s na km/h

numeric Jednostka: km/h json_path

Prędkość wiatru

Odczyt
IF(ISNULL(responseJson) | responseJson = "error", NaN, PARSEJSON(responseJson,"wspd")*3.6)
Połączenie: Packet Parser → HTTP
Możliwe ulepszenia (9)
  • Heat Index — Perceived temperature accounting for humidity. Optional field, unit °C.
  • Temperature-Humidity-Wind Index — Combined feel-like index considering temperature, humidity, and wind. Optional field, unit °C.
  • Visibility — Visibility in 100m units (divide by 100 for km). Optional field.
  • Secondary Temperature — Secondary temperature sensor reading. Optional field, unit °C.
  • Secondary Humidity — Secondary humidity sensor reading. Optional field, unit %.
  • Indoor Temperature — Indoor temperature — requires owner authentication. Unit °C.
  • Indoor Humidity — Indoor humidity — requires owner authentication. Unit %.
  • Indoor Dew Point — Indoor dew point — requires owner authentication. Unit °C.
  • Indoor Heat Index — Indoor heat index — requires owner authentication. Unit °C.

Źródła

  • Weathercloud API Documentation (unofficial, reverse-engineered)
    github.com 2026-03-28
  • Weathercloud FAQ & Setup Guide