Intégration MQTT
Présentation basique
Le Pont MQTT offre une fonctionnalité de pontage et de transfert MQTT, prenant en charge le transfert des informations MQTT du dock vers des systèmes tiers via FlightHub 2 version On-Premises, offrant une solution de tâche collaborative pour les systèmes tiers et FlightHub 2 version On-Premises dans des scénarios industriels.
Topologie du système

Préparation avant de commencer
- Reportez-vous au Manuel de déploiement de DJI FlightHub 2 version On-Premises pour effectuer le déploiement.
- Le réseau qui héberge le Broker MQTT du système tiers doit être connecté au réseau qui héberge DJI FlightHub 2 version On-Premises. Le Broker MQTT prend en charge le type EMQX. Si un Broker MQTT autre que EMQX est utilisé, les utilisateurs doivent effectuer leurs propres tests pour garantir la compatibilité et la fonctionnalité.
- Le système tiers doit s’assurer que les ports du serveur MQTT et de l’URL du webhook sont ouverts. Reportez-vous à la section
Configuration du pontpour plus de détails.
Étapes de configuration
Configuration du pont
Saisissez la commande curl dans votre terminal pour configurer l’adresse du pont MQTT et configurer les webhooks pour surveiller l’état en ligne et hors ligne des appareils.
Exemple :
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"
}
}'
Description du paramètre :
mqtt:
- "http://10.94.98.15:38080" : doit être remplacé par l’adresse et le port où FlightHub 2 version On-Premises est exécuté.
- id : identifiant unique du pont. Peut être personnalisé et doit contenir uniquement des lettres et des chiffres.
- username : nom d’utilisateur autorisé à se connecter à un MQTT tiers.
- Mot de passe : mot de passe pour la connexion à un MQTT tiers. Ne peut pas être vide.
- proto_ver : numéro de version du Protocole MQTT. Actuellement, ne prend en charge que mqttv4. La valeur par défaut est mqttv4.
- address : adresse d’accès du MQTT tiers.
- clientid : identifiant client MQTT. Peut être personnalisé et doit contenir uniquement des lettres et des chiffres.
webhook:
- url : URL de l’interface qui suit les événements en ligne et hors ligne des appareils tiers.
- method : méthode de l’interface qui suit les événements en ligne et hors ligne des appareils tiers.
- path : chemin de l’interface qui suit les événements en ligne et hors ligne des appareils tiers.
- body_template : un modèle de chaîne pour le contenu envoyé à l’interface tierce pour les événements en ligne et hors ligne des appareils. Vous pouvez modifier les clés pour qu’elles correspondent aux exigences spécifiques de votre interface.
Configuration verification: les informations suivantes indiquent une configuration réussie. En cas d’échec, veuillez vérifier si l’adresse et le port sont correctement configurés et si le réseau est connecté.
{"result":{"code":0,"message":"success"},"data":null}
Interrogation du pont
Saisissez la commande curl dans votre terminal pour interroger l’état du Pont MQTT.
Exemple :
curl -X GET "http://10.94.98.15:38080/bridges/v1/resources"
Modification du pont
Saisissez la commande curl dans votre terminal pour interroger l’état du Pont MQTT. Lors de la modification, veuillez vous assurer que l’ID de MQTT et l’ID du webhook ne peuvent pas être modifiés. Pour les autres descriptions de paramètres, veuillez vous référer à la description des paramètres de la commande de configuration du pont.
Exemple :
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"
}
}
'
Activation ou désactivation du pont
Saisissez la commande curl dans votre terminal pour activer ou désactiver la fonction pont. Lorsqu’il est désactivé, les messages MQTT ne pourront pas être transférés vers le Broker MQTT de la plateforme tierce.
Exemple :
curl -X PUT "http://10.94.98.15:38080/bridges/v1/resources/switch" -H "Content-Type: application/json" -d '{
"enabled": true
}
'
Association du dock à un système tiers
Consultez le tutoriel Access to the Cloud Server pour associer le dock à un système tiers.
Association du Dock à FlightHub 2
Consultez la section Guide d’utilisateur de FlightHub 2 > Gestion de l’organisation > Gestion des appareils > Gestion du dock , pour associer le dock à une organisation dans FlightHub.
Vérification du pont
Vérification Mosquitto :
- Ouvrez deux terminaux et abonnez-vous à ‘thing/product/+/osd’ sur FlightHub 2 et le broker MQTT tiers.
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"
- Dans un troisième terminal, publiez le message ’test’ sur le sujet. Si ’test’ apparaît dans les deux terminaux abonnés, la configuration du pont est réussie.
mosquitto_pub -h <FlightHub 2 Broker IP> -p <FlightHub 2 Broker Port> -t "thing/product/sn1/osd" -m "test"
Vérification FlightHub 2 : si les données MQTT reçues par le broker tiers correspondent aux données de l’interface de FlightHub 2 On-premises, le pont est réussi.
Remarques
1. Stratégie d’utilisation de la fonction de diffusion en direct avec le système tiers et FlightHub 2
Le système tiers a une priorité plus élevée. Il peut prendre le contrôle de la diffusion en direct de FlightHub 2 après son démarrage. Lorsque le système tiers commence à diffuser, FlightHub 2 ne peut pas démarrer une diffusion en direct. Pour activer la diffusion en direct sur FlightHub 2, utilisez la commande suivante pour désactiver la diffusion en direct du système tiers.
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"
}'
Remarque : sn fait référence au numéro de série du dock.
2. Après avoir activé la fonction Pont MQTT, le dock transmettra automatiquement les fichiers multimédias de l’appareil directement au système tiers.
Reportez-vous au tutoriel Media Management pour configurer l’adresse du compartiment du système tiers.