Aufbau von MQTT
Der Datenaustausch mit MQTT erfolgt über einen zentralen MQTT Broker, an den ein Gerät Daten sendet und der diese an Empfänger weiterleitet. Das DatenBerg Gateway " subscribed " sich auf ein definiertes Topic und leitet alle empfangenen Daten an die smartPLAZA weiter. In diesem Blogbeitrag gehen wir näher auf die Funktionsweise von MQTT ein.
Parameter für MQTT
Für den Empfang von Daten via MQTT müssen folgende Parameter definiert werden:
- host: Adresse des MQTT-Servers
- port: Port des MQTT-Servers
- topic: Zu überwachendes Topic oder Topics
- type: Payload-Format
Mögliche Werte für "type":- text: Zeichnet den gesamten Text der Payload in ein Feld auf.
- json: Interpretiert die Payload als JSON mit Name-Wert-Paaren und erzeugt ein Feld für jeden Eintrag.
- Optionale Parameter:
transformation: Plugin (Python-Datei), das die Payload transformiert, muss im im Ordner Plugins liegen
Optional können diese Parameter definiert werden:
- user: Benutzername zur Anmeldung
- password: Entsprechendes Passwort
Wann benötige ich eine Transformation?
Das Gateway erwartet die Daten zur Weitersendung in einem JSON-Format mit Namen-Wert Paaren. Jede Spalte - sowohl Meta-Daten als auch Messmerkmale - müssen als eigenes Paar auftreten. Im folgenden Beispiel ist eine passende JSON-Datei gegeben. Liegen die Daten im Payload der MQTT-Message nicht in einem solchen Format vor, muss ein Python Skript zur Transformation eingesetzt werden.
{
"Uhrzeit": "2024-03-12 12:34:53",
"Fertigungsauftrag": 1883,
"Temperatur_IST": 34.1
}
Beispielkonfiguration MQTT
Das folgende Beispiel zeigt eine Verbindung zu einem MQTT Broker mit der IP-Adresse 10.123.45.20 auf Port 1883. Alle Daten auf den Sub-Topics des Topics "Data" sind zu empfangen. Die Daten werden bereits als JSON gesendet und können direkt weitergeleitet werden.
[
{
"bucket": "mqtt_daten",
"writeKey": "123456789",
"source": "mqtt",
"params": {
"host": "10.123.45.20",
"port": 1883,
"topic": "Data/#",
"type": "json"
}
}
]