Hoe een knoppenpaneel creëren met Node-RED
Soms is het handig om een knoppenpaneel te creëren om schakelingen te maken middels HTTP requests. Bijvoorbeeld om IOT-devices te sturen, zoals verlichting, ethernet relais, alarmsystemen, camerasystemen.
Vroeger moest je kunnen programmeren, maar IBM heeft in 2013 Node-RED beschikbaar gemaakt om flow-based te kunnen programmeren. De onderliggende programmeertaal is JavaScript.
Hoe Node-RED installeren
Allereerst zorg je dat je systeem volledig is bijgewerkt. Open hiervoor de terminal (Ctrl+Alt+T) en voer de volgende opdrachten uit:
$ sudo apt update
$ sudo apt upgrade -y
$ sudo apt autoremove
Als dit gebeurt is, kun je Node.js, NPM en Node-RED installeren met de volgende opdrachten:
$ sudo apt install nodejs
$ sudo apt install npm
$ sudo npm install -g --unsafe-perm node-red node-red-admin
De volgende parameters zijn gebruikt om de volgende redenen:
-g | Dit betekent dat het pakket globaal wordt geïnstalleerd en beschikbaar zal zijn voor Node.js |
–unsafe-perm | Dit heft eventuele fouten tijdens de installatie op. In principe wordt het wisselen tussen gebruiker/groep-ID genegeerd wanneer een script wordt uitgevoerd en niet-rootgebruikers kunnen pakketten installeren. |
node-red-admin | Hiermee wordt de admin-module geïnstalleerd, waardoor er een aantal extra beheertools voor Node-RED beschikbaar zijn. |
Nu zou Node-RED geïnstalleerd moeten zijn en de daemon actief zijn.
Nu kun je de interface van Node-RED oproepen met je browser via http://localhost:1880/ of via het IP-adres + poort 1880 van de server waarop Node-RED is geïnstalleerd.

Knoppen toevoegen
Om knoppen toe te kunnen voegen, dient eerst het dashboard te worden geïnstalleerd in Node-RED. Dit doe je middels het Manage palette menu welke je via het hamburgermenu, rechtsbovenin kunt vinden.

Een nieuw menu opent zich en kies je voor Palette en de tab Install. Hierbij zoek je naar dashboard en klik je op Install voor de betreffende dashboard node en volgt de stappen die gevraagd worden.

Nadat je Node-RED hebt herstart, kun je in het linker panel, naar beneden scrollen tot je de Dashboard node hebt gevonden. Vervolgens drag-and-drop je het benodigde aantal buttons in het centrale flow-scherm.

Daarna scroll je omhoog en zoek je naar de network node en drag-and-drop je een http request node naar het flow-scherm.

Vervolgens verbind je de nodes met elkaar:

Configureren van de nodes
Eerst configureren we de button. Dubbelklik op de button en het configuratiemenu voor de button opent.

De 2 parameters die aangepast moeten worden zijn de Group en het Label. Alle overige parameters zijn voor nu optioneel of overbodig.
Nu dubbelklik je op de HTTP request om deze te configureren.

Als Method kiezen we in dit geval GET en bij de URL wordt de API call ingegeven die hoort bij het apparaat of applicatie waar je de HTTP request wilt toesturen. Deze URL kun je doorgaans vinden in de API-documentatie van het betreffende apparaat of applicatie.
We kiezen ook voor Use Authentication om niet steeds de gebruikers naam en wachtwoord te hoeven in te voeren als op de aangemaakte knop word geklikt. We kiezen voor digest authentication, zodat het wachtwoord niet onderschept kan worden tussen de Node-RED applicatie en het doelapparaat or -applicatie.
Optioneel kun je nog kiezen voor a parsed JSON object onder <– Return.
Resultaat
Als deze basale configuratie is afgrond, dan kun je het knoppenpaneel bereiken via http://localhost:1880/ui.
Onderstaand een voorbeeld van een Node-RED knoppenpaneel als toepassing in het Nx Witness VMS (Video Management Systeem).
Tot slot
Dit is slechts een eenvoudig voorbeeld van de mogelijkheden die Node-RED kan bieden, zodat mensen die niet kunnen programmeren, toch slimme toepassingen kunnen creëren, waarbij je eigen fantasie de enige beperking is.
Via de bijvoorbeeld het Node-RED forum of de Node-RED subreddit kun je met andere deelnemers jouw droomapplicatie bespreekbaar maken en realiseren.