---
title: "Shelly DUO MQTT"
description: "Ovládanie až 5 bielych žiaroviek Shelly DUO cez MQTT — jas, CCT 3000-6500 K s plynulými prechodmi a meranie kW/kWh každej žiarovky. TapHome Gen1."
url: "https://taphome.com/sk/compatibility/shelly-duo-mqtt/"
language: sk
lastmod: 2026-04-25
generator: hugo
ai:
  topics: ["mqtt","lighting","wifi","tunable-white","cct","power-metering","led-bulb","gen1","mdns"]
  questions: ["Ako integrovať Shelly DUO s TapHome cez MQTT?","Ako zistiť MQTT Device ID žiarovky Shelly DUO?","Ako ovládať viacero žiaroviek Shelly DUO z jednej TapHome šablóny?","Prečo Shelly DUO ukazuje v TapHome nulovú spotrebu?","Prečo je najteplejšia farba svetla len 3000 K namiesto 2700 K?","Vypne zapnutie MQTT na Shelly DUO aj Shelly Cloud?"]
---

# Shelly DUO MQTT

Komunikácia: Packet Parser → MQTT

- [Stránka produktu Shelly DUO](https://www.shelly.com/en/products/shop/shelly-bulb-duo)
- [Dokumentácia Shelly Gen1 MQTT API](https://shelly-api-docs.shelly.cloud/gen1/#shelly-duo-mqtt)

> 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 DUO (model **SHBDUO-1**) je Gen1 Wi-Fi LED inteligentná žiarovka dostupná v prevedení **E27** a **GU10**. Bežná verzia DUO je **iba biela** s laditeľnou teplotou farby a regulovateľným jasom — nemá žiadne RGB kanály (RGB-schopná verzia je *DUO RGBW* / `shellycolorbulb-` a používa samostatnú šablónu). Toto je **MQTT variant** integrácie do TapHome; pre jednu žiarovku je k dispozícii aj [HTTP variant](https://taphome.com/sk/compatibility/shelly-duo/).

Šablóna podporuje až **5 žiaroviek DUO** na jeden modul cez zdieľaný MQTT broker v lokálnej sieti. Každá žiarovka je identifikovaná premennou modulu `bulbNtopic`, ktorá ukazuje na MQTT Device ID žiarovky, a poskytuje zariadenie bieleho svetla aj elektromer — celkovo 10 zariadení.

## Konfigurácia

### MQTT broker

Šablóna potrebuje MQTT broker dostupný v lokálnej sieti — funguje akýkoľvek štandardný broker (Mosquitto, EMQX alebo broker zabudovaný v Home Assistant). Broker beží na **porte 1883** bez TLS (Gen1 hardvér Shelly nepodporuje MQTT cez TLS), preto ho ponechajte v dôveryhodnom segmente.

Po importovaní šablóny nastavte pripojenie k brokeru v import parametroch modulu:

| Parameter | Predvolené | Popis |
|-----------|------------|-------|
| **MQTT Broker IP** (`IpAddress`) | `192.168.0.1` | Adresa brokera v lokálnej sieti |
| **MQTT Broker port** (`Port`) | `1883` | Štandardný MQTT port (bez TLS) |
| **Transition time** (`TransitionTime`) | `300` | Predvolený čas prechodu jasu/CCT na každej žiarovke v milisekundách |

### Zapnutie MQTT na žiarovke

Každá Shelly DUO musí byť nasmerovaná na broker, kým začne publikovať alebo prijímať príkazy:

1. Otvorte webové rozhranie žiarovky na `http://<bulb-ip>` (IP nájdete v DHCP tabuľke routera alebo v Shelly app)
2. Prejdite na **Internet & Security** → **Advanced — MQTT** a zapnite **MQTT**
3. Zadajte **server** brokera (IP a port, napr. `192.168.0.10:1883`) a **username** / **password** nechajte prázdne (TapHome šablóna autentifikáciu brokera nepodporuje)
4. Voliteľne upravte **MQTT prefix**, ak nechcete predvolený `shellies/ShellyBulbDuo-<MAC6>`
5. Uložte a reštartujte žiarovku — po opätovnom pripojení začne publikovať na `shellies/ShellyBulbDuo-<id>/light/0/status`

### Device ID (`bulbNtopic`)

Každá Shelly DUO má unikátne MQTT Device ID vo formáte **`ShellyBulbDuo-<MAC6>`**, kde `<MAC6>` je posledných 6 hex znakov MAC adresy (napr. `ShellyBulbDuo-B929CC`). Rovnaká hodnota je aj mDNS hostname žiarovky (`ShellyBulbDuo-<MAC6>.local`).

Device ID nájdete:

- V Shelly web UI: **Settings** → **Device Info** → pole `mqtt.id`
- Cez HTTP: `GET http://<bulb-ip>/settings` → `mqtt.id`
- Na štítku zariadenia / obale (posledných 6 znakov MAC, malé hex)
- Ako mDNS hostname, napr. `ShellyBulbDuo-b929cc.local`

Otvorte modul **Shelly DUO MQTT** v TapHome a vyplňte topic premenné pre každú žiarovku, ktorú chcete použiť:

| Premenná | Predvolené | Popis |
|----------|------------|-------|
| `bulb1topic` | `ShellyBulbDuo-deviceid1` | MQTT Device ID prvej žiarovky DUO |
| `bulb2topic` | `ShellyBulbDuo-deviceid2` | MQTT Device ID druhej žiarovky DUO |
| `bulb3topic` | `ShellyBulbDuo-deviceid3` | MQTT Device ID tretej žiarovky DUO |
| `bulb4topic` | `ShellyBulbDuo-deviceid4` | MQTT Device ID štvrtej žiarovky DUO |
| `bulb5topic` | `ShellyBulbDuo-deviceid5` | MQTT Device ID piatej žiarovky DUO |

Nahraďte placeholder skutočným Device ID pre každú žiarovku, ktorú chcete ovládať (napr. `ShellyBulbDuo-B929CC`). Modul sa prihlási na `shellies/#` a listener skripty pre jednotlivé žiarovky filtrujú správy podľa prefixu topicu. Sloty, ktoré ostali na placeholder hodnote, vyhodia chybu v TapHome, kým ich neskonfigurujete alebo neodstránite zo šablóny.

### Čas prechodu pre každú žiarovku

Každé Light zariadenie má premennú `transitionTime` (v milisekundách, rozsah 0-5000 ms), ktorá je predvolene odvodená z modulového import parametra `TransitionTime`. Prepíšte ju na jednotlivých žiarovkách, ak chcete iné časy prechodu — hodnota sa odošle pri každej zmene jasu alebo CCT ako pole `transition` v JSON payloade `/light/0/set`.

> [!WARNING]
> Zapnutie MQTT na Gen1 zariadení Shelly **vypne Shelly Cloud** — obe nemôžu bežať súčasne. HTTP REST a CoIoT zostávajú dostupné, takže žiarovka je naďalej dosiahnuteľná z lokálnej siete.

## Schopnosti zariadenia

Šablóna poskytuje 10 zariadení na modul — 5 laditeľných bielych svetiel a 5 elektromerov, jeden pár na fyzickú žiarovku. Všetkých 5 párov je funkčne identických, líšia sa len `bulbNtopic`, na ktorý počúvajú.

### Ovládanie svetla

Každé Light zariadenie je v TapHome mapované ako **White Light** s dvomi ovládacími vlastnosťami:

- **Jas** — čítaný z poľa `$.brightness` (0-100) JSON správy `light/0/status`, škálovaný na rozsah 0.0-1.0 v TapHome; zapisovaný cez `light/0/set` s `"turn":"on", "brightness":N, "transition":<ms>`
- **Teplota svetla** — čítaná z `$.temp` (3000-6500 K), zapisovaná cez `light/0/set` s `"temp":K, "transition":<ms>`

Vypnutie svetla používa samostatný topic `light/0/command` s payloadom `off`, čo je rýchlejšie ako zostavovať JSON `set` správu. Aktualizácie jasu a CCT vždy obsahujú pole `transition`, takže žiarovka prechádza plynulo namiesto skoku.

### Meranie spotreby

Každý Electric Meter sa prihlasuje na dva skalárne topicy, ktoré žiarovka publikuje približne raz za sekundu:

| Hodnota v TapHome | Zdrojový topic | Zdrojová jednotka | Konverzia | Zobrazená jednotka |
|-------------------|----------------|-------------------|-----------|---------------------|
| Okamžitý výkon | `shellies/ShellyBulbDuo-<id>/light/0/power` | W | `÷ 1000` | kW |
| Celková spotreba | `shellies/ShellyBulbDuo-<id>/light/0/energy` | watt-minúty | `÷ 60000` | kWh |

Konverzia watt-minút na kWh je nutná, pretože firmvér Shelly Gen1 reportuje kumulatívnu energiu vo W·min, nie vo W·h.

> [!TIP]
> Meranie spotreby tichom vracia nulu, kým nie je nastavený **Settings → Device Model** (E27 alebo GU10) v Shelly app alebo web UI. TapHome listener pri prvom čítaní zobrazí informačný banner, ktorý na to upozorní. Po nastavení modelu žiarovka okamžite začne reportovať nenulové hodnoty `power`/`energy`.

## Riešenie problémov

### Žiarovka nereaguje

1. Overte, že žiarovka je pripojená k Wi-Fi a dosiahnuteľná v LAN — otvorte `http://<bulb-ip>/shelly`. Odpoveď obsahujúca `"type":"SHBDUO-1"` potvrdí zariadenie.
2. Skúste mDNS hostname (`ShellyBulbDuo-<MAC6>.local`) namiesto IP adresy — obnovenia DHCP alebo reštarty routera môžu zmeniť IP.
3. Potvrďte, že MQTT je zapnuté v nastaveniach **Internet & Security → Advanced — MQTT** žiarovky a že IP/port brokera sa zhodujú s import parametrami v TapHome.
4. Použite MQTT klienta (napr. **MQTT Explorer** alebo `mosquitto_sub -h <broker> -t 'shellies/#' -v`), aby ste overili, že žiarovka publikuje na `shellies/ShellyBulbDuo-<id>/...`.

### Chyba "Set correct 'bulbNtopic' value"

Listener skript hodí túto chybu, keď je `bulbNtopic` stále nastavený na predvolený placeholder (`ShellyBulbDuo-deviceid`). Buď doplňte skutočné Device ID pre daný slot, alebo odstráňte nepoužívané zariadenia zo šablóny, ak máte len pár žiaroviek.

### Spotreba a energia ostávajú na nule

1. Otvorte Shelly app (alebo web UI) → **Settings** → **Device Model** a vyberte zodpovedajúci sub-model (**Shelly Bulb DUO E27** alebo **Shelly Bulb DUO GU10**). Žiarovka začne počítať `power`/`energy` až po identifikácii modelu.
2. Overte, že žiarovka je naozaj zapnutá — meter sa aktualizuje len pri pretekajúcom prúde.
3. Prihláste sa priamo na `shellies/ShellyBulbDuo-<id>/light/0/power` cez MQTT klienta a overte, že žiarovka publikuje nenulovú hodnotu.

### Najteplejšia CCT klesá len na 3000 K

TapHome XML obmedzuje CCT na **3000-6500 K**, aby zodpovedalo marketingovému rozsahu E27. Samotný hardvér podporuje **2700-6500 K** na sub-modeli GU10 a cez surové API `/light/0/set`, takže najteplejších 300 K rozsahu GU10 je cez TapHome šablónu nedosiahnuteľných.

### Prechody svetla pôsobia trhane

Zvýšte premennú `transitionTime` na danej žiarovke (alebo predvolenú modulovú hodnotu `TransitionTime`). 300 ms je v poriadku pre malé kroky stmievania, no pri veľkých zmenách jasu alebo CCT to môže pôsobiť stupňovito — skúste 800-1500 ms pre plynulejší prechod.

> [!WARNING]
> Zariadenia Shelly Gen1 používajú **holé MQTT** na porte 1883 — TLS nie je podporované. TapHome šablóna tiež nesprístupňuje broker `username` / `password`, preto použite neautentifikovaný broker v dôveryhodnej lokálnej sieti alebo VLAN.

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

Tieto zariadenia sa po importe zobrazia v TapHome.

Shelly DUO MQTT Modul

Vlastné premenné

`bulb1topic` (string) = ShellyBulbDuo-deviceid1 MQTT Device ID prvej žiarovky Shelly DUO — formát je 'ShellyBulbDuo-DEVICEID'

Open http://shellyIpAddress in a browser → Settings → Device Info → copy the mqtt.id (or Device ID) field. Default mDNS hostname matches the MQTT id (ShellyBulbDuo-{MAC6}.local).

`bulb2topic` (string) = ShellyBulbDuo-deviceid2 MQTT Device ID druhej žiarovky Shelly DUO 

`bulb3topic` (string) = ShellyBulbDuo-deviceid3 MQTT Device ID tretej žiarovky Shelly DUO 

`bulb4topic` (string) = ShellyBulbDuo-deviceid4 MQTT Device ID štvrtej žiarovky Shelly DUO 

`bulb5topic` (string) = ShellyBulbDuo-deviceid5 MQTT Device ID piatej žiarovky Shelly DUO

Elektromer 1 Elektromer Len na čítanie

Okamžitý výkon (kW) a kumulatívna spotreba (kWh) žiarovky 1 — vyžaduje nastavenie Settings → Device Model v Shelly app, inak obe hodnoty ostávajú na 0

numeric Jednotka: kW / kWh

Listener

```taphome
ADDINFO("To enable power monitoring, open device settings in Shelly app or web browser and configure device model in Settings->Device Model");

IF(INDEXOF(bulb1topic, "ShellyBulbDuo-deviceid") = 0)
    ADDERROR("Set correct 'bulb1topic' value in module variables. Topic format is 'ShellyBulbDuo-<deviceid>'. The Device ID can be found by opening url 'http://shellyIpAddress', in Settings -> Device info.");
    RETURN(-1);
END

IF INDEXOF(RECEIVEDMSG.TOPIC, "shellies/" + bulb1topic + "/light/0/power") = 0
    Ed := TODOUBLE(TOSTRING(RECEIVEDMSG.PAYLOAD)) / 1000.0;
ELSEIF INDEXOF(RECEIVEDMSG.TOPIC, "shellies/" + bulb1topic + "/light/0/energy") = 0
    To := TODOUBLE(TOSTRING(RECEIVEDMSG.PAYLOAD)) / 60000.0;
END
```

Svetlo 1 Biele svetlo Čítanie aj zápis

Žiarovka 1 s laditeľnou bielou — zap/vyp, jas 0-100 % a teplota svetla 3000-6500 K s plynulými prechodmi

json Jednotka: % / K json\_path

Premenná: `transitionTime` — Čas prechodu pre danú žiarovku v milisekundách (0-5000 ms), odvodený z import parametra TransitionTime

Listener

```taphome
IF(INDEXOF(bulb1topic, "ShellyBulbDuo-deviceid") = 0)
    ADDERROR("Set correct 'bulb1topic' value in module variables. Topic format is 'ShellyBulbDuo-<deviceid>'. The Device ID can be found by opening url 'http://shellyIpAddress', in Settings -> Device info.");
    RETURN(-1);
END

IF INDEXOF(RECEIVEDMSG.TOPIC, "shellies/" + bulb1topic + "/light/0/status") != 0
    RETURN(0);
END

IF RECEIVEDMSG.PAYLOAD.LENGTH = 0
    RETURN(0);
END

VAR ison := PARSEJSON(RECEIVEDMSG.PAYLOAD, "$.ison", 1);
VAR bright := PARSEJSON(RECEIVEDMSG.PAYLOAD, "$.brightness");

IF ISNULL(ison) OR ISNULL(bright)
    RETURN(0);
END

Ct := PARSEJSON(RECEIVEDMSG.PAYLOAD, "$.temp", 1);

IF ison
    Hb := bright / 100.0;
    St := isOn;
ELSE 
    Hb := 0;
    St := 0;
END
```

Zápis jasu

```taphome
IF St > 0.5
    VAR topic := "shellies/" + bulb1topic + "/light/0/set";    
    MQTTPUBLISH(topic, "{\"turn\": \"on\", \"transition\": " + transitionTime + ", \"brightness\": " + ROUND(Hb*100.0) + "}");
ELSE
    MQTTPUBLISH("shellies/" + bulb1topic + "/light/0/command", "off");
END
```

Zápis farebnej teploty

```taphome
IF ISNAN(Ct)
    RETURN(0);
END

VAR topic := "shellies/" + bulb1topic + "/light/0/set";
MQTTPUBLISH(topic, "{\"transition\": " + transitionTime + ", \"temp\":" + Ct + "}");
```

Elektromer 2 Elektromer Len na čítanie

Okamžitý výkon (kW) a kumulatívna spotreba (kWh) žiarovky 2 — vyžaduje nastavenie Settings → Device Model v Shelly app, inak obe hodnoty ostávajú na 0

numeric Jednotka: kW / kWh

Listener

```taphome
ADDINFO("To enable power monitoring, open device settings in Shelly app or web browser and configure device model in Settings->Device Model");

IF(INDEXOF(bulb2topic, "ShellyBulbDuo-deviceid") = 0)
    ADDERROR("Set correct 'bulb2topic' value in module variables. Topic format is 'ShellyBulbDuo-<deviceid>'. The Device ID can be found by opening url 'http://shellyIpAddress', in Settings -> Device info.");
    RETURN(-1);
END

IF INDEXOF(RECEIVEDMSG.TOPIC, "shellies/" + bulb2topic + "/light/0/power") = 0
    Ed := TODOUBLE(TOSTRING(RECEIVEDMSG.PAYLOAD)) / 1000.0;
ELSEIF INDEXOF(RECEIVEDMSG.TOPIC, "shellies/" + bulb2topic + "/light/0/energy") = 0
    To := TODOUBLE(TOSTRING(RECEIVEDMSG.PAYLOAD)) / 60000.0;
END
```

Svetlo 2 Biele svetlo Čítanie aj zápis

Žiarovka 2 s laditeľnou bielou — zap/vyp, jas 0-100 % a teplota svetla 3000-6500 K s plynulými prechodmi

json Jednotka: % / K json\_path

Premenná: `transitionTime` — Čas prechodu pre danú žiarovku v milisekundách (0-5000 ms), odvodený z import parametra TransitionTime

Listener

```taphome
IF(INDEXOF(bulb2topic, "ShellyBulbDuo-deviceid") = 0)
    ADDERROR("Set correct 'bulb2topic' value in module variables. Topic format is 'ShellyBulbDuo-<deviceid>'. The Device ID can be found by opening url 'http://shellyIpAddress', in Settings -> Device info.");
    RETURN(-1);
END

IF INDEXOF(RECEIVEDMSG.TOPIC, "shellies/" + bulb2topic + "/light/0/status") != 0
    RETURN(0);
END

IF RECEIVEDMSG.PAYLOAD.LENGTH = 0
    RETURN(0);
END

VAR ison := PARSEJSON(RECEIVEDMSG.PAYLOAD, "$.ison", 1);
VAR bright := PARSEJSON(RECEIVEDMSG.PAYLOAD, "$.brightness");

IF ISNULL(ison) OR ISNULL(bright)
    RETURN(0);
END

Ct := PARSEJSON(RECEIVEDMSG.PAYLOAD, "$.temp", 1);

IF ison
    Hb := bright / 100.0;
    St := isOn;
ELSE 
    Hb := 0;
    St := 0;
END
```

Zápis jasu

```taphome
IF St > 0.5
    VAR topic := "shellies/" + bulb2topic + "/light/0/set";    
    MQTTPUBLISH(topic, "{\"turn\": \"on\", \"transition\": " + transitionTime + ", \"brightness\": " + ROUND(Hb*100.0) + "}");
ELSE
    MQTTPUBLISH("shellies/" + bulb2topic + "/light/0/command", "off");
END
```

Zápis farebnej teploty

```taphome
IF ISNAN(Ct)
    RETURN(0);
END

VAR topic := "shellies/" + bulb2topic + "/light/0/set";
MQTTPUBLISH(topic, "{\"transition\": " + transitionTime + ", \"temp\":" + Ct + "}");
```

Elektromer 3 Elektromer Len na čítanie

Okamžitý výkon (kW) a kumulatívna spotreba (kWh) žiarovky 3 — vyžaduje nastavenie Settings → Device Model v Shelly app, inak obe hodnoty ostávajú na 0

numeric Jednotka: kW / kWh

Listener

```taphome
ADDINFO("To enable power monitoring, open device settings in Shelly app or web browser and configure device model in Settings->Device Model");

IF(INDEXOF(bulb3topic, "ShellyBulbDuo-deviceid") = 0)
    ADDERROR("Set correct 'bulb3topic' value in module variables. Topic format is 'ShellyBulbDuo-<deviceid>'. The Device ID can be found by opening url 'http://shellyIpAddress', in Settings -> Device info.");
    RETURN(-1);
END

IF INDEXOF(RECEIVEDMSG.TOPIC, "shellies/" + bulb3topic + "/light/0/power") = 0
    Ed := TODOUBLE(TOSTRING(RECEIVEDMSG.PAYLOAD)) / 1000.0;
ELSEIF INDEXOF(RECEIVEDMSG.TOPIC, "shellies/" + bulb3topic + "/light/0/energy") = 0
    To := TODOUBLE(TOSTRING(RECEIVEDMSG.PAYLOAD)) / 60000.0;
END
```

Svetlo 3 Biele svetlo Čítanie aj zápis

Žiarovka 3 s laditeľnou bielou — zap/vyp, jas 0-100 % a teplota svetla 3000-6500 K s plynulými prechodmi

json Jednotka: % / K json\_path

Premenná: `transitionTime` — Čas prechodu pre danú žiarovku v milisekundách (0-5000 ms), odvodený z import parametra TransitionTime

Listener

```taphome
IF(INDEXOF(bulb3topic, "ShellyBulbDuo-deviceid") = 0)
    ADDERROR("Set correct 'bulb3topic' value in module variables. Topic format is 'ShellyBulbDuo-<deviceid>'. The Device ID can be found by opening url 'http://shellyIpAddress', in Settings -> Device info.");
    RETURN(-1);
END

IF INDEXOF(RECEIVEDMSG.TOPIC, "shellies/" + bulb3topic + "/light/0/status") != 0
    RETURN(0);
END

IF RECEIVEDMSG.PAYLOAD.LENGTH = 0
    RETURN(0);
END

VAR ison := PARSEJSON(RECEIVEDMSG.PAYLOAD, "$.ison", 1);
VAR bright := PARSEJSON(RECEIVEDMSG.PAYLOAD, "$.brightness");

IF ISNULL(ison) OR ISNULL(bright)
    RETURN(0);
END

Ct := PARSEJSON(RECEIVEDMSG.PAYLOAD, "$.temp", 1);

IF ison
    Hb := bright / 100.0;
    St := isOn;
ELSE 
    Hb := 0;
    St := 0;
END
```

Zápis jasu

```taphome
IF St > 0.5
    VAR topic := "shellies/" + bulb3topic + "/light/0/set";    
    MQTTPUBLISH(topic, "{\"turn\": \"on\", \"transition\": " + transitionTime + ", \"brightness\": " + ROUND(Hb*100.0) + "}");
ELSE
    MQTTPUBLISH("shellies/" + bulb3topic + "/light/0/command", "off");
END
```

Zápis farebnej teploty

```taphome
IF ISNAN(Ct)
    RETURN(0);
END

VAR topic := "shellies/" + bulb3topic + "/light/0/set";
MQTTPUBLISH(topic, "{\"transition\": " + transitionTime + ", \"temp\":" + Ct + "}");
```

Elektromer 4 Elektromer Len na čítanie

Okamžitý výkon (kW) a kumulatívna spotreba (kWh) žiarovky 4 — vyžaduje nastavenie Settings → Device Model v Shelly app, inak obe hodnoty ostávajú na 0

numeric Jednotka: kW / kWh

Listener

```taphome
ADDINFO("To enable power monitoring, open device settings in Shelly app or web browser and configure device model in Settings->Device Model");

IF(INDEXOF(bulb4topic, "ShellyBulbDuo-deviceid") = 0)
    ADDERROR("Set correct 'bulb4topic' value in module variables. Topic format is 'ShellyBulbDuo-<deviceid>'. The Device ID can be found by opening url 'http://shellyIpAddress', in Settings -> Device info.");
    RETURN(-1);
END

IF INDEXOF(RECEIVEDMSG.TOPIC, "shellies/" + bulb4topic + "/light/0/power") = 0
    Ed := TODOUBLE(TOSTRING(RECEIVEDMSG.PAYLOAD)) / 1000.0;
ELSEIF INDEXOF(RECEIVEDMSG.TOPIC, "shellies/" + bulb4topic + "/light/0/energy") = 0
    To := TODOUBLE(TOSTRING(RECEIVEDMSG.PAYLOAD)) / 60000.0;
END
```

Svetlo 4 Biele svetlo Čítanie aj zápis

Žiarovka 4 s laditeľnou bielou — zap/vyp, jas 0-100 % a teplota svetla 3000-6500 K s plynulými prechodmi

json Jednotka: % / K json\_path

Premenná: `transitionTime` — Čas prechodu pre danú žiarovku v milisekundách (0-5000 ms), odvodený z import parametra TransitionTime

Listener

```taphome
IF(INDEXOF(bulb4topic, "ShellyBulbDuo-deviceid") = 0)
    ADDERROR("Set correct 'bulb4topic' value in module variables. Topic format is 'ShellyBulbDuo-<deviceid>'. The Device ID can be found by opening url 'http://shellyIpAddress', in Settings -> Device info.");
    RETURN(-1);
END

IF INDEXOF(RECEIVEDMSG.TOPIC, "shellies/" + bulb4topic + "/light/0/status") != 0
    RETURN(0);
END

IF RECEIVEDMSG.PAYLOAD.LENGTH = 0
    RETURN(0);
END

VAR ison := PARSEJSON(RECEIVEDMSG.PAYLOAD, "$.ison", 1);
VAR bright := PARSEJSON(RECEIVEDMSG.PAYLOAD, "$.brightness");

IF ISNULL(ison) OR ISNULL(bright)
    RETURN(0);
END

Ct := PARSEJSON(RECEIVEDMSG.PAYLOAD, "$.temp", 1);

IF ison
    Hb := bright / 100.0;
    St := isOn;
ELSE 
    Hb := 0;
    St := 0;
END
```

Zápis jasu

```taphome
IF St > 0.5
    VAR topic := "shellies/" + bulb4topic + "/light/0/set";    
    MQTTPUBLISH(topic, "{\"turn\": \"on\", \"transition\": " + transitionTime + ", \"brightness\": " + ROUND(Hb*100.0) + "}");
ELSE
    MQTTPUBLISH("shellies/" + bulb4topic + "/light/0/command", "off");
END
```

Zápis farebnej teploty

```taphome
IF ISNAN(Ct)
    RETURN(0);
END

VAR topic := "shellies/" + bulb4topic + "/light/0/set";
MQTTPUBLISH(topic, "{\"transition\": " + transitionTime + ", \"temp\":" + Ct + "}");
```

Elektromer 5 Elektromer Len na čítanie

Okamžitý výkon (kW) a kumulatívna spotreba (kWh) žiarovky 5 — vyžaduje nastavenie Settings → Device Model v Shelly app, inak obe hodnoty ostávajú na 0

numeric Jednotka: kW / kWh

Listener

```taphome
ADDINFO("To enable power monitoring, open device settings in Shelly app or web browser and configure device model in Settings->Device Model");

IF(INDEXOF(bulb5topic, "ShellyBulbDuo-deviceid") = 0)
    ADDERROR("Set correct 'bulb5topic' value in module variables. Topic format is 'ShellyBulbDuo-<deviceid>'. The Device ID can be found by opening url 'http://shellyIpAddress', in Settings -> Device info.");
    RETURN(-1);
END

IF INDEXOF(RECEIVEDMSG.TOPIC, "shellies/" + bulb5topic + "/light/0/power") = 0
    Ed := TODOUBLE(TOSTRING(RECEIVEDMSG.PAYLOAD)) / 1000.0;
ELSEIF INDEXOF(RECEIVEDMSG.TOPIC, "shellies/" + bulb5topic + "/light/0/energy") = 0
    To := TODOUBLE(TOSTRING(RECEIVEDMSG.PAYLOAD)) / 60000.0;
END
```

Svetlo 5 Biele svetlo Čítanie aj zápis

Žiarovka 5 s laditeľnou bielou — zap/vyp, jas 0-100 % a teplota svetla 3000-6500 K s plynulými prechodmi

json Jednotka: % / K json\_path

Premenná: `transitionTime` — Čas prechodu pre danú žiarovku v milisekundách (0-5000 ms), odvodený z import parametra TransitionTime

Listener

```taphome
IF(INDEXOF(bulb5topic, "ShellyBulbDuo-deviceid") = 0)
    ADDERROR("Set correct 'bulb5topic' value in module variables. Topic format is 'ShellyBulbDuo-<deviceid>'. The Device ID can be found by opening url 'http://shellyIpAddress', in Settings -> Device info.");
    RETURN(-1);
END

IF INDEXOF(RECEIVEDMSG.TOPIC, "shellies/" + bulb5topic + "/light/0/status") != 0
    RETURN(0);
END

IF RECEIVEDMSG.PAYLOAD.LENGTH = 0
    RETURN(0);
END

VAR ison := PARSEJSON(RECEIVEDMSG.PAYLOAD, "$.ison", 1);
VAR bright := PARSEJSON(RECEIVEDMSG.PAYLOAD, "$.brightness");

IF ISNULL(ison) OR ISNULL(bright)
    RETURN(0);
END

Ct := PARSEJSON(RECEIVEDMSG.PAYLOAD, "$.temp", 1);

IF ison
    Hb := bright / 100.0;
    St := isOn;
ELSE 
    Hb := 0;
    St := 0;
END
```

Zápis jasu

```taphome
IF St > 0.5
    VAR topic := "shellies/" + bulb5topic + "/light/0/set";    
    MQTTPUBLISH(topic, "{\"turn\": \"on\", \"transition\": " + transitionTime + ", \"brightness\": " + ROUND(Hb*100.0) + "}");
ELSE
    MQTTPUBLISH("shellies/" + bulb5topic + "/light/0/command", "off");
END
```

Zápis farebnej teploty

```taphome
IF ISNAN(Ct)
    RETURN(0);
END

VAR topic := "shellies/" + bulb5topic + "/light/0/set";
MQTTPUBLISH(topic, "{\"transition\": " + transitionTime + ", \"temp\":" + Ct + "}");
```

**Pripojenie:** Packet Parser → MQTT • Hostname: `ShellyBulbDuo-{MAC}.local`

Možné vylepšenia (7)

- Connection Status (LWT) — Last Will and Testament — true on connect, false on disconnect. Could detect offline bulbs.
- Full Status JSON — Complete /status as JSON. Could expose wifi\_sta.rssi, has\_update, uptime, source of last command.
- Device Announce — Emitted on boot/announce — payload {id, model, mac, ip, fw\_ver, new\_fw}. Useful for auto-discovery.
- White channel (0-100 %) — Separate 'white' parameter (0-100) on the set JSON; template only writes brightness/temp.
- Timer (auto on/off) — Auto-off timer in seconds via set JSON. Not surfaced as TapHome capability.
- Warm-white below 3000 K — TapHome XML clamps MinColorTemperature to 3000 K; the bulb hardware can go down to 2700 K (GU10). E27 marketed range starts at 3000 K — clamp matches E27 spec but loses 300 K of GU10 range.
- MQTT broker authentication — Shelly device side supports MQTT username/password, but TapHome import parameters do not expose them. Workaround: open broker without auth on a trusted segment.

## 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`        |
| Transition time (ms)  | `300`         |

## 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 DUO — MQTT Bulb API
  
  [shelly-api-docs.shelly.cloud](https://shelly-api-docs.shelly.cloud/gen1/#shelly-duo-mqtt) 2026-04-25
- Shelly DUO — Product Datasheet
  
  [shellystore.co.uk](https://shellystore.co.uk/wp-content/uploads/2021/05/Duo-specs.pdf) 2026-04-25
  
  [PDF](https://taphome.com/compatibility/devices/shelly-duo-mqtt/manufacturer/duo-specs.pdf)

Dokumenty výrobcov sú © ich príslušných vlastníkov. Poskytujeme ich tak, ako ich zverejnil výrobca, len na informačné účely.

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

