TapHome

Shelly Plug S

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

Shelly Plug S je kompaktná Wi-Fi smart zástrčka so zabudovaným meraním výkonu. Zasúva sa priamo do zásuvky a zvláda záťaž až 10 A (2300 W pri 230 V). TapHome komunikuje so zariadením cez HTTP v lokálnej sieti — cloudové pripojenie nie je potrebné.

Šablóna poskytuje ovládanie relé (zapnúť/vypnúť), merač energie s okamžitou spotrebou a kumulatívnym odberom, a monitorovanie vnútornej teploty.

Funkcie zariadenia

Ovládanie relé

Šablóna sprístupňuje relé zástrčky ako spínač. Stav relé sa číta z /settings/relay/0 (pole ison) a ovláda sa cez endpoint /relay/0 s parametrom turn=on alebo turn=off. Interval polling pre spínač je 1 sekunda.

Šablóna číta stav spínača z /settings/relay/0 (trvalá konfigurácia), nie z /status (aktuálny stav). Za normálnych podmienok oba vrátia rovnakú hodnotu, no /settings môže mať mierne oneskorené dáta po rýchlom prepínaní.

Meranie výkonu

Zabudovaný merač energie číta dve hodnoty z endpointu /meter/0:

  • Okamžitý výkon — pole power v jednotkách watt, šablóna konvertuje na kW
  • Celková spotreba — pole total vo watt-minútach, šablóna konvertuje na kWh

Merač je len na čítanie a aktualizuje sa každých 15 sekúnd (konfigurovateľný interval polling).

Monitorovanie teploty

Zariadenie spínač obsahuje servisný atribút, ktorý číta vnútornú teplotu zástrčky z endpointu /status. Umožňuje sledovať teplotu zariadenia priamo v TapHome bez dodatočnej konfigurácie.

Neimplementované funkcie

Shelly Plug S API ponúka ďalšie funkcie, ktoré aktuálna šablóna neobsahuje:

  • Príznak prehriatia — automatické vypnutie relé pri ~95 °C (overtemperature v /status)
  • Ovládanie LED — zapnutie/vypnutie stavovej LED cez /settings
  • Prah ochrany pred preťažením — konfigurovateľný limit maximálneho výkonu (predvolene 2300 W)
  • Časovač automatického vypnutia — automatické vypnutie relé po nastavenom čase
  • Sila Wi-Fi signálu — hodnota RSSI v dBm z /status
  • Reštart — reštart zariadenia cez endpoint /reboot

Tieto funkcie možno pridať v budúcej aktualizácii šablóny ako servisné atribúty alebo servisné akcie.

Riešenie problémov

Zariadenie neodpovedá
  1. Overte, že Shelly je pripojený k Wi-Fi a má platnú IP adresu
  2. Otvorte http://{device-ip}/shelly v prehliadači — ak odpovie, zariadenie je dostupné
  3. Skontrolujte, že TapHome CCU a Shelly sú v rovnakej sieti / VLAN
Meranie výkonu zobrazuje nulu
  1. Potvrďte, že spotrebič zapojený do Shelly Plug S je zapnutý
  2. Skontrolujte, či je relé zopnuté — merač číta len pri prietoku prúdu
  3. Ručne dotazujte /meter/0 a overte, že pole power vracia nenulovú hodnotu
Vypnutie pri prehriatí

Shelly Plug S má internú tepelnú ochranu. Ak teplota zariadenia presiahne ~95 °C, relé sa automaticky vypne. Zabezpečte dostatočnú ventiláciu okolo zástrčky, najmä pri spínaní spotrebičov s vysokým príkonom.

Zariadenia Shelly Gen1 podporujú len 2 súbežné HTTP pripojenia. Ak TapHome a iný systém (napr. Home Assistant) dotazujú rovnaké zariadenie súčasne, komunikácia môže byť nespoľahlivá. Používajte interval polling 10–30 sekúnd, aby ste znížili konkurenciu pripojení.

Ako nainštalovať v TapHome

Predpoklady

  • Zariadenie Shelly nainštalované a zapnuté
  • Lokálna Wi-Fi sieť (2,4 GHz)
  • TapHome CCU v rovnakej sieti

Krok 1 — Pripojte Shelly k Wi-Fi

Možnosť A — Aplikácia Shelly (odporúčané):

  1. Stiahnite si aplikáciu Shelly (iOS / Android)
  2. Klepnite na +Add Device a postupujte podľa sprievodcu Bluetooth párovaním
  3. Po výzve zadajte svoje Wi-Fi prihlasovacie údaje

Možnosť B — AP režim (bez aplikácie):

  1. Pri prvom zapnutí zariadenie vytvorí hotspot: ShellyXXX-AABBCCDDEE
  2. Pripojte telefón/PC k tomuto hotspotu
  3. Otvorte http://192.168.33.1Internet & SecurityWi-Fi Mode - Client
  4. Zadajte SSID a heslo → Save

Shelly podporuje iba 2,4 GHz siete. 5 GHz siete sa pri skenovaní nezobrazia.

Krok 2 — Zistite IP adresu

Po pripojení k Wi-Fi zistite priradenú IP adresu jedným z nasledujúcich spôsobov:

  • Aplikácia Shelly: Detail zariadenia → Device info → IP adresa
  • Webové rozhranie Shelly: Pripojte sa k AP zariadenia pred nastavením Wi-Fi — IP sa zobrazí po uložení
  • DHCP tabuľka routera: Hľadajte hostname ako shelly1pm-AABBCCDDEE
  • mDNS: Pingnite shelly<model>-<mac>.local (napr. shelly1pm-AABBCCDDEE.local) z rovnakej siete

Priraďte zariadeniu Shelly statickú IP (DHCP rezerváciu) vo vašom routeri, aby sa adresa nezmenila po reštarte routera.

Krok 3 — Konfigurácia v TapHome

  1. V TapHome pridajte nový modul Packet Parser (HTTP)
  2. IP Address: zadajte IP z kroku 2 (napr. 192.168.1.50)
  3. Port: 80 (predvolený, nie je potrebné meniť)
  4. Importujte šablónu — TapHome bude pravidelne čítať /status pre zistenie stavu zariadenia

HTTP autentifikácia je na zariadeniach Shelly štandardne vypnutá. Ak ste povolili ochranu prihlásením, TapHome momentálne nepodporuje HTTP Basic Auth — pre integráciu s TapHome ponechajte autentifikáciu vypnutú.

Dostupné zariadenia

Shelly Plug S Modul
Elektromer Elektromer Len na čítanie

Meranie spotreby energie — okamžitý výkon (kW) a celková spotreba (kWh)

numeric Jednotka: kW / kWh

Elektromer

Čítanie celkovej spotreby
# 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");
Čítanie odberu
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");
Spínač Prepínač
boolean
Servisné atribúty
Teplota

Spínač

Čítanie stavu prepínača
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");
Zápis stavu prepínača
# 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
Servisné atribúty
Temperature
VAR response := SENDHTTPREQUEST("/status");
IF response.IsSuccess
 VAR content := response.Content;
 VAR responseHeaders := response.Headers;
 RETURN(PARSEJSON(content, "temperature"));
END;
Pripojenie: Packet Parser → HTTP
Možné vylepšenia (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

Zdroje