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

Podstawy automatyzacji Node-RED w Home Assistant

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

Słowem wstępu

Automatyzacje z użyciem oprogramowania Home Assistant są naprawdę bardzo proste. Możemy wykonać je bezpośrednio w samym systemie lub z użyciem zewnętrznego oprogramowania np. Node-RED. W tym artykule skupię się na prostej automatyce właśnie za pomocą takiego programu. Na przykładzie urządzeń Supla przedstawię jak uruchomić odbiornik ROW-01 gdy monitor energii MEW-01 wykryje pobór energii czynnej powyżej 500W.

Zastanawiasz się czym jest Node-RED? Node-RED to oprogramowanie, które zostało opracowane w 2013 przez IBM, obecnie jest projektem typu Open Source i rozwijany przez dużą społeczność. Program pozwala tworzyć zaawansowane algorytmy różnych aplikacji/automatyzacji przy wykorzystaniu połączonych ze sobą grafów. Często jest wykorzystywany w projektach związanych z Internetem rzeczy, smart home i nie tylko. Znajduje również bardziej zaawansowane zastosowania, nawet komercyjnie. Node-RED jest dość prosty w obsłudze dla osób, które nie są biegłe w programowaniu. Jeśli poszukiwałeś rozwiązania, które sprawi, że Twój dom może być smart to myślę, dobrze trafiłeś. Przejdźmy do jego instalacji.

Uwaga! Ten wpis przedstawia podstawy Node-RED i bardzo prosty przykład automatyki możliwej do zrealizowania. Z dużym prawdopodobieństwem nie będzie on miał praktycznego zastosowania w domu.

Instalacja Node-RED

1. Na samym początku sprawdźmy czy mamy poprawnie zainstalowany i skonfigurowany Home Assistant.

Jeśli jeszcze nie wiesz, czym jest ten system to zachęcam Cię do zapoznania się z tym artykułem: Konfiguracja Supla dla Home Assistant przez MQTT.

Zakładam, że już masz zainstalowany u siebie HA i jesteś gotowy/a do wykonania pierwszej Twojej automatyzacji. W tym celu wykorzystamy pakiet Node-RED dostępny w Home Assistant. Przechodzimy do zakładki Supervisor, a następnie Sklepu z dodatkami.

Sklep z dodatkami Node-RED
Sklep z dodatkami Node-RED

2. Wyszukujemy na liście program Node-RED i przechodzimy do jego instalacji.

Instalacja Node-RED w Home Assistant
Instalacja Node-RED w Home Assistant

3. Instalacja powinna trwać do kilkudziesięciu sekund. Po poprawnym zainstalowaniu zobaczymy na ekranie stosowną informację. Czas przejść do konfiguracji.

Konfiguracja Node-RED w Home Assistant
Konfiguracja Node-RED w Home Assistant

4. W kolejnym kroku będziemy musieli uzupełnić plik konfiguracyjny. Bez tego dalej ani rusz, ponieważ Node-RED się nie uruchomi nam poprawnie. Uzupełniamy kilka podstawowych informacji (pogrubiłem te wymagane, reszty nie będę omawiał):

credential_secret: TrudneHaslo123 (należy podać przykładowe hasło)
theme: default
http_node:
username: ''
password: ''
http_static:
username: ''
password: ''
ssl: true (jeśli nie korzystamy z SSL, to wpisujemy false)
certfile: fullchain.pem
keyfile: privkey.pem
require_ssl: true (jeśli nie korzystamy z SSL, to wpisujemy false)
system_packages: []
npm_packages: []
init_commands: []

Plik został poprawnie uzupełniony? Możemy go zapisać. W tym celu wybieramy przycisk, ZAPISZ.

Ustalenie hasła dla Node-RED w Home Assistant
Ustalenie hasła dla Node-RED w Home Assistant

5. Czas na pierwsze uruchomienie Node-RED. W oknie tego dodatku zachęcam do stworzenia skrótu do samej aplikacji. Wystarczy wybrać opcję Pokaż na pasku bocznym, dzięki czemu będziemy mieli łatwy i szybki dostęp do programu z poziomu Home Assistant.

Uruchomienie Node-RED
Uruchomienie Node-RED

[wpdiscuz-feedback id=”acpd5gxqa3″ question=”Co o tym myślisz?” opened=”0″]Dotarłeś do tego punktu? Co o tym sądzisz. Czy instalacja sprawiła Ci trudność?[/wpdiscuz-feedback]

Pierwsza automatyzacja w Node-RED

1. Poniżej przedstawiam założenia naszej funkcji.

ZAŁOŻENIA

Prosta automatyzacja Supla z Node-RED w Home Assistant
Prosta automatyzacja Supla z Node-RED w Home Assistant

Nasza automatyzacja będzie wykorzystywała dwa urządzenia. Monitor energii elektrycznej MEW-01 jako element pomiarowy oraz odbiornik dopuszkowy ROW-01 jako element wykonawczy. Oczywiście nic nie stoi na przeszkodzie, aby wykorzystać inne urządzenia, każdego producenta systemu Smart Home, który jest otwarty na integracje.

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 komentowania. Zachęcam również do dzielenia się własnymi grafami, jakie udało się Wam stworzyć z użyciem oprogramowania Node-RED.


Przemysław Wilde

Cześć! Cieszę się, że zainteresowałem Cię wpisami na moim blogu. Praca nad tymi artykułami wymaga ode mnie wielu godzin pracy. Jeśli masz ochotę to docenić, możesz zawsze postawić mi kawę. Dziękuję za wsparcię! Przemek

Postaw mi kawę na buycoffee.to lub PayPal

Wspierającym dziękuję z osobna.