Zum Hauptinhalt springen
Version: TAO v2.x

Schritt 6 – Einrichten Ihrer Datenflüsse

ThingPark Enterprise All-in-one unterstützt die führenden IoT-Protokolle, die zur Erfüllung Ihrer Einsatzszenarien erforderlich sind:

  • MQTT-Protokoll mit einem lokalen MQTT-broker: Dies ist der Standard-Datenfluss. Weitere Informationen finden Sie unter Using MQTT.

  • BACnet-Protokoll für automatisierte Gebäudeverwaltungs-Anwendungsfälle. Weitere Informationen finden Sie unter Setting up the BACnet dataflow.

  • Modbus-Protokoll für Industrial-IoT-Anwendungsfälle. Weitere Informationen finden Sie unter Setting up the Modbus dataflow.

  • Andere Protokolle, wie zum Beispiel HTTP, werden ebenfalls unterstützt. Weitere Informationen finden Sie unter Using HTTP.

Um die Integration mit externen Applikationsservern zu optimieren, bettet ThingPark Enterprise All-in-One eine Node-RED-Komponente ein, um Datenflüsse nahtlos zu verwalten.

Einrichten des BACnet-Datenflusses

Der BACnet-Datenfluss ermöglicht es Ihnen, die data Ihrer LoRaWAN-Geräte automatisch als BACnet-Objekte in einem integrierten BACnet-Server bereitzustellen. Standardmäßig verwendet dieser Server den Standard-UDP-multicast-Port 47808 (BAC0), aber Sie können den Port ändern, indem Sie eine Verbindung zu Node-RED herstellen, wie in BACnet server configuration beschrieben.

Dieser Datenfluss unterstützt drei BACnet-Objekttypen, die jeweils als Ein- bzw. Ausgänge für Uplink-/Downlink-Eigenschaften konfiguriert werden können:

  • Analog Value (mit „AV“ bezeichnet) für numerische data,
  • Binary Value (mit „BV“ bezeichnet) für boolesche data,
  • Character String Value (mit „SV“ bezeichnet) für String-data.

Der BACnet-Client kann sich über die Funktion Change of Value (CoV) für Serverbenachrichtigungen zu beliebigen BACnet-Eigenschaften anmelden. Analoge Typen von Eigenschaften sind mit einem COV increment-Attribut verknüpft, das es dem Client ermöglicht, die Benachrichtigungsschwelle für jede Eigenschaft zu bestimmen.

Das Mapping von LoRaWAN-Sensordaten in BACnet-Objekte ist vollständig automatisiert.


Die folgenden Schritte beschreiben, wie der BACnet-Datenfluss eingerichtet wird:

  1. Gehen Sie in der linken Seitenleiste der Benutzeroberfläche zu Dataflows.

  2. Aktivieren Sie auf der Registerkarte BACnet den BACnet-Flow, falls dies noch nicht der Fall ist, indem Sie auf ACTIVATE BACNET klicken.

    Tipp

    Sie können den Inhalt jedes Widgets auf der BACnet-Registerkarte ein- oder ausblenden, indem Sie auf / neben dem Widget-Titel klicken.

  3. Im Widget OBJECT MAPPING können Sie die Mapping-Einstellungen Ihrer LoRaWAN-Geräte auf BACnet-Objekte steuern:

    • Object name: Jedes aus LoRaWAN-Sensoren extrahierte data wird als BACnet-Objekt bereitgestellt, dessen Bezeichner aus der DevEUI des Geräts (Standardeinstellung) besteht, gefolgt von : und dann dem Eigenschaftsnamen. Sie können die Definition des Objektbezeichners so ändern, dass der benutzerfreundliche Name des Sensors (dies ist der in TAO gesetzte Geräte­name) anstelle der DevEUI verwendet wird.

    • LoRaWAN metadata: Sie können frei definieren, welche LoRaWAN-Metadaten als BACnet-Objekte bereitgestellt werden, indem Sie den entsprechenden Schalter in der Benutzeroberfläche aktivieren:

      • RSSI ist der Received Signal Strength Indicator jedes LoRaWAN-Uplink-Pakets. RSSI misst die gesamte Signalstärke innerhalb der Bandbreite des Funkkanals und summiert dabei das Nutzsignal, die Störungen und das Hintergrundrauschen. RSSI wird in dBm angegeben.
      • SNR ist das Signal-Rausch-Verhältnis jedes LoRaWAN-Uplink-Pakets. Es liefert eine zuverlässige Schätzung der Qualität des Uplink-Empfangs. SNR wird in dB angegeben.
      • FCntUp ist der Framezähler jedes LoRaWAN-Uplink-Pakets.
      • SpFact ist der Spreading Factor jedes LoRaWAN-Uplink-Pakets. SF7 entspricht der höchsten Datenrate, während SF12 der niedrigsten Datenrate entspricht.
  4. Im Widget OBJECT DEFINITION wählen Sie aus, welche Gerätemodelle ihre Messeigenschaften (auch Punkte genannt) als BACnet-Objekte bereitstellen sollen. Weitere Details finden Sie unter Updating object definition.

  5. Das Widget OBJECT LIST zeigt die Liste der BACnet-Punkte an, die derzeit in Ihrem TAO definiert sind. Weitere Informationen finden Sie unter Viewing the BACnet object list.

Aktualisieren der Objektdefinition

Sie müssen festlegen, welche Geräte ihre Messwerte über das BACnet-Protokoll bereitstellen sollen. Wenn Sie keine Objektdefinition hinzugefügt haben, stellt TAO keine BACnet-Objekte für Ihre LoRaWAN-Sensoren bereit.

Um die Benutzererfahrung zu vereinfachen, wird diese Definition nicht für jedes einzelne LoRaWAN-Gerät vorgenommen: Sie müssen sie nur für jedes relevante Gerätemodell einrichten; diese Definition gilt dann für alle LoRaWAN-Geräte, die diesem Modell zugeordnet sind.

Es gibt zwei Modi der Objektdefinition, abhängig vom Gerätemodell:

  1. Advanced definition

    • Ab TAO v2.5.0 gilt dieser Modus für die folgenden Gerätemodelle:

      • Enless (alle Modelle)
      • Watteco (alle Modelle)
      • Thermokon: MCS, NOVOS-3 und SAB07
      • MClimate Vicki

      Die native Unterstützung anderer Gerätehersteller wird schrittweise in zukünftigen Releases hinzugefügt.

    • In diesem Modus müssen Benutzer auswählen, welche Punkte über BACnet bereitgestellt werden.

      Hinweis

      Sie sollten mindestens einen Punkt pro ausgewähltem Gerätemodell definieren. Wenn ein Gerätemodell ohne Punkte ausgewählt wird, stellt TAO keine BACnet-Objekte für die Geräte bereit, die diesem Modell zugeordnet sind.

    • Dieser Modus ermöglicht das Senden von Downlink-Befehlen über das BACnet-Protokoll. Downlink-Punkte verwenden einen der folgenden Typen: analoge Werte, binäre Werte oder String-Werte. Weitere Informationen zur Nutzung von BACnet für Downlinks finden Sie unter Sending downlink commands with BACnet.

  2. Basic definition

    • Dieser Modus gilt für alle LoRaWAN-Modelle, die in TAO einen gültigen Payload-driver haben, aber den Advanced-Definition-Modus noch nicht unterstützen.

    • In diesem Modus können Benutzer nicht auswählen, welche Punkte über BACnet bereitgestellt werden: Alle verfügbaren Messpunkte werden automatisch als BACnet-Objekte bereitgestellt. Verfügbare Punkte werden aus Uplink-Payloads abgerufen, die von jedem Gerät gemeldet werden. Daher werden BACnet-Objekte dynamisch erstellt, sobald das Gerät beginnt, Uplink-Pakete zu senden.

    • Das Senden von Downlink-Befehlen über das BACnet-Protokoll wird in diesem Modus nicht unterstützt. Für Downlink-Übertragung können Sie MQTT verwenden.

Tipp

Verwenden Sie die Schaltfläche oben rechts im Widget OBJECT DEFINITION, um Ihre aktuelle Objektdefinition zu exportieren und sie dann auf anderen TAO-Servern zu importieren, ohne sie jedes Mal manuell definieren zu müssen.


  1. Um eine Definition für ein neues Gerätemodell hinzuzufügen, klicken Sie auf ADD OBJECT DEFINITION.

  2. Wählen Sie ein Device model aus der Liste der Modelle, die derzeit von den bereits hinzugefügten Geräten verwendet werden.

  3. Wenn das Modell den Advanced-Definition-Modus unterstützt, werden Sie aufgefordert, die Messpunkte auszuwählen, die Sie als BACnet-Objekte bereitstellen möchten.

    Tips
    • Beginnen Sie, im Suchbereich zu tippen, um einen Punkt leicht zu finden.
    • Klicken Sie auf Select All, wenn Sie alle Punkte hinzufügen möchten, die von diesem Modell unterstützt werden. Anschließend können Sie diejenigen auswählen, die Sie nicht behalten möchten, und sie entfernen, indem Sie auf klicken.

    Jedem Punkt ist sein Typ vorangestellt:

    • [AI] für analoge Eingänge. Für diesen Typ können Sie gegebenenfalls einen COV-Inkrement-Schwellenwert festlegen.
    • [AV] für analoge Werte; dieser Typ wird für aktivierte Eigenschaften mit numerischen Werten verwendet, die durch das Senden von Downlink-Befehlen gesetzt werden können.
    • [BI] für binäre Eingänge. COV gilt nicht für diesen Typ.
    • [BV] für binäre Werte; dieser Typ wird für aktivierte Eigenschaften mit binären Werten verwendet, die durch das Senden von Downlink-Befehlen gesetzt werden können.
    • [SV] für String-Werte. Dieser Typ gilt sowohl für Uplink- als auch für Downlink-Eigenschaften. COV gilt nicht für diesen Typ.
  4. Um weitere Punkte hinzuzufügen, klicken Sie unten rechts in der Tabelle auf .

  5. Wenn Sie fertig sind, klicken Sie auf SAVE.

  6. Sie können Ihr Mapping jederzeit aktualisieren, indem Sie auf EDIT klicken.

Das Senden von Downlink-Befehlen über BACnet wird nativ für alle Gerätemodelle unterstützt, die den Advanced-Definition-Modus unterstützen. Die vollständige Liste finden Sie im vorherigen Abschnitt.

Downlink-Befehle verwenden den bestätigten LoRaWAN-Modus, um eine zuverlässige Zustellung an Endgeräte sicherzustellen; sie werden bei Übertragungs- oder Empfangsfehlern automatisch von TAO erneut gesendet. Bis zu 5 Befehle können in dasselbe LoRaWAN-Downlink-Paket verkettet werden.

Bei Geräten, die den LoRaWAN-Class-C-Modus unterstützen, können keine weiteren Befehle gesendet werden, wenn ein Downlink-Aktuierungsbefehl an das Gerät gesendet wurde, bis der erste Befehl vollständig verarbeitet wurde – entweder mit einer positiven Bestätigung durch das Gerät oder wenn die Verarbeitung nach 5 Übertragungsversuchen ohne Bestätigung schließlich abgebrochen wird.

Anzeigen der BACnet-Objektliste

Die BACnet-Objektliste, die alle BACnet-Punkte mit ihrem aktuellen Wert anzeigt, wird im Widget OBJECT LIST der BACnet-Registerkarte dargestellt.
Der Zeitstempel der letzten Aktualisierung jedes Punkts wird in dieser Liste ebenfalls angezeigt. "Never" bedeutet, dass der Standardwert des Punkts angezeigt wird, weil der Sensor noch keine tatsächliche Messung dafür gemeldet hat.

