TapHome

Shelly Flood

Packet Parser → MQTT
Autor
Posljednje ažuriranje: 03. 2026

Ovaj uređaj podržava mDNS

Umjesto IP adrese uređaju možete pristupiti na adresi:

shellyflood-{MAC}.local

Zamijenite {MAC} MAC adresom svog uređaja (velika slova, bez dvotočaka).

TapHome podržava mDNS. Naziv računala (hostname) pouzdaniji je od statične IP adrese.

Shelly Flood

Shelly Flood je Wi-Fi senzor curenja vode na baterije (CR123A). TapHome s uređajem komunicira preko MQTT-a, što je preporučeni protokol za uređaje Shelly na baterije: senzor većinu vremena spava i podatke objavljuje samo kada se probudi.

Predložak podržava do 5 senzora Shelly Flood po modulu. Svaki se senzor razlikuje po korisničkoj varijabli sensorN_topic koja upućuje na MQTT Client ID uređaja.

Konfiguracija

Device ID

Svaki senzor Shelly Flood ima jedinstveni MQTT Device ID u obliku shellyflood-<MAC6>, gdje je <MAC6> zadnjih 6 znakova MAC adrese malim slovima u heksadecimalnom zapisu (npr. shellyflood-112233).

Device ID možete pronaći:

  • Na naljepnici uređaja (MAC adresa)
  • U web-sučelju Shelly: Settings → Device Info
  • Preko API-ja: GET http://<device-ip>/settings → polje mqtt.id

Ovaj uređaj podržava otkrivanje preko mDNS-a. Pri konfiguraciji sustava TapHome umjesto IP adrese možete koristiti naziv hosta shellyflood-{MAC}.local. Zamijenite {MAC} sa zadnjih 6 znakova MAC adrese uređaja malim slovima u heksadecimalnom zapisu (npr. shellyflood-112233.local). Naziv hosta sprječava prekide veze kada se IP adresa uređaja promijeni.

Postavljanje predloška

Nakon uvoza predloška u TapHome:

  1. Otvorite modul Shelly Flood MQTT
  2. Postavite MQTT Broker IP i Port (zadano 1883)
  3. Za svaki senzor postavite korisničku varijablu sensorN_topic na Device ID odgovarajućeg senzora Shelly Flood (npr. shellyflood-112233)

Modul se pretplaćuje na shellies/#, a skripte za primanje poruka filtriraju poruke prema postavljenom prefiksu teme.

Konfigurirajte samo mjesta za senzore koja stvarno koristite. Nekonfigurirana mjesta (sa zadanom vrijednošću shellyflood-deviceid) prikazat će poruku o pogrešci s upozorenjem da treba postaviti ispravnu temu.

Mogućnosti uređaja

Prepoznavanje curenja vode

Svaki je senzor u sustavu TapHome prikazan kao uređaj vrste „Magnetski kontakt” (Reed Contact). Stanje curenja čita se iz teme shellies/<id>/sensor/flood:

  • true → Alarm (otkrivena voda)
  • false → OK (suho)

Senzor se budi i objavljuje stanje kada otkrije vodu ili kada voda nestane, a i u periodičkim intervalima javljanja.

Praćenje baterije i temperature

Svaki senzor ima dva servisna atributa:

  • Baterija: razina baterije u postocima iz teme shellies/<id>/sensor/battery. Upozorenje o slaboj bateriji javlja se kada razina padne ispod 20 %.
  • Temperatura: temperatura okoline u °C iz teme shellies/<id>/sensor/temperature.

Oba su atributa samo za čitanje i ažuriraju se kad god se senzor probudi i objavi podatke.

Dodatne mogućnosti

Shelly Flood objavljuje i stanje online/offline preko teme MQTT Last Will and Testament (LWT) te potpunu poruku o stanju u obliku JSON (firmver ≥1.8.0). Dostupna je i postavka rain_sensor koja obrće logiku prepoznavanja vode, za prepoznavanje kiše na otvorenom. Te se mogućnosti mogu dodati u budućem ažuriranju predloška.

Rješavanje problema

Senzor ne šalje podatke
  1. Provjerite je li Shelly Flood spojen na Wi-Fi i je li MQTT uključen u postavkama uređaja
  2. Provjerite odgovara li korisnička varijabla sensorN_topic točno Device ID-u (npr. shellyflood-112233)
  3. Ako se adresa MQTT brokera promijenila, pomoću mDNS naziva hosta (shellyflood-AABBCCDDEE.local) provjerite je li senzor dostupan u mreži
  4. MQTT klijentom (npr. MQTT Explorer) pretplatite se na shellies/# i provjerite objavljuje li senzor poruke kada se probudi
Alarm curenja vode se ne aktivira
  1. Provjerite jesu li kontakti senzora na donjoj strani uređaja čisti i ničim zaklonjeni
  2. Testirajte tako da senzor stavite na mokru površinu: uređaj bi u roku od nekoliko sekundi trebao objaviti true u temi /sensor/flood
  3. U sustavu TapHome provjerite stanje uređaja magnetski kontakt: 1 = alarm, 0 = OK
Baterija se brzo prazni
  1. Shelly Flood predviđen je za dugo trajanje baterije (CR123A, obično 1–2 godine, ovisno o učestalosti javljanja)
  2. Česta buđenja (npr. zbog nestabilne Wi-Fi veze koja zahtijeva učestalo ponovno povezivanje) mogu brže isprazniti bateriju
  3. Osigurajte jak Wi-Fi signal na mjestu senzora

Uređaji Shelly Gen1 ne podržavaju MQTT preko TLS-a. Komunikacija između senzora i MQTT brokera nije šifrirana (obični MQTT, port 1883). Pobrinite se da je MQTT broker u pouzdanoj lokalnoj mreži.

Kako ga instalirati u TapHome

Preduvjeti

  • Uređaj Shelly spojen na Wi-Fi (2,4 GHz), npr. putem aplikacije Shelly ili vlastite pristupne točke uređaja
  • MQTT broker koji radi u vašoj lokalnoj mreži (npr. Mosquitto, Home Assistant ili ugrađeni broker TapHome)
  • TapHome CCU u istoj mreži kao broker

Na uređajima Gen1 uključivanje MQTT-a isključuje Shelly Cloud. MQTT i Shelly Cloud ne mogu raditi istodobno. Na uređajima Gen2/Plus to ograničenje ne vrijedi.

Korak 1 — Uključite MQTT na uređaju Shelly

Uređaji Gen1 (Shelly 1, 1PM, 2.5, EM, 3EM, Plug S, RGBW2, Dimmer, TRV…)

  1. Otvorite web-sučelje Shelly: http://<device-ip>/
  2. Idite na Internet & Security → Advanced — MQTT
  3. Uključite MQTT
  4. Postavite MQTT Server: <broker-ip>:<port> (npr. 192.168.1.10:1883)
  5. Ako vaš broker zahtijeva autentifikaciju, postavite MQTT User i MQTT Password
  6. Kliknite Save — uređaj će se ponovno pokrenuti i spojiti na broker

Uređaji Gen2 / Plus (Shelly Plus 1, Plus 1PM, Plus 2PM, Plus Plug S, Plus H&T, Pro 3EM…)

  1. Otvorite web-sučelje Shelly: http://<device-ip>/
  2. Idite na Settings → MQTT
  3. Uključite MQTT
  4. Postavite Server: <broker-ip>:<port> (npr. 192.168.1.10:1883)
  5. Client ID je unaprijed popunjen ID-jem uređaja (npr. shellyplus1pm-AABBCCDDEE) — ostavite ga takvim, osim ako ga iz određenog razloga trebate promijeniti
  6. Kliknite Save i ponovno pokrenite uređaj

