TapHome

Shelly Flood

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

Shelly Flood to bateryjny (CR123A) czujnik wycieku wody Wi-Fi. TapHome komunikuje się z urządzeniem przez MQTT — zalecany protokół dla bateryjnych urządzeń Shelly, ponieważ czujnik przez większość czasu pozostaje w trybie uśpienia i publikuje dane tylko po przebudzeniu.

Szablon obsługuje do 5 czujników Shelly Flood na moduł. Każda instancja czujnika jest identyfikowana przez zmienną niestandardową sensorN_topic wskazującą na Client ID MQTT urządzenia.

Konfiguracja

Device ID

Każdy czujnik Shelly Flood ma unikalny MQTT Device ID w formacie shellyflood-<MAC6>, gdzie <MAC6> to ostatnie 6 znaków adresu MAC zapisane małymi literami w postaci szesnastkowej (np. shellyflood-112233).

Device ID można znaleźć:

  • Na etykiecie urządzenia (adres MAC)
  • W interfejsie webowym Shelly: SettingsDevice Info
  • Przez API: GET http://<device-ip>/settings → pole mqtt.id

To urządzenie obsługuje odkrywanie mDNS. Zamiast adresu IP w konfiguracji TapHome można użyć nazwy hosta shellyflood-{MAC}.local. Zastąp {MAC} ostatnimi 6 znakami adresu MAC urządzenia zapisanymi małymi literami w postaci szesnastkowej (np. shellyflood-112233.local). Użycie nazwy hosta zapobiega problemom z połączeniem, gdy adres IP urządzenia się zmieni.

Konfiguracja szablonu

Po zaimportowaniu szablonu w TapHome:

  1. Otwórz moduł Shelly Flood MQTT
  2. Ustaw IP brokera MQTT i port (domyślnie 1883)
  3. Dla każdej instancji czujnika ustaw zmienną niestandardową sensorN_topic na Device ID odpowiedniego Shelly Flood (np. shellyflood-112233)

Moduł subskrybuje temat shellies/#, a skrypty nasłuchujące filtrują wiadomości według skonfigurowanego prefiksu tematu.

Konfiguruj tylko te sloty czujników, których faktycznie używasz. Nieskonfigurowane sloty (z domyślną wartością shellyflood-deviceid) wyświetlają komunikat o błędzie z prośbą o ustawienie prawidłowego tematu.

Możliwości urządzenia

Wykrywanie zalania

Każda instancja czujnika jest mapowana jako urządzenie Reed Contact w TapHome. Stan zalania jest odczytywany z tematu shellies/<id>/sensor/flood:

  • trueAlarm (wykryto wodę)
  • falseOK (sucho)

Czujnik budzi się i publikuje swój stan po wykryciu lub ustąpieniu wody, a także podczas okresowych interwałów raportowania.

Monitorowanie baterii i temperatury

Każda instancja czujnika udostępnia dwa atrybuty serwisowe:

  • Bateria — procent poziomu baterii odczytywany z shellies/<id>/sensor/battery. Ostrzeżenie o niskim poziomie baterii jest generowane, gdy poziom spadnie poniżej 20%.
  • Temperatura — temperatura otoczenia w °C odczytywana z shellies/<id>/sensor/temperature.

Oba atrybuty są tylko do odczytu i aktualizują się za każdym razem, gdy czujnik się przebudzi i opublikuje dane.

Dodatkowe możliwości

Shelly Flood publikuje również status online/offline przez temat MQTT Last Will and Testament (LWT) oraz pełną wiadomość statusu JSON (firmware ≥1.8.0). Dostępne jest ustawienie rain_sensor, które odwraca logikę wykrywania zalania na potrzeby wykrywania deszczu na zewnątrz. Te możliwości mogą zostać dodane w przyszłej aktualizacji szablonu.

Rozwiązywanie problemów

