---
title: "Shelly Plug S"
description: "Monitorování spotřeby energie, ovládání relé a měření teploty přes MQTT. Šablona integrace TapHome pro chytrou zásuvku Shelly Plug S."
url: "https://taphome.com/cs/compatibility/shelly-plug-s-mqtt/"
language: cs
lastmod: 2026-03-31
generator: hugo
ai:
  topics: ["mqtt","smart-plug","wifi","energy-monitoring","relay-control"]
  questions: ["Jak integrovat Shelly Plug S s TapHome přes MQTT?","Co měří šablona Shelly Plug S v TapHome?","Jak najít MQTT Device ID zařízení Shelly Plug S?","Proč Shelly Plug S nehlásí údaje o příkonu?","Jak ovládat relé Shelly Plug S z TapHome?","Hlásí šablona Shelly Plug S spotřebu energie v kWh?"]
---

# Shelly Plug S

Komunikace: Packet Parser → MQTT

- [Produktová stránka Shelly Plug S](https://www.shelly.com/en/products/shop/shelly-plug-s)

> Adresa v síti
> 
> U MQTT brokeru vestavěného v TapHome zadejte v TapHome jako adresu brokeru `127.0.0.1`. V zařízení zadejte IP adresu TapHome Core a jednotce Core dejte rezervaci IP v routeru.
> 
> [Příprava sítě](https://taphome.com/cs/docs/setup/network-preparation/)

## Návod na integraci

Shelly Plug S je kompaktní Wi-Fi chytrá zásuvka s vestavěným měřením spotřeby energie s jmenovitým zatížením 12A / 2500W. TapHome komunikuje se zařízením přes MQTT — zásuvka se připojuje k brokeru a publikuje stav relé, spotřebu energie, počítadlo energie a údaje o vnitřní teplotě.

Šablona obsahuje dvě zařízení: Elektroměr pro monitorování energie a Spínač pro ovládání relé. Servisní atribut na úrovni modulu hlásí vnitřní teplotu zařízení.

## Konfigurace

### Device ID

Každý Shelly Plug S má jedinečné MQTT Device ID ve formátu `shellyplug-s-<MAC6>`, kde `<MAC6>` je posledních 6 znaků MAC adresy v hexadecimálním formátu s malými písmeny (např. `shellyplug-s-112233`).

Device ID najdete:

- Ve webovém rozhraní Shelly: **Settings** → **Device Info** → **Device ID** (použijte první řetězec znaků, ne v závorkách)
- Přes API: `GET http://<device-ip>/settings` → pole `mqtt.id`

### Povolení MQTT

Povolení MQTT na Shelly Plug S:

1. Otevřete webové rozhraní zařízení v prohlížeči (zadejte IP adresu zařízení)
2. Přejděte na **Internet and Security** → **Advanced - Developer Settings**
3. Zaškrtněte **„Enable action execution via MQTT"**
4. Do pole **„Server"** zadejte `{IP MQTT brokeru}:{port}` (výchozí port `1883`)
5. Stiskněte **SAVE**

### Nastavení šablony

Po importu šablony v TapHome:

1. Otevřete modul **Shelly Plug S MQTT**
2. Nastavte **MQTT Broker IP** a **Port** (výchozí `1883`)
3. Nastavte proměnnou **deviceID** na Device ID zařízení Shelly Plug S (např. `112233` — jen posledních 6 hexadecimálních znaků MAC adresy)

Modul se přihlásí k odběru `shellies/#` a listener skripty filtrují zprávy podle nakonfigurovaného prefixu Device ID `shellyplug-s-{deviceID}`.

## Schopnosti zařízení

### Monitorování energie

Zařízení Elektroměr čte dvě hodnoty ze zásuvky:

- **Celková spotřeba** — kumulativní energie z topicu `relay/0/energy`. Zařízení hlásí energii ve watt-minutách; šablona konvertuje na kWh dělením 60000.
- **Okamžitý příkon** — aktuální odběr z topicu `relay/0/power`. Zařízení hlásí příkon ve wattech; šablona konvertuje na kW dělením 1000.

Obě hodnoty se aktualizují podle intervalu MQTT hlášení (výchozí 30 sekund, nastavitelné ve webovém rozhraní Shelly přes `mqtt_update_period`).

> [!TIP]
> Počítadlo energie se resetuje při restartu zařízení. Pro trvalé sledování energie použijte vestavěné logování energie v TapHome, které ukládá kumulativní hodnoty nezávisle na počítadle zařízení.

### Ovládání relé

Zařízení Spínač ovládá relé zásuvky:

- **Čtení stavu** — naslouchá topicu `shellies/shellyplug-s-{deviceID}/relay/0` a mapuje `on` → 1, `off` → 0
- **Zápis stavu** — publikuje na topic `shellies/shellyplug-s-{deviceID}/relay/0/command` hodnotu `on` nebo `off`

Relé podporuje zátěž do 2500W / 12A.

### Monitorování teploty

Servisní atribut na úrovni modulu hlásí vnitřní teplotu zařízení v °C, čtenou z topicu `shellies/shellyplug-s-{deviceID}/temperature`. Jde o teplotu elektroniky zásuvky, ne o teplotu okolního prostředí.

### Další schopnosti

Shelly Plug S také publikuje stav online/offline přes MQTT LWT topic, upozornění na přehřívání (když zařízení překročí bezpečnou provozní teplotu), čitelnou klasifikaci stavu teploty (Normal/High/Very High) a události tlačítka (krátké stisknutí, dlouhé stisknutí, dvojité stisknutí). Tyto schopnosti mohou být přidány v budoucí aktualizaci šablony.

## Řešení problémů

### Žádná data ze zásuvky

1. Ověřte, že Shelly Plug S je připojen k Wi-Fi a MQTT je povoleno v nastavení zařízení (**Internet and Security** → **Advanced - Developer Settings**)
2. Zkontrolujte, že proměnná **deviceID** přesně odpovídá Device ID (např. `112233`)
3. Použijte MQTT klienta (např. MQTT Explorer) pro odběr `shellies/#` a ověřte, zda zásuvka publikuje zprávy

### Hodnoty příkonu ukazují nulu

1. Potvrďte, že zátěž je připojena a relé je zapnuto
2. Zkontrolujte topic `relay/0/power` přes MQTT klienta — hodnota by měla být nenulová, když zátěž odebírá energii
3. Ověřte, že zařízení Elektroměr zobrazuje hodnoty v TapHome — celková spotřeba v kWh, příkon v kW

### Relé nereaguje na příkazy

1. Ověřte, že MQTT je povoleno a adresa brokeru je správná ve webovém rozhraní Shelly
2. Zkontrolujte, že TapHome se může připojit k MQTT brokeru (správná IP a port v nastavení modulu)
3. Otestujte publikováním `on` nebo `off` na topic `shellies/shellyplug-s-{deviceID}/relay/0/command` přes MQTT klienta

> [!WARNING]
> Zařízení Shelly Gen1 **nepodporují** MQTT přes TLS. Komunikace mezi zásuvkou a MQTT brokerem je nešifrovaná (plain MQTT, port 1883). Zajistěte, aby MQTT broker byl v důvěryhodné lokální síti.

## Jak nainstalovat v TapHome

### Předpoklady

- Zařízení Shelly připojené k Wi-Fi (2,4 GHz), např. přes aplikaci Shelly nebo vlastní přístupový bod zařízení
- MQTT broker běžící ve vaší lokální síti (např. Mosquitto, Home Assistant nebo vestavěný broker TapHome)
- TapHome CCU ve stejné síti jako broker

> [!WARNING]
> Na zařízeních **Gen1** povolení MQTT **vypne Shelly Cloud**. Obojí nemůže běžet současně. Na zařízeních Gen2/Plus toto omezení neplatí.

### Krok 1 — Povolte MQTT na zařízení Shelly

#### Zařízení Gen1 (Shelly 1, 1PM, 2.5, EM, 3EM, Plug S, RGBW2, Dimmer, TRV…)

1. Otevřete webové rozhraní Shelly: `http://<device-ip>/`
2. Přejděte na **Internet & Security** → **Advanced — MQTT**
3. Povolte **MQTT**
4. Nastavte **MQTT Server**: `<broker-ip>:<port>` (např. `192.168.1.10:1883`)
5. Volitelně nastavte **MQTT User** a **MQTT Password**, pokud váš broker vyžaduje autentifikaci
6. Klikněte na **Save** — zařízení se restartuje a připojí k brokeru

#### Zařízení Gen2 / Plus (Shelly Plus 1, Plus 1PM, Plus 2PM, Plus Plug S, Plus H&T, Pro 3EM…)

1. Otevřete webové rozhraní Shelly: `http://<device-ip>/`
2. Přejděte na **Settings** → **MQTT**
3. Povolte **MQTT**
4. Nastavte **Server**: `<broker-ip>:<port>` (např. `192.168.1.10:1883`)
5. **Client ID** je předvyplněné ID zařízení (např. `shellyplus1pm-AABBCCDDEE`) — ponechte tak, pokud nemáte konkrétní důvod ke změně
6. Klikněte na **Save** a restartujte zařízení

U vestavěného brokeru TapHome je `<broker-ip>` IP adresa TapHome Core. Dejte jednotce Core rezervaci IP v routeru, jinak zařízení ztratí broker, když router adresu změní → [Příprava sítě](https://taphome.com/cs/docs/setup/network-preparation/).

> [!TIP]
> Pro ověření funkčnosti MQTT použijte MQTT klienta (např. MQTT Explorer) a přihlaste se k odběru `shellies/#` (Gen1) nebo `<device-id>/#` (Gen2). Měli byste vidět stavové zprávy ze zařízení.

### Krok 2 — Zjistěte Device ID / MQTT Client ID

Některé šablony vyžadují parametr **Device ID** nebo **MQTT Client ID**. Jde o jedinečný identifikátor používaný v MQTT topicích.

- **Gen1:** nachází se na štítku jako MAC adresa (např. `AABBCCDDEE`). Device ID = `shelly<model>-<mac>`, např. `shelly1pm-AABBCCDDEE`
- **Gen2/Plus:** nachází se ve webovém rozhraní Shelly v části **Settings** → **Device Info** → **Device ID**, nebo na štítku zařízení

### Krok 3 — Konfigurace v TapHome

1. V TapHome přidejte nový modul **Packet Parser (MQTT)**
2. **IP Address:** pro vestavěný broker TapHome `127.0.0.1` (jednotka se připojuje sama k sobě, adresa se nikdy nezmění); pro externí broker jeho IP adresa (např. `192.168.1.10`)
3. **Port:** `1883` (výchozí; pro TLS použijte `8883`)
4. **Device ID / MQTT Client ID:** zadejte hodnotu z kroku 2 (pokud to šablona vyžaduje)
5. Importujte šablonu — TapHome se automaticky přihlásí k odběru topiců zařízení

## Dostupná zařízení 2

Tato zařízení se po importu zobrazí v TapHome.

Shelly Plug S MQTT Modul

Servisní atributy

|         |                                                          |
|---------|----------------------------------------------------------|
| Teplota | Vnitřní teplota zařízení — ne teplota okolního prostředí |

Vlastní proměnné

|                     |                                                                                                                                                                               |
|---------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `deviceID` (string) | MQTT Device ID zařízení Shelly Plug S — posledních 6 znaků MAC adresy v hexadecimálním formátu s malými písmeny (najdete ve webovém rozhraní Shelly → Settings → Device Info) |

Listener

```taphome
VAR whatT := "shellies/shellyplug-s-"+deviceID+"/temperature";
IF (whatT = RECEIVEDMSG.TOPIC)
 temperatureC := TOSTRING(RECEIVEDMSG.PAYLOAD);
END
```

Servisní atributy

Temperature \[°C ]

```taphome
temperatureC
```

Elektroměr Elektroměr Pouze ke čtení

Měření spotřeby energie — okamžitý příkon (kW) a kumulativní energie (kWh)

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

Čtení celkové spotřeby

```taphome
# 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");
```

Čtení odběru

```taphome
# 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");
```

Listener

```taphome
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
```

Spínač Přepínač Čtení i zápis

string on→1, off→0 (read); 1→on, 0→off (write)

Hodnoty / Stavy: ON · OFF

Čtení stavu přepínače

```taphome
# 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");
```

Zápis stavu přepínače

```taphome
# 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());
```

Listener

```taphome
VAR whatSt := "shellies/shellyplug-s-"+deviceID+"/relay/0";
IF (whatSt = RECEIVEDMSG.TOPIC)
 IF (TOSTRING(RECEIVEDMSG.PAYLOAD) = "on")
  St := 1;
 ELSE
  St := 0;
 END
END
```

**Připojení:** Packet Parser → MQTT

Možná vylepšení (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.

## Parametry importu

Tyto hodnoty zadáte při importu XML.

| Ptá se v aplikaci     | Výchozí            |
|-----------------------|--------------------|
| Mqtt Broker IP adresa | `192.168.0.1`      |
| Mqtt Broker port      | `1883`             |
| Device ID             | Zadáte při importu |

## Zdroje

- Shelly Gen1 API Reference
  
  [shelly-api-docs.shelly.cloud](https://shelly-api-docs.shelly.cloud/gen1/) 2026-03-12
- Home Assistant Shelly Integration
  
  [www.home-assistant.io](https://www.home-assistant.io/integrations/shelly/) 2026-03-12
- Shelly Plug S — Device-Specific MQTT API
  
  [shelly-api-docs.shelly.cloud](https://shelly-api-docs.shelly.cloud/gen1/#shelly-plug-plugs-mqtt) 2026-03-31

## Související dokumentace

- [MQTT Integration](https://taphome.com/cs/compatibility/mqtt-guide/)
- [Packet Parser (HTTP, TCP, UDP, FTP, MQTT)](https://taphome.com/cs/docs/integration/packet-parser/)
- [Funkce Packet parser](https://taphome.com/cs/docs/script/packet-parser/)
- [Funkce pro parsování](https://taphome.com/cs/docs/script/parsing-functions/)
- [Broker MQTT](https://taphome.com/cs/docs/integration/packet-parser/mqtt-broker/)
- [Listener skripty](https://taphome.com/cs/docs/script/listener-scripts/)

