Integracja MQTT
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
- Zapoznaj się z Podręcznikiem wdrożenia wersji on-premises DJI FlightHub 2, aby wdrożyć wersję on-premises FlightHub 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.
- 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 chmurze, 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:
- 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"
- 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 multimedialnymi, aby skonfigurować adres zasobnika systemu innej firmy.