Integracja MQTT

2026-10-16

Podstawowe wprowadzenie

MQTT Bridge zapewnia funkcje łączenia (bridging) i przekazywania MQTT, obsługując przekazywanie informacji MQTT docka do systemów innych firm za pośrednictwem wersji on-premises FlightHub 2, oferując rozwiązanie zadań współpracy dla systemów innych firm i wersji on-premises FlightHub 2 w scenariuszach przemysłowych.

Topologia systemu

Przygotowanie przed rozpoczęciem

  1. Zapoznaj się z Podręcznikiem wdrożenia wersji on-premises DJI FlightHub 2, aby wdrożyć wersję on-premises FlightHub 2.
  2. Sieć obsługująca broker MQTT systemu innej firmy musi być połączona z siecią obsługującą wersję on-premises FlightHub 2. Broker MQTT obsługuje typ EMQX. Jeśli używany jest broker MQTT inny niż EMQX, użytkownicy muszą przeprowadzić własne testy, aby zapewnić zgodność i działanie.
  3. System innej firmy musi zapewnić otwarcie portów zarówno dla serwera MQTT, jak i adresu URL webhook. Więcej szczegółów znajdziesz w sekcji Konfigurowanie bridge .

Kroki konfiguracji

Konfigurowanie bridge

Wprowadź polecenie curl w terminalu, aby skonfigurować adres bridge MQTT i skonfigurować webhooki do monitorowania statusu online i offline urządzeń.

Przykład:

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

Opis parametrów:

mqtt:

  • "http://10.94.98.15:38080": należy zastąpić adresem i portem, na którym działa wersja on-premises FlightHub 2.
  • id: jednoznaczny identyfikator bridge. Można go dostosować; może zawierać tylko litery i cyfry.
  • username: nazwa użytkownika uprawniona do połączenia z MQTT innej firmy.
  • password: hasło do połączenia z MQTT innej firmy. Nie może być puste.
  • proto_ver: numer wersji protokołu MQTT. Obecnie obsługuje tylko mqttv4. Wartość domyślna to mqttv4.
  • address: adres dostępu do MQTT innej firmy.
  • clientid: identyfikator klienta MQTT. Można go dostosować; może zawierać tylko litery i cyfry.

webhook:

  • url: adres URL interfejsu śledzącego zdarzenia online i offline urządzeń innych firm.
  • method: metoda interfejsu śledzącego zdarzenia online i offline urządzeń innych firm.
  • path: ścieżka interfejsu śledzącego zdarzenia online i offline urządzeń innych firm.
  • body_template: szablon ciągu dla treści wysyłanej do interfejsu innej firmy dla zdarzeń online i offline urządzeń. Możesz zmodyfikować klucze, aby dopasować je do konkretnych wymagań swojego interfejsu.

Weryfikacja konfiguracji: poniższe informacje wskazują, że konfiguracja powiodła się. Jeśli zwrócony zostanie błąd, sprawdź, czy adres i port są poprawnie skonfigurowane i czy sieć jest połączona.

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

Zapytanie o bridge

Wprowadź polecenie curl w terminalu, aby zapytać o status bridge MQTT.

Przykład:

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

Modyfikacja bridge

Wprowadź polecenie curl w terminalu, aby zapytać o status bridge MQTT. Podczas modyfikacji upewnij się, że ID MQTT i ID webhook nie mogą zostać zmienione. Opisy pozostałych parametrów znajdują się w opisie parametrów polecenia konfiguracji bridge.

Przykład:

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

Włączanie lub wyłączanie bridge

Wprowadź polecenie curl w terminalu, aby włączyć lub wyłączyć funkcję bridge. Po wyłączeniu wiadomości MQTT nie będą mogły być przekazywane do brokera MQTT platformy innej firmy.

Przykład:

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

Wiązanie docka z systemem innej firmy

Zapoznaj się z tutorialem Dostęp do serwera w chmurzeopen in new window, aby powiązać dock z systemem innej firmy.

Wiązanie docka z FlightHub 2

Zapoznaj się z sekcją Podręcznik użytkownika FlightHub 2 ->Zarządzanie organizacją->Zarządzanie urządzeniami ->Zarządzanie dockiem, aby powiązać dock z organizacją w FlightHub.

Weryfikacja bridge

Weryfikacja Mosquitto:

  1. Otwórz dwa terminale i subskrybuj 'thing/product/+/osd' zarówno na FlightHub 2, jak i na brokerze MQTT innej firmy.
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. W trzecim terminalu opublikuj wiadomość 'test' na temat. Jeśli 'test' pojawi się w obu subskrybujących terminalach, konfiguracja bridge powiodła się.
mosquitto_pub -h <FlightHub 2 Broker IP> -p <FlightHub 2 Broker Port> -t "thing/product/sn1/osd" -m "test"

Weryfikacja FlightHub 2: jeśli dane MQTT otrzymane przez broker innej firmy odpowiadają danym interfejsu on-premises FlightHub 2, bridge jest poprawny.

Uwagi

1. Strategia korzystania z funkcji transmisji na żywo z systemem innej firmy i FlightHub 2

System innej firmy ma wyższy priorytet. Może przejąć transmisję na żywo z FlightHub 2 po jej uruchomieniu. Gdy system innej firmy rozpocznie przesyłanie strumienia, FlightHub 2 nie może uruchomić transmisji na żywo. Aby włączyć transmisję na żywo w FlightHub 2, użyj następującego polecenia, aby wyłączyć transmisję na żywo systemu innej firmy.

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

Uwaga: sn odnosi się do numeru seryjnego docka.

2. Po włączeniu funkcji MQTT Bridge dock automatycznie przekieruje pliki multimedialne ze statku powietrznego bezpośrednio do systemu innej firmy.

Zapoznaj się z tutorialem Zarządzanie plikami multimedialnymiopen in new window, aby skonfigurować adres zasobnika systemu innej firmy.

Last Updated: