We use Node-RED for connecting industrial machines via Modbus and OPC/UA to a MQTT broker. There are different connection parameters and data processing requirements (transformation, filtering,...) for each machine. Currently. when onboarding a new machine, we need to expand the Node-Red flow manually (adding nodes, parametrizing nodes,...).
Our idea is to generate a flows.json
outside of Node-RED and then deploy a new Node-RED, e.g. by a sepaerate instance in a Docker container.
This kind of flow generation by software has some benefits:
- the flow can be regression tested
- parametrizing nodes can be done externally
- flows can be generated from mapping schemes (e.g. OPC//UA, Modbus-Registers, JSON-Swagger, ...)
- a "Node-RED flow description language" could be formally verified
Here are some usage scenarios for such a software. Output is always a flow.json
:
- OPC/UA configuration, mapping rules and sending MQTTs
- collecting data from 50 sensor and delivering data to REST APIs
- receiving MQTT, mapping with predefined (>100) rules and sending MQTT
- translating a programming language subset to a
flows.json
- building a domain scpecific language for industrial IoT applications
Has anyone done some research in this field? Any comments on this?