TapHome

Shelly Flood

Packet Parser → MQTT
Submitted by
Last updated: 03. 2026
Shelly Flood

Der Shelly Flood ist ein batteriebetriebener (CR123A) Wi-Fi-Wasserlecksensor. TapHome kommuniziert mit dem Gerät über MQTT — das empfohlene Protokoll für batteriebetriebene Shelly-Geräte, da der Sensor die meiste Zeit schläft und Daten nur bei Wake-up-Ereignissen sendet.

Die Vorlage unterstützt bis zu 5 Shelly Flood Sensoren pro Modul. Jede Sensorinstanz wird durch eine sensorN_topic-Benutzervariable identifiziert, die auf die MQTT Client ID des Geräts zeigt.

Konfiguration

Geräte-ID

Jeder Shelly Flood hat eine eindeutige MQTT Device ID im Format shellyflood-<MAC6>, wobei <MAC6> die letzten 6 Zeichen der MAC-Adresse in Kleinbuchstaben-Hex sind (z. B. shellyflood-112233).

Die Device ID lässt sich finden:

  • Auf dem Geräteaufkleber (MAC-Adresse)
  • In der Shelly Web-UI: SettingsDevice Info
  • Per API: GET http://<device-ip>/settings → Feld mqtt.id

Dieses Gerät unterstützt mDNS-Erkennung. Statt einer IP-Adresse kann der Hostname shellyflood-{MAC}.local bei der TapHome-Konfiguration verwendet werden. {MAC} durch die letzten 6 Zeichen der MAC-Adresse in Kleinbuchstaben-Hex ersetzen (z. B. shellyflood-112233.local). Ein Hostname verhindert Verbindungsprobleme, wenn sich die IP-Adresse des Geräts ändert.

Vorlage einrichten

Nach dem Import der Vorlage in TapHome:

  1. Das Modul Shelly Flood MQTT öffnen
  2. MQTT Broker IP und Port einstellen (Standard 1883)
  3. Für jede Sensorinstanz die Benutzervariable sensorN_topic auf die Device ID des entsprechenden Shelly Flood setzen (z. B. shellyflood-112233)

Das Modul abonniert shellies/# und die Listener-Skripte filtern Nachrichten nach dem konfigurierten Topic-Präfix.

Nur die tatsächlich genutzten Sensor-Slots konfigurieren. Unkonfigurierte Slots (mit dem Standardwert shellyflood-deviceid) zeigen eine Fehlermeldung, die zur Eingabe des korrekten Topics auffordert.

Gerätefunktionen

Wasserleckerkennung

Jede Sensorinstanz wird in TapHome als Reed-Kontakt-Gerät abgebildet. Der Flood-Zustand wird aus dem Topic shellies/<id>/sensor/flood gelesen:

  • trueAlarm (Wasser erkannt)
  • falseOK (trocken)

Der Sensor wacht auf und sendet seinen Zustand, wenn Wasser erkannt wird oder verschwunden ist, sowie während periodischer Meldeintervalle.

Batterie- und Temperaturüberwachung

Jede Sensorinstanz stellt zwei Serviceattribute bereit:

  • Batterie — Batteriestand in Prozent, gelesen aus shellies/<id>/sensor/battery. Eine Niedrigbatterie-Warnung wird ausgelöst, wenn der Stand unter 20 % fällt.
  • Temperatur — Umgebungstemperatur in °C, gelesen aus shellies/<id>/sensor/temperature.

Beide Attribute sind schreibgeschützt und werden aktualisiert, sobald der Sensor aufwacht und Daten sendet.

Weitere Funktionen

Der Shelly Flood sendet außerdem einen Online/Offline-Status über das MQTT Last Will and Testament (LWT)-Topic sowie eine vollständige JSON-Statusmeldung (Firmware ≥ 1.8.0). Eine rain_sensor-Einstellung ist verfügbar, die die Flood-Erkennungslogik für die Regenerkennung im Außenbereich umkehrt. Diese Funktionen können in einem zukünftigen Vorlagen-Update ergänzt werden.

Fehlerbehebung

