TapHome

Ecowitt WS2910 (Cloud API)

Packet Parser → HTTP
Beküldő
Utoljára frissítve: 03. 2026
Ecowitt WS2910 (Cloud API)

Az Ecowitt WS2910 sablon a TapHome-ot az Ecowitt Cloud API v3-on keresztül kapcsolja össze a WS2910 színes kijelzős Wi-Fi időjárás-állomással. A WS2910 konzol gyűjti az adatokat a kültéri napelemes vezeték nélküli 7-az-1-ben szenzortömbjéből (hőmérséklet, páratartalom, szél, eső, fény/UV), valamint a beépített beltéri szenzorokból, majd Wi-Fi-n keresztül feltölti a mért értékeket az Ecowitt felhőszerverre. A TapHome HTTPS-en lekérdezi a felhő API-t, és egyetlen JSON válaszban megkapja az összes szenzor adatot.

A sablon 16 csak olvasható figyelőeszközt biztosít a kültéri és beltéri körülmények, szélmérések, csapadékösszegzés négy időskálán, légnyomás, napsugárzás és UV-index monitorozásához. Az egyetlen követelmény egy Ecowitt fiók, a Wi-Fi-hez csatlakoztatott és az ecowitt.net-re feltöltő WS2910, valamint három API hitelesítő adat.

Konfiguráció

Ecowitt fiók és Wi-Fi beállítás

A WS2910 konzolnak csatlakoznia kell a Wi-Fi-hez és adatokat kell feltöltenie az ecowitt.net-re. A kezdeti beállítás a WSView Plus mobilalkalmazáson (iOS / Android) keresztül történik:

  1. Tápláld a konzolt a mellékelt 5V DC adapterrel (a Wi-Fi csak DC tápellátással működik, elemekkel nem)
  2. Tartsd nyomva a WIND + PRESSURE gombokat kb. 5 másodpercig, amíg a Wi-Fi ikon és az M-B villogni nem kezd
  3. A WSView Plus alkalmazásban nyomd meg a Configure New Device gombot, és kövesd a képernyőn megjelenő utasításokat a konzol helyi Wi-Fi hálózathoz csatlakoztatásához
  4. Engedélyezd az Ecowitt Weather (ecowitt.net) feltöltést a szerver konfigurációs képernyőn

A konfigurálás után a szenzor adatok néhány percen belül megjelennek az ecowitt.net dashboardon.

API hitelesítő adatok beszerzése

A TapHome integrációhoz három hitelesítő adat szükséges. Mindegyiket az ecowitt.net oldalon hozod létre és kezeled:

  1. Regisztrálj fiókot a www.ecowitt.net oldalon (ha még nem tetted meg a Wi-Fi beállítás során)
  2. Győződj meg róla, hogy a WS2910 megjelenik a dashboardon élő adatokkal
  3. Navigálj az API Management szekcióba
  4. Hozz létre egy Application Key-t — ez azonosítja az API-hoz hozzáférő alkalmazást
  5. Hozz létre egy API Key-t — ez egy felhasználó-specifikus UUID karakterlánc
  6. Keresd meg a WS2910 MAC-címét — a WSView Plus alkalmazásban a Device List alatt vagy az ecowitt.net dashboardon látható
Import paraméterek

A sablon TapHome-ba importálásakor add meg:

ParaméterLeírásHol található
Application keyAlkalmazás-azonosító az ecowitt.net-rőlAPI Management → Application Key
API keyFelhasználói API kulcs (UUID formátum)API Management → API Key
Mac addressEszköz MAC-címe (XX:XX:XX:XX:XX:XX)WSView Plus alkalmazás → Device List, vagy ecowitt.net dashboard

Az alapértelmezett lekérdezési intervallum 60 másodperc (60 000 ms), ami megfelel a konzol beltéri szenzorának jelentési intervallumának. A kültéri szenzor 16 másodpercenként jelent a konzolnak, de az adatokat a konzol összesíti a feltöltés előtt.

Internetfüggőség

Ez egy kizárólag felhőalapú integráció. Minden adat az Ecowitt felhőszerveren (api.ecowitt.net:443) halad keresztül. A sablon nem működik aktív internetkapcsolat nélkül sem a TapHome Core-on, sem a WS2910 konzolon.

