---
title: "Shelly 1PM"
description: "Shelly 1PM over the local HTTP REST API: relay on/off plus real-time power and cumulative energy in TapHome, no cloud. Just enter the device IP address."
url: "https://taphome.com/en/compatibility/shelly-1pm/"
language: en
lastmod: 2026-03-12
generator: hugo
ai:
  topics: ["http","electric-meter","wifi","relay","power-metering"]
  questions: ["How to integrate Shelly 1PM with TapHome?","What does the Shelly 1PM TapHome template measure?","How to connect Shelly 1PM via HTTP to TapHome?","Why does Shelly 1PM show zero power readings?","How to set the power protection limit on Shelly 1PM via TapHome?","What diagnostics are available for Shelly 1PM in TapHome?"]
---

# Shelly 1PM

Communication: Packet Parser → HTTP

- [Shelly 1PM Product Page](https://www.shelly.com/en/products/shop/shelly-1pm)
- [Shelly 1PM API Documentation](https://shelly-api-docs.shelly.cloud/gen1/#shelly1-1pm)

The Shelly 1PM is a compact Wi-Fi relay switch with built-in power metering. It fits behind a standard wall switch and can control one circuit up to 16 A (3500 W at 230 V). TapHome communicates with the device over HTTP on the local network — no cloud connection is required.

The template provides relay control and an energy meter that reads real-time power consumption and cumulative energy usage.

## Configuration

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

## Device capabilities

### Relay control

The template exposes the relay as a switch device. The relay state is read from the `/status` response (`relays[0].ison`) and controlled via the `/relay/0` endpoint with `turn=on` or `turn=off`.

### Power metering

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

- **Real-time power** — `meters[0].power` reported in watts, converted to kW by the template
- **Total consumption** — `meters[0].total` reported in watt-minutes, converted to kWh by the template

The meter is read-only — it updates automatically with every poll cycle.

### Service diagnostics

The template exposes 13 service attributes for device monitoring:

- **Device info** — hostname, MAC address, device time, uptime, RAM usage
- **Thermal protection** — internal temperature (°C), temperature status (Normal / High / Very High), overtemperature flag
- **Connectivity** — cloud enabled/connected, MQTT connected, firmware update available
- **Power protection** — current max power limit (reads from `/settings`)

### Service actions

Three service actions are available:

- **Set power protection** — sets the maximum power limit (1–3500 W). The relay automatically turns off if consumption exceeds this value.
- **Enable cloud** — enables or disables Shelly Cloud connectivity
- **Reboot** — triggers a device reboot

### Additional capabilities

The Shelly 1PM also exposes line voltage, reactive power, physical input state, and WiFi signal strength in its `/status` response. An auto-off timer is available on the relay endpoint. 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 (`shelly1pm-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

### Power readings show zero

1. Confirm the load is connected through the Shelly relay (not bypassed)
2. Check that the relay is turned on — the meter only reads when current flows through the relay
3. Poll `/status` manually and verify `meters[0].power` returns a non-zero value

### Overtemperature warning

The Shelly 1PM has internal thermal protection. If the device temperature exceeds safe limits, the `temperature_status` changes to "High" or "Very High" and `overtemperature` becomes `true`. Ensure adequate ventilation around the device, especially when switching high loads.

> [!WARNING]
> 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](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

Shelly 1PM Module

Service Attributes

|                             |
|-----------------------------|
| Power protection            |
| Host name                   |
| MAC address                 |
| Device time                 |
| Uptime                      |
| RAM                         |
| Internal device temperature |
| Temperature status          |
| FW update                   |
| Cloud enabled               |
| Cloud connected             |
| MQTT connected              |
| Overheated                  |

Service Actions

|                      |
|----------------------|
| Set power protection |
| Enable cloud         |
| Reboot               |

Custom Variables

Switch Switch

boolean

Values / States: ON · OFF

Electric Meter Electricity Meter Read-only

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

numeric Unit: W / kWh

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

Possible improvements (5)

- Voltage — Line voltage in V, available in /status response
- Reactive Power — Reactive power in VAR, available in /status response
- Input State — Physical input state (0/1), available in /status response
- 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 or switch parameter

## Sources

- Shelly Gen1 API Reference
  
  [shelly-api-docs.shelly.cloud](https://shelly-api-docs.shelly.cloud/gen1/) 2026-03-12

## 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/)

