TapHome

Shelly Plug S

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

Shelly Plug S je kompaktní Wi-Fi chytrá zásuvka se zabudovaným měřením výkonu. Zasune se přímo do zásuvky a zvládá zátěž až 10 A (2300 W při 230 V). TapHome komunikuje se zařízením přes HTTP v lokální síti — cloudové připojení není potřeba.

Šablona nabízí ovládání relé (zapnout/vypnout), měřič energie s okamžitou spotřebou a kumulativním odběrem, a monitorování vnitřní teploty.

Funkce zařízení

Ovládání relé

Šablona zpřístupňuje relé zásuvky jako spínač. Stav relé se čte z /settings/relay/0 (pole ison) a ovládá se přes endpoint /relay/0 s parametrem turn=on nebo turn=off. Interval pollingu pro spínač je 1 sekunda.

Šablona čte stav spínače z /settings/relay/0 (trvalá konfigurace), nikoli z /status (aktuální stav). Za normálních podmínek obě vrátí stejnou hodnotu, ale /settings může mít mírně zastaralá data po rychlém přepínání.

Měření výkonu

Zabudovaný měřič energie čte dvě hodnoty z endpointu /meter/0:

  • Okamžitý výkon — pole power v wattech, šablona převádí na kW
  • Celková spotřeba — pole total ve watt-minutách, šablona převádí na kWh

Měřič je jen pro čtení a aktualizuje se každých 15 sekund (konfigurovatelný interval pollingu).

Monitorování teploty

Zařízení spínač obsahuje servisní atribut, který čte vnitřní teplotu zásuvky z endpointu /status. Umožňuje sledovat teplotu zařízení přímo v TapHome bez další konfigurace.

Neimplementované funkce

Shelly Plug S API nabízí další funkce, které aktuální šablona neobsahuje:

  • Příznak přehřátí — automatické vypnutí relé při ~95 °C (overtemperature v /status)
  • Ovládání LED — zapnutí/vypnutí stavové LED přes /settings
  • Práh ochrany před přetížením — konfigurovatelný limit maximálního výkonu (výchozí 2300 W)
  • Časovač automatického vypnutí — automatické vypnutí relé po nastaveném čase
  • Síla Wi-Fi signálu — hodnota RSSI v dBm z /status
  • Restart — restart zařízení přes endpoint /reboot

Tyto funkce lze přidat v budoucí aktualizaci šablony jako servisní atributy nebo servisní akce.

Řešení problémů

Zařízení neodpovídá
  1. Ověřte, že Shelly je připojen k Wi-Fi a má platnou IP adresu
  2. Otevřete http://{device-ip}/shelly v prohlížeči — pokud odpoví, zařízení je dostupné
  3. Zkontrolujte, že TapHome CCU a Shelly jsou ve stejné síti / VLAN
Měření výkonu zobrazuje nulu
  1. Potvrďte, že spotřebič zapojený do Shelly Plug S je zapnutý
  2. Zkontrolujte, zda je relé sepnuto — měřič čte pouze při průtoku proudu
  3. Ručně dotazujte /meter/0 a ověřte, že pole power vrací nenulovou hodnotu
Vypnutí při přehřátí

Shelly Plug S má interní tepelnou ochranu. Pokud teplota zařízení překročí ~95 °C, relé se automaticky vypne. Zajistěte dostatečné větrání kolem zásuvky, zejména při spínání spotřebičů s vysokým příkonem.

Zařízení Shelly Gen1 podporují pouze 2 souběžná HTTP připojení. Pokud TapHome a jiný systém (např. Home Assistant) dotazují stejné zařízení současně, komunikace může být nespolehlivá. Používejte interval pollingu 10–30 sekund, abyste snížili konkurenci připojení.

Jak nainstalovat v TapHome

Předpoklady

  • Zařízení Shelly nainstalované a zapnuté
  • Lokální Wi-Fi síť (2,4 GHz)
  • TapHome CCU ve stejné síti

Krok 1 — Připojte Shelly k Wi-Fi

Možnost A — Aplikace Shelly (doporučeno):

  1. Stáhněte si aplikaci Shelly (iOS / Android)
  2. Klepněte na +Add Device a postupujte podle průvodce Bluetooth párováním
  3. Po výzvě zadejte své Wi-Fi přihlašovací údaje

Možnost B — AP režim (bez aplikace):

  1. Při prvním zapnutí zařízení vytvoří hotspot: ShellyXXX-AABBCCDDEE
  2. Připojte telefon/PC k tomuto hotspotu
  3. Otevřete http://192.168.33.1Internet & SecurityWi-Fi Mode - Client
  4. Zadejte SSID a heslo → Save

Shelly podporuje pouze 2,4 GHz sítě. 5 GHz sítě se při skenování nezobrazí.

Krok 2 — Zjistěte IP adresu

Po připojení k Wi-Fi zjistěte přiřazenou IP adresu jedním z následujících způsobů:

  • Aplikace Shelly: Detail zařízení → Device info → IP adresa
  • Webové rozhraní Shelly: Připojte se k AP zařízení před nastavením Wi-Fi — IP se zobrazí po uložení
  • DHCP tabulka routeru: Hledejte hostname jako shelly1pm-AABBCCDDEE
  • mDNS: Pingněte shelly<model>-<mac>.local (např. shelly1pm-AABBCCDDEE.local) ze stejné sítě

Přiřaďte zařízení Shelly statickou IP (DHCP rezervaci) ve vašem routeru, aby se adresa nezměnila po restartu routeru.

Krok 3 — Konfigurace v TapHome

  1. V TapHome přidejte nový modul Packet Parser (HTTP)
  2. IP Address: zadejte IP z kroku 2 (např. 192.168.1.50)
  3. Port: 80 (výchozí, není potřeba měnit)
  4. Importujte šablonu — TapHome bude pravidelně číst /status pro zjištění stavu zařízení

HTTP autentifikace je na zařízeních Shelly standardně vypnutá. Pokud jste povolili ochranu přihlášením, TapHome momentálně nepodporuje HTTP Basic Auth — pro integraci s TapHome ponechte autentifikaci vypnutou.

Dostupná zařízení

Shelly Plug S Modul
Elektroměr Elektroměr Pouze ke čtení

Měření spotřeby energie — okamžitý výkon (kW) a celková spotřeba (kWh)

numeric Jednotka: kW / kWh

Elektroměr

Čtení celkové spotřeby
# 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");
Čtení odběru
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č Přepínač
boolean
Servisní atributy
Teplota

Spínač

Čtení stavu přepínače
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 přepínače
# 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í atributy
Temperature
VAR response := SENDHTTPREQUEST("/status");
IF response.IsSuccess
 VAR content := response.Content;
 VAR responseHeaders := response.Headers;
 RETURN(PARSEJSON(content, "temperature"));
END;
Připojení: Packet Parser → HTTP
Možná vylepšení (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