Node-RED – Voorbeeld – Modbus uitlezen en visualiseren

Op deze pagina vind je een voorbeeld hoe je een modbus (multi) sensor of ander apparaat uitleest en visualiseert met Node-RED.

Wat heb je nodig?


Stap 1

Voeg een Modbus Node toe en configureer:

  • De Unit-id
  • Functie om te gebruiken
  • Start adres van het register
  • Hoeveel registers je uit wilt lezen
  • Configureer de “server”, in dit geval een USB <> RS485 Stick

Server configuratie:

Hier configureer je de USB stick:

  • Type: Serial
  • Poort, LET OP: Standaard staat er /dev/ttyUSB, vergeet de 0 (of 1) niet toe te voegen (/dev/ttyUSB0)
  • Serial type: RTU
  • Baudrate
  • Unit-Id


Stap 2

Plaats een payload debug om te kijken of er data binnenkomt, indien alles goed gevuld, moeten er array’s aan data binnenkomen:


Stap 3

Om nu de array’s te distilleren in FLOAT’s heb ik een functie gebruikt die van de array payloads FLOATs maakt en deze op een uitgang zet:


Stap 4

Nu kan je achter elke uitgang de desbetreffende meter koppelen en configureren:


Op het dashboard vind je alle data van multisensor:

Project in Node-RED clipboard:


Voorbeeld van een pull-treintje

Onderstaand voorbeeld is een pull-treintje, dat eventueel handig kan zijn als je registers wilt uitlezen die ver uit elkaar staan (bijvoorbeeld 1-4 en 180-185), of verschillende functies gebruikt voor het uitlezen van het apparaat (1-4):

Het is zo opgebouwd dat de binnengekomen data van de eerste pull hoger moet zijn dan 0 alvorens de volgende pull getriggerd wordt:

  1. Zet een inject node neer en stel deze met een interval in op ca 3 seconden:

2. Plaats een “modbus getter” node en stel deze in voor het apparaat en welke register er uitgelezen moeten worden:

3. Achter de uitgang van de “modbus getter” node kan je een “modbus response” node en een node voor je dashboard hangen, maar plaats daarachter een switch node, die je instelt om te kijken of de waarde > 0 is vanuit de eerste pull, om zo door te gaan naar de volgende:

Let op: omdat je payload een array is, kan je in de switch node de (1e) waarde selecteren met payload[0] (2e waarde is payload[1] etc…)

Project in Node-RED clipboard: