Opis funkcji Node-RED: Node-RED to narzędzie do programowania przepływu danych, które umożliwia łatwe tworzenie interakcji między różnymi urządzeniami i serwisami. Możesz go wykorzystać do integracji z smart TV, zamkiem TEDEE, itp.
Ostrzeżenia dotyczące ryzyka: Node-RED jest narzędziem programistycznym, które wymaga odpowiedniej wiedzy technicznej. Użytkownik jest odpowiedzialny za zrozumienie logiki programu stworzonego w Node-RED.
Brak wsparcia technicznego dla logiki aplikacji: Ampio nie udziela wsparcia technicznego ani gwarancji co do logiki stworzonych przez użytkowników przepływów w Node-RED. Jest to narzędzie udostępniane na odpowiedzialność instalatora.
Odpowiedzialność za błędy i straty: Ampio nie ponosi odpowiedzialności za błędy w logice programu, ani za ewentualne straty wynikające z korzystania z Node-RED.
Zachęta do testowania: Zachęcamy do przeprowadzenia testów na niewielką skalę przed pełnym wdrożeniem projektu opartego na Node-RED. To pomoże zminimalizować potencjalne ryzyka.
Dostarczenie pomocnych źródeł wiedzy: Udostępniamy dokumentację Node-RED oraz inne materiały edukacyjne, które mogą pomóc w zrozumieniu i efektywnym korzystaniu z narzędzia.
Prosimy o przeczytanie instrukcji ze zrozumieniem przed rozpoczęciem korzystania z Node-RED. Jeśli masz jakiekolwiek pytania, skonsultuj się z działem wsparcia technicznego.
Aby skorzystać z możliwości integracji systemu Ampio oraz platformy Node-RED należy znać adres IP serwera oraz hasło użytkownika admin i uruchomić interfejs przez przeglądarkę.
Na module M-SERV znajdziemy interfejs platformy Node-RED na porcie 1880, wpisując w przeglądarkę IP:1880 (np. 192.168.1.2:1880).
Aby uruchomić Node-RED przez chmurę, generujemy numer seryjny i hasło z poziomu aplikacji Ampio UNI. Klikamy na logo na dole ekranu, wybieramy opcję Wsparcie zdalne, i klikamy START.
Kliknij, aby powiększyć i otworzyć w nowej zakładce.
Następnie znajdujemy w przeglądarce internetowej dowolną stronę z MD5 Hash Generator i wpisujemy wygenerowany w aplikacji numer seryjny i hasło jednym ciągiem znaków.
Kliknij, aby powiększyć i otworzyć w nowej zakładce.
Kopiujemy wygenerowany MD5 Hash.
Aby dostać się do Node-RED zdalnie musimy znać następujący link:
https://node-[wygenerowany MD5 Hash].ampio.pl
W naszym przypadku:
https://node-3d50f1fc210584ff16a569009f0ee989.ampio.pl
Taki adres wklejamy w naszą przeglądarkę:
Kliknij, aby powiększyć i otworzyć w nowej zakładce.
Wybór bloczków Node-RED znajduje się z lewej strony interfejsu, mamy tam między innymi 4 predefiniowane bloczki Ampio, które ułatwią nam tworzenie zależności.
Kliknij, aby powiększyć i otworzyć w nowej zakładce.
Każdy z bloczków posiada swój własny poradnik w zakładce help.
Kliknij, aby powiększyć i otworzyć w nowej zakładce.
Aby upewnić się czy biblioteka node-red-contrib-ampio
jest aktualna należy wejść w menu → Manage palette i sprawdzić czy jest możliwy update. Jeżeli aktualizacja zostanie wykonana, należy zresetować serwer.
Kliknij, aby powiększyć i otworzyć w nowej zakładce.
Przy dodawaniu pierwszego bloczka z biblioteki Ampio warto zrobić Deploy i sprawdzić czy bloczek otrzymał status connected. Następnie otwieramy menu bloczka, wybieramy ikonę lupy i sprawdzamy czy w ciągu 15 sekund pojawi się lista naszych urządzeń.
Kliknij, aby powiększyć i otworzyć w nowej zakładce.
Jeżeli bloczek nie ma statusu connected może być konieczne skonfigurowanie go. Wybieramy edycję obok pola Server (ikona ołówka). W zakładce Connection w polu Server wpisujemy localhost, port zostawiamy 1883, natomiast w zakładce Credentials podajemy dane do logowania takie jak do interfejsu www serwera Ampio.
Kliknij, aby powiększyć i otworzyć w nowej zakładce.
Następnie wciskamy Update, Done oraz robimy Deploy.
W platformie Node-RED istnieje możliwość debugowania kodu i wyświetlania danych w polu z prawej strony interfejsu. Przykład na zrzucie:
Kliknij, aby powiększyć i otworzyć w nowej zakładce.
Kliknij, aby powiększyć i otworzyć w nowej zakładce.
Parametry:
Pod prawidłowo skonfigurowanym blokiem Ampio IN pojawi się napis connected.
Kliknij, aby powiększyć i otworzyć w nowej zakładce.
Parametry:
Pod prawidłowo skonfigurowanym blokiem Ampio OUT pojawi się napis connected.
Kliknij, aby powiększyć i otworzyć w nowej zakładce.
Parametry:
Punktem początkowym jest lewy górny róg ekranu. Jego współrzędne to LCD X=00 i LCD Y=00. Wraz ze zwiększaniem wartości LCD X, tekst będzie coraz bliżej prawej krawędzi. Zwiększenie wartości LCD Y skutkuje obniżeniem tekstu, schemat poniżej.
Kliknij, aby powiększyć i otworzyć w nowej zakładce.
Kliknij, aby powiększyć i otworzyć w nowej zakładce.
Parametry:
Pobranie temperatury z modułu Ampio i wyświetlenie go wraz z opisem na wyświetlaczu panelu M-DOT.
W bloczku Ampio IN ustawiamy z jakiego modułu pobieramy temperaturę, typ danych oraz numer czujnika.
Kliknij, aby powiększyć i otworzyć w nowej zakładce.
W bloczku funkcyjnym dodajemy opis używając funkcji języka Javascript.
Kliknij, aby powiększyć i otworzyć w nowej zakładce.
W bloczku Ampio LCD wybieramy moduł M-DOT ,ustawiamy w którym miejscu ma się pojawić napis, rozmiar i kolor czcionki oraz kolor tła.
Kliknij, aby powiększyć i otworzyć w nowej zakładce.
Bloczki łączymy i klikamy deploy.
Kliknij, aby powiększyć i otworzyć w nowej zakładce.
W ten sposób otrzymujemy na środku wyświetlacza biały napis „ TEMP: wartość temperatury”na czarnym tle.
Istnieje możliwość integracj platformy Node-RED z systemem Ampio bez użycia gotowych bloczków. W tym celu należy użyć brokera MQTT. W ten sposób można śledzić więcej wydarzeń w sieci CAN oraz kontrolować bardziej zaawansowane funkcje.
W tym celu należy użyć przede wszystkim bloczków mqtt in oraz mqtt out.
Kliknij, aby powiększyć i otworzyć w nowej zakładce.
Jeżeli używamy Node-RED zainstalowanego na module M-SERV, w ustawieniach serwera wpisujemy localhost. W innym wypadku parametry logowania są identyczne jak do aplikacji Smart Home Manager a serwer podajemy za pomocą adresu IP. Po dokonaniu zmian należy nacisnąć Add, Done a następnie Deploy.
Kliknij, aby powiększyć i otworzyć w nowej zakładce.
Komunikacja z brokerem MQTT jest przede wszystkim oparta na dwóch kierunkach (from i to). Topic zaczynający się od ampio/from umożliwia sprawdzenie stanów urządzeń. Topic zaczynający się od ampio/to służy do sterowania urządzeniami.
Przykłady z użyciem ampio/to:
ampio/to/<mac>/cmd
– wykonaj komendę
ampio/to/<mac>/raw
– surowa ramka danych
ampio/to/can/dev/list
– lista urządzeń w sieci CAN
ampio/to/event
– wyślij zdarzenie
Lista komend:
Komenda | Topic | Payload |
---|---|---|
ustaw pojedyncze wyjście | ampio/to/<mac>/o/<nr>/cmd |
on,off; 0..255 |
RGB | ampio/to/<mac>/rgb/<nr>/cmd |
off; 0..255,0..255,0..255 (on – jak ma działać) |
RGBW | ampio/to/<mac>/rgbw/<nr>/cmd |
off; 0..255,0..255,0..255,0..255 (on – jak ma działać) |
roleta | ampio/to/<mac>/o/<nr>/cmd |
0 – STOP; 1 – DOWN; 2 – UP |
flagi | ampio/to/<mac>/f/<nr>/cmd |
on,off; 0..255 |
MRT- temperatura | ampio/to/<mac>/rs/<nr>/cmd |
-99.9..155.0 |
MRT-temeratura dzień/noc | ampio/to/<mac>/rsdn/<nr>/cmd |
temperatura_dzień, temperatura_noc (przykład: 19,20) |
MRT- tryb pracy | ampio/to/<mac>/rm/<nr>/cmd |
0 – kalendarz; 1 – MANUAL; 2 – MANUAL2; 3 – wakacje; 4 – blokada |
Topic ampio/from
przykłady:
Typ | Topic | Payload string | Przykładowy payload |
---|---|---|---|
temperatury | ampio/from/<mac>/state/t/<nr> |
-99.9 do 1000.0 (nawet więcej) | 21.5 |
binary input | ampio/from/<mac>/state/i/<nr> |
0 lub 1 | 1 |
binary output | ampio/from/<mac>/state/o/<nr> |
0 lub 1 | 1 |
analog input | ampio/from/<mac>/state/a/<nr> |
0 do 255 | 0 |
binary input extended | ampio/from/<mac>/state/bi/<nr> |
0 lub 1 | 0 |
binary output extended | ampio/from/<mac>/state/bo/<nr> |
0 lub 1 | 0 |
RGBW | ampio/from/<mac>/state/rgbw/<nr> |
0..255,0..255,0..255,0..255 | 128,220,13,50 |
RGB | ampio/from/<mac>/state/rgb/<nr> |
0..255,0..255,0..255 | 128,220,13 |
flagi | ampio/from/<mac>/state/f/<nr> |
||
flagi liniowe 8 bit | ampio/from/<mac>/state/afu8/<nr> |
0..255 | |
flagi liniowe 16 bit | ampio/from/<mac>/state/afi16/<nr> |
-32768..32767 | |
MRT – temperatura | ampio/from/<mac>/state/rs/<nr> |
25.5 | |
wartości analogowe 8bit (DALI, LED) | ampio/from/<mac>/state/au/<nr> |
0…255 | 234 |
wartości analogowe 16bit (ze znakiem) | ampio/from/<mac>/state/au16/<nr> |
0…65536 | |
wartości analogowe 16 bit pomniejszone przez 10K | ampio/from/<mac>/state/au16l/<nr> |
0…6553.6 | 23.4 |
wartości 32 bit np. MODBUS | ampio/from/<mac>/state/au32/<nr> |
0…4 294 967 296 | 1234 |
Jeżeli nie jest napisane jakim typem danych należy przesłać wartości, informacje przesyłane są typem string.
Jeżeli chcemy sprawdzić wszystkie dane jakie są dostępne w naszym systemie, należy użyć bloczka mqtt in i ustawić topic ampio/#
podłączając debug. Następnie naciskamy Done oraz Deploy. Dane powinny być widoczne w oknie debug.
Kliknij, aby powiększyć i otworzyć w nowej zakładce.
Jeżeli użytkownik chce sprawdzić wszystkie dane z jednego modułu, wystarczy ustawić topic na ampio/from/MAC/#
(np. ampio/from/ABCD/#
).
MAC adres zawsze podajemy bez zer wiodących.
Do sterowania modułów, zawsze używamy małego (lokalnego) MAC adresu.
Jeżeli użytkownik chce sprawdzić stan pola w module M-DOT, ustawiamy topic jako: ampio/from/3910/state/i/1
gdzie:
Aby włączyć pierwsze wyjście w urządzenie o MAC adresie ABCD, ustawiamy topic jako: ampio/to/ABCD/o/1/cmd
a payload jako: on.
Obie opcje na poniższym rysunku dają ten sam efekt:
Kliknij, aby powiększyć i otworzyć w nowej zakładce.
Poza sterowaniem wyjściami poprzez komendy, istnieje możliwość tworzenia własnych tekstów na wyświetlaczu M-DOT przy użyciu komend API. Aby z nich skorzystać należy wybrać topic RAW
. Konieczne może być zaktualizowanie oprogramowania w module M-DOT.
Sterowanie poprzez API dzielimy w związku z różnymi wielkościami wyświetlaczy LCD:
Komendy do wyświetlania (dla wyświetlaczy wieloekranowych):
Powyższe funkcje wypisujące znaki, działają tylko na ekranach typu Cztery ikony i treść. Aby działały prawidłowo, pola Aktor w ustawieniach danego ekranu nie mogą być puste.
Oraz funkcje niezależne od ekranów, nadpisujące zawsze aktualny ekran:
Na przykład wysłanie: msg.topic = ampio/to/ABAB/raw msg.payload = „1E03003031303130313031”;
zmienia duży wiersz na 1 i 0 (zgodnie z kodem ASCII) na M-DOT o MAC adresie ABAB.
Wysłanie msg.payload = “2918000000003344AABB30313233” wypisze 0123 na ekranie w określonych kolorach.
Uwaga na kolejność bajtów – starszy/młodszy. Kolor kodowany jest w standardzie RGB565, przy czym przy kodowaniu kolorów z pomocą zewnętrznych generatorów, może być konieczna zmiana kolejności bajtów.
Wysłanie 291251000001… zacznie pisać od pozycji 81 w x i 256 w y. Do przeliczania warto używać kalkulatora Windows w trybie programisty (hex 51 daje dziesiętnie 81, hex 100 daje dziesiętnie 256).
Wysłanie 290C0000EF006A00D300000000 spowoduje namalowanie czarnego prostokąta na całą szerokość ekranu między 1/3 a 2/3 wysokości (jest to drugi wiersz dla opcji 3 wiersze treści).
Kliknij, aby powiększyć i otworzyć w nowej zakładce.
Kolory 2 bajtowe są zapisywane w formacie RGB565.
Kolejność danych w multisensorze M-SENS:
ampio/from/<mac>/state/au16l/1
ampio/from/<mac>/state/au16l/2
ampio/from/<mac>/state/au16l/3
ampio/from/<mac>/state/au16l/4
ampio/from/<mac>/state/au16l/5
ampio/from/<mac>/state/au16l/6
ampio/from/<mac>/state/t/1
Część funkcji sterujących z poziomu Node-RED udostępiona jest za pomocą funkcji RAW. Topic do sterowania przedstawia się następująco: ampio/to/mac_adress/raw.
Poniżej lista przykładowych funkcji, którymi można sterować za pomocą topicu RAW:
Opis payload:
Przykład: włącza flagę numer 1 w urządzeniu o MAC=30EE, na 2 sek
topic: ampio/to/30EE/raw payload: 010001000000FFC80000
Opis payload:
Przykład: ustaw zadany kolor ustawić: mac=33CD, kolor R=255, G=255, B=0, W=0;
topic: ampio/to/33CD/raw payload: 0200FFFF0000
LUB (np. dla M-SERV-s)
Opis payload:
Przykład: ustaw zadany kolor ustawić: mac=1, kolor R=255, G=255, B=0, W=0;
topic: ampio/to/1/raw payload: 33DEFFFF0000
Opis payload:
Przykład: Ustaw flagę 0 na wartość 128.
topic: ampio/to/1907/raw payload: 7AF98000 (string)
Opis payload:
Przykład: Ustaw flagę 0 na wartość 4660.
topic: ampio/to/1907/raw payload: 79F2342100 (string)
Opis payload:
Przykład: Otwórz roletę pierwszą.
topic: ampio/to/1907/raw payload: 31F90200 (string)
Opis payload:
Przykład: Roleta numer 3 na 0 procent.
topic: ampio/to/1907/raw payload: 31E00200 (string)
Funkcja działa od wersji brokera MQTT 4.25.1.
Opis payload:
Przykład: Wyślij w magistralę temperaturę 22 stopnie jako adres 11001055.
topic: ampio/to/broadcast/55/t payload: 22 (number)
Należy pamiętać że nie wszystkie moduły wspierają wspomniane funkcjonalności. Zalecamy najpierw sprawdzić w konfiguratorze Ampio Designer, czy moduł wspiera np. obsługę flag 16-bitowych.