Rule Engine Legacy
Einführung
Die Rule Engine basiert auf IFTTT, was für "If This Then That" steht, und ist eine leistungsstarke, benutzerfreundliche Engine, mit der Sie Aufgaben automatisieren und verschiedene digitale Dienste über eine einfache Rule Engine integrieren können. Die Kernfunktionalität von IFTTT liegt in der Fähigkeit, Rule-Anweisungen zu erstellen, die einer einfachen "wenn-dann"-Logik folgen. Jede Rule verbindet zwei Dienste: den "Trigger" (den "wenn"-Teil) und die "Action" (den "dann"-Teil). Zum Beispiel können Sie eine Rule einrichten, die automatisch eine E-Mail sendet, Daten veröffentlicht oder einen Aktor ein- oder ausschaltet, wenn eine bestimmte Condition erfüllt ist. Die Rule Engine ist mit Yggio Flow, Yggio Translators und den Yggio-AI/ML-Modulen integriert, um leistungsstarke benutzerdefinierte Analysen, Algorithmen und Ereignisverwaltungsfunktionen zu ermöglichen.

Die meisten Rules basieren auf einfachen Conditions, wodurch die Plattform auch für Benutzer ohne technisches Fachwissen gut zugänglich ist. Diese Rules arbeiten nach einer einfachen "wahr oder falsch"-Logik, bei der eine Action ausgelöst wird, wenn eine bestimmte Condition erfüllt ist. Sie könnten zum Beispiel eine Rule einrichten, bei der, wenn die Wettervorhersage Regen vorhersagt (die Condition), eine SMS-Benachrichtigung gesendet wird, die Sie daran erinnert, einen Regenschirm mitzunehmen (die Action). Diese Einfachheit ermöglicht es Benutzern, mit minimalem Aufwand leistungsstarke Automatisierungsabläufe zu erstellen.
Rules werden durch Conditions ausgelöst. Wenn die Conditions erfüllt sind, werden Actions ausgeführt. Sie können benutzerdefinierte Rules, Conditions und Actions erstellen.
Rule Engine (Legacy)
Wichtiger Hinweis: Sie können vordefinierte Rules, Conditions oder Actions nicht ändern. Sie werden auf ihren ursprünglichen Zustand zurückgesetzt.
Zur Rule Engine navigieren
- Melden Sie sich bei Ihrem Konto an
- Klicken Sie in der Navigationsleiste auf "Apps"
- Klicken Sie auf "Rule Engine", um zur Rule Engine zu gelangen
Eine Rule erstellen

- Klicken Sie in der Rule Engine auf das Symbol "Rules"
- Wählen Sie in der Mitte links "Add Rule"
- Geben Sie den Rule-Namen ein
- Wählen Sie einen WHEN-Trigger. Diese Funktion legt fest, wann etwas ausgeführt wird. Drücken Sie in der Mitte auf die Schaltfläche "+" und wählen Sie dann eine IoT-Node, einen Timer oder einen Cronjob sowie eine Condition.
- OPTIONAL: Wählen Sie eine AND IF-Condition. Diese Funktion ermöglicht es der Rule, die Ausführung fortzusetzen, wenn die Condition erfüllt ist. Drücken Sie die Schaltfläche "+" in der Mitte und wählen Sie dann eine IoT-Node und eine Condition oder ein Zeitintervall.
- Wählen Sie eine DO-Action. Diese Funktion führt etwas aus, sobald die WHEN- und IF-Conditions erfüllt sind. Drücken Sie die Schaltfläche "+" in der Mitte und wählen Sie dann eine Action und ein Ziel, auf dem die Action ausgeführt werden soll.
- Drücken Sie unten links auf "Add Rule"
Zusätzliche Informationen
- Alle Textfelder sind durchsuchbar, was das Auffinden einer bestimmten IoT-Node, Condition oder Action schnell und einfach macht.
- Mehrere IoT-Nodes können in einer Zeile gruppiert werden, um einen WHEN-Trigger auszuwerten.
- Mehrere IoT-Nodes können in einer Zeile gruppiert werden, um eine IF-Condition auszuwerten.
- Mehrere Ziele können in einer Zeile gruppiert werden, um eine DO-Action auszuführen.
- Alle WHEN-Trigger arbeiten, auch wenn sie in einer Zeile gruppiert sind, nach einer ODER-Logik, das heißt, die Rule löst aus, sobald einer von ihnen wahr wird.
- Alle IF-Conditions arbeiten, auch wenn sie in einer Zeile gruppiert sind, nach einer UND-Logik, das heißt, alle Conditions müssen wahr sein, damit die IF-Condition erfüllt ist.
- WHEN-Trigger sind zustandsbasiert und reagieren nur auf Änderungen, wie einen Übergang von falsch zu wahr oder eine Änderung von 19 auf 20.
- Wenn ein Element aus einer Liste ausgewählt wird, verschwindet es aus der Liste, was die schnelle Auswahl von auch Hunderten von IoT-Nodes in einer Rule ermöglicht, indem zuerst gesucht und dann ausgewählt wird.
- Eine DO-Action steht zur Verfügung, um eine andere Rule zu starten, wodurch die Rule Engine Rule-Ketten verwalten kann.
- Alle DO-Actions können durch das Setzen eines Timers verzögert werden, was die Erstellung timerbasierter Rules ermöglicht. Sobald ein Action-Timer gestartet wurde, kann er nicht mehr gestoppt werden und löst die zugehörige Action bei Ablauf aus.
- Um Timer zu verwalten, die gestoppt werden können, siehe Data Flows, Timers, and Geofences und verwenden Sie das Feld
timerExpiredals Trigger.
- Um Timer zu verwalten, die gestoppt werden können, siehe Data Flows, Timers, and Geofences und verwenden Sie das Feld
Eine Condition erstellen

