TapHome

Weathercloud

Packet Parser → HTTP
Trimis de
Ultima actualizare: 10. 2026
Weathercloud

Weathercloud este o platformă de date meteo în cloud, cu o rețea globală de peste 100 000 de stații meteo personale. TapHome se conectează la Weathercloud printr-un șablon HTTP Packet Parser, care citește periodic datele meteo în timp real din API-ul web intern al platformei. Integrarea este doar pentru citire: toate cele 14 dispozitive din șablon sunt senzori care afișează datele meteo de la o stație asociată.

Această integrare folosește un API neoficial, obținut prin inginerie inversă (endpoint-urile interne ale aplicației web Weathercloud). Weathercloud nu oferă un API public pentru preluarea datelor. Endpoint-urile se pot schimba sau pot fi blocate fără notificare.

Configurare

La importul șablonului, introduceți Device ID, un număr de zece cifre care identifică stația meteo pe Weathercloud. Șablonul folosește acest ID pentru a interoga app.weathercloud.net/device/values?code={DeviceID}.

Obținerea Device ID
  1. Autentificați-vă în contul Weathercloud pe weathercloud.net
  2. Din meniul profilului, deschideți pagina Devices
  3. Faceți clic pe pictograma roată dințată Settings a dispozitivului dorit
  4. Selectați Link device: Weathercloud ID este Device ID-ul necesar

API-ul Weathercloud cere un cookie de sesiune pentru autentificare. Șablonul trimite un antet cookie la fiecare cerere. Pentru a obține un cookie de sesiune valid:

  1. Autentificați-vă în app.weathercloud.net într-un browser
  2. Deschideți instrumentele pentru dezvoltatori ale browserului (F12) și examinați anteturile cererilor
  3. Copiați valoarea cookie completă din orice cerere către app.weathercloud.net
  4. În antetul scriptului de citire al șablonului, înlocuiți substituentul COOKIE cu șirul cookie real

Cookie-urile de sesiune expiră după o perioadă de inactivitate. Dacă integrarea nu mai returnează date, autentificați-vă din nou și actualizați valoarea cookie-ului în TapHome.

Funcțiile dispozitivului

Șablonul oferă 14 dispozitive doar pentru citire, care extrag câmpuri dintr-un singur răspuns JSON. Toate dispozitivele folosesc același mecanism de interogare HTTP, cu un interval de interogare de 15 secunde (Indicele UV se interoghează la 2,5 secunde). Fiecare script de citire include tratarea erorilor: dacă răspunsul este null sau conține "error", dispozitivul returnează NaN.

Temperatură și umiditate
  • Temperatură și umiditate — temperatura exterioară în °C și umiditatea relativă. API-ul raportează umiditatea ca 0–100, iar șablonul o convertește în raportul 0–1.
  • Punct de rouă — temperatura punctului de rouă în °C
  • Indice de răcire a vântului — temperatura resimțită, care ține cont de efectul de răcire al vântului, în °C. Opțional: nu toate stațiile raportează acest indice.
Măsurători ale vântului
  • Viteza vântului — viteza curentă a vântului, convertită din m/s în km/h (înmulțită cu 3,6)
  • Viteza medie a vântului — viteza medie a vântului pe intervalul de raportare al stației, convertită din m/s în km/h
  • Rafale de vânt — viteza maximă a vântului, convertită din m/s în km/h
  • Direcția vântului — direcția curentă a vântului în grade (0–360)
  • Direcția medie a vântului — direcția medie a vântului, în grade
Precipitații
  • Rata precipitațiilor — intensitatea curentă a precipitațiilor în mm/h
  • Precipitații azi — cantitatea cumulată de precipitații de la miezul nopții, în mm
Atmosferă și radiație solară
  • Presiune atmosferică — presiunea barometrică în hPa
  • Radiație solară — iradianța solară în W/m². Opțional: disponibilă numai la stațiile echipate cu senzor de radiație solară.
  • Indice UV — nivelul radiației UV, afișat ca indicator cu mai multe valori, cu 10 valori grupate în 5 niveluri denumite: 0–1 Scăzut, 2–3 Mediu, 4–5 Mediu-ridicat, 6–7 Ridicat, 8–9 Foarte ridicat. Opțional: necesită un senzor UV pe stație.
Actualitatea datelor
  • Ora ultimei actualizări — marcajul de timp Unix (în secunde) al ultimei încărcări de date de la stația meteo. Util pentru a verifica dacă stația transmite în continuare date.
Funcții suplimentare

API-ul Weathercloud pune la dispoziție și indicele de căldură, indicele temperatură-umiditate-vânt (THW), vizibilitatea, senzori secundari de temperatură și umiditate și valorile mediului interior (temperatură, umiditate, punct de rouă, indice de căldură — disponibile numai proprietarului stației). Acestea pot fi adăugate într-o actualizare viitoare a șablonului.

Depanare

Datele nu se actualizează
  1. Verificați valoarea Ora ultimei actualizări: dacă nu avansează, stația meteo a încetat să încarce date în Weathercloud
  2. Verificați dacă stația este online pe app.weathercloud.net: căutați Device ID și verificați marcajul de timp al ultimei actualizări
  3. Conturile Weathercloud gratuite se actualizează la fiecare 10 minute. Chiar dacă TapHome interoghează la fiecare 15 secunde, datele noi apar doar la intervalul de încărcare al stației.
Toate valorile afișează NaN
  1. Verificați dacă Device ID este corect: trebuie să fie numărul de zece cifre din setările Weathercloud „Link device”, nu numele stației
  2. Verificați valoarea cookie din scriptul de citire al șablonului. Dacă sesiunea a expirat, API-ul returnează o eroare și toate dispozitivele trec la NaN. Autentificați-vă din nou și actualizați cookie-ul.
  3. Verificați dacă stația există și este accesibilă public pe Weathercloud: stațiile private pot necesita autentificarea proprietarului
