Интеграция MQTT

2026-10-16

Общее введение

Мост MQTT предоставляет функции мостового соединения и пересылки MQTT, поддерживая передачу данных MQTT док-станции в сторонние системы через локальную версию FlightHub 2 и обеспечивая совместное выполнение задач между сторонними системами и локальной версией FlightHub 2 в отраслевых сценариях.

Топология системы

Подготовка к началу работы

  1. Для развертывания FlightHub 2 (локальная версия) см. руководство по развертыванию DJI FlightHub 2 (локальная версия).
  2. Сеть, в которой размещен брокер MQTT сторонней системы, должна быть соединена с сетью, в которой размещена локальная версия FlightHub 2. Брокер MQTT поддерживает тип EMQX. При использовании брокера MQTT, отличного от EMQX, необходимо самостоятельно проверить совместимость и корректность работы.
  3. Сторонняя система должна обеспечить открытые порты как для сервера MQTT, так и для URL вебхука. Дополнительные сведения см. в разделе Настройка моста.

Шаги настройки

Настройка моста

Введите команду curl в терминале, чтобы задать адрес моста MQTT и настроить вебхук для отслеживания состояний онлайн и оффлайн устройств.

Пример:

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

Описание параметров:

mqtt:

  • "http://10.94.98.15:38080": Необходимо заменить на адрес и порт, по которым запущена локальная версия FlightHub 2.
  • id: Уникальный идентификатор моста. Можно задать произвольно, допускаются только буквы и цифры.
  • username: Имя пользователя для подключения к стороннему MQTT.
  • password: Пароль для подключения к стороннему MQTT. Не может быть пустым.
  • proto_ver: Версия протокола MQTT. В настоящее время поддерживается только mqttv4. По умолчанию используется mqttv4.
  • address: Адрес доступа к стороннему MQTT.
  • clientid: Идентификатор клиента MQTT. Можно задать произвольно, допускаются только буквы и цифры.

webhook:

  • url: URL интерфейса для отслеживания событий онлайн и оффлайн устройств сторонней системы.
  • method: Метод интерфейса для отслеживания событий онлайн и оффлайн устройств.
  • path: Путь интерфейса для отслеживания событий онлайн и оффлайн устройств.
  • body_template: Строковый шаблон содержимого, отправляемого в интерфейс сторонней системы при событиях онлайн и оффлайн устройств. Можно изменить ключи в соответствии с требованиями интерфейса.

Проверка настройки: Следующая информация означает успешную настройку. Если возвращается ошибка, проверьте правильность адреса и порта, а также наличие сетевого соединения.

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

Запрос состояния моста

Введите команду curl в терминале, чтобы проверить состояние моста MQTT.

Пример:

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

Изменение моста

Введите команду curl в терминале, чтобы проверить состояние моста MQTT. При изменении убедитесь, что идентификаторы MQTT вебхука не изменяются. Для описания других параметров обратитесь к описанию параметров команды конфигурации моста.

Пример:

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

Включение или отключение моста

Введите команду curl в терминале, чтобы включить или отключить функцию моста. При отключении функции сообщения MQTT не будут пересылаться в брокере MQTT сторонней платформы.

Пример:

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

Привязка док-станции к сторонней системе

Обратитесь к руководству Доступ к облачному серверуopen in new window, чтобы привязать док-станцию к сторонней системе.

Привязка док-станции к FlightHub 2

См. руководство пользователя FlightHub 2 → Управление организацией → Управление устройствами → раздел Управление док-станцией, чтобы привязать док-станцию к организации в FlightHub.

Проверка моста

Проверка Mosquitto:

  1. Откройте два терминала и подпишитесь на 'thing/product/+/osd' в FlightHub 2 и брокера MQTT сторонней системы.
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. В третьем терминале опубликуйте сообщение 'test' в данный топик. Если сообщение 'test' появляется в обоих терминалах подписки, настройка Bridge выполнена успешно.
mosquitto_pub -h <FlightHub 2 Broker IP> -p <FlightHub 2 Broker Port> -t "thing/product/sn1/osd" -m "test"

Проверка FlightHub 2: Если данные MQTT, полученные сторонним брокером, совпадают с данными интерфейса локальной версии FlightHub 2, мост настроен корректно.

Примечания

1. Стратегия использования функции видеотрансляции со сторонней системой и FlightHub 2

Сторонняя система имеет более высокий приоритет. Она может перехватить видеотрансляцию у FlightHub 2 после ее запуска. Когда сторонняя система начинает трансляцию, FlightHub 2 не может запустить видеотрансляцию. Чтобы включить видеотрансляцию в FlightHub 2, используйте следующую команду для отключения трансляции сторонней системы.

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

Примечание: sn — серийный номер док-станции.

2. После включения функции моста MQTT док-станция будет автоматически пересылать медиафайлы с дрона напрямую в стороннюю систему.

См. руководство Управление медиафайламиopen in new window, чтобы настроить адрес хранилища сторонней системы.

Last Updated: