---
title: "Shelly DUO RGBW"
description: "Plné RGB + CCT ovládání, plynulé přechody a měření spotřeby pro Shelly DUO RGBW GU10 žárovku. HTTP a MQTT šablony pro TapHome."
url: "https://taphome.com/cs/compatibility/shelly-duo-rgbw/"
language: cs
lastmod: 2026-10-08
generator: hugo
ai:
  topics: ["http","mqtt","lighting","wifi","rgbw","color-temperature","power-metering"]
  questions: ["Jak integrovat Shelly DUO RGBW s TapHome?","Jak ovládat barvu a jas Shelly DUO RGBW přes TapHome?","Jak připojit Shelly DUO RGBW přes HTTP k TapHome?","Jak připojit více žárovek Shelly DUO RGBW přes MQTT k TapHome?","Proč Shelly DUO RGBW ukazuje nulový výkon?","Jak přepínat mezi RGB a bílým režimem na Shelly DUO RGBW?"]
---

# Shelly DUO RGBW

Komunikace: Packet Parser → HTTP

- [Produktová stránka Shelly DUO RGBW](https://www.shelly.com/en/products/shop/shelly-duo-rgbw-gu10)

> Adresa v síti
> 
> TapHome komunikuje se zařízením na adrese zadané při importu. Dejte zařízení stálou adresu — rezervaci IP v routeru, nebo jeho mDNS jméno, pokud ho podporuje —, jinak integrace přestane fungovat, když router adresu změní.
> 
> [Příprava sítě](https://taphome.com/cs/docs/setup/network-preparation/)

## Návod na integraci

Shelly DUO RGBW je chytrá Wi-Fi LED žárovka Gen1 ve formátu GU10. Podporuje plné RGB barvy a nastavitelnou bílou (CCT 3000–6500 K) s plynulými přechodovými efekty. TapHome komunikuje se zařízením přes lokální síť — cloudové připojení není potřeba.

K dispozici jsou dvě TapHome šablony: **HTTP šablona** pro ovládání jedné žárovky přes REST API a **MQTT šablona**, která může ovládat až **5 žárovek** přes sdílený MQTT broker. Obě šablony vystavují plné ovládání světla a měření spotřeby.

## Konfigurace

### HTTP šablona

HTTP šablona vyžaduje IP adresu žárovky (výchozí placeholder `192.168.0.1`) a volitelný čas přechodu v milisekundách (výchozí 300 ms). TapHome dotazuje endpoint `/status` každé 2,5 sekundy pro čtení stavu světla, barevných hodnot a údajů o spotřebě energie.

Čtecí skript na úrovni modulu ukládá odpověď `/status` do vlastní proměnné `jsonStatus`, takže skripty jednotlivých zařízení mohou parsovat údaje bez zbytečných HTTP volání.

### MQTT šablona

MQTT šablona vyžaduje údaje o připojení k brokeru a jedno nebo více **Device ID** — jedno na žárovku. Device ID každé žárovky se konfiguruje přes vlastní proměnnou `bulbNtopic` (formát: `shellycolorbulb-DEVICEID`). Device ID najdete ve webovém rozhraní Shelly v části **Settings** > **Device Info**.

Šablona podporuje až 5 žárovek současně. Konfigurujte proměnné `bulbNtopic` pouze pro žárovky, které skutečně máte — nepoužité sloty mohou zůstat na výchozích placeholder hodnotách.

Po zapnutí MQTT na Shelly DUO RGBW (Internet & Security > Advanced — MQTT) se TapHome přihlásí k odběru `shellies/#` a směruje zprávy na správnou instanci žárovky podle prefixu topicu.

> [!WARNING]
> Na zařízeních Shelly Gen1 zapnutí MQTT **vypne Shelly Cloud**. Obojí nemůže běžet současně.

## Funkce zařízení

### Ovládání světla

Žárovka pracuje ve dvou vzájemně výlučných režimech:

- **Barevný režim** — plné RGB ovládání přes červený, zelený a modrý kanál (0–255 každý) plus gain (jas, 0–100 %). TapHome to reprezentuje jako HSB světlo — odstín (0–360), sytost (0,0–1,0) a jas (0,0–1,0) se konvertují z RGB pomocí funkce `RGBTOHSV`.
- **Bílý režim** — nastavitelná bílá přes teplotu chromatičnosti (3000–6500 K) a jas (0–100 %). Nastavení hodnoty CCT v TapHome automaticky přepne žárovku do bílého režimu.

Režim se přepíná automaticky podle toho, kterou vlastnost nastavíte:
- Nastavení odstínu nebo sytosti odešle příkaz `/light/0?mode=color` (HTTP) nebo JSON payload s `"mode":"color"` přes `color/0/set` (MQTT)
- Nastavení CCT odešle příkaz `/light/0?mode=white` (HTTP) nebo payload s `"mode":"white"` (MQTT)

Všechny příkazy zápisu obsahují nakonfigurovaný parametr `transitionTime` pro plynulé stmívání mezi stavy. Debounce mechanismus zabraňuje zastaralým čtením během přechodů — šablona ignoruje odpovědi `/status` krátkou dobu po každém zápisu.

> [!NOTE]
> V MQTT režimu je debounce okno doba přechodu plus 3 sekundy po každém zápisu (delší než HTTP šablona) kvůli latenci doručování MQTT zpráv.

### Měření spotřeby

Obě šablony vystavují elektroměr, který čte dvě hodnoty:

- **Okamžitý výkon** — ve wattech, konvertovaný na kW dělením 1000
- **Celková spotřeba** — ve watt-minutách, konvertovaná na kWh dělením 60 000

HTTP šablona čte `meters[0].power` a `meters[0].total` z odpovědi `/status`. MQTT šablona naslouchá topicům `shellies/{id}/light/0/power` a `shellies/{id}/light/0/energy` pro každou žárovku nezávisle.

> [!TIP]
> Monitorování spotřeby vyžaduje nakonfigurování modelu zařízení v aplikaci Shelly nebo webovém rozhraní v části **Settings** > **Device Model**. Pokud model není nastaven a žárovka je zapnutá, ale výkon ukazuje nulu, šablona zobrazí varování.

### Servisní diagnostika (pouze HTTP)

HTTP šablona vystavuje 10 servisních atributů pro monitorování zařízení:

- **Síťové info** — IP adresa, MAC adresa, síla WiFi signálu (dB)
- **Připojitelnost** — cloud povolen/připojen, MQTT připojen
- **Systém** — čas zařízení, dostupná aktualizace firmwaru, doba provozu, využití RAM

### Servisní akce (pouze HTTP)

V HTTP šabloně jsou k dispozici dvě servisní akce:

- **Povolit cloud** — zapne nebo vypne připojení Shelly Cloud
- **Restart** — spustí restart zařízení

### Další funkce

Shelly DUO RGBW také podporuje světelné efekty (meteor shower, gradual change, breath, flash, on/off gradual, red/green change), dedikovaný bílý LED kanál v barevném režimu a MQTT stav připojení (LWT). Tyto funkce mohou být přidány v budoucí aktualizaci šablony.

## Řešení problémů

### Žárovka neodpovídá (HTTP)

1. Ověřte, že žárovka je připojena k Wi-Fi a má platnou IP adresu
2. Zkuste použít mDNS hostname (`shellycolorbulb-AABBCCDDEE.local`) místo IP adresy — IP se mohla změnit po obnovení DHCP
3. Otevřete `http://{device-ip}/shelly` v prohlížeči — pokud odpoví, zařízení je dostupné
4. Zkontrolujte, že TapHome CCU a žárovka jsou ve stejné síti / VLAN

### Barvy se zobrazují nesprávně

1. Ověřte, že žárovka je ve správném režimu — RGB barvy fungují pouze v barevném režimu, ne v bílém režimu
2. Při nastavování barvy přes TapHome zkontrolujte, že sytost je větší než nula — sytost 0 produkuje bílé světlo bez ohledu na odstín
3. Zkontrolujte, že gain (jas v barevném režimu) není nastaven na nulu

### Výkon ukazuje nulu

1. Potvrďte, že model zařízení je nakonfigurován v aplikaci Shelly (Settings > Device Model)
2. Zkontrolujte, že žárovka je zapnutá — elektroměr měří pouze když protéká proud
3. Zavolejte `/status` manuálně a ověřte, že `meters[0].power` vrací nenulovou hodnotu

### MQTT žárovky neodpovídají

1. Ověřte, že MQTT je zapnuto ve webovém rozhraní každé žárovky (Internet & Security > Advanced — MQTT)
2. Potvrďte, že adresa brokeru a port jsou správné v nastavení zařízení Shelly i modulu TapHome
3. Zkontrolujte, že vlastní proměnná `bulbNtopic` se přesně shoduje s Device ID žárovky (např. `shellycolorbulb-B929CC`)
4. Použijte MQTT klienta (např. MQTT Explorer) pro odběr `shellies/#` a ověřte, že každá žárovka publikuje zprávy

> [!WARNING]
> Zařízení Shelly Gen1 podporují pouze **2 souběžná HTTP připojení**. Pokud TapHome a jiný systém (např. Home Assistant) dotazují stejnou žárovku současně, komunikace může být nespolehlivá. Zvažte přechod na MQTT šablonu pro prostředí s více systémy.

## Jak nainstalovat v TapHome

### Předpoklady

- Zařízení Shelly nainstalované a zapnuté
- Lokální Wi-Fi síť (2,4 GHz)
- TapHome CCU ve stejné síti

### Krok 1 — Připojte Shelly k Wi-Fi

**Možnost A — Aplikace Shelly (doporučeno):**

1. Stáhněte si [aplikaci Shelly](https://www.shelly.com/en/support/shelly-app) (iOS / Android)
2. Klepněte na **+** → **Add Device** a postupujte podle průvodce Bluetooth párováním
3. Po výzvě zadejte své Wi-Fi přihlašovací údaje

**Možnost B — AP režim (bez aplikace):**

1. Při prvním zapnutí zařízení vytvoří hotspot: `ShellyXXX-AABBCCDDEE`
2. Připojte telefon/PC k tomuto hotspotu
3. Otevřete `http://192.168.33.1` → **Internet & Security** → **Wi-Fi Mode - Client**
4. Zadejte SSID a heslo → **Save**

> [!NOTE]
> Shelly podporuje pouze **2,4 GHz** sítě. 5 GHz sítě se při skenování nezobrazí.

### Krok 2 — Zjistěte IP adresu

Po připojení k Wi-Fi zjistěte přiřazenou IP adresu jedním z následujících způsobů:

- **Aplikace Shelly:** Detail zařízení → **Device info** → IP adresa
- **Webové rozhraní Shelly:** Připojte se k AP zařízení před nastavením Wi-Fi — IP se zobrazí po uložení
- **DHCP tabulka routeru:** Hledejte hostname jako `shelly1pm-AABBCCDDEE`
- **mDNS:** Pingněte `shelly<model>-<mac>.local` (např. `shelly1pm-AABBCCDDEE.local`) ze stejné sítě

> [!TIP]
> Přiřaďte zařízení Shelly **statickou IP** (DHCP rezervaci) ve vašem routeru, aby se adresa nezměnila po restartu routeru.

### Krok 3 — Konfigurace v TapHome

1. V TapHome přidejte nový modul **Packet Parser (HTTP)**
2. **IP Address:** zadejte IP z kroku 2 (např. `192.168.1.50`)
3. **Port:** `80` (výchozí, není potřeba měnit)
4. Importujte šablonu — TapHome bude pravidelně číst `/status` pro zjištění stavu zařízení

> [!NOTE]
> HTTP autentifikace je na zařízeních Shelly standardně vypnutá. Pokud jste povolili ochranu přihlášením, TapHome momentálně nepodporuje HTTP Basic Auth — pro integraci s TapHome ponechte autentifikaci vypnutou.

## Dostupná zařízení 2

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

Shelly DUO RGBW Modul

Servisní atributy

|                         |
|-------------------------|
| IP adresa               |
| MAC adresa              |
| WiFi signál             |
| Cloud povolen           |
| Cloud připojen          |
| MQTT připojen           |
| Čas zařízení            |
| Dostupná aktualizace FW |
| Doba provozu            |
| RAM                     |

Servisní akce

|               |
|---------------|
| Povolit cloud |
| Restart       |

Vlastní proměnné

|                                             |                                                                              |
|---------------------------------------------|------------------------------------------------------------------------------|
| `transitionTime` (numeric) = TransitionTime | Light transition duration in milliseconds (import parameter, default 300 ms) |

Čtení (modul)

```taphome
VAR now := NOW();

IF now.Ticks < debounceTimestamp
    RETURN(0);
END

VAR response := SENDHTTPREQUEST("/status");

IF response.IsSuccess
    jsonStatus := response.Content;
ELSE
    jsonStatus := NULL;
END
```

Servisní atributy

IP Address

```taphome
VAR response := SENDHTTPREQUEST("/status");

IF response.IsSuccess
    jsonStatus := response.Content;
ELSE
    jsonStatus := NULL;
END

VAR address := PARSEJSON(jsonStatus, "$.wifi_sta.ip", 1);
IF (ISNULL(address), "-", address)
```

MAC Address

```taphome
VAR value := PARSEJSON(jsonStatus, "$.mac", 1);
IF ISNULL(value)
    RETURN("-");
END;

STRING mac;
INT i := 0;
INT len := LENGTH(value);

WHILE i < len
    mac += GETAT(value, i);
    i += 1;
    
    IF MOD(i, 2) = 0 AND i < len
        mac += ":";
    END
LOOP

mac
```

WIFI signal

```taphome
VAR signal := PARSEJSON(jsonStatus, "$.wifi_sta.rssi", 1);
IF (ISNULL(signal), "-", signal + "db");
```

Cloud enabled

```taphome
VAR value := PARSEJSON(jsonStatus, "$.cloud.enabled", 1);
IF (ISNULL(value), "-", value)
```

Cloud connected

```taphome
VAR value := PARSEJSON(jsonStatus, "$.cloud.connected", 1);
IF (ISNULL(value), "-", value)
```

MQTT connected

```taphome
VAR value := PARSEJSON(jsonStatus, "$.mqtt.connected", 1);
IF (ISNULL(value), "-", value)
```

Device time

```taphome
VAR value := PARSEJSON(jsonStatus, "$.time", 1);
IF (ISNULL(value), "-", value)
```

FW update available

```taphome
VAR value := PARSEJSON(jsonStatus, "$.has_update");
IF (ISNULL(value), "-", value)
```

Uptime

```taphome
VAR value := PARSEJSON(jsonStatus, "$.uptime", 1);
IF ISNULL(value)
    RETURN("-");
END

VAR days := FLOOR(value/86400, 1);
value := MOD(value, 86400);
VAR hours := FLOOR(value/3600, 1);
value := MOD(value, 3600);
VAR minutes := FLOOR(value/60, 1);

days + "day(s) " + hours + "h " + minutes + "m"
```

RAM

```taphome
VAR ramFree := PARSEJSON(jsonStatus, "$.ram_free", 1);
VAR ramTotal := PARSEJSON(jsonStatus, "$.ram_total", 1);

IF ISNULL(ramFree) OR ISNULL(ramTotal)
    RETURN("-");
END

ramFree + " bytes free of " + ramTotal
```

Servisní akce

Enable cloud

Parametry: Enable (Enable / Disable)

```taphome
VAR response := SENDHTTPREQUEST("/settings/cloud?enabled=" + enable);
VAR contentJson := response.Content;
VAR wasEnabled := PARSEJSON(contentJson, "enabled");

IF(wasEnabled, "Cloud enabled", "Cloud disabled");
```

Reboot

```taphome
VAR response := SENDHTTPREQUEST("/reboot");
VAR contentJson := response.Content;
VAR wasRebooted := PARSEJSON(contentJson, "ok");

IF(wasRebooted, "Reboot successful", "Error");
```

RGBW světlo HSB světlo Čtení i zápis

Plné RGB barvy + nastavitelná bílá (CCT 3000–6500 K) s plynulými přechody a ovládáním jasu podle režimu

HSB

Čtení jasu

```taphome
VAR now := NOW();

IF now.Ticks < debounceTimestamp
    RETURN(Hb);
END

INT value;
VAR mode := PARSEJSON(jsonStatus, "$.lights[0].mode", 1);

IF mode = "white"
    value := PARSEJSON(jsonStatus, "$.lights[0].brightness", 1);
ELSE
    value := PARSEJSON(jsonStatus, "$.lights[0].gain", 1);
END

IF ISNULL(value)
    RETURN(NaN);
END

BOOL isOn := PARSEJSON(jsonStatus, "$.lights[0].ison", 1);

IF ISNULL(isOn)
    RETURN(NaN);
END

IF(isOn, value/100.0, 0);
```

Zápis jasu

```taphome
IF St > 0.5
    VAR mode := PARSEJSON(jsonStatus, "$.lights[0].mode", 1);
    
    IF mode = "white"
        SENDHTTPREQUEST("light/0?turn=on&transition=" + transitionTime + "&brightness=" + ROUND(Hb*100.0));
    ELSE
        SENDHTTPREQUEST("light/0?turn=on&transition=" + transitionTime + "&gain=" + ROUND(Hb*100.0));
    END
ELSE
    SENDHTTPREQUEST("light/0?turn=off&transition=" + transitionTime);
END

VAR now := NOW();
debounceTimestamp := now.Ticks + transitionTime + 500;
```

Čtení odstínu

```taphome
VAR now := NOW();

IF now.Ticks < debounceTimestamp
    RETURN(Hd);
END

INT r := PARSEJSON(jsonStatus, "$.lights[0].red", 1);
INT g := PARSEJSON(jsonStatus, "$.lights[0].green", 1);
INT b := PARSEJSON(jsonStatus, "$.lights[0].blue", 1);
 
VAR HSVColor := RGBTOHSV(r, g, b);
ROUND(HSVColor.Hue);
```

Zápis odstínu

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

VAR color := HSVTORGB(Hd, Sa, 1);

SENDHTTPREQUEST("light/0?mode=color&transition=" + transitionTime + "&gain=" + ROUND(Hb*100) + "&red=" + color.RED + "&green=" + color.GREEN + "&blue=" + color.BLUE);


VAR now := NOW();
debounceTimestamp := now.Ticks + transitionTime + 500;
```

Čtení saturace

```taphome
VAR now := NOW();

IF now.Ticks < debounceTimestamp
    RETURN(Sa);
END

INT r := PARSEJSON(jsonStatus, "$.lights[0].red", 1);
INT g := PARSEJSON(jsonStatus, "$.lights[0].green", 1);
INT b := PARSEJSON(jsonStatus, "$.lights[0].blue", 1);
 
VAR HSVColor := RGBTOHSV(r, g, b);
ROUND(HSVColor.Saturation * 100.0) / 100.0;
```

Zápis saturace

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

VAR color := HSVTORGB(Hd, Sa, 1);

SENDHTTPREQUEST("light/0?mode=color&transition=" + transitionTime + "&gain=" + ROUND(Hb*100) + "&red=" + color.RED + "&green=" + color.GREEN + "&blue=" + color.BLUE);


VAR now := NOW();
debounceTimestamp := now.Ticks + transitionTime + 500;
```

Čtení barevné teploty

```taphome
VAR now := NOW();

IF now.Ticks < debounceTimestamp
    RETURN(Ct);
END

INT value := PARSEJSON(jsonStatus, "$.lights[0].temp", 1);
STRING mode := PARSEJSON(jsonStatus, "$.lights[0].mode", 1);

IF ISNULL(value) OR mode != "white"
    RETURN(NaN);
END
 
value
```

Zápis barevné teploty

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

VAR temp := MIN(Ct, 6500);
temp := MAX(temp, 3000);

SENDHTTPREQUEST("light/0?mode=white&transition=" + transitionTime + "&brightness=" + ROUND(Hb*100) + "&temp=" + temp);

VAR now := NOW();
debounceTimestamp := now.Ticks + transitionTime + 500;
```

Elektroměr Elektroměr Pouze ke čtení

Měření spotřeby energie — okamžitý výkon (kW) a celková spotřeba (kWh)

numeric Jednotka: W / kWh

Čtení celkové spotřeby

```taphome
IF LENGTH(jsonStatus) = 0
    RETURN(NaN);
END

VAR power := PARSEJSON(jsonStatus, "$.meters[0].power");
VAR total := PARSEJSON(jsonStatus, "$.meters[0].total");
BOOL isOn := PARSEJSON(jsonStatus, "$.lights[0].ison");

IF ISNULL(power) OR ISNULL(total) OR (ison AND power=0)
	ADDWARNING("To enable power monitoring, open device settings in Shelly app or web browser and configure device model in Settings->Device Model");
	
    RETURN(NaN);
END

total / 60000.0
```

Čtení odběru

```taphome
IF LENGTH(jsonStatus) = 0
    RETURN(NaN);
END

VAR power := PARSEJSON(jsonStatus, "$.meters[0].power", 1);

IF ISNULL(power)
    RETURN(NaN);
END

power / 1000.0
```

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

Možná vylepšení (4)

- Light Effect — Effect index (0=Off, 1=Meteor Shower, 2=Gradual Change, 3=Breath, 4=Flash, 5=On/Off Gradual, 6=Red/Green Change). Available in both /light/0 and MQTT color/0/set.
- WiFi Signal Strength — WiFi RSSI in dBm, available in /status response (HTTP only; MQTT template reads it as service attribute already)
- White Channel — Dedicated white LED channel (0–255) in color mode, separate from CCT. Available in /light/0?white=N.
- Connection Status (MQTT) — LWT topic — true on connect, false on disconnect. Could detect offline bulbs.

## Parametry importu

Tyto hodnoty zadáte při importu XML.

| Ptá se v aplikaci    | Výchozí       |
|----------------------|---------------|
| IP adresa            | `192.168.0.1` |
| 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 RGBW — Device-Specific API
  
  [shelly-api-docs.shelly.cloud](https://shelly-api-docs.shelly.cloud/gen1/#shelly-bulb-rgbw) 2026-03-30
- Shelly DUO RGBW — Knowledge Base
  
  [kb.shelly.cloud](https://kb.shelly.cloud/knowledge-base/shelly-bulb-duo-rgbw) 2026-03-30

## Související dokumentace

- [Integrace Packet Parser](https://taphome.com/cs/compatibility/packet-parser-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/)