Unii senzori afișează NaN, iar alții funcționează

Nu toate stațiile meteo au aceiași senzori. Câmpuri precum radiația solară (solarrad), indicele UV (uvi) și indicele de răcire a vântului (chill) sunt opționale și depind de echipamentul fizic al stației. Dacă stația nu raportează un câmp, API-ul îl omite, iar șablonul returnează NaN pentru dispozitivul respectiv.

Intervalul de interogare al șablonului este de 15 secunde, dar datele Weathercloud se reîmprospătează doar la ritmul de încărcare al stației (10 minute pentru conturile gratuite, 1 minut pentru cele plătite). O interogare mai frecventă nu aduce date mai noi, doar confirmă cea mai recentă valoare disponibilă.

Dispozitive disponibile

WeatherCloud Modul
Variabile personalizate
code (string)ID-ul dispozitivului stației WeatherCloud folosit în URL-ul cererii API (setat la import)

WeatherCloud

Citire (modul)
#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
Direcția medie a vântului Variabilă Doar citire
numeric Unitate: ° json_path

Direcția medie a vântului

Citire
IF(ISNULL(responseJson) | responseJson = "error", NaN, PARSEJSON(responseJson,"wdiravg"))
Viteza medie a vântului Variabilă Doar citire

Viteza medie a vântului pe intervalul de raportare al stației — convertită din m/s în km/h

numeric Unitate: km/h json_path

Viteza medie a vântului

Citire
IF(ISNULL(responseJson) | responseJson = "error", NaN, PARSEJSON(responseJson,"wspdavg")*3.6)
Temperatură și umiditate Senzor de temperatură Doar citire

Temperatura exterioară (°C) și umiditatea relativă de la stația meteo

numeric Unitate: °C / % json_path

Temperatură și umiditate

Citirea umidității
IF(ISNULL(responseJson) | responseJson = "error", NaN, PARSEJSON(responseJson,"hum")/100)
Citirea temperaturii
IF(ISNULL(responseJson) | responseJson = "error", NaN, PARSEJSON(responseJson,"temp"))
Punct de rouă Variabilă Doar citire
numeric Unitate: °C json_path

Punct de rouă

Citire
IF(ISNULL(responseJson) | responseJson = "error", NaN, PARSEJSON(responseJson,"dew"))
Presiune atmosferică Variabilă Doar citire
numeric Unitate: hPa json_path

Presiune atmosferică

Citire
IF(ISNULL(responseJson) | responseJson = "error", NaN, PARSEJSON(responseJson,"bar"))
Rata precipitațiilor Variabilă Doar citire
numeric Unitate: mm/h json_path

Rata precipitațiilor

Citire
IF(ISNULL(responseJson) | responseJson = "error", NaN, PARSEJSON(responseJson,"rainrate"))
Precipitații azi Variabilă Doar citire
numeric Unitate: mm json_path

Precipitații azi

Citire
IF(ISNULL(responseJson) | responseJson = "error", NaN, PARSEJSON(responseJson,"rain"))
Radiație solară Variabilă Doar citire

Iradianța solară în W/m² — disponibilă numai la stațiile cu senzor de radiație solară

numeric Unitate: W/m² json_path

Radiație solară

Citire
IF(ISNULL(responseJson) | responseJson = "error", NaN, PARSEJSON(responseJson,"solarrad"))
Ora ultimei actualizări Variabilă Doar citire

Marcajul de timp Unix al ultimei încărcări de date de la stația meteo — util pentru a verifica activitatea stației

numeric json_path

Ora ultimei actualizări

Citire
IF(ISNULL(responseJson) | responseJson = "error", NaN, PARSEJSON(responseJson,"epoch"))
Indice UV Comutator cu mai multe valori Doar citire

Nivelul radiației UV — 0–1 Scăzut, 2–3 Mediu, 4–5 Mediu-ridicat, 6–7 Ridicat, 8–9 Foarte ridicat

integer multi_value
Valori / Stări: 0 - Low · 1 - Low · 2 - Medium · 3 - Medium · 4 - Medium High · 5 - Medium High · 6 - High · 7 - High · 8 - Very High · 9 - Very High

Indice UV

Citirea stării comutatorului
IF(ISNULL(responseJson) | responseJson = "error", NaN, round(PARSEJSON(responseJson,"uvi")))
Direcția vântului Variabilă Doar citire
numeric Unitate: ° json_path

Direcția vântului

Citire
IF(ISNULL(responseJson) | responseJson = "error", NaN, PARSEJSON(responseJson,"wdir"))
Rafale de vânt Variabilă Doar citire

Viteza maximă a vântului — convertită din m/s în km/h

numeric Unitate: km/h json_path

Rafale de vânt

Citire
IF(ISNULL(responseJson) | responseJson = "error", NaN, PARSEJSON(responseJson,"wspdhi")*3.6)
Indice de răcire a vântului Variabilă Doar citire

Temperatura resimțită, care ține cont de efectul de răcire al vântului — nu toate stațiile raportează această valoare

numeric Unitate: °C json_path

Indice de răcire a vântului

Citire
IF(ISNULL(responseJson) | responseJson = "error", NaN, PARSEJSON(responseJson,"chill"))
Viteza vântului Variabilă Doar citire

Viteza curentă a vântului — convertită din m/s în km/h

numeric Unitate: km/h json_path

Viteza vântului

Citire
IF(ISNULL(responseJson) | responseJson = "error", NaN, PARSEJSON(responseJson,"wspd")*3.6)
Conexiune: Packet Parser → HTTP
Îmbunătățiri posibile (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.

Surse

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

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