Blog - Home Assistant 14 pic 1920x1080 px
|

Home Assistant seriál s Jakubem: Díl 14: Chytrý detektor kouře

V dnešním díle se podíváme, jak funguje chytrý detektor kouře a jak ho můžeme využít v domácnosti. Také si nastavíme notifikace na telefon, aby nám v případě požáru nebo detekce kouře přišla zpráva na telefon. K detekci využijeme senzor Heiman HS1SA, který má (alespoň podle dostupných zdrojů) platnou CE certifikaci. Proto by v případě pojistné události neměl být problém s plněním z pojištění.

Senzor bychom měli každý měsíc testovat, zda opravdu funguje. Testování je jednoduché – stačí na senzoru stisknout velké tlačítko s LED diodou a měl by se ozvat velmi hlasitý zvuk (doporučuji testovat se sluchátky).

Senzor je poměrně citlivý – spolehlivě zachytí i hustý kouř ze smažení, pokud je ho v místnosti dost. Na druhou stranu nereaguje na páru z MTL e‑cigarety, pokud mu ji nefouknete přímo do mřížky.

Baterie by v senzoru měla vydržet více než pět let, ale doporučuje se ji po 5 letech preventivně vyměnit.

Co budeme potřebovat

  • nainstalovaný a funkční HA
  • senzor Heiman HS1SA
  • 1x baterie CR123A, popřípadě lze použít i CR17335
  • kancelářskou sponku nebo jehlu na SIM kartu

Oživení senzoru a přidání do HA

Nejprve do senzoru vložíme baterii a přikryjeme ji štítkem, aby pak šel senzor vložit do držáku.


Po vložení baterie otevřeme náš HA a přejdeme do Zigbee2MQTT v levém menu. Pokud jej v menu nevidíme, můžeme přejít přes Settings → Add-ons → Zigbee2MQTT → Open Web UI.

Na boční straně senzoru najdeme malý otvor a připravíme si kancelářskou sponku nebo jiný vhodný nástroj. Lze použít také například jehlu na SIM kartu nebo na paměťovou kartu.


V Zigbee2MQTT klikneme na „Povolit vše“ a na senzoru stiskneme tlačítko na 2 sekundy. Hlavní velké tlačítko s LEDkou by pak mělo začít rychle blikat. Aby zařízení nezapadlo do režimu spánku, je potřeba hlavní tlačítko s LED diodou opakovaně stisknout přibližně každé dvě sekundy. Přestat můžeme ve chvíli, kdy se nám zařízení objeví v Zigbee2MQTT jako napárované.


Kliknutím na modrou tužku dole zařízení pojmenujeme podle umístění, například „Living Room – Smoke Detector“. V záložce „Vystavuje“ se můžeme podívat na entity, které nám senzor nabízí.

  • Smoke – pravda/nepravda – udává, zda senzor detekuje kouř
  • Battery low – pravda/nepravda – udává zda je baterie téměř vybitá
  • Battery – % – udává procento baterie (může trvat až 24 h, než se aktualizuje)
  • Test – udává, zda je zařízení právě testováno
  • Linkquality – udává kvalitu spojení s naší Zigbee bránou


Nyní máme zařízení úspěšně přidané do našeho HA a můžeme se vrhnout na automatizace. Ukážeme si jak poslat notifikaci na telefon v případě požáru a jak si připomenout, že máme senzor otestovat, zda funguje. K tomu by se mohla hodit entita Test, ale v Home Assistantu bohužel není možné její stav načíst. My si však poradíme i jinak.

Automatizace

Notifikace na telefon(y)

Přejdeme do Settings → Automations a klikneme na Create Automation. Nejprve přidáme Trigger tlačítkem Add Trigger, vyhledáme položku Entity a přidáme ji. V poli Entity vyhledáme entitu detekce kouře a vybereme ji. V poli To (optional) nastavíme hodnotu Detected. Díky tomu notifikace dorazí vždy, když senzor zaznamená kouř nebo požár.



Nyní se přesuneme do sekce Then do, klikneme na Add action a vyhledáme Send a notification message. Zde budou dvě různá nastavení pro Android a iOS.

Android

Pro Android používám dvě notifikace. První je TTS (Text to Speech) – hlasová zpráva, kdy se text převede na zvuk a přečte nahlas, takže ji nepřehlédnu. Druhá je klasická vizuální notifikace, která se zobrazí v notifikační liště.

Pro TTS vyplníme políčko message textem „TTS“, zaškrtneme políčko u data a vyplníme následující kód (tts_text si upravte dle libosti :)).

Parametry pro TTS notifikaci
  • tts_text: text, který má zařízení vyslovit (nutné!)
  • media_stream: typ audio kanálu (alarm_stream nebo silnější alarm_stream_max)
  • ttl: 0 → oznámení okamžitě zastaví ostatní, pokud jsou v řadě
  • priority: high → přepíše Do Not Disturb a další omezení


Tím máme první notifikaci hotovou. Nyní si vytvoříme i klasickou notifikaci, která se nám zobrazí v notifikační liště. Klepneme tedy znovu na Add action, opět vyhledáme Send a notification message a přidáme ji.

Do message vyplníme text notifikace, do title vyplníme nadpis notifikace a do data vložíme následující kód:

Parametry pro textovou notifikaci
  • sticky: "true" → notifikace zůstane v liště, dokud ji uživatel ručně neodstraní
  • notification_icon: fire → zobrazí ikonu ohně v notifikaci
  • color: red → nastaví červený akcent (proužek/ikona) v notifikaci
  • ttl: 0 → okamžité doručení, propadne pokud zařízení není dostupné
  • priority: high → okamžité doručení, snaha obejít Do Not Disturb