Sie können diese Liste nach Gerätename, Geräte-EUI, Objektname und/oder Typ filtern. Die Suche in der Mitte einer Zeichenkette ist erlaubt.

Klicken Sie oben rechts in diesem Widget auf , um die Liste der (gefilterten) BACnet-Punkte zu exportieren.

Einrichten des Modbus-Datenflusses

Der Modbus-Datenfluss ermöglicht es Ihnen, die data Ihrer LoRaWAN-Geräte automatisch in einem integrierten Modbus-Slave-Server bereitzustellen.

Standardmäßig ist dieser Server auf dem Standard-TCP-Port 10502 verfügbar. Bei Bedarf können Sie den Port in Node-RED ändern, wie in Modbus server customization beschrieben.

Um Ihre LoRaWAN-Eigenschaften in Modbus-Objekte zuzuordnen, müssen Sie manuell eine Zuordnungstabelle definieren, die für jeden LoRaWAN-Sensor angibt, welche Eigenschaften extrahiert werden sollen, welcher Kodierungsalgorithmus angewendet werden muss und an welcher location sie im Modbus-Holding-Register-Array geschrieben werden müssen.

Hinweis

Derzeit wird nur Uplink über Modbus unterstützt; Downlinks über Modbus sind derzeit nicht implementiert. Für den Downlink-Pfad können Sie sich auf MQTT- oder HTTP-Protokolle stützen.


  1. Gehen Sie in der linken Seitenleiste der Benutzeroberfläche zu Dataflows.

  2. Aktivieren Sie auf der Registerkarte Modbus den Modbus-Flow, falls dies noch nicht der Fall ist, indem Sie auf ACTIVATE MODBUS klicken.

  3. Bereiten Sie die CSV-Datei vor, die Ihre Objekt-Mapping-Regeln enthält. Weitere Informationen finden Sie unter Object mapping.

  4. Importieren Sie die CSV-Mapping-Datei, die Sie im vorherigen Schritt vorbereitet haben, indem Sie auf IMPORT klicken.

    -> Sobald der Import erfolgreich ist, steht Ihr neues Mapping sofort zur Verfügung.

Object mapping

Für jede Eigenschaft, die Sie aus der uplink-Nachricht extrahieren möchten, müssen Sie ein Objekt angeben, das aus den folgenden Feldern besteht:

  • DevEUI ist die DevEUI des LoRaWAN-Sensors.
  • Attribute bezieht sich auf den Eigenschaftsnamen, wie er aus dem LoRaWAN-Uplink extrahiert wurde. Siehe unten, um mehr darüber zu erfahren, wie Sie ein Attribut für jede gemessene Eigenschaft festlegen.
  • DataType legt den Datentyp fest. Siehe unten, um mehr über die unterstützten Typen zu erfahren.
  • address legt die Modbus-Register-Nummer und die location fest.

Sie können die Beispieldatei aus der Benutzeroberfläche herunterladen, um das erwartete Format der zu importierenden Datei kennenzulernen.

Wie werden Attribute festgelegt?

Jede Eigenschaft, die Sie einem Modbus-Objekt zuordnen müssen, muss in Ihrer CSV-Mapping-Datei einem geeigneten Attribut zugewiesen werden.

Dazu müssen Sie zunächst die verschiedenen Eigenschaften ermitteln, die von Ihren LoRaWAN-Geräten in den uplink-payloads gemeldet werden.

Tipp

Sie können einen MQTT-Client wie MQTTX oder mosquitto_sub verwenden, um die von Ihren Geräten gemeldeten uplink-Pakete abzurufen und herauszufinden, welche Eigenschaften in ihren payloads enthalten sind.

Nehmen wir das folgende Beispiel eines Geräts, das das folgende uplink-Paket meldet:

