---
title: "Shelly EM MQTT"
description: "Jednofázový elektroměr Shelly EM připojený k TapHome přes MQTT. Měření spotřeby energie (kWh) na kanál, monitoring napětí a ovládání stykačového relé."
url: "https://taphome.com/cs/compatibility/shelly-em-mqtt/"
language: cs
lastmod: 2026-10-08
generator: hugo
ai:
  topics: ["mqtt","electric-meter","wifi","energy-metering","contactor-control","ct-clamp"]
  questions: ["Jak integrovat Shelly EM s TapHome přes MQTT?","Co měří šablona Shelly EM MQTT v TapHome?","Jak najít Device ID zařízení Shelly EM pro MQTT?","Lze ovládat stykačové relé Shelly EM z TapHome přes MQTT?","Proč Shelly EM nehlásí údaje o energii přes MQTT?","Podporuje šablona Shelly EM MQTT okamžité odečty výkonu?"]
---

# Shelly EM MQTT

Komunikace: Packet Parser → MQTT

- [Produktová stránka Shelly EM](https://www.shelly.com/en/products/shop/shelly-em)

> 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 EM je jednofázový elektroměr se dvěma nezávislými měřicími kanály a 2A reléovým výstupem pro ovládání stykače. Každý kanál se připojuje k externímu proudovému transformátoru (CT svorce) -- dostupnému v 50A a 120A variantách -- což umožňuje neinvazivní sledování dvou samostatných obvodů současně. Tato šablona se připojuje k zařízení přes MQTT broker v lokální síti. Cloudové připojení není potřeba.

Šablona vytváří tři zařízení: dva elektroměry (jeden na CT kanál) sledující kumulativní spotřebu energie a spínač pro stykačové relé.

## Konfigurace

### Device ID

Shelly EM používá Device ID ve formátu `shellyem-XXXXXX`, kde `XXXXXX` je posledních 6 znaků MAC adresy v hexadecimálním formátu (např. `shellyem-B929CC`). Při importu šablony zadejte pouze hexadecimální část (např. `B929CC`) do parametru **Device ID**.

Device ID najdete:

- Ve webovém rozhraní Shelly: **Settings** > **Device Info**
- Přes API: `GET http://<device-ip>/settings` -- pole `mqtt.id`

> [!TIP]
> Toto zařízení podporuje **mDNS discovery**. Místo IP adresy můžete při konfiguraci MQTT brokeru použít hostname `shellyem-{MAC}.local`. Nahraďte `{MAC}` stejnou hexadecimální částí jako v Device ID (např. `shellyem-B929CC.local`). Použití hostname předchází problémům s konektivitou při změně IP adresy zařízení.

### Nastavení MQTT

Před importem šablony aktivujte MQTT na zařízení Shelly EM:

1. Otevřete webové rozhraní Shelly na `http://<device-ip>`
2. Přejděte do **Internet & Security** > **Advanced — Developer Settings**
3. Zaškrtněte **Enable action execution via MQTT**
4. Do pole **Server** zadejte adresu MQTT brokeru ve formátu `broker-ip:1883`
5. Stiskněte **SAVE**

> [!WARNING]
> Na zařízeních Shelly Gen1 aktivace MQTT **deaktivuje Shelly Cloud**. Obě funkce nemohou běžet současně.

### Nastavení šablony

Po importu šablony v TapHome:

1. Nastavte **MQTT Broker IP** na adresu vašeho MQTT brokeru
2. Nastavte **MQTT Broker Port** (výchozí `1883`)
3. Nastavte **Device ID** na hexadecimální část Device ID zařízení Shelly EM (např. `B929CC`)

Modul odebírá topic `shellies/#` a listener skripty na každém zařízení filtrují zprávy podle nakonfigurovaného Device ID.

## Možnosti zařízení

### Měření energie (na kanál)

Každý kanál je v TapHome vystaven jako nezávislé zařízení Elektroměr. Listener skript odebírá dva MQTT topicy na kanál:

| Topic | Jednotka | Popis |
|-------|----------|-------|
| `emeter/{i}/energy` | watt-minuty | Kumulativní energie od posledního restartu -- dělená 60 000 pro převod na kWh |
| `emeter/{i}/total` | Wh | Trvalá celková spotřebovaná energie -- přežije restarty |

Šablona ukládá obě hodnoty: `Ed` (energie z topicu watt-minut, převedená na kWh) a `To` (celková spotřeba ve Wh z perzistentního topicu).

> [!TIP]
> Topic `energy` se při restartu zařízení vynuluje. Pro trvalé sledování energie šablona čte i topic `total`, který přežije restarty.

Každý kanál také vystavuje servisní atribut **Napětí**, který čte efektivní síťové napětí z MQTT topicu `emeter/{i}/voltage`.

> [!NOTE]
> Skripty `readtotalconsumption` a `readdemand` jsou zakomentovaný šablonový boilerplate -- veškeré údaje o energii přicházejí přes MQTT listener. To znamená, že šablona **neposkytuje** okamžité odečty výkonu (W). Sleduje se pouze kumulativní energie (kWh) a celková spotřeba (Wh). Okamžitý činný výkon je dostupný přes MQTT topic `emeter/{i}/power`, ale tato šablona jej neodebírá.

### Stykačové relé

Reléový výstup je v TapHome vystaven jako spínač. Relé je dimenzováno na **2A / 230 VAC** -- je určeno pouze pro ovládání stykače, nikoli pro přímé spínání zátěže.

- **Čtení:** odebírá topic `shellies/shellyem-{id}/relay/0` -- payload `on` = zapnuto, `off` = vypnuto
- **Zápis:** publikuje `on` nebo `off` do `shellies/shellyem-{id}/relay/0/command`

> [!WARNING]
> Relé je dimenzováno pouze na 2A. Pro zátěže překračující tento limit vždy použijte externí stykač. Přímé připojení výkonových zátěží poškodí relé.

## Řešení problémů

### Žádné údaje o energii

1. Ověřte, že MQTT je aktivováno ve webovém rozhraní Shelly (Internet & Security > Advanced — Developer Settings)
2. Zkontrolujte, že adresa a port MQTT brokeru jsou správné v nastavení zařízení Shelly i modulu TapHome
3. Zkontrolujte, že vlastní proměnná **Device ID** přesně odpovídá Device ID zařízení Shelly (např. `B929CC`)
4. Pomocí MQTT klienta (např. MQTT Explorer) odebírejte topic `shellies/#` a ověřte, že zařízení publikuje topicy `emeter/0/energy` a `emeter/1/energy`

### Údaje pouze z jednoho kanálu

1. Ověřte, že CT svorka je připojena do správného 3,5mm jacku (kanál 0 nebo kanál 1)
2. Zkontrolujte, že měřeným vodičem protéká proud -- CT svorka musí obepínat jeden vodič, nikoli celý kabel
3. Samostatně odebírejte topicy `shellies/shellyem-{id}/emeter/0/#` a `shellies/shellyem-{id}/emeter/1/#` a ověřte, že oba kanály publikují údaje

### Relé nereaguje

1. Zkontrolujte, že Shelly EM je napájeno a připojeno k MQTT brokeru
2. Manuálně publikujte `on` nebo `off` do `shellies/shellyem-{id}/relay/0/command` přes MQTT klienta a otestujte funkci relé nezávisle na TapHome
3. Ověřte správné zapojení reléového výstupu (zkontrolujte označení svorek na zařízení)

> [!WARNING]
> Zařízení Shelly Gen1 **nepodporují** MQTT přes TLS. Komunikace mezi zařízením a MQTT brokerem je nešifrovaná (plain MQTT, port 1883). Ujistěte se, že MQTT broker je 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í 3

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

Shelly EM MQTT Modul

Vlastní proměnné

`deviceID` (string) MQTT Device ID zařízení Shelly EM — formát je 'shellyem-DEVICEID', kde DEVICEID je posledních 6 hex znaků MAC adresy (např. B929CC)

Open http://shellyIpAddress → Settings → Device Info → copy Device ID

Elektroměr - Kanál 1 Elektroměr Pouze ke čtení

Spotřeba energie na CT svorce kanálu 1 -- kumulativní energie (kWh) a celková spotřeba (Wh)

numeric Jednotka: kWh

Servisní atributy

|        |                                                                   |
|--------|-------------------------------------------------------------------|
| Napětí | Efektivní napětí na kanálu 1 čtené z MQTT topicu emeter/0/voltage |

Č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 whatEd := "shellies/shellyem-"+deviceID+"/emeter/0/energy";
VAR whatTo := "shellies/shellyem-"+deviceID+"/emeter/0/total";

IF (whatEd = RECEIVEDMSG.TOPIC)
 Ed := todouble(TOSTRING(RECEIVEDMSG.PAYLOAD))/60000;
END
IF (whatTo = RECEIVEDMSG.TOPIC)
 To := todouble(TOSTRING(RECEIVEDMSG.PAYLOAD));
END
```

Servisní atributy

Voltage \[V]

```taphome
if parsejson(response, "Topic") = "shellies/shellyem-"+deviceID+"/emeter/0/voltage"
 return(todouble(parsejson(response, "Payload")));
end
```

Elektroměr - Kanál 2 Elektroměr Pouze ke čtení

Spotřeba energie na CT svorce kanálu 2 -- kumulativní energie (kWh) a celková spotřeba (Wh)

numeric Jednotka: kWh

Servisní atributy

|        |                                                                   |
|--------|-------------------------------------------------------------------|
| Napětí | Efektivní napětí na kanálu 2 čtené z MQTT topicu emeter/1/voltage |

Č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 whatEd := "shellies/shellyem-"+deviceID+"/emeter/1/energy";
VAR whatTo := "shellies/shellyem-"+deviceID+"/emeter/1/total";

IF (whatEd = RECEIVEDMSG.TOPIC)
 Ed := todouble(TOSTRING(RECEIVEDMSG.PAYLOAD))/60000;
END
IF (whatTo = RECEIVEDMSG.TOPIC)
 To := todouble(TOSTRING(RECEIVEDMSG.PAYLOAD));
END
```

Servisní atributy

voltage \[V]

```taphome
if parsejson(response, "Topic") = "shellies/shellyem-"+deviceID+"/emeter/1/voltage"
 return(parsejson(response, "Payload"));
end
```

Stykačové relé Přepínač Čtení i zápis

2A reléový výstup pro ovládání stykače -- čte stav relay/0 a publikuje příkazy on/off

boolean

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
MQTTPUBLISH("shellies/shellyem-" + deviceID + "/relay/0/command",if(St = 1, "on","off"));

# Simple HTTP Request:
# VAR response := SENDHTTPREQUEST("/example/set/value=" + St);
# 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
```

Listener

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

**Připojení:** Packet Parser → MQTT • Hostname: `shellyem-{MAC}.local`

Možná vylepšení (5)

- Active Power — Instantaneous active power in W per channel. Available via MQTT but template listener scripts do not subscribe to it — readdemand is commented-out boilerplate.
- Reactive Power — Instantaneous reactive power in VAR per channel. Available via MQTT topic.
- Total Energy Returned — Total energy returned to grid in Wh per channel. Useful for solar/bidirectional setups.
- Connection Status — LWT topic — true on connect, false on disconnect. Could detect device offline state.
- Reset Energy Data — Payload 'reset\_data' resets all accumulated energy counters on both channels.

## 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 EM — API Endpoints & MQTT Topics
  
  [shelly-api-docs.shelly.cloud](https://shelly-api-docs.shelly.cloud/gen1/#shelly-em) 2026-03-29
- Shelly EM — Product Specifications
  
  [robomaterial.com](https://robomaterial.com/product/shelly-em-single-phase-energy-meter-with-contactor-control/) 2026-03-29

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

