---
title: "Shelly 1PM"
description: "Przekaźnik Wi-Fi Shelly 1PM z pomiarem mocy. Steruj jednym obwodem i monitoruj bieżące zużycie energii przez HTTP z TapHome."
url: "https://taphome.com/pl/compatibility/shelly-1pm/"
language: pl
lastmod: 2026-03-12
generator: hugo
ai:
  topics: ["http","electric-meter","wifi","relay","power-metering"]
  questions: ["Jak zintegrować Shelly 1PM z TapHome?","Co mierzy szablon Shelly 1PM w TapHome?","Jak połączyć Shelly 1PM z TapHome przez HTTP?","Dlaczego Shelly 1PM pokazuje zerowe odczyty mocy?","Jak ustawić limit zabezpieczenia mocy dla Shelly 1PM w TapHome?","Jakie diagnostyki są dostępne dla Shelly 1PM w TapHome?"]
---

# Shelly 1PM

Komunikacja: Packet Parser → HTTP

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

## Poradnik integracji

Shelly 1PM to kompaktowy przekaźnik Wi-Fi z wbudowanym pomiarem mocy. Mieści się za standardowym włącznikiem ściennym i może sterować jednym obwodem do 16 A (3500 W przy 230 V). TapHome komunikuje się z urządzeniem przez HTTP w sieci lokalnej — połączenie z chmurą nie jest wymagane.

Szablon zapewnia sterowanie przekaźnikiem oraz licznik energii odczytujący bieżące zużycie mocy i skumulowane zużycie energii.

## Konfiguracja

Shelly 1PM łączy się przez Wi-Fi. Podczas importu szablonu TapHome wprowadź adres IP urządzenia (domyślny placeholder `192.168.0.1`).

## Możliwości urządzenia

### Sterowanie przekaźnikiem

Szablon udostępnia przekaźnik jako urządzenie przełącznikowe. Stan przekaźnika jest odczytywany z odpowiedzi `/status` (`relays[0].ison`) i sterowany przez endpoint `/relay/0` z parametrami `turn=on` lub `turn=off`.

### Pomiar mocy

Wbudowany licznik energii odczytuje dwie wartości z odpowiedzi `/status`:

- **Moc chwilowa** — `meters[0].power` podawana w watach, przeliczana przez szablon na kW
- **Całkowite zużycie** — `meters[0].total` podawane w watominutach, przeliczane przez szablon na kWh

Licznik jest tylko do odczytu — aktualizuje się automatycznie przy każdym cyklu odpytywania.

### Diagnostyka serwisowa

Szablon udostępnia 13 atrybutów serwisowych do monitorowania urządzenia:

- **Informacje o urządzeniu** — nazwa hosta, adres MAC, czas urządzenia, czas pracy, zużycie RAM
- **Ochrona termiczna** — temperatura wewnętrzna (°C), status temperatury (Normal / High / Very High), flaga przegrzania
- **Łączność** — chmura włączona/połączona, MQTT połączony, dostępna aktualizacja oprogramowania
- **Ochrona mocy** — aktualny limit maksymalnej mocy (odczytywany z `/settings`)

### Akcje serwisowe

Dostępne są trzy akcje serwisowe:

- **Ustaw ochronę mocy** — ustawia maksymalny limit mocy (1–3500 W). Przekaźnik wyłącza się automatycznie, jeśli zużycie przekroczy tę wartość.
- **Włącz chmurę** — włącza lub wyłącza łączność z Shelly Cloud
- **Uruchom ponownie** — wywołuje ponowne uruchomienie urządzenia

### Dodatkowe możliwości

Shelly 1PM udostępnia również napięcie liniowe, moc bierną, fizyczny stan wejścia oraz siłę sygnału Wi-Fi w odpowiedzi `/status`. Na endpoincie przekaźnika dostępny jest timer automatycznego wyłączania. Te funkcje mogą zostać dodane w przyszłej aktualizacji szablonu.

## Rozwiązywanie problemów

### Urządzenie nie odpowiada

1. Sprawdź, czy Shelly jest połączony z Wi-Fi i ma prawidłowy adres IP
2. Spróbuj użyć nazwy hosta mDNS (`shelly1pm-AABBCCDDEE.local`) zamiast adresu IP — IP mogło się zmienić po odnowieniu DHCP
3. Otwórz `http://{device-ip}/shelly` w przeglądarce — jeśli odpowiada, urządzenie jest osiągalne
4. Sprawdź, czy CCU TapHome i Shelly są w tej samej sieci / VLAN

### Odczyty mocy pokazują zero

1. Upewnij się, że obciążenie jest podłączone przez przekaźnik Shelly (nie z pominięciem)
2. Sprawdź, czy przekaźnik jest włączony — licznik odczytuje wartości tylko wtedy, gdy przez przekaźnik przepływa prąd
3. Odpytaj `/status` ręcznie i sprawdź, czy `meters[0].power` zwraca wartość niezerową

### Ostrzeżenie o przegrzaniu

Shelly 1PM posiada wewnętrzną ochronę termiczną. Jeśli temperatura urządzenia przekroczy bezpieczne limity, `temperature_status` zmienia się na "High" lub "Very High", a `overtemperature` przyjmuje wartość `true`. Zapewnij odpowiednią wentylację wokół urządzenia, szczególnie przy sterowaniu dużymi obciążeniami.

> [!WARNING]
> Urządzenia Shelly Gen1 obsługują tylko **2 równoczesne połączenia HTTP**. Jeśli TapHome i inny system (np. Home Assistant) odpytują to samo urządzenie jednocześnie, komunikacja może stać się niestabilna. Używaj interwału odpytywania wynoszącego 10–30 sekund.

## Jak zainstalować w TapHome

### Wymagania wstępne

- Urządzenie Shelly zainstalowane i włączone
- Lokalna sieć Wi-Fi (2,4 GHz)
- TapHome CCU w tej samej sieci

### Krok 1 — Podłącz Shelly do Wi-Fi

**Opcja A — Aplikacja Shelly (zalecana):**

