TapHome

Shelly Plug S

Packet Parser → HTTP
Submitted by
Last updated: 03. 2026
Shelly Plug S

A Shelly Plug S egy kompakt Wi-Fi okoskonnektor beépített teljesítménymérővel. Közvetlenül a falba csatlakoztatható, és 10 A-ig (2300 W 230 V-on) képes terhelést kapcsolni. A TapHome HTTP-n keresztül kommunikál az eszközzel a helyi hálózaton — felhőkapcsolat nem szükséges.

A sablon tartalmaz be/ki relévezérlést, energiamérőt valós idejű fogyasztással és összesített energiafelhasználással, valamint belső hőmérséklet-figyelést.

Eszközfunkciók

Relévezetérlés

A sablon a konnektor reléjét kapcsolóként teszi elérhetővé. A relé állapota a /settings/relay/0 végpontból olvasható (ison mező), és a /relay/0 végponton keresztül vezérelhető turn=on vagy turn=off paraméterrel. A kapcsoló lekérdezési intervalluma 1 másodperc.

A sablon a kapcsoló állapotát a /settings/relay/0 (tartós konfiguráció) végpontból olvassa, nem a /status (élő állapot) végpontból. Normál körülmények között mindkettő ugyanazt az értéket adja vissza, de /settings gyors kapcsolgatás után enyhén elavult adatokat tartalmazhat.

Teljesítménymérés

A beépített energiamérő két értéket olvas a /meter/0 végpontról:

  • Valós idejű teljesítménypower mező wattban megadva, a sablon kW-ra konvertálja
  • Összesített fogyasztástotal mező watt-percben megadva, a sablon kWh-ra konvertálja

A mérő csak olvasható, és 15 másodpercenként frissül (konfigurálható lekérdezési intervallum).

Hőmérséklet-figyelés

A kapcsolóeszköz tartalmaz egy szolgáltatásattribútumot, amely a konnektor belső hőmérsékletét olvassa a /status végpontról. Ez lehetővé teszi az eszköz hőmérsékletének közvetlen figyelését a TapHome-ban, külön konfiguráció nélkül.

Nem implementált funkciók

A Shelly Plug S API további funkciókat kínál, amelyek nem szerepelnek a jelenlegi sablonban:

  • Túlmelegedési jelzés — a relé automatikus lekapcsolása ~95 °C-on (overtemperature a /status végponton)
  • LED-vezérlés — az állapot LED be-/kikapcsolása a /settings végponton keresztül
  • Túlterhelésvédelmi küszöb — konfigurálható maximális teljesítménykorlát (alapértelmezett: 2300 W)
  • Automatikus kikapcsolási időzítő — a relé automatikus kikapcsolása adott idő elteltével
  • Wi-Fi jelerősség — RSSI érték dBm-ben a /status végpontból
  • Újraindítás — az eszköz újraindítása a /reboot végponton keresztül

Ezek a funkciók egy jövőbeli sablonfrissítésben szolgáltatásattribútumként vagy szolgáltatásműveletként adhatók hozzá.

Hibaelhárítás

Az eszköz nem válaszol
  1. Ellenőrizze, hogy a Shelly csatlakozik-e a Wi-Fi-hálózathoz, és érvényes IP-címmel rendelkezik-e
  2. Nyissa meg a http://{device-ip}/shelly címet a böngészőben — ha válaszol, az eszköz elérhető
  3. Ellenőrizze, hogy a TapHome CCU és a Shelly ugyanazon a hálózaton / VLAN-on vannak-e
A teljesítménymérés nullát mutat
  1. Győződjön meg arról, hogy a Shelly Plug S-be csatlakoztatott készülék be van kapcsolva
  2. Ellenőrizze, hogy a relé be van-e kapcsolva — a mérő csak áramfolyás esetén mér
  3. Kérdezze le manuálisan a /meter/0 végpontot, és ellenőrizze, hogy a power mező nullától eltérő értéket ad-e vissza
Túlmelegedés miatti lekapcsolás

A Shelly Plug S belső hővédelemmel rendelkezik. Ha az eszköz hőmérséklete meghaladja a ~95 °C-ot, a relé automatikusan lekapcsol. Gondoskodjon megfelelő szellőzésről a konnektor körül, különösen nagy teljesítményű készülékek kapcsolásakor.

A Shelly Gen1 eszközök csak 2 egyidejű HTTP-kapcsolatot támogatnak. Ha a TapHome és egy másik rendszer (pl. Home Assistant) egyszerre kérdezi le ugyanazt az eszközt, a kommunikáció megbízhatatlanná válhat. Használjon 10–30 másodperces lekérdezési intervallumot a kapcsolati versengés csökkentéséhez.

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 Plug S Modul
Villamos mérő Villanyóra Csak olvasható

Energiafogyasztás mérés — pillanatnyi teljesítmény (kW) és összesített energia (kWh)

numeric Egység: kW / kWh

Villamos mérő

Összes fogyasztás olvasása
# Simple HTTP Request:
VAR response := SENDHTTPREQUEST("/meter/0");
IF response.IsSuccess
 VAR content := response.Content;
 VAR responseHeaders := response.Headers;
 return(PARSEJSON(content,"total")/60000);
ELSE
 ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
 RETURN(NaN);
END
#
# Set Http request method, body and headers
# VAR response := SENDHTTPREQUEST("/example/getValue", "GET", "some data", "header1:value1", "header2:value2", ...);
# OR
# VAR request := HTTPREQUEST("/example/getValue", "POST", "some data");
# request.headers := { "header1:value1", "header2:value2", ...};
# request.method := "GET";
# request.data := null;
# VAR response := SENDHTTPREQUEST(request);
#
#
# Send TCP, UDP data:
# VAR data1 := BYTECOLLECTION("0a bb ea df 01");
# SENDDATA(data1);
# VAR data2 := "{\"name\":\"John\", \"age\":32}";
# SENDDATA(data2);
# VAR data3 := TOBYTES("{\"name\":\"John\", \"age\":32}", "iso-8859-1");
# SENDDATA(data3);
# Process received TCP or UDP data and set device values in the Listener script
#
#
# Download data from FTP:
# FTPDOWNLOAD("filePath");
Igény olvasása
VAR response := SENDHTTPREQUEST("/meter/0");
IF response.IsSuccess
 VAR content := response.Content;
 VAR responseHeaders := response.Headers;
 RETURN(PARSEJSON(content, "power")/1000);
END;


# Simple HTTP Request:
# VAR response := SENDHTTPREQUEST("/example/getValue");
# IF response.IsSuccess
#  VAR content := response.Content;
#  VAR responseHeaders := response.Headers;
#  RETURN(PARSEXML(content, "//element1/value1"));
# ELSE
#  ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
#  RETURN(NaN);
# END
#
# Set Http request method, body and headers
# VAR response := SENDHTTPREQUEST("/example/getValue", "GET", "some data", "header1:value1", "header2:value2", ...);
# OR
# VAR request := HTTPREQUEST("/example/getValue", "POST", "some data");
# request.headers := { "header1:value1", "header2:value2", ...};
# request.method := "GET";
# request.data := null;
# VAR response := SENDHTTPREQUEST(request);
#
#
# Send TCP, UDP data:
# VAR data1 := BYTECOLLECTION("0a bb ea df 01");
# SENDDATA(data1);
# VAR data2 := "{\"name\":\"John\", \"age\":32}";
# SENDDATA(data2);
# VAR data3 := TOBYTES("{\"name\":\"John\", \"age\":32}", "iso-8859-1");
# SENDDATA(data3);
# Process received TCP or UDP data and set device values in the Listener script
#
#
# Download data from FTP:
# FTPDOWNLOAD("filePath");
Kapcsoló Kapcsoló
boolean
Szerviz attribútumok
Hőmérséklet

Kapcsoló

Kapcsoló állapot olvasása
VAR response := SENDHTTPREQUEST("/settings/relay/0");
IF response.IsSuccess
 VAR content := response.Content;
 VAR responseHeaders := response.Headers;
 return(PARSEJSON(content,"ison"));
ELSE
 ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
 RETURN(NaN);
END
#
# Set Http request method, body and headers
# VAR response := SENDHTTPREQUEST("/example/getValue", "GET", "some data", "header1:value1", "header2:value2", ...);
# OR
# VAR request := HTTPREQUEST("/example/getValue", "POST", "some data");
# request.headers := { "header1:value1", "header2:value2", ...};
# request.method := "GET";
# request.data := null;
# VAR response := SENDHTTPREQUEST(request);
#
#
# Send TCP, UDP data:
# VAR data1 := BYTECOLLECTION("0a bb ea df 01");
# SENDDATA(data1);
# VAR data2 := "{\"name\":\"John\", \"age\":32}";
# SENDDATA(data2);
# VAR data3 := TOBYTES("{\"name\":\"John\", \"age\":32}", "iso-8859-1");
# SENDDATA(data3);
# Process received TCP or UDP data and set device values in the Listener script
#
#
# Download data from FTP:
# FTPDOWNLOAD("filePath");
Kapcsoló állapot írása
# Simple HTTP Request:
#VAR response := SENDHTTPREQUEST("/relay/0?turn=toggle");
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
Szerviz attribútumok
Temperature
VAR response := SENDHTTPREQUEST("/status");
IF response.IsSuccess
 VAR content := response.Content;
 VAR responseHeaders := response.Headers;
 RETURN(PARSEJSON(content, "temperature"));
END;
Kapcsolat: Packet Parser → HTTP
Lehetséges fejlesztések (7)
  • Live relay state — Template reads from /settings/relay/0 instead of /status — /status has real-time state
  • Overtemperature flag — Boolean flag in /status, triggers automatic relay shutdown at ~95°C
  • LED control — Enable/disable status LED via settings endpoint
  • Overpower protection threshold — Configurable maximum power limit (default 2300W), could be a service action
  • Auto-off timer — Auto-off timer in seconds, could be added as switch parameter
  • WiFi signal strength — WiFi RSSI in dBm, available in /status response
  • Reboot — Device reboot endpoint, could be added as service action

Források