TapHome

Shelly Dimmer 2

Packet Parser → HTTP
Submitted by
Last updated: 06. 2026
Shelly Dimmer 2

The Shelly Dimmer 2 is a compact Wi-Fi dimmer module designed for behind-the-wall installation. It supports dimmable LEDs (10–200 W), incandescent/halogen bulbs (10–220 W) and ferromagnetic transformers. TapHome communicates with the device over HTTP on the local network – no cloud connection is required.

The template provides brightness control with configurable fade transitions, an on/off light switch and an energy meter that reads real-time power consumption and cumulative energy usage.

Configuration

The Shelly Dimmer 2 connects over Wi-Fi. During TapHome template import, enter the device’s IP address (default placeholder 192.168.0.1).

The device supports four wiring configurations:

  • With neutral wire – standard installation using N, L, SW1, SW2, O terminals
  • Without neutral, minimum 10 W load – no neutral connection, requires at least 10 W load
  • Without neutral + Shelly Bypass – for loads under 10 W, the Shelly Bypass accessory is required
  • Switched neutral – alternative wiring with switched neutral line

Below the minimum load (10 W with neutral, 20 W without neutral), the dimmer may flicker or fail to turn on. Use the Shelly Bypass accessory for low-wattage loads without a neutral wire.

Device capabilities

Brightness control

The template exposes a dimmer device that reads the brightness level from /light/0 (brightness field, 0–100 %) and sets it via /light/0?brightness={value}. The value is normalized internally – the API uses 0–100 % while TapHome works with a 0.0–1.0 range.

A Transition service attribute shows the current fade duration in milliseconds. The Transition service action allows setting a smooth brightness fade (0–5000 ms) for individual commands via /light/0?transition={ms}.

Light switch

The light on/off state is controlled independently from the brightness level. The template reads ison from /light/0 and writes via /light/0?turn=on or /light/0?turn=off. The device has the lighting capability flag – it appears as a light switch in TapHome, not a generic relay.

Power metering

The built-in energy meter reads two values from the /status response:

  • Real-time powermeters[0].power reported in watts, converted to kW by the template
  • Total consumptionmeters[0].total reported in watt-minutes, converted to kWh by the template

The meter is read-only and updates automatically with every poll cycle (15-second interval).

Service diagnostics

The module-level WiFi service attribute reads the connected SSID from /settings.

Additional capabilities

The Shelly Dimmer 2 also exposes internal temperature, overtemperature protection status, meter validity, WiFi signal strength and two physical switch inputs (SW1, SW2) in its /status response. A night mode with scheduled brightness limiting and incremental step-based dimming are available via the API. An auto-off timer can be set per command. These capabilities can be added in a future template update.

Troubleshooting

Device not responding
  1. Verify the Shelly is connected to Wi-Fi and has a valid IP address
  2. Try using the mDNS hostname (shellydimmer2-AABBCCDDEE.local) instead of the IP address – the IP may have changed after a DHCP renewal
  3. Open http://{device-ip}/shelly in a browser – if it responds, the device is reachable
  4. Check that TapHome CCU and Shelly are on the same network / VLAN
Flickering or unstable dimming
  1. Confirm the connected load meets the minimum wattage requirement (10 W with neutral, 20 W without)
  2. Check that the load type is supported – not all LED drivers are compatible with trailing-edge dimmers
  3. Adjust the min_brightness setting via /settings/light/0 if the light flickers at low levels
  4. Increase the warm_up time (0–1000 ms) in /settings/light/0 for loads that need a ramp-up period
Power readings show zero
  1. Confirm the load is connected through the dimmer (not bypassed)
  2. Check that the light is turned on – the meter only reads when current flows
  3. Poll /status manually and verify meters[0].power returns a non-zero value

Gen1 Shelly devices support only 2 concurrent HTTP connections. If TapHome and another system (e.g., Home Assistant) poll the same device simultaneously, communication may become unreliable. Use a poll interval of 10–30 seconds.

How to install in TapHome

Prerequisites

  • Shelly device installed and powered on
  • Local Wi-Fi network (2.4 GHz)
  • TapHome CCU on the same network

Step 1 — Connect Shelly to Wi-Fi

Option A — Shelly app (recommended):

  1. Download the Shelly app (iOS / Android)
  2. Tap +Add Device and follow the Bluetooth pairing wizard
  3. Enter your Wi-Fi credentials when prompted

Option B — AP mode (no app):

  1. On first power-up the device creates a hotspot: ShellyXXX-AABBCCDDEE
  2. Connect your phone/PC to that hotspot
  3. Open http://192.168.33.1Internet & SecurityWi-Fi Mode - Client
  4. Enter SSID and password → Save

Shelly only supports 2.4 GHz networks. 5 GHz networks will not appear in the scan.

Step 2 — Find the device address

Shelly Gen1 devices support mDNS (Zeroconf). You can reach the device using a hostname instead of an IP address:

1
shelly<model>-<MAC>.local

For example: shelly1pm-AABBCCDDEE.local (MAC address in uppercase hex, no colons).