Za provjeru rada MQTT-a koristite MQTT klijent (npr. MQTT Explorer) i pretplatite se na shellies/# (Gen1) ili <device-id>/# (Gen2). Trebali biste vidjeti statusne poruke uređaja.

Korak 2 — Pronađite Device ID / MQTT Client ID

Neki predlošci zahtijevaju parametar Device ID ili MQTT Client ID. To je jedinstveni identifikator koji se koristi u MQTT temama (topics).

  • Gen1: nalazi se na naljepnici kao MAC adresa (npr. AABBCCDDEE). Device ID = shelly<model>-<mac>, npr. shelly1pm-AABBCCDDEE
  • Gen2/Plus: nalazi se u web-sučelju Shelly pod Settings → Device Info → Device ID ili na naljepnici uređaja

Korak 3 — Konfiguracija u sustavu TapHome

  1. U sustavu TapHome dodajte novi modul Packet Parser (MQTT)
  2. IP adresa: unesite IP adresu MQTT brokera (npr. 192.168.1.10)
  3. Port: 1883 (zadano; za TLS koristite 8883)
  4. Device ID / MQTT Client ID: unesite vrijednost iz koraka 2 (ako je predložak zahtijeva)
  5. Uvezite predložak — TapHome će se automatski pretplatiti na teme uređaja

Dostupni uređaji

Shelly Flood MQTT Modul
Prilagođene varijable
sensor1_topic (string) = shellyflood-deviceidNaziv MQTT teme senzora curenja vode 1 — oblik je „shellyflood-DEVICEID” (Device ID pronađite u web-sučelju Shelly → Settings → Device Info)
sensor2_topic (string) = shellyflood-deviceidNaziv MQTT teme senzora curenja vode 2
sensor3_topic (string) = shellyflood-deviceidNaziv MQTT teme senzora curenja vode 3
sensor4_topic (string) = shellyflood-deviceidNaziv MQTT teme senzora curenja vode 4
sensor5_topic (string) = shellyflood-deviceidNaziv MQTT teme senzora curenja vode 5
Senzor curenja vode 1 Magnetski kontakt Samo za čitanje

Prepoznavanje curenja vode — javlja alarm kada je prisutna voda, OK kada je suho

boolean
Servisni atributi
Baterija
Temperatura

Senzor curenja vode 1

Listener
IF (INDEXOF(sensor1_topic, "shellyflood-deviceid") = 0)
    ADDERROR("Set correct 'sensor1_topic' value in module variables. Topic format is 'shellyflood-<deviceid>'. The Device ID can be found by opening url 'http://shellyIpAddress', in Settings -> Device info.");
    RETURN(-1);
END

VAR topicPrefix := "shellies/" + sensor1_topic;

IF (INDEXOF(RECEIVEDMSG.TOPIC, topicPrefix + "/sensor/flood") = 0)
    VAR value := TOSTRING(RECEIVEDMSG.PAYLOAD);

    IF (COMPARE(value, "true", CompareOptions.IgnoreCase) = 0)
        Rc := 1;
    ELSEIF (COMPARE(value, "false", CompareOptions.IgnoreCase) = 0)
        Rc := 0;
    ELSE
        Rc := NaN;
    END
ELSEIF (INDEXOF(RECEIVEDMSG.TOPIC, topicPrefix + "/sensor/temperature") = 0)
    temp := TODOUBLE(TOSTRING(RECEIVEDMSG.PAYLOAD));
ELSEIF (INDEXOF(RECEIVEDMSG.TOPIC, topicPrefix + "/sensor/battery") = 0)
    battery := TODOUBLE(TOSTRING(RECEIVEDMSG.PAYLOAD));
    IF battery < 20
        ADDWARNING("Battery low (" + battery + "%)");
    END
END
Servisni atributi
Battery
battery + "%"
Temperature
temp + "°C"
Senzor curenja vode 2 Magnetski kontakt Samo za čitanje

