---
title: "Shelly Plus Smoke"
description: "Bateryjny fotoelektryczny alarm dymu przez MQTT. Wykrywanie dymu ze stanem alarmu, monitorowanie baterii i watchdog łączności. Szablon TapHome."
url: "https://taphome.com/pl/compatibility/shelly-plus-smoke/"
language: pl
lastmod: 2026-10-08
generator: hugo
ai:
  topics: ["mqtt","sensor","wifi","battery-powered","smoke-detector","security"]
  questions: ["Jak zintegrować Shelly Plus Smoke z TapHome przez MQTT?","Co raportuje szablon Shelly Plus Smoke w TapHome?","Jak TapHome wykrywa, czy Shelly Plus Smoke jest offline?","Dlaczego Shelly Plus Smoke nie raportuje zdarzeń alarmowych?","Czy Shelly Plus Smoke raportuje poziom baterii w TapHome?","Jak działa watchdog łączności dla bateryjnych urządzeń Shelly?"]
---

# Shelly Plus Smoke

Komunikacja: Packet Parser → MQTT

- [Strona produktu Shelly Plus Smoke](https://www.shelly.com/en/products/shop/shelly-plus-smoke)

> 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 Smoke to bateryjny (CR123A) fotoelektryczny alarm dymu Wi-Fi certyfikowany według DIN EN 14604. TapHome komunikuje się z urządzeniem przez MQTT za pomocą powiadomień RPC Gen2+ na topicu `events/rpc`. Urządzenie większość czasu spędza w głębokim uśpieniu w celu oszczędzania baterii i okresowo budzi się zgodnie z skonfigurowanym `wakeup_period`. Zdarzenia alarmu dymu wyzwalają natychmiastowe wybudzenie i powiadomienie MQTT.

Szablon tworzy jedno urządzenie Alarm dymu (zmapowane na Reed Contact) z dwoma atrybutami serwisowymi Bateria (procent i napięcie). Watchdog łączności monitoruje odliczanie okresu wybudzania i generuje ostrzeżenia lub błędy, gdy urządzenie nie raportowało przez dłuższy okres.

## Konfiguracja

### MQTT Client ID

Każdy Shelly Plus Smoke ma unikalny MQTT Client ID w formacie `shellyplussmoke-<MAC12>`, gdzie `<MAC12>` to pełny 12-znakowy adres MAC w szesnastkowym zapisie wielkimi literami (np. `shellyplussmoke-AABBCCDDEEFF`). Ten identyfikator służy również jako domyślny prefiks topiców MQTT.

Client ID można znaleźć:

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

### Konfiguracja szablonu

Po zaimportowaniu szablonu w TapHome:

1. Otwórz moduł **Shelly Plus Smoke**
2. Ustaw **MQTT Broker IP** na adres brokera MQTT
3. Ustaw **Port** (domyślnie `1883`)
4. Ustaw parametr importu **MQTT ID** na Client ID urządzenia (np. `shellyplussmoke-AABBCCDDEEFF`)

Moduł subskrybuje `<device-id>/#`, a skrypt nasłuchujący parsuje zdarzenia JSON-RPC `NotifyFullStatus` i `NotifyStatus` z topicu `events/rpc`.

> [!TIP]
> MQTT jest domyślnie wyłączone na Shelly Plus Smoke. Włącz go w ustawieniach urządzenia: **Settings** → **MQTT** → **Enable**. Upewnij się, że `rpc_ntf` (powiadomienia RPC) jest ustawione na `true` (domyślnie). Szablon opiera się na powiadomieniach `events/rpc`, a nie na indywidualnych topicach statusu.

### Zachowanie uśpienia i raportowania

Shelly Plus Smoke działa w trybie głębokiego uśpienia w celu maksymalizacji żywotności baterii:

- **Okresowe wybudzenie** — urządzenie budzi się w interwałach zdefiniowanych przez `sys.wakeup_period` i publikuje zdarzenie `NotifyFullStatus` zawierające status baterii, stan alarmu dymu i aktualny okres wybudzania
- **Zdarzenie alarmowe** — wykrycie dymu wyzwala natychmiastowe wybudzenie i powiadomienie `NotifyStatus` ze stanem alarmu
- **Między cyklami wybudzania** — urządzenie jest nieosiągalne przez HTTP i MQTT

Urządzenie jest zasilane pojedynczą baterią CR123A z oczekiwaną żywotnością do 5 lat. Nie używaj akumulatorów — producent wyraźnie przed tym ostrzega.

> [!WARNING]
> Urządzenie jest zasilane bateryjnie i nie jest stale podłączone do brokera MQTT. Między cyklami wybudzania żadna komunikacja nie jest możliwa. Jeśli lokalizacja czujnika ma słaby sygnał Wi-Fi, częste próby ponownego połączenia przy wybudzeniu mogą znacząco skrócić żywotność baterii.

## Możliwości urządzenia

### Alarm dymu

Szablon mapuje stan alarmu dymu na urządzenie Reed Contact (DeviceType 1030). Skrypt nasłuchujący parsuje zdarzenia `NotifyStatus` na topicu `events/rpc` i odczytuje `params['smoke:0'].alarm`:

- **ON** (alarm aktywny) — wykryto dym, wbudowany brzęczyk urządzenia brzmi na >85 dB
- **OFF** (alarm wyczyszczony) — brak dymu, normalna praca

Stan alarmu jest tylko do odczytu i aktualizuje się natychmiast po wykryciu dymu. Urządzenie wyzwala natychmiastowe powiadomienie MQTT przy zdarzeniach alarmowych niezależnie od harmonogramu uśpienia.

### Monitorowanie baterii

Moduł udostępnia dwa atrybuty serwisowe Bateria, które odczytują ze zdarzeń `NotifyFullStatus`:

- **Bateria [%]** — procentowy poziom naładowania z `params['devicepower:0'].battery.percent`. Ostrzeżenie o niskim poziomie baterii poniżej 30%
- **Bateria [V]** — napięcie baterii w woltach z `params['devicepower:0'].battery.V`. Napięcie nominalne 3V dla baterii CR123A

Obie wartości zwracają NaN przed odebraniem pierwszego pomiaru (tj. gdy zapisana wartość wynosi nadal 0). Dane baterii aktualizują się przy każdym okresowym wybudzeniu.

### Watchdog łączności

Szablon monitoruje łączność urządzenia za pomocą mechanizmu opartego na odliczaniu. Przy każdym zdarzeniu `NotifyFullStatus` skrypt nasłuchujący zapisuje wartość `sys.wakeup_period` w zmiennej niestandardowej `wakeup_period`. Skrypt odczytu następnie zmniejsza ten licznik o 60 w każdym cyklu pollingu (interwał 60-sekundowy):

- **Licznik osiąga 0** — urządzenie nie wybudziło się zgodnie z oczekiwaniami. Licznik ustawiany jest na -1 i generowane jest **WARNING**: "Update not received"
- **Licznik osiąga -86400** — urządzenie milczy od 48 godzin. Generowane jest **ERROR**: "Update not received in last 48h"

Gdy urządzenie się wybudzi i wyśle nowy `NotifyFullStatus`, licznik resetuje się do świeżej wartości `wakeup_period`, kasując wszystkie ostrzeżenia.

### Dodatkowe możliwości

Shelly Plus Smoke obsługuje również funkcję wyciszenia (`Smoke.Mute` metoda RPC) do tłumienia dźwięku alarmu, zdarzenia testowe alarmu dymu wyzwalane przyciskiem fizycznym i diagnostykę siły sygnału WiFi (RSSI). Urządzenie publikuje indywidualne topice statusu komponentów gdy `status_ntf` jest włączone. Możliwości te mogą zostać dodane w przyszłej aktualizacji szablonu.

## Rozwiązywanie problemów

### Alarm dymu nie raportuje zdarzeń

1. Sprawdź, czy Shelly Plus Smoke jest podłączony do Wi-Fi i MQTT jest włączone w ustawieniach urządzenia (**Settings** → **MQTT** → **Enable**)
2. Upewnij się, że `rpc_ntf` jest ustawione na `true` (domyślnie) — szablon wymaga powiadomień RPC na `events/rpc`
3. Potwierdź, że parametr importu **MQTT ID** dokładnie odpowiada Client ID urządzenia (np. `shellyplussmoke-AABBCCDDEEFF`)
4. Użyj klienta MQTT (np. MQTT Explorer) do subskrypcji `<device-id>/#` i sprawdź, czy urządzenie publikuje `NotifyFullStatus` po wybudzeniu
5. Sprawdź baterię urządzenia — wyczerpana bateria CR123A uniemożliwia urządzeniu połączenie z Wi-Fi

### Watchdog łączności pokazuje fałszywe ostrzeżenia

1. Watchdog porównuje odliczanie z oczekiwanym okresem wybudzania. Jeśli zegar TapHome Core jest znacząco przesunięty, mogą pojawiać się fałszywe ostrzeżenia
2. Na zasilaniu bateryjnym urządzenie budzi się tylko w skonfigurowanym interwale `wakeup_period` — przerwy między raportami są oczekiwane
3. Jeśli czujnik znajduje się w miejscu z niestabilnym Wi-Fi, może nie udać się połączyć w niektórych cyklach. Sprawdź siłę sygnału Wi-Fi
4. Po wymianie baterii urządzenie może potrzebować jednego pełnego cyklu wybudzania, zanim licznik watchdoga prawidłowo się zainicjalizuje

### Urządzenie wyświetla się jako Reed Contact zamiast alarmu dymu

Szablon TapHome używa typu urządzenia PacketParserReedContact (DeviceType 1030) do reprezentacji alarmu dymu. To prawidłowe mapowanie — stan ON oznacza "Alarm awaryjny" (wykryto dym), a stan OFF oznacza "OK" (brak dymu). Nazwa urządzenia w TapHome to "Shelly Plus Smoke" dla jasnego wskazania jego funkcji.

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

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

Shelly Plus Smoke Moduł

Zmienne niestandardowe

|                     |                                                                                                                                                                |
|---------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `deviceid` (string) | Identyfikator urządzenia MQTT używany jako prefiks topiców — format: shellyplussmoke-{MACADDRESS} (w interfejsie webowym Shelly → Settings → MQTT → Client ID) |

Alarm dymu Kontakt reed Tylko do odczytu

Stan fotoelektrycznego alarmu dymu — ON = Alarm awaryjny (wykryto dym), OFF = OK (brak dymu). Alarm wyzwala natychmiastowe powiadomienie MQTT z brzęczykiem &gt;85 dB.

boolean JSON-RPC (NotifyStatus → params.smoke:0.alarm)

Atrybuty serwisowe

|              |                                                                                                      |
|--------------|------------------------------------------------------------------------------------------------------|
| Bateria \[%] | Procentowy poziom naładowania baterii — ostrzeżenie poniżej 30%. Bateria CR123A, żywotność do 5 lat. |
| Bateria \[V] | Napięcie baterii w woltach — nominalne 3V dla baterii CR123A                                         |

Odczyt (moduł)

```taphome
if wakeup_period = 0
	# after init
else
	wakeup_period := wakeup_period - 60;
	if wakeup_period = 0
		wakeup_period := -1;
	end
end

if wakeup_period < 0
	ADDWARNING("Update not received");
end

if wakeup_period < -86400
	ADDERROR("Update not received in last 48h");
end
```

Nasłuchiwanie

```taphome
if RECEIVEDMSG.TOPIC = deviceid + "/events/rpc"
	var method := parsejson(RECEIVEDMSG.PAYLOAD, "method", true); 
	var params := parsejson(RECEIVEDMSG.PAYLOAD, "params", true);
	if method = "NotifyFullStatus"
		wakeup_period := parsejson(params, "sys.wakeup_period");
		battery_V := parsejson(params, "devicepower:0.battery.V");
		battery_percent := parsejson(params, "devicepower:0.battery.percent");
	end
	if method = "NotifyStatus" and !ISNULL(parsejson(params, "smoke:0", true))
		var alarm := parsejson(params, "smoke:0.alarm", true);
		if !ISNULL(alarm)
			Rc := alarm;
		end
	end
end

if battery_percent < 30
	ADDWARNING("Low battery");
end
```

Atrybuty serwisowe

Battery \[%]

```taphome
if battery_percent != 0
	return(battery_percent);
else
	return(NaN);
end
```

Battery \[V]

```taphome
if battery_V != 0
	return(battery_V);
else
	return(NaN);
end
```

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

Możliwe ulepszenia (4)

- Smoke Mute State — smoke:0.mute — true when alarm sound is suppressed via Smoke.Mute RPC. Could show muted status in TapHome.
- External Power Status — devicepower:0.external.present — always false for Plus Smoke (battery-only device), but available in API.
- WiFi RSSI — sys.wifi.rssi — signal strength in dBm. Could be used for placement diagnostics.
- Smoke Alarm Test Event — smoke.alarm\_test webhook event — triggered when user presses test button. Not captured by current template.

## Parametry importu

Te wartości podajesz podczas importu pliku XML.

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

## Źródła

- Shelly Gen2+ RPC API Reference
  
  [shelly-api-docs.shelly.cloud](https://shelly-api-docs.shelly.cloud/gen2/) 2026-03-27
- Shelly Gen2+ System (Sys) Component API
  
  [shelly-api-docs.shelly.cloud](https://shelly-api-docs.shelly.cloud/gen2/ComponentsAndServices/Sys/) 2026-03-27
- Shelly Gen2+ WiFi Component API
  
  [shelly-api-docs.shelly.cloud](https://shelly-api-docs.shelly.cloud/gen2/ComponentsAndServices/Wifi/) 2026-03-27
- Shelly Gen2+ MQTT Component API
  
  [shelly-api-docs.shelly.cloud](https://shelly-api-docs.shelly.cloud/gen2/ComponentsAndServices/Mqtt/) 2026-03-27
- HA Shelly Integration (Gen2+)
  
  [www.home-assistant.io](https://www.home-assistant.io/integrations/shelly/) 2026-03-27
- Smoke Component API Reference
  
  [shelly-api-docs.shelly.cloud](https://shelly-api-docs.shelly.cloud/gen2/ComponentsAndServices/Smoke/) 2026-03-30
- DevicePower Component API Reference
  
  [shelly-api-docs.shelly.cloud](https://shelly-api-docs.shelly.cloud/gen2/ComponentsAndServices/DevicePower/) 2026-03-30
- Shelly Plus Smoke Device Profile
  
  [shelly-api-docs.shelly.cloud](https://shelly-api-docs.shelly.cloud/gen2/0.14/Devices/ShellyPlusSmoke/) 2026-03-30
- Shelly Plus Smoke KB — Specifications
  
  [kb.shelly.cloud](https://kb.shelly.cloud/knowledge-base/shelly-plus-smoke) 2026-03-30

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