Recommended: use the TapHome IP Scanner. Open the TapHome app and use the IP Scanner (Settings → Network → Scan). The scanner will discover devices on your network and show both the IP address and the mDNS hostname. Use the hostname instead of the IP address for a more reliable connection — it stays the same even if the device’s IP changes after a router reboot.

Alternative methods to find the IP address:

  • Shelly app: Device detail → Device info → IP address
  • Shelly web UI: Connect to the device AP before Wi-Fi setup — the IP is shown after saving
  • Router DHCP table: Look for a hostname like shelly1pm-AABBCCDDEE

Step 3 — Configure in TapHome

  1. In TapHome, add a new Packet Parser (HTTP) module
  2. Address: enter the mDNS hostname (e.g., shelly1pm-AABBCCDDEE.local) or IP address from Step 2
  3. Port: 80 (default, no change needed)
  4. Import the template — TapHome will poll /status to read device state

HTTP authentication is disabled by default on Shelly devices. If you have enabled login protection, TapHome does not support HTTP Basic Auth at this time — keep auth disabled for TapHome integration.

Available devices

Shelly Dimmer2 Module
Service Attributes
WiFi

Shelly Dimmer2

Service Attributes
Wifi
 VAR response := SENDHTTPREQUEST("/settings");
 IF response.IsSuccess
  VAR content := response.Content;
  RETURN(PARSEJSON(content, "$.wifi_sta.ssid"));
  End
Brightness Dimmer

Dimmer level 0-100% with configurable fade transition (0-5000 ms)

numeric Unit: %
Service Attributes
Transition
Service Actions
Transition

Brightness

Read level
VAR response := SENDHTTPREQUEST("/light/0");
 IF response.IsSuccess
  VAR content := response.Content;
  RETURN(PARSEJSON(content, "brightness")/100);
 ELSE
  ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
  RETURN(NaN);
 END
Write level
VAR response := SENDHTTPREQUEST("/light/0?brightness=" + Le*100);
IF response.IsSuccess = false
 ADDERROR(response.StatusCode);
 END
Service Attributes
Transition
 VAR response := SENDHTTPREQUEST("/light/0");
 IF response.IsSuccess
  VAR content := response.Content;
  RETURN(PARSEJSON(content, "transition") + " ms");
 END
Service Actions
Transition
Parameters: Transition time [ms] (0–5000 G)
 VAR response := SENDHTTPREQUEST("/light/0?transition=" + G);
Electric Meter Electricity Meter Read-only

Power consumption and energy metering — instantaneous power (kW) and cumulative energy (kWh)

numeric Unit: W / kWh

Electric Meter

Read total consumption
VAR response := SENDHTTPREQUEST("/status");
 IF response.IsSuccess
  VAR content := response.Content;
 VAR responseHeaders := response.Headers;
 RETURN(PARSEJSON(content, "$..meters..total")/60000);
 ELSE 
 ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
  RETURN(NaN);
 END
Read demand
VAR response := SENDHTTPREQUEST("/status");
 IF response.IsSuccess
  VAR content := response.Content;
 VAR responseHeaders := response.Headers;
 RETURN(PARSEJSON(content, "$..meters..power")/1000);
 ELSE 
 ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
  RETURN(NaN);
 END
Light Switch
boolean
Values / States: ON · OFF

Light

Read switch state
VAR response := SENDHTTPREQUEST("/light/0");
 IF response.IsSuccess
  VAR content := response.Content;
  RETURN(PARSEJSON(content, "ison"));
 ELSE
  ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
  RETURN(NaN);
 END
Write switch state
var Ru := Switch(St, 1, "on", "off");
 VAR response := SENDHTTPREQUEST("/light/0?turn=" + Ru);
 IF response.IsSuccess = false
  ADDERROR(response.StatusCode);
 END
Connection: Packet Parser → HTTP
Possible improvements (9)
  • Brightness (via /status) — Current brightness also available in /status → lights[0].brightness; template uses /light/0 instead
  • Meter Validity — Measurement validity flag, available in /status response
  • Internal Temperature — Internal device temperature in °C, available in /status response
  • Overtemperature Protection — Overtemperature protection triggered flag, threshold 95°C
  • Night Mode — Night mode with start/end time and max brightness — configurable via /settings/night_mode
  • Switch Inputs (SW1, SW2) — Two physical switch inputs available in /status → inputs[0].input and inputs[1].input
  • WiFi Signal Strength — WiFi RSSI in dBm, available in /status response
  • Auto-off Timer — Auto-off timer in seconds, could be added as service action parameter
  • Incremental Dimming — Step-based dimming (dim up/down/stop with configurable step size 1-100)

Sources

Found a problem with this device template?

Tell us what's wrong, what's missing, or how the template should behave. We rely on your feedback to keep the catalog accurate.

Verified by TapHome

Want to use this in your TapHome Core?

Open this template in the Customer Portal to apply it to one of your homes, or to draft a refinement and submit it back to the catalog.

Open in portal