1. Pobierz [aplikację Shelly](https://www.shelly.com/en/support/shelly-app) (iOS / Android)
2. Dotknij **+** → **Add Device** i postępuj zgodnie z kreatorem parowania Bluetooth
3. Wprowadź dane logowania Wi-Fi, gdy zostaniesz o to poproszony

**Opcja B — Tryb AP (bez aplikacji):**

1. Przy pierwszym uruchomieniu urządzenie tworzy hotspot: `ShellyXXX-AABBCCDDEE`
2. Połącz telefon/PC z tym hotspotem
3. Otwórz `http://192.168.33.1` → **Internet & Security** → **Wi-Fi Mode - Client**
4. Wprowadź SSID i hasło → **Save**

> [!NOTE]
> Shelly obsługuje tylko sieci **2,4 GHz**. Sieci 5 GHz nie pojawią się podczas skanowania.

### Krok 2 — Znajdź adres IP

Po połączeniu z Wi-Fi znajdź przypisany adres IP za pomocą jednej z poniższych metod:

- **Aplikacja Shelly:** Szczegóły urządzenia → **Device info** → Adres IP
- **Interfejs webowy Shelly:** Połącz się z AP urządzenia przed konfiguracją Wi-Fi — IP zostanie wyświetlone po zapisaniu
- **Tabela DHCP routera:** Szukaj nazwy hosta takiej jak `shelly1pm-AABBCCDDEE`
- **mDNS:** Pinguj `shelly<model>-<mac>.local` (np. `shelly1pm-AABBCCDDEE.local`) z tej samej sieci

> [!TIP]
> Przypisz urządzeniu Shelly **statyczny IP** (rezerwację DHCP) w routerze, aby adres nie zmieniał się po ponownym uruchomieniu routera.

### Krok 3 — Konfiguracja w TapHome

1. W TapHome dodaj nowy moduł **Packet Parser (HTTP)**
2. **IP Address:** wprowadź IP z kroku 2 (np. `192.168.1.50`)
3. **Port:** `80` (domyślny, nie wymaga zmiany)
4. Zaimportuj szablon — TapHome będzie okresowo odpytywać `/status` w celu odczytu stanu urządzenia

> [!NOTE]
> Uwierzytelnianie HTTP jest domyślnie wyłączone na urządzeniach Shelly. Jeśli włączyłeś ochronę logowaniem, TapHome obecnie nie obsługuje HTTP Basic Auth — pozostaw uwierzytelnianie wyłączone dla integracji z TapHome.

## Dostępne urządzenia 2

Te urządzenia pojawią się w TapHome po imporcie.

Shelly 1PM Moduł

Atrybuty serwisowe

|                                   |
|-----------------------------------|
| Ochrona mocy                      |
| Nazwa hosta                       |
| Adres MAC                         |
| Czas urządzenia                   |
| Czas pracy                        |
| RAM                               |
| Temperatura wewnętrzna urządzenia |
| Stan temperatury                  |
| Aktualizacja FW                   |
| Chmura włączona                   |
| Chmura połączona                  |
| MQTT połączony                    |
| Przegrzany                        |

Akcje serwisowe

|                    |
|--------------------|
| Ustaw ochronę mocy |
| Włącz chmurę       |
| Restart            |

Zmienne niestandardowe

Odczyt (moduł)

```taphome
VAR response := SENDHTTPREQUEST("/status", "GET");
StatusJson := response.Content;
```

Atrybuty serwisowe

Power protection

```taphome
VAR response := SENDHTTPREQUEST("/settings", "GET");
SettingsJson := response.Content;

response := SENDHTTPREQUEST("/status", "GET");
StatusJson := response.Content;

PARSEJSON(SettingsJson, "max_power") + "W";
```

Host name

```taphome
PARSEJSON(SettingsJson, "device.hostname");
```

Mac address

```taphome
PARSEJSON(StatusJson, "mac");
```

Device time

```taphome
PARSEJSON(StatusJson, "time")
```

Uptime

```taphome
VAR upTimeSeconds := PARSEJSON(StatusJson, "uptime");
VAR days := FLOOR(upTimeSeconds/86400, 1);
uptimeSeconds := MOD(upTimeSeconds, 86400);
var hours := FLOOR(upTimeSeconds/3600, 1);
uptimeSeconds := MOD(upTimeSeconds, 3600);
var minutes := FLOOR(upTimeSeconds/60, 1);
days + "day(s) " + hours + "h " + minutes + "m"
```

RAM

```taphome
var ramTotal := PARSEJSON(StatusJson, "ram_total");
var ramFree := PARSEJSON(StatusJson, "ram_free");
ramFree + " bytes free of " + ramTotal
```

Internal device temperature

```taphome
PARSEJSON(StatusJson, "temperature") + "°C"
```

Temperature status

```taphome
PARSEJSON(StatusJson, "temperature_status");
```

FW update

```taphome
PARSEJSON(StatusJson, "has_update");
```

Cloud enabled

```taphome
PARSEJSON(StatusJson, "cloud.enabled");
```

Cloud connected

```taphome
PARSEJSON(StatusJson, "cloud.connected");
```

MQTT connected

```taphome
PARSEJSON(StatusJson, "mqtt.connected");
```

Overheated

```taphome
PARSEJSON(StatusJson, "overtemperature");
```

Akcje serwisowe

Set power protection

Parametry: Maximum power (1–3500 Watts)

```taphome
VAR response := SENDHTTPREQUEST("settings?max_power=" + Watts);
VAR contentJson := response.Content;
VAR limitSet := PARSEJSON(contentJson, "max_power");

"Power limit set to " + limitSet + "W"
```

Enable cloud

Parametry: Enable (Enable / Disable)

```taphome
VAR response := SENDHTTPREQUEST("/settings/cloud?enabled=" + enable);
VAR contentJson := response.Content;
VAR wasEnabled := PARSEJSON(contentJson, "enabled");

IF(wasEnabled, "Cloud enabled", "Cloud disabled");
```

Reboot

```taphome
VAR response := SENDHTTPREQUEST("/reboot");
VAR contentJson := response.Content;
VAR wasRebooted := PARSEJSON(contentJson, "ok");

IF(wasRebooted, "Reboot successful", "Error");
```

Przełącznik Przełącznik Odczyt i zapis

boolean

Wartości / Stany: ON · OFF

Odczyt stanu przełącznika

```taphome
VAR value := PARSEJSON(StatusJson, "relays[0].ison", 1);
IF(ISNULL(value), NaN, value);
```

Zapis stanu przełącznika

```taphome
VAR path := "relay/0?turn=" + SWITCH(St, 0, "off", 1, "on","off");
SENDHTTPREQUEST(path);
```

Licznik energii Licznik energii Tylko do odczytu

Pomiar zużycia energii — moc chwilowa (kW) i energia skumulowana (kWh)

numeric Jednostka: W / kWh

Odczyt całkowitego zużycia

```taphome
VAR total := PARSEJSON(StatusJson, "meters[0].total", 1);
IF(ISNULL(total), NaN, total / 60000.0);
```

Odczyt zapotrzebowania

```taphome
VAR power := PARSEJSON(StatusJson, "meters[0].power", 1);
IF(ISNULL(power), NaN, power / 1000.0);
```

**Połączenie:** Packet Parser → HTTP • Hostname: `shelly1pm-{MAC}.local`

Możliwe ulepszenia (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

## Parametry importu

Te wartości podajesz podczas importu pliku XML.

| Pytanie w aplikacji | Domyślnie     |
|---------------------|---------------|
| Adres IP            | `192.168.0.1` |

## Źródła

- Shelly Gen1 API Reference
  
  [shelly-api-docs.shelly.cloud](https://shelly-api-docs.shelly.cloud/gen1/) 2026-03-12
- Home Assistant Shelly Integration
  
  [www.home-assistant.io](https://www.home-assistant.io/integrations/shelly/) 2026-03-12

## Powiązana dokumentacja

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

