
The Shelly Plus RGBW PM is a Gen2+ Wi-Fi RGBW LED controller with built-in power metering on every output channel. It drives LED strips or individual LED channels at 12/24 VDC with up to 4 x 4.5 A per channel (18 A total). The device supports three switchable profiles — light (4 independent dimmers), rgb (3-channel color), and rgbw (3-channel color + white) — each exposing different devices in TapHome. TapHome communicates with the device locally over Wi-Fi using the Gen2+ RPC API — no cloud connection is required.
The TapHome template is an HTTP template that polls the device’s RPC endpoints. A single template handles all three profiles; TapHome detects the active profile at runtime and activates the corresponding devices.
Configuration
Import parameters
The template requires only the device’s IP address (default placeholder 192.168.0.1). TapHome connects to port 80 and polls multiple RPC endpoints for system state and device data.
At the module level, TapHome polls /rpc/Sys.GetStatus, /rpc/Sys.GetConfig, /rpc/WiFi.GetStatus, and /rpc/PlusRGBWPM.GetConfig at a 3-second interval. The Sys.GetConfig response provides the current profile (device.profile) which determines which device-level endpoints are active.
Profile selection
The Shelly Plus RGBW PM operates in one of three profiles at a time. You can switch profiles directly from TapHome using the Set Profile service action on the module, or from the Shelly web UI.
| Profile | Devices in TapHome | Use case |
|---|---|---|
| light | 4 independent dimmers (O1–O4) | Single-color LED strips, 4 separate lighting zones |
| rgb | 1 RGB light | RGB LED strips (3-channel color mixing) |
| rgbw | 1 RGBW light | RGBW LED strips (RGB + dedicated white channel) |
After switching the profile, the device reboots and TapHome automatically detects the new profile. Devices belonging to the inactive profile will report an error (“Profile is not set to …”) — this is expected and can be ignored.
Device capabilities
RGB Light (profile = rgb)
When the device is set to the rgb profile, TapHome exposes a single HSB Light device. The template reads /rpc/RGB.GetStatus?id=0 for on/off state, brightness (0–100%), and RGB color values, and writes via /rpc/RGB.Set?id=0 to control the light.
Color control uses HSB (Hue-Saturation-Brightness):
- Hue (0–360 degrees) and Saturation (0.0–1.0) are converted between HSB and RGB internally
- Brightness (0.0–1.0) maps to the Shelly’s 0–100% range
- Setting brightness to 0 turns the light off; any non-zero brightness turns it on
The RGB light exposes five service attributes:
| Attribute | Unit | Description |
|---|---|---|
| Temperature | C | Internal device temperature |
| Energy consumption | Wh | Cumulative energy for the RGB output |
| Power | W | Instantaneous power draw |
| Voltage | V | RMS voltage |
| Current | A | Current draw |
RGBW Light (profile = rgbw)
When set to the rgbw profile, TapHome exposes a single HSB Light with an additional white channel. The template reads /rpc/RGBW.GetStatus?id=0 and writes via /rpc/RGBW.Set?id=0.
The RGBW profile adds a white channel (0–255) controlled via CCT (Correlated Color Temperature) at a fixed 4500 K:
- When the white channel is active (
white != 0), brightness is derived from the white level (linear 0–255 mapped to 0.0–1.0) - When the white channel is inactive, brightness comes from the standard brightness field (0–100%)
- Switching to color temperature mode in TapHome activates the white channel; switching to RGB mode deactivates it
The RGBW light exposes the same five service attributes as the RGB light (temperature, energy, power, voltage, current), reading from the RGBW.GetStatus response.
Dimmable LED Outputs (profile = light)
When set to the light profile, TapHome exposes 4 independent dimmer channels (O1–O4), each controlling one LED output. Each channel reads from /rpc/Light.GetStatus?id={0-3} and writes via /rpc/Light.Set?id={0-3}.
Brightness is mapped from TapHome’s 0.0–1.0 range to the Shelly’s 0–100% range. Setting the level to 0 turns the output off; any non-zero level turns it on and sets the brightness.
Each dimmer channel exposes six service attributes:
| Attribute | Unit | Description |
|---|---|---|
| Temperature | C | Internal device temperature |
| Energy consumption | Wh | Cumulative energy for this channel |
| Power | W | Instantaneous power draw |
| Voltage | V | RMS voltage |
| Current | A | Current draw |
| Flags | — | Internal status flags |
Each dimmer channel also exposes a Calibrate service action that sends /rpc/Light.Calibrate?id={N} to calibrate the output for the connected LED load.
Module diagnostics and actions
The module exposes five service attributes for device diagnostics:
| Attribute | Description |
|---|---|
| WiFi SSID | Connected wireless network name |
| IP Address | Device IP address |
| Signal Strength (dB) | WiFi RSSI |
| MAC Address | Device hardware address |
| Profile | Currently active profile (light, rgb, or rgbw) |
Three service actions are available at the module level:
| Action | Description |
|---|---|
| Firmware Update | Triggers OTA update to the stable firmware channel |
| Reboot | Restarts the device |
| Set Profile | Switches between light, rgb, and rgbw profiles (device reboots) |
The module script also checks for available firmware updates and pending reboot requirements, displaying warnings in TapHome when either condition is detected.
Additional capabilities
The Shelly Plus RGBW PM also exposes physical input state, night mode configuration with brightness limits and schedule, transition duration for color/brightness changes, and minimum brightness on toggle through its RPC API. These capabilities can be added in a future template update.
Troubleshooting
Device not responding
- Verify the Shelly is connected to Wi-Fi and has a valid IP address
- Try using the mDNS hostname (
shellyplusrgbwpm-AABBCCDDEE.local) instead of the IP address — the IP may have changed after a DHCP renewal - Open
http://{device-ip}/rpc/Shelly.GetDeviceInfoin a browser — if it responds with JSON, the device is reachable - Check that TapHome CCU and Shelly are on the same network / VLAN
- Ensure HTTP Digest Authentication is disabled in the Shelly web UI — TapHome does not support authenticated requests
Profile error on devices
If a device shows “Profile is not set to rgb/rgbw/light” — this is expected. The template contains devices for all three profiles, but only the devices matching the currently active profile will function. The other devices will report this error and can be ignored.
To switch the active profile, use the Set Profile service action on the module or change it in the Shelly web UI. The device will reboot and TapHome will detect the new profile within one poll cycle.
Colors appear incorrect in RGB/RGBW mode
- Verify the LED strip wiring matches the output terminal order (R, G, B, W) — swapped wires produce wrong colors
- The template converts between HSB and RGB color spaces internally. If colors appear washed out, check the saturation value — low saturation produces pastel tones
- In RGBW mode, the white channel and RGB channels are controlled independently. When switching from white to color or vice versa, TapHome sends the appropriate command to zero out the other mode
Dimmer outputs not responding in light mode
- Confirm the profile is set to light — dimmer devices only work in light mode
- Check that each channel has an LED load connected — unloaded channels may not report correct status
- Try running the Calibrate action on the channel — this optimizes the dimming curve for the connected LED load
- Gen2+ devices support up to 6 concurrent HTTP connections — avoid polling from multiple systems simultaneously
Power readings show zero
- Confirm the LED load is connected and the channel is turned on
- Poll the appropriate endpoint manually (
/rpc/Light.GetStatus?id=0,/rpc/RGB.GetStatus?id=0, or/rpc/RGBW.GetStatus?id=0) and verifyapowerreturns a non-zero value - Very low-power LED loads may report 0 W due to metering resolution — this is normal for small indicator LEDs