---
title: "Shelly DUO MQTT"
description: "Akár 5 fehér Shelly DUO izzó vezérlése MQTT-n — fényerő, CCT 3000-6500 K finom átmenetekkel és kW/kWh mérés izzónként. TapHome Gen1."
url: "https://taphome.com/hu/compatibility/shelly-duo-mqtt/"
language: hu
lastmod: 2026-04-25
generator: hugo
ai:
  topics: ["mqtt","lighting","wifi","tunable-white","cct","power-metering","led-bulb","gen1","mdns"]
  questions: ["Hogyan integrálható a Shelly DUO a TapHome-mal MQTT-n keresztül?","Hogyan található meg a Shelly DUO MQTT Device ID-ja?","Hogyan vezérelhető több Shelly DUO izzó egy TapHome sablonból?","Miért mutat nullát a Shelly DUO fogyasztása a TapHome-ban?","Miért csak 3000 K a legmelegebb színhőmérséklet 2700 K helyett?","Az MQTT bekapcsolása a Shelly DUO-n letiltja a Shelly Cloudot?"]
---

# Shelly DUO MQTT

Kommunikáció: Packet Parser → MQTT

- [Shelly DUO termékoldal](https://www.shelly.com/en/products/shop/shelly-bulb-duo)
- [Shelly Gen1 MQTT API dokumentáció](https://shelly-api-docs.shelly.cloud/gen1/#shelly-duo-mqtt)

> Hálózati cím
> 
> A TapHome-ba épített MQTT bróker esetén a TapHome-ban brókercímként adja meg a `127.0.0.1` címet. Az eszközben a TapHome Core IP-címét adja meg, és a Core-nak állítson be IP-foglalást a routerben.
> 
> [A hálózat előkészítése](https://taphome.com/hu/docs/setup/network-preparation/)

## Integrációs útmutató

A Shelly DUO (modell **SHBDUO-1**) egy Gen1 Wi-Fi LED okos izzó, **E27** és **GU10** változatban kapható. Az alap DUO **csak fehér** állítható színhőmérséklettel és szabályozható fényerővel — nincsenek RGB csatornái (az RGB-képes változat a *DUO RGBW* / `shellycolorbulb-`, amely külön sablont használ). Ez az integráció **MQTT változata**; egy izzós telepítéshez elérhető egy [HTTP változat](https://taphome.com/hu/compatibility/shelly-duo/) is.

A sablon **5 DUO izzót** támogat modulonként egy közös, helyi hálózaton elérhető MQTT brókeren keresztül. Minden izzót a `bulbNtopic` modulváltozó azonosít, amely az izzó MQTT Device ID-jára mutat, és minden izzóhoz egy fehér fény eszköz és egy elektromos mérő tartozik — összesen 10 eszköz.

## Konfiguráció

### MQTT bróker

A sablonhoz egy helyi hálózaton elérhető MQTT bróker szükséges — bármilyen szabványos bróker megfelel (Mosquitto, EMQX vagy a Home Assistant beépített brókere). A bróker az **1883-as porton** fut TLS nélkül (a Gen1 Shelly hardver nem támogatja a TLS-t MQTT felett), ezért tartsa megbízható szegmensben.

A sablon importálása után állítsa be a brókerkapcsolatot a modul import paramétereiben:

| Paraméter | Alapérték | Leírás |
|-----------|-----------|--------|
| **MQTT Broker IP** (`IpAddress`) | `192.168.0.1` | A bróker címe a helyi hálózaton |
| **MQTT Broker port** (`Port`) | `1883` | Szabványos MQTT port (TLS nélkül) |
| **Transition time** (`TransitionTime`) | `300` | Alapértelmezett izzónkénti átmenet ideje milliszekundumban |

### MQTT engedélyezése az izzón

Minden Shelly DUO izzót a brókerre kell mutatni, mielőtt üzeneteket publikál vagy parancsokat fogad:

1. Nyissa meg az izzó webes felületét a `http://<bulb-ip>` címen (az IP-t a router DHCP táblájában vagy a Shelly appban találja meg)
2. Lépjen az **Internet & Security** → **Advanced — MQTT** menübe és kapcsolja be az **MQTT**-t
3. Adja meg a bróker **server** mezőjét (IP és port, pl. `192.168.0.10:1883`), a **username** / **password** mezőket pedig hagyja üresen (a TapHome sablon nem támogatja a bróker hitelesítést)
4. Opcionálisan módosítsa az **MQTT prefix** értékét, ha nem szeretné az alapértelmezett `shellies/ShellyBulbDuo-<MAC6>` előtagot
5. Mentse és indítsa újra az izzót — újra csatlakozás után publikálni kezd a `shellies/ShellyBulbDuo-<id>/light/0/status` topicra

### Device ID (`bulbNtopic`)

Minden Shelly DUO egyedi MQTT Device ID-val rendelkezik **`ShellyBulbDuo-<MAC6>`** formátumban, ahol `<MAC6>` a MAC-cím utolsó 6 hex karaktere (pl. `ShellyBulbDuo-B929CC`). Ugyanez az érték az izzó mDNS hostneve is (`ShellyBulbDuo-<MAC6>.local`).

A Device ID megtalálható:

- A Shelly web UI-ban: **Settings** → **Device Info** → `mqtt.id` mező
- HTTP-n keresztül: `GET http://<bulb-ip>/settings` → `mqtt.id`
- Az eszköz címkéjén / csomagolásán (a MAC utolsó 6 karaktere, kis hex)
- Az mDNS hostnévként, pl. `ShellyBulbDuo-b929cc.local`

Nyissa meg a **Shelly DUO MQTT** modult a TapHome-ban, és töltse ki a topic változókat minden használni kívánt izzóhoz:

| Változó | Alapérték | Leírás |
|---------|-----------|--------|
| `bulb1topic` | `ShellyBulbDuo-deviceid1` | Az első DUO izzó MQTT Device ID-ja |
| `bulb2topic` | `ShellyBulbDuo-deviceid2` | A második DUO izzó MQTT Device ID-ja |
| `bulb3topic` | `ShellyBulbDuo-deviceid3` | A harmadik DUO izzó MQTT Device ID-ja |
| `bulb4topic` | `ShellyBulbDuo-deviceid4` | A negyedik DUO izzó MQTT Device ID-ja |
| `bulb5topic` | `ShellyBulbDuo-deviceid5` | Az ötödik DUO izzó MQTT Device ID-ja |

Cserélje le a placeholder értéket minden vezérelni kívánt izzó valódi Device ID-jára (pl. `ShellyBulbDuo-B929CC`). A modul feliratkozik a `shellies/#` topicra, és az izzónkénti listener szkriptek topic prefix alapján szűrik az üzeneteket. Azok a slotok, amelyek placeholder értéken maradnak, hibát adnak a TapHome-ban, amíg nincsenek konfigurálva vagy eltávolítva a sablonból.

### Izzónkénti átmenet idő

Minden Light eszköz `transitionTime` változóval rendelkezik (milliszekundumban, 0-5000 ms tartomány), amely alapértelmezésben a modul szintű `TransitionTime` import paramétertől öröklődik. Írja felül az egyes izzókon, ha eltérő átmenet időket szeretne — az érték minden fényerő- vagy CCT-változásnál a `/light/0/set` JSON payload `transition` mezőjeként kerül elküldésre.

> [!WARNING]
> Az MQTT bekapcsolása egy Gen1 Shelly eszközön **letiltja a Shelly Cloudot** — a kettő nem futhat egyszerre. A HTTP REST és a CoIoT továbbra is elérhető marad, így az izzó a helyi hálózaton elérhető marad.

## Eszközfunkciók

A sablon 10 eszközt biztosít modulonként — 5 állítható fehér fényt és 5 elektromos mérőt, fizikai izzónként egy párt. Mind az 5 pár funkcionálisan azonos, csak a `bulbNtopic` különbözteti meg őket, amelyre figyelnek.

### Fény vezérlése

Minden Light eszköz a TapHome-ban **White Light** ként van leképezve, két vezérlési tulajdonsággal:

- **Fényerő** — a `light/0/status` JSON `$.brightness` mezőjéből (0-100) olvasott, a TapHome 0.0-1.0 tartományára skálázva; a `light/0/set` topicra írva `"turn":"on", "brightness":N, "transition":<ms>` üzenettel
- **Színhőmérséklet** — a `$.temp` mezőből (3000-6500 K) olvasott, a `light/0/set` topicra írva `"temp":K, "transition":<ms>` üzenettel

A fény kikapcsolása külön `light/0/command` topicot használ `off` payload-dal, ami gyorsabb, mint JSON `set` üzenetet összeállítani. A fényerő- és CCT-frissítések mindig tartalmazzák a `transition` mezőt, így az izzó folyamatosan átúszik az ugrás helyett.

### Fogyasztásmérés

Minden Electric Meter két skalár topicra iratkozik fel, amelyeket az izzó nagyjából másodpercenként publikál:

| TapHome érték | Forrás topic | Forrás egység | Átváltás | Megjelenített egység |
|---------------|--------------|---------------|----------|----------------------|
| Pillanatnyi teljesítmény | `shellies/ShellyBulbDuo-<id>/light/0/power` | W | `÷ 1000` | kW |
| Összes fogyasztás | `shellies/ShellyBulbDuo-<id>/light/0/energy` | watt-perc | `÷ 60000` | kWh |

A watt-perc → kWh átváltásra azért van szükség, mert a Shelly Gen1 firmware kumulatív energiát W·perc-ben jelent W·óra helyett.

> [!TIP]
> A fogyasztásmérés csendben nullát ad vissza, amíg a **Settings → Device Model** (E27 vagy GU10) nincs beállítva a Shelly appban vagy web UI-ban. A TapHome listener az első olvasáskor információs banneren emlékeztet erre. A modell beállítása után az izzó azonnal nem nulla `power`/`energy` értékeket kezd jelenteni.

## Hibaelhárítás

### Az izzó nem reagál

1. Ellenőrizze, hogy az izzó csatlakozik a Wi-Fi-hez és elérhető a LAN-ban — nyissa meg `http://<bulb-ip>/shelly`. A `"type":"SHBDUO-1"` válasz megerősíti az eszközt.
2. Próbálja az mDNS hostnevet (`ShellyBulbDuo-<MAC6>.local`) az IP-cím helyett — DHCP megújítás vagy router újraindítás megváltoztathatja az IP-t.
3. Erősítse meg, hogy az MQTT engedélyezve van az izzó **Internet & Security → Advanced — MQTT** beállításaiban, és hogy a bróker IP/port megegyezik a TapHome import paramétereivel.
4. Használjon MQTT klienst (pl. **MQTT Explorer** vagy `mosquitto_sub -h <broker> -t 'shellies/#' -v`) annak ellenőrzésére, hogy az izzó publikál-e a `shellies/ShellyBulbDuo-<id>/...` topicra.

### "Set correct 'bulbNtopic' value" hiba

A listener szkript akkor dobja ezt a hibát, ha a `bulbNtopic` még az alapértelmezett placeholder értéken (`ShellyBulbDuo-deviceid`) áll. Vagy adja meg a valódi Device ID-t az adott slotra, vagy távolítsa el a nem használt eszközöket a sablonból, ha csak néhány izzója van.

### A teljesítmény és energia nullán marad

1. Nyissa meg a Shelly appot (vagy a web UI-t) → **Settings** → **Device Model** és válassza ki a megfelelő alváltozatot (**Shelly Bulb DUO E27** vagy **Shelly Bulb DUO GU10**). Az izzó csak a modell ismeretében kezdi számolni a `power`/`energy` értékeket.
2. Erősítse meg, hogy az izzó valóban be van kapcsolva — a mérő csak áramfolyás közben frissül.
3. Iratkozzon fel közvetlenül a `shellies/ShellyBulbDuo-<id>/light/0/power` topicra MQTT klienssel, és ellenőrizze, hogy az izzó nem nulla értéket publikál.

### A legmelegebb CCT csak 3000 K-ig megy

A TapHome XML a CCT-t **3000-6500 K** közé szorítja, hogy megfeleljen a hirdetett E27 tartománynak. Maga a hardver támogatja a **2700-6500 K** tartományt a GU10 alváltozaton és a nyers `/light/0/set` API-n, így a GU10 tartományának legmelegebb 300 K-je nem érhető el a TapHome sablonon keresztül.

### A fény átmenetei akadoznak

Növelje az adott izzó `transitionTime` változóját (vagy a modul szintű `TransitionTime` alapértékét). 300 ms rendben van kis tompítási lépésekhez, de nagy fényerő- vagy CCT-változásoknál lépcsősnek tűnhet — próbáljon 800-1500 ms-et finomabb átmenethez.

> [!WARNING]
> A Gen1 Shelly eszközök **sima MQTT-t** használnak az 1883-as porton — nincs TLS támogatás. A TapHome sablon a bróker `username` / `password` mezőit sem teszi elérhetővé, ezért használjon hitelesítés nélküli brókert egy megbízható helyi hálózaton vagy VLAN-on.

## Telepítés a TapHome-ban

### Előfeltételek

- Shelly eszköz csatlakoztatva a Wi-Fi-hez (2,4 GHz), pl. a Shelly alkalmazással vagy az eszköz saját hozzáférési pontján keresztül
- MQTT broker fut a helyi hálózaton (pl. Mosquitto, Home Assistant vagy a TapHome beépített brokere)
- TapHome CCU ugyanazon a hálózaton, mint a broker

> [!WARNING]
> A **Gen1** eszközökön az MQTT engedélyezése **letiltja a Shelly Cloudot**. A kettő nem futhat egyszerre. A Gen2/Plus eszközökön ez a korlátozás nem érvényes.

### 1. lépés — MQTT engedélyezése a Shelly eszközön

#### Gen1 eszközök (Shelly 1, 1PM, 2.5, EM, 3EM, Plug S, RGBW2, Dimmer, TRV…)

1. Nyissa meg a Shelly webes felületet: `http://<device-ip>/`
2. Navigáljon az **Internet & Security** → **Advanced — MQTT** menüpontra
3. Engedélyezze az **MQTT**-t
4. Állítsa be az **MQTT Server**-t: `<broker-ip>:<port>` (pl. `192.168.1.10:1883`)
5. Opcionálisan állítsa be az **MQTT User** és **MQTT Password** mezőket, ha a broker hitelesítést igényel
6. Kattintson a **Save** gombra — az eszköz újraindul és csatlakozik a brokerhez

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

1. Nyissa meg a Shelly webes felületet: `http://<device-ip>/`
2. Navigáljon a **Settings** → **MQTT** menüpontra
3. Engedélyezze az **MQTT**-t
4. Állítsa be a **Server**-t: `<broker-ip>:<port>` (pl. `192.168.1.10:1883`)
5. A **Client ID** előre ki van töltve az eszköz azonosítójával (pl. `shellyplus1pm-AABBCCDDEE`) — hagyja így, hacsak nincs konkrét oka a változtatásra
6. Kattintson a **Save** gombra és indítsa újra az eszközt

A beépített TapHome broker esetén a `<broker-ip>` a TapHome Core IP-címe. Adjon a Core-nak IP-foglalást a routerben, különben az eszköz elveszíti a brokert, amikor a router megváltoztatja a címet → [A hálózat előkészítése](https://taphome.com/hu/docs/setup/network-preparation/).

> [!TIP]
> Az MQTT működésének ellenőrzéséhez használjon egy MQTT klienst (pl. MQTT Explorer), és iratkozzon fel a `shellies/#` (Gen1) vagy `<device-id>/#` (Gen2) topikra. Látnia kell az eszköz állapotüzeneteit.

### 2. lépés — Device ID / MQTT Client ID megkeresése

Egyes sablonok **Device ID** vagy **MQTT Client ID** paramétert igényelnek. Ez az egyedi azonosító, amelyet az MQTT topikokban használnak.

- **Gen1:** a címkén MAC-címként található (pl. `AABBCCDDEE`). Device ID = `shelly<model>-<mac>`, pl. `shelly1pm-AABBCCDDEE`
- **Gen2/Plus:** a Shelly webes felületén a **Settings** → **Device Info** → **Device ID** alatt található, vagy az eszköz címkéjén

### 3. lépés — Konfigurálás a TapHome-ban

1. A TapHome-ban adjon hozzá egy új **Packet Parser (MQTT)** modult
2. **IP Address:** a beépített TapHome brokerhez `127.0.0.1` (a vezérlőegység saját magához csatlakozik, a cím soha nem változik); külső broker esetén annak IP-címe (pl. `192.168.1.10`)
3. **Port:** `1883` (alapértelmezett; TLS esetén használjon `8883`-at)
4. **Device ID / MQTT Client ID:** adja meg a 2. lépésben kapott értéket (ha a sablon megköveteli)
5. Importálja a sablont — a TapHome automatikusan feliratkozik az eszköz topikjaira

## Elérhető eszközök 10

Ezek az eszközök az importálás után jelennek meg a TapHome-ban.

Shelly DUO MQTT Modul

Egyéni változók

`bulb1topic` (string) = ShellyBulbDuo-deviceid1 Az első Shelly DUO izzó MQTT Device ID-ja — formátum: '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 A második Shelly DUO izzó MQTT Device ID-ja 

`bulb3topic` (string) = ShellyBulbDuo-deviceid3 A harmadik Shelly DUO izzó MQTT Device ID-ja 

`bulb4topic` (string) = ShellyBulbDuo-deviceid4 A negyedik Shelly DUO izzó MQTT Device ID-ja 

`bulb5topic` (string) = ShellyBulbDuo-deviceid5 Az ötödik Shelly DUO izzó MQTT Device ID-ja

Elektromos mérő 1 Villanyóra Csak olvasható

Az 1. izzó pillanatnyi teljesítménye (kW) és kumulatív energiája (kWh) — a Settings → Device Model beállítását igényli a Shelly appban, különben mindkét érték 0 marad

numeric Egység: kW / kWh

Figyelő

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

Fény 1 Fehér lámpa Olvasás és írás

1\. állítható fehér izzó — be/ki, fényerő 0-100 % és színhőmérséklet 3000-6500 K finom átmenetekkel

json Egység: % / K json\_path

Változó: `transitionTime` — Izzónkénti átmenet idő milliszekundumban (0-5000 ms), a TransitionTime import paramétertől örökölve

Figyelő

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

Fényerő írása

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

Színhőmérséklet írása

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

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

Elektromos mérő 2 Villanyóra Csak olvasható

A 2. izzó pillanatnyi teljesítménye (kW) és kumulatív energiája (kWh) — a Settings → Device Model beállítását igényli a Shelly appban, különben mindkét érték 0 marad

numeric Egység: kW / kWh

Figyelő

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

Fény 2 Fehér lámpa Olvasás és írás

2\. állítható fehér izzó — be/ki, fényerő 0-100 % és színhőmérséklet 3000-6500 K finom átmenetekkel

json Egység: % / K json\_path

Változó: `transitionTime` — Izzónkénti átmenet idő milliszekundumban (0-5000 ms), a TransitionTime import paramétertől örökölve

Figyelő

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

Fényerő írása

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

Színhőmérséklet írása

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

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

Elektromos mérő 3 Villanyóra Csak olvasható

A 3. izzó pillanatnyi teljesítménye (kW) és kumulatív energiája (kWh) — a Settings → Device Model beállítását igényli a Shelly appban, különben mindkét érték 0 marad

numeric Egység: kW / kWh

Figyelő

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

Fény 3 Fehér lámpa Olvasás és írás

3\. állítható fehér izzó — be/ki, fényerő 0-100 % és színhőmérséklet 3000-6500 K finom átmenetekkel

json Egység: % / K json\_path

Változó: `transitionTime` — Izzónkénti átmenet idő milliszekundumban (0-5000 ms), a TransitionTime import paramétertől örökölve

Figyelő

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

Fényerő írása

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

Színhőmérséklet írása

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

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

Elektromos mérő 4 Villanyóra Csak olvasható

A 4. izzó pillanatnyi teljesítménye (kW) és kumulatív energiája (kWh) — a Settings → Device Model beállítását igényli a Shelly appban, különben mindkét érték 0 marad

numeric Egység: kW / kWh

Figyelő

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

Fény 4 Fehér lámpa Olvasás és írás

4\. állítható fehér izzó — be/ki, fényerő 0-100 % és színhőmérséklet 3000-6500 K finom átmenetekkel

json Egység: % / K json\_path

Változó: `transitionTime` — Izzónkénti átmenet idő milliszekundumban (0-5000 ms), a TransitionTime import paramétertől örökölve

Figyelő

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

Fényerő írása

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

Színhőmérséklet írása

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

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

Elektromos mérő 5 Villanyóra Csak olvasható

Az 5. izzó pillanatnyi teljesítménye (kW) és kumulatív energiája (kWh) — a Settings → Device Model beállítását igényli a Shelly appban, különben mindkét érték 0 marad

numeric Egység: kW / kWh

Figyelő

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

Fény 5 Fehér lámpa Olvasás és írás

5\. állítható fehér izzó — be/ki, fényerő 0-100 % és színhőmérséklet 3000-6500 K finom átmenetekkel

json Egység: % / K json\_path

Változó: `transitionTime` — Izzónkénti átmenet idő milliszekundumban (0-5000 ms), a TransitionTime import paramétertől örökölve

Figyelő

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

Fényerő írása

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

Színhőmérséklet írása

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

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

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

Lehetséges fejlesztések (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.

## Importálási paraméterek

Ezeket az értékeket az XML importálásakor adja meg.

| Az alkalmazás kéri   | Alapérték     |
|----------------------|---------------|
| Mqtt Broker IP-cím   | `192.168.0.1` |
| Mqtt Broker port     | `1883`        |
| Transition time (ms) | `300`         |

## Források

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

A gyártói dokumentumok © a mindenkori tulajdonosaikat illetik. A gyártó által közzétett formában, kizárólag tájékoztatásul tesszük elérhetővé őket.

## Kapcsolódó dokumentáció

- [MQTT Integration](https://taphome.com/hu/compatibility/mqtt-guide/)
- [Packet Parser (HTTP, TCP, UDP, FTP, MQTT)](https://taphome.com/hu/docs/integration/packet-parser/)
- [Packet parser függvények](https://taphome.com/hu/docs/script/packet-parser/)
- [Elemző függvények](https://taphome.com/hu/docs/script/parsing-functions/)
- [MQTT bróker](https://taphome.com/hu/docs/integration/packet-parser/mqtt-broker/)
- [Listener szkriptek](https://taphome.com/hu/docs/script/listener-scripts/)

