---
title: "Shelly Plug S"
description: "Monitorovanie spotreby energie, ovládanie relé a meranie teploty cez MQTT. TapHome integračná šablóna pre inteligentnú zásuvku Shelly Plug S."
url: "https://taphome.com/sk/compatibility/shelly-plug-s-mqtt/"
language: sk
lastmod: 2026-03-31
generator: hugo
ai:
  topics: ["mqtt","smart-plug","wifi","energy-monitoring","relay-control"]
  questions: ["Ako integrovať Shelly Plug S s TapHome cez MQTT?","Čo meria šablóna Shelly Plug S v TapHome?","Ako nájsť MQTT Device ID zariadenia Shelly Plug S?","Prečo Shelly Plug S nehlási údaje o príkone?","Ako ovládať relé Shelly Plug S z TapHome?","Hlási šablóna Shelly Plug S spotrebu energie v kWh?"]
---

# Shelly Plug S

Komunikácia: Packet Parser → MQTT

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

> Adresa v sieti
> 
> Pri MQTT brokeri vstavanom v TapHome zadajte v TapHome ako adresu brokera `127.0.0.1`. V zariadení zadajte IP adresu TapHome Core a jednotke Core dajte rezerváciu IP v routeri.
> 
> [Príprava siete](https://taphome.com/sk/docs/setup/network-preparation/)

## Návod na integráciu

Shelly Plug S je kompaktná Wi-Fi inteligentná zásuvka so zabudovaným meraním spotreby energie s menovitým zaťažením 12A / 2500W. TapHome komunikuje so zariadením cez MQTT — zásuvka sa pripája k brokeru a publikuje stav relé, spotrebu energie, počítadlo energie a údaje o vnútornej teplote.

Šablóna obsahuje dve zariadenia: Elektromer na monitorovanie energie a Spínač na ovládanie relé. Servisný atribút na úrovni modulu hlási vnútornú teplotu zariadenia.

## Konfigurácia

### Device ID

Každý Shelly Plug S má jedinečné MQTT Device ID vo formáte `shellyplug-s-<MAC6>`, kde `<MAC6>` je posledných 6 znakov MAC adresy v hexadecimálnom formáte s malými písmenami (napr. `shellyplug-s-112233`).

Device ID nájdete:

- Vo webovom rozhraní Shelly: **Settings** → **Device Info** → **Device ID** (použite prvý reťazec znakov, nie v zátvorkách)
- Cez API: `GET http://<device-ip>/settings` → pole `mqtt.id`

### Povolenie MQTT

Povolenie MQTT na Shelly Plug S:

1. Otvorte webové rozhranie zariadenia v prehliadači (zadajte IP adresu zariadenia)
2. Prejdite na **Internet and Security** → **Advanced - Developer Settings**
3. Zaškrtnite **„Enable action execution via MQTT"**
4. Do poľa **„Server"** zadajte `{IP MQTT brokera}:{port}` (predvolený port `1883`)
5. Stlačte **SAVE**

### Nastavenie šablóny

Po importe šablóny v TapHome:

1. Otvorte modul **Shelly Plug S MQTT**
2. Nastavte **MQTT Broker IP** a **Port** (predvolene `1883`)
3. Nastavte premennú **deviceID** na Device ID zariadenia Shelly Plug S (napr. `112233` — len posledných 6 hexadecimálnych znakov MAC adresy)

Modul sa prihlási na odber `shellies/#` a listener skripty filtrujú správy podľa nakonfigurovaného prefixu Device ID `shellyplug-s-{deviceID}`.

## Schopnosti zariadenia

### Monitorovanie energie

Zariadenie Elektromer číta dve hodnoty zo zásuvky:

- **Celková spotreba** — kumulatívna energia z topicu `relay/0/energy`. Zariadenie hlási energiu vo watt-minútach; šablóna konvertuje na kWh delením 60000.
- **Okamžitý príkon** — aktuálny odber z topicu `relay/0/power`. Zariadenie hlási príkon vo wattoch; šablóna konvertuje na kW delením 1000.

Obe hodnoty sa aktualizujú podľa intervalu MQTT hlásení (predvolene 30 sekúnd, nastaviteľné vo webovom rozhraní Shelly cez `mqtt_update_period`).

> [!TIP]
> Počítadlo energie sa resetuje pri reštarte zariadenia. Pre trvalé sledovanie energie použite zabudované logovanie energie v TapHome, ktoré ukladá kumulatívne hodnoty nezávisle od počítadla zariadenia.

### Ovládanie relé

Zariadenie Spínač ovláda relé zásuvky:

- **Čítanie stavu** — počúva topic `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` alebo `off`

Relé podporuje záťaž do 2500W / 12A.

### Monitorovanie teploty

Servisný atribút na úrovni modulu hlási vnútornú teplotu zariadenia v °C, čítanú z topicu `shellies/shellyplug-s-{deviceID}/temperature`. Ide o teplotu elektroniky zásuvky, nie o teplotu okolitého prostredia.

### Ďalšie schopnosti

Shelly Plug S tiež publikuje stav online/offline cez MQTT LWT topic, upozornenia na prehrievanie (keď zariadenie prekročí bezpečnú prevádzkovú teplotu), čitateľnú klasifikáciu stavu teploty (Normal/High/Very High) a udalosti tlačidla (krátke stlačenie, dlhé stlačenie, dvojité stlačenie). Tieto schopnosti môžu byť pridané v budúcej aktualizácii šablóny.

## Riešenie problémov

### Žiadne dáta zo zásuvky

1. Overte, že Shelly Plug S je pripojený k Wi-Fi a MQTT je povolené v nastaveniach zariadenia (**Internet and Security** → **Advanced - Developer Settings**)
2. Skontrolujte, že premenná **deviceID** presne zodpovedá Device ID (napr. `112233`)
3. Použite MQTT klienta (napr. MQTT Explorer) na odber `shellies/#` a overte, či zásuvka publikuje správy

### Hodnoty príkonu ukazujú nulu

1. Potvrďte, že záťaž je pripojená a relé je zapnuté
2. Skontrolujte topic `relay/0/power` cez MQTT klienta — hodnota by mala byť nenulová, keď záťaž odoberá energiu
3. Overte, že zariadenie Elektromer zobrazuje hodnoty v TapHome — celková spotreba v kWh, príkon v kW

### Relé nereaguje na príkazy

1. Overte, že MQTT je povolené a adresa brokera je správna vo webovom rozhraní Shelly
2. Skontrolujte, že TapHome sa vie pripojiť k MQTT brokeru (správna IP a port v nastaveniach modulu)
3. Otestujte publikovaním `on` alebo `off` na topic `shellies/shellyplug-s-{deviceID}/relay/0/command` cez MQTT klienta

> [!WARNING]
> Zariadenia Shelly Gen1 **nepodporujú** MQTT cez TLS. Komunikácia medzi zásuvkou a MQTT brokerom je nešifrovaná (plain MQTT, port 1883). Zabezpečte, aby MQTT broker bol na dôveryhodnej lokálnej sieti.

## Ako nainštalovať v TapHome

### Predpoklady

- Zariadenie Shelly pripojené k Wi-Fi (2,4 GHz), napr. cez aplikáciu Shelly alebo vlastný prístupový bod zariadenia
- MQTT broker bežiaci vo vašej lokálnej sieti (napr. Mosquitto, Home Assistant alebo vstavaný broker TapHome)
- TapHome CCU v rovnakej sieti ako broker

> [!WARNING]
> Na zariadeniach **Gen1** povolenie MQTT **vypne Shelly Cloud**. Oboje nemôže bežať súčasne. Na zariadeniach Gen2/Plus toto obmedzenie neplatí.

### Krok 1 — Povoľte MQTT na zariadení Shelly

#### Zariadenia Gen1 (Shelly 1, 1PM, 2.5, EM, 3EM, Plug S, RGBW2, Dimmer, TRV…)

1. Otvorte webové rozhranie Shelly: `http://<device-ip>/`
2. Prejdite na **Internet & Security** → **Advanced — MQTT**
3. Povoľte **MQTT**
4. Nastavte **MQTT Server**: `<broker-ip>:<port>` (napr. `192.168.1.10:1883`)
5. Voliteľne nastavte **MQTT User** a **MQTT Password**, ak váš broker vyžaduje autentifikáciu
6. Kliknite na **Save** — zariadenie sa reštartuje a pripojí k brokeru

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

1. Otvorte webové rozhranie Shelly: `http://<device-ip>/`
2. Prejdite na **Settings** → **MQTT**
3. Povoľte **MQTT**
4. Nastavte **Server**: `<broker-ip>:<port>` (napr. `192.168.1.10:1883`)
5. **Client ID** je predvyplnené ID zariadenia (napr. `shellyplus1pm-AABBCCDDEE`) — ponechajte tak, pokiaľ nemáte konkrétny dôvod na zmenu
6. Kliknite na **Save** a reštartujte zariadenie

Pri vstavanom brokeri TapHome je `<broker-ip>` IP adresa TapHome Core. Dajte jednotke Core rezerváciu IP v routeri, inak zariadenie stratí broker, keď router adresu zmení → [Príprava siete](https://taphome.com/sk/docs/setup/network-preparation/).

> [!TIP]
> Na overenie funkčnosti MQTT použite MQTT klienta (napr. MQTT Explorer) a prihláste sa na odber `shellies/#` (Gen1) alebo `<device-id>/#` (Gen2). Mali by ste vidieť stavové správy zo zariadenia.

### Krok 2 — Zistite Device ID / MQTT Client ID

Niektoré šablóny vyžadujú parameter **Device ID** alebo **MQTT Client ID**. Ide o jedinečný identifikátor používaný v MQTT topicoch.

- **Gen1:** nachádza sa na štítku ako MAC adresa (napr. `AABBCCDDEE`). Device ID = `shelly<model>-<mac>`, napr. `shelly1pm-AABBCCDDEE`
- **Gen2/Plus:** nachádza sa vo webovom rozhraní Shelly v časti **Settings** → **Device Info** → **Device ID**, alebo na štítku zariadenia

### Krok 3 — Konfigurácia v TapHome

1. V TapHome pridajte nový modul **Packet Parser (MQTT)**
2. **IP Address:** pre vstavaný broker TapHome `127.0.0.1` (jednotka sa pripája sama k sebe, adresa sa nikdy nezmení); pre externý broker jeho IP adresa (napr. `192.168.1.10`)
3. **Port:** `1883` (predvolený; pre TLS použite `8883`)
4. **Device ID / MQTT Client ID:** zadajte hodnotu z kroku 2 (ak to šablóna vyžaduje)
5. Importujte šablónu — TapHome sa automaticky prihlási na odber topicov zariadenia

## Dostupné zariadenia 2

Tieto zariadenia sa po importe zobrazia v TapHome.

Shelly Plug S MQTT Modul

Servisné atribúty

|         |                                                                |
|---------|----------------------------------------------------------------|
| Teplota | Vnútorná teplota zariadenia — nie teplota okolitého prostredia |

Vlastné premenné

|                     |                                                                                                                                                                                    |
|---------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `deviceID` (string) | MQTT Device ID zariadenia Shelly Plug S — posledných 6 znakov MAC adresy v hexadecimálnom formáte s malými písmenami (nájdete vo webovom rozhraní Shelly → Settings → Device Info) |

Listener

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

Servisné atribúty

Temperature \[°C ]

```taphome
temperatureC
```

Elektromer Elektromer Len na čítanie

Meranie spotreby energie — okamžitý príkon (kW) a kumulatívna energia (kWh)

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

Čítanie celkovej spotreby

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

Čítanie odberu

```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č Prepínač Čítanie aj zápis

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

Hodnoty / Stavy: ON · OFF

Čítanie stavu prepínača

```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 prepínača

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

**Pripojenie:** Packet Parser → MQTT

Možné vylepšenia (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.

## Parametre importu

Tieto hodnoty zadáte pri importe XML.

| Pýta sa v aplikácii   | Predvolené         |
|-----------------------|--------------------|
| Mqtt Broker IP adresa | `192.168.0.1`      |
| Mqtt Broker port      | `1883`             |
| Device ID             | Zadáte pri importe |

## 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

## Súvisiaca dokumentácia

- [MQTT Integration](https://taphome.com/sk/compatibility/mqtt-guide/)
- [Packet Parser (HTTP, TCP, UDP, FTP, MQTT)](https://taphome.com/sk/docs/integration/packet-parser/)
- [Funkcie Packet parsera](https://taphome.com/sk/docs/script/packet-parser/)
- [Parsovacie funkcie](https://taphome.com/sk/docs/script/parsing-functions/)
- [MQTT broker](https://taphome.com/sk/docs/integration/packet-parser/mqtt-broker/)
- [Listener skripty](https://taphome.com/sk/docs/script/listener-scripts/)

