Smart Home to nie jest tylko włączanie i wyłączanie światła za pomocą telefonu, ale również (a może nawet „przede wszystkim”) automatyzacje oraz skrypty. To właśnie one znacznie ułatwiają nam codzienność, otwierają nowe możliwości i przyspieszają przeróżne czynności. Czym w nomenklaturze Home Assistanta różnią się automatyzacje i skrypty, a także jak z nich skorzystać? To wyjaśnimy sobie już za moment!
Przechodząc do ustawień Home Assistanta zauważycie pozycję Automatyzacje oraz sceny
. Wchodząc tam jednak odnajdziecie więcej elementów:
My skupimy się na automatyzacjach oraz na skryptach. Nazwy mogą wskazywać na coś podobnego i w sumie faktycznie są to rzeczy w pewnej części zbieżne, często wykorzystywane zamiennie (to znaczy, ktoś wykorzystuje moduł automatyzacji do tworzenia skryptów), jednak nie są tym samym i jako ciekawą zajawkę mogę powiedzieć, że automatyzacja może uruchamiać skrypty.
Automatyzacje w Home Assistant to pewnego rodzaju reguły, które automatycznie wykonują określone działania na podstawie różnych warunków, tak zwanych wyzwalaczy. Na przykład, można tak skonfigurować automatyzację, aby włączyła światło, gdy czujnik ruchu wykryje aktywność w pomieszczeniu. Po wykryciu działania wyzwalacza (tutaj: wykrycie ruchu przez czujnik), sprawdzane są warunki, a następnie wykonywane są określone czynności, w tym przypadku włączenie światła. Blok automatyzacji w Home Assistant składa się z trzech głównych elementów:
Skrypty w Home Assistant to zbiory instrukcji lub komend, które można wykonać w odpowiedzi na określone zdarzenia lub na żądanie użytkownika. Skrypty zawierają opis czynności, które po kolei mają zostać wykonane. Na przykład, idąc spać zapewne chcecie, aby wiele urządzeń wyłączyło się lub przeszło w tryb nocny. Ten stos wydarzeń możecie opisać w skrypcie.
Skrypty nie mają wydzielonych bloków głównych, a w zasadzie są kanwą, na której tworzymy dowolne instrukcje – również warunkowe. I właśnie taką sekwencję w postaci skryptu można umieścić w bloku Wykonaj
w automatyzacjach.
Bieżący rok 2024 to dobry moment dla automatyzacji w Home Assistant. Dlaczego? Otóż w aktualizacji 2024.1 zyskały przeprojektowany interfejs tworzenia, który znacznie ułatwia zarówno zrozumienie, jak i budowanie automatyzacji. Aby utworzyć automatyzację wystarczy wejść do ustawień, wybrać pozycję Automatyzacje oraz sceny
, a następnie w dolnym, prawym rogu ekranu kliknąć w Utwórz Automatyzację
. W wyświetlonym oknie pojawi się przycisk Utwórz nową automatyzację
. Czysty „arkusz” nowej automatyzacji wygląda tak jak poniżej.
Tak jak zostało wspomniane, pierwszym blokiem jest „Kiedy”, czyli opis wyzwalacza. Wyzwalaczem natomiast może być niemalże wszystko, na przykład: naciśnięcie smart przycisku, włączenie światła, nadejście godziny 10:00 czy rozpoczęcie wydarzenia w kalendarzu. Jest to element rozpoczynający proces wykonywania automatyzacji. Co ważne, wyzwalaczy można dodać wiele.
Kolejnym blokiem jest „Jeżeli”. Jest to miejsce, w którym dodajemy warunki wykonywania automatyzacji. Jest to bardzo ważne, ponieważ może zdarzyć się tak, że chcemy z danej automatyzacji korzystać, ale nie w każdych okolicznościach. Na przykład warunkiem może być fakt, że automatyzacja wykona się tylko wtedy, gdy dany użytkownik jest w domu, wybrane smart gniazdko jest włączone lub jest odpowiednia pora dnia.
Finalnym blokiem jest „Wykonaj”. To tutaj określamy co ma zostać wykonane, na przykład włączenie światła, wyłączenie oczyszczacza powietrza czy zmiana temperatury ogrzewania. Co ważne, wewnątrz bloku wykonaj można też umieścić różne instrukcje warunkowe, pętle czy opóźnienia.
Zapewne zauważyliście, że w oknie Utwórz automatyzację
były dostępne inne pozycje – Motion-Activated Light
oraz Zone Notification
. Są to szablony, które użyjecie właśnie do szybkiego i wygodnego utworzenia automatyzacji – pierwszy pozwala zautomatyzować działanie światła i czujnika ruchu, a drugi wyzwolenie powiadomienia w telefonie kiedy dany użytkownik pojawi się w wyznaczonej strefie.
Szablony możemy pobierać z internetu i nimi zarządzać w zakładce Schematy
. Sam mogę polecić „Low battery level detection & notification for all battery sensors”, który powiadamia o niskim stanie naładowania urządzeń IoT i nie tylko. W zakładce Schematy
znajduje się również przycisk pozwalający pobrać więcej szablonów.
Do skryptów można przejść klikając w zakładkę Skrypty
. Następnie klikamy w Dodaj Skrypt
oraz w Utwórz nowy skrypt
. Wyświetli się edytor, który znacznie różni się od tego, co znamy. Powód jest prosty – skrypty są w zasadzie częścią „Wykonaj” ze wspomnianych automatyzacji. To właśnie tutaj możemy umieścić sekwencję działań, które mają się wydarzyć. Samo dodawanie sekwencji jest proste i wygodne.
Co równie ważne, istnieją także szablony skryptów, a jednym z domyślnych jest „Confirmable Notification”, czyli skrypt tworzenia powiadomienia wysyłanego na smartfony, które ma przyciski do reakcji. Jest to coś, co może pozwolić znacznie rozbudować zwykłe automatyzacje z powiadomieniami tekstowymi.
Tak jak wspomniałem, skrypty można umieścić wewnątrz automatyzacji, a także wyzwolić je ręcznie, z poziomu interfejsu Home Assistanta. Wykorzystanie ich może nam dużo pomóc, ponieważ ten sam skrypt można dodać do wielu automatyzacji.
Czasami warto po prostu poznać jakieś przykłady, aby dowiedzieć się co może się przydać. Oto kilka propozycji ode mnie. Dodam, że nie będę mówił o takich prostych automatyzacjach, jak pojedyncza reakcja na kliknięcie przycisku Smart czy zapalenie światła po wykryciu ruchu.
Czas pracy to moment, który chcemy wykorzystać do… pracy. Niestety, pamiętanie o wyciszaniu dzwonków i dźwięków powiadomień może być trudne, tym bardziej jak chcemy te dźwięki później przywrócić. W tym skrypcie wykorzystamy fakt, że Home Assistant może sterować funkcjami telefonu! Tak, wystarczy zainstalować aplikację Home Assistant, aby skorzystać z tej funkcji.
Triggery tej automatyzacji będą dwa – pierwszym może być sztywno podana godzina (np. 08:00) lub rozpoczęcie wydarzenia w kalendarzu. Ja skorzystałem z tej drugiej opcji, ponieważ kalendarz wewnątrz Home Assistanta synchronizuje się z moim Nextcloudem. Możliwym jest również dodawanie wydarzeń bezpośrednio w HA, jak i ustanowienie synchronizacji z innymi usługodawcami, np. Google.
Drugim triggerem również może być sztywna godzina, ale tym razem opisująca moment zakończenia pracy lub możemy wybrać fakt zakończenia wydarzenia w kalendarzu. Co więcej, do obydwóch wydarzeń dodajemy ID. Jak? Na prawym końcu bloku znajduje się przycisk w postaci trzech kropek. Klikamy, a następnie wybieramy „Edytuj identyfikator”.
W bloku „Wykonaj” wybieramy blok „Wybór”, co pozwoli obsłużyć obydwa przypadki. W Opcji 1 dodajemy Warunek jako wyzwolenie akcji z identyfikatorem nadanym wcześniej. Analogicznie dodajemy drugi trigger. Finalnie uzyskamy dwa bloki pod sobą opisane jako „Opcja 1” i „Opcja 2”.
Opcje natomiast będziemy edytować korzystając z funkcji wpisywania kodu YAML. W pierwszej opcji chcemy dźwięki wyciszyć, czyli wpisujemy poniższy kod.
service: notify.mobile_app_nazwaTelefonu
data:
message: command_ringer_mode
data:
command: vibrate
nazwaTelefonu
, to nazwa encji telefonu, który chcemy wyciszyć.
W opcji drugiej chcemy dźwięki przywrócić. Więc ponownie edytujemy blok za pomocą kodu YAML i wpisujemy:
service: notify.mobile_app_nazwaTelefonu
data:
message: command_ringer_mode
data:
command: normal
Zapisujemy automatyzację, a następnie w górnym, prawym rogu klikamy w przycisk z ikoną trzech kropek i wybieramy „Uruchom”. Nastąpi symulacja triggera, co jest potrzebne, ponieważ za pierwszym razem aplikacja Home Assistant zapyta nas o potrzebne uprawnienia do sterowania trybami telefonu. Późniejsze triggery (już takie faktyczne) będą mogły sterować smartfonem.
Możliwe, że wielu z Was ma rytuał przygotowywania się do snu, a jedną z czynności jest wyłączenie światła i urządzeń lub, ewentualnie, przełączenie ich w tryb nocny. Robienie tego ręcznie, pojedynczo może być nużące. Automatyzacja, którą nazwałem „Dobranoc” jest moją ulubioną, a zarazem też najczęściej wykorzystywaną.
Najpierw tworzymy skrypt, w którym dodajemy te urządzenia, które chcemy wyłączyć lub przełączyć w tryb nocny – u mnie lista wygląda tak:
Co więcej, jak widzimy, mamy tutaj wykorzystane sceny. Są to pewnego rodzaju zapisane momenty, np. wybrany kolor i jasność świecenia żarówki czy właśnie tryb pracy oczyszczacza powietrza. Przed dodaniem ich do skryptów, należy te sceny utworzyć, co jest bardzo proste i intuicyjne.
U mnie lista urządzeń jest krótka, ale w zasadzie można dodać sprzęt obecny w całym domu i jednym ruchem wszystko wyłączyć/przełączyć. Co więcej, możemy listę rozbudować o urządzenia, które wcale włączone nie muszą być – przełączenie ich w tryb „wyłączony” nie sprawi, że same się włączą. Tym samym upewniamy się, że wszystkie sprzęty faktycznie zostały wyłączone.
A jak aktywować skrypt? Automatyzacją! Tworzymy nowy skrypt, gdzie w bloku „Kiedy” dodajemy wybraną akcję. Ja obok łóżka mam kostkę Aqara Smart Cube, więc u mnie potrząśnięcie tą kostką wywoła automatyzację. Może to również być np. przycisk smart czy nawet wybrana godzina.
W bloku „Jeżeli” dodajemy możliwe warunki. U mnie jest to zakres czasu od 23:59 do 05:00. To sprawia, że nie wywołam tego skryptu przez przypadek w ciągu dnia. W bloku „Wykonaj” dodajemy uprzednio utworzony skrypt.
To druga moja ulubiona automatyzacja, a zarazem też pewnego rodzaju wskazówka pokazująca jak dobrze wykorzystać lokalizację. Ta automatyzacja samoczynnie wyłącza wyżej wymienione (w poprzednio opisanej automatyzacji) urządzenia po naszym wyjściu z domu. Co ważne, automatyzacja sprawdza czy w domu nie ma innych domowników, a jeśli są, to skrypt nie wykona się.
Jak jest to możliwe? Do każdego użytkownika możemy przypisać tracker GPS w postaci telefonu z Home Assistantem, a instrukcja automatyzacji warunkowo sprawdza obecność innych osób w domu. Można zrobić to na dwa sposoby. Pierwszym jest sprawdzenie wartości stanu strefy Home
. Jeśli jest większa od 0, to znaczy, że ktoś w domu pozostał. Innym sposobem jest pojedyncze sprawdzanie obecności każdego domownika. Przy dwóch/trzech osobach jest to rozwiązanie warte wzięcia pod uwagę, natomiast im liczba większa, tym wypisanie warunków staje się coraz bardziej czasochłonne.
Jak więc wygląda automatyzacja? W bloku „Jeżeli” dodajemy trigger w postaci opuszczenia strefy „Home” przez danego użytkownika. W podobny sposób podajemy tutaj wyjście innych domowników i opis będzie brzmiał „Kiedy użytkownik opuszcza strefę Home”.
Napisanie instrukcji warunkowej pojedynczo nie jest proste. Należy skorzystać najpierw z bloku AND, a później z zaprzeczenia – jak na grafice poniżej.
W bloku „Wykonaj” podajemy uprzednio utworzony skrypt.
W tym artykule wytłumaczyliśmy sobie czym są automatyzacje oraz skrypty w Home Assistant, a także wyznaczyliśmy różnice pomiędzy nimi. Co więcej, poznaliśmy kilka przykładów automatyzacji, które są dosyć proste, a zarazem naprawdę ułatwiające codzienność. Tak jak wspomniałem, Home Assistant daje wiele możliwości w tworzeniu automatyzacji oraz skryptów, co sprawia, że możemy budować naprawdę zaawansowane i ciekawe rozwiązania.
Kategoria: Inspiracje technologiczne