---
title: "Shelly Pro 4PM"
description: "Shelly Pro 4PM 4-kanałowy przekaźnik na szynę DIN z pomiarem mocy na kanał. Sterowanie czterema obwodami i monitoring energii przez HTTP z TapHome."
url: "https://taphome.com/pl/compatibility/shelly-4-pro/"
language: pl
lastmod: 2026-03-29
generator: hugo
ai:
  topics: ["http","electric-meter","wifi","relay","power-metering","din-rail","4-channel","mdns","ethernet"]
  questions: ["Jak zintegrować Shelly Pro 4PM z TapHome?","Co mierzy szablon Shelly Pro 4PM w TapHome?","Jak podłączyć Shelly Pro 4PM przez HTTP do TapHome?","Dlaczego Shelly Pro 4PM pokazuje zerowe odczyty mocy?","Czy TapHome może odczytać stan przekaźnika na Shelly Pro 4PM?","Jak ustawić limit ochrony mocy na Shelly Pro 4PM przez TapHome?","Jaka jest różnica między Shelly Pro 4PM V1 a V2?","Dlaczego przełączniki przekaźnikowe na Shelly Pro 4PM są tylko do zapisu?"]
---

# Shelly Pro 4PM

Komunikacja: Packet Parser → HTTP

- [Shelly Pro 4PM strona produktu](https://www.shelly.com/en/products/shop/shelly-pro-4pm)
- [Shelly Pro 4PM dokumentacja API](https://shelly-api-docs.shelly.cloud/gen2/Devices/Gen2/ShellyPro4PM)
- [Shelly Pro 4PM baza wiedzy](https://kb.shelly.cloud/knowledge-base/shelly-pro-4pm)

> Adres w sieci
> 
> TapHome łączy się z urządzeniem pod adresem podanym przy imporcie. Nadaj urządzeniu stały adres — rezerwację IP w routerze albo jego nazwę mDNS, jeśli ją obsługuje — inaczej integracja przestanie działać, gdy router zmieni adres.
> 
> [Przygotowanie sieci](https://taphome.com/pl/docs/setup/network-preparation/)

## Poradnik integracji

Shelly Pro 4PM to 4-kanałowy inteligentny przekaźnik na szynę DIN z wbudowanym pomiarem mocy na kanał. Każde z czterech niezależnych wyjść może przełączać do 16 A (łącznie 40 A), co czyni go odpowiednim do sterowania obwodami oświetleniowymi, urządzeniami lub obciążeniami w rozdzielnicy z indywidualnym monitoringiem energii na kanał. TapHome komunikuje się z urządzeniem przez HTTP w sieci lokalnej — połączenie z chmurą nie jest wymagane.

Szablon wykorzystuje mieszane podejście do API: punkty końcowe Gen2+ RPC (`/rpc/Switch.GetStatus?id=N`) do odczytu pomiarów energii oraz punkty końcowe Gen1 (`/relay/N?turn=on|off`) do sterowania przekaźnikami. Obie generacje API są obsługiwane przez Pro 4PM w celu zachowania wstecznej kompatybilności. Urządzenie łączy się przez WiFi lub Ethernet (RJ45) i posiada 1,8-calowy kolorowy wyświetlacz LCD do lokalnego monitorowania stanu.

## Konfiguracja

Shelly Pro 4PM łączy się przez WiFi lub Ethernet. Podczas importu szablonu TapHome podaj adres IP urządzenia (domyślny symbol zastępczy `192.168.0.1`).

> [!WARNING]
> Uwierzytelnianie musi być **wyłączone** na urządzeniu Shelly dla integracji z TapHome. TapHome nie obsługuje HTTP Digest Auth używanego przez urządzenia Gen2. Otwórz interfejs webowy Shelly (`http://{ip-urzadzenia}`) → Settings → Authentication i upewnij się, że jest wyłączone.

> [!WARNING]
> Kabel LAN wolno podłączać lub odłączać tylko gdy urządzenie jest **wyłączone**. Podłączanie kabla Ethernet podczas pracy może powodować problemy.

> [!NOTE]
> Jeśli tryb ECO jest włączony na urządzeniu Shelly, może powodować przekroczenia czasu komunikacji ze względu na szybkie interwały odpytywania szablonu (2,5–15 sekund). Wyłącz tryb ECO w interfejsie webowym Shelly, jeśli występują sporadyczne problemy z łącznością.

## Możliwości urządzenia

### Pomiar energii

Szablon udostępnia cztery niezależne urządzenia licznika energii, po jednym na kanał. Każdy licznik odczytuje z `/rpc/Switch.GetStatus?id=N` (gdzie N to 0–3):

- **Moc w czasie rzeczywistym** — `apower` w watach, szablon konwertuje na kW
- **Całkowite zużycie** — `aenergy.total` w watogodzinach, szablon konwertuje na kWh

Kanał 1 odpytuje co 2,5 sekundy dla szybszej odpowiedzi. Kanały 2–4 odpytują co 15 sekund.

Liczniki są tylko do odczytu — aktualizują się automatycznie z każdym cyklem odpytywania.

### Sterowanie przekaźnikiem

Szablon udostępnia cztery urządzenia przełączające przekaźnikowe, po jednym na kanał. Każdy przekaźnik jest sterowany przez punkt końcowy Gen1 `/relay/N?turn=on|off` (gdzie N to 0–3).

> [!NOTE]
> Przełączniki przekaźnikowe są **tylko do zapisu** — szablon nie odczytuje stanu przekaźnika z urządzenia. Aktualny stan przekaźnika można wywnioskować z odpowiedniego licznika energii: jeśli kanał raportuje niezerowe zużycie, przekaźnik jest włączony. Przyszła aktualizacja szablonu mogłaby dodać odczyt stanu przekaźnika za pomocą pola Gen2+ `/rpc/Switch.GetStatus?id=N` → `output`.

### Czujnik mocy

Samodzielne urządzenie czujnika mocy udostępnia surową moc czynną w watach dla kanału 1 (odczytaną z `/rpc/Switch.GetStatus?id=0` → `apower`). W przeciwieństwie do licznika energii, który konwertuje na kW, ten czujnik raportuje wartość w watach bez konwersji, co jest przydatne dla automatyzacji wymagających precyzji na poziomie watów.

### Diagnostyka serwisowa

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

- **Informacje o urządzeniu** — hostname, adres MAC, czas urządzenia, uptime, wykorzystanie 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 firmware
- **Ochrona mocy** — aktualny maksymalny limit mocy (odczytany z `/settings`)

### Akcje serwisowe

Dostępne są trzy akcje serwisowe:

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

### Dodatkowe możliwości

Shelly Pro 4PM udostępnia również napięcie, prąd, współczynnik mocy, częstotliwość i temperaturę wewnętrzną na kanał w odpowiedzi `/rpc/Switch.GetStatus`. Stany fizycznych wejść przełączników/przycisków (S1–S4), status Ethernetu, WiFi RSSI i natywne sterowanie przekaźnikiem Gen2+ z timerem automatycznego wyłączania są dostępne przez RPC API. Te możliwości mogą zostać dodane w przyszłej aktualizacji szablonu.

## Rozwiązywanie problemów

### Urządzenie nie odpowiada

1. Sprawdź, czy Shelly jest połączony z WiFi lub Ethernet i ma prawidłowy adres IP
2. Spróbuj użyć nazwy hosta mDNS (`shellypro4pm-AABBCCDDEE.local`) zamiast adresu IP — IP mógł się zmienić po odnowieniu DHCP
3. Otwórz `http://{ip-urzadzenia}/rpc/Shelly.GetDeviceInfo` w przeglądarce — jeśli odpowiada JSON, urządzenie jest osiągalne
4. Sprawdź, czy TapHome Core i Shelly są w tej samej sieci / VLAN
5. Upewnij się, że uwierzytelnianie jest wyłączone na urządzeniu Shelly

### Odczyty mocy pokazują zero

1. Potwierdź, że obciążenie jest podłączone przez wyjście przekaźnikowe Shelly (O1–O4), nie jest obejściem
2. Sprawdź, czy przekaźnik jest włączony — licznik mierzy tylko gdy prąd przepływa przez przekaźnik
3. Ręcznie odpytaj `/rpc/Switch.GetStatus?id=0` i sprawdź, czy `apower` zwraca wartość niezerową
4. Sprawdź poprawne ID kanału (id=0 dla Wyjścia 1, id=1 dla Wyjścia 2 itd.)

### Nieznany stan przekaźnika

Przełączniki przekaźnikowe w tym szablonie są tylko do zapisu — wysyłają komendy włączenia/wyłączenia, ale nie odczytują stanu przekaźnika. Aby zweryfikować rzeczywisty stan przekaźnika:

1. Sprawdź odpowiedni licznik energii — niezerowa moc oznacza, że przekaźnik jest włączony
2. Sprawdź wskaźniki LED przekaźników na panelu przednim urządzenia
3. Przetestuj ręcznie przez przeglądarkę: `http://{ip-urzadzenia}/relay/0` zwraca aktualny stan przekaźnika w JSON

### Ostrzeżenie o przegrzaniu

Shelly Pro 4PM posiada wewnętrzną ochronę termiczną. Jeśli temperatura urządzenia przekroczy bezpieczne limity, `temperature_status` zmienia się na "High" lub "Very High", a `overtemperature` staje się `true`. Zapewnij odpowiednią wentylację w rozdzielnicy, szczególnie przy jednoczesnym przełączaniu dużych obciążeń na wielu kanałach.

### Sprzęt V1 vs V2

Obie wersje używają tego samego firmware i API. V2 (SPSW-104PE16EU) ma ulepszone złącza — pięć indywidualnych zacisków śrubowych zamiast czterech bloków 2-zaciskowych — i lepszą izolację elektryczną LAN. Między wersjami nie są potrzebne żadne zmiany szablonu.

> [!WARNING]
> Urządzenia Shelly Gen2 obsługują do **6 jednoczesnych połączeń HTTP**. Szablon Shelly Pro 4PM używa do 5 jednoczesnych punktów końcowych na cykl odpytywania (4 liczniki energii + status modułu), co pozostawia ograniczony zapas. Unikaj jednoczesnego odpytywania z zbyt wielu systemów.

## 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 9

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

Shelly Pro 4PM Moduł

Akcje serwisowe

|                    |                                                                                                                  |
|--------------------|------------------------------------------------------------------------------------------------------------------|
| Ustaw ochronę mocy | Ustaw maksymalny limit mocy (1–3500 W) — przekaźnik wyłącza się automatycznie, gdy zużycie przekroczy tę wartość |
| Włącz chmurę       | Włącz lub wyłącz łączność z Shelly Cloud                                                                         |
| Restart            | Uruchom restart urządzenia                                                                                       |

Zmienne niestandardowe

|                         |
|-------------------------|
| `StatusJson` (string)   |
| `SettingsJson` (string) |
| `status` (string) = 0   |

Odczyt (moduł)

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

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");
```

Licznik energii kanał 1 Licznik energii Tylko do odczytu

Pomiar mocy i energii per kanał dla wyjścia 1 — moc chwilowa (kW) i energia skumulowana (kWh)

numeric Jednostka: W / kWh

Odczyt całkowitego zużycia

```taphome
return(parsejson(parsejson(status,"aenergy"), "total")/1000);
```

Odczyt zapotrzebowania

```taphome
return(parsejson(status,"apower")/1000);
```

Odczyt (moduł)

```taphome
var x := (sendhttprequest("/rpc/Switch.GetStatus?id=0"));
status := x.Content;
```

Licznik energii kanał 2 Licznik energii Tylko do odczytu

Pomiar mocy i energii per kanał dla wyjścia 2 — moc chwilowa (kW) i energia skumulowana (kWh)

numeric Jednostka: W / kWh

Odczyt całkowitego zużycia

```taphome
return(parsejson(parsejson(status,"aenergy"), "total")/1000);
```

Odczyt zapotrzebowania

```taphome
return(parsejson(status,"apower")/1000);
```

Odczyt (moduł)

```taphome
var x := (sendhttprequest("/rpc/Switch.GetStatus?id=1"));
status := x.Content;
```

Licznik energii kanał 3 Licznik energii Tylko do odczytu

Pomiar mocy i energii per kanał dla wyjścia 3 — moc chwilowa (kW) i energia skumulowana (kWh)

numeric Jednostka: W / kWh

Odczyt całkowitego zużycia

```taphome
return(parsejson(parsejson(status,"aenergy"), "total")/1000);
```

Odczyt zapotrzebowania

```taphome
return(parsejson(status,"apower")/1000);
```

Odczyt (moduł)

```taphome
var x := (sendhttprequest("/rpc/Switch.GetStatus?id=2"));
status := x.Content;
```

Licznik energii kanał 4 Licznik energii Tylko do odczytu

Pomiar mocy i energii per kanał dla wyjścia 4 — moc chwilowa (kW) i energia skumulowana (kWh)

numeric Jednostka: W / kWh

Odczyt całkowitego zużycia

```taphome
return(parsejson(parsejson(status,"aenergy"), "total")/1000);
```

Odczyt zapotrzebowania

```taphome
return(parsejson(status,"apower")/1000);
```

Odczyt (moduł)

```taphome
var x := (sendhttprequest("/rpc/Switch.GetStatus?id=3"));
status := x.Content;
```

Przekaźnik kanał 2 Przełącznik Odczyt i zapis

Sterowanie przekaźnikiem tylko zapis dla wyjścia 2 — stan nie jest odczytywany, wnioskować z licznika energii

boolean

Wartości / Stany: ON · OFF

Zapis stanu przełącznika

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

Przekaźnik kanał 1 Przełącznik Odczyt i zapis

Sterowanie przekaźnikiem tylko zapis dla wyjścia 1 — stan nie jest odczytywany, wnioskować z licznika energii

boolean

Wartości / Stany: ON · OFF

Zapis stanu przełącznika

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

Czujnik mocy kanał 1 Zmienna Tylko do odczytu

Surowa moc czynna w watach dla kanału 1 — samodzielna wartość czujnika bez konwersji na kW

numeric Jednostka: W

Odczyt

```taphome
return(parsejson(status,"apower"));
```

Odczyt (moduł)

```taphome
var x := (sendhttprequest("/rpc/Switch.GetStatus?id=0"));
status := x.Content;
```

Przekaźnik kanał 3 Przełącznik Odczyt i zapis

Sterowanie przekaźnikiem tylko zapis dla wyjścia 3 — stan nie jest odczytywany, wnioskować z licznika energii

boolean

Wartości / Stany: ON · OFF

Zapis stanu przełącznika

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

Przekaźnik kanał 4 Przełącznik Odczyt i zapis

Sterowanie przekaźnikiem tylko zapis dla wyjścia 4 — stan nie jest odczytywany, wnioskować z licznika energii

boolean

Wartości / Stany: ON · OFF

Zapis stanu przełącznika

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

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

Możliwe ulepszenia (10)

- Relay State Read — Switches have no readswitchstate script — relay state is not read back. Gen2+ /rpc/Switch.GetStatus?id=N provides output (boolean) for state feedback.
- Voltage — Per-channel line voltage in V, available in /rpc/Switch.GetStatus response
- Current — Per-channel load current in A, available in /rpc/Switch.GetStatus response
- Power Factor — Per-channel power factor, available in /rpc/Switch.GetStatus response
- Frequency — Network frequency in Hz, available in /rpc/Switch.GetStatus response
- Per-Channel Temperature — Internal temperature in °C per switch component, available in /rpc/Switch.GetStatus response
- Input States (S1-S4) — 4 physical switch/button inputs, available via /rpc/Input.GetStatus?id=0..3
- Gen2+ Relay Control — Native Gen2+ relay control with toggle\_after timer support. Template uses Gen1 /relay/N instead.
- WiFi Status (SSID, IP, RSSI) — WiFi status including signal strength, available via Gen2+ RPC
- Ethernet Status — Pro 4PM has RJ45 LAN port; Ethernet status (IP, link) available via /rpc/Ethernet.GetStatus

## 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 Gen2+/Gen3 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 (Sys) Component API
  
  [shelly-api-docs.shelly.cloud](https://shelly-api-docs.shelly.cloud/gen2/ComponentsAndServices/Sys/) 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 Pro 4PM Knowledge Base
  
  [kb.shelly.cloud](https://kb.shelly.cloud/knowledge-base/shelly-pro-4pm) 2026-03-29

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

