TapHome

Shelly EM

Packet Parser → HTTP
Beküldő
Utoljára frissítve: 03. 2026
Shelly EM

A Shelly EM egy egyfázisú energiamérő két független mérőcsatornával és 2A relé kimenettel kontaktor vezérléshez. Minden csatorna egy külső CT (áramváltó) csatlakozóhoz kapcsolódik — 50A és 120A változatban elérhető — ami lehetővé teszi két különálló áramkör egyidejű, nem invazív monitorozását. A TapHome helyi hálózaton integrálódik az eszközzel Wi-Fi-n keresztül, HTTP REST API-n vagy MQTT-n. Nincs szükség felhőkapcsolatra.

Két TapHome sablon áll rendelkezésre: egy HTTP sablon, amely az eszköz REST végpontjait pollozza, és egy MQTT sablon, amely MQTT brókeren keresztül fogadja az adatokat. Mindkettő ugyanazt a három eszközt biztosítja — két energiamérőt (csatornánként egyet) és egy kontaktor kapcsolót.

Konfiguráció

HTTP sablon

A HTTP sablon csak az eszköz IP-címét igényli (vagy mDNS hostnevet). A TapHome 15 másodpercenként három végpontot kérdez le:

  • /emeter/0/ — 1. csatorna energiaadatai
  • /emeter/1/ — 2. csatorna energiaadatai
  • settings/relay/0 — relé állapot és ütemezés ellenőrzés

A modul szintű olvasószkript minden választ saját változóba ment (emeterZero, emeterOne, status), így az egyes eszköz szkriptek redundáns HTTP hívások nélkül dolgozhatják fel az adatokat.

A sablon a settings/relay/0-ból a relé ütemezési állapotát is ellenőrzi. Ha a Shelly eszközön belső ütemezés van engedélyezve, a sablon hibát jelez — tiltsd le az ütemezést a Shelly webes felületén, hogy elkerüld a TapHome automatizálásokkal való ütközést.

MQTT sablon

Az MQTT sablon a bróker IP-jét, portját és a Shelly Device ID-t igényli (formátum: shellyem-XXXXXXXXXXXX, ahol X = MAC hex számjegyek). A Device ID a Shelly webes felületén a Settings > Device Info alatt található.

Az MQTT engedélyezése után a Shelly EM-en (Internet & Security > Advanced — MQTT) a TapHome feliratkozik a shellies/shellyem-{deviceID}/ topicokra és listener szkripteken keresztül fogadja az adatokat.

A Gen1 Shelly eszközökön az MQTT engedélyezése letiltja a Shelly Cloudot. Mindkettő nem futhat egyszerre.

Eszközképességek

Energiamérés (csatornánként)

Minden csatorna független energiamérőként jelenik meg a TapHome-ban:

  • Pillanatnyi teljesítmény — hatásos teljesítmény kW-ban (W-ból átszámítva 1000-rel való osztással)
  • Kumulatív energia — összes felhasznált energia kWh-ban (HTTP: Wh-ból átszámítva; MQTT: a persistens total topicot használja Wh-ban)

A HTTP sablon a power és total mezőket olvassa az /emeter/{i}/ JSON válaszból. Az MQTT sablon az emeter/{i}/energy topicot figyeli (watt-perc, 60 000-rel osztva kWh-hoz) és az emeter/{i}/total topicot (watt-óra, újraindítások között is megmarad).

Az MQTT energy topic az eszköz újraindításakor nullázódik. A persistens energiakövetéshez a sablon a total topicot is olvassa, amely túléli az újraindításokat.

Minden csatorna három szervizattribútumot is biztosít:

AttribútumEgységLeírás
FeszültségVEffektív hálózati feszültség
Visszatáplált energiaWhHálózatba visszatáplált összes energia — napelemes/kétirányú méréshez
Meddő teljesítményVARPillanatnyi meddő teljesítmény

Az MQTT sablon csatornánként csak a feszültséget biztosítja szervizattribútumként. A meddő teljesítmény és a visszatáplált energia csak a HTTP sablonban érhető el.

Kontaktor kapcsoló

A relé kimenet a TapHome-ban kapcsolóként jelenik meg. A relé 2A / 230 VAC névleges terhelésű — kizárólag kontaktor vezérlésre tervezték, nem közvetlen terhelés kapcsolásra.

  • HTTP: a ison mezőt olvassa a settings/relay/0-ból, és a /relay/0?turn=on vagy /relay/0?turn=off parancsokkal vezérli
  • MQTT: a shellies/shellyem-{id}/relay/0 topicról olvas, és on/off üzenetet publikál a shellies/shellyem-{id}/relay/0/command topicra

A relé mindössze 2A névleges terhelésű. Az ezt meghaladó terhelésekhez mindig használj külső kontaktort. Nagy teljesítményű terhelések közvetlen csatlakoztatása tönkreteszi a relét.

További képességek

A Shelly EM emellett teljesítménytényezőt (0,00–1,00) és csatornánkénti mérési érvényességi jelzőt, csatornakonfigurációt (CT arány, maximális teljesítménykorlát), energiaszámláló nullázást, automatikus kikapcsolási időzítőt a relén és Wi-Fi jelerősséget is biztosít. MQTT-n keresztül további topicok is elérhetők valós idejű teljesítményhez, meddő teljesítményhez és visszatáplált energiához csatornánként. Ezek a funkciók egy jövőbeli sablonfrissítésben adhatók hozzá.

Hibaelhárítás

Az eszköz nem válaszol (HTTP)
  1. Ellenőrizd, hogy a Shelly EM csatlakozik a Wi-Fi-hez és érvényes IP-címe van
  2. Nyisd meg a http://{device-ip}/shelly címet böngészőben — ha "type":"SHEM" tartalmú JSON-nal válaszol, az eszköz elérhető
  3. Ellenőrizd, hogy a TapHome CCU és a Shelly EM ugyanazon a hálózaton / VLAN-on van
Nincs adat az egyik csatornán
  1. Ellenőrizd, hogy a CT csatlakozó a megfelelő 3,5 mm-es jackbe van dugva (0. vagy 1. csatorna)
  2. Győződj meg róla, hogy áram folyik a monitorozott vezetéken — a CT csatlakozónak egyetlen vezetéket kell körülvennie, nem a teljes kábelt
  3. Pollozd manuálisan az /emeter/0/ és /emeter/1/ végpontokat, és erősítsd meg a nem nulla power értékeket
MQTT üzenetek nem érkeznek
  1. Erősítsd meg, hogy az MQTT engedélyezve van a Shelly webes felületén (Internet & Security > Advanced — MQTT)
  2. Ellenőrizd, hogy a bróker címe és portja helyes mind a Shelly eszközben, mind a TapHome modul beállításaiban
  3. Ellenőrizd, hogy a deviceID egyéni változó pontosan megegyezik a Shelly Device ID-jával (pl. B929CC)
  4. Használj MQTT klienst (pl. MQTT Explorer) a shellies/# feliratkozáshoz és annak ellenőrzéséhez, hogy az eszköz publikál üzeneteket
Ütemezési konfliktus hiba

A HTTP sablon ellenőrzi a schedule mezőt a settings/relay/0-ban. Ha a Shelly eszközön belső ütemezés van engedélyezve, a sablon hibát jelez. Tiltsd le az ütemezést a Shelly webes felületén (Settings > Relay > Schedule) — használj helyette TapHome automatizálásokat.

A Gen1 Shelly eszközök csak 2 egyidejű HTTP kapcsolatot támogatnak. Ha a TapHome és egy másik rendszer (pl. Home Assistant) egyidejűleg pollozza ugyanazt az eszközt, a kommunikáció megbízhatatlanná válhat. Fontold meg az MQTT sablonra váltást több rendszeres környezetekben.

Telepítés a TapHome-ban

Előfeltételek

  • Shelly eszköz telepítve és bekapcsolva
  • Helyi Wi-Fi hálózat (2,4 GHz)
  • TapHome CCU ugyanazon a hálózaton

