Automatizace v Home Assistantovi
Automatizace jsou základním kamenem v Home Assistantovi, umožňují propojit jednotlivá zařízení mezi sebou a definovat akce, které se mají provést v závislosti na konkrétních podmínkách a spouštěčích.
Základní bloky automatizace
-
Když - Tato část definuje spouštěč, který aktivuje automatizaci. Je možné definovat jeden nebo více spouštěčů. Každý spouštěč může mít volitelně definované jedinečné ID, které pak lze později použít v sekci co se má udělat.
-
A pokud (volitelné) - Zde lze definovat podmínky, které musí být splněny pro spuštění automatizace. V případě více podmínek musí být obvykle splněny všechny, což se dá přirovnat k logickému "a". Můžeme však použít tzv. stavební bloky pro vytvoření složitějších logických struktur, jako je logické "nebo", což umožňuje spuštění automatizace, pokud je splněna alespoň jedna z podmínek.
Globální podmínky automatizaceTyto podmínky si můžeme představit jako podmínky globální, tj. budou platit pro všechny akce uvedené níže.
-
Pak udělat - Toto je seznam akcí, které se vykonají, pokud byla automatizace spuštěna a podmínky splněny.
Jednoduchý příklad automatizace
Představte si dvě fyzická zařízení - např. Zigbee tlačítko a WiFi žárovku. Díky Home Assistantovi můžeme tyto zdánlivě rozdílné technologie propojit.
Zadání
Budeme chtít rozsvítit žárovku pomocí tlačítka, ale pouze za předpokladu, že už zašlo slunce.
Řešení
V našem jednoduchém příkladu si vystačíme pouze se základními bloky automatizace, která nastavíme takto:
-
Když - spouštěčem bude zmáčknutí Zigbee tlačítka.
-
A pokud (volitelné) - omezující podmínka bude stav slunce po západu.
-
Pak udělat - a konečně akcí bude rozsvícení WiFi světla.
Schéma automatizace
Pro lepší představu nám můžeme posloužit schéma automatizace, kdy vidíme i stav, který nemusíme definovat - co se stane pokud podmínka není splněna.
Typy podmínek
Číselné nebo textové podmínky
Další možností jsou podmínky kdy stav odpovídá určité číselné nebo textové hodnotě.
-
Číselný stav - otestuje zda je číselný stav určité entity větší/menší než zadaná hodnota. Například zda teplota je vyšší než 20st.
-
ID spouštěče - otestuje zda automatizace byla spuštěna jedním z vyjmenovaných spouštěčů definovaných pomocí ID.
-
Stav nebo zařízení - tato podmínka ověřuje aktuální stav entity nebo zařízení v okamžiku spuštění automatizace. Rozlišujeme dva typy:
- Stav entity: Testuje konkrétní atribut nebo hodnotu jednotlivé entity (např. zda je světlo zapnuté).
- Stav zařízení: Kontroluje celkový stav zařízení, které může mít více entit (např. zda je termostat v režimu vytápění).
Čas a místo
-
Čas - otestuje zda je automatizace spuštěna před/po určitém času, který může být definovanou ve tvaru HH:MM:SS (hodina:minuta:sekunda) a nebo pomocí pomocníka.
-
Slunce - otestuje zda je automatizace spuštěna před/po východem/západem slunce. Je možné definovat i časový posun od tohoto okamžiku.
-
Zóna - otestuje zda entita s polohou (typicky osoba) vstoupila do určité oblasti - zóny.
Logické podmínky
Stavební bloky pro složitější podmínky, kdy jich chceme kombinovat více dohromady.
-
A (průnik nebo-li logická konjunkce) - otestuje zda jsou splněny všechny podmínky
-
Nebo (sjednocení nebo-li logická disjunkce) - otestuje zda alespoň jedna z podmínek je pravdivá
-
Ne (negace) - otestuje zda podmínka není pravdivá
Úprava automatizací v Home Assistantu
Home Assistant nabízí dva způsoby editace automatizací, které umožňují uživatelům přizpůsobit své chytré domácnosti podle vlastních potřeb.
Vizuální editor
Vizuální editor je výchozí a uživatelsky přívětivá volba pro úpravu automatizací. Tento přístup je ideální zejména pro začátečníky a pro vytváření základních automatizací. Hlavní výhody vizuálního editoru jsou:
- Intuitivní rozhraní: Umožňuje "naklikat" veškeré nastavení bez nutnosti znalosti kódu.
- Nápověda: Poskytuje vedení při vytváření funkčních automatizací.
- Minimalizace chyb: Snižuje riziko syntaktických chyb, které mohou nastat při ručním psaní kódu.
YAML kód
Editace pomocí YAML kódu nabízí pokročilejším uživatelům větší flexibilitu a kontrolu nad automatizacemi. Tento přístup je vhodný pro: Komplexní automatizace: Umožňuje vytvářet složitější logiku a podmínky.
- Přenos automatizací: Snadné kopírování a přenos automatizací mezi různými instancemi Home Assistanta.
- Zálohování: Možnost jednoduše zálohovat konkrétní automatizace v textové podobě. Pro obecné zálohy, ale doporučuji použít raději klasické zálohy.
Při editaci YAML kódu je třeba dbát zvýšené opatrnosti, protože nesprávné úpravy mohou vést k nefunkčnosti automatizace.
Přepínání mezi režimy
Home Assistant umožňuje flexibilní přepínání mezi vizuálním editorem a YAML kódem:
- Otevřete editaci automatizace.
- Klikněte na třítečkové menu v pravém horním rohu.
- Zvolte požadovaný režim editace.
Tato funkce umožňuje využít výhody obou přístupů podle aktuální potřeby.
Příklad automatizce - vizuální mód vs. YAML kód
alias: System - týdenní záloha (Auto backup)
description: ""
mode: single
triggers:
- at: "22:10:00"
trigger: time
conditions:
- condition: time
weekday:
- sun
actions:
- data:
exclude:
addons:
- Studio Code Server
folders:
- Local add-ons
- share
compressed: true
keep_days: 28
action: auto_backup.backup_full
Komentáře