Filter

Ü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_id gleich 12345
  • Zeile 2: state_identifier gleich energy_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:

  1. Filter speichern.
  2. Integrationsflow mit passendem Auslöser anlegen und den Filter als Schritt einfügen.
  3. Ausgehenden Konnektor als letzten Schritt hinzufügen (z. B. Webhook (Outgoing)).
  4. Testwert erzeugen (z. B. Datenpunkt am Virtuellen Gerät ändern).
  5. 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