Skip to Content
AppTemplateCustom Nodes

Custom Nodes

Custom Nodes erweitern Node-RED um eigene Funktionalität. Im AppTemplate wird gezeigt, wie ein Node über External Tasks mit der ProcessCube® Engine kommuniziert.

Was sind Custom Nodes?

Ein Custom Node besteht aus zwei Dateien:

  • JavaScript-Datei (.js) — Enthält die Logik des Nodes
  • HTML-Datei (.html) — Definiert die Editor-Oberfläche in Node-RED

Beispiel: Hello Node

Der Hello Node ist ein einfacher Node, der eine konfigurierbare Begrüßung zu einer Nachricht hinzufügt.

JavaScript-Datei (hello.js)

module.exports = function(RED) { function HelloNode(config) { RED.nodes.createNode(this, config); const node = this; node.on('input', function(msg) { // Begrüßungstext aus der Konfiguration oder vom Input const greeting = config.greeting || 'Hello'; msg.payload = `${greeting}, ${msg.payload}!`; node.send(msg); }); } RED.nodes.registerType("hello", HelloNode); }

HTML-Datei (hello.html)

Die HTML-Datei definiert drei Bereiche:

  1. Node-Registrierung — Kategorie, Farbe, Ein-/Ausgänge und Eigenschaften
  2. Edit-Dialog — Formularfelder für die Konfiguration
  3. Hilfetext — Dokumentation im Node-RED Editor
<script type="text/javascript"> RED.nodes.registerType('hello', { category: 'MyProject', color: '#f7a823', defaults: { name: { value: "" }, greeting: { value: "Hello", required: true } }, inputs: 1, outputs: 1, label: function() { return this.name || "hello"; } }); </script> <script type="text/html" data-template-name="hello"> <div class="form-row"> <label for="node-input-greeting">Begrüßung</label> <input type="text" id="node-input-greeting" placeholder="Hello"> </div> </script> <script type="text/html" data-help-name="hello"> <p>Fügt eine Begrüßung zur Nachricht hinzu.</p> </script>

Registrierung in package.json

Damit Node-RED den Node findet, muss er in der package.json registriert werden:

{ "node-red": { "nodes": { "hello": "nodes/sample_node/hello.js" } } }

Integration mit External Tasks

Custom Nodes können über External Tasks mit der ProcessCube® Engine kommunizieren. Dabei wird ein BPMN-Prozess in der Engine definiert, der einen External Task enthält. Der Custom Node in Node-RED abonniert diesen Task und führt die Logik aus.

Der zugehörige BPMN-Prozess wird im processes/-Verzeichnis abgelegt und beim Start automatisch in die Engine geladen.