Prepoznavanje curenja vode — javlja alarm kada je prisutna voda, OK kada je suho

boolean
Servisni atributi
Baterija
Temperatura

Senzor curenja vode 2

Listener
IF (INDEXOF(sensor2_topic, "shellyflood-deviceid") = 0)
    ADDERROR("Set correct 'sensor2_topic' value in module variables. Topic format is 'shellyflood-<deviceid>'. The Device ID can be found by opening url 'http://shellyIpAddress', in Settings -> Device info.");
    RETURN(-1);
END

VAR topicPrefix := "shellies/" + sensor2_topic;

IF (INDEXOF(RECEIVEDMSG.TOPIC, topicPrefix + "/sensor/flood") = 0)
    VAR value := TOSTRING(RECEIVEDMSG.PAYLOAD);

    IF (COMPARE(value, "true", CompareOptions.IgnoreCase) = 0)
        Rc := 1;
    ELSEIF (COMPARE(value, "false", CompareOptions.IgnoreCase) = 0)
        Rc := 0;
    ELSE
        Rc := NaN;
    END
ELSEIF (INDEXOF(RECEIVEDMSG.TOPIC, topicPrefix + "/sensor/temperature") = 0)
    temp := TODOUBLE(TOSTRING(RECEIVEDMSG.PAYLOAD));
ELSEIF (INDEXOF(RECEIVEDMSG.TOPIC, topicPrefix + "/sensor/battery") = 0)
    battery := TODOUBLE(TOSTRING(RECEIVEDMSG.PAYLOAD));
    IF battery < 20
        ADDWARNING("Battery low (" + battery + "%)");
    END
END
Servisni atributi
Battery
battery + "%"
Temperature
temp + "°C"
Senzor curenja vode 3 Magnetski kontakt Samo za čitanje

Prepoznavanje curenja vode — javlja alarm kada je prisutna voda, OK kada je suho

boolean
Servisni atributi
Baterija
Temperatura

Senzor curenja vode 3

Listener
IF (INDEXOF(sensor3_topic, "shellyflood-deviceid") = 0)
    ADDERROR("Set correct 'sensor3_topic' value in module variables. Topic format is 'shellyflood-<deviceid>'. The Device ID can be found by opening url 'http://shellyIpAddress', in Settings -> Device info.");
    RETURN(-1);
END

VAR topicPrefix := "shellies/" + sensor3_topic;

IF (INDEXOF(RECEIVEDMSG.TOPIC, topicPrefix + "/sensor/flood") = 0)
    VAR value := TOSTRING(RECEIVEDMSG.PAYLOAD);

    IF (COMPARE(value, "true", CompareOptions.IgnoreCase) = 0)
        Rc := 1;
    ELSEIF (COMPARE(value, "false", CompareOptions.IgnoreCase) = 0)
        Rc := 0;
    ELSE
        Rc := NaN;
    END
ELSEIF (INDEXOF(RECEIVEDMSG.TOPIC, topicPrefix + "/sensor/temperature") = 0)
    temp := TODOUBLE(TOSTRING(RECEIVEDMSG.PAYLOAD));
ELSEIF (INDEXOF(RECEIVEDMSG.TOPIC, topicPrefix + "/sensor/battery") = 0)
    battery := TODOUBLE(TOSTRING(RECEIVEDMSG.PAYLOAD));
    IF battery < 20
        ADDWARNING("Battery low (" + battery + "%)");
    END
END
Servisni atributi
Battery
battery + "%"
Temperature
temp + "°C"
Senzor curenja vode 4 Magnetski kontakt Samo za čitanje

Prepoznavanje curenja vode — javlja alarm kada je prisutna voda, OK kada je suho

boolean
Servisni atributi
Baterija
Temperatura

Senzor curenja vode 4

