---
title: "Shelly Plus 1PM"
description: "Shelly Plus 1PM Gen2+ przekaźnik z pomiarem mocy przez MQTT. Moc (kW), energia (kWh), napięcie, prąd i temperatura z TapHome przez broker MQTT."
url: "https://taphome.com/pl/compatibility/shelly-plus-1pm-mqtt/"
language: pl
lastmod: 2026-03-31
generator: hugo
ai:
  topics: ["mqtt","electric-meter","wifi","relay","power-metering","gen2plus"]
  questions: ["Jak zintegrować Shelly Plus 1PM z TapHome przez MQTT?","Co mierzy szablon Shelly Plus 1PM MQTT w TapHome?","Jak znaleźć MQTT Client ID urządzenia Shelly Plus 1PM?","Dlaczego Shelly Plus 1PM MQTT nie raportuje danych?","Jaka diagnostyka jest dostępna dla Shelly Plus 1PM przez MQTT?","Jak sterować przekaźnikiem Shelly Plus 1PM przez MQTT z TapHome?"]
---

# Shelly Plus 1PM

Komunikacja: Packet Parser → MQTT

- [Strona produktu Shelly Plus 1PM](https://www.shelly.com/en/products/shop/shelly-plus-1pm)
- [Dokumentacja Shelly Gen2+ MQTT API](https://shelly-api-docs.shelly.cloud/gen2/ComponentsAndServices/Mqtt/)

> Adres w sieci
> 
> Przy brokerze MQTT wbudowanym w TapHome wpisz w TapHome jako adres brokera `127.0.0.1`. W urządzeniu wpisz adres IP TapHome Core i nadaj jednostce Core rezerwację IP w routerze.
> 
> [Przygotowanie sieci](https://taphome.com/pl/docs/setup/network-preparation/)

## Poradnik integracji

Shelly Plus 1PM to kompaktowy przekaźnik Wi-Fi Gen2+ z wbudowanym pomiarem mocy. Mieści się za standardowym wyłącznikiem ściennym i może sterować jednym obwodem do 16 A (3500 W przy 230 V AC) lub 10 A (30 V DC). To jest **wariant MQTT** szablonu TapHome — urządzenie komunikuje się przez broker MQTT zamiast bezpośredniego odpytywania HTTP, co jest przydatne w środowiskach z wieloma kontrolerami lub gdy urządzenie znajduje się w innej sieci VLAN.

Szablon zawiera dwa urządzenia: **Licznik energii** do monitorowania mocy i energii oraz **Przełącznik** do sterowania przekaźnikiem. Trzy atrybuty serwisowe na poziomie modułu pokazują temperaturę wewnętrzną, napięcie i prąd.

## Konfiguracja

### MQTT Client ID

Każdy Shelly Plus 1PM ma unikalne MQTT Client ID w formacie `shellyplus1pm-<DEVICEID>`, gdzie `<DEVICEID>` to 12-znakowy szesnastkowy adres MAC (np. `shellyplus1pm-AABBCCDDEE00`).

Client ID można znaleźć:

- W interfejsie webowym Shelly: **Settings** → **MQTT** → **Client ID**
- Przez API: `GET http://<device-ip>/rpc/MQTT.GetConfig` → pole `client_id`
- Na etykiecie urządzenia (adres MAC)

> [!TIP]
> To urządzenie obsługuje **mDNS discovery**. Zamiast adresu IP można użyć nazwy hosta `shellyplus1pm-{MAC}.local` do weryfikacji łączności. Zastąp `{MAC}` pełnym adresem MAC urządzenia w formacie szesnastkowym małymi literami (np. `shellyplus1pm-aabbccddee00.local`).

### Włączenie MQTT

1. Otwórz interfejs webowy Shelly: `http://<device-ip>/`
2. Przejdź do **Settings** → **MQTT**
3. Włącz **MQTT**
4. Ustaw **Server**: `<broker-ip>:<port>` (np. `192.168.1.10:1883`)
5. **Client ID** jest wypełnione automatycznie — pozostaw bez zmian, chyba że masz konkretny powód do zmiany
6. Kliknij **Save** i uruchom ponownie urządzenie

> [!TIP]
> Aby zweryfikować działanie MQTT, użyj klienta MQTT (np. MQTT Explorer) i zasubskrybuj `shellyplus1pm-<DEVICEID>/#`. Powinieneś zobaczyć komunikaty statusowe z urządzenia, w tym `shellyplus1pm-<DEVICEID>/status/switch:0`.

### Konfiguracja szablonu

Po zaimportowaniu szablonu do TapHome:

1. Otwórz **Shelly Plus 1PM MQTT Module**
2. Ustaw **MQTT Broker IP** i **Port** (domyślnie `1883`)
3. Ustaw zmienną **plug1topic** na MQTT Client ID urządzenia Shelly Plus 1PM (np. `shellyplus1pm-AABBCCDDEE00`)

Moduł subskrybuje `{plug1topic}/status/switch:0` i publikuje polecenia sterujące do `{plug1topic}/command/switch:0`.

## Możliwości urządzenia

### Pomiar mocy

Licznik energii odczytuje dwie wartości z komunikatu statusowego MQTT `{plug1topic}/status/switch:0`:

- **Moc chwilowa** — `apower` raportowana w watach, konwertowana na kW przez szablon (dzielenie przez 1000)
- **Energia kumulatywna** — `aenergy.total` raportowana w watogodzinach, konwertowana na kWh przez szablon (dzielenie przez 1000)

Licznik jest tylko do odczytu — aktualizuje się automatycznie po każdym opublikowaniu komunikatu statusowego na broker MQTT.

### Sterowanie przekaźnikiem

Przełącznik steruje przekaźnikiem:

- **Odczyt stanu** — subskrybuje `{plug1topic}/status/switch:0` i odczytuje pole logiczne `output`
- **Zapis stanu** — publikuje `on` lub `off` do `{plug1topic}/command/switch:0`

Przekaźnik obsługuje obciążenie do 3500 W / 16 A przy 230 V AC.

### Diagnostyka

Trzy atrybuty serwisowe na poziomie modułu są parsowane z tego samego payloadu JSON `status/switch:0`:

| Atrybut | Jednostka | Opis |
|---------|-----------|------|
| Temperatura wewnętrzna | °C | Temperatura wewnętrzna urządzenia — monitoruje stan termiczny przekaźnika i PCB |
| Napięcie | V | Napięcie zasilania AC na wejściu przekaźnika |
| Prąd | A | Prąd obciążenia przez wyjście przekaźnika |

Wszystkie trzy atrybuty wyświetlają „Unknown" do momentu nadejścia pierwszego komunikatu statusowego MQTT (wartość początkowa to `NaN`).

### Dodatkowe możliwości

Shelly Plus 1PM udostępnia również współczynnik mocy, częstotliwość sieci, energię zwróconą (do pomiarów dwukierunkowych), stan wejścia fizycznego, polecenie toggle, timer automatycznego wyłączenia oraz akcję wymuszonej aktualizacji statusu przez swoje MQTT API. Te możliwości mogą zostać dodane w przyszłej aktualizacji szablonu.

## Rozwiązywanie problemów

### Komunikaty MQTT nie docierają

1. Zweryfikuj, że MQTT jest włączone w interfejsie webowym Shelly (**Settings** → **MQTT**)
2. Sprawdź, czy adres brokera i port są prawidłowe zarówno w ustawieniach urządzenia Shelly, jak i modułu TapHome
3. Sprawdź, czy zmienna `plug1topic` dokładnie odpowiada MQTT Client ID urządzenia Shelly (np. `shellyplus1pm-AABBCCDDEE00`)
4. Użyj klienta MQTT (np. MQTT Explorer) i zasubskrybuj `shellyplus1pm-#`, aby zweryfikować, czy urządzenie publikuje komunikaty

### Pomiar mocy pokazuje zero

1. Upewnij się, że obciążenie jest podłączone przez przekaźnik Shelly (nie pominięte)
2. Sprawdź, czy przekaźnik jest włączony — licznik mierzy tylko przy przepływie prądu przez przekaźnik
3. Zasubskrybuj `{plug1topic}/status/switch:0` klientem MQTT i zweryfikuj, że `apower` zwraca wartość różną od zera

### Przekaźnik nie reaguje na polecenia

1. Zweryfikuj, że TapHome ma dostęp do brokera MQTT (prawidłowe IP i port w ustawieniach modułu)
2. Sprawdź, czy wartość `plug1topic` odpowiada MQTT Client ID urządzenia
3. Przetestuj publikując `on` do `{plug1topic}/command/switch:0` przez klienta MQTT — przekaźnik powinien się włączyć

### Diagnostyka pokazuje „Unknown"

1. Wszystkie trzy atrybuty (temperatura, napięcie, prąd) pokazują „Unknown" do momentu nadejścia pierwszego komunikatu statusowego
2. Jeśli wartości pozostają „Unknown" po uruchomieniu urządzenia, sprawdź, czy połączenie MQTT jest aktywne i komunikaty statusowe są publikowane
3. Uruchom ponownie urządzenie Shelly, aby wymusić nową publikację statusu

> [!WARNING]
> Urządzenia Shelly Gen2+ obsługują MQTT z opcjonalnym TLS. Jeśli TLS nie jest skonfigurowany, komunikacja między urządzeniem a brokerem MQTT jest nieszyfrowana (plain MQTT, port 1883). Dla szyfrowanej komunikacji włącz TLS w ustawieniach MQTT urządzenia Shelly i użyj portu 8883.

## Jak zainstalować w TapHome

### Wymagania wstępne

- Urządzenie Shelly połączone z Wi-Fi (2,4 GHz), np. przez aplikację Shelly lub własny punkt dostępowy urządzenia
- Broker MQTT działający w sieci lokalnej (np. Mosquitto, Home Assistant lub wbudowany broker TapHome)
- TapHome CCU w tej samej sieci co broker

> [!WARNING]
> Na urządzeniach **Gen1** włączenie MQTT **wyłącza Shelly Cloud**. Oba nie mogą działać jednocześnie. Na urządzeniach Gen2/Plus to ograniczenie nie obowiązuje.

### Krok 1 — Włącz MQTT na urządzeniu Shelly

#### Urządzenia Gen1 (Shelly 1, 1PM, 2.5, EM, 3EM, Plug S, RGBW2, Dimmer, TRV…)

1. Otwórz interfejs webowy Shelly: `http://<device-ip>/`
2. Przejdź do **Internet & Security** → **Advanced — MQTT**
3. Włącz **MQTT**
4. Ustaw **MQTT Server**: `<broker-ip>:<port>` (np. `192.168.1.10:1883`)
5. Opcjonalnie ustaw **MQTT User** i **MQTT Password**, jeśli broker wymaga uwierzytelniania
6. Kliknij **Save** — urządzenie zrestartuje się i połączy z brokerem

#### Urządzenia Gen2 / Plus (Shelly Plus 1, Plus 1PM, Plus 2PM, Plus Plug S, Plus H&T, Pro 3EM…)

1. Otwórz interfejs webowy Shelly: `http://<device-ip>/`
2. Przejdź do **Settings** → **MQTT**
3. Włącz **MQTT**
4. Ustaw **Server**: `<broker-ip>:<port>` (np. `192.168.1.10:1883`)
5. **Client ID** jest wstępnie wypełnione identyfikatorem urządzenia (np. `shellyplus1pm-AABBCCDDEE`) — pozostaw bez zmian, chyba że masz konkretny powód do zmiany
6. Kliknij **Save** i zrestartuj urządzenie

Przy wbudowanym brokerze TapHome `<broker-ip>` to adres IP TapHome Core. Nadaj jednostce Core rezerwację IP w routerze, w przeciwnym razie urządzenie straci brokera, gdy router zmieni adres → [Przygotowanie sieci](https://taphome.com/pl/docs/setup/network-preparation/).

> [!TIP]
> Aby sprawdzić, czy MQTT działa, użyj klienta MQTT (np. MQTT Explorer) i zasubskrybuj `shellies/#` (Gen1) lub `<device-id>/#` (Gen2). Powinieneś zobaczyć komunikaty o stanie z urządzenia.

### Krok 2 — Znajdź Device ID / MQTT Client ID

Niektóre szablony wymagają parametru **Device ID** lub **MQTT Client ID**. Jest to unikalny identyfikator używany w topikach MQTT.

- **Gen1:** znajduje się na etykiecie jako adres MAC (np. `AABBCCDDEE`). Device ID = `shelly<model>-<mac>`, np. `shelly1pm-AABBCCDDEE`
- **Gen2/Plus:** znajduje się w interfejsie webowym Shelly w sekcji **Settings** → **Device Info** → **Device ID** lub na etykiecie urządzenia

### Krok 3 — Konfiguracja w TapHome

1. W TapHome dodaj nowy moduł **Packet Parser (MQTT)**
2. **IP Address:** dla wbudowanego brokera TapHome `127.0.0.1` (jednostka łączy się sama ze sobą, adres nigdy się nie zmienia); dla zewnętrznego brokera jego adres IP (np. `192.168.1.10`)
3. **Port:** `1883` (domyślny; użyj `8883` dla TLS)
4. **Device ID / MQTT Client ID:** wprowadź wartość z kroku 2 (jeśli wymagane przez szablon)
5. Zaimportuj szablon — TapHome automatycznie zasubskrybuje topiki urządzenia

## Dostępne urządzenia 2

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

Shelly Plus 1PM MQTT Module Moduł

Atrybuty serwisowe

|                        |                                                                                 |
|------------------------|---------------------------------------------------------------------------------|
| Temperatura wewnętrzna | Temperatura wewnętrzna urządzenia — monitoruje stan termiczny przekaźnika i PCB |
| Napięcie               | Napięcie zasilania AC na wejściu przekaźnika                                    |
| Prąd                   | Prąd obciążenia przez wyjście przekaźnika                                       |

Zmienne niestandardowe

|                       |                                                                                                                                                                               |
|-----------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `plug1topic` (string) | MQTT Client ID urządzenia Shelly Plus 1PM — format to 'shellyplus1pm-&lt;deviceid&gt;'. Do znalezienia w interfejsie webowym urządzenia: Settings → MQTT Settings → Client ID |

Nasłuchiwanie

```taphome
IF(INDEXOF(plug1topic, "shellyplus1pm-deviceid") = 0)
    ADDERROR("Set correct 'plug1topic' value in module variables. Topic format is 'shellyplus1pm-<deviceid>'. The Device ID can be found by opening url 'http://shellyIpAddress', in Settings -> MQTT Settings -> Client ID.");
    RETURN(-1);
END

IF(RECEIVEDMSG.TOPIC = plug1topic + "/status/switch:0")
    internalTemp := PARSEJSON(RECEIVEDMSG.PAYLOAD, "temperature.tC");
    voltage := PARSEJSON(RECEIVEDMSG.PAYLOAD, "voltage");
    current := PARSEJSON(RECEIVEDMSG.PAYLOAD, "current");
    VAR errors := PARSEJSON(RECEIVEDMSG.PAYLOAD, "errors", TRUE);
    
    IF (!ISNULL(errors))
        VAR errCount := LENGTH(errors);
        VAR i := 0;
        VAR errorText := "";
        
        WHILE i < errCount
            IF LENGTH(errorText)
                errorText += ", ";
            END
            errorText := errorText + GETAT(errors, i);
            i += 1;
        LOOP
        
        IF LENGTH(errorText)
            ADDERROR(errorText);
        END
    END
END
```

Atrybuty serwisowe

Internal temperature

```taphome
IF(ISNAN(internalTemp), "Unknown", internalTemp + "°C");
```

Voltage

```taphome
IF(ISNAN(voltage), "Unknown", voltage + "V");
```

Current

```taphome
IF(ISNAN(current), "Unknown", current + "A");
```

Licznik energii Licznik energii Tylko do odczytu

Moc chwilowa (kW) i energia kumulatywna (kWh) z payloadu statusowego MQTT

numeric Jednostka: kW / kWh

Nasłuchiwanie

```taphome
IF(INDEXOF(plug1topic, "shellyplus1pm-deviceid") = 0)
    ADDERROR("Set correct 'plug1topic' value in module variables. Topic format is 'shellyplus1pm-<deviceid>'. The Device ID can be found by opening url 'http://shellyIpAddress', in Settings -> MQTT Settings -> Client ID.");
    RETURN(-1);
END

IF(RECEIVEDMSG.TOPIC = plug1topic + "/status/switch:0")
    Ed := PARSEJSON(RECEIVEDMSG.PAYLOAD, "apower") / 1000.0;
    To := PARSEJSON(RECEIVEDMSG.PAYLOAD, "aenergy.total") / 1000.0;
END
```

Przełącznik Przełącznik Odczyt i zapis

Sterowanie przekaźnikiem wł./wył. przez MQTT command topic

boolean

Wartości / Stany: ON · OFF

Zapis stanu przełącznika

```taphome
VAR value := IF(St = 1, "on", "off");
MQTTPUBLISH(plug1topic + "/command/switch:0", value);
```

Nasłuchiwanie

```taphome
IF(INDEXOF(plug1topic, "shellyplus1pm-deviceid") = 0)
    ADDERROR("Set correct 'plug1topic' value in module variables. Topic format is 'shellyplus1pm-<deviceid>'. The Device ID can be found by opening url 'http://shellyIpAddress', in Settings -> MQTT Settings -> Client ID.");
    RETURN(-1);
END

IF(RECEIVEDMSG.TOPIC = plug1topic + "/status/switch:0")
    St := PARSEJSON(RECEIVEDMSG.PAYLOAD, "output");
END
```

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

Możliwe ulepszenia (8)

- Power Factor — Power factor value, available in switch:0 status JSON for metered devices
- Network Frequency — AC network frequency in Hz, available in switch:0 status JSON
- Returned Energy — Returned/exported energy in Wh, for bi-directional metering scenarios
- Connection Status — LWT topic — true on connect, false on disconnect. Could detect offline device.
- Toggle Command — Toggle relay state; template only supports on/off
- Auto-off Timer — Turn ON with auto-off timer in seconds via 'on,N' command
- Input State — Physical switch/button input state, available via Input.GetStatus RPC method over MQTT
- Force Status Update — Request device to publish current status on all component topics

## Parametry importu

Te wartości podajesz podczas importu pliku XML.

| Pytanie w aplikacji   | Domyślnie                |
|-----------------------|--------------------------|
| Mqtt Broker Adres IP  | `192.168.0.1`            |
| Mqtt Broker port      | `1883`                   |
| Shelly MQTT Client ID | `shellyplus1pm-deviceId` |

## Ź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
- Shelly Gen2+ MQTT Component API
  
  [shelly-api-docs.shelly.cloud](https://shelly-api-docs.shelly.cloud/gen2/ComponentsAndServices/Mqtt/) 2026-03-29
- Home Assistant Shelly Integration
  
  [www.home-assistant.io](https://www.home-assistant.io/integrations/shelly/) 2026-03-29
- Shelly Plus 1PM Knowledge Base — specs & wiring
  
  [kb.shelly.cloud](https://kb.shelly.cloud/knowledge-base/shelly-plus-1pm) 2026-03-31

## Powiązana dokumentacja

- [MQTT Integration](https://taphome.com/pl/compatibility/mqtt-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/)
- [Broker MQTT](https://taphome.com/pl/docs/integration/packet-parser/mqtt-broker/)
- [Skrypty listener](https://taphome.com/pl/docs/script/listener-scripts/)

