Home » Tutorials » How-To » logiccloud Control und MQTT

logiccloud Control und MQTT

logiccloud Control bietet Ihnen die Möglichkeit, MQTT zur Anbindung von Feldgeräten oder als Verbindung in übergeordnete Systeme zu nutzen.

MQTT Broker

logiccloud bietet standardmäßig einen MQTT Broker mit an, der ganz bequem über die Verbindungseinstellungen genutzt werden kann. Sie können aber auch Ihren eigenen Broker nutzen.

logicccloud MQTT Broker

Sobald eine Runtime erstellt ist, können wir die Verbindungseinstellungen bearbeiten. Diese sehen Sie rechts von den Runtime in der Übersicht.

Durch Rechtsklick auf MQTT können Sie eine neue Verbindung anlegen. Hier nehmen wir Add logiccloud MQTT connection. Im Dialogfenster geben wir den Namen Name ein sowie die Description. Anschließend klicken wir auf Save.

Wir sehen nun die Informationen für die Verbindung zum logiccloud MQTT Broker. Der generierte Benutzername sowie das Passwort, den Hostnamen und den Port. Über Test connection kann die Verbindung zum Broker getestet werden.

Eigener MQTT Broker

Wenn Sie Ihren eigenen MQTT Broker nutzen möchten, können Sie diesen über Add custom MQTT connection hinzufügen. Hier geben Sie den Namen Name ein sowie die Description. Zusätzlich müssen aber noch die Einstellungen getätigt werden, die für den logiccloud Broker automatisiert erstellt werden.

  • Protocol: mqtt, mqtts, ws, wss
  • Hostname: IP Adresse oder Hostname des Brokers
  • Port: Port des Brokers
  • Reconnect Period: Zeitraum, in dem die Verbindung wiederhergestellt wird, falls diese unterbrochen wurde
  • Benutzername: Benutzername für die Verbindung
  • Passwort: Passwort für die Verbindung
  • Zertifikate: Falls Ihr Broker Zertifikate für die Verbindung benötigt, können Sie diese hier hochladen.

MQTT Payloads

Sobald die Verbindung angelegt ist, können die Payloads definiert und parametriert werden.

Payloads definieren

Mit Rechtsklick auf die Verbindung können Sie einen neuen Paylaod anlegen Add Payload. Dazu vergeben wir noch einen Namen, die Beschreibung ist optional.

Sobald der Payload angelegt ist, können wir die Struktur definieren. Dazu wählen wir den Payload aus dem Verbindungsbaum aus.

Read Payload

Unter Read format kann das Format für das Lesen von Variablen definiert werden. Das Format folgt hier der JSON Path Syntax. Der Platzhalter ##tag## kann für Variablen verwendet werden. Das ist beispielsweise hilfreich, wenn mehrere Variablen in einem MQTT Payload gemapped sind. Wie das geht sehen wir im nächsten Abschnitt.

Beispiele

$[data]
// Beispielpayload
{
    "data": 11.245
}

$[value]
// Beispielpayload
{
    "value": 123.678
}

$[data][##tag##]
// Beispielpayload
{
    "data": {
        "tagName": 34.567
    }
}

In dem Beispiel sehen wir, dass wir eine beliebige JSON Struktur abbilden können. Wenn in der Struktur eine Ebene tiefer eine Variable definiert ist, können wir diese über [Ebene] erreichen.

Write Payload

Unter Write format kann das Format für das Schreiben von Variablen definiert werden. Das Format folgt hier ebenfalls der JSON Path Syntax. Über den Platzhalter ##v## können wir den Wert der Variable einfügen.

Beispiele

{"data":##v##}
// Beispielpayload
{
    "data": 11.245
}

{"name": "##tag##","value":##v##}
// Beispielpayload
{
    "value": 123.678
}

{"data": {"##tag##": ##v##}}
// Beispielpayload
{
    "data": {
        "tagName": 34.567
    }
}

Payloads parametrieren

Sobald die Payloads definiert sind, können wir diese parametrieren. Dazu wählen wir das Payload Mapping aus dem Verbindungsbaum aus. Über das grüne + Icon können wir ein neues Mapping anlegen. Aus dem Dropdown können wir die Access Variablen auswählen. Dazu können wir einen Tag-Namen vergeben. Dieser wird im vorher angelegten Payload Mapping an der ´##tag##´ Stelle eingefügt. Das ist Hilfreich, wenn wir mehrere Variablen in einem Payload gemapped haben. Zusätzlich können wir noch den Datentypen und das Topic angeben. Das Topic wird immer aus der Runtime ID und der MQTT Connection generiert. Der Rest des Topics kann frei definiert werden. Der Daten Typ muss mit dem der Access Variable übereinstimmen.

Die Datentypen von MQTT und Strukturiertem Text sind nicht komplett identisch. So gibt es in ST beispielweise REAL, in MQTT dafür Float oder Double.

Sobald Sie alle Variablen gemapped haben, können Sie die Änderungen über STRG / CMD + S oder über das Speichern Icon in der oberen Navigation speichern.

Wenn Sie Änderungen an den Verbindungseinstellungen vornehmen, müssen Sie logiccloud Control Runtimes neu erzeugen und deployen. logiccloud 365 Runtimes müssen lediglich neu gestartet werden.