MQTT-Integration
Grundlegende Einführung
Die MQTT Bridge bietet MQTT-Bridging- und Weiterleitungsfunktionen, die die Weiterleitung von MQTT-Informationen des Docks an Drittsysteme über die lokale Version von FlightHub 2 unterstützen und eine kollaborative Aufgabenlösung für Drittsysteme und die lokale Version von FlightHub 2 in Industrieszenarien bieten.
Systemtopologie

Vorbereitung vor dem Starten
- Beachten Sie das Bereitstellungshandbuch der DJI FlightHub 2 On-Premises Version, um die lokale Version von FlightHub 2 bereitzustellen.
- Das Netzwerk, das den MQTT Broker des Drittsystems hostet, muss mit dem Netzwerk verbunden sein, das die lokale Version von FlightHub 2 hostet. Der MQTT Broker unterstützt den EMQX-Typ. Wenn ein anderer MQTT Broker als EMQX verwendet wird, müssen Sie eigene Tests durchführen, um Kompatibilität und Funktionalität sicherzustellen.
- Das Drittsystem muss sicherstellen, dass die Anschlüsse sowohl für den MQTT-Server als auch für die Webhook-URL geöffnet sind. Weitere Details erhalten Sie im Abschnitt
Bridge konfigurieren.
Konfigurationsschritte
Bridge konfigurieren
Geben Sie den curl-Befehl in Ihrem Terminal ein, um die MQTT-Bridge-Adresse einzurichten und Webhooks zur Überwachung des Online- und Offline-Status von Geräten zu konfigurieren.
Beispiel:
curl -X POST "http://10.94.98.15:38080/bridges/v1/resources" -H "Content-Type: application/json" -d '{
"mqtt": {
"id": "mqttbridge2",
"config": {
"username": "admin",
"proto_ver": "mqttv4",
"password": "",
"address": "10.94.98.17:1883",
"clientid": "fh2-bridge2"
}
},
"webhook": {
"config": {
"url": "http://10.94.98.17:8080",
"method": "POST",
"path": "/",
"body_template": "{ \"username\": \"${username}\", \"timestamp\": ${timestamp}, \"reason\": \"${reason}\", \"action\": \"${event}\", \"clientid\": \"${clientid}\" }"
},
"id": "webhook1"
}
}'
Parameterbeschreibung:
mqtt:
- „http://10.94.98.15:38080“: Muss durch die Adresse und den Anschluss ersetzt werden, an dem die lokale Version von FlightHub 2 läuft.
- id: Eindeutige Kennung der Bridge. Kann angepasst werden und darf nur aus Buchstaben und Zahlen bestehen.
- username: Benutzername, der zum Verbinden mit Drittanbieter-MQTT berechtigt ist.
- password: Passwort für die Verbindung zu Drittanbieter-MQTT. Darf nicht leer sein.
- proto_ver: Protokollversionsnummer von MQTT. Derzeit wird nur mqttv4 unterstützt. Standard ist mqttv4.
- address: Zugriffsadresse des Drittanbieter-MQTT.
- clientid: MQTT-Client-Kennung. Kann angepasst werden und darf nur aus Buchstaben und Zahlen bestehen.
webhook:
- url: URL für die Schnittstelle, die Online- und Offline-Ereignisse von Drittanbietergeräten verfolgt.
- method: Methode für die Schnittstelle, die Online- und Offline-Ereignisse von Drittanbietergeräten verfolgt.
- path: Pfad für die Schnittstelle, die Online- und Offline-Ereignisse von Drittanbietergeräten verfolgt.
- body_template: Eine String-Vorlage für den Inhalt, der an die Drittanbieter-Schnittstelle für Online- und Offline-Ereignisse von Geräten gesendet wird. Sie können die Schlüssel an die spezifischen Anforderungen Ihrer Schnittstelle anpassen.
Konfigurationsprüfung: Die folgenden Informationen zeigen eine erfolgreiche Konfiguration an. Wenn ein Fehler zurückgegeben wird, überprüfen Sie bitte, ob Adresse und Anschluss korrekt konfiguriert sind und ob das Netzwerk verbunden ist.
{"result":{"code":0,"message":"success"},"data":null}
Bridge abfragen
Geben Sie den curl-Befehl in Ihrem Terminal ein, um den Status der MQTT Bridge abzufragen.
Beispiel:
curl -X GET "http://10.94.98.15:38080/bridges/v1/resources"
Bridge ändern
Geben Sie den curl-Befehl in Ihrem Terminal ein, um den Status der MQTT Bridge abzufragen. Beim Ändern stellen Sie bitte sicher, dass die ID von MQTT und die ID des Webhooks nicht geändert werden können. Für weitere Parameterbeschreibungen beachten Sie bitte die Parameterbeschreibung des Konfigurations-Bridge-Befehls.
Beispiel:
curl -X PUT "http://10.94.98.15:38080/bridges/v1/resources" -H "Content-Type: application/json" -d '
{
"mqtt": {
"id": "mqttbridge2",
"config": {
"username": "admin",
"proto_ver": "mqttv4",
"password": "",
"address": "10.94.98.17:1883",
"clientid": "fh2-bridge2"
}
},
"webhook": {
"config": {
"url": "http://10.94.98.17:8080",
"method": "POST",
"path": "/",
"body_template": "{ \"username\": \"${username}\", \"timestamp\": ${timestamp}, \"reason\": \"${reason}\", \"event\": \"${event}\", \"clientid\": \"${clientid}\" }"
},
"id": "webhook1"
}
}
'
Bridge aktivieren oder deaktivieren
Geben Sie den curl-Befehl in Ihrem Terminal ein, um die Bridge-Funktion zu aktivieren oder zu deaktivieren. Wenn diese Funktion deaktiviert ist, können MQTT-Nachrichten nicht an den MQTT Broker der Drittanbieterplattform weitergeleitet werden.
Beispiel:
curl -X PUT "http://10.94.98.15:38080/bridges/v1/resources/switch" -H "Content-Type: application/json" -d '{
"enabled": true
}
'
Binden des Docks an ein Drittanbietersystem
Beziehen Sie sich auf das Tutorial Access to the Cloud Server, um das Dock an ein Drittanbietersystem zu binden.
Binden des Docks an FlightHub 2
Beziehen Sie sich auf das FlightHub 2 Benutzerhandbuch > Organisationsverwaltung > Geräteverwaltung > Dock-Verwaltung Abschnitt , um das Dock einer Organisation in FlightHub zuzuordnen.
Bridge überprüfen
Mosquitto-Überprüfung:
- Öffnen Sie zwei Terminals und abonnieren Sie „thing/product/+/osd“ sowohl auf FlightHub 2 als auch auf dem Drittanbieter-MQTT-Broker.
mosquitto_sub -h <FlightHub 2 Broker IP> -p <FlightHub 2 Broker Port> -t "thing/product/+/osd"
mosquitto_sub -h <Third-Party Broker IP> -p <Third-Party Broker Port> -t "thing/product/+/osd"
- Veröffentlichen Sie in einem dritten Terminal die Nachricht „test“ im Thema. Wenn „test“ in beiden abonnierenden Terminals erscheint, ist die Bridge-Konfiguration erfolgreich.
mosquitto_pub -h <FlightHub 2 Broker IP> -p <FlightHub 2 Broker Port> -t "thing/product/sn1/osd" -m "test"
FlightHub 2-Überprüfung: Wenn die vom Drittanbieter-Broker empfangenen MQTT-Daten mit den On-Premises-Schnittstellendaten von FlightHub 2 übereinstimmen, ist die Bridge erfolgreich.
Hinweise
1. Strategie zur Nutzung der Livestream-Funktion mit dem Drittsystem und FlightHub 2
Das Drittsystem hat höhere Priorität. Es kann den Livestream von FlightHub 2 übernehmen, nachdem es gestartet ist. Wenn das Drittsystem mit dem Streaming beginnt, kann FlightHub 2 keinen Livestream starten. Um den Livestream auf FlightHub 2 zu aktivieren, verwenden Sie den folgenden Befehl, um den Livestream des Drittsystems zu deaktivieren.
curl -X POST http://10.94.98.15:38081/thing-access-service/inner/tas/bridges/live/release -H 'Content-Type: application/json' -d '{
"sn": "6QCDL870020196"
}'
Hinweis: SN bezieht sich auf die Seriennummer des Docks.
2. Nachdem die MQTT Bridge-Funktion aktiviert wurde, leitet das Dock Mediendateien vom Fluggerät automatisch direkt an das Drittsystem weiter.
Beziehen Sie sich auf das Tutorial zur Media Management, um die Bucket-Adresse des Drittsystems zu konfigurieren.