Integrazione MQTT

2026-10-16

Introduzione di base

MQTT Bridge fornisce funzionalità di bridging e forwarding MQTT, supportando l'inoltro delle informazioni MQTT del dock a sistemi di terze parti tramite la versione on-premises di FlightHub 2, offrendo una soluzione di attività collaborative per i sistemi di terze parti e la versione on-premises di FlightHub 2 negli scenari industriali.

Topologia di sistema

Preparazione prima di iniziare

  1. Fai riferimento al Manuale di distribuzione della versione On-Premises di DJI FlightHub 2 per distribuire la versione on-premises di FlightHub 2.
  2. La rete che ospita il broker MQTT del sistema di terze parti deve essere connessa alla rete che ospita la versione on-premises di FlightHub 2. Il broker MQTT supporta il tipo EMQX. Se viene utilizzato un broker MQTT diverso da EMQX, gli utenti devono condurre i propri test per garantire compatibilità e funzionamento.
  3. Il sistema di terze parti deve garantire che le porte sia del server MQTT sia dell'URL webhook siano aperte. Fai riferimento alla sezione Configurazione del bridge per maggiori dettagli.

Passaggi di configurazione

Configurazione del bridge

Inserisci il comando curl nel tuo terminale per impostare l'indirizzo del bridge MQTT e configurare i webhook per il monitoraggio dello stato online e offline dei dispositivi.

Esempio:

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"
    }
}'

Descrizione dei parametri:

mqtt:

  • "http://10.94.98.15:38080": deve essere sostituito con l'indirizzo e la porta in cui è in esecuzione la versione on-premises di FlightHub 2.
  • id: identificatore univoco del bridge. Può essere personalizzato e deve contenere solo lettere e numeri.
  • username: nome utente autorizzato a connettersi all'MQTT di terze parti.
  • password: password per la connessione all'MQTT di terze parti. Non può essere vuota.
  • proto_ver: numero della versione del protocollo MQTT. Attualmente supporta solo mqttv4. Il valore predefinito è mqttv4.
  • address: indirizzo di accesso dell'MQTT di terze parti.
  • clientid: identificatore client MQTT. Può essere personalizzato e deve contenere solo lettere e numeri.

webhook:

  • url: URL dell'interfaccia che traccia gli eventi online e offline dei dispositivi di terze parti.
  • method: metodo dell'interfaccia che traccia gli eventi online e offline dei dispositivi di terze parti.
  • path: percorso dell'interfaccia che traccia gli eventi online e offline dei dispositivi di terze parti.
  • body_template: template di stringa per il contenuto inviato all'interfaccia di terze parti per gli eventi online e offline dei dispositivi. Puoi modificare le chiavi per adattarle ai requisiti specifici della tua interfaccia.

Verifica della configurazione: le seguenti informazioni indicano che la configurazione è riuscita. Se viene restituito un errore, controlla se l'indirizzo e la porta sono configurati correttamente e se la rete è connessa.

{"result":{"code":0,"message":"success"},"data":null}

Query del bridge

Inserisci il comando curl nel tuo terminale per interrogare lo stato del bridge MQTT.

Esempio:

curl -X GET "http://10.94.98.15:38080/bridges/v1/resources"

Modifica del bridge

Inserisci il comando curl nel tuo terminale per interrogare lo stato del bridge MQTT. Durante la modifica, assicurati che l'ID dell'MQTT e l'ID del webhook non possano essere modificati. Per le altre descrizioni dei parametri, fai riferimento alla descrizione dei parametri del comando di configurazione del bridge.

Esempio:

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"
    }
}
'

Abilitazione o disabilitazione del bridge

Inserisci il comando curl nel tuo terminale per abilitare o disabilitare la funzione di bridge. Quando è disabilitata, i messaggi MQTT non potranno essere inoltrati al broker MQTT della piattaforma di terze parti.

Esempio:

curl -X PUT "http://10.94.98.15:38080/bridges/v1/resources/switch" -H "Content-Type: application/json" -d '{
    "enabled": true
}
'

Associazione del dock al sistema di terze parti

Fai riferimento al tutorial Accesso al server cloudopen in new window per associare il dock a un sistema di terze parti.

Associazione del dock a FlightHub 2

Fai riferimento alla sezione Manuale utente FlightHub 2 ->Gestione dell'organizzazione->Gestione dei dispositivi ->Gestione del dock per associare il dock a un'organizzazione in FlightHub.

Verifica del bridge

Verifica Mosquitto:

  1. Apri due terminali e sottoscriviti a 'thing/product/+/osd' sia su FlightHub 2 sia sul broker MQTT di terze parti.
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"
  1. In un terzo terminale, pubblica il messaggio 'test' sul topic. Se 'test' appare in entrambi i terminali sottoscritti, la configurazione del bridge è riuscita.
mosquitto_pub -h <FlightHub 2 Broker IP> -p <FlightHub 2 Broker Port> -t "thing/product/sn1/osd" -m "test"

Verifica FlightHub 2: se i dati MQTT ricevuti dal broker di terze parti corrispondono ai dati dell'interfaccia on-premises di FlightHub 2, il bridge è riuscito.

Note

1. Strategia per l'utilizzo della funzione livestream con il sistema di terze parti e FlightHub 2

Il sistema di terze parti ha priorità più alta. Può subentrare nel livestream da FlightHub 2 dopo l'avvio. Quando il sistema di terze parti avvia lo streaming, FlightHub 2 non può avviare un livestream. Per abilitare il livestream su FlightHub 2, utilizza il seguente comando per disabilitare il livestream del sistema di terze parti.

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"  
}'

Nota: sn si riferisce al numero di serie del dock.

2. Dopo aver abilitato la funzione MQTT Bridge, il dock inoltrerà automaticamente i file multimediali dell'aeromobile direttamente al sistema di terze parti.

Fai riferimento al tutorial Gestione dei file multimedialiopen in new window per configurare l'indirizzo del bucket del sistema di terze parti.

Last Updated: