Home Assistant seriál s Jakubem: Díl 8: NFC tagy v HA
Úvod
V dnešním díle se podíváme na NFC tagy a jak je využít. Jako obvykle (jo, opakuji to fakt často :)) se fantazii meze nekladou, a my si ukážeme, jak NFC tagy přidat do HA a k čemu je používám já.
V závěru si řekneme, k čemu všemu by se daly využít.
Začneme tím, k čemu používám NFC tady já. Už tu máme skoro jaro a začínají jarní úklidy. Taky to máte jako já? Nepamatujete si, kdy jste naposledy odmrazili mrazák, umyli okna nebo vyčistili vysavač? Všechny tyto starosti vám s NFC tagy odpadnou. Nalepil jsem si je celkem na 8 míst a díky nim si hlídám mytí oken ve dvou místnostech, čištění vysavače, mytí lednice, odmrazování mrazáku, údržbu myčky, čištění Nespressa a poslední mám nalepený na rámu dveří do koupelny a jednoduchým naskenováním vypnu automatické světlo v koupelně, když v noci nechci svítit a oslňovat se modrým světlem :).
Co budeme potřebovat:
- nainstalovaný HA dle předchozích dílů
- NFC tag(y)
- chytrý telefon s NFC čtečkou + HA aplikaci v telefonu
- doplněk Grocy (nainstalujeme si)

NFC tagy můžete koupit v různých barvách, velikostech a rozměrech. Cenově vyjdou na cca 5-6 Kč/kus. Mě se líbily tyto barevné, protože zároveň i hezky vypadají :).
Instalace Grocy addonu
Než se vrhneme na nastavení a integraci NFC tagů, nejprve si přidáme a nainstalujeme addon Grocy. Ten nám bude sloužit na monitorování stavů našich „chores“ (úklidů, údržby). V addonu jde pěkně nastavit, jak často se má daná událost opakovat a lze ji i přidělovat více uživatelům, takže se můžete v domácnosti pěkně vystřídat :). Addon má i své mouchy – ale o tom si povíme za chvíli.
Přesuneme se do Settings -> Addons -> Addons Store, vyhledáme „Grocy“ a addon nainstalujeme. Postup instalace bychom měli znát už z předchozích dílů, např. zde, kde jsme instalovali Zigbee2MQTT. Postup při instalaci Grocy addonu je úplně stejný.

Po instalaci addon otevřeme (Settings -> Addons -> Grocy) a přesuneme se do záložky „Configuration“. Zde si můžeme dle libosti zapnout/vypnout jednotlivé komponenty addonu. Lze si v něm ukládat např. recepty, obsah lednice apod. Já ho používám pouze pro monitoring na základě NFC tagů, takže mám většinu vypnutou.

Poté se přesuneme zpět do záložky „Info“ a zaškrtneme klasicky „Start on boot“, „Watchdog“ a „Show in sidebar“, pak addon spustíme přes tlačítko „Start“ a v záložce „Log“ bychom měli vidět hlášku „No errors reported“.


Nastavení Grocy addonu
Pokud jsme v přechozím kroku zaškrtnuli „Show in sidebar“, v levém menu bychom měli vidět položku „Grocy“. Pokud ne, addon můžeme otevřít i přes Settings->Addons->Grocy->Open Web UI. Při prvním otevření (a pak každých 30 dní) se budeme muset přihlásit. Výchozí jméno a heslo je admin. Doporučuji zaškrtnout „Zůstat přihlášen“.

V první řadě si v zájmu bezpečnosti změníme heslo. Vpravo uvidíme nápis „admin“, klepneme na něj, vybereme „Změnit heslo“ a vyplníme naše nové heslo.

V dalším kroku si vytvoříme náš první „chore“. Přesuneme se do Spravovat základní data -> Povinnosti -> Přidat.

Vyplníme název, volitelně i popis, zvolíme typ a interval opakování, první datum pro splnění povinnosti, volitelně „Typ přiřazení“ a „Přiřadit“ k (uživateli) a pokud jste chroničtí odkládači, doporučuji zaškrtnout „Automatické posouvání termínu“ 🙂

Tímto máme vše připravené pro přidání NFC tagů a vytvoření automatizace po naskenování tagu.
Přidání NFC tagů do HA
A teď už se vrhneme k přidání tagů do našeho HA. K tomu budeme potřebovat chytrý telefon s NFC čtečkou a aplikaci Home Assistant. Pokud aplikaci nemáte, velmi jednoduše ji stáhnete a nainstalujete z Google Play nebo App Store. Vyplníte IP adresu vašeho HA serveru a přihlásíte se :). Případně se klidně zeptejte v komentářích, kdyby Vám něco nebylo jasné nebo jste si nevěděli rady :).
V aplikaci se přesuneme do Settings -> Tags a klepneme na „Add Tag“, vyplníme název tagu a dole klepneme na „Create and write“. Nyní nás aplikace vyzve k naskenování tagu, takže jen přiložíme telefon k jednomu námi vybranému tagu a máme hotovo.


Automatizace pro tagy
Automatizace jsem si vytvořil dvě. Jednu „velkou“ pro trackování všech „chores“ a druhou pro vypnutí automatizace pro osvětlení v koupelně. Dalo by se to všechno napsat do jedné automatizace, ale já mám rád, když je to rozdělené a přehledné :). Nejprve si ukážeme automatizaci pro chores a na konec článku vám hodím i kód a krátký popis automatizace pro osvětlení.
Přesuneme se do Settings -> Automations & scenes a klepneme na „Create automation“.
Konfigurace je velmi jednoduchá ve „When“ klepneme na Add Trigger -> Other triggers a vybereme Tag. Do políčka trigger-id si napíšeme libovolný název, který nám dává smysl, a budeme mu rozumět i za rok, až tu automatizaci budeme znovu zkoumat :), a pak v políčku Tag vybereme náš tag.
Poté se přesuneme do sekce „Then do“, klepneme na „Add Acttion“, vyhledáme „Choose“ a přidáme. V položce „Option 1“ nejprve klepneme na „Add Condition“, vyhledáme „Triggered by“ a přidáme ho. V nabídce „Trigger“ vyhledáme naše trigger-id, které jsme přidávali v předešlém kroku.
Dále v Option 1 klepneme na „Add action“, vyhledáme „Grocy: Execute Chore“ a přidáme ho. V Chore Id vyplníme ID našeho „Chore“ který chceme NFC tagem ovládat. V nastavení Grocy jsem bohužel toto ID nikde nenašel, ale dle všech mých zkušeností jsou ID číslovány dle vytvoření: takže první vytvořený Chore má ID=1 atd. Buď si tedy musíte pamatovat, v jakém pořadí jste Chores vytvořili, a nebo to zkoušet metodou pokus/omyl. Další komplikace nastává, pokud nějaký „chore“ smažete, protože ID se nepřepisují, ale jen inkrementují, takže když jste vytvořili tři Chores a smažete druhý vytvořený, tak ID zbylých Chores budou pravděpodobně 1 a 3. Toto je bohužel jedna z nevýhod tohoto addonu, ale já jsem s nastavením nijak bojovat nemusel – vše jsem nastavil pouze jednou a od té doby tagy jen vesele používám :).


Příklad kódu automatizace pro umytí oken v ložnici:
alias: Bedroom windows
description: ""
mode: single
triggers:
- trigger: tag
tag_id: 36492f74-4142-4289-ad7f-33a49a78fafc
id: bedroom-windows
conditions: []
actions:
- choose:
- conditions:
- condition: trigger
id:
- bedroom-windows
sequence:
- metadata: {}
data:
chore_id: "1"
done_by: "0"
action: grocy.execute_chore
V posledním kroku si naše „chore(s)“ zobrazíme na dashboardu, abychom měli přehled :).
Nejprve si přidáme nový HACS doplněk auto-entities. Přesuneme se tedy do HACS, vyhledáme auto-entities a doplněk nainstalujeme. Postup jak instalovat doplňky z HACS už známe z přechozích dílů 🙂

Nyní se přesuneme na libovolný dashboard (nebo si vytvoříme nový), v pravém horním rohu klepneme na ikonku tužky, a poté v pravém dolním rohu vybereme „Add card“ a ve vyhledávacím políčku vyhledáme „Auto entities“.