iOS

Stejným způsobem jako u Androidu vytvoříme i notifikaci pro iOS (například iPhone). Zde nám bude stačit pouze jedna. Opět tedy klepneme na Add action, vyhledáme Send a notification message a přidáme ji. Do message vložíme text notifikace, do title její nadpis a do pole data vyplníme následující kód:

Parametry pro zvukové upozornění v iOS
  • name: US-EN-Alexa-Smoke-Detected-Generic.wav → název zvukového souboru, který se má přehrát (musí být podporovaný systémem), seznam všech předinstalovaných zvuků naleznete zde.
  • critical: 1 → označí upozornění jako kritické – přehraje se i při zapnutém Do Not Disturb nebo ztlumeném telefonu
  • volume: 1 → nastaví hlasitost přehrávání na maximum (hodnota 1 = 100 %)

Možná se divíte, proč má Android dvě notifikace, zatímco iOS pouze jednu.
Je to kvůli odlišným možnostem obou platforem při práci s upozorněními.

Na Androidu lze TTS (text‑to‑speech) spustit přímo v rámci oznámení, takže se používá samostatná TTS notifikace a k ní ještě klasická vizuální notifikace.

Naopak iOS přímé TTS nepodporuje. Místo toho lze vybrat některý z předinstalovaných zvuků, případně nahrát vlastní přes iTunes nebo cloudové úložiště. Tento zvuk se pak přehraje spolu s textovým upozorněním jako součást jedné notifikace.

Celý kód automatizace

Testování senzoru

Pro pravidelné testování můžeme využít několik přístupů:

  • Grocy
  • Helper + Script + Mushroom Template card s tlačítkem na reset
  • Kalendář
  • jistě něco dalšího, co mě nenapadlo 🙂

Kalendář mi nevyhovoval, takže si popíšeme zbývající možnosti. U všech přístupů se bohužel musíme spoléhat na to, že neodstraníme všechny notifikace a senzor opravdu zkontrolujeme a následně odklikneme, že jsme ho zkontrolovali :).

Grocy

Addon Grocy jsme si ukazovali v díle o NFC tazích. Celý postup instalace addonu a přidání Chores najdete zde. Buď můžete použít NFC tag a po kontrole ho jen naskenovat anebo si pouze přidat Chore a ručně ho každý měsíc odklepnout přímo v Grocy jako splněný.

Helper

Pro vytvoření helperu se přesuneme do Settings -> Devices & services -> Helpers a klikneme na Create Helper. Vyhledáme Date and/or time, vyplníme název (v mém případě Bedroom – Last Smoke Sensor Test, volitelně si zvolíme vhodnou ikonku a ujistíme se, že v dolní části je zvoleno Date.

Po vytvoření helperu pro datum opět klikneme na Create Helper, vyhledáme Template a vybereme Template a sensor. Vyplníme name (v mém případě Bedroom Smoke Detector – days to test a do State template vložíme kód níže. Zde změníte pouze jedinou věc, a to je název vašeho helperu (název naleznete tak, že klepnete na helper, poté v horním pravém rohu na ozubené kolečko a zkopírujete Entity ID).


Kód do State template:

V dalším kroku si ještě potřebujeme vytvořit script, který nám po klepnutí na tlačítko vyresetuje náš helper. Přesuneme se do Settings -> Automations & scenes -> Scripts, klikneme na Create script a zvolíme Create new script.

Dále klikneme na Add action, vyhledáme Perform action a potvrdíme. V políčku Search vyhledáme Set time a vybereme Set (sets the date and/or time).

V poli Targets vybereme Choose entity a vyhledáme náš helper.

V poli Date vyplníme následující kód:

Tento kód zajistí, že se vždy použije aktuální datum, takže tlačítko bude fungovat kdykoli bez ručního nastavování.


Teď můžeme klepnout na Save script a script si libovolně pojmenovat, např. Bedroom Smoke Sensor – reset helper.

Poslední část je poskládání všech dílků dohromady a vytvoření karty s tlačítkem na dashboardu. Přesuneme se tedy na naši hlavní stránku s dashboardy a buď si vytvoříme úplně novou stránku nebo kamkoliv chceme přidáme novou kartu. Jak na to už jsme řešili v předchozích dílech.

Já jsem využil Mushroom Template card, kterou jsme si instalovali a nastavovali v tomto díle. Nebudeme si zde popisovat krok po kroku jak kartu vytvořit, to už jsme si ukazovali v předchozích dílech. Níže naleznete hotový kód, kde pouze stačí změnit názvy entit, popř. si pak přes UI můžete doladit cokoliv chcete :).

Po kliknutí na tlačítko se pomocí scriptu vyresetuje helper a začne se počítat nových 30 dní. Případně si můžete helper ještě rozšířit o automatizaci, která vám pošle notifikaci na telefon, např. když do dalšího testu bude zbývat jen X dní, např. takto:

Závěr

V dnešním díle jsme si přidali detektor kouře Heiman HS1SA do našeho HA a nastavili si na dva mobilní telefony (Android a iPhone) notifikace, pokud senzor detekuje kouř. Také jsme si ukázali několik způsobů, jak si připomenout, abychom otestovali, zda senzor funguje. Tak snad se vám teď bude klidněji spát, když HA hlídá i jestli vám doma nehoří :).

V příštím díle se podíváme na chytré LED pásky a integraci WLED, s kterou se dají dělat zázraky (no skoro :)).

Tak klidnému spánku zdar!

Podobné příspěvky

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *