blog.vyoralek.cz

Automatizace pro chytrou domácnost – 2. část – HomeAssistant

Po minulé teoretické části k vytváření automatizací pro chytrou domácnost se dnes podíváme na první způsob přidání vlastní automatizace prostřednictvím UI HomeAssistanta.

Již ve verzi 0.45 byla do HomeAssistanta přidána možnost přidat / editovat automatizaci přes uživatelské rozhraní – do té doby to bylo možné pouze pomocí YAML konfigurace.

Samotné rozhraní přidání / editace automatizací je rozděleno do třech hlavních bloků, které přesně odpovídají základním prvkům – Spouštěč ▶︎ Podmínky ▶︎ Akce – které jsme si představili a detailněji popsali v předchozí části tohoto miniseriálu.

Aktivace editoru automatizací

Nejprve bude potřeba přidat aktivaci editoru konfigurace pomocí zápisu do souboru hlavní konfigurace HomeAssistanta – configuration.yaml:

config:

Editor pak bude číst a zapisovat konfiguraci automatizace do souboru uvedeném v konfiguraci.

Druhým krokem je kontrola nastavení souboru pro automatizace v tomtéž souboru konfigurace:

automation: !include automation.yaml

Zachování stávajících YAML automatizací

Pokud jste v situaci, že jste už nějakou dobu používali definici automatizací pomocí YAML souborů a chcete ji zachovat, pak je to možné.

Můžeme tak kombinovat automatizace nastavené přes uživatelské rozhraní s těmi definovanými jako YAML.

automation: !include automations.yaml
automation old: !include_dir_merge_list automations

První sekce automation slouží pro definici automatizací pro uživatelské rozhraní, sekce automation old pak konfiguraci přímo v YAML.

Migrace YAML automatizací

Pokud chceme mít možnost i stávající YAML automatizace konfigurovat prostřednictvím uživatelského rozhraní můžeme je poměrně jednoduše zmigrovat.

Stačí zkopírovat obsah YAML souboru se stávající konfigurací do souboru automations.yaml. Před použitím je potřeba se ujistit, že každá automatizace bude mít svůj jednoznačný identifikátor id.

Jakékoliv komentáře z YAML budou při použití uživatelského rozhraní editace ztraceny. Pokud potřebujete popsat automatizaci použijte raději pole description.

Přidání automatizace v UI

Editor automatizací najdete v sekci Nastavení / Automatizace.

Nebudu zde rozepisovat všechny možnosti konfigurace automatizace – na to se raději podívejte do dokumentace – ale vše ukážu na jednom konkrétním příkladu.

Jako příklad automatizace si vezmeme případ z úvodního článku, kdy po příchodu domů chcete automaticky zapnout osvětlení v případě, že je již po západu slunce.

Příklad domácí automatizace

Pro přidání nové automatizace klikneme na oranžové tlačítko + v pravém dolním rohu.

Hlavička

Prvním blokem definice nové automatizace je hlavička, kde si automatizaci pojmenujeme a volitelně můžeme přidat i detailnější popis.

Blok hlavičky

Spouštěč

Druhým blokem je spouštěč. Jak jsme si dokázali v minulém článku, je velice důležité se zamyslet, kterou entity si vybereme jako spouštěč – pokud si tím nejste jistí, koukněte raději ještě do tohoto článku.

V našem příkladu nám nejlépe vyhovuje stav přítomnosti osoby.

Budeme tak potřebovat typ spouštěče Stav a v entitě si najdeme tu, která nám udává stav sledované osoby – může to být i kombinace více stavů.

Do pole do pak vyplníme hodnotu home, která nám říká, že nás zajímají jen přechody do stavu home – u stavu přítomnosti je to jednoduché, jelikož je binární – máme jen dvě možnosti, buď doma jsme nebo ne.

Blok definice spouštěče

Ostatní hodnoty jsou už pro tento případ nepovinné, ale pojďme se na ně podívat.

Pole Z definuje nutný počáteční stav – v našem případě by to byla hodnota not_home, nicméně jak jsme si řekli můžeme ho pro tento příklad vynechat.

Pole Po dobu pak definuje minimální dobu po které se stav nesmí změnit, tj. například pokud bychom zde přidali 30 minut, tak by se spouštěč aktivoval pouze tehdy, pokud jsme přišli domů a jsme zde už po dobu 30 minut. Kdybychom kdykoliv během této doby odešli aktivace spouštěče by se zrušila.

Podmínky

Třetím blokem jsou podmínky. Tento blok je nepovinný a pokud nepotřebujeme automatizaci omezit podmínkami můžeme ho kompletně vynechat. To ale nebude případ našeho příkladu, jelikož potřebujeme přidat podmínku na západ slunce.

Nejprve proto klikneme na přidat podmínku a v typu podmínky vybereme Slunce. Samotný editor podmínek pro slunce je na první pohled možná až příliš složitý. Prvním krokem je si uvědomit jestli nás bude zajímat západ nebo východ slunce a druhým pak jestli chceme spouštěč aktivovat pokud je před/po východu/západu slunce. My chceme po západu slunce a tak klikneme na Západ slunce v sekci Po.

Blok podmínek

Volitelně pak můžeme ještě přidat prodlevu, tj. např. pokud chceme spouštěč aktivovat až několik minut po západu slunce.

Akce

Posledním blokem je definice akce, která se má vykonat. My bychom rádi rozsvítili lampičky. K tomu se nám bude hodit akce typu Zavolat službu, která se postará o zavolání služby light.turn_on, nebo-li zapnutí světel. Do pole entit pak zadáme entitu, která se má zapnout. Já už mám vytvořenou skupinu světel s názvem myroom_small_lights, takže ji rovnou použiju.

Blok akce

V poli data služby bychom mohli přidat nějaké specifické nastavení služby, tj. v případě lampiček, pokud to podporují, můžeme rovnou přidat hodnotu jasu, popř. i barvu světla.

Jakmile máme hotovo klikneme na ikonku diskety v pravém dolním rohu a automatizace tím je vytvořena a hned i aktivována.

Nová automatizace v seznamu

Pomocí přepínače v seznamu automatizací tak můžeme automatizace rychle vypínat/zapínat a editovat.

Když se nyní podíváme do souboru automations.yaml uvidíme tam automaticky vygenerovaný YAML kód z UI:

- id: '1584457926250'
  alias: Lampičky po příchodu domů
  description: Rozsvícení lampiček po příchodu domů pokud je už po západu slunce
  trigger:
  - entity_id: person.jiri_vyoralek
    platform: state
    to: home
  condition:
  - after: sunset
    condition: sun
  action:
  - data: {}
    entity_id: light.myroom_small_lights
    service: light.turn_on

… který můžeme dále editovat a nebo si uložit jako pro zálohu.

Vytváření automatizací přes UI v HomeAssistantovi je opravdu jednoduché, i když je zde stále co zlepšovat zejména ve složitosti některých editorů. Stále budete nuceni alespoň elementárně rozumět jak HA uvnitř funguje a k čemu slouží entity a stavy. Nicméně je to i tak velký krok kupředu oproti manuální editaci YAML souborů a rozhodně všem doporučuji si to minimálně zkusit.

V dalším díle se podíváme na totožný příklad automatizace vytvořený tentokráte pomocí workflow NodeRed, který umí velice dobře spolupracovat i s HA.


Kompletní minisérie o vytvoření domácí automatizace obsahuje následující články:

  • 1. část – Teoretický úvod do automatizace – spouštěč -> podmínky -> akce
  • 2. část – Vytváření automatizací přes UI HomeAssistanta

Přidat komentář

Napsat komentář

Tato stránka používá Akismet k omezení spamu. Podívejte se, jak vaše data z komentářů zpracováváme..