A WS2910 konzol egyszerre működik kijelzőként és Wi-Fi átjáróként — nincs szükség külön gateway eszközre. Amíg a konzol a DC adapterrel van táplálva és csatlakozik a Wi-Fi-hez, az adatok automatikusan feltöltődnek.

Eszközképességek

Hőmérséklet és páratartalom

Az Outdoor Temperature eszköz a hőmérsékletet (°C) és páratartalmat (%) olvassa a 7-az-1-ben vezeték nélküli szenzortömbből. A kültéri szenzor mérési tartománya −40 °C-tól 60 °C-ig terjed ±1 °C pontossággal, a páratartalom 1%-tól 99%-ig ±5% pontossággal. A páratartalom 100-zal van osztva a TapHome 0–1 analóg bemeneti tartományához.

Az Indoor Temperature eszköz a konzol beépített szenzoraiból olvassa a hőmérsékletet és páratartalmat. A beltéri hőmérséklet tartománya −10 °C-tól 60 °C-ig, a páratartalom 1%-tól 99%-ig terjed.

Két további számított érték érhető el:

  • Outdoor Feels Like Temperature — érzékelt hőmérséklet a szélhűtés (~10 °C alatt) és hőindex (~27 °C felett) figyelembevételével, az Ecowitt felhő számítja a léghőmérsékletből, páratartalomból és szélsebességből
  • Outdoor Dew Point — az a hőmérséklet, amelynél a kültéri levegő eléri a vízgőztelítettséget, a hőmérsékletből és páratartalomból számítva
Szélmérések

Három eszköz fedi le a kültéri szenzortömb szélmérő és szélirányjelző adatait:

  • Wind Speed — tartós szélsebesség km/h-ban. Tartomány 0–180 km/h, pontosság ±1 m/s (5 m/s alatt) vagy ±10% (5 m/s felett)
  • Wind Gust — csúcs szélsebesség a mérési intervallumon belül (legmagasabb 3 másodperces átlag) km/h-ban
  • Wind Direction — iránytű szerinti irány, ahonnan a szél fúj, fokban (0° = észak, 90° = kelet, 180° = dél, 270° = nyugat)
Csapadék

Négy eszköz követi a csapadékösszegzést különböző időskálákon, plusz egy pillanatnyi intenzitás:

  • Hourly Precipitation — összegyűlt csapadék az utolsó 60 percben (gördülő ablak) mm-ben
  • Daily Precipitation — összegyűlt csapadék éjfél óta mm-ben
  • Weekly Precipitation — összegyűlt csapadék az aktuális hét kezdete ��ta mm-ben
  • Monthly Precipitation — összegyűlt csapadék az aktuális hónap első napja óta mm-ben
  • Rain Rate — aktuális csapadékintenzitás, mm/h-ra extrapolálva. A csapadékmennyiség pontossága ±10%, 0,3 mm felbontással
Légnyomás
  • Air Pressure (Absolute) — légnyomás magassági kompenzáció nélkül hPa-ban. Tartomány 700–1100 hPa, pontosság ±3 hPa
  • Air Pressure (Relative) — magasságra kompenzált légnyomás (tengerszinti egyenérték) hPa-ban
Napsugárzás és UV
  • Solar Irradiance — napsugárzás intenzitása W/m²-ben. Fényszenzor tartomány 0–200 klux, pontosság ±15%
  • UV Index — ultraibolya sugárzási index a nemzetközi 0–15 skálán (0 éjszaka, 10+ nyári déli napfényben)
További képességek

Az Ecowitt Cloud API emellett biztosít csapadékesemény-összegzést (az eső megszűnésekor nullázódik) és éves összes csapadékot. Ezek elérhetők az API válaszban, de az aktuális sablon nem dolgozza fel őket. A WS2910 hardver legfeljebb 8 további WN31 többcsatornás hőmérséklet/páratartalom szenzort és legfeljebb 2 WH41/WH43 PM2.5 levegőminőség-szenzort támogat — az API valószínűleg további adatútvonalakon teszi ezeket elérhetővé. A kültéri és beltéri páratartalom jelenleg csak a megfelelő hőmérséklet-eszközök részeként érhető el; önálló páratartalom-eszközök egy jövőbeli sablonfrissítésben kerülhetnének hozzáadásra.

Hibaelhárítás

Az API hibát ad vissza vagy nincs adat
  1. Ellenőrizd, hogy a WS2910 online-e az ecowitt.net-en — jelentkezz be a dashboardra és nézd meg, hogy az élő adatok megjelennek-e
  2. Erősítsd meg mindhárom hitelesítő adat helyességét: application key, API key és MAC-cím
  3. Győződj meg róla, hogy a MAC-cím formátuma pontosan egyezik (XX:XX:XX:XX:XX:XX kettőspontokkal)
  4. Ellenőrizd, hogy a WS2910 konzol a DC adapterrel van-e táplálva (a Wi-Fi nem működik csak elemről)
Elavult vagy késleltetett értékek

Az Ecowitt Cloud API a WS2910 konzol által feltöltött legfrissebb adatokat adja vissza. A konzol a beállítás során konfigurált intervallumban tölti fel az adatokat (alapértelmezés szerint 5 perc az ecowitt.net tárolásához). A sablon 60 másodpercenként kérdezi le az API-t, de a mögöttes adatok a feltöltési intervallumtól függően ritkábban frissülhetnek.

Az alapértelmezett mértékegységek angolszász rendszerűek

Az Ecowitt API alapértelmezés szerint angolszász mértékegységekben (°F, inHg, mph, inch) adja vissza az adatokat. A sablon kifejezetten metrikus mértékegység-azonosítókat állít be az API URL-ben (temp_unitid=1, pressure_unitid=3, wind_speed_unitid=7, rainfall_unitid=12, solar_irradiance_unitid=16), hogy minden értéket metrikus egységekben kapjon. Ezeket a mértékegység-azonosítókat nem szabad módosítani.

Az Ecowitt Cloud API aktív internetkapcsolatot igényel, és az Ecowitt felhőszerver elérhetőségétől függ. Felhőkimaradások vagy internetszakadások során a sablon nem kap frissített adatokat.

Elérhető eszközök

Ecowitt WS2910 Modul
Egyéni változók
application_key (string)Ecowitt API application key for authentication (obtain from Ecowitt dashboard)
api_key (string)Ecowitt API key for device data access (obtain from Ecowitt dashboard)
mac_address (string)MAC address of the Ecowitt weather station (find in Ecowitt app or device settings)

Ecowitt

Olvasás (modul)
responseJson := "error";

IF(ISNULL(api_key) OR LENGTH(api_key) = 0)
   ADDERROR("Please set API key in module variables");
   RETURN(-1);
END

IF(ISNULL(application_key) OR LENGTH(application_key) = 0)
   ADDERROR("Please set Application key in module variables");
   RETURN(-2);
END

IF(ISNULL(mac_address) OR LENGTH(mac_address) = 0)
   ADDERROR("Please set MAC address in module variables");
   RETURN(-3);
END

VAR path := "api/v3/device/real_time?application_key=" + application_key + "&api_key=" + api_key + "&mac=" + mac_address + "&call_back=all&temp_unitid=1&pressure_unitid=3&wind_speed_unitid=7&rainfall_unitid=12&solar_irradiance_unitid=16";

VAR response := SENDHTTPREQUEST(path);

IF response.IsSuccess
    responseJson := response.Content;
ELSE
    VAR contentJson := response.Content;
    VAR errCode := response.StatusCode;
    VAR message := PARSEJSON(contentJson, "message");
    ADDERROR("Failed to read data - (" + errCode + ") " + message);
    RETURN(-4);
END

VAR code := PARSEJSON(responseJson, "code");

IF code != 0
    
    VAR msg := PARSEJSON(responseJson, "msg");
    ADDERROR("Failed to read data - " + msg);
    responseJson := "error";
END
Légnyomás (abszolút) Változó Csak olvasható

Légnyomás magassági kompenzáció nélkül — tartomány 700–1100 hPa

numeric Egység: hPa JSON parsejson()

Légnyomás (abszolút)

Olvasás
IF(ISNULL(responseJson) | responseJson = "error")
    RETURN(NaN);
END

VAR value := PARSEJSON(responseJson,"data.pressure.absolute.value");
RETURN(TODOUBLE(value));
Légnyomás (relatív) Változó Csak olvasható

Magasságra kompenzált légnyomás — tengerszinti egyenérték hPa-ban

numeric Egység: hPa JSON parsejson()

Légnyomás (relatív)

Olvasás
IF(ISNULL(responseJson) | responseJson = "error")
    RETURN(NaN);
END

VAR value := PARSEJSON(responseJson,"data.pressure.relative.value");
RETURN(TODOUBLE(value));
Napi csapadék Változó Csak olvasható

Összegyűlt csapadék éjfél óta mm-ben — nullázás 00:00-kor

numeric Egység: mm JSON parsejson()

Napi csapadék

Olvasás
IF(ISNULL(responseJson) | responseJson = "error")
    RETURN(NaN);
END

VAR value := PARSEJSON(responseJson,"data.rainfall.daily.value");
RETURN(TODOUBLE(value));
Óránkénti csapadék Változó Csak olvasható

Összegyűlt csapadék az utolsó 60 percben (gördülő ablak) mm-ben

numeric Egység: mm JSON parsejson()

Óránkénti csapadék

Olvasás
IF(ISNULL(responseJson) | responseJson = "error")
    RETURN(NaN);
END

VAR value := PARSEJSON(responseJson,"data.rainfall.1_hour.value");
RETURN(TODOUBLE(value));
Beltéri hőmérséklet Hőmérséklet-érzékelő Csak olvasható

Konzol által mért beltéri hőmérséklet (°C) és páratartalom (0–1 tartomány)

numeric Egység: °C / % JSON parsejson()

Beltéri hőmérséklet

Páratartalom olvasása
IF(ISNULL(responseJson) | responseJson = "error")
    RETURN(NaN);
END

VAR value := PARSEJSON(responseJson,"data.indoor.humidity.value");
RETURN(TODOUBLE(value) / 100);
Hőmérséklet olvasása
IF(ISNULL(responseJson) | responseJson = "error")
    RETURN(NaN);
END

VAR value := PARSEJSON(responseJson,"data.indoor.temperature.value");
RETURN(TODOUBLE(value));
Havi csapadék Változó Csak olvasható

Összegyűlt csapadék az aktuális hónap első napja óta mm-ben

numeric Egység: mm JSON parsejson()

Havi csapadék

Olvasás
IF(ISNULL(responseJson) | responseJson = "error")
    RETURN(NaN);
END

VAR value := PARSEJSON(responseJson,"data.rainfall.monthly.value");
RETURN(TODOUBLE(value));
Kültéri harmatpont Változó Csak olvasható

Hőmérséklet, amelynél a kültéri levegő eléri a vízgőztelítettséget — hőmérsékletből és páratartalomból számítva

numeric Egység: °C JSON parsejson()

Kültéri harmatpont

Olvasás
IF(ISNULL(responseJson) | responseJson = "error")
    RETURN(NaN);
END

VAR value := PARSEJSON(responseJson,"data.outdoor.dew_point.value");
RETURN(TODOUBLE(value));
Kültéri érzékelt hőmérséklet Változó Csak olvasható

Érzékelt hőmérséklet a szélhűtés és hőindex figyelembevételével

numeric Egység: °C JSON parsejson()

Kültéri érzékelt hőmérséklet

Olvasás
IF(ISNULL(responseJson) | responseJson = "error")
    RETURN(NaN);
END

VAR value := PARSEJSON(responseJson,"data.outdoor.feels_like.value");
RETURN(TODOUBLE(value));
Kültéri hőmérséklet Hőmérséklet-érzékelő Csak olvasható

Kültéri hőmérséklet (°C) és páratartalom (0–1 tartomány) a 7-az-1-ben vezeték nélküli szenzortömbből

numeric Egység: °C / % JSON parsejson()

Kültéri hőmérséklet

Páratartalom olvasása
IF(ISNULL(responseJson) | responseJson = "error")
    RETURN(NaN);
END

VAR value := PARSEJSON(responseJson,"data.outdoor.humidity.value");
RETURN(TODOUBLE(value) / 100.0);
Hőmérséklet olvasása
IF(ISNULL(responseJson) | responseJson = "error")
    RETURN(NaN);
END

VAR value := PARSEJSON(responseJson,"data.outdoor.temperature.value");
RETURN(TODOUBLE(value));
Esőintenzitás Változó Csak olvasható

Aktuális csapadékintenzitás, mm/h-ra extrapolálva

numeric Egység: mm/hr JSON parsejson()

Esőintenzitás

Olvasás
IF(ISNULL(responseJson) | responseJson = "error")
    RETURN(NaN);
END

VAR value := PARSEJSON(responseJson,"data.rainfall.rain_rate.value");
RETURN(TODOUBLE(value));
Napsugárzás Változó Csak olvasható

Napsugárzás intenzitása W/m²-ben — tartomány 0–200 klux

numeric Egység: W/m² JSON parsejson()

Napsugárzás

Olvasás
IF(ISNULL(responseJson) | responseJson = "error")
    RETURN(NaN);
END

VAR value := PARSEJSON(responseJson,"data.solar_and_uvi.solar.value");
RETURN(TODOUBLE(value));
UV-index Változó Csak olvasható

Ultraibolya sugárzási index a 0–15 skálán — 0 éjszaka, 10+ nyári déli napfényben

numeric JSON parsejson()

UV-index

Olvasás
IF(ISNULL(responseJson) | responseJson = "error")
    RETURN(NaN);
END

VAR value := PARSEJSON(responseJson,"data.solar_and_uvi.uvi.value");
RETURN(TODOUBLE(value));
Heti csapadék Változó Csak olvasható

Összegyűlt csapadék az aktuális hét kezdete óta mm-ben

numeric Egység: mm JSON parsejson()

Heti csapadék

Olvasás
IF(ISNULL(responseJson) | responseJson = "error")
    RETURN(NaN);
END

VAR value := PARSEJSON(responseJson,"data.rainfall.weekly.value");
RETURN(TODOUBLE(value));
Szélirány Változó Csak olvasható

Iránytű szerinti irány fokban — 0° észak, 90° kelet, 180° dél, 270° nyugat

numeric Egység: ° JSON parsejson()

Szélirány

Olvasás
IF(ISNULL(responseJson) | responseJson = "error")
    RETURN(NaN);
END

VAR value := PARSEJSON(responseJson,"data.wind.wind_direction.value");
RETURN(TODOUBLE(value));
Széllökés Változó Csak olvasható

Csúcs szélsebesség a mérési intervallumon belül km/h-ban

numeric Egység: km/h JSON parsejson()

Széllökés

Olvasás
IF(ISNULL(responseJson) | responseJson = "error")
    RETURN(NaN);
END

VAR value := PARSEJSON(responseJson,"data.wind.wind_gust.value");
RETURN(TODOUBLE(value));
Szélsebesség Változó Csak olvasható

Tartós szélsebesség az anemométerből km/h-ban — tartomány 0–180 km/h

numeric Egység: km/h JSON parsejson()

Szélsebesség

Olvasás
IF(ISNULL(responseJson) | responseJson = "error")
    RETURN(NaN);
END

VAR value := PARSEJSON(responseJson,"data.wind.wind_speed.value");
RETURN(TODOUBLE(value));
Kapcsolat: Packet Parser → HTTP
Lehetséges fejlesztések (6)
  • Rainfall Event — Accumulated rainfall for the current rain event (resets when rain stops). Available in API response but not parsed by template
  • Yearly Precipitation — Accumulated rainfall since January 1st. Available in API response but not parsed by template
  • Outdoor Humidity (Standalone) — Outdoor humidity is only exposed as part of the Outdoor Temperature device (readhumidity script). A standalone humidity variable device could be useful for automations
  • Indoor Humidity (Standalone) — Indoor humidity is only exposed as part of the Indoor Temperature device (readhumidity script). A standalone humidity variable device could be useful for automations
  • Additional Temperature/Humidity Sensors (WN31) — WS2910 supports up to 8 WN31 multi-channel temperature/humidity sensors. API likely exposes these under additional data paths. Not implemented in template
  • PM2.5 Air Quality Sensors — WS2910 supports up to 2 WH41/WH43 PM2.5 air quality sensors. API likely exposes these under additional data paths. Not implemented in template

Források