Czym są scenki, skrypty i automatyzacje w Home Assistant
Trzy pojęcia, które na pierwszy rzut oka brzmią podobnie, a robią zupełnie co innego. Scenka ustawia stan urządzeń tu i teraz. Skrypt wykonuje ciąg czynności, gdy go wywołasz. Automatyzacja sama decyduje, kiedy coś się stanie, bo czeka na wyzwalacz. Brzmi prosto. Tylko że w praktyce większość początkujących miesza te trzy narzędzia i kończy z chaosem w konfiguracji.
Zacznijmy od najprostszej rzeczy. Scenka to zapisany zestaw stanów: światło w salonie na 40 procent, roleta opuszczona, głośnik cichy. Włączasz ją jednym kliknięciem albo przyciskiem na ścianie. Nie ma tu logiki, nie ma "jeżeli". Jest tylko migawka tego, jak ma wyglądać dom.
Skrypt jest bardziej elastyczny, bo opisuje sekwencję. Może poczekać, może coś sprawdzić w trakcie, może powtórzyć krok. Wywołujesz go ręcznie, z dashboardu, z automatyzacji albo z asystenta głosowego. Sam z siebie się nie uruchomi.
Automatyzacja to warstwa decyzyjna. Ma wyzwalacz, opcjonalne warunki i akcję. Ktoś wchodzi do przedpokoju po zmroku? Światło się zapala. I tu zaczyna się problem, bo wiele osób upycha całą logikę w automatyzacjach, a potem nie potrafi ich odtworzyć.
| Element | Kiedy się uruchamia | Co robi | Typowe zastosowanie |
|---|---|---|---|
| Scenka | Na żądanie | Ustawia stany urządzeń | Tryb wieczorny, tryb filmowy |
| Skrypt | Na żądanie | Wykonuje sekwencję kroków | Procedura wyjścia z domu |
| Automatyzacja | Automatycznie, po wyzwalaczu | Sprawdza warunki i wykonuje akcję | Reakcja na ruch, zmierzch, temperaturę |
| Szablon | Przy odczycie wartości | Przelicza dane na nowy stan | Średnia temperatura z kilku czujników |
Moim zdaniem lepiej budować automatyzacje jako cienkie wyzwalacze, które wołają skrypty, niż wrzucać całą logikę do jednego miejsca. Powód jest prosty: skrypt możesz przetestować ręcznie, wywołać z kilku automatyzacji i poprawić w jednym pliku. Automatyzacja z dwudziestoma krokami to koszmar przy debugowaniu.
Diabeł tkwi w szczegółach, ale zasada jest jedna: scenka ustawia, skrypt wykonuje, automatyzacja decyduje.
Scenki w Home Assistant: szybkie wywoływanie stanów urządzeń
Scenka (ang. scene) to zapisany zestaw stanów wielu urządzeń, który przywracasz jednym poleceniem. Nie opisujesz w niej kroków ani warunków. Mówisz systemowi: „ustaw dokładnie tak, jak było w momencie zapisu”.
To fundamentalna różnica względem automatyzacji. Automatyzacja reaguje na zdarzenie i wykonuje logikę. Scenka nie ma logiki. Ma tylko stan docelowy. Diabeł tkwi w szczegółach, bo właśnie dlatego scenki bywają szybsze i przewidywalniejsze tam, gdzie nie potrzebujesz żadnego „jeżeli”.
Wyobraź sobie sytuację, w której masz pięć lamp w salonie, rolety i amplituner. Zamiast tworzyć skrypt z ośmioma akcjami, zapisujesz scenkę „Wieczór filmowy”. Przywołujesz ją przyciskiem, głosem albo z dashboardu. Koniec.
Kiedy scenka wygrywa
- Gdy chcesz przywrócić dokładnie ten sam układ świateł, jasności i kolorów po każdej zmianie.
- Gdy urządzenia mają wracać do stanu zapisanego wcześniej, a nie do wartości wpisanej ręcznie w kodzie.
- Gdy potrzebujesz szybkiego wywołania bez oceniania warunków, na przykład przyciskiem fizycznym.
- Gdy chcesz, żeby jedna akcja objęła kilka integracji naraz: światła Zigbee, rolety i odtwarzacz.
- Gdy zależy ci na czytelności: scenka to lista encji i ich stanów, a nie blok akcji do debugowania.
Moim zdaniem scenki sprawdzają się lepiej niż ręczne ustawianie każdej encji w akcjach, ponieważ zapisują rzeczywisty stan urządzenia, a nie wartość, którą musisz znać i wpisać z pamięci. Przy światłach z płynną jasnością i temperaturą barwową to ogromna wygoda.
Uwaga na pułapkę. Scenka nie sprawdzi, czy ktoś śpi, czy jest jasno na zewnątrz. Po prostu ustawia stan. Jeśli potrzebujesz decyzji, sięgnij po automatyzację albo skrypt. Scenka to narzędzie do przywołania, nie do myślenia.
Skrypty w Home Assistant: sekwencje i logika wykonywana na żądanie
Skrypt to w Home Assistant zamknięta lista kroków, którą uruchamiasz ręcznie, przyciskiem albo z innej automatyzacji. Nie ma tu żadnego wyzwalacza. Ma początek, koniec i jasno określoną kolejność działań. Brzmi prosto. I takie właśnie jest.
W pliku scripts.yaml definiujesz sekwencję: zapal światło, ustaw temperaturę, wyślij powiadomienie. Home Assistant wykona to po kolei. Jeśli któryś krok zawiedzie, reszta nadal się wykona, chyba że włączysz tryb restart albo single i sam zdecydujesz, co zrobić z równoległym wywołaniem.
Typowy przykład: masz scenę "Dobranoc", którą chcesz odpalać z przycisku fizycznego, z panelu i głosowo. Zamiast trzech osobnych automatyzacji tworzysz jeden skrypt i podpinasz go w trzech miejscach. Prosto, czytelnie, bez duplikacji.
- Wyzwalacz nie istnieje w skrypcie. Uruchamiasz go świadomie przez script.turn_on.
- Tryb decyduje, czy nowe wywołanie przerwie poprzednie, poczeka, czy zostanie odrzucone.
- Warunki możesz wstawić w środku sekwencji, nie tylko na starcie.
- Opóźnienia (delay) działają jak zawieszenie wykonania na określony czas.
- Zagnieżdżanie pozwala wywołać inny skrypt z wnętrza bieżącego, co daje czytelne bloki.
Moim zdaniem skrypt działa lepiej niż automatyzacja wszędzie tam, gdzie liczy się powtarzalność i ręczne wywołanie. Automatyzacja jest zdarzeniowa i rozproszona, a skrypt to jedna, konkretna procedura. Łatwiej go przetestować, bo odpala się na żądanie i od razu widać wynik. Diabeł tkwi w szczegółach, szczególnie przy trybach wykonania. Ale gdy je opanujesz, przestajesz mnożyć automatyzacje bez potrzeby.
Automatyzacje w Home Assistant: reguły działające w tle
Automatyzacja to serce Home Assistant. Definiujesz warunek, wyzwalacz i akcję, a system sam pilnuje, żeby wszystko zadziałało o właściwej porze. Bez twojej obecności. Bez klikania w aplikację.
Typowy scenariusz wygląda tak: wychodzisz z domu, telefon rozłącza się z siecią Wi-Fi, a Home Assistant od razu wyłącza światła, przykręca termostat i uzbraja alarm. Nikt nie musi nic robić. Reguła działa w tle, a ty zauważasz tylko efekt. Wyobraź sobie, że wracasz wieczorem i zamiast ciemnego mieszkania witasz się z ciepłym światłem w przedpokoju. To właśnie robi dobrze napisana automatyzacja.
W praktyce automatyzacje mają kilka elementów, które warto rozróżnić:
- Trigger decyduje, kiedy reguła się uruchamia, na przykład o zachodzie słońca albo po otwarciu drzwi.
- Condition sprawdza dodatkowe warunki, czy ktoś jest w domu i czy to nie weekend.
- Action wykonuje właściwą czynność, czyli zapala światło, wysyła powiadomienie lub włącza scenę.
- Tryb pracy (single, restart, queued, parallel) określa, co się stanie, gdy reguła odpali się ponownie, zanim skończy poprzednie zadanie.
I tu zaczyna się problem. Większość początkujących wpisuje wszystko ręcznie w edytorze YAML. Działa. Do czasu. Gdy automatyzacji robi się kilkadziesiąt, brak nazewnictwa i komentarzy zamienia konfigurację w plątaninę. Moim zdaniem lepiej od razu nadać każdej regule czytelny identyfikator i trzymać je w osobnych plikach niż wrzucać wszystko do jednego automations.yaml, ponieważ łatwiej wtedy znaleźć błąd i uniknąć przypadkowego nadpisania przy aktualizacji.
Porównanie i wybór: kiedy scenka, kiedy skrypt, kiedy automatyzacja
Wybór między scenką, skryptem a automatyzacją sprowadza się do jednego pytania: czy coś ma się wydarzyć samo, czy na moje polecenie? Brzmi prosto. Tylko że wiele osób miesza te trzy mechanizmy i potem dziwi się, że nic nie działa tak, jak powinno.
Automatyzacja startuje bez udziału człowieka. Reaguje na stan encji, czas albo zdarzenie. Scenka to zapisany zestaw stanów, który przywracasz jednym kliknięciem lub wywołaniem. Skrypt wykonuje sekwencję kroków, którą uruchamiasz ręcznie albo z innego miejsca w systemie. Diabeł tkwi w szczegółach, bo te definicje nachodzą na siebie w praktyce.
| Mechanizm | Wyzwalacz | Typowe zastosowanie | Złożoność |
|---|---|---|---|
| Scenka | Ręczne wywołanie lub usługa | Szybkie przywrócenie nastroju świateł i rolet | Niska |
| Skrypt | Ręcznie, przycisk, inna automatyzacja | Sekwencja z warunkami, opóźnieniami i pętlami | Średnia |
| Automatyzacja | Stan encji, czas, zdarzenie | Reakcja na ruch, zmierzch, obecność w domu | Średnia do wysokiej |
| Skrypt + automatyzacja | Automatyzacja wywołuje skrypt | Powtarzalna logika uruchamiana w wielu miejscach | Wysoka |
Moim zdaniem skrypty wygrywają z automatyzacjami wszędzie tam, gdzie tę samą sekwencję chcesz odpalać z kilku miejsc, na przykład z panelu, przycisku i harmonogramu jednocześnie. Automatyzacja z wbudowaną logiką wymusza kopiowanie tych samych akcji, a przy zmianie jednego parametru trzeba poprawiać każdą kopię osobno. Skrypt trzyma logikę w jednym miejscu.
Typowy przykład: masz wieczorne wygaszanie świateł, które chcesz uruchamiać o stałej godzinie, po przycisku na ścianie i po wyjściu z domu. Trzy automatyzacje z identycznymi akcjami to proszenie się o bałagan. Jedna automatyzacja plus jeden skrypt załatwiają sprawę czysto.
Najczęściej zadawane pytania (FAQ)
Pytania o sceny, skrypty i automatyzacje wracają jak bumerang. Nic dziwnego, bo nazwy brzmią podobnie, a robią coś zupełnie innego. Poniżej zebrałem odpowiedzi na to, o co pytacie najczęściej.
Czy scena to to samo co skrypt? Nie. Scena to zapisany stan urządzeń, który przywołujesz jednym poleceniem. Skrypt to sekwencja kroków, która dzieje się po kolei. Automatyzacja reaguje na zdarzenie i sama uruchamia scenę albo skrypt więcej na ten temat znajdziesz w naszym przewodniku: "Automatyzacje w Home Assistant: od podstaw do zaawansowanych".
Poniższa tabela pokazuje różnice bez owijania w bawełnę:
| Element | Do czego służy | Kiedy się uruchamia | Przykład zastosowania |
|---|---|---|---|
| Scena | Ustawia wiele urządzeń w jeden stan | Na Twoje polecenie lub z automatyzacji | Tryb "film": przygaszone światło, rolety w dół |
| Skrypt | Wykonuje ciąg kroków w ustalonej kolejności | Ręcznie, z przycisku lub z automatyzacji | Sekwencja "dobranoc": światła, zamki, alarm |
| Automatyzacja | Łączy wyzwalacz, warunek i akcję | Sama, gdy zajdzie zdarzenie | Światło w korytarzu po wykryciu ruchu nocą |
Krótkie odpowiedzi na resztę wątpliwości
- Czy mogę używać scen, skryptów i automatyzacji razem? Tak i zwykle właśnie tak się to robi, bo automatyzacja bywa tylko wyzwalaczem, a skrypt wykonuje właściwą robotę.
- Czy skrypt może wywołać inną automatyzację? Może, ale częściej robi się odwrotnie, bo łatwiej wtedy kontrolować kolejność zdarzeń.
- Od czego zacząć naukę? Od scen. Są najprostsze i od razu widać efekt, a to pomaga złapać bakcyla.
- Czy automatyzacje spowalniają system? Pojedyncze reguły nie, ale setki hałaśliwych wyzwalaczy potrafią zamulić nawet mocny serwer.
- Czy da się przenieść wszystko z chmury na lokalny serwer? W większości przypadków tak, choć część sprzętu nadal wymaga chmury producenta.
Moim zdaniem scena działa lepiej niż skrypt tam, gdzie chodzi tylko o zmianę stanu kilku urządzeń, ponieważ jest lżejsza i czytelniejsza. Skrypt wygrywa, gdy potrzebna jest logika, opóźnienia albo warunki.
Reszta zależy od konkretnej instalacji. A co jeśli okaże się, że najprostsze rozwiązanie jest najlepsze? Zwykle tak bywa. Więcej o łączeniu tych trzech elementów znajdziesz w artykule o automatyzacjach, od podstaw do zaawansowanych.
Komentarze (0)
Dodaj komentarz