Ve stávající verzi se mi bohužel poměrně často stává, že se plugin zasekne, a tak nejjednodušší cesta je vyplnit následující kód a jen si v něm upravit regulární výraz:
type: custom:auto-entities
show_empty: false
card:
show_header_toggle: false
type: entities
title: Chores
filter:
include:
- name: /^(Clean|Defrost)(.+)/
sort:
method: state
numeric: true
/^(Clean|Defrost)(.+)/ nám udává čím naše entity začínají (moje názvy začínají na „Clean“ a „Defrost“), takže vy si jen upravte názvy podle sebe.
Alternativně nemusíme použít tento addon, ale jen si ručně přidat jednotlivé entity, takže místo auto-entities přidáte kartu entities a tam si je pak můžete naklikat ručně.
Závěr
V dnešním díle jsme si dali dohromady addon Grocy a přidali si NFC tag(y). Dole vám ještě přidávám celý kód mojí automatizace NFC tagů.
V příštím díle se podíváme na chytré zásuvky a k čemu je můžeme chytře využít :).
Trackování úklidu zdar!
Automatizace pro osvětlení
NFC tag jsem si nalepil na rám dveří od koupelny. V koupelně totiž pro volbu různého typu osvětlení v různou denní dobu používám 24 Ghz radar (jak ho postavit si ukážeme v nějakém z příštích článků) a chytrý vypínač Sonoff. Když jdu v noci do koupelny vykonat potřebu, před vstupem mobilem naskenuji NFC tag a tím na 15 minut vypnu radar. Pak mohu v klidu vykonat potřebu potmě a neoslňovat se modrým světlem. Automatizaci naleznete níže, ale plně ji využijete, až si postavíme radar (zatím se můžete alespoň inspirovat :)).
alias: Tag Bathroom - Turn off automation
description: ""
mode: single
triggers:
- tag_id: a5acb5f8-5a70-4f66-8f97-71707f076f07
trigger: tag
conditions: []
actions:
- metadata: {}
data:
stop_actions: true
target:
entity_id: automation.test_radar
action: automation.turn_off
- delay:
hours: 0
minutes: 15
seconds: 0
milliseconds: 0
- metadata: {}
data: {}
target:
entity_id: automation.test_radar
action: automation.turn_on
Finální automatizace
alias: NFC track chores
description: ""
mode: single
triggers:
- tag_id: 36492f74-4142-4289-ad7f-33a49a78fafc
id: bedroom-windows
trigger: tag
- tag_id: fe3dc7d0-9d7e-4d6f-b66e-cd787cfffad3
id: vacuum-cleaner
trigger: tag
- tag_id: 575acde3-e24f-4f45-97ae-686a315cce2e
id: nespresso
trigger: tag
- tag_id: 87472f8a-2327-4a71-b091-2ecf865c8069
id: dishwasher
trigger: tag
- tag_id: a11e0c84-e3cf-4b4b-8dc7-03b1c9c86025
id: fridge
trigger: tag
- tag_id: cc0ebb43-e3ac-4c22-abfb-fe032d157bf0
id: living-room-windows
trigger: tag
- tag_id: fcea4701-2032-49c4-a7d5-49cc7fa8034c
id: defrost-freezer
trigger: tag
conditions: []
actions:
- choose:
- conditions:
- condition: trigger
id:
- bedrooom-windows
sequence:
- metadata: {}
data:
chore_id: "1"
done_by: "0"
action: grocy.execute_chore
- conditions:
- condition: trigger
id:
- living-room-windows
sequence:
- metadata: {}
data:
chore_id: "2"
done_by: "0"
action: grocy.execute_chore
- conditions:
- condition: trigger
id:
- dishwasher
sequence:
- metadata: {}
data:
chore_id: "3"
done_by: "0"
action: grocy.execute_chore
- conditions:
- condition: trigger
id:
- nespresso
sequence:
- metadata: {}
data:
chore_id: "4"
done_by: "0"
action: grocy.execute_chore
- metadata: {}
data:
chore_id: "3"
done_by: "0"
action: grocy.execute_chore
- conditions:
- condition: trigger
id:
- fridge
sequence:
- metadata: {}
data:
chore_id: "5"
done_by: "0"
action: grocy.execute_chore
- conditions:
- condition: trigger
id:
- vacuum-cleaner
sequence:
- metadata: {}
data:
chore_id: "6"
done_by: "0"
action: grocy.execute_chore
- conditions:
- condition: trigger
id:
- defrost-freezer
sequence:
- metadata: {}
data:
chore_id: "7"
done_by: "0"
action: grocy.execute_chore
„V závěru si řekneme, k čemu všemu by se daly využít.“….to je v článku asi omylom 😉
Zdravím, v závěru (resp. cca od půlky článku) je několik příkladů na co tagy využívám :).
Bez telefónu sa v noci nemôžem ísť vysrať.? To je už na doktora.
Milan
Klidně můžete, když to zvládnete potmě 🙂
Nicméně v jedenáctém díle budeme pracovat s chytrými tlačítky, která se pro tento případ dají použít prakticky stejně jako NFC tagy. Pak telefon nepotřebujete :).