- Klicken Sie in der Rule Engine auf das Symbol "Condition"
- Wählen Sie in der Mitte links "Add Condition"
- Geben Sie den Feldnamen (z. B. 'temperatureHighAlarm') Ihrer Condition aus dem Data-Tab einer IoT-Node in der Device List ein
- Geben Sie den Vergleichsoperator ein (z. B. '==')
- Geben Sie den Wert Ihrer Condition ein (z. B. 'true'). Diese Funktion verwendet den eingegebenen Wert als WHEN-Trigger oder IF-Condition
- Drücken Sie die Schaltfläche "Add Condition" links
Beispiele:
temperatureHighAlarm == true
temperature > 30
temperature < 39.5 || presence == false
temperature > 39.5 && presence == true
message == 'Missing expected report'
Erlaubte Datentypen: Integer, Decimal, Boolean, String
Gängige Operatoren: Gängige Operatoren sind:
- == Gleichheitsoperator (=== strikte Gleichheit)
- != Ungleichheitsoperator (!== strikte Ungleichheit)
- > Größer als
- < Kleiner als
- <= Kleiner als oder gleich
- >= Größer als oder gleich
- || Bedingtes ODER
- && Bedingtes UND
Alle erlaubten Operatoren: Erlaubte Operatoren finden Sie hier
Zusätzliche Informationen
- Die gängigsten Conditions sind vordefiniert und können direkt in Rules verwendet werden.
- Ein String-Wert sollte in einfache Anführungszeichen eingeschlossen werden, wie 'Missing expected report'. Im Data-Tab in der Device List werden Strings rot, Zahlen blau und Booleans grün dargestellt.
- Empfehlungen zu Conditions:
- Verwenden Sie bevorzugt einfache, auf wahr oder falsch basierende Gleichheits- oder Ungleichheitsconditions.
- Wenn > oder < Vergleiche notwendig sind, ist es vorzuziehen, einen Translator mit einer Schwellenwertprüfung direkt in die IoT-Node zu integrieren. Dies verlagert die Zustandsverwaltung auf die IoT-Node und verringert den Bedarf an zusätzlicher Logik in der Rule Engine.
- Nutzen Sie für komplexere Conditions, wie benutzerdefinierte Anomalieerkennung, bestehende Analysealgorithmen (Translators) oder entwickeln Sie eine eigene Analyselösung und laden Sie sie über die API hoch.
- Wenn die Analyse noch mehr Raffinesse erfordert, als benutzerdefinierte Algorithmen bieten, entwickeln Sie ein KI/ML-Modell mit integrierter Datenpipeline-Formatierung, um die Anforderungen zu erfüllen, und laden Sie es in das Yggio-AI-Modul hoch.
Eine Action erstellen
- Klicken Sie in der Rule Engine auf das Symbol "Action"
- Wählen Sie in der Mitte links "Add Action"
- Wählen Sie den benötigten Action-Typ aus
- Geben Sie den Namen Ihrer Action ein
- Geben Sie die korrekten Werte für Ihre Action ein
- Drücken Sie die Schaltfläche "Add Action" links
Häufig verwendete Actions
-
Email: Sendet eine E-Mail mit einem benutzerdefinierten und dynamischen Text an den Empfänger. Der E-Mail-Body erlaubt HTML-Code, um schön formatierte E-Mails mit Bildern zu erstellen.
-
SMS: Sendet eine SMS mit einem benutzerdefinierten und dynamischen Text an den Empfänger.
- Hinweis 1: Die Betreffzeile der SMS darf maximal 11 Zeichen lang sein, sonst wird keine SMS gesendet.
- Hinweis 2: Jede gesendete SMS kostet 0,25 $; derzeit wird dafür nichts zusätzlich berechnet, aber die Anzahl der gesendeten SMS muss innerhalb angemessener Grenzen bleiben.
-
Log: Erstellt einen benutzerdefinierten Log-Eintrag, der im Log erscheint. Dies kann verwendet werden, um Alarme zu setzen oder zu verfolgen, wann Rules ausgeführt werden. Wenn die Option "dynamic" gewählt wird, werden die Log-Informationen aus der
log : {}-JSON-Struktur in der auslösenden IoT-Node abgerufen, in der sie von einem Translator gesetzt wurde.Beispiel eines dynamischen Logs, geschrieben von einem Translator:
log : {'message': 'Modbus configuration not done or not valid.','type': 'Warning','priority': 'Low','category': 'Status'} -
Report: Erstellt und sendet einen CSV- oder Device-Count-(Billing-)Report. Details siehe Report Generator
-
LoRaWAN downlink: Sendet einen Downlink an ein LoRaWAN-Gerät. Meist um einen Aktor zu steuern.
-
Zwave downlink: Sendet einen Downlink an ein Zwave-Gerät. Meist um einen Aktor zu steuern.
-
Command: Sehr vielseitige generische Action zum Senden eines Befehls, wird z. B. verwendet, um eine Nachricht auf Yggios MQTT-Broker oder einem anderen Broker zu veröffentlichen. Ein Generic MQTT Connector wird benötigt, der im DO-Teil einer Rule als Ziel hinzugefügt wird.
- Beispiel für einen Command (Beachten Sie, dass in der Rule-UI das Zeichen " mit einem Escape-Zeichen versehen werden muss, verwenden Sie also /"):
Subject: sendDownlink
Body:
"message": "myMessage",
"mqttTopic": "subTopic"
Dynamische Informationen
- Viele Actions, wie Email, SMS, Commands, Logs usw., erlauben die Einbindung dynamischer Informationen der auslösenden IoT-Node. Diese dynamischen Informationen können eingebunden werden, indem eine Anweisung wie
${iotnode.fieldname}in der Action-Spezifikation eingefügt wird. Beim Auslösen der Rule wird der Platzhalter${iotnode.fieldName/}durch den entsprechenden Wert von fieldname ersetzt.
Beispiele:
The temperature detected was ${iotnode.temperature} degrees.
The device reported at ${iotnode.reportedAt}
'devEui': '${iotnode.devEui}'
Messaging Actions über Connector (SMS, E-Mail, WhatsApp)
Dieser Abschnitt erklärt, wie Actions zum Senden von SMS-, E-Mail- oder WhatsApp-Nachrichten konfiguriert und verwendet werden, wenn in Yggio ein Ereignis eintritt. Er behandelt die Erstellung von Connectors, die Einrichtung von Actions und Backup-Zustellungsoptionen.
Übersicht
- Actions können SMS-, E-Mail- oder WhatsApp-Nachrichten senden, wenn sie durch eine Rule oder ein Ereignis ausgelöst werden.
- Benutzer müssen für jeden Dienst (SMS, E-Mail, WhatsApp) Connectors erstellen, bevor sie Actions erstellen.
- Connectors können über das Control Panel oder direkt auf der Seite zur Action-Erstellung erstellt werden.
- SMS- und WhatsApp-Actions ermöglichen die Angabe einer Backup-E-Mail-Adresse für fehlgeschlagene Zustellungen, sofern ein E-Mail-Connector vorhanden ist.
Connector-Erstellung
Für jeden Messaging-Dienst wird ein Connector benötigt. Erstellen Sie diese über:
- Control Panel:
/control-panel-v2/connectors - Action-Seite: Falls kein Connector existiert, können Sie während der Action-Einrichtung einen erstellen.
Die Connector-Dokumentation finden Sie im Ordner connectors.
Unterstützte Anbieter
- SMS: 46elks, Telnyx, Twilio
- WhatsApp: Twilio
- E-Mail: vom Kunden organisiert (jeder SMTP-kompatible Anbieter)
Action-Typen
E-Mail-Action über Connector
- Sendet eine E-Mail über einen konfigurierten E-Mail-Connector.
- Betreff und Nachrichtentext angeben.

SMS-Action über Connector
- Sendet eine SMS über einen konfigurierten SMS-Connector.
- Geben Sie einen bereits gespeicherten SMS-Connector an (oder fügen Sie einen neuen Connector hinzu) sowie den Nachrichtentext.
- Optional kann eine Backup-E-Mail-Adresse für fehlgeschlagene SMS-Zustellung angegeben werden (erfordert einen E-Mail-Connector).

WhatsApp-Action über Connector
- Sendet eine WhatsApp-Nachricht über einen konfigurierten WhatsApp-Connector.
- Geben Sie einen bereits gespeicherten WhatsApp-Connector an (oder fügen Sie einen neuen Connector hinzu) sowie den Nachrichtentext.
- Optional kann eine Backup-E-Mail-Adresse für fehlgeschlagene WhatsApp-Zustellung angegeben werden (erfordert einen E-Mail-Connector).

Backup-E-Mail-Optionen innerhalb der jeweiligen Connectors
- Für SMS- und WhatsApp-Actions können Sie eine Backup-E-Mail-Adresse angeben.
- Schlägt die Zustellung fehl, versucht das System, die Nachricht per E-Mail zu senden (erfordert einen E-Mail-Connector).
Beispiel-Workflow
- Erstellen Sie die benötigten Connectors für SMS, E-Mail oder WhatsApp.
- (Optional) Fügen Sie eine Backup-E-Mail-Adresse für SMS-/WhatsApp-Actions hinzu.
- Erstellen Sie eine Rule-Action für das gewünschte Ereignis.
- Wählen Sie den Connector aus und konfigurieren Sie die Nachrichtendetails.
Einen State erstellen

