For the complete documentation index, see llms.txt. This page is also available as Markdown.

Konventionen und Beispiele für Encoder-/Decoder-Formate

BuildingPro Suites bietet leistungsstarke Werkzeuge wie JSONPath und MQTT-Wildcards um eingehende Daten dynamisch und präzise den richtigen Assets zuzuordnen. Während JSONPath eine flexible Auswahl von Werten aus JSON-Daten ermöglicht, erlauben MQTT-Wildcards die Verwendung dynamischer Werte aus Topic-Strukturen. Diese Dokumentation zeigt, wie Sie beide Methoden effektiv nutzen können, um Ihre Datenverarbeitung zu optimieren.


JSONPath-Konvention

JSONPath ist eine Syntax zum Auswählen und Verarbeiten von Werten in einem JSON-Dokument. Die grundlegende Struktur und die Symbole von JSONPath:

  1. $: Der Wurzelknoten des JSON-Dokuments.

  2. .: Zugriff auf ein untergeordnetes Element.

  3. []: Ermöglicht den Zugriff auf ein Element über einen Index oder eine Bedingung.

  4. ?(): Filterausdruck, um Elemente anhand einer Bedingung auszuwählen.

  5. @: Repräsentiert das aktuelle Element im Filterausdruck.

  6. *: Platzhalter, um alle Elemente eines Arrays oder Objekts auszuwählen.

  7. ..: Rekursiver Zugriff, um alle Vorkommen eines bestimmten Namens in der Hierarchie zu finden.


Beispiel 1: Einfache Abfrage aus einem JSON-Payload

JSON-Daten:

[hier kommt der Code hin]

JSONPath-Abfragen und Ergebnisse:

  1. Alle Gerätedaten abfragen: JSONPath: $.devices[*] Ergebnis:

    [hier kommt der Code hin]

  2. Die Temperatur aller Geräte abfragen: JSONPath: $.devices[*].wifiSwitchTemp Ergebnis:

    [hier kommt der Code hin]

  3. Ein Gerät mit einer bestimmten ID abfragen: JSONPath: $.devices[?(@.id=="A8032A13B850")] Ergebnis:

    [hier kommt der Code hin]

  4. Nur die Temperatur eines bestimmten Geräts abfragen: JSONPath: $.devices[?(@.id=="A8032A13B850")].wifiSwitchTemp Ergebnis:

[hier kommt der Code hin]

Beispiel, wenn Sie ein bestimmtes Gerät möchten.

Beispiel: Funktion zum Generieren einer GAI/Associated ID, wenn der Payload keine Kennung enthält

Wenn ein eingehender Payload keine eindeutige Kennung enthält oder die Kennung von mehreren Elementen im Payload abhängt, kann eine benutzerdefinierte Funktion verwendet werden, um die Kennung zu generieren.

Szenario: Keine Kennung im Payload

Stellen wir uns das folgende Beispiel für einen Payload vor:

[hier kommt der Code hin]

In diesem Beispiel enthält der Payload keine direkte Kennung, da es mehrere WiFi-Schalter geben könnte, aber die Kombination aus Gebäude, Stockwerk, und Raum kann verwendet werden, um eine eindeutige Kennung zu erstellen.

Lösung: Eine Funktion erstellen

Verwenden Sie in BuildingPro Suites eine benutzerdefinierte Funktion, um die Kennung aus den Bestandteilen des Payloads zu generieren.

Codebeispiel: Kennung aus mehreren Feldern generieren

[hier kommt der Code hin]


Konfiguration in BuildingPro Suites

  1. Funktion erstellen:

    • Gehen Sie zu "Funktion erstellen" Option im Menü.

    • Geben Sie der Funktion einen Namen, z. B. parsePayloadCustom.

    • Fügen Sie den obigen Code in den Code-Editor.

  2. Funktion mit einem Format verbinden:

    • Wählen Sie im Menü "Format konfigurieren" das entsprechende Format aus.

    • Fügen Sie die Funktion mit der "Funktion anhängen" Schaltfläche hinzu.

  3. Kennung verwenden:

    • Das Format verwendet die generierte Kennung (eliona.uin) um eingehende Daten dem richtigen Asset zuzuordnen. Hierfür kann entweder Extern für die zugehörige ID oder GAI gewählt werden, je nachdem, wo sich die ID befinden soll.


Verwendung von MQTT-Wildcards zur Erstellung einer GAI/Associated ID

MQTT-Topic-Struktur im Beispiel:

[hier kommt der Code hin]

Wildcards in MQTT

MQTT unterstützt zwei Arten von Platzhaltern, die in Topics verwendet werden können:

  1. + (Platzhalter für eine Ebene)

    • Repräsentiert „alle Werte auf dieser Topic-Ebene“.

    • Beispiel: Das Topic building_01/+/room_01 passt zu den folgenden Topics:

      • building_01/floor_01/room_01

      • building_01/floor_02/room_01

  2. # (Platzhalter für mehrere Ebenen)

    • Repräsentiert „alle Werte von dieser Ebene und darunter“.

    • Kann nur am Ende verwendet werden eines Topics.

    • Beispiel: Das Topic building_01/# passt zu den folgenden Topics:

      • building_01/floor_01

      • building_01/floor_01/room_01

      • building_01/floor_02/room_02


So funktionieren MQTT-Wildcards

  • + Platzhalter: Jeder + Platzhalter ersetzt genau einen Teil des Topics. Wenn es mehrere + Platzhalter in einem Topic gibt, können Sie in BuildingPro Suites mithilfe von Zahlen darauf zugreifen (1, 2, usw.). Beispiel: Im Topic building_01/+/+, steht dies für:

    • 1: der erste Teil, der durch +.

    • 2: der zweite Teil, der durch +.

  • # Platzhalter: Erfasst alle Werte und Ebenen ab der Position, an der es steht. Alles, was an die Stelle von # im Topic tritt, kann direkt über # in BuildingPro Suites referenziert werden.


Beispiele für die Verwendung von MQTT-Wildcards

Beispiel 1: Verwendung von # zum Erfassen von Räumen

Abonnement-Topic: building_01/#

Empfangene Nachricht: building_01/floor_01/room_01

Konfiguration in BuildingPro Suites:

  • Kennung: #

Ergebnis: Das Topic floor_01/room_01 wird als GAI/Associated ID verwendet.


Beispiel 2: Verwendung von + zur Identifizierung einer Ebene

Abonnement-Topic: building_01/+/room_01

Empfangene Nachricht: building_01/floor_02/room_01

Konfiguration in BuildingPro Suites:

  • Kennung: 1

Ergebnis: Der Wert floor_02 (die Ebene, die durch den ersten +) wird als GAI/Associated ID verwendet.


Beispiel 3: Kombination von + und # zum Erfassen mehrerer Ebenen

Abonnement-Topic: building_01/+/+/#

Empfangene Nachricht: building_01/floor_01/room_02/sensor_01

Konfiguration in BuildingPro Suites:

  • Kennung:

    • 1 → floor_01 (erster + Platzhalter)

    • 2 → room_02 (zweiter + Platzhalter)

    • # → sensor_01 (alle Werte, die #)

Ergebnis: Die Werte floor_01, room_02, und sensor_01 können einzeln als GAI/Associated ID verwendet werden.


Wichtige Hinweise

  1. MQTT-Wildcards funktionieren nur mit dem Topic-Modus: Wählen Sie in der Identifikation "Topic" aus, wie in der folgenden Abbildung gezeigt:

  2. Automatische Verarbeitung in BuildingPro Suites:

    • BuildingPro Suites ersetzt Platzhalter automatisch durch die tatsächlichen Werte des Topics.

    • Es ist keine zusätzliche Verarbeitung erforderlich.

  3. Beachten Sie die Nummerierung der + Platzhalter:

    • Verwenden Sie die entsprechende Zahl (1, 2, usw.), um auf die spezifischen Werte zuzugreifen.

Zuletzt aktualisiert

War das hilfreich?