1. lépés — Shelly csatlakoztatása a Wi-Fi-hez

A lehetőség — Shelly alkalmazás (ajánlott):

  1. Töltse le a Shelly alkalmazást (iOS / Android)
  2. Érintse meg a +Add Device gombot, és kövesse a Bluetooth párosítási varázslót
  3. Adja meg Wi-Fi hitelesítő adatait, amikor a rendszer kéri

B lehetőség — AP mód (alkalmazás nélkül):

  1. Első bekapcsoláskor az eszköz létrehoz egy hotspotot: ShellyXXX-AABBCCDDEE
  2. Csatlakoztassa telefonját/PC-jét ehhez a hotspothoz
  3. Nyissa meg a http://192.168.33.1 címet → Internet & SecurityWi-Fi Mode - Client
  4. Adja meg az SSID-t és a jelszót → Save

A Shelly csak 2,4 GHz-es hálózatokat támogat. Az 5 GHz-es hálózatok nem jelennek meg a keresésben.

2. lépés — IP-cím megkeresése

A Wi-Fi-hez való csatlakozás után az alábbi módszerek egyikével keresse meg a hozzárendelt IP-címet:

  • Shelly alkalmazás: Eszköz részletei → Device info → IP-cím
  • Shelly webes felület: Csatlakozzon az eszköz AP-jához a Wi-Fi beállítás előtt — az IP a mentés után jelenik meg
  • Router DHCP tábla: Keressen egy hasonló hosztnevet: shelly1pm-AABBCCDDEE
  • mDNS: Pingelje a shelly<model>-<mac>.local címet (pl. shelly1pm-AABBCCDDEE.local) ugyanarról a hálózatról

Rendeljen statikus IP-t (DHCP foglalást) a Shelly eszközhöz a routerben, hogy a cím ne változzon a router újraindítása után.

3. lépés — Konfigurálás a TapHome-ban

  1. A TapHome-ban adjon hozzá egy új Packet Parser (HTTP) modult
  2. IP Address: adja meg a 2. lépésben kapott IP-t (pl. 192.168.1.50)
  3. Port: 80 (alapértelmezett, nem kell módosítani)
  4. Importálja a sablont — a TapHome rendszeresen lekérdezi a /status végpontot az eszköz állapotának olvasásához

A HTTP hitelesítés a Shelly eszközökön alapértelmezetten ki van kapcsolva. Ha engedélyezte a bejelentkezésvédelmet, a TapHome jelenleg nem támogatja a HTTP Basic Auth-ot — a TapHome integrációhoz hagyja kikapcsolva a hitelesítést.

Elérhető eszközök

Shelly EM Modul
Egyéni változók

Shelly EM

Olvasás (modul)
VAR response := SENDHTTPREQUEST("settings/relay/0");
IF response.IsSuccess
 status := response.Content;
 IF PARSEJSON(status, "schedule")
  ADDERROR("Internal scheduling on");
 END
ELSE
 ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
 RETURN(NaN);
END
response := SENDHTTPREQUEST("/emeter/0/");
IF response.IsSuccess
 emeterZero := response.Content;
ELSE
 ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
 RETURN(NaN);
END
response := SENDHTTPREQUEST("/emeter/1/");
IF response.IsSuccess
 emeterOne := response.Content;
ELSE
 ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
 RETURN(NaN);
END
Villamos mérő — 1. csatorna Villanyóra Csak olvasható

Pillanatnyi teljesítmény (kW) és kumulatív energia (kWh) a CT csatlakozóról az 1. csatornán

numeric Egység: kW / kWh json_path
Szerviz attribútumok
Feszültség
Visszatáplált energiaAz 1. csatornán a hálózatba visszatáplált összes energia — napelemes és kétirányú mérési rendszerekhez
Meddő teljesítmény

Villamos mérő — 1. csatorna

Összes fogyasztás olvasása
RETURN(PARSEJSON(emeterZero, "total")/1000);
Igény olvasása
RETURN(PARSEJSON(emeterZero, "power")/1000);
Szerviz attribútumok
Voltage [V]
RETURN(PARSEJSON(emeterZero, "voltage"));
backward [Wh]
RETURN(PARSEJSON(emeterZero, "total_returned"));
reactive [W]
RETURN(PARSEJSON(emeterZero, "reactive"));
Villamos mérő — 2. csatorna Villanyóra Csak olvasható

Pillanatnyi teljesítmény (kW) és kumulatív energia (kWh) a CT csatlakozóról a 2. csatornán

numeric Egység: kW / kWh json_path
Szerviz attribútumok
Feszültség
Visszatáplált energiaA 2. csatornán a hálózatba visszatáplált összes energia — napelemes és kétirányú mérési rendszerekhez
Meddő teljesítmény

Villamos mérő — 2. csatorna

Összes fogyasztás olvasása
RETURN(PARSEJSON(emeterOne, "total")/1000);
Igény olvasása
RETURN(PARSEJSON(emeterOne, "power")/1000);
Szerviz attribútumok
Voltage [V]
RETURN(PARSEJSON(emeterOne, "voltage"));
backward [Wh]
RETURN(PARSEJSON(emeterOne, "total_returned"));
reactive [W]
RETURN(PARSEJSON(emeterOne, "reactive"));
Kontaktor kapcsoló Kapcsoló

2A relé kimenet kontaktor vezérléshez — nem alkalmas közvetlen terhelés kapcsolásra

boolean
Értékek / Állapotok: ON · OFF

Kontaktor kapcsoló

Kapcsoló állapot olvasása
RETURN(PARSEJSON(status, "ison"));
Kapcsoló állapot írása
# Simple HTTP Request:
# VAR response := SENDHTTPREQUEST("/example/set/value=" + St);
VAR response := SENDHTTPREQUEST("/relay/0?turn="+ if(St = 1, "on","off"));
IF response.IsSuccess = false
 ADDERROR(response.StatusCode);
END
# Set Http request method, body and headers
# VAR response := SENDHTTPREQUEST("/example/setValue", "GET", "value=" + St, "header1:value1", "header2:value2", ...);\r
# Or VAR request := HTTPREQUEST("/example/setValue");
# request.Method := "PUT";
# VAR response := SENDHTTPREQUEST(request);
#r
#
# Send TCP, UDP data:
# VAR data1 := "{\"name\":\"John\", \"age\":" + St + "}";
# SENDDATA(data1);
# VAR data2 := TOBYTES("{\"name\":\"John\", \"age\":" + St + "}", "iso-8859-1");
# SENDDATA(data2);
# You can process received TCP or UDP data in the Listener script
#
#
# Upload data to FTP:
# FTPUPLOAD("filePath", "somedata=" + St, "write"); # use "append" mode to append data to existing file
Kapcsolat: Packet Parser → HTTP
Lehetséges fejlesztések (9)
  • Power Factor — Power factor (0.00–1.00) per channel, available in /emeter/{i} and /status response. Not available via MQTT.
  • Measurement Validity — Boolean flag indicating if the measurement is valid. Available per channel in /emeter/{i}.
  • Per-Channel Configuration — CT ratio (ctrafos: 50/120), max_power limit, appliance_type. Could be exposed as service actions.
  • Reset Energy Counters — Resets accumulated energy data for both channels. Available via HTTP GET and MQTT command topic.
  • Auto-off Timer — Auto-off timer in seconds on relay endpoint. Could be added as service action parameter.
  • WiFi Signal Strength — WiFi RSSI in dBm, available in /status response
  • MQTT Real-time Power — Instantaneous power via MQTT (W). MQTT template uses energy+total topics instead.
  • MQTT Reactive Power — Reactive power via MQTT (VAR). HTTP template has it as service attribute, MQTT template does not.
  • MQTT Energy Returned — Energy returned to grid via MQTT (Wh). HTTP template has it as service attribute (backward), MQTT template does not.

Források