TapHome

Shelly Plug S

Packet Parser → MQTT
Beküldő
Utoljára frissítve: 06. 2026
Shelly Plug S

A Shelly Plug S egy kompakt Wi-Fi okos konnektor beépített energiaméréssel, 12A / 2500W névleges terheléssel. A TapHome MQTT-n keresztül kommunikál az eszközzel — a konnektor csatlakozik egy brokerhez, és közzéteszi a relé állapotát, az energiafogyasztást, az energiaszámlálót és a belső hőmérsékleti adatokat.

A sablon két eszközt tartalmaz: egy Villamos mérőt az energiafigyeléshez és egy Kapcsolót a relévezérléshez. Egy modulszintű szervizattribútum jelenti a belső eszközhőmérsékletet.

Konfiguráció

Device ID

Minden Shelly Plug S egyedi MQTT Device ID-val rendelkezik shellyplug-s-<MAC6> formátumban, ahol a <MAC6> a MAC-cím utolsó 6 karaktere kisbetűs hexadecimális formátumban (pl. shellyplug-s-112233).

A Device ID megtalálható:

  • A Shelly webes felületen: SettingsDevice InfoDevice ID (az első karakterláncot használd, ne a zárójelben lévőt)
  • API-n keresztül: GET http://<device-ip>/settingsmqtt.id mező
MQTT engedélyezése

Az MQTT engedélyezése a Shelly Plug S-en:

  1. Nyisd meg az eszköz webes felületét a böngészőben (navigálj az eszköz IP-címére)
  2. Menj az Internet and SecurityAdvanced - Developer Settings menüpontra
  3. Jelöld be az „Enable action execution via MQTT" opciót
  4. A „Server" mezőbe írd be: {MQTT broker IP}:{port} (alapértelmezett port: 1883)
  5. Nyomd meg a SAVE gombot
Sablon beállítása

A sablon TapHome-ba történő importálása után:

  1. Nyisd meg a Shelly Plug S MQTT modult
  2. Állítsd be az MQTT Broker IP-t és a Port-ot (alapértelmezett 1883)
  3. Állítsd be a deviceID változót a Shelly Plug S Device ID-jára (pl. 112233 — csak a MAC-cím utolsó 6 hexadecimális karaktere)

A modul feliratkozik a shellies/# topicra, és a listener szkriptek a konfigurált Device ID prefix (shellyplug-s-{deviceID}) alapján szűrik az üzeneteket.

Eszközképességek

Energiafigyelés

A Villamos mérő eszköz két értéket olvas a konnektorból:

  • Összfogyasztás — kumulatív energia a relay/0/energy topicból. Az eszköz wattperc-ben jelenti az energiát; a sablon kWh-ra konvertálja 60000-rel való osztással.
  • Pillanatnyi teljesítmény — aktuális teljesítményfelvétel a relay/0/power topicból. Az eszköz wattban jelenti a teljesítményt; a sablon kW-ra konvertálja 1000-rel való osztással.

Mindkét érték az MQTT jelentési intervallum szerint frissül (alapértelmezett 30 másodperc, a Shelly webes felületen konfigurálható a mqtt_update_period segítségével).

Az energiaszámláló az eszköz újraindításakor nullázódik. Tartós energiakövetéshez használd a TapHome beépített energianaplózását, amely az eszközszámlálótól függetlenül tárolja a kumulatív értékeket.

Relévezérlés

A Kapcsoló eszköz vezérli a konnektor reléjét:

  • Állapot olvasása — figyeli a shellies/shellyplug-s-{deviceID}/relay/0 topicot és az on → 1, off → 0 leképezést alkalmazza
  • Állapot írása — közzétesz a shellies/shellyplug-s-{deviceID}/relay/0/command topicra on vagy off értékkel

A relé legfeljebb 2500W / 12A terhelést támogat.

Hőmérsékletfigyelés

Egy modulszintű szervizattribútum jelenti a belső eszközhőmérsékletet °C-ban, a shellies/shellyplug-s-{deviceID}/temperature topicból olvasva. Ez a konnektor elektronikájának hőmérséklete, nem a szobahőmérséklet.

További képességek

A Shelly Plug S az MQTT LWT topicon keresztül online/offline állapotot is közzétesz, túlmelegedési figyelmeztetéseket (ha az eszköz meghaladja a biztonságos üzemi hőmérsékletet), olvasható hőmérsékletállapot-besorolást (Normal/High/Very High) és gombnyomás-eseményeket (rövid, hosszú, dupla nyomás). Ezek a képességek egy jövőbeli sablonfrissítésben hozzáadhatók.

Hibaelhárítás

Nincs adat a konnektorból
  1. Ellenőrizd, hogy a Shelly Plug S csatlakozik a Wi-Fi-hez és az MQTT engedélyezve van az eszközbeállításokban (Internet and SecurityAdvanced - Developer Settings)
  2. Ellenőrizd, hogy a deviceID változó pontosan megegyezik a Device ID-val (pl. 112233)
  3. Használj MQTT klienst (pl. MQTT Explorer) a shellies/# feliratkozáshoz és ellenőrizd, hogy a konnektor küld-e üzeneteket
A teljesítményértékek nullát mutatnak
  1. Győződj meg róla, hogy a terhelés csatlakoztatva van és a relé be van kapcsolva
  2. Ellenőrizd a relay/0/power topicot egy MQTT klienssel — az értéknek nullánál nagyobbnak kell lennie, ha a terhelés áramot vesz fel
  3. Ellenőrizd, hogy a Villamos mérő eszköz mutat-e értékeket a TapHome-ban — összfogyasztás kWh-ban, teljesítmény kW-ban
A relé nem reagál a parancsokra
  1. Ellenőrizd, hogy az MQTT engedélyezve van és a broker címe helyes a Shelly webes felületen
  2. Ellenőrizd, hogy a TapHome eléri-e az MQTT brokert (helyes IP és port a modulbeállításokban)
  3. Teszteld on vagy off közzétételével a shellies/shellyplug-s-{deviceID}/relay/0/command topicra egy MQTT klienssel

A Shelly Gen1 eszközök nem támogatják az MQTT-t TLS-en keresztül. A konnektor és az MQTT broker közötti kommunikáció titkosítatlan (plain MQTT, 1883-as port). Győződj meg róla, hogy az MQTT broker megbízható helyi hálózaton üzemel.

Telepítés a TapHome-ban

Előfeltételek

  • Shelly eszköz csatlakoztatva a Wi-Fi-hez (ha még nem, lásd a HTTP kapcsolódási útmutatót)
  • MQTT broker fut a helyi hálózaton (pl. Mosquitto, Home Assistant vagy a TapHome beépített brokere)
  • TapHome CCU ugyanazon a hálózaton, mint a broker

A Gen1 eszközökön az MQTT engedélyezése letiltja a Shelly Cloudot. A kettő nem futhat egyszerre. A Gen2/Plus eszközökön ez a korlátozás nem érvényes.

1. lépés — MQTT engedélyezése a Shelly eszközön

Gen1 eszközök (Shelly 1, 1PM, 2.5, EM, 3EM, Plug S, RGBW2, Dimmer, TRV…)

  1. Nyissa meg a Shelly webes felületet: http://<device-ip>/
  2. Navigáljon az Internet & SecurityAdvanced — MQTT menüpontra
  3. Engedélyezze az MQTT-t
  4. Állítsa be az MQTT Server-t: <broker-ip>:<port> (pl. 192.168.1.10:1883)
  5. Opcionálisan állítsa be az MQTT User és MQTT Password mezőket, ha a broker hitelesítést igényel
  6. Kattintson a Save gombra — az eszköz újraindul és csatlakozik a brokerhez

Gen2 / Plus eszközök (Shelly Plus 1, Plus 1PM, Plus 2PM, Plus Plug S, Plus H&T, Pro 3EM…)

  1. Nyissa meg a Shelly webes felületet: http://<device-ip>/
  2. Navigáljon a SettingsMQTT menüpontra
  3. Engedélyezze az MQTT-t
  4. Állítsa be a Server-t: <broker-ip>:<port> (pl. 192.168.1.10:1883)
  5. A Client ID előre ki van töltve az eszköz azonosítójával (pl. shellyplus1pm-AABBCCDDEE) — hagyja így, hacsak nincs konkrét oka a változtatásra
  6. Kattintson a Save gombra és indítsa újra az eszközt

Az MQTT működésének ellenőrzéséhez használjon egy MQTT klienst (pl. MQTT Explorer), és iratkozzon fel a shellies/# (Gen1) vagy <device-id>/# (Gen2) topikra. Látnia kell az eszköz állapotüzeneteit.

2. lépés — Device ID / MQTT Client ID megkeresése

Egyes sablonok Device ID vagy MQTT Client ID paramétert igényelnek. Ez az egyedi azonosító, amelyet az MQTT topikokban használnak.

  • Gen1: a címkén MAC-címként található (pl. AABBCCDDEE). Device ID = shelly<model>-<mac>, pl. shelly1pm-AABBCCDDEE
  • Gen2/Plus: a Shelly webes felületén a SettingsDevice InfoDevice ID alatt található, vagy az eszköz címkéjén

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

  1. A TapHome-ban adjon hozzá egy új Packet Parser (MQTT) modult
  2. IP Address: adja meg az MQTT broker IP-címét (pl. 192.168.1.10)
  3. Port: 1883 (alapértelmezett; TLS esetén használjon 8883-at)
  4. Device ID / MQTT Client ID: adja meg a 2. lépésben kapott értéket (ha a sablon megköveteli)
  5. Importálja a sablont — a TapHome automatikusan feliratkozik az eszköz topikjaira

Elérhető eszközök

Shelly Plug S MQTT Modul
Szerviz attribútumok
HőmérsékletBelső eszközhőmérséklet — nem a szobahőmérséklet
Egyéni változók
deviceID (string)A Shelly Plug S MQTT Device ID-ja — a MAC-cím utolsó 6 karaktere kisbetűs hexadecimális formátumban (a Shelly webes felületen található → Settings → Device Info)

Shelly plug S MQTT

Figyelő
VAR whatT := "shellies/shellyplug-s-"+deviceID+"/temperature";
IF (whatT = RECEIVEDMSG.TOPIC)
 temperatureC := TOSTRING(RECEIVEDMSG.PAYLOAD);
END
Szerviz attribútumok
Temperature [°C ]
temperatureC
Villamos mérő Villanyóra Csak olvasható

Energiafogyasztás mérése — pillanatnyi teljesítmény (kW) és kumulatív energia (kWh)

numeric Egység: kWh (total), kW (demand) energy: Watt-minutes /60000 = kWh; demand: Watts /1000 = kW

Villamos mérő

Összes fogyasztás olvasása
# 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");
Igény olvasása
# 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");
Figyelő
VAR whatTo := "shellies/shellyplug-s-"+deviceID+"/relay/0/energy";
IF (whatTo = RECEIVEDMSG.TOPIC)
 To := TODOUBLE(TOSTRING(RECEIVEDMSG.PAYLOAD))/60000;
END
VAR whatEd := "shellies/shellyplug-s-"+deviceID+"/relay/0/power";
IF (whatEd = RECEIVEDMSG.TOPIC)
 Ed := TODOUBLE(TOSTRING(RECEIVEDMSG.PAYLOAD))/1000;
END
Kapcsoló Kapcsoló
string on→1, off→0 (read); 1→on, 0→off (write)
Értékek / Állapotok: ON · OFF

Kapcsoló

Kapcsoló állapot olvasása
# 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ó állapot írása
# Simple HTTP Request:
MQTTPUBLISH("shellies/shellyplug-s-"+deviceID+ "/relay/0/command",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






#MQTTPUBLISH(topic + "/relay/0/command",if());
Figyelő
VAR whatSt := "shellies/shellyplug-s-"+deviceID+"/relay/0";
IF (whatSt = RECEIVEDMSG.TOPIC)
 IF (TOSTRING(RECEIVEDMSG.PAYLOAD) = "on")
  St := 1;
 ELSE
  St := 0;
 END
END
Kapcsolat: Packet Parser → MQTT
Lehetséges fejlesztések (6)
  • Connection Status — LWT topic — true on connect, false on disconnect. Could detect offline device.
  • Overtemperature Alert — 1 = overheated, 0 = normal. Could trigger safety alarm when device exceeds safe operating temperature.
  • Temperature Status — String: Normal, High, or Very High. Human-readable temperature classification.
  • Button Input State — 0 or 1 — physical button state on the device.
  • Button Input Event — JSON payload with event type (S=short, L=long, SS=double, SSS=triple) and event counter.
  • Overpower State — Relay topic can report 'overpower' payload when load exceeds rating. Not parsed in listener script.

Források

Talált problémát ezzel az eszközsablonnal?

Írja meg, mi nem működik, mi hiányzik, vagy hogyan kellene a sablonnak viselkednie. Visszajelzése segít, hogy a katalógus pontos maradjon.

TapHome által hitelesítve

Használni szeretnéd ezt a TapHome Core-odban?

Nyisd meg ezt a sablont az ügyfélportálon, hogy alkalmazd az otthonaid egyikére, vagy készíts egy módosítást és küldd vissza a katalógusba.

Megnyitás a portálon