---
title: "Shelly Plus Smoke"
description: "Batteriebetriebener photoelektrischer Rauchalarm über MQTT. Raucherkennung mit Alarmstatus, Batterieüberwachung und Verbindungs-Watchdog. TapHome-Vorlage."
url: "https://taphome.com/de/compatibility/shelly-plus-smoke/"
language: de
lastmod: 2026-10-08
generator: hugo
ai:
  topics: ["mqtt","sensor","wifi","battery-powered","smoke-detector","security"]
  questions: ["Wie integriert man Shelly Plus Smoke mit TapHome über MQTT?","Was meldet die Shelly-Plus-Smoke-TapHome-Vorlage?","Wie erkennt TapHome, ob ein Shelly Plus Smoke offline ist?","Warum meldet mein Shelly Plus Smoke keine Alarmereignisse?","Meldet Shelly Plus Smoke den Batteriestand in TapHome?","Wie funktioniert der Konnektivitäts-Watchdog für batteriebetriebene Shelly-Geräte?"]
---

# Shelly Plus Smoke

Kommunikation: Packet Parser → MQTT

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

> Netzwerkadresse
> 
> Beim in TapHome integrierten MQTT-Broker geben Sie in TapHome `127.0.0.1` als Broker-Adresse ein. Im Gerät geben Sie die IP-Adresse des TapHome Core ein und richten für den Core eine IP-Reservierung im Router ein.
> 
> [Netzwerkvorbereitung](https://taphome.com/de/docs/setup/network-preparation/)

## Integrationsanleitung

Der Shelly Plus Smoke ist ein batteriebetriebener (CR123A) Wi-Fi photoelektrischer Rauchalarm, zertifiziert nach DIN EN 14604. TapHome kommuniziert mit dem Gerät über MQTT mittels Gen2+ RPC-Benachrichtigungen auf dem Topic `events/rpc`. Das Gerät verbringt die meiste Zeit im Tiefschlaf zur Batterieschonung und wacht periodisch basierend auf dem konfigurierten `wakeup_period` auf. Rauchalarm-Ereignisse lösen ein sofortiges Aufwachen und eine MQTT-Benachrichtigung aus.

Die Vorlage erstellt ein einzelnes Rauchalarm-Gerät (auf einen Reed-Kontakt abgebildet) mit zwei Batterie-Serviceattributen (Prozent und Spannung). Ein Konnektivitäts-Watchdog überwacht den Aufwach-Countdown und gibt Warnungen oder Fehler aus, wenn das Gerät längere Zeit nicht gemeldet hat.

## Konfiguration

### MQTT Client ID

Jeder Shelly Plus Smoke hat eine eindeutige MQTT Client ID im Format `shellyplussmoke-<MAC12>`, wobei `<MAC12>` die vollständige 12-stellige MAC-Adresse in hexadezimaler Großschreibung ist (z.B. `shellyplussmoke-AABBCCDDEEFF`). Diese ID dient auch als Standard-MQTT-Topic-Präfix.

Die Client ID finden Sie:

- Auf dem Gerätelabel (MAC-Adresse)
- In der Shelly Web-UI: **Settings** → **MQTT** → **Client ID**
- Über API: `GET http://<device-ip>/rpc/Mqtt.GetConfig` → Feld `client_id`

### Vorlageneinrichtung

Nach dem Import der Vorlage in TapHome:

1. Öffnen Sie das Modul **Shelly Plus Smoke**
2. Setzen Sie die **MQTT Broker IP** auf die Adresse des MQTT-Brokers
3. Setzen Sie den **Port** (Standard `1883`)
4. Setzen Sie den Import-Parameter **MQTT ID** auf die Client ID des Geräts (z.B. `shellyplussmoke-AABBCCDDEEFF`)

Das Modul abonniert `<device-id>/#` und das Listener-Skript parst `NotifyFullStatus`- und `NotifyStatus`-JSON-RPC-Ereignisse vom Topic `events/rpc`.

> [!TIP]
> MQTT ist beim Shelly Plus Smoke standardmäßig deaktiviert. Aktivieren Sie es in den Geräteeinstellungen: **Settings** → **MQTT** → **Enable**. Stellen Sie sicher, dass `rpc_ntf` (RPC-Benachrichtigungen) auf `true` gesetzt ist (Standard). Die Vorlage basiert auf `events/rpc`-Benachrichtigungen, nicht auf einzelnen Status-Topics.

### Schlaf- und Meldeverhalten

Der Shelly Plus Smoke arbeitet im Tiefschlafmodus zur Maximierung der Batterielebensdauer:

- **Periodisches Aufwachen** — das Gerät wacht in Intervallen auf, die durch `sys.wakeup_period` definiert sind, und veröffentlicht ein `NotifyFullStatus`-Ereignis mit Batteriestatus, Rauchalarmzustand und aktuellem Aufwachintervall
- **Alarmereignis** — ein Raucherkennungsereignis löst sofortiges Aufwachen und eine `NotifyStatus`-Benachrichtigung mit dem Alarmzustand aus
- **Zwischen Aufwachzyklen** — das Gerät ist über HTTP und MQTT nicht erreichbar

Das Gerät wird von einer einzelnen CR123A-Batterie betrieben mit einer erwarteten Lebensdauer von bis zu 5 Jahren. Verwenden Sie keine wiederaufladbaren Batterien — der Hersteller warnt ausdrücklich davor.

> [!WARNING]
> Das Gerät ist batteriebetrieben und nicht dauerhaft mit dem MQTT-Broker verbunden. Zwischen Aufwachzyklen ist keine Kommunikation möglich. Bei schwachem Wi-Fi-Signal am Sensorstandort können häufige Wiederverbindungsversuche beim Aufwachen die Batterielebensdauer erheblich verkürzen.

## Gerätefähigkeiten

### Rauchalarm

Die Vorlage bildet den Rauchalarmzustand auf ein Reed-Kontakt-Gerät ab (DeviceType 1030). Das Listener-Skript parst `NotifyStatus`-Ereignisse auf dem Topic `events/rpc` und liest `params['smoke:0'].alarm`:

- **ON** (Alarm aktiv) — Rauch erkannt, der eingebaute Signalgeber des Geräts ertönt mit >85 dB
- **OFF** (Alarm gelöscht) — kein Rauch, Normalbetrieb

Der Alarmzustand ist schreibgeschützt und aktualisiert sich sofort bei Raucherkennung. Das Gerät löst unabhängig vom Schlafplan eine sofortige MQTT-Benachrichtigung bei Alarmereignissen aus.

### Batterieüberwachung

Das Modul stellt zwei Batterie-Serviceattribute bereit, die aus `NotifyFullStatus`-Ereignissen lesen:

- **Batterie [%]** — prozentualer Ladestand aus `params['devicepower:0'].battery.percent`. Eine Warnung wird ausgelöst, wenn der Pegel unter 30 % fällt
- **Batterie [V]** — Batteriespannung in Volt aus `params['devicepower:0'].battery.V`. Nennspannung ist 3V für die CR123A-Batterie

Beide Werte geben NaN zurück, bevor die erste Messung empfangen wurde (d.h. wenn der gecachte Wert noch 0 ist). Batteriedaten aktualisieren sich bei jedem periodischen Aufwachen.

### Konnektivitäts-Watchdog

Die Vorlage überwacht die Gerätekonnektivität mittels eines Countdown-Mechanismus. Bei jedem `NotifyFullStatus`-Ereignis speichert das Listener-Skript den `sys.wakeup_period`-Wert in der Custom-Variable `wakeup_period`. Das Lese-Skript dekrementiert dann diesen Zähler um 60 in jedem Abfragezyklus (60-Sekunden-Intervall):

- **Zähler erreicht 0** — das Gerät ist nicht wie erwartet aufgewacht. Der Zähler wird auf -1 gesetzt und ein **WARNING** ausgelöst: "Update not received"
- **Zähler erreicht -86400** — das Gerät war 48 Stunden still. Ein **ERROR** wird ausgelöst: "Update not received in last 48h"

Wenn das Gerät aufwacht und einen neuen `NotifyFullStatus` sendet, wird der Zähler auf den frischen `wakeup_period`-Wert zurückgesetzt und alle Warnungen gelöscht.

### Weitere Fähigkeiten

Der Shelly Plus Smoke unterstützt auch eine Stummschaltfunktion (`Smoke.Mute` RPC-Methode) zum Unterdrücken des Alarmtons, Rauchalarm-Testereignisse ausgelöst durch die physische Taste und WiFi-Signalstärkediagnose (RSSI). Das Gerät veröffentlicht individuelle Komponenten-Status-Topics bei aktiviertem `status_ntf`. Diese Fähigkeiten können in einer zukünftigen Vorlagenaktualisierung hinzugefügt werden.

## Fehlerbehebung

### Rauchalarm meldet keine Ereignisse

1. Überprüfen Sie, dass der Shelly Plus Smoke mit Wi-Fi verbunden ist und MQTT in den Geräteeinstellungen aktiviert ist (**Settings** → **MQTT** → **Enable**)
2. Prüfen Sie, dass `rpc_ntf` auf `true` gesetzt ist (Standard) — die Vorlage erfordert RPC-Benachrichtigungen auf `events/rpc`
3. Bestätigen Sie, dass der Import-Parameter **MQTT ID** exakt mit der Client ID des Geräts übereinstimmt (z.B. `shellyplussmoke-AABBCCDDEEFF`)
4. Verwenden Sie einen MQTT-Client (z.B. MQTT Explorer) zum Abonnieren von `<device-id>/#` und überprüfen Sie, ob das Gerät `NotifyFullStatus` beim Aufwachen veröffentlicht
5. Prüfen Sie die Gerätebatterie — eine entladene CR123A-Batterie verhindert, dass sich das Gerät mit Wi-Fi verbindet

### Konnektivitäts-Watchdog zeigt falsche Warnungen

1. Der Watchdog vergleicht den Countdown mit dem erwarteten Aufwachintervall. Wenn die TapHome Core-Uhr erheblich abweicht, können falsche Warnungen erscheinen
2. Im Batteriebetrieb wacht das Gerät nur im konfigurierten `wakeup_period`-Intervall auf — Lücken zwischen Meldungen sind erwartet
3. Bei instabilem Wi-Fi am Sensorstandort kann sich das Gerät bei einigen Aufwachzyklen nicht verbinden. Überprüfen Sie die Wi-Fi-Signalstärke
4. Nach einem Batteriewechsel kann es einen kompletten Aufwachzyklus dauern, bis der Watchdog-Zähler korrekt initialisiert ist

### Gerät wird als Reed-Kontakt statt Rauchalarm angezeigt

Die TapHome-Vorlage verwendet den Gerätetyp PacketParserReedContact (DeviceType 1030) zur Darstellung des Rauchalarms. Dies ist die korrekte Zuordnung — ON bedeutet "Notfallalarm" (Rauch erkannt) und OFF bedeutet "OK" (kein Rauch). Der Gerätename in TapHome ist "Shelly Plus Smoke" zur eindeutigen Kennzeichnung der Funktion.

## Installation in TapHome

### Voraussetzungen

- Shelly-Gerät mit Wi-Fi (2,4 GHz) verbunden, z. B. über die Shelly App oder den eigenen Access Point des Geräts
- MQTT-Broker in Ihrem lokalen Netzwerk aktiv (z. B. Mosquitto, Home Assistant oder der integrierte TapHome-Broker)
- TapHome CCU im selben Netzwerk wie der Broker

> [!WARNING]
> Auf **Gen1**-Geräten **deaktiviert** das Aktivieren von MQTT die **Shelly Cloud**. Beides kann nicht gleichzeitig betrieben werden. Auf Gen2/Plus-Geräten gilt diese Einschränkung nicht.

### Schritt 1 — MQTT auf dem Shelly-Gerät aktivieren

#### Gen1-Geräte (Shelly 1, 1PM, 2.5, EM, 3EM, Plug S, RGBW2, Dimmer, TRV…)

1. Öffnen Sie die Shelly-Weboberfläche: `http://<device-ip>/`
2. Navigieren Sie zu **Internet & Security** → **Advanced — MQTT**
3. Aktivieren Sie **MQTT**
4. Setzen Sie **MQTT Server**: `<broker-ip>:<port>` (z. B. `192.168.1.10:1883`)
5. Optional setzen Sie **MQTT User** und **MQTT Password**, falls Ihr Broker eine Authentifizierung erfordert
6. Klicken Sie auf **Save** — das Gerät startet neu und verbindet sich mit dem Broker

#### Gen2 / Plus-Geräte (Shelly Plus 1, Plus 1PM, Plus 2PM, Plus Plug S, Plus H&T, Pro 3EM…)

1. Öffnen Sie die Shelly-Weboberfläche: `http://<device-ip>/`
2. Navigieren Sie zu **Settings** → **MQTT**
3. Aktivieren Sie **MQTT**
4. Setzen Sie **Server**: `<broker-ip>:<port>` (z. B. `192.168.1.10:1883`)
5. Die **Client ID** ist mit der Geräte-ID vorausgefüllt (z. B. `shellyplus1pm-AABBCCDDEE`) — belassen Sie sie so, es sei denn, Sie haben einen bestimmten Grund zur Änderung
6. Klicken Sie auf **Save** und starten Sie das Gerät neu

Beim integrierten TapHome-Broker ist `<broker-ip>` die IP-Adresse des TapHome Core. Geben Sie dem Core eine IP-Reservierung im Router, sonst verliert das Gerät den Broker, wenn der Router die Adresse ändert → [Netzwerkvorbereitung](https://taphome.com/de/docs/setup/network-preparation/).

> [!TIP]
> Um zu überprüfen, ob MQTT funktioniert, verwenden Sie einen MQTT-Client (z. B. MQTT Explorer) und abonnieren Sie `shellies/#` (Gen1) oder `<device-id>/#` (Gen2). Sie sollten Statusnachrichten vom Gerät sehen.

### Schritt 2 — Device ID / MQTT Client ID ermitteln

Einige Vorlagen erfordern einen Parameter **Device ID** oder **MQTT Client ID**. Dies ist die eindeutige Kennung, die in MQTT-Topics verwendet wird.

- **Gen1:** auf dem Etikett als MAC-Adresse zu finden (z. B. `AABBCCDDEE`). Device ID = `shelly<model>-<mac>`, z. B. `shelly1pm-AABBCCDDEE`
- **Gen2/Plus:** in der Shelly-Weboberfläche unter **Settings** → **Device Info** → **Device ID** zu finden, oder auf dem Geräteetikett

### Schritt 3 — Konfiguration in TapHome

1. Fügen Sie in TapHome ein neues Modul **Packet Parser (MQTT)** hinzu
2. **IP Address:** `127.0.0.1` für den integrierten TapHome-Broker (die Steuereinheit verbindet sich mit sich selbst, die Adresse ändert sich nie); für einen externen Broker dessen IP-Adresse (z. B. `192.168.1.10`)
3. **Port:** `1883` (Standard; verwenden Sie `8883` für TLS)
4. **Device ID / MQTT Client ID:** Geben Sie den Wert aus Schritt 2 ein (falls von der Vorlage benötigt)
5. Importieren Sie die Vorlage — TapHome abonniert automatisch die Geräte-Topics

## Verfügbare Geräte 1

Diese Geräte erscheinen nach dem Import in TapHome.

Shelly Plus Smoke Modul

Benutzerdefinierte Variablen

|                     |                                                                                                                             |
|---------------------|-----------------------------------------------------------------------------------------------------------------------------|
| `deviceid` (string) | MQTT-Geräte-ID als Topic-Präfix — Format: shellyplussmoke-{MACADDRESS} (in der Shelly Web-UI → Settings → MQTT → Client ID) |

Rauchalarm Reed-Kontakt Nur lesen

Photoelektrischer Rauchalarmzustand — ON = Notfallalarm (Rauch erkannt), OFF = OK (kein Rauch). Alarm löst sofortige MQTT-Benachrichtigung mit &gt;85 dB Signalgeber aus.

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

Serviceattribute

|               |                                                                                               |
|---------------|-----------------------------------------------------------------------------------------------|
| Batterie \[%] | Prozentualer Ladestand — Warnung bei unter 30 %. CR123A-Batterie, bis zu 5 Jahre Lebensdauer. |
| Batterie \[V] | Batteriespannung in Volt — Nennspannung 3V für CR123A-Batterie                                |

Lesen (Modul)

```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
```

Listener

```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
```

Serviceattribute

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
```

**Verbindung:** Packet Parser → MQTT • Hostname: `shellyplussmoke-{MAC}.local`

Mögliche Verbesserungen (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.

## Importparameter

Diese Werte geben Sie beim Import des XML ein.

| In der App abgefragt | Standard                       |
|----------------------|--------------------------------|
| IP-Adresse           | `192.168.0.1`                  |
| ID                   | `shellyplussmoke-xxxxxxxxxxxx` |

## Quellen

- 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

## Verwandte Dokumentation

- [MQTT Integration](https://taphome.com/de/compatibility/mqtt-guide/)
- [Packet Parser (HTTP, TCP, UDP, FTP, MQTT)](https://taphome.com/de/docs/integration/packet-parser/)
- [Packet-Parser-Funktionen](https://taphome.com/de/docs/script/packet-parser/)
- [Parsing-Funktionen](https://taphome.com/de/docs/script/parsing-functions/)
- [MQTT-Broker](https://taphome.com/de/docs/integration/packet-parser/mqtt-broker/)
- [Listener-Skripte](https://taphome.com/de/docs/script/listener-scripts/)

