Node-RED

‚ÄčNode-RED is now included by default as part of all ACAEngine deployments.

Access to Node-RED web interface

By default, the Node-RED web interface is exposed locally only on the machine that is running ACAEngine, at http://127.0.0.1:1880. If accessing the Node-RED web interface from a remote client, use methods such as SSH port forwarding to securely mirror the ACAEngine server's 127.0.0.1:1880 to your machine's 127.0.0.1:1880.

Installing nodes

Additional Node-RED nodes can be installed by running the below command on the machine running ACAEngine:

docker exec -it node-red npm install <package-name>

For example, to install the connector for Azure IOT Hub, run:

docker exec -it node-red npm install node-red-contrib-azure-iot-hub

Connecting ACAEngine to Node-RED

Node-RED Websocket output

ACAEngine connects to Node-RED via Node-RED's websockets modules (one for input and one for output). Drag an output websocket module into the Flow, double-click it and set the Type to Listen on and the Path to /ws/.

Node-RED Websocket output module

ACAEngine websocket input

  • On the Drivers page of ACAEngine backoffice, import the Node-RED Websocket driver by searching for it and clicking "Import".

  • Now in any System, add a module of that driver and set:

    • IP: node-red

    • Port: 1880

After creating the module, start it and then monitor the debug messages.

Messages coming out of the Node-RED websocket output should appear as console log output when debugging the ACAEngine "Node-RED Websocket" module. The status variable "message_received" will also update to show the last string recieved. Simple strings may be used as inputs for ACAEngine Triggers.

The "Node-RED Websocket" driver can be used as a template for creating new drivers that take actions upon receiving messages from Node-RED, or send websocket messages to a Node-RED Websocket Input module. One example of this is the Pressac desk sensor driver, which uses Node-RED to subscribe to real time updates from Azure IOT Hub.