{
"DevEUI_uplink": {
"Time": "2024-09-24T13:51:10.920+00:00",
"DevEUI": "20635F0106000244",
"FPort": 17,
"FCntUp": 101,
"LrrSNR": 5.5,
...
"LrrRSSI": -30.6,
...
"payload": {
"messageType": "HEARTBEAT",
"trackingMode": "PERMANENT_TRACKING",
"batteryVoltage": 4.05,
"levels": {
"power": 3,
"state": "on"
}
},
"points": {
"temperature": {
"unitId": "Cel",
"record": 28.3
},
...
}
}
}

-> Wir haben einen DevEUI_uplink mit Folgendem empfangen:

  • LrrSNR = 5,5 dB
  • LrrRSSI = -30,6 dBm
  • batteryVoltage = 4,05 V
  • power = 3
  • temperature = 28,3 °C

Wenn Sie die LoRaWAN-Metadaten exportieren möchten, wie z. B. uplink-Frame-Counter (FCntUp), uplink-RSSI oder SNR, muss das entsprechende Attribut genau denselben Namen wie die LoRaWAN-Metadaten verwenden, also FCntUp, LrrSNR, LrrRSSI...

Unter payload und/oder points muss das Attribut, das jeder Eigenschaft entspricht, den Eigenschaftsnamen verwenden. Zum Beispiel trackingMode, batteryVoltage... Verwenden Sie einen Unterstrich _, um Unterebenen darzustellen: zum Beispiel levels_power, temperature_record.

Unterstützte DataTypes

  • float: Modbus-Operation ist FC 16, Schreiben von 2 Registern: 4 Bytes.
  • int: Modbus-Operation ist FC 16, Schreiben von 1 Register: 2 Bytes.
  • uint oder uint32: Modbus-Operation ist FC 16, Schreiben von 2 Registern: 4 Bytes.
  • hex: Modbus-Operation ist FC 16, Schreiben von n Registern: n*2 Bytes (für "0A0B0C" werden 2 Register verwendet, das erste enthält 0A0B, das zweite enthält 000C).

Fehlerbehebung für Ihre Datenflüsse

Wenn sich Ihre Datenflüsse nicht wie erwartet verhalten, müssen Sie den Status der zugehörigen Backend-Services überprüfen, wie unten beschrieben:

  1. Gehen Sie in der linken Seitenleiste der Benutzeroberfläche zu Dataflows.

  2. Gehen Sie zur Registerkarte Advanced settings; das Widget Status zeigt folgende Informationen an:

    • Der Node-RED-Status zeigt an, ob Node-RED auf Ihrem Server ordnungsgemäß ausgeführt wird oder nicht. Wenn der Status nicht ACTIVE ist, klicken Sie auf RESTART NODE-RED, um zu versuchen, das Problem zu beheben.

    • Der Status des MQTT-broker zeigt an, ob der lokale MQTT-broker, der im ThingPark-Server eingebettet ist, ordnungsgemäß ausgeführt wird oder nicht. Sie können ihn bei Bedarf neu starten.

    • Uplink/Downlink flow ist der Standard-Datenfluss. Er verwendet das MQTT-Protokoll und bildet die einzige Schnittstelle zum LoRaWAN Network Server.
      Für den ordnungsgemäßen Betrieb Ihrer Datenflüsse muss der Status dieses Uplink/Downlink-Flow immer auf "Started" bleiben. Wenden Sie sich an Ihr Support-Team, wenn dieser Flow versehentlich gestoppt wurde.

      Achtung

      Löschen Sie den Uplink/Downlink-Flow niemals aus Node-RED, selbst wenn Sie das MQTT-Protokoll nicht zur Anbindung Ihrer Applikationsserver benötigen.

  3. Um auf die Node-RED-Benutzeroberfläche zuzugreifen, gehen Sie zum NODE-RED-Widget und klicken Sie dann auf OPEN. -> Der Node-RED-Editor wird in einem neuen Fenster geöffnet.

    Achtung

    Änderungen in Node-RED vorzunehmen, erfordert Expertenwissen darüber, wie es in TAO integriert ist. Wenn Sie diese Expertise nicht haben, nehmen Sie keine Änderungen in Node-RED vor.