Czujnik nie raportuje danych
  1. Sprawdź, czy Shelly Flood jest połączony z Wi-Fi i czy MQTT jest włączone w ustawieniach urządzenia
  2. Upewnij się, że zmienna niestandardowa sensorN_topic dokładnie odpowiada Device ID (np. shellyflood-112233)
  3. Jeśli adres brokera MQTT się zmienił, spróbuj użyć nazwy hosta mDNS (shellyflood-AABBCCDDEE.local), aby sprawdzić, czy czujnik jest osiągalny w sieci
  4. Użyj klienta MQTT (np. MQTT Explorer), aby zasubskrybować shellies/# i zweryfikować, czy czujnik publikuje wiadomości po przebudzeniu
Alarm zalania nie wyzwala się
  1. Sprawdź, czy styki czujnika na spodzie urządzenia są czyste i niczym nie zasłonięte
  2. Przetestuj, kładąc czujnik na mokrej powierzchni — urządzenie powinno opublikować true w temacie /sensor/flood w ciągu kilku sekund
  3. Sprawdź w TapHome stan urządzenia Reed Contact — 1 = alarm, 0 = OK
Bateria szybko się rozładowuje
  1. Shelly Flood jest zaprojektowany z myślą o długiej żywotności baterii (CR123A, typowo 1–2 lata w zależności od częstotliwości raportowania)
  2. Częste przebudzenia (np. z powodu niestabilnego Wi-Fi wymagającego wielokrotnego ponownego łączenia) mogą szybciej rozładować baterię
  3. Zapewnij silny sygnał Wi-Fi w miejscu montażu czujnika

Urządzenia Shelly Gen1 nie obsługują MQTT przez TLS. Komunikacja między czujnikiem a brokerem MQTT jest nieszyfrowana (plain MQTT, port 1883). Upewnij się, że broker MQTT znajduje się w zaufanej sieci lokalnej.

Jak zainstalować w TapHome

Wymagania wstępne

  • Urządzenie Shelly połączone z Wi-Fi (jeśli jeszcze nie, zobacz przewodnik po połączeniu HTTP)
  • Broker MQTT działający w sieci lokalnej (np. Mosquitto, Home Assistant lub wbudowany broker TapHome)
  • TapHome CCU w tej samej sieci co broker

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

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 SettingsDevice InfoDevice ID lub na etykiecie urządzenia

Krok 3 — Konfiguracja w TapHome

  1. W TapHome dodaj nowy moduł Packet Parser (MQTT)
  2. IP Address: wprowadź adres IP brokera MQTT (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

Shelly Flood MQTT Moduł
Czujnik zalania 1 Kontakt reed Tylko do odczytu

Wykrywanie wycieku wody — zgłasza alarm przy obecności wody, OK gdy sucho

boolean
Atrybuty serwisowe
Bateria
Temperatura

Czujnik zalania 1

Atrybuty serwisowe
Battery
battery + "%"
Temperature
temp + "°C"
Czujnik zalania 2 Kontakt reed Tylko do odczytu

Wykrywanie wycieku wody — zgłasza alarm przy obecności wody, OK gdy sucho

boolean
Atrybuty serwisowe
Bateria
Temperatura

Czujnik zalania 2

Atrybuty serwisowe
Battery
battery + "%"
Temperature
temp + "°C"
Czujnik zalania 3 Kontakt reed Tylko do odczytu

Wykrywanie wycieku wody — zgłasza alarm przy obecności wody, OK gdy sucho

boolean
Atrybuty serwisowe
Bateria
Temperatura

Czujnik zalania 3

Atrybuty serwisowe
Battery
battery + "%"
Temperature
temp + "°C"
Czujnik zalania 4 Kontakt reed Tylko do odczytu

Wykrywanie wycieku wody — zgłasza alarm przy obecności wody, OK gdy sucho

boolean
Atrybuty serwisowe
Bateria
Temperatura

Czujnik zalania 4

Atrybuty serwisowe
Battery
battery + "%"
Temperature
temp + "°C"
Czujnik zalania 5 Kontakt reed Tylko do odczytu

Wykrywanie wycieku wody — zgłasza alarm przy obecności wody, OK gdy sucho

boolean
Atrybuty serwisowe
Bateria
Temperatura

Czujnik zalania 5

Atrybuty serwisowe
Battery
battery + "%"
Temperature
temp + "°C"
Połączenie: Packet Parser → MQTT
Możliwe ulepszenia (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.

Źródła