TapHome

Shelly Plus Smoke

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

Ovaj uređaj podržava mDNS

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

shellyplussmoke-{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 Plus Smoke

Shelly Plus Smoke je Wi-Fi fotoelektrični detektor dima na baterije (CR123A), certificiran prema DIN EN 14604. TapHome s uređajem komunicira preko MQTT pomoću RPC obavijesti Gen2+ u temi events/rpc. Uređaj radi štednje baterije većinu vremena provodi u dubokom snu i periodički se budi prema postavljenom wakeup_period. Pri alarmu dima uređaj se odmah budi i šalje MQTT obavijest.

Predložak stvara jedan uređaj Alarm dima (prikazan kao magnetski kontakt, Reed Contact) s dva servisna atributa baterije (postotak i napon). Nadzor veze prati odbrojavanje intervala buđenja i javlja upozorenja ili pogreške kada se uređaj dulje vrijeme ne javi.

Konfiguracija

MQTT Client ID

Svaki Shelly Plus Smoke ima jedinstveni MQTT Client ID u obliku shellyplussmoke-<MAC12>, gdje je <MAC12> cijela MAC adresa od 12 znakova u heksadecimalnom zapisu velikim slovima (npr. shellyplussmoke-AABBCCDDEEFF). Taj ID služi i kao zadani prefiks MQTT teme.

Client ID možete pronaći:

  • Na naljepnici uređaja (MAC adresa)
  • U web-sučelju Shelly: Settings → MQTT → Client ID
  • Preko API-ja: GET http://<device-ip>/rpc/Mqtt.GetConfig → polje client_id
Postavljanje predloška

Nakon uvoza predloška u TapHome:

  1. Otvorite modul Shelly Plus Smoke
  2. U MQTT Broker IP upišite adresu MQTT brokera
  3. Postavite Port (zadano 1883)
  4. U parametar uvoza MQTT ID upišite Client ID uređaja (npr. shellyplussmoke-AABBCCDDEEFF)

Modul se pretplaćuje na <device-id>/#, a skripta za slušanje raščlanjuje JSON-RPC događaje NotifyFullStatus i NotifyStatus iz teme events/rpc.

MQTT je na uređaju Shelly Plus Smoke prema zadanim postavkama isključen. Uključite ga u postavkama uređaja: Settings → MQTT → Enable. Provjerite je li rpc_ntf (RPC obavijesti) postavljen na true (zadano). Predložak se oslanja na obavijesti events/rpc, a ne na pojedinačne teme stanja.

Spavanje i javljanje

Shelly Plus Smoke radi u načinu dubokog sna kako bi baterija što dulje trajala:

  • Periodičko buđenje: uređaj se budi u intervalima određenim s sys.wakeup_period i objavljuje događaj NotifyFullStatus sa stanjem baterije, stanjem alarma dima i trenutačnim intervalom buđenja
  • Događaj alarma: otkrivanje dima odmah budi uređaj i šalje obavijest NotifyStatus sa stanjem alarma
  • Između ciklusa buđenja: uređaj nije dostupan preko HTTP-a ni MQTT-a

Uređaj se napaja jednom baterijom CR123A s očekivanim trajanjem do 5 godina. Ne koristite punjive baterije: proizvođač izričito upozorava na to.

Uređaj radi na baterije i nije trajno spojen na MQTT broker. Između ciklusa buđenja komunikacija nije moguća. Ako je na mjestu senzora Wi-Fi signal slab, česti pokušaji ponovnog spajanja pri buđenju mogu znatno skratiti trajanje baterije.

Mogućnosti uređaja

Alarm dima

Predložak stanje alarma dima prikazuje kao uređaj vrste „Magnetski kontakt” (Reed Contact, DeviceType 1030). Skripta za slušanje raščlanjuje događaje NotifyStatus u temi events/rpc i čita params['smoke:0'].alarm:

  • ON (alarm aktivan): otkriven je dim, ugrađena zujalica uređaja oglašava se s više od 85 dB
  • OFF (nema alarma): dim nije otkriven, normalan rad

Stanje alarma je samo za čitanje i ažurira se odmah kada se otkrije dim. Uređaj pri događajima alarma odmah šalje MQTT obavijest, bez obzira na raspored spavanja.

Praćenje baterije

Modul daje dva servisna atributa baterije koji se čitaju iz događaja NotifyFullStatus:

  • Baterija [%]: postotak napunjenosti baterije iz params['devicepower:0'].battery.percent. Kada razina padne ispod 30 %, javlja se upozorenje o slaboj bateriji
  • Baterija [V]: napon baterije u voltima iz params['devicepower:0'].battery.V. Nazivni napon baterije CR123A je 3 V

Obje vrijednosti vraćaju NaN dok se ne primi prvo mjerenje (tj. dok je spremljena vrijednost još 0). Podaci o bateriji ažuriraju se pri svakom periodičkom buđenju.

Nadzor veze

Predložak prati povezivost uređaja mehanizmom odbrojavanja. Pri svakom događaju NotifyFullStatus skripta za slušanje sprema vrijednost sys.wakeup_period u korisničku varijablu wakeup_period. Skripta za čitanje zatim u svakom ciklusu očitavanja (interval od 60 sekundi) smanjuje taj brojač za 60:

  • Brojač dosegne 0: uređaj se nije probudio kako je očekivano. Brojač se postavlja na -1 i javlja se WARNING (upozorenje): „Update not received”
  • Brojač dosegne -86400: uređaj se ne javlja 48 sati. Javlja se ERROR (pogreška): „Update not received in last 48h”

Kada se uređaj probudi i pošalje novi NotifyFullStatus, brojač se vraća na novu vrijednost wakeup_period i upozorenja nestaju.

Dodatne mogućnosti

Shelly Plus Smoke podržava i funkciju utišavanja (RPC metoda Smoke.Mute) za prigušivanje zvuka alarma, događaje testa alarma dima koje pokreće fizičko tipkalo te dijagnostiku jačine Wi-Fi signala (RSSI). Kada je uključen status_ntf, uređaj objavljuje pojedinačne teme stanja komponenti. Te se mogućnosti mogu dodati u budućem ažuriranju predloška.

Rješavanje problema

Alarm dima ne javlja događaje
  1. Provjerite je li Shelly Plus Smoke spojen na Wi-Fi i je li u postavkama uređaja uključen MQTT (Settings → MQTT → Enable)
  2. Provjerite je li rpc_ntf postavljen na true (zadano): predložak zahtijeva RPC obavijesti u temi events/rpc
  3. Provjerite odgovara li parametar uvoza MQTT ID točno Client ID-u uređaja (npr. shellyplussmoke-AABBCCDDEEFF)
  4. MQTT klijentom (npr. MQTT Explorer) pretplatite se na <device-id>/# i provjerite objavljuje li uređaj NotifyFullStatus kada se probudi
  5. Provjerite bateriju uređaja: s ispražnjenom baterijom CR123A uređaj se ne može spojiti na Wi-Fi
Nadzor veze javlja lažna upozorenja
  1. Nadzor uspoređuje odbrojavanje s očekivanim intervalom buđenja. Ako sat centralne jedinice TapHome Core znatno odstupa, mogu se pojaviti lažna upozorenja
  2. Na baterijskom napajanju uređaj se budi samo u postavljenom intervalu wakeup_period: razmaci između javljanja su očekivani
  3. Ako je senzor na mjestu s nestabilnim Wi-Fi signalom, u nekim se ciklusima buđenja možda neće uspjeti spojiti. Provjerite jačinu Wi-Fi signala na mjestu senzora
  4. Nakon zamjene baterije može proći jedan cijeli ciklus buđenja prije nego što se brojač nadzora ispravno postavi
Uređaj se prikazuje kao magnetski kontakt umjesto alarma dima

Predložak TapHome za prikaz alarma dima koristi vrstu uređaja PacketParserReedContact (DeviceType 1030). To je ispravno preslikavanje: stanje ON znači „Hitni alarm” (Emergency Alarm, otkriven je dim), a stanje OFF znači „OK” (nema dima). Uređaj se u sustavu TapHome zove „Shelly Plus Smoke”, pa je njegova funkcija jasno vidljiva.

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 Plus Smoke Modul
Prilagođene varijable
deviceid (string)ID MQTT uređaja koji se koristi kao prefiks teme — oblik: shellyplussmoke-{MACADDRESS} (pronađite ga u web-sučelju Shelly → Settings → MQTT → Client ID)
Alarm dima Magnetski kontakt Samo za čitanje

Stanje fotoelektričnog detektora dima — ON = hitni alarm (otkriven je dim), OFF = OK (nema dima). Alarm odmah šalje MQTT obavijest i uključuje zujalicu jačine više od 85 dB.

boolean JSON-RPC (NotifyStatus → params.smoke:0.alarm)
Servisni atributi
Baterija [%]Postotak napunjenosti baterije — upozorenje o slaboj bateriji ispod 30 %. Baterija CR123A, trajanje do 5 godina.
Baterija [V]Napon baterije u voltima — nazivno 3 V za bateriju CR123A

Alarm dima

Čitanje (modul)
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
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
Servisni atributi
Battery [%]
if battery_percent != 0
	return(battery_percent);
else
	return(NaN);
end
Battery [V]
if battery_V != 0
	return(battery_V);
else
	return(NaN);
end
Povezivanje: Packet Parser → MQTT • Naziv računala (hostname): shellyplussmoke-{MAC}.local
Moguća poboljšanja (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.

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