Node-RED — podstawy automatyzacji w Home Assistant

Wykorzystaj potencjał Home Assistant oraz Node-RED, aby stworzyć proste automatyzacje z użyciem odbiorników Supla.

Automatyzacje z użyciem Node-RED w Home Assistant - na przykładzie urządzeń Supla

Monitor energii elektrycznej MEW-01 będzie wykonywał pomiar pobieranej energii czynnej na fazie L2. Odbiornik ROW-01 będzie załączał i wyłączał lampkę kontrolną. Tak więc będziemy sprawdzać 2 stany:

a) Przekaźnik w ROW-01 będzie załączony w momencie, gdy MEW-01 wykryje powyżej 500W na fazie L2,
b) Przekaźnik w ROW-01 będzie wyłączony w momencie, gdy MEW-01 wykryje poniżej 500W na fazie L2.

Przykładowe encje w Home Assistant
Przykładowe encje w Home Assistant

2. Gdy już wiesz jakie są założenia algorytmu, to przejdziemy do uruchomienia Node-RED. Z lewego bocznego menu wybieramy odpowiednią ikonę i uruchamiamy nasz program. Pojawi się pusta tablica, w której będziemy tworzyć naszą zaawansowaną funkcję :-).

Podgląd Node-RED w Home Assistant
Podgląd Node-RED w Home Assistant

3. Poniżej zobacz jak wygląda gotowa automatyzacja. Każdy z widocznych tutaj elementów pełni swoją funkcję. Mamy obiekty sprawdzające oraz wykonawcze. Wszystkie widoczne tutaj elementy to węzły tzw. Nody. W dalszej części tego wpisu będę posługiwał się określeniem Nod.

Pierwsza automatyzacja Node-RED w Home Assistant

4. Naszym pierwszym nodem będzie events: state. Jest to Nod, który zostaje wywoływany każdorazowo po zmianie stanu. Będzie przedstawiał wartość mocy czynnej na fazie L2 i zmieniał się w przypadku zmiany wartości tej mocy.

Nod events state
Nod events state

5. Przeciągamy go na naszą tablicę z bocznego menu (biblioteki Nodów). Gdy mamy już go na planszy czas go skonfigurować. Klikamy na niego i wypełniamy w zasadzie tylko kilka istotnych pól:

  • name – to nazwa naszego noda noda (będzie łatwiej nam go zidentyfikować);
  • server – instalacja Home Assistant (przy świeżej instalacji będzie tylko 1 serwer do wyboru);
  • Entity ID – identyfikator encji, który odpowiada za wartość energii czynnej na fazie L2 z urządzenia MEW-01 (w zależności jak mamy nazwane urządzenie po stronie serwera Supla Cloud to encja może się nazywać różnie, w moim przypadku jest to: sensor.monitor_energii_elektrycznej_power_active_phase_1)

Zauważ, że w konfiguracji tego noda zaznaczyłem 2 opcje:

  • Current State Equals Previous State – Nod nie będzie wyzwalany, gdy ostatnia wartość jest równa poprzedniej – chyba jest to jasne;
  • Output On Connect – Nod jest wyzwalany każdorazowo po zapisie, uruchomieniu serwera, odświeżeniu tablicy w Node-RED;

To tyle na początek. Nie będę skupiać się na objaśnieniu innych opcji, gdyż nie jest to teraz potrzebne.

Konfiguracja nod events state
Konfiguracja nod events state

6. Poprawnie skonfigurowaliśmy nasz pierwszy Nod, który przedstawia wartość mocy czynnej na L2. Czas tą moc sprawdzić czy jej wartość jest w naszych założeniach. Użyjemy w tym celu funkcji logicznej. Najlepiej sprawdzi się w tym celu switch. Węzeł ten sprawdzi moc na L2 i wystawi informację na jednym ze swoich wyjść. Tradycyjnie odszukujemy w lewej części ekranu odpowiedni nod i przeciągamy go na naszą tablicę. Pamiętajmy, aby go połączyć z pierwszym węzłem.

Nod switch
Nod switch

7. Gdy mamy switch na ekranie to przechodzimy do jego konfiguracji. Ustalamy nazwę oraz tworzymy 2 warunki:

  • większe niż > 500W
  • mniejsze niż < 500W

Zauważ, że użyłem znaki mniejszości oraz większości. Jeśli chciałbym, aby wartość 500 była brana pod uwagę, to musiałbym użyć znaku równości np. >= 500W.

Switch sprawdzi wartość, jaką wystawia mu events: state i pokieruje stosowną informację na jedno z wyjść. W naszym wypadku będą to 2 wyjścia, gdyż mamy tylko 2 warunki. Informacja o tym, czy wartość jest większa czy też mniejsza niż 500W dotrze do kolejnego noda o nazwie call service.

Konfiguracja nod switch

8. Z naszej biblioteki odszukujemy kolejny Nod o nazwie call service. Ten węzeł będzie wywoływał konkretną akcję. Może to być załączenie, wyłączenie, przełączenie, wysyłanie informacji, powiadomienia i wiele innych. Dodajemy na naszą planszę dwa takie nody. Następnie należy je połączyć z naszym switch’em.

Nod call service
Nod call service

9. Czas na konfigurację obu nodów:

ROW-01 to nasza lampka kontrolna. W Home Assistant przedstawia się jako światło. Z pola Domain wybieramy light.

Następnie określamy akcję, która zostanie wykonana, czyli pole Service. Zgodnie z założeniami wybraliśmy turn_on oraz turn_off. Odpowiada to za załączenie i wyłączenie.

Teraz zaznaczamy, której encji ta akcja dotyczy. ROW-01 u mnie przedstawia się jako light.light_switch. Taką też encję wybieram.

10. Gdy wszystko poprawnie skonfigurowaliśmy i połączyliśmy, to możemy przejść do uruchomienia naszego programu. Naciskamy przycisk Deploy. W tym momencie nasza funkcja została zapisana i automatyzacja została uruchomiona.

Uruchomienie automatyzacji Node-RED
Uruchomienie automatyzacji Node-RED

11. Zauważmy, że akcja jest wykonywana. Jak widać, nasz nod o nazwie events: state przedstawia wartość mocy czynnej na fazie L2. Switch odpowiednio interpretuje tą wartość i uruchamia konkretny call service.

Ostatnie uruchomienie Nod
Ostatnie uruchomienie Nod

12. Wszystko działa! Od teraz możemy cieszyć się naszą prostą automatyką.

Podsumowanie

Oczywiście był to tylko prosty przykład automatyzacji, jaką można wykonać z użyciem Node-RED. Program pozwala na tworzenie bardzo zaawansowanych funkcji. Przykładowo sterowanie ogrzewaniem w domu, sterowanie roletami w zależności od położenia słońca nad horyzontem czy też produkcja instalacji fotowoltaicznej i wykorzystywanie nadwyżki do uruchomienia grzania np. bojlera elektrycznego.

Rozwiązań, które można stworzyć jest naprawdę wiele. Korzystając z Home Assistant i Node-RED lub innego tego typu systemu, nie jesteś ograniczony/a do jednego producenta. To oprogramowanie pozwoli Ci na zarządzanie wielu odbiorników różnych producentów w jednej aplikacji dostępnej na wielu platformach.

To tyle, co chciałem dziś przedstawić. Jeśli masz jakieś sugestie to zapraszam do przesłania wiadomości na maila. Zachęcam również do dzielenia się własnymi grafami, jakie udało się Wam stworzyć z użyciem oprogramowania Node-RED.


Pełna jawność. Jako pracownik firmy ZAMEL, opisuję w moim blogu produkty tej firmy. Chcę podkreślić, że jest to moja prywatna inicjatywa. Niektórzy mogą zobaczyć w tym wpisie promocję marki ZAMEL i mają do tego pełne prawo.