---
title: "Shelly Plus 1"
description: "Shelly Plus 1 relay with potential-free contacts in TapHome over local HTTP RPC, no cloud: switch one circuit up to 16 A. No power metering."
url: "https://taphome.com/en/compatibility/shelly-plus-1/"
language: en
lastmod: 2026-03-29
generator: hugo
ai:
  topics: ["http","i/o-module","wifi","relay","switch","gen2plus"]
  questions: ["How to integrate Shelly Plus 1 with TapHome?","How to connect Shelly Plus 1 via HTTP to TapHome?","Does Shelly Plus 1 support power monitoring in TapHome?","What is the difference between Shelly Plus 1 and Plus 1PM in TapHome?","Can Shelly Plus 1 switch DC loads via TapHome?","How to troubleshoot Shelly Plus 1 not responding in TapHome?"]
---

# Shelly Plus 1

Communication: Packet Parser → HTTP

- [Shelly Plus 1 Product Page](https://www.shelly.com/en/products/shop/shelly-plus-1)
- [Shelly Plus 1 API Documentation](https://shelly-api-docs.shelly.cloud/gen2/)

> Network address
> 
> TapHome reaches this device at the address entered on import. Give the device a fixed address — an IP reservation in the router, or its mDNS name if it supports one — otherwise the integration stops working when the router changes the address.
> 
> [Network Preparation](https://taphome.com/en/docs/setup/network-preparation/)

## Integration guide

The Shelly Plus 1 is a compact Wi-Fi relay switch with potential-free contacts. It fits behind a standard wall switch and can control one circuit up to 16 A (3500 W at 230 V AC) or 10 A (30 V DC). The device supports a wide range of power supplies — 110-240 VAC, 24-48 VDC, or 12 VDC — making it suitable for both mains-powered and low-voltage installations. TapHome communicates with the device over HTTP using the Gen2+ RPC API on the local network — no cloud connection is required.

The template provides a single relay switch. Unlike the Plus 1PM, this device does not have built-in power metering.

## Configuration

The Shelly Plus 1 connects over Wi-Fi. During TapHome template import, enter the device's IP address (default placeholder `192.168.0.1`).

The device uses the Gen2+ JSON-RPC API. All communication happens over HTTP GET requests to `/rpc/` endpoints on port 80.

## Device capabilities

### Relay control

The template exposes the relay as a switch device. The relay state is read from the `/rpc/Switch.GetStatus?id=0` response (`output` field, boolean) and controlled via `/rpc/Switch.Set?id=0` with `on=true` or `on=false`.

The poll interval is 2.5 seconds, providing near-real-time state feedback in TapHome.

### Additional capabilities

The Shelly Plus 1 also exposes internal relay temperature, physical switch input state, device MAC address, uptime, RAM usage, device time, IP address, WiFi SSID, and WiFi signal strength through its RPC API. An auto-off timer (`toggle_after` parameter) and device reboot/firmware update actions are also available. These capabilities can be added in a future template update.

> [!NOTE]
> The Shelly Plus 1 does **not** have power metering. If you need energy monitoring, use the Shelly Plus 1PM instead — it has the same form factor and relay capabilities but adds instantaneous power, voltage, current, and cumulative energy readings.

## 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 (`shellyplus1-AABBCCDDEE.local`) instead of the IP address — the IP may have changed after a DHCP renewal
3. Open `http://{device-ip}/rpc/Shelly.GetDeviceInfo` in a browser — if it responds with JSON, the device is reachable
4. Check that TapHome CCU and Shelly are on the same network / VLAN
5. Ensure HTTP Digest Authentication is disabled in the Shelly web UI — TapHome does not support authenticated requests

### Relay does not switch

1. Confirm the switch input mode in the Shelly web UI (`in_mode` setting) — if set to `detached`, the physical switch will not affect the relay, but HTTP commands should still work
2. Poll `/rpc/Switch.GetStatus?id=0` manually and verify the `output` field changes when toggling
3. Check the `source` field in the status response to see what last controlled the relay

### Slow response or timeouts

1. Gen2+ devices support up to 6 concurrent HTTP connections (vs. 2 on Gen1) — but avoid excessive polling from multiple systems
2. Disable ECO mode in the Shelly web UI if enabled — it puts the device to sleep between polls and can cause timeouts with short poll intervals
3. Use a static IP or DHCP reservation to prevent address changes

## 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](https://www.shelly.com/en/support/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.1` → **Internet & Security** → **Wi-Fi Mode - Client**
4. Enter SSID and password → **Save**

> [!NOTE]
> 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:

```
shelly<model>-<MAC>.local
```

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

> [!TIP]
> **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

> [!NOTE]
> 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 1

These devices appear in TapHome after import.

Shelly Plus 1 Module

Custom Variables

|                   |
|-------------------|
| `status` (string) |

Switch Switch Read and write

Single-channel relay control — on/off switching via RPC API

boolean

Values / States: ON · OFF

Read switch state

```taphome
var x := (sendhttprequest("/rpc/Switch.GetStatus?id=0"));
status := x.Content;
return(PARSEJSON(status, "$.output", true));
```

Write switch state

```taphome
VAR response := SENDHTTPREQUEST("rpc/Switch.Set?id=0&on=" + if(St,"true","false"));
IF response.IsSuccess = false
  ADDERROR(response.StatusCode);
END
```

**Connection:** Packet Parser → HTTP • Hostname: `shellyplus1-{MAC}.local`

Possible improvements (12)

- Switch Temperature — Internal relay temperature in °C, available in Switch.GetStatus response
- Input State — Physical switch/button input state, available via /rpc/Input.GetStatus?id=0
- MAC Address — Device MAC address, available in Sys.GetStatus response
- Uptime — Seconds since last reboot, available in Sys.GetStatus response
- RAM Usage — Total and free RAM in bytes, available in Sys.GetStatus response
- Device Time — Current device time in HH:MM format, available in Sys.GetStatus response
- IP Address — Device station IP address, available in WiFi.GetStatus response
- WiFi SSID — Connected WiFi network name, available in WiFi.GetStatus response
- WiFi Signal Strength — WiFi RSSI in dBm, available in WiFi.GetStatus response
- Auto-off Timer — Auto-reset timer in seconds via toggle\_after parameter, could be added as switch parameter
- Reboot — Triggers device reboot, could be added as service action
- Firmware Update — Initiates OTA firmware update to stable or beta channel

## Import parameters

Enter these values when you import the XML.

| Asked in the app | Default       |
|------------------|---------------|
| IP address       | `192.168.0.1` |

## Sources

- Shelly Gen2+ RPC API Reference
  
  [shelly-api-docs.shelly.cloud](https://shelly-api-docs.shelly.cloud/gen2/) 2026-03-29
- Shelly Gen2+ Switch Component API
  
  [shelly-api-docs.shelly.cloud](https://shelly-api-docs.shelly.cloud/gen2/ComponentsAndServices/Switch/) 2026-03-29
- Shelly Gen2+ System Component API
  
  [shelly-api-docs.shelly.cloud](https://shelly-api-docs.shelly.cloud/gen2/ComponentsAndServices/Shelly/) 2026-03-29
- Shelly Gen2+ WiFi Component API
  
  [shelly-api-docs.shelly.cloud](https://shelly-api-docs.shelly.cloud/gen2/ComponentsAndServices/Wifi/) 2026-03-29
- Home Assistant Shelly Integration
  
  [www.home-assistant.io](https://www.home-assistant.io/integrations/shelly/) 2026-03-29
- Shelly Plus 1 Knowledge Base
  
  [kb.shelly.cloud](https://kb.shelly.cloud/knowledge-base/shelly-plus-1) 2026-03-29

## Related Documentation

- [Packet Parser Integration](https://taphome.com/en/compatibility/packet-parser-guide/)
- [Packet Parser (HTTP, TCP, UDP, FTP, MQTT)](https://taphome.com/en/docs/integration/packet-parser/)
- [Packet parser functions](https://taphome.com/en/docs/script/packet-parser/)
- [Parsing functions](https://taphome.com/en/docs/script/parsing-functions/)

