1. Indeks
  2. Poradniki instalatora
  3. Integracja systemu Ampio z Node-RED

Integracja systemu Ampio z Node-RED

Integracja przez gotowe bloczki

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).

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.

Każdy z bloczków posiada swój własny poradnik w zakładce help.

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.

Testowanie działania kodu

W platformie Node-RED istnieje możliwość debugowania kodu i wyświetlania danych w polu z prawej strony interfejsu. Przykład na zrzucie:

  • pomarańczowy – nazwa Flow
  • czerwony – włączenie zakładki debug
  • niebieski – bloczek pozwalający na wyświetlanie informacji w debug
  • fioletowy – dane wyświetlone w opcji debug

Bloczek Ampio IN – pobieranie informacji z wejść

Parametry:

  1. Server address – adres serwera, jeżeli Node-RED jest bezpośrednio na serwerze, wybieramy localhost
  2. Target device – urządzenie w sieci CAN z unikalnym adresem MAC
  3. Value Type – służy do wyboru typu wartości, jaką otrzymujemy z urządzenia. Wybieramy z listy spośród typów:
    • Analog value-wartości analogowe
    • RGB color– kolor oświetlenia RGB
    • Digital input-wejście cyfrowe
    • Digital output– wyjście cyfrowe
    • Flag – flaga
    • Temperature-wartości temperatury
  4. I/O ID – numer wejścia lub wyjścia urządzenia
  5. Opcjonalnie możemy nadać nazwę blokowi w polu Name.

Pod prawidłowo skonfigurowanym blokiem Ampio IN pojawi się napis connected.

Bloczek Ampio OUT – sterowanie wyjściami

Parametry:

  1. Server address – adres serwera, jeżeli Node-RED jest bezpośrednio na serwerze, wybieramy localhost
  2. Target device – urządzenie w sieci CAN z unikalnym adresem MAC
  3. Cmd Type – służy do wyboru typu wartości, jaką mamy zamiar kontrolować. Wybieramy z listy spośród typów:
    • Standard – wyjścia binarne lub analogowe
    • RAW CAN broadcast – Typ RAW służy do obsługi surowych danych zawartych w osobnej dokumentacji sieci CAN.
    • Digital input-wejście cyfrowe
    • Digital output– wyjście cyfrowe
    • Flag – flaga
    • Temperature-wartości temperatury
  4. I/O ID – numer wejścia lub wyjścia urządzenia
  5. Opcjonalnie możemy nadać nazwę blokowi w polu Name.

Pod prawidłowo skonfigurowanym blokiem Ampio OUT pojawi się napis connected.

Bloczek Ampio LCD – wyświetlanie informacji na wyświetlaczach paneli M-DOT

Parametry:

  1. Server address – adres serwera, jeżeli Node-RED jest bezpośrednio na serwerze, wybieramy localhost
  2. Target device – urządzenie w sieci CAN z unikalnym adresem MAC
  3. LCD font size – wybór czcionki spośród Standard (10×16), Big (20×32) oraz Icon (40×40). Ostatni typ dostępny jest, jeżeli do panelu wgrane są ikony.
  4. LCD X position – początek tekstu, współrzędna X
  5. LCD Y position – początek tekstu, współrzędna Y
  6. LCD text color – kolor tekstu zapisany w systemie szesnastkowym
  7. LCD bg color – kolor tła zapisany w systemie szesnastkowym
  8. Name – opcjonalna nazwa

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.

Bloczek Ampio Event – przesyłanie zdarzeń z lub do systemu Ampio

Parametry:

  1. Server address – adres serwera, jeżeli Node-RED jest bezpośrednio na serwerze, wybieramy localhost
  2. Name – opcjonalna nazwa

Przykład użycia

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.

W bloczku funkcyjnym dodajemy opis używając funkcji języka Javascript.

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.

Bloczki łączymy i klikamy deploy.

W ten sposób otrzymujemy na środku wyświetlacza biały napis „ TEMP: *wartość temperatury*”na czarnym tle.

Integracja przez broker MQTT

Bloczki MQTT

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.

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.

MQTT topic

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:

KomendaTopicPayload
ustaw pojedyncze wyjścieampio/to/<mac>/o/<nr>/cmdon,off
0..255
RGBampio/to/<mac>/rgbw/<nr>/cmdoff
0..255,0..255,0..255 (on – jak ma działać)
roletaampio/to/<mac>/o/<nr>/cmd0 – STOP
1 – DOWN
2 – UP
flagiampio/to/<mac>/f/<nr>/cmdon,off
0..255
MRT- temperaturaampio/to/<mac>/rs/<nr>/cmd-99.9..155.0
MRT-temeratura dzień/nocampio/to/<mac>/rsdn/<nr>/cmdtemperatura_dzień, temperatora_noc (przykład: 19,20)
MRT- tryb pracyampio/to/<mac>/rm/<nr>/cmd0 – kalendarz; 1 – MANUAL;
2 – MANUAL2; 3 – wakacje; 4 – blokada;

Topic ampio/from przykłady:

TypTopicPayload stringPrzykładowy payload
temperaturyampio/from/<mac>/state/t/<nr>-99.9 do 1000.0 (nawet więcej)21.5
binary inputampio/from/<mac>/state/i/<nr>0 lub 11
binary outputampio/from/<mac>/state/o/<nr>0 lub 11
analog inputampio/from/<mac>/state/a/<nr>0 do 2550
binary input extendedampio/from/<mac>/state/bi/<nr>0 lub 10
binary output extendedampio/from/<mac>/state/bo/<nr>0 lub 10
rgbampio/from/<mac>/state/rgb/<nr>0..255,0..255,0..255128,220,13
flagiampio/from/<mac>/state/f/<nr>
flagi liniowe u8ampio/from/<mac>/state/afu8/<nr>0..255
MRT – temperaturaampio/from/<mac>/state/rs/<nr>25.5
wartości analogowe 8bit (DALI, LED)ampio/from/<mac>/state/au/<nr>0…255234
wartości analogowe 16bit (ze znakiem)ampio/from/<mac>/state/au16/<nr>0…65536
wartości analogowe 16 bit pomniejszone przez 10Kampio/from/<mac>/state/au16l/<nr>0…6553.623.4
wartości 32 bit np. MODBUSampio/from/<mac>/state/au32/<nr>0…4 294 967 2961234

MQTT test

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.

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.

Sprawdzanie stanów

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:

  • from oznacza kierunek, 
  • 3910 to adres MAC, 
  • state oznacza sprawdzenie aktualnego stanu, 
  • 1 oznacza numer wejścia (M-DOT pole 1)

Sterowanie wyjść

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:

Sterowanie M-DOT

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:

M-DOT-M18 oraz M-DOT-M6 (od pcb 8) – rozdzielczość 240×320

Komendy do wyświetlania (dla wyświetlaczy wieloekranowych):

  • 1E 01 – zmień numer ekranu (eg. 1E 01 05 – zmień ekran na nr 5)
  • 1E 02 xx yy yy…- ustaw znaki (mała linia), ekran nr xx na napis yy yy…., max 12 znaków
  • 1E 03 xx yy yy…- ustaw znaki (duża linia), ekran nr xx na napis yy yy…., max 9 znaków

Oraz funkcje niezależne od ekranów, nadpisujące zawsze aktualny ekran:

  • 29 03 – wyczyść ekran
  • 29 14 x1 x1 y1 y1 xs xs ys ys ff ff cc cc – rysuj ramkę na ekranie, (x1 x1 – początek w osi x, y1 y1 – początek w osi y, xs xs – rozmiar x, ys ys – rozmiar y, ff ff – szerokość ramki, cc cc – kolor ramki)
  • 29 0C x1 x1 x2 x2 y1 y1 y2 y2 ff ff cc cc – rysuj prostokąt na ekranie, (x1 x1 – początek w osi x, x2 x2 – koniec w osi x, y1 y1 – początek w osi y, y2 y2 – koniec w osi y, ff ff – szerokość ramki, cc cc – kolor ramki)
  • 29 18 xx xx yy yy cc cc bb bb zz zz zz zz zz – rysuj znaki czcionką 40×64 (xx xx – początek w osi x, yy yy – początek w osi y, cc cc – kolor znaków, bb bb – kolor tła, zz – max. 6 znaków, tylko znaki 0-9 oraz $ , – . / : + -)
  • 29 13 xx xx yy yy cc cc bb bb zz zz zz zz zz – rysuj znaki czcionką 26×48 (xx xx – początek w osi x, yy yy – początek w osi y, cc cc – kolor znaków, bb bb – kolor tła, zz – max. 9 znaków)
  • 29 12 xx xx yy yy cc cc bb bb zz zz zz zz zz – rysuj znaki czcionką 20×32 (xx xx – początek w osi x, yy yy – początek w osi y, cc cc – kolor znaków, bb bb – kolor tła, zz – max. 12 znaków)
  • 29 12 xx xx yy yy cc cc bb bb zz zz zz zz zz – rysuj znaki czcionką 10×16 (xx xx – początek w osi x, yy yy – początek w osi y, cc cc – kolor znaków, bb bb – kolor tła, zz – max. 24 znaki)

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.

Pozostałe M-DOT z mniejszym wyświetlaczem – rozdzielczość 128×160

  • 29 01 07 xx yy cc cc bb bb nn zz zz zz.. – ustaw znaki – mała linia, max 11 znaków (xx-pozycja x, yy-pozycja y, cc cc – kolor znaków, bb bb – kolor tła, nn – ilość znaków, zz zz … – znaki w formacie Windows-1250)
  • 29 01 09 xx yy cc cc bb bb nn zz zz zz.. – ustaw znaki – duża linia, max 6 znaków

(xx-pozycja x, yy-pozycja y, cc cc – kolor znaków, bb bb – kolor tła, nn – ilość znaków, zz zz … – znaki w formacie Windows-1250)

  • 29 01 03 – czyszczenie ekranu
  • 29 01 04 x1 y1 x2 y2 c1 c2 – rysowanie prostokąta o zadanym kolorze (x1 – początek w osi x, y1 – początek w osi y, x2 – koniec w osi x, y2 – koniec w osi y, c1 + c2 – kolor prostokąta 2 bajtowo)
  • 29 01 0A ic x1 y1 cc cc bb bb – rysuj ikonę (z pamięci M-DOT, wgrywane przez konfigurator), ic – numer ikony, x1 – start w osi x, y1 – start w osi y, cc cc – kolo znaku, bb bb – kolor tła

Multisensor M-SENS

  • Wilgotność: ampio/from/<mac>/state/au16l/1
  • Ciśnienie bezwzględne: ampio/from/<mac>/state/au16l/2
  • Głośność ampio/from/<mac>/state/au16l/3
  • Jasność ampio/from/<mac>/state/au16l/4
  • Jakość powietrza: ampio/from/<mac>/state/au16l/5
  • Ciśnienie względne: ampio/from/<mac>/state/au16l/6
  • Temperatura: ampio/from/<mac>/state/t/1
Numer dokumentuWersjaData opublikowania
PO-711.024 listopad 2021

Powiązane artykuły