Sensor meldet keine Daten
  1. Prüfen, ob der Shelly Flood mit Wi-Fi verbunden ist und MQTT in den Geräteeinstellungen aktiviert ist
  2. Sicherstellen, dass die Benutzervariable sensorN_topic exakt mit der Device ID übereinstimmt (z. B. shellyflood-112233)
  3. Falls die MQTT-Broker-Adresse geändert wurde, den mDNS-Hostnamen (shellyflood-AABBCCDDEE.local) verwenden, um zu prüfen, ob der Sensor im Netzwerk erreichbar ist
  4. Mit einem MQTT-Client (z. B. MQTT Explorer) shellies/# abonnieren und verifizieren, dass der Sensor beim Aufwachen Nachrichten sendet
Flood-Alarm wird nicht ausgelöst
  1. Sicherstellen, dass die Sensorkontakte an der Unterseite des Geräts sauber und nicht verdeckt sind
  2. Durch Ablegen des Sensors auf einer nassen Oberfläche testen — das Gerät sollte innerhalb von Sekunden true auf dem Topic /sensor/flood senden
  3. In TapHome den Zustand des Reed-Kontakt-Geräts prüfen — 1 = Alarm, 0 = OK
Batterie wird schnell leer
  1. Der Shelly Flood ist auf lange Batterielebensdauer ausgelegt (CR123A, typisch 1–2 Jahre je nach Meldeintervall)
  2. Häufige Wake-ups (z. B. durch instabiles Wi-Fi mit wiederholten Verbindungsversuchen) können die Batterie schneller entleeren
  3. Auf ein starkes Wi-Fi-Signal am Sensorstandort achten

Gen1-Shelly-Geräte unterstützen kein MQTT über TLS. Die Kommunikation zwischen Sensor und MQTT-Broker ist unverschlüsselt (plain MQTT, Port 1883). Den MQTT-Broker nur in einem vertrauenswürdigen lokalen Netzwerk betreiben.

Installation in TapHome

Voraussetzungen

  • Shelly-Gerät mit Wi-Fi verbunden (siehe HTTP-Verbindungsanleitung, falls noch nicht geschehen)
  • 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

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 & SecurityAdvanced — 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 SettingsMQTT
  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

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 SettingsDevice InfoDevice 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: Geben Sie die IP-Adresse des MQTT-Brokers ein (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

Shelly Flood MQTT Modul
Wassersensor 1 Reed-Kontakt Nur lesen

Wasserleckerkennung — meldet Alarm bei Wasseranwesenheit, OK bei Trockenheit

boolean
Serviceattribute
Batterie
Temperatur

Wassersensor 1

Serviceattribute
Battery
battery + "%"
Temperature
temp + "°C"
Wassersensor 2 Reed-Kontakt Nur lesen

Wasserleckerkennung — meldet Alarm bei Wasseranwesenheit, OK bei Trockenheit

boolean
Serviceattribute
Batterie
Temperatur

Wassersensor 2

Serviceattribute
Battery
battery + "%"
Temperature
temp + "°C"
Wassersensor 3 Reed-Kontakt Nur lesen

Wasserleckerkennung — meldet Alarm bei Wasseranwesenheit, OK bei Trockenheit

boolean
Serviceattribute
Batterie
Temperatur

Wassersensor 3

Serviceattribute
Battery
battery + "%"
Temperature
temp + "°C"
Wassersensor 4 Reed-Kontakt Nur lesen

Wasserleckerkennung — meldet Alarm bei Wasseranwesenheit, OK bei Trockenheit

boolean
Serviceattribute
Batterie
Temperatur

Wassersensor 4

Serviceattribute
Battery
battery + "%"
Temperature
temp + "°C"
Wassersensor 5 Reed-Kontakt Nur lesen

Wasserleckerkennung — meldet Alarm bei Wasseranwesenheit, OK bei Trockenheit

boolean
Serviceattribute
Batterie
Temperatur

Wassersensor 5

Serviceattribute
Battery
battery + "%"
Temperature
temp + "°C"
Verbindung: Packet Parser → MQTT
Mögliche Verbesserungen (2)
  • Connection Status — LWT topic — true on connect, false on disconnect. Could detect offline sensors.
  • Full Status JSON — Complete /status as JSON (fw ≥1.8.0). Could parse wifi_sta.rssi, battery, act_reasons.

Quellen