
The Shelly Plus Plug S is a Gen2+ Wi-Fi smart plug with built-in power metering and a multicolour LED ring indicator. It plugs into a standard CEE 7/3 (Type-F / Schuko) socket and can switch loads up to 12 A / 2760 W at 230 V. TapHome communicates with the device locally over Wi-Fi using the Gen2+ JSON-RPC API on port 80 — no cloud connection is required.
The template exposes the plug as six TapHome devices: a relay switch, an electricity meter, an LED indication mode selector, two LED colour pickers (relay-ON and relay-OFF states) and a brightness dimmer for the power-indication mode.
Configuration
Pairing and network setup
Out of the box the device boots into access-point mode with SSID ShellyPlusPlugS-XXXXXX (LED flashes blue). Connect to this SSID, open http://192.168.33.1/ and join your local Wi-Fi from the web UI. After the plug joins your LAN, it is reachable on port 80 at its station IP address and over mDNS at shellyplusplugs-<MAC>.local.
TapHome polls the Gen2+ RPC endpoints over plain HTTP — HTTPS is disabled by default and HTTP authentication (Shelly.SetAuth) must remain disabled for the template to work. Make sure the plug sits on the same LAN / VLAN as the TapHome Core.
During template import in TapHome, supply the plug’s IP address as the IpAddress parameter. A static DHCP reservation is strongly recommended so the address does not change between reboots.
Device capabilities
Relay control
The relay is exposed as a switch device. Its state is read from /rpc/Switch.GetStatus?id=0 (the output boolean) and controlled via /rpc/Switch.Set?id=0&on=true|false. The module caches the full Switch.GetStatus response so the relay, meter and service attributes all share one HTTP call per poll.
Power and energy metering
The built-in meter on the Switch component provides:
- Instantaneous power —
apowerin watts, converted to kW by the template (divided by 1000) - Cumulative energy —
aenergy.totalin watt-hours, converted to kWh (divided by 1000)
Three further readings are exposed as service attributes on the meter:
| Attribute | Unit | Source field |
|---|---|---|
| Current | A | current |
| Voltage | V | voltage |
| Internal temperature | °C | temperature.tC |
The meter is read-only and updates on every poll cycle.
LED indication mode
The multicolour LED ring is controlled by the Plus-Plug-S-specific PLUGS_UI RPC component. TapHome exposes a mode selector with three valid options — despite the template listing ten enum slots, only the first three correspond to real firmware modes:
| Value | Behaviour |
|---|---|
off | LED ring disabled (Wi-Fi / AP / firmware diagnostic states are still shown) |
switch | LED colour reflects the relay state — uses the user-defined OFF and ON colours |
power | LED colour reflects measured load as a fraction of the configured power limit (green → yellow → red gradient) |
Switching between modes is a cosmetic change and does not require a reboot.
LED colours (switch mode)
Two independent HSB devices let you pick the LED ring colour for each relay state:
- LED Color (OFF state) — colour + brightness shown while the relay is OFF
- LED Color (ON state) — colour + brightness shown while the relay is ON
Both map to leds.colors.switch:0.{off|on}.{rgb,brightness} in the PLUGS_UI config. Shelly stores RGB values as percent (0–100 per channel), not 0–255, so the template multiplies each channel by 2.55 when converting between HSV and the device’s native format. This conversion is internal — from TapHome the devices behave like any other HSB colour picker.
LED brightness (power mode)
When the LED is in power mode the colour is chosen automatically by the firmware based on load. Only the brightness is user-configurable, so the template exposes it as a dimmer (leds.colors.power.brightness, 0–100 % scaled to a 0.0–1.0 TapHome dimmer level).
Module diagnostics and actions
The HTTP module exposes four service attributes parsed from /rpc/WiFi.GetStatus and /rpc/Sys.GetStatus:
| Attribute | Source |
|---|---|
| Wi-Fi SSID | ssid |
| IP address | sta_ip |
| Signal strength | rssi (dBm) |
| MAC address | mac |
Two service actions are also available:
- Firmware update — triggers an OTA update on the stable channel (
/rpc/Shelly.Update?stage="stable"). Activated automatically whenSys.GetStatusreportsavailable_updates.stable. - Reboot — reboots the device (
/rpc/Shelly.Reboot), useful after network configuration changes or to clear transient issues.
If you only need on/off control and basic energy monitoring, ignore the LED devices — they are optional. The relay and meter work independently of the LED indication mode.
Troubleshooting
Device not responding
- Verify the plug is connected to Wi-Fi — the LED should not be flashing or solid red
- Try the mDNS hostname
shellyplusplugs-<MAC>.localinstead of the IP address — the DHCP lease may have changed - Open
http://{device-ip}/rpc/Shelly.GetDeviceInfoin a browser; if it responds with JSON the device is reachable - Confirm TapHome Core and the plug are on the same LAN / VLAN
- Make sure HTTP authentication is disabled in the Shelly web UI — the template does not support digest auth
Power readings show zero
- Confirm a load is actually plugged into the Shelly, not bypassed
- Check that the relay is ON — the meter reports 0 W when the relay is open
- Query
/rpc/Switch.GetStatus?id=0directly in a browser and verify thatapoweris non-zero
LED does not change after a mode switch
- The LED only reflects runtime state in
switchandpowermodes; inoffmode it stays dark except for system diagnostic patterns (AP mode, reconnecting, OTA) - In
switchmode make sure the ON and OFF colours are not both set to black / 0 % brightness - System indications (blue flashing for AP mode, red for Wi-Fi problems) always override the user LED configuration — if the LED is flashing red, the plug is not on your Wi-Fi
Firmware update action does not fire
- The template only triggers the update when
Sys.GetStatusreportsavailable_updates.stable— run the action manually from the device card or web UI if the plug is already up-to-date - The template targets the stable channel only; beta firmware must be installed from the Shelly web UI