Skip to main content

Díl 9: Chytré zásuvky

Úvod

V dnešním díle se podíváme na chytré zásuvky a pár automatizací a nápadů, co se s nimi dá provádět.

Chytré zásuvky nám přinášejí několik výhod. Můžeme díky nim na dálku pomocí libovolných automatizací vypínat a zapínat jakékoliv zařízení chceme. Druhou výhodou je, že každá zásuvka se v naší Zigbee síti chová jako router. To znamená, že nám poměrně efektivně rozšiřuje pokrytí. Pokud tedy máte na nějakých místech problém se signálem, tak stačí „v půlce cesty“ zapojit chytrou zásuvku a problém se dost často vyřeší. V neposlední řadě si můžeme pomocí zásuvky měřit spotřebu energie.

Zásuvek existuje na trhu nepřeberné množství, všechny fungují víceméně stejně. Ale jeden velký rozdíl tam přece jenom je, a to ve způsobu měření spotřeby. Některé zásuvky měří spotřebu okamžitou a jiné takzvaným pollingem (sbírá se hodnota vždy v nějakém časovém okně, např. 1 minuta). Výrazně přesnější je první varianta.

Co budeme potřebovat

Integrace zásuvky

Pro integraci využijeme náš Zigbee2MQTT addon, který jsme si nainstalovali a nastavili v předchozím dílu. V levém menu tedy klikneme na Zigbee2MQTT (pokud ho v levém menu nemáme, tak přes Settings->Addons->Zigbee2MQTT-> Open WEB UI). Zásuvku si zapojíme do zásuvky a na 5 sekund podržíme tlačítko na boku. Tlačítko by se mělo modře rozblikat, což indikuje, že jsme v párovacím módu. V Zigbee2MQTT povolíme připojení nových zařízení klepnutím na „Povolit připojení (Vše)“ a po pár sekundách by se nám zásuvka měla objevit v addonu.


Nyní klepneme na modrou tužku vlevo, zásuvku si pojmenujeme a zaškrtneme „Aktualizovat ID entity v Home Assistant“.


Tím máme zásuvku integrovanou a můžeme se pomalu vrhnout na promýšlení a programování automatizací. Ještě si ukážeme jaké hodnoty nám zásuvka reportuje:

  • State on/off – signalizuje, zda je zásuvka vypnutá nebo zapnutá.
  • Countdown – čas, za který se zásuvka vypne.
  • Power outage memory – co se stane po výpadku proudu – zda se zásuvka zapne/vypne nebo obnoví do stavu před výpadkem.
  • Indicator mode – nastavení LED na tlačítku.
  • Power – okamžitý naměřený výkon.
  • Current – okamžitý naměřený proud.
  • Voltage – naměřená hodnota elektrického potenciálu.
  • Energy – součet spotřebované energie.
  • Child lock – povolí/zakáže fyzický vstup do zařízení (vypne/zapne tlačítko).
  • Linkquality – síla signálu.

Automatizace a reálná využití

Zásuvek mám doma celkem deset. Používám je primárně na monitoring spotřeby elektrického proudu a pro vypínání/zapínání spotřebičů. U většiny používám pouze základní automatizaci pro vypnutí/zapnutí a to ve dvou variantách. První varianta je po 15 minutách. Tu používám např. pro rychlovarnou konvici, Nespresso, mlýnek na kávu a další podobné přístroje. Zásuvku před použitím zapnu fyzickým tlačítkem a po 15 minutách se sama vypne. Druhá varianta: při odchodu všech členů domácností se ověří, zda jsou potřebné zásuvky vypnuté a pokud ne, tak se vypnou. To je taková pojistka, kdyby náhodou selhala 15minutová automatizace.

Dále mám nastavenou ještě jednu speciální automatizaci pro lampičku, kde je žárovka od Hynka Medřického. Žárovka má celkem tři módy a ty se aktivují vypnutím/zapnutím lampičky (žárovky). První zapnutí rozsvítí bílé světlo, druhé zapnutí večerní žluté světlo a třetí zapnutí oranžové noční světlo. Dle času, kdy se lampička rozsvítí se buď zapne jednou, dvakrát a nebo třikrát.

Jednu zásuvku také používám před rackem, kde je zapojeno Raspberry Pi, router, NAS, UPSka a počítač, ale ta je pouze pro měření spotřeby.

Vypnutí po 15 minutách

Tato základní automatizace je velmi jednoduchá. Vše nastavíme v Settings->Automations & Scenes -> Create automation. V položce When klepneme na Add Trigger -> Device a vyhledáme naši zásuvku. Jako trigger zvolíme „turned on“, tj. akci, která se má stát při zapnutí zásuvky a v sekci for si nastavíme čas po jaké době se automatizace spustí.

Poté v sekci Then do klepneme na Add Action -> Other actions -> Perform action. Vyhledáme Switch: Turn off a potvrdíme. V sekci Targets klepneme na Choose entity a vyhledáme naši zásuvku.


Případně můžete využít kód níže, jen si musíte přepsat názvy entit, které se u vás budou lišit.

Kód automatizace

Vypnutí při odchodu z domácnosti

Tato automatizace je trochu složitější, ale není to nic hrozného. Potřebujete mít zadané jednotlivé obyvatele domácnosti v HA (jejich telefon), mít přístup k jejich GPS poloze a definovat si v aplikaci domácí zónu a její perimetr.

Definici zóny si nastavíme v Setting->Area, labels & zones a přesuneme se do záložky Zones, poté dole klikneme na Create zone. Vyplníme si název (já jsem si zvolil „Home“) a potom buď vyhledáme adresu na mapě a klikneme do mapy, a nebo můžeme zadat přesné souřadnice. Nakonec upravíme Radius tak, aby byl kruh co nejblíže našemu domu.


Dále v aplikaci na telefonu ověříme, zda je povolená poloha. Přesuneme se tedy do Settings -> Companion App->Správa senzorů a zde vyhledáme Senzory polohy a ujistíme se, že je zapnuto Jedno přesné umístění, poloha na pozadí a poloha zóny.


Teď máme vše připravené a můžeme se vrhnout na automatizaci.

V políčku When klepneme na Add trigger, vybereme Entity a poté State. V políčku Entity si vyhledáme osobu, dle které se má automatizace řídit. Dále v políčku To (optional) vybereme Away (pokud bychom chtěli akci opačně, tj. když osoba přijde domů, tak vybereme Home). Pokud chceme přidat ještě další osoby, tak využijeme And if (optional) jako další podmínku. V mém případě se tedy automatizace spustí, když odejdu ze zóny Home a dále se ověří, zda je manželka doma. Pokud ano, tak se nestane nic, pokud doma není, tak se automatizace spustí. Volitelně si ještě můžeme nastavit položku For a vyplnit čas, jak dlouho musí být daná osoba mimo zónu pro spuštění automatizace.


V posledním kroku si nastavíme, co se má stát po spuštění automatizace. V tomto případě je to jednoduché: vypnou se tři zásuvky. V položce Then do tedy klepneme na Add action, vyhledáme Switch: Turn off a poté klepnutím na Choose entity přidáme entity (zásuvky), které chceme vypnout.

Kód automatizace

Automatizace pro lampičku

Automatizace pro lampičku se spouští na základě kliknutí na tlačítko, které mám přilepené v pracovně. Integraci a automatizace si ukážeme v příštím díle, v domácnosti mám totiž více tlačítek pro různá využití, takže si tlačítka zaslouží vlastní díl :). Jak už jsme si řekli, žárovka v lampičce funguje podle počtu zapnutí a vypnutí, v automatizaci tedy blikneme s chytrou zásuvkou za kterou je lampička připojena buď jednou, dvakrát a nebo třikrát a to dle denní doby:

  • Pokud je čas mezi 8:00 – 19:00h = bílé světlo – klikneme 3x
  • Pokud je čas mezi 19:00 – 00:00h = žluté světlo – klikneme 2x
  • Pokud je čas mezi 00:00 – 8:00h = oranžové světlo – klikneme 1x

Pro tlačítko jako takové mám samostatnou automatizaci, kterou si taky ukážeme v příštím díle. Tato automatizace se spustí na základě zapnutí lampy, tj. nejdříve se spustí první automatizace po kliknutí na tlačítko, tím se lampa (zásuvka) zapne a poté se vypíná/zapíná dle denní doby, aby svítilo to správné světlo.

V políčku When mám tady jako Trigger nastaveno Device, a to je chytrá zásuvka, a v Triggeru je vyplněno Smart Plug – Desk Lamp turned on, automatizace se tedy spustí po zapnutí zásuvky.

V políčku Then do mám Block Choose (ten už jsme používali i v předešlých dílech). Na základě denní doby se tedy spustí možnost 1,2 nebo 3.

Automatizace by se ještě dala rozšířit například o to, aby se již zapnutá lampička sama v určitých časech přepnula do správného módu.

 

Kód automatizace

Automatizace pro pračku a sušičku

Sušičku i pračku přes zásuvku vzdáleně nevypínám, ale posílám si notifikace na můj a manželčin telefon. Princip automatizace je jednoduchý. Pokud odběr na zásuvkách klesne pod určitou úroveň a po určitou dobu, přijde nám na telefon notifikace. Hodnoty je lepší si vysledovat na svých přístrojích, každá pračka a sušička funguje jinak a má jiné cykly a odběry. Doporučuji pustit pračku a sušičku a po dokončení praní/sušení se podívat na graf entit výkon (naleznete ho v Setting->Devices->Vyhledáte své zařízení->Klepnete na entitu výkon) a dle toho si nastavit hodnoty pro spuštění automatizace.

Notifikace posílám jak po spuštění praní/sušení, tak i po ukončení. Začátek se hodí například proto, že pokud jsem chtěl něco vyprat a zrovna nejsem doma, můžu ještě domů poslat zprávu a praní se dá pozastavit a přihodit prádlo :).

Nejprve si potřebujeme vytvořit dva helpery, jeden pro pračku a jeden pro sušičku. Helpery už jsme používaly v minulých dílech, takže jen ve zkratce. Najdeme je v Settings->Devices & services-> záložka Helpers. Klepneme na Create Helper, vyhledáme Toggle, zvolíme si nějaký název (v mém případě washing_machine_running a dryer_running), pokud chceme, ještě si nastavíme ikonku a máme hotovo. Helpery nám pak poslouží na dashboardu k signalizaci, zda je pračka nebo sušička v provozu.

Nyní k automatizaci jako takové. V sekci When si tedy přidáme Trigger a entitu nastavíme na výkon naší zásuvky. Já jsem si pro spuštění nastavil hodnotu Above = 10, tj. výkon je větší než 10 W. Dále využijeme Trigger ID, které jsme už používali i v minulých dílech. Tím se pak můžeme v Then do bloku odkázat na tento trigger a provést příslušnou akci. To samé uděláme i pro sušičku. A triggery pro spuštění praní/sušení máme hotové!


Dále si přidáme další dva triggery pro ukončení praní/sušení. Princip je podobný, akorát místo Above použijeme Below, v tomto případě Below = 3 pro pračku a Below = 1 pro sušičku. Dále doplníme For, tedy čas, jak dlouho tam má být tato hodnota pro spuštění automatizace, v tomto případě For = 1:30 pro pračku a 8:00 pro sušičku. Je to z toho důvodu, že moje pračka má po ukončení praní téměř nulový odběr. Sušička se ještě v různých intervalech spouští i po ukončení, tj. má stále nějaký odběr.


Teď se přesuneme do sekce Then do, kde si opět vytvoříme Building Block a zvolíme Choose. Budeme mít celkem čtyři Options. Dva pro poslání notifikací při začátku praní/sušení a dva pro notifikace při konci praní/sušení.

Nejprve si přidáme Condition – Triggered By a vybereme washing-machine-start (to je naše Trigger ID, které jsme nastavovali v sekci When), dále přidáme další Condition a to Entity->State a vyhledáme náš helper. V State nastavíme Off. Tím předejdeme tomu, že by se nám znovu poslala notifikace na již běžící pračku/sušičku. Tím máme Conditions pro Option 1 hotové.

 


Nyní klikneme na Add Action, vyhledáme Send a vybereme Notifications: Send a notification message via (zde bude název našeho telefonu). Do políčka message napíšeme zprávu, která se nám pak zobrazí v notifikaci a do políčka title nadpis notifikace. Do pole data vyplníme následující text:

Pro Android:

Pro Apple zařízení nemusíme vyplňovat nic. Teoreticky nemusíme nic vyplňovat ani pro Android, ale já jsem měl na svém telefonu občas problém s přijímáním notifikací, proto jsem raději přidal do pole data tento text.

Pokud chceme notifikaci posílat na více telefonů, pouze přidáme další stejnou akci, akorát zvolíme jiný telefon.


V posledním kroku si přepneme náš helper do stavu On, přidáme tedy další akci, vyhledáme Input boolean a vybereme Input boolean: Turn on.


Pro další Option na ukončení praní budeme postupovat úplně stejně, jen vybereme jiné příslušné Trigger ID, změníme si zprávy a nadpisy u notifikací a náš helper budeme přepínat do stavu Off. Úplně stejně vytvoříme další dva Options pro sušičku, jen opět změníme Trigger ID, názvy entit, zprávy, nadpisy a helper.

Jako poslední klepneme na tři tečky v pravém horním rohu, vybereme Change mode a nastavíme Queued. Tím zajistíme, že pokud by se pračka nebo sušička zapnuly/vypnuly ve stejném okamžiku, přijdou nám obě dvě notifikace. V módu Single by se mohlo stát, že by přišla pouze jedna.

Tím máme automatizaci hotovou a měly by nám začít chodit notifikace na telefon. Otestovat si to můžete v Developer tools, které naleznete v levém menu. Klepnete na ně, nahoře v záložce vyberete States, ve Filter entities si vyhledáte svoji entitu pro výkon zásuvky a klepnete na ni. V políčku State si vyplníte hodnotu, která bude nižší/vyšší než hodnota v trigger v automatizaci a klepnete na Set State. Do pár sekund by vám měla přijít notifikace.


Developer tools je velmi užitečný nástroj pro testování a ladění automatizací, takže pokud chcete cokoliv testovat, ladit a nebo vám jen něco nefunguje, určitě ho využijte!

Přidání entit do dashboardu

V posledním kroku si přidáme naše helpery a stavy zásuvek do dashboardu. Využijeme k tomu Mushroom Template Card, kterou jsme si instalovali a ukazovali v tomto díle. Konfigurace je trochu složitější, takže níže máte celý kód, který si případně upravte dle libosti. Samozřejmě jako vždy musíte minimálně změnit názvy entit

 

Kód automatizace

Závěr

V dnešním díle jsme si ukázali sílu chytrých zásuvek a jak se dají využít v domácnosti. Různých druhů použití existuje nespočet a každý doma používá jiné zařízení, takže pro něj využití budou jiná. V budoucnu ještě plánuji dát jednu chytrou zásuvku před 3D tiskárnu, aby se vypnula po ukončení tisku a vychladnutí trysky a podložky.

Pokud by vás zajímalo pokročilejší monitorování energie, dejte mi vědět v komentářích a můžeme si o tom více povědět v nějakém z dalších dílů. Notifikace na telefon v budoucnu ještě využijeme např. pro senzor detekce kouře, protože pokud vám doma hoří, je dobré to vědět :).