Eingehende Konnektoren

Eingehende Konnektoren binden externe Datenquellen und Plattformen an niotix an. Sie liefern Roh- oder Prozessdaten und halten – wo der Konnektor das vorsieht – Gerätebestände zwischen niotix und externen Plattformen konsistent. Eine Funktionsübersicht aller Konnektoren bietet die Konnektoren-Übersicht.

Konnektoren im Überblick

Generische Eingänge

DIGIMONDO & niotix-Module

Drittanbieter-Plattformen

Veraltet (Deprecated)

Templates und Datentransformation

Generische eingehende Konnektoren wie MQTT (Incoming) und Webhook (Incoming) besitzen im UI das Feld Template. Dieses Feld enthält die Transformation der eingehenden Daten in das interne niotix-Standarddatenformat. Da diese Konnektoren mit unterschiedlichsten Systemen und Geräten verwendet werden können, muss das Template auf das jeweilige Quelldatenformat abgestimmt werden. Das erwartete Eingangsdatenformat ist im Abschnitt Datenformat für eingehende Daten beschrieben.

Konnektoren für spezifische Cloud-Systeme oder Protokolle (z.B. Firefly, ChirpStack, Things Stack, LwM2M Server) verwenden eine fest integrierte Standard-Transformation, die das jeweilige systemspezifische Format automatisch in das niotix-Format überführt. Eine manuelle Template-Konfiguration ist hier in der Regel nicht erforderlich.

Pass-through: Wenn die Daten bereits im niotix-Standarddatenformat ankommen, kann das Template „Pass-through" (bzw. pass-through) verwendet werden. Der Payload wird dann unverändert weitergeleitet.

JavaScript-Transformation: Entspricht das eingehende Format nicht dem niotix-Standarddatenformat, kann eine eigene JavaScript-Funktion hinterlegt werden. Mit Klick auf den Stift-Button öffnet sich der Editor zum Eingeben und Testen der Transformation. Die Funktion wird als Body eingegeben, der Rahmen ist fest vorgegeben: module.exports = (packet) => { ... }. Das Argument packet entspricht dem Eingangsformat des Konnektors.

Beispiel — eingehendes Paket einer externen Quelle:

{
  "deviceId": "sensor-42",
  "timestamp": "2025-03-21T09:26:04Z",
  "payload": {
    "temperature": 21.5,
    "humidity": 58
  }
}

Passende Transformation, die daraus das niotix-Standardformat erzeugt:

module.exports = (packet) => {
  return {
    identifier: packet.deviceId,
    data: {
      value: {
        payload: packet.payload
        },
      time: packet.timestamp     // optional; fehlt dieser Wert, wird die Systemzeit verwendet
    }
  };
};

Die Felder identifier, data entsprechen dem niotix-Standardformat für Virtuelle Geräte; alternativ kann routing für eine Adressierung von Digitalen Zwillingen über Referenz-ID-Schlüssel verwendet werden — Details dazu im Abschnitt Adressieren von Datenpunktupdates über Datenrouting.

Transformation testen: Die Transformation kann direkt in der Oberfläche geprüft werden. Im Bearbeitungsdialog unter Konnektoren → Transformationen gibt es im Schritt „Transformation testen" einen Eingabebereich für einen Beispiel-Payload sowie einen Button „Transformer testen", der das Ergebnis sofort anzeigt — ohne die Konfiguration speichern zu müssen.