
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) und zwei Batterie-Serviceattribute auf Modulebene. 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→ Feldclient_id
Vorlageneinrichtung
Nach dem Import der Vorlage in TapHome:
- Öffnen Sie das Modul Shelly Plus Smoke
- Setzen Sie die MQTT Broker IP auf die Adresse des MQTT-Brokers
- Setzen Sie den Port (Standard
1883) - 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.
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) auftruegesetzt ist (Standard). Die Vorlage basiert aufevents/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_perioddefiniert sind, und veröffentlicht einNotifyFullStatus-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.
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
- Überprüfen Sie, dass der Shelly Plus Smoke mit Wi-Fi verbunden ist und MQTT in den Geräteeinstellungen aktiviert ist (Settings → MQTT → Enable)
- Prüfen Sie, dass
rpc_ntfauftruegesetzt ist (Standard) — die Vorlage erfordert RPC-Benachrichtigungen aufevents/rpc - Bestätigen Sie, dass der Import-Parameter MQTT ID exakt mit der Client ID des Geräts übereinstimmt (z.B.
shellyplussmoke-AABBCCDDEEFF) - Verwenden Sie einen MQTT-Client (z.B. MQTT Explorer) zum Abonnieren von
<device-id>/#und überprüfen Sie, ob das GerätNotifyFullStatusbeim Aufwachen veröffentlicht - 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
- Der Watchdog vergleicht den Countdown mit dem erwarteten Aufwachintervall. Wenn die TapHome Core-Uhr erheblich abweicht, können falsche Warnungen erscheinen
- Im Batteriebetrieb wacht das Gerät nur im konfigurierten
wakeup_period-Intervall auf — Lücken zwischen Meldungen sind erwartet - Bei instabilem Wi-Fi am Sensorstandort kann sich das Gerät bei einigen Aufwachzyklen nicht verbinden. Überprüfen Sie die Wi-Fi-Signalstärke
- 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.