
Shelly Plus Smoke je bateriový (CR123A) Wi-Fi fotoelektrický kouřový alarm certifikovaný podle DIN EN 14604. TapHome komunikuje se zařízením přes MQTT pomocí Gen2+ RPC notifikací na topicu events/rpc. Zařízení většinu času tráví v hlubokém spánku pro úsporu baterie a periodicky se probouzí podle nakonfigurovaného wakeup_period. Události kouřového alarmu vyvolají okamžité probuzení a MQTT notifikaci.
Šablona vytvoří jedno zařízení Kouřový alarm (mapované na Reed Contact) a dva servisní atributy Baterie na úrovni modulu. Watchdog konektivity sleduje odpočet periódy probouzení a hlásí varování nebo chyby, pokud zařízení delší dobu neodpovídalo.
Konfigurace
MQTT Client ID
Každý Shelly Plus Smoke má unikátní MQTT Client ID ve formátu shellyplussmoke-<MAC12>, kde <MAC12> je plná 12znaková MAC adresa v hexadecimálním tvaru velkými písmeny (např. shellyplussmoke-AABBCCDDEEFF). Toto ID slouží i jako výchozí prefix MQTT topiců.
Client ID najdete:
- Na štítku zařízení (MAC adresa)
- Ve webovém rozhraní Shelly: Settings → MQTT → Client ID
- Přes API:
GET http://<device-ip>/rpc/Mqtt.GetConfig→ poleclient_id
Nastavení šablony
Po importu šablony v TapHome:
- Otevřete modul Shelly Plus Smoke
- Nastavte MQTT Broker IP na adresu MQTT brokeru
- Nastavte Port (výchozí
1883) - Nastavte import parametr MQTT ID na Client ID zařízení (např.
shellyplussmoke-AABBCCDDEEFF)
Modul se přihlásí k odběru <device-id>/# a listenerový skript parsuje NotifyFullStatus a NotifyStatus JSON-RPC události z topicu events/rpc.
MQTT je na Shelly Plus Smoke ve výchozím stavu vypnuto. Povolte ho v nastavení zařízení: Settings → MQTT → Enable. Ujistěte se, že
rpc_ntf(RPC notifikace) je nastaveno natrue(výchozí). Šablona se spoléhá naevents/rpcnotifikace, ne na individuální stavové topicy.
Chování spánku a hlášení
Shelly Plus Smoke pracuje v režimu hlubokého spánku pro maximalizaci výdrže baterie:
- Periodické probuzení — zařízení se probouzí v intervalech definovaných
sys.wakeup_perioda publikuje událostNotifyFullStatusobsahující stav baterie, stav kouřového alarmu a aktuální periodu probouzení - Událost alarmu — detekce kouře vyvolá okamžité probuzení a
NotifyStatusnotifikaci se stavem alarmu - Mezi cykly probuzení — zařízení je nedostupné přes HTTP a MQTT
Zařízení je napájeno jednou baterií CR123A s očekávanou výdrží až 5 let. Nepoužívejte dobíjecí baterie — výrobce před tím výslovně varuje.
Zařízení je napájeno z baterie a není trvale připojeno k MQTT brokeru. Mezi cykly probuzení není možná žádná komunikace. Pokud má místo senzoru slabý Wi-Fi signál, časté opětovné připojování při probuzení může výrazně zkrátit výdrž baterie.
Schopnosti zařízení
Kouřový alarm
Šablona mapuje stav kouřového alarmu na zařízení Reed Contact (DeviceType 1030). Listenerový skript parsuje NotifyStatus události na topicu events/rpc a čte params['smoke:0'].alarm:
- ON (alarm aktivní) — detekován kouř, vestavěný bzučák zařízení zní na >85 dB
- OFF (alarm zrušen) — žádný kouř, normální provoz
Stav alarmu je pouze ke čtení a aktualizuje se okamžitě při detekci kouře. Zařízení spustí okamžitou MQTT notifikaci při událostech alarmu bez ohledu na rozvrh spánku.
Monitorování baterie
Modul poskytuje dva servisní atributy Baterie, které čtou z událostí NotifyFullStatus:
- Baterie [%] — procentuální úroveň nabití baterie z
params['devicepower:0'].battery.percent. Varování o nízké baterii se spustí, když úroveň klesne pod 30 % - Baterie [V] — napětí baterie ve Voltech z
params['devicepower:0'].battery.V. Nominální napětí je 3V pro baterii CR123A
Obě hodnoty vrací NaN před přijetím prvního měření (tj. když je uložená hodnota stále 0). Data baterie se aktualizují při každém periodickém probuzení.
Watchdog konektivity
Šablona monitoruje konektivitu zařízení pomocí mechanismu založeného na odpočtu. Při každé NotifyFullStatus události listenerový skript uloží hodnotu sys.wakeup_period do custom proměnné wakeup_period. Čtecí skript pak snižuje toto počítadlo o 60 v každém cyklu dotazování (60sekundový interval):
- Počítadlo dosáhne 0 — zařízení se neprobudilo podle očekávání. Počítadlo se nastaví na -1 a vyvolá se WARNING: “Update not received”
- Počítadlo dosáhne -86400 — zařízení mlčí 48 hodin. Vyvolá se ERROR: “Update not received in last 48h”
Když se zařízení probudí a odešle nový NotifyFullStatus, počítadlo se resetuje na čerstvou hodnotu wakeup_period, čímž se vymažou všechna varování.
Další schopnosti
Shelly Plus Smoke také podporuje funkci ztlumení (Smoke.Mute RPC metoda) pro potlačení zvuku alarmu, testovací události kouřového alarmu spuštěné fyzickým tlačítkem a diagnostiku síly Wi-Fi signálu (RSSI). Zařízení publikuje individuální stavové topicy komponent při povoleném status_ntf. Tyto schopnosti mohou být přidány v budoucí aktualizaci šablony.
Řešení problémů
Kouřový alarm nehlásí události
- Ověřte, že Shelly Plus Smoke je připojen k Wi-Fi a MQTT je povoleno v nastavení zařízení (Settings → MQTT → Enable)
- Zkontrolujte, že
rpc_ntfje nastaveno natrue(výchozí) — šablona vyžaduje RPC notifikace naevents/rpc - Potvrďte, že import parametr MQTT ID přesně odpovídá Client ID zařízení (např.
shellyplussmoke-AABBCCDDEEFF) - Použijte MQTT klienta (např. MQTT Explorer) pro přihlášení k odběru
<device-id>/#a ověřte, že zařízení publikujeNotifyFullStatuspři probuzení - Zkontrolujte baterii zařízení — vybitá baterie CR123A brání zařízení připojit se k Wi-Fi
Watchdog konektivity zobrazuje falešná varování
- Watchdog porovnává odpočet s očekávanou periodou probouzení. Pokud jsou hodiny TapHome Core výrazně posunuty, mohou se objevit falešná varování
- Na bateriové napájení se zařízení probouzí pouze v nakonfigurovaném
wakeup_periodintervalu — mezery mezi hlášeními jsou očekávané - Pokud je senzor na místě s nestabilním Wi-Fi, může se při některých cyklech probuzení nepodařit připojit. Ověřte sílu Wi-Fi signálu v místě senzoru
- Po výměně baterie může zařízení trvat jeden kompletní cyklus probuzení, než se počítadlo watchdogu správně inicializuje
Zařízení se zobrazuje jako Reed Contact místo kouřového alarmu
TapHome šablona používá typ zařízení PacketParserReedContact (DeviceType 1030) pro reprezentaci kouřového alarmu. Toto je správné mapování — stav ON znamená “Nouzový alarm” (detekován kouř) a stav OFF znamená “OK” (žádný kouř). Název zařízení v TapHome je “Shelly Plus Smoke” pro jasné označení jeho funkce.