- Klicken Sie in der Rule Engine auf das Symbol States
- Drücken Sie die Schaltfläche "Add State"
- Fügen Sie die States hinzu
- Drücken Sie unten links die Schaltfläche "Add state"
Zusätzliche Informationen
- States werden verwendet, um fortgeschrittene Rule-Ketten mit Zustandsverwaltung zu erstellen. Häufig wird der State im AND-IF-Teil einer Rule referenziert.
- States sind IoT-Nodes, das heißt, sie erscheinen in der Device List und können wie jede andere IoT-Node angezeigt und verwaltet werden.
- Der Wert eines States wird als String im Feld value gespeichert. Da der Wert eines States ein String ist, sollte er in einer Condition in einfachen Anführungszeichen geprüft werden, wie value=='stateValue1'.
- Der Wert eines States wird durch die State Action geändert, die im DO-Teil einer Rule platziert wird.
- Es wird empfohlen, einfache States wie 1, 2, 3 usw. zu verwenden. Es gibt vordefinierte Actions und Conditions zur Verwaltung der am häufigsten verwendeten State-Werte.


Einen Contact erstellen
- Klicken Sie in der Rule Engine auf das Symbol "Contacts"
- Drücken Sie die Schaltfläche "Add Contact"
- Geben Sie Name, E-Mail und Telefonnummer ein
- Drücken Sie unten links die Schaltfläche "Add contact"