
The Shelly DUO RGBW is a Gen1 Wi-Fi smart LED bulb in a GU10 form factor. It supports full RGB color and tunable white (CCT 3000–6500 K) with smooth transition effects. TapHome communicates with the device over the local network — no cloud connection is required.
Two TapHome templates are available: an HTTP template for controlling a single bulb via REST API, and an MQTT template that can control up to 5 bulbs through a shared MQTT broker. Both templates expose full light control and power metering.
Configuration
HTTP template
The HTTP template requires the bulb’s IP address (default placeholder 192.168.0.1) and an optional transition time in milliseconds (default 300 ms). TapHome polls the /status endpoint every 2.5 seconds to read light state, color values, and energy metering data.
The module-level read script caches the /status response into a jsonStatus custom variable so that individual device scripts can parse the data without making redundant HTTP calls.
MQTT template
The MQTT template requires the broker connection details and one or more Device IDs — one per bulb. Each bulb’s Device ID is configured via a bulbNtopic custom variable (format: shellycolorbulb-DEVICEID). The Device ID can be found in the Shelly web UI under Settings > Device Info.
The template supports up to 5 bulbs simultaneously. Only configure the bulbNtopic variables for bulbs you actually have — unused slots can be left at their default placeholder values.
After enabling MQTT on the Shelly DUO RGBW (Internet & Security > Advanced — MQTT), TapHome subscribes to shellies/# and routes messages to the correct bulb instance based on the topic prefix.
On Gen1 Shelly devices, enabling MQTT disables Shelly Cloud. Both cannot run simultaneously.
Device capabilities
Light control
The bulb operates in two mutually exclusive modes:
- Color mode — full RGB control via red, green, and blue channels (0–255 each) plus gain (brightness, 0–100%). TapHome represents this as an HSB light — hue (0–360), saturation (0.0–1.0), and brightness (0.0–1.0) are converted from RGB using the
RGBTOHSVfunction. - White mode — tunable white via color temperature (3000–6500 K) and brightness (0–100%). Setting a CCT value in TapHome automatically switches the bulb to white mode.
The mode switches automatically based on which property you set:
- Setting hue or saturation sends a
/light/0?mode=colorcommand (HTTP) or acolor/0/setJSON payload with"mode":"color"(MQTT) - Setting CCT sends a
/light/0?mode=whitecommand (HTTP) or a payload with"mode":"white"(MQTT)
All write commands include the configured transitionTime parameter for smooth fading between states. A debounce mechanism prevents stale reads during transitions — the template ignores /status responses for a short period after each write.
In MQTT mode, the debounce window is 3 seconds after each write (longer than the HTTP template) to account for MQTT message delivery latency.
Power metering
Both templates expose an electric meter that reads two values:
- Real-time power — reported in watts, converted to kW by dividing by 1000
- Total consumption — reported in watt-minutes, converted to kWh by dividing by 60 000
The HTTP template reads meters[0].power and meters[0].total from the /status response. The MQTT template listens to shellies/{id}/light/0/power and shellies/{id}/light/0/energy topics for each bulb independently.
Power monitoring requires the device model to be configured in the Shelly app or web UI under Settings > Device Model. If the model is not set and the bulb is on but power reads zero, the template will display a warning.
Service diagnostics (HTTP only)
The HTTP template exposes 10 service attributes for device monitoring:
- Network info — IP address, MAC address, WiFi signal strength (dB)
- Connectivity — cloud enabled/connected, MQTT connected
- System — device time, firmware update available, uptime, RAM usage
Service actions (HTTP only)
Two service actions are available in the HTTP template:
- Enable cloud — enables or disables Shelly Cloud connectivity
- Reboot — triggers a device reboot
Additional capabilities
The Shelly DUO RGBW also supports light effects (meteor shower, gradual change, breath, flash, on/off gradual, red/green change), a dedicated white LED channel in color mode, and MQTT connection status (LWT). These capabilities can be added in a future template update.
Troubleshooting
Bulb not responding (HTTP)
- Verify the bulb is connected to Wi-Fi and has a valid IP address
- Try using the mDNS hostname (
shellycolorbulb-AABBCCDDEE.local) instead of the IP address — the IP may have changed after a DHCP renewal - Open
http://{device-ip}/shellyin a browser — if it responds, the device is reachable - Check that TapHome CCU and the bulb are on the same network / VLAN
Colors appear incorrect
- Verify the bulb is in the correct mode — RGB colors only work in color mode, not white mode
- When setting a color via TapHome, ensure saturation is greater than zero — a saturation of 0 produces white light regardless of hue
- Check that gain (brightness in color mode) is not set to zero
Power readings show zero
- Confirm the device model is configured in the Shelly app/web UI (Settings > Device Model)
- Verify the bulb is turned on — the meter only reads when the bulb draws power
- Poll
/statusmanually and check thatmeters[0].powerreturns a non-zero value
MQTT bulbs not responding
- Verify MQTT is enabled in each bulb’s web UI (Internet & Security > Advanced — MQTT)
- Confirm the broker address and port are correct in both the Shelly device and TapHome module settings
- Check that each
bulbNtopiccustom variable matches the bulb’s Device ID exactly (e.g.,shellycolorbulb-B929CC) - Use an MQTT client (e.g., MQTT Explorer) to subscribe to
shellies/#and verify each bulb publishes messages
Gen1 Shelly devices support only 2 concurrent HTTP connections. If TapHome and another system (e.g., Home Assistant) poll the same bulb simultaneously, communication may become unreliable. Consider switching to the MQTT template for multi-system environments.