
OpenWeather este un furnizor de date meteo care oferă informații despre vreme la nivel global printr-un API REST. Șablonul TapHome se conectează prin HTTPS la OpenWeather API v2.5 gratuit și citește vremea curentă, o prognoză pentru 3 ore și o prognoză pentru 24 de ore pentru locația configurată.
Șablonul face două apeluri API la fiecare 5 minute — unul pentru vremea curentă și unul pentru prognoza pe 5 zile, la intervale de 3 ore. Oferă 18 dispozitive numai pentru citire, care acoperă temperatura aerului, temperatura resimțită, umiditatea, presiunea atmosferică, vizibilitatea, viteza vântului și starea vremii. Toate temperaturile sunt în grade Celsius (unități metrice) și nu este necesar niciun abonament plătit.
Configurare
Obținerea cheii API
- Înregistrați un cont gratuit pe openweathermap.org — nu este necesar un card de credit
- După înregistrare, cheia API (APPID) vă este trimisă în e-mailul de confirmare
- Cheia este disponibilă și pe pagina contului, în fila API key
- Cheile noi se activează automat, de obicei între 10 minute și 2 ore
Nivelul gratuit permite 60 de apeluri pe minut și 1.000.000 de apeluri pe lună. Șablonul TapHome face aproximativ 576 de apeluri pe zi (2 apeluri la fiecare 5 minute), mult sub limitele gratuite.
Parametri de import
La importul șablonului în TapHome sunt necesari trei parametri:
| Parametru | Descriere | Exemplu |
|---|---|---|
latitude | Latitudinea locației în grade zecimale | 48.1778 |
longitude | Longitudinea locației în grade zecimale | 17.1426 |
appid | Cheia API OpenWeather din panoul contului | a1b2c3d4e5f6... |
Pentru a afla coordonatele unei locații, faceți clic dreapta în Google Maps și selectați coordonatele din meniul contextual.
Endpointuri API
Modulul se conectează la api.openweathermap.org prin HTTPS (portul 443) și apelează două endpointuri la fiecare ciclu de interogare:
| |
Prima cerere returnează vremea curentă. A doua returnează o listă de prognoze, în care list[0] este următorul interval de 3 ore, iar list[8] este intervalul de peste 24 de ore (8 x 3 h = 24 h).
Funcțiile dispozitivului
Șablonul pune la dispoziție 18 dispozitive numai pentru citire, organizate în trei grupuri: vremea curentă (6 dispozitive), prognoza pentru 3 ore (6 dispozitive) și prognoza pentru 24 de ore (6 dispozitive). Fiecare grup oferă aceleași șase mărimi.
Temperatură și umiditate
- Temperatura aerului (acum) — temperatura curentă în grade Celsius, cu umiditatea ca valoare secundară (API-ul returnează 0–100 %, convertit într-o valoare de la 0 la 1 pentru TapHome)
- Temperatura resimțită (acum) — temperatura aparentă, care ține cont de efectul de răcire al vântului și de umiditate. Funcția de umiditate este dezactivată (returnează NaN) — se folosește doar valoarea temperaturii
- Temperatura aerului (prognoză +3h) — temperatura și umiditatea pentru următorul interval de prognoză de 3 ore. Include atributul de service Data prognozei, care afișează marcajul de timp al datelor
- Temperatura resimțită (prognoză +3h) — temperatura aparentă pentru următorul interval de 3 ore
- Temperatura aerului (prognoză +24h) — temperatura și umiditatea pentru intervalul de prognoză de +24 h. Include atributul de service Data prognozei
- Temperatura resimțită (prognoză +24h) — temperatura aparentă pentru intervalul de +24 h
Presiune atmosferică și vizibilitate
- Presiunea atmosferică (acum) — presiunea atmosferică în hPa
- Vizibilitatea (acum) — distanța de vizibilitate în metri (maximum 10.000 m)
- Presiunea atmosferică (prognoză +3h) — presiunea atmosferică pentru următorul interval de 3 ore
- Vizibilitatea (prognoză +3h) — vizibilitatea pentru prognoza de 3 ore
- Presiunea atmosferică (prognoză +24h) — presiunea atmosferică pentru intervalul de +24 h
- Vizibilitatea (prognoză +24h) — vizibilitatea pentru prognoza de 24 de ore
În versiunea actuală a șablonului, dispozitivele Vizibilitatea (prognoză +3h) și Vizibilitatea (prognoză +24h) au indicii datelor inversați. Dispozitivul +3h citește din list[8] (poziția pentru 24 h), iar dispozitivul +24h citește din list[0] (poziția pentru 3 h). Valorile sunt inversate până la corectarea într-o actualizare viitoare a șablonului.
Viteza vântului
- Viteza vântului (acum) — viteza vântului în m/s
- Viteza vântului (prognoză +3h) — viteza vântului pentru următorul interval de 3 ore
- Viteza vântului (prognoză +24h) — viteza vântului pentru intervalul de +24 h
Starea vremii
Trei dispozitive de tip comutator cu mai multe valori afișează categoria stării vremii:
- Vremea (acum) — starea curentă a vremii
- Vremea (prognoză +3h) — starea vremii pentru următorul interval de 3 ore
- Vremea (prognoză +24h) — starea vremii pentru intervalul de +24 h
Fiecare dispozitiv pentru vreme mapează câmpul API weather[0].main pe una dintre cele 7 categorii:
| Valoarea comutatorului | Etichetă | Grupuri meteo API |
|---|---|---|
| 0 | Senin | Clear |
| 1 | Noros | Clouds |
| 2 | Ploaie | Rain |
| 3 | Burniță | Drizzle |
| 4 | Furtună | Thunderstorm |
| 5 | Ninsoare | Snow |
| 6 | Fenomene atmosferice | Mist, Smoke, Haze, Dust, Fog, Sand, Ash, Squall, Tornado |
Dacă API-ul returnează un grup meteo necunoscut, comutatorul trece implicit pe 0 (Senin). Valorile 7, 8 și 9 ale comutatorului sunt definite în configurația șablonului, dar nu au corespondență în logica scriptului — sunt valori rezervate, nefolosite.
Funcții suplimentare
OpenWeather API oferă și direcția vântului, rafalele de vânt, gradul de acoperire cu nori în procente, cantitatea de ploaie și de zăpadă (1 h) și orele răsăritului și apusului. Umiditatea este disponibilă doar ca valoare secundară a senzorilor de temperatură, nu ca dispozitiv separat. Acestea pot fi adăugate într-o actualizare viitoare a șablonului.
Rezolvarea problemelor
Toate dispozitivele arată NaN sau nu au date
- Verificați dacă TapHome Core are acces la internet — șablonul necesită conectivitate HTTPS de ieșire către
api.openweathermap.org - Verificați dacă cheia API este validă — pentru test, deschideți în browser
https://api.openweathermap.org/data/2.5/weather?lat=48.18&lon=17.14&appid=YOUR_KEY&units=metric - Activarea cheilor API noi poate dura până la 2 ore după înregistrare
- Verificați dacă latitudinea și longitudinea sunt coordonate zecimale corecte (nu grade/minute/secunde)
Datele de prognoză par incorecte
API-ul de prognoză returnează date în intervale de 3 ore. Dispozitivele +3h citesc primul interval de prognoză (list[0]), adică următorul bloc de 3 ore disponibil — nu exact peste 3 ore de acum. La fel, dispozitivele +24h citesc list[8] (al 9-lea interval), care corespunde aproximativ momentului de peste 24 de ore.
Țineți cont de inversarea indicilor de vizibilitate descrisă în avertismentul de mai sus — dacă valorile de vizibilitate +3h și +24h par schimbate între ele, este vorba de eroarea cunoscută a șablonului.
Greșeală de scriere în numele dispozitivului
Dispozitivul nr. 17 din șablon se numește „Forecast (+24h)Weather” (lipsește spațiul înainte de „Weather”). Este o problemă cosmetică în fișierul XML al șablonului și nu afectează funcționarea. Dispozitivul se afișează corect în tabelul de dispozitive TapHome, cu numele corectat.