Listener
IF (INDEXOF(sensor4_topic, "shellyflood-deviceid") = 0)
    ADDERROR("Set correct 'sensor4_topic' value in module variables. Topic format is 'shellyflood-<deviceid>'. The Device ID can be found by opening url 'http://shellyIpAddress', in Settings -> Device info.");
    RETURN(-1);
END

VAR topicPrefix := "shellies/" + sensor4_topic;

IF (INDEXOF(RECEIVEDMSG.TOPIC, topicPrefix + "/sensor/flood") = 0)
    VAR value := TOSTRING(RECEIVEDMSG.PAYLOAD);

    IF (COMPARE(value, "true", CompareOptions.IgnoreCase) = 0)
        Rc := 1;
    ELSEIF (COMPARE(value, "false", CompareOptions.IgnoreCase) = 0)
        Rc := 0;
    ELSE
        Rc := NaN;
    END
ELSEIF (INDEXOF(RECEIVEDMSG.TOPIC, topicPrefix + "/sensor/temperature") = 0)
    temp := TODOUBLE(TOSTRING(RECEIVEDMSG.PAYLOAD));
ELSEIF (INDEXOF(RECEIVEDMSG.TOPIC, topicPrefix + "/sensor/battery") = 0)
    battery := TODOUBLE(TOSTRING(RECEIVEDMSG.PAYLOAD));
    IF battery < 20
        ADDWARNING("Battery low (" + battery + "%)");
    END
END
Servisni atributi
Battery
battery + "%"
Temperature
temp + "°C"
Senzor curenja vode 5 Magnetski kontakt Samo za čitanje

Prepoznavanje curenja vode — javlja alarm kada je prisutna voda, OK kada je suho

boolean
Servisni atributi
Baterija
Temperatura

Senzor curenja vode 5

Listener
IF (INDEXOF(sensor5_topic, "shellyflood-deviceid") = 0)
    ADDERROR("Set correct 'sensor5_topic' value in module variables. Topic format is 'shellyflood-<deviceid>'. The Device ID can be found by opening url 'http://shellyIpAddress', in Settings -> Device info.");
    RETURN(-1);
END

VAR topicPrefix := "shellies/" + sensor5_topic;

IF (INDEXOF(RECEIVEDMSG.TOPIC, topicPrefix + "/sensor/flood") = 0)
    VAR value := TOSTRING(RECEIVEDMSG.PAYLOAD);

    IF (COMPARE(value, "true", CompareOptions.IgnoreCase) = 0)
        Rc := 1;
    ELSEIF (COMPARE(value, "false", CompareOptions.IgnoreCase) = 0)
        Rc := 0;
    ELSE
        Rc := NaN;
    END
ELSEIF (INDEXOF(RECEIVEDMSG.TOPIC, topicPrefix + "/sensor/temperature") = 0)
    temp := TODOUBLE(TOSTRING(RECEIVEDMSG.PAYLOAD));
ELSEIF (INDEXOF(RECEIVEDMSG.TOPIC, topicPrefix + "/sensor/battery") = 0)
    battery := TODOUBLE(TOSTRING(RECEIVEDMSG.PAYLOAD));
    IF battery < 20
        ADDWARNING("Battery low (" + battery + "%)");
    END
END
Servisni atributi
Battery
battery + "%"
Temperature
temp + "°C"
Povezivanje: Packet Parser → MQTT • Naziv računala (hostname): shellyflood-{MAC}.local
Moguća poboljšanja (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.

Izvori

Pronašli ste problem s ovim predloškom uređaja?

Recite nam što ne radi, što nedostaje ili kako bi se predložak trebao ponašati. Vaše povratne informacije pomažu nam da katalog bude točan.

Provjerio TapHome

Želite ovo koristiti u svojoj centralnoj jedinici TapHome Core?

Otvorite ovaj predložak na portalu Customer Portal kako biste ga primijenili na jedan od svojih domova ili predložili poboljšanje i poslali ga natrag u katalog.

Otvorite na portalu