Zum Hauptinhalt springen

Rulechain Grundlagen

Rulechain Grundlagen

Der Bereich Rulechains ist das Herzstück der regelbasierten Datenverarbeitung in optiCLOUD. Auch wenn viele Funktionen der Plattform über Oberflächen wie Devices, Dashboards oder Automation konfiguriert werden, findet die eigentliche Reaktions- und Verarbeitungslogik häufig in der Rule Engine statt.

Deshalb sollten Änderungen an Rulechains immer mit Bedacht vorgenommen werden. Fehlerhafte Regeln oder unklare Verbindungen können direkte Auswirkungen auf Datenverarbeitung, Alarme, Benachrichtigungen oder Integrationen haben.

Übersicht

In der Übersicht des Rulechain-Bereichs werden die vorhandenen Rulechains als Tabelle angezeigt.

Übersicht des Rulechain-Bereichs

Dabei gelten einige Grundprinzipien:

  • Die Root Rule Chain ist die zentrale aktive Einstiegskette.
  • Sie ist in der Regel deutlich hervorgehoben.
  • Andere Rulechains sind zunächst nur Vorlagen oder Teilketten.
  • Sie werden erst aktiv, wenn sie als Root Rule Chain gesetzt oder in eine aktive Rule Chain eingebettet werden.

Über die Aktionsleiste können Rulechains:

  • erstellt
  • importiert
  • exportiert
  • gelöscht

werden.

Grundprinzip der Rule Engine

Die Rule Engine ist der zentrale Mechanismus zur Verarbeitung von Ereignissen und Daten in optiCLOUD. Sie verarbeitet unter anderem:

  • Telemetriedaten
  • Attribute
  • RPC-Anfragen
  • Geräte-Lebenszyklusereignisse
  • REST-basierte Ereignisse
  • Dateien
  • Logs

Die Rule Engine basiert auf drei Hauptbausteinen:

  • Nachricht als eingehendes Ereignis oder Datenobjekt
  • Regelknoten als Verarbeitungsschritt
  • Regelkette als Verbindung mehrerer Knoten zu einem Workflow

Nachrichten

Eine Rule-Engine-Nachricht ist eine serialisierbare, unveränderliche Datenstruktur, die ein Ereignis im System beschreibt.

Beispiele sind:

  • eingehende Telemetrie eines Geräts
  • Attributaktualisierung
  • RPC-Aufruf
  • Entitätsereignis wie erstellt, aktualisiert oder gelöscht
  • Statusereignisse wie verbunden, getrennt, aktiv oder inaktiv

Eine Nachricht enthält:

  • Nachrichten-ID
  • Absender oder Ursprung der Nachricht
  • Nachrichtentyp
  • Nutzdaten als JSON-Body
  • Metadaten als zusätzliche Schlüssel-Wert-Paare

Regelknoten

Ein Regelknoten verarbeitet jeweils eine eingehende Nachricht und erzeugt daraus eine oder mehrere ausgehende Nachrichten oder Aktionen.

Je nach Knotentyp kann ein Knoten:

  • Nachrichten filtern
  • Daten transformieren
  • Daten anreichern
  • Alarme erzeugen oder löschen
  • externe Systeme aufrufen
  • Nachrichten an weitere Knoten weiterleiten

Damit ist jeder Knoten eine klar abgegrenzte logische Einheit innerhalb der Rulechain.

Verbindungen und Beziehungen

Regelknoten werden über Verbindungen miteinander verknüpft. Jede Verbindung besitzt einen Beziehungstyp, der bestimmt, unter welcher Bedingung eine Nachricht an den nächsten Knoten weitergegeben wird.

Typische Beziehungstypen sind:

  • Success
  • Failure
  • True
  • False

Je nach Knotentyp können auch andere Bezeichnungen verwendet werden, zum Beispiel:

  • Post Telemetry
  • Attributes Updated
  • Entity Created

Dadurch lässt sich die fachliche Bedeutung eines Datenflusses direkt in der Rulechain darstellen.

Hauptmerkmale von Rulechains

Rulechains bieten in optiCLOUD mehrere zentrale Eigenschaften:

  • Stream-Verarbeitung für unmittelbar eingehende Daten und Ereignisse
  • Workflow-Struktur durch verbundene Regelknoten
  • Flexibilität durch integrierte Knoten und benutzerdefinierte Skripte
  • Integrationsfähigkeit über HTTP, MQTT, Kafka oder andere Schnittstellen
  • Reaktivität für Alarme, Benachrichtigungen und Folgeaktionen

Dadurch lassen sich sowohl einfache Filterregeln als auch komplexe Automatisierungsabläufe modellieren.

Typische Anwendungsfälle

Rulechains werden für Aufgaben eingesetzt wie z.B.:

  • Validierung und Transformation eingehender Daten
  • Alarmmanagement und Benachrichtigungen bei z.B. Schwellwertüber-/unterschreitungen
  • Überwachung des Geräte-Lebenszyklus
  • Integration externer Systeme oder Übergabe an externe Datenpipelines oder Plattformen
  • Fernsteuerung über RPC

Arbeitsweise im Editor

Wird eine Rulechain geöffnet, erscheint ein Low-Code-Editor auf Basis von Knoten und Verbindungen. Der Aufbau erinnert an Werkzeuge wie Node-RED oder n8n.

Innerhalb dieses Editors wird festgelegt:

  • welche Nachrichten in die Kette gelangen
  • welche Bedingungen geprüft werden
  • welche Aktionen ausgelöst werden
  • wie Erfolgs- oder Fehlerpfade weiterlaufen

Basis RuleChain

Die Basis RuleChain oder auch Root RuleChain bildet die Basis der Datenverarbeitung und ist standardmäßig bereits eingerichtet. Sie sieht wie folgt aus:

Jede eingehende Nachricht von einem Gerät oder gelangt über den Input-Knoten ins System und wird sofort an einen Nachrichten-Typ-Switch weitergeleitet, der anhand des Nachrichtentyps bestimmt, wie die Nachricht weiterverarbeitet werden soll.

Von dort aus verzweigt sich die Verarbeitung in mehrere spezialisierte Pfade:

Kernverarbeitung von Nachrichten

Nachrichten TypWeiterleitungEmpfangender KnotenErklärung
Post Attributean Client-Attribute speichernClient Attribute speichernNachrichten dieses Typs werden verarbeitet, um Geräteattribute dauerhaft in der Datenbank zu speichern.
Post Telemetriean Zeitreihe speichernZeitreihe speichernTelemetriedaten wie Sensorwerte werden als Zeitreihen in der Datenbank gespeichert.
RPC-Anfrage vom Gerätan Log RPC weitergeleitetLog RPC vom GerätDient zur Überwachung oder Fehlerbehebung von eingehenden RPC-Aufrufen vom Gerät.
RPC-Anfrage an das Gerätan RPC Call RequestRPC Call AnfrageLöst einen Remote Procedure Call in Richtung Gerät aus.
Alarme sendenan Alarme speichernAlarme speichernAlarmzustände werden in der Datenbank gespeichert.
Sonstigesan Sonstiges protokollierenLog AndereNicht unterstützte oder unbekannte Nachrichtentypen werden zur Nachverfolgung protokolliert.
Blob-Speicher-Anfragean Blob-Speicher verarbeitenBlob-Speicher-VerarbeitungStartet die Verarbeitung von dateibezogenen Uploads im DateiSpeicher.

Beispiel

Für erste praktische Schritte bietet sich ein einfaches, überschaubares Beispiel an. Ein solches Beispiel ist die Alarmierung bei einer Temperaturüberschreitung.

Weiter zur Beispielregel: