Ampio udostępnia możliwość integracji poprzez platformę Node-RED oraz daje do dyspozycji bibliotekę bloczków ułatwiających różnego rodzaju integracje. Podstawy integrowania Ampio przy pomocy Node-RED są opisane w poradniku Integracja systemu Ampio z Node-RED.
Ten poradnik wyjaśnia kroki integrowania instalacji Ampio z inteligentnymi listwami zarządzającymi zasilaniem (ang. PDU) firmy NETIO. Na potrzeby tego dokumentu użyto modelu NETIO PowerPDU 8QS.
Pierwszym krokiem jest podłączenie urządzenia NETIO do źródła prądu oraz do kabla Ethernet w lokalnej sieci.
Następnie, należy znaleźć adres IP podłączonego urządzenia. W tym celu należy ściągnąć aplikację mobilną NETIO i podłączyć telefon komórkowy z zainstalowaną aplikacją do tej samej sieci, do której wpięta jest listwa. W menu aplikacji przejdź do opcji Devices i kliknij Find device. Aplikacja zwróci informacje o podłączonym urządzeniu NETIO wraz z jego adresem IP.
Kliknij, aby powiększyć i otworzyć w nowej zakładce.
Zapisz adres IP, żeby później móc wykorzystać go w programie Node-RED.
NETIO PowerPDU udostępnia szereg narzędzi pomiarowych dla każdego ze swoich wyjść. W celu zintegrowania tej funkcjonalności ze instalacją Ampio, trzeba uzyskać dostęp do konfiguracji JSON urządzenia NETIO. Można to osiągnąć poprzez wklejenie następującego URL w oknie przeglądarki: http://device-IP/netio.json. Powinniśmy zobaczyć informacje przedstawione poniżej.
Kliknij, aby powiększyć i otworzyć w nowej zakładce.
Więcej użytecznych informacji dotyczących struktury JSON w kontekście produktów NETIO można znaleźć na stronie internetowej producenta inteligentnych listw zarządzających zasilaniem.
Aby zintegrować NETIO PowerPDU z Ampio, trzeba przeprowadzić dwie osobne konfiguracje w programie Smart Home Manager, tj. jedną do pozyskiwania statusu urządzenia NETIO, a drugą dla urządzenia kontrolującego.
Najpierw otwórz Smart Home Manager przejdź do zakładki “Obiekty” w menu po lewej stronie ekranu. Następnie, na górnym pasku okienka kliknij “Dodaj”, aby dodać nowe obiekty. Liczba obiektów, które należy stworzyć powinna odpowiadać ilości wyjść listwy NETIO, które będą wykorzystywane oraz liczbie wartości, np. napięcie, czy prąd, które będziemy chcieli mierzyć. W tym momencie użyteczna może być zmiana Opisu stworzonych obiektów na np. Netio wyjście 1, Netio wyjście 2, Napięcie, itd.
Kliknij, aby powiększyć i otworzyć w nowej zakładce.
Następnie, otwórz ustawienia każdego ze stworzonych obiektów wyjść i ustaw ich typ obiektu na “Flaga”.
Kliknij, aby powiększyć i otworzyć w nowej zakładce.
W podobny sposób, dla obiektów stworzonych w celu wykonywania pomiarów wybierz typ “Czujnik”, tak jak pokazano to poniżej.
Kliknij, aby powiększyć i otworzyć w nowej zakładce.
W drugiej kolejności, kliknij przycisk “Zaawansowane” i w nowo otwartym okienku zlokalizuj “Typ” (domyślnie ustawiony na temperaturę) i zmień go na “Bit 32”.
Kliknij, aby powiększyć i otworzyć w nowej zakładce.
Nie zamykaj Smart Home Managera - już za chwilę będziemy się odnosić w Node-RED do numerów ustawionych flag.
Otwórz Node-RED i zaloguj się za pomocą swoich danych logowania.
Bloczki typu inject node pozwalają na wstrzykiwanie wiadomości do flow albo poprzez kliknięcie przycisku na bloczku, albo przez ustawienie interwałów czasowych pomiędzy kolejnymi wiadomościami. Do celów integracji z NETIO będziemy korzystali z drugiej opcji.
Zaczynamy od przeciągnięcia inject node z palety na pulpit Node-RED. Następnie, wchodzimy w edycję bloczka i ustawiamy 5-sekundowe interwały, które pozwolą nam na odczytywanie stanów wyjść oraz pozyskiwanie informacji na temat zużycia prądu co 5 sekund.
Kliknij, aby powiększyć i otworzyć w nowej zakładce.
Należy pamiętać, aby odpowiednio nazywać konfigurowane bloczki, żeby później móc się łatwiej między nimi poruszać.
Kolejnym bloczkiem, który będziemy dodawać jest HTTP request node. Otwórz jego właściwości i ustaw Method na GET oraz wklej http://device-IP/netio.json w pole URL. Następnie, ustaw Payload na Ignore. Użyj także podstawowej formy uwierzytelnienia (basic authentication). Tutaj należy podać nazwę użytkownika i hasło konta NETIO.
Kliknij, aby powiększyć i otworzyć w nowej zakładce.
W kolejnym kroku będziemy dodawać bloczek JSON node, który pozwala na konwersję pomiędzy JSON, a JavaScript. JSON node domyślnie rozpoznaje, co zostało mu zadane, i w którą stronę musi wykonać konwersję.
Kliknij, aby powiększyć i otworzyć w nowej zakładce.
Bloczek function node umożliwia wykonanie kodu JavaScript na podstawie wiadomości, które są przez ten bloczek wysyłane. Posłuży on nam do uzyskania informacji o statusach wyjść urządzenia NETIO. Zaczniemy od dodania bloczków function node na pulpit i odpowiedniego ich skonfigurowania, co zaprezentowano poniżej.
W zakładce On Message tab, dodaj:
msg.url = (
"http://localhost:8060/api/set/id/setValue/"
+ msg.payload.Outputs[0].State
);
return msg;
Kliknij, aby powiększyć i otworzyć w nowej zakładce.
Powyższy przykład demonstruje pozyskanie informacji o Wyjściu nr 1 listy NETIO. W ten sam sposób, wpisanie Outputs[1] w kodzie zwróci nam informację o Wyjściu nr 2, itd.
Ten bloczek powinien być dodany w tym momencie, jeżeli chcemy mieć możliwość odczytu takich wartości, jak napięcie, pobór prądu etc. przy pomocy urządzenia NETIO zintegrowanego z Ampio.
Kliknij, aby powiększyć i otworzyć w nowej zakładce.
Konfiguracja przebiega podobnie do kroków opisanych w poprzedniej sekcji, za wyjątkiem:
__http://localhost:8060/api/set/1403/setValue/{{{payload.GlobalMeasure.Voltage}}}__
Kliknij, aby powiększyć i otworzyć w nowej zakładce.
Powyższy przykład URL zwróci nam pomiar napięcia, ale można użyć w URL innych kluczowych zwrotów z konfiguracji NETIO JSON, aby uzyskać odczyty innych miar elektryczności, takich jak zużycie prądu, czy obciążenie, etc.
Kliknij, aby powiększyć i otworzyć w nowej zakładce.
Ostatnim etapem konfiguracji Node-RED, która pozwoli nam na zmianę stanów wyjść NETIO i ich kontrolowanie z poziomu aplikacji Ampio UNI, jest dodanie bloczków Ampio IN oraz function node.
Kliknij, aby powiększyć i otworzyć w nowej zakładce.
W bloczku Ampio IN należy wprowadzić numer flagi, która wcześniej została przypisana w programie Smart Home Manager.
Natomiast w bloczku function node należy wpisać następujący kod w zakładce OnMessage:
//msg.payload = "{ "Outputs": [{ "ID": 1, "Action": 4 }]}"
msg.payload = { Outputs: [{ ID: 1, Action: msg.payload }] };
return msg;
Wartość “ID” będzie zmieniana w każdym bloczku function node dla każdego wyjścia, przykładowo, Wyjście nr 1 otrzyma “ID: 1”, Wyjście 2 - “ID: 2, etc.
Pozostaje nam skonfigurowanie bloczka http request node w taki sam sposób, jak w poprzednich krokach z dodatkowym zaznaczeniem podstawowego uwierzytelnienia (basic authentication) i podaniem tam danych logowania NETIO.
Kliknij, aby powiększyć i otworzyć w nowej zakładce.
Proces konfiguracji jest już zakończony. Poniższy obrazek prezentuje pulpit Node-RED z kompletną konfiguracją listwy NETIO PowerPDU integrowanej z systemem Ampio.
Kliknij, aby powiększyć i otworzyć w nowej zakładce.
Ostatnim krokiem jest kliknięcie Deploy w aplikacji Node-RED, co zapisze konfigurację na module z rodziny M-SERV w danej instalacji.
Aby sfinalizować proces integracji i móc obserwować jego owoce w aplikacji Ampio UNI, należy wrócić do programu Smart Home Manager i stworzyć nową grupę “Netio” w zakładce Groupowanie po lewej stronie ekranu.
Następnie, należy wybrać wszystkie obiekty stworzone w kroku Dodawanie obiektów w Smart Home Manager do nowo stworzonej grupy Netio.
Po zapisaniu, można rozpocząć zarządzanie listwą NETIO z aplikacji Ampio UNI.