Überblick
In einem Integrationsflow werden zunächst alle Datenpakete eines Kontos verarbeitet. Filter schränken die Weiterleitung auf die Pakete ein, die definierten Kriterien entsprechen — etwa für bestimmte Digitale Zwillinge, Datenpunkte oder Konnektoren. Datenfluss und Auslöser sind im Kapitel Integrationsflows beschrieben.
Anwendungsfälle
- Messwerte nur für ausgewählte Virtuelle Geräte oder Digitale Zwillinge an ein externes System senden.
- Nach Datenpunkt-Schlüssel oder Typ filtern (z. B. nur numerische Werte oder ein bestimmter
state_identifier). - Komplexe Bedingungen mit JSONata oder JavaScript abbilden (erweiterter Modus).
Voraussetzungen
- Grundverständnis des Integrationsflows (Auslöser, Schritte, Datenobjekte).
- Für einen End-to-End-Test: ein lauffähiger Integrationsflow mit ausgehendem Konnektor (z. B. Webhook).
Zugriff & Navigation
Unter Integrationen > Filter lassen sich Filter anlegen und bearbeiten. Einen neuen Filter über den „Anlegen“-Button () anlegen.

Konfiguration
Dialogfelder
Nach Anlegen öffnet sich der Konfigurationsdialog. Wesentliche Felder:
| Feld | Beschreibung |
|---|---|
| Name | Eindeutiger Name für den Filter. |
| Extended mode (Erweiterter Modus) | Wenn aktiv, können verschachtelte Filter bzw. Ausdrücke im erweiterten Modus genutzt werden. |
| Typ | javascript oder jsonata. |
| Eingabe-Typ | Für niotix-Daten generic wählen. |
| Attribut, Operator, Wert | Im Standardmodus; siehe Attribute (Standardmodus) und Einfacher Filter. |
Attribute (Standardmodus)
Die verfügbare Auswahl hängt vom Kontext des Datenpakets ab. Häufige Attribute:
| Attribut | Bedeutung |
|---|---|
account_id |
ID des Kontos, für das der Filter gilt. |
config_id |
ID des Konnektors. |
state_id |
ID des Datenpunkts. |
dtwin_id |
ID des Digitalen Zwillings oder des Virtuellen Geräts. |
dtwin_title |
Titel des Digitalen Zwillings oder des Virtuellen Geräts. |
twin_category |
Einschränkung auf virtualDevice oder digitalTwin. |
twin_tags |
Tag(s) am Digitalen Zwilling oder Virtuellen Gerät; kommasepariert (tag1,tag2). Für Teilstrings den Operator enthält statt gleich verwenden. |
twin_key_value |
Schlüssel/Wert zu benutzerdefinierten Eigenschaften (Objekt); Operator enthält statt gleich. |
state_identifier |
Schlüssel des Datenpunkts. |
state_type |
Typ des Datenpunkts (number / string / boolean / json). |
parser_variable |
Im Parser zugewiesene Variable für diesen Datenpunkt. |
source_identifier |
Externe ID eines Virtuellen Geräts. |
timestamp |
Zeitstempel des Pakets. |
vdevice_groups |
Gruppen am Virtuellen Gerät; kommasepariert. Für Teilstrings den Operator enthält statt gleich verwenden. |
Operatoren und Zeilenlogik:
- Operator: Vergleichsoperatoren für die Bedingung.
- Wert: Vergleichswert; mehrere Werte in einem Feld (jeweils mit Eingabetaste bestätigen) werden als ODER verknüpft.
- + / −: Weitere Bedingungszeilen; zwischen den Zeilen gilt UND.
Einfacher Filter (Standardmodus)
- Mehrere Werte in einer Zeile: logisches ODER.
- Mehrere Zeilen: logisches UND.
Beispiel:
- Zeile 1:
dtwin_idgleich12345 - Zeile 2:
state_identifiergleichenergy_kwh
Nur Datenpakete, die beide Bedingungen erfüllen, passieren den Filter.
Erweiterter Modus
Im erweiterten Modus wird ein Ausdruck in JSONata oder JavaScript hinterlegt. Für niotix-Daten ist der Eingabe-Typ generic zu wählen. Der Ausdruck muss als Ergebnis true oder false liefern.
Die Ausdrücke nutzen typischerweise das Eingabeobjekt (z. B. $.meta / $.value in JSONata bzw. x.meta / x.value in JavaScript). Welche Meta-Felder und Payload-Teile verfügbar sind und wie sie aufgebaut sind, hängt vom Auslöser ab; die Referenz dazu steht im Kapitel Integrationsflows: Erläuterung des BEFORE STATE-HANDLING-Objektes, Erläuterung des „After state handling“-Objektes, Alarmlog was created/resolved Objekt.
JSONata — nur Virtuelle Geräte aus einer bestimmten Gruppe:
"Abrechnung" in $.meta.vdevice_groups
JSONata — Gruppe und Datenpunkt kombinieren:
"Abrechnung" in $.meta.vdevice_groups and $.meta.state_identifier = "energy_kwh"
JavaScript:
return Array.isArray(x.meta.vdevice_groups) &&
x.meta.vdevice_groups.includes("Abrechnung") &&
x.meta.state_identifier === "energy_kwh";
Filter im Integrationsflow testen
Der Test erfolgt über einen Integrationsflow:
- Filter speichern.
- Integrationsflow mit passendem Auslöser anlegen und den Filter als Schritt einfügen.
- Ausgehenden Konnektor als letzten Schritt hinzufügen (z. B. Webhook (Outgoing)).
- Testwert erzeugen (z. B. Datenpunkt am Virtuellen Gerät ändern).
- Ergebnis in den Konnektor Logs prüfen:
- Trifft der Filter zu, wird das Paket im ausgehenden Konnektor verarbeitet.
- Trifft der Filter nicht zu, wird kein Paket weitergeleitet.
Berechtigungen
Zum Anlegen und Bearbeiten von Filtern sind die passenden Kontoberechtigungen für den Bereich Integrationen erforderlich. Überblick zu Rollen: Berechtigungen.
Fehlerbehebung
- Keine Daten am ausgehenden Konnektor: Prüfen, ob der Auslöser des Integrationsflows ausgelöst wird, ob die Filterbedingung zum Testpaket passt und ob der Filter im Flow vor dem ausgehenden Konnektor steht.
- Filter im erweiterten Modus liefert unerwartetes Ergebnis: Syntax von JSONata bzw. JavaScript prüfen; der Ausdruck muss boolesch (
true/false) sein.
Verwandte Seiten
- Integrationsflows — Datenfluss, Auslöser, Beispiel-Payloads
- Transformationen — nachgelagerte Anpassung der Nutzlast
- Konnektoren — eingehende und ausgehende Konnektoren