External flows.json generation

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:

  1. OPC/UA configuration, mapping rules and sending MQTTs
  2. collecting data from 50 sensor and delivering data to REST APIs
  3. receiving MQTT, mapping with predefined (>100) rules and sending MQTT
  4. translating a programming language subset to a flows.json
  5. building a domain scpecific language for industrial IoT applications

Has anyone done some research in this field? Any comments on this?