Event API

2026-10-16

Présentation de la fonctionnalité

EventAPI est le service de notification active de FlightHub Sync pour envoyer en temps réel des événements métier vers des plateformes tierces. Lors de l’utilisation d’EventAPI, notez ce qui suit :

    • Les utilisateurs doivent vérifier le champ x-dji-signature dans l’en-tête du service reçu. La signature est calculée via HMAC-SHA256 sur la base du jeton d’organisation, qui est utilisé pour vérifier la validité de la source de la requête.
  • Les utilisateurs peuvent configurer des règles de notification, sélectionner les types d’événements auxquels s’abonner et spécifier l’abonnement aux données pour tous les projets ou des projets spécifiques.
  • Le point de réception finale prend en charge les protocoles HTTP et HTTPS.
  • FlightHub 2 enverra les notifications d’événements en utilisant une adresse IP fixe. Les serveurs dans différentes régions utilisent des adresses IP différentes. Pour FlightHub version On-Premises, l’adresse IP spécifique dépend de votre serveur.
Pays/RégionIP
Serveur UE + serveur global18.198.174.64
3.64.50.113
3.71.214.14
63.177.169.61
52.3.45.199
52.55.215.248
52.73.49.179
34.237.190.206
34.237.182.49
34.228.131.169

Configuration des règles de notification

Gestion des règles

La liste des règles affiche les informations suivantes :

  • Nom de la règle : Défini par l’utilisateur, jusqu’à 60 caractères
  • Adresse push : URL de point de terminaison (HTTP/HTTPS)
  • Étendue des données : Tous les projets ou des projets spécifiques
  • Événements abonnés : Liste des types d’événements sélectionnés
  • Statut : Activé/désactivé
  • Actions : Modifier, supprimer

Configuration de l’étendue des données

  • Tous les projets : Inclut automatiquement tous les projets futurs.
  • Projets spécifiques : Chaque projet ne peut être référencé que par une seule règle personnalisée (hors règles « Tous les projets »). Les projets déjà référencés seront grisés.

Remarque : Si une règle « Tous les projets » existe déjà dans l’organisation, la création d’une nouvelle règle pour des projets spécifiques déclenchera un avertissement push de double événement.

Audit des journaux de livraison

EventAPI fournit des statistiques de journaux de livraison sur 7 jours, comprenant :

  • Taux de réussite : Affiché sous forme de pourcentage, un rappel 200 est considéré comme réussi.
  • Nombre total d’événements : Nombre d’événements générés au cours des 7 derniers jours
  • Nombre de défaillances : Nombre total de livraisons ayant échoué sur 7 jours

Les journaux des 7 derniers jours peuvent être téléchargés au format CSV. Seules les données de cette période sont conservées.

Types d’événements push

Notification de synchronisation de fichier

{
  "id": "e3b0c442-73fc-1c14-9afb-f17e2fa6826a", // Identifiant universel unique (UUID) du message d'événement
  "type": "file_sync_success", // Type d'événement : notification de fichier synchronisé
  "created_at": 1767875288, // Horodatage de l'envoi de l'événement (secondes)
  "data": {
    "task_id": "sync_task_10001", // Identifiant universel unique de la tâche de synchronisation
    "organization_id": "org_123456_xxxxxx", // ID de l'organisation
    "project_id": "proj_789012_xxxxxx", // ID du projet du fichier
    "file_id": "file_345678_xxxxxx", // ID du fichier dans FlightHub
    "file_type": "application/pdf", // Type de fichier (route waypoint, enregistrement de vol, modèle ou fichier multimédia)
    "file_external_key": "customer_storage/2026/01/report_09.pdf", // Clé d'objet (chemin de stockage) du fichier dans le bucket de stockage tiers
    "file_bytes_size": 1048576, // Taille du fichier (octets)
    "fh2_file_path": "/project_docs/report/report_09.pdf", // Chemin logique original du fichier dans DJI FlightHub 2
   }
}

Obtenir la liste d’avertissements IA et l’instantané

{
  "id": "e3b0c442-98fc-1c14-9afb-f17e2fa6826a" , // UUID du message d'événement
  "type": "ai_alert_record", // Type d'événement : enregistrements de détection IA
  "created_at": 1767875288, // Horodatage de l'envoi de l'événement (secondes)
  "data": {
    "alert_uuid": "e3b0c442-98fc-1c14-9afb-f17e2fa6826a", // UUID des enregistrements d'alerte
    "algorithm_source": 100002, // // ID de la source de l'algorithme. Les valeurs d'énumération sont les suivantes :
                                   // 0 : Algorithme intelligent officiel DJI
                                   // 1 : Détection en lumière visible DJI de personnes, véhicules et bateaux
                                   // 2 : Détection infrarouge DJI de personnes, véhicules et bateaux
                                   // 3 : Détection de température infrarouge DJI
                                   // 255 : Algorithmes tiers AI-inside embarqués sur l'aéronef
                                   // 100001 : Algorithmes tiers cloud AI-LINK
                                   // 100002 : Détection multimodale d'objets DJI
    "drone_sn": "1581F6XXXXXX00A6XXXX", // Numéro de série de l'aéronef exécutant la tâche
    "file_id": 123456, // ID du fichier multimédia original associé
    "file_url": "https://file-storage.djicdn.com/example/path/image.jpg?auth_key=xxxx", // Lien de téléchargement de l'image originale (contient les paramètres d'authentification)
    "flight_id": "f17e2fa6-826a-48c5-a89a-fffe4093xxxx", // ID de vol associé
    "gateway_sn": "6QCDL8XXXXXX02XXXX", // SN du dispositif dock/passerelle associé
    "interval_seconds": 0, // Intervalle ou durée de l'alerte (secondes). Par défaut à 0 pour les algorithmes non-cloud
    "labels": [
      "lights"// Étiquette/type du sujet détecté
    ],
    "location": {
      "altitude": 80.5, // L'altitude lorsque l'alerte s'est produite (mètres)
      "latitude": 22.123456, // La latitude lorsque l'alerte s'est produite. Pour les algorithmes embarqués, il s'agit de la coordonnée GPS du centre du champ de vision de la caméra au moment de l'alerte. Pour les algorithmes cloud, il s'agit de la position de l'aéronef.
      "longitude": 113.123456, // La longitude lorsque l'alerte s'est produite. Pour les algorithmes embarqués, il s'agit de la coordonnée GPS du centre du champ de vision de la caméra au moment de l'alerte. Pour les algorithmes cloud, il s'agit de la position de l'aéronef.
    },
    "project_id": "fe2400a5-5a74-4cb5-8374-548b7eaxxxxx", // UUID du projet affilié
    "task_name": "FlyToTask_Inspect_ZoneA", // Nom de la tâche de vol associée
    "thumbnail_url": "https://oss-cn-hangzhou.aliyuncs.com/example/thumbnail.jpeg?Expires=1767961676&Signature=xxxx", // Lien de téléchargement de la vignette (inclut la signature et la date d'expiration)
    "timestamp": 1767875275677, // L'horodatage de la détection IA (millisecondes)
  }
}

Notification de progression d’exécution du flux de travail déclenché

Utilisée pour pousser la progression d’exécution des nœuds du flux d’envoi automatique (flux de réponse aux incidents), permettant aux systèmes tiers de synchroniser en temps réel l’état des tâches, les états terminaux et les marqueurs de fausse alerte.

{
  "event_type": "alert_workflow_progress",         // Type d’événement : progression d’exécution du flux de travail déclenché
  "event_id": "e3b0c442-73fc-1c14-9afb-f17e2fa6826a", // ID unique du message d’événement (UUID)
  "org_id": "org_123456_xxxxxx",                   // ID de l’organisation à laquelle appartient cet événement
  "project_id": "proj_789012_xxxxxx",              // ID du projet auquel appartient cet événement (facultatif)
  "created_at": 1767875288,                        // Horodatage de l’envoi de l’événement (secondes)
  "data": {
    "incident_id": "incident_2026062900001",       // ID de l’événement d’alerte
    "workflow_uuid": "wf_uuid_xxxxxxxxxxxx",       // UUID du flux de travail
    "drone_sn": "1581F5BKD2380030XXXXX",           // Numéro de série de l’appareil opérationnel
    "node_type": "command_task",                   // Type de nœud : command_task (tâche FlyTo) / device_actions (actions de l’appareil)
    "status": 1,                                   // Code d’état du nœud actuel, dépend de node_type ; énumérations ci-dessous :
                                                   // node_type = "command_task" (nœud tâche FlyTo) :
                                                   //   0 : En attente               (non terminal)
                                                   //   1 : En cours d’exécution     (non terminal)
                                                   //   2 : Succès                   (terminal)
                                                   //   3 : Intervention manuelle    (terminal)
                                                   //   4 : Échec d’exécution        (terminal)
                                                   // node_type = "device_actions" (nœud action de l’appareil) :
                                                   //   0 : Succès                   (terminal)
                                                   //   1 : Succès partiel           (terminal)
                                                   //   2 : Échec                    (terminal)
                                                   //   3 : En cours                 (non terminal)
                                                   //   4 : Intervention manuelle    (terminal)
    "is_false_alarm": false,                       // Marqué comme fausse alerte ou non (valeur réelle uniquement en état terminal ; fixée à false hors état terminal)
    "flight_id": "task_uuid_xxxxxxxxxxxx"          // UUID de l’execution_task en cours
  }
}

Notification de chargement de fichier multimédia

{
  "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "type": "media_file_uploaded",
  "created_at": 1767875288,
  "data": {
    "organization_id": "org_123456_xxxxxx",
    "project_id": "proj_789012_xxxxxx",
    "file_id": "file_345678_xxxxxx",
    "file_name": "DJI_20260108_120000_0001.JPG",
    "file_type": "image/jpeg",
    "file_size": 10485760,
    "device_sn": "1581F6XXXXXX00A6XXXX",
    "flight_id": "f17e2fa6-826a-48c5-a89a-fffe4093xxxx"
  }
}

Notification de chargement et de mise à jour du fichier d’itinéraire de vol

{
  "type": "wayline_file_uploaded",
  "org_id": "1024dd05-34ce-46b6-a872-cb32b8c98f64",
  "project_id": "38535b47-b972-4663-b1ce-5bd5a29224a4",
  "created_at": 1769414678,
  "data": {
    "id": "testcda7-c97d-4bf6-8f8f-b490b9b18401", // ID de la route de vol
    "name": "New waypoint route (2)",           // Nom de la route de vol
    "object_key": "1testd05-34ce-46b6-a872-cb32b8c98f64/test9b47-b972-4663-b1ce-5bd5test24a4/e5testb3-2cf8-49af-b49b-64test0032c7/New waypoint route (2).kmz", // Clé de stockage objet de la route de vol
    "type": 5 // Type de fichier. 5 indique la route de vol
  }
}

Notification de fin de reconstruction de modèle

{
  "type": "model_post_reconstruction",
  "org_id": "105ddd05-34ce-46b6-a872-cb32b8c98f64",
  "project_id": "38559b47-b972-4663-b1ce-5bd5a29224a4",
  "created_at": 1769414678,
  "data": {
    "id": "2e12cda7-c97d-4bf6-8f8f-btest9b18401", // ID du modèle
    "name": "xx Model",                      // Nom du modèle
    "object_key": "105ddd05-34ce-46b6-a872-cb32b8c98f64/38559b47-b972-4663-b1ce-5bd5a29224a4/etestbb3-2cf8-49af-b49b-64b1610032c7/Model", // Clé de stockage objet du modèle
    "type": 8//8 : Modèle 2D, 9 : Modèle 3D
  }
}

Notification de fin anormale de RTH

{
  "id": "9ab96be1-0231-4b2c-9892-2221188c323b",
  "type": "device_exit_return_home",
  "created_at": 1769400986,
  "data": {
    "action": 1,
    "event_type": "device_exit_return_home",
    "notify_type": "device_exit_return_home",
    "organization_uuid": "8test46f-2cd5-476b-9f33-415c98de11a5",
    "project_uuid": "8test9a5-d2ba-423d-a03e-e3b323c40810",
    "reason": null, // Raison de la sortie anormale de RTH : "2" : "Échec de l'initialisation de l'arbre de comportement" ; "3" : "Entouré d'obstacles" ; "4" : "Restriction de vol déclenchée" ; "5" : "Obstacle trop proche" ; "6" : "Pas de signal GPS" ; "7" : "Les indicateurs de sortie de position GPS et VIO sont faux" ; "8" : "Erreur de position importante entre la fusion GPS et VIO"
    "sn": "158TESTGD24BK0010114" // SN de l'aéronef qui subit la sortie anormale de RTH
  }
}

Notification d’ajout/modification d’annotation d’organisation

{
  "created_at": 1772803375,
  "data": {
    "count": 1,
    "download_url": "/openapi/v0.1/map/data-sync/files/33711783-bf96-440d-baa2-0e71afa1d485/f7356cd3-53de-4318-955f-306cbcc60ca2/0",
    "format": "kml-gz",
    "geometry_types": [
      "polygon"
    ],
    "sync_id": "annotation-f7356cd3-53de-4318-955f-306cbcc60ca2",
    "sync_type": 0
  },
  "id": "5df19eca-65cf-4975-a942-09fdcfd7bdf9",
  "org_id": "105ddd05-34ce-46b6-a872-cb32b8c98f64",
  "project_id": "33711783-bf96-440d-baa2-0e71afa1d485",
  "type": "map_geo_elements_update"
}

Push de mise à jour de l’adresse RTSP

{
  "converter_name": "Example Converter",
  "converter_id": "29f4f54b-93af-4fd3-aed6-bd3d768082e9",
  "sn": "SN1234567890",
  "camera_index": "89-0-0",
  "device_callsign": "DRONE-01",
  "url": "rtsp://192.168.1.10:554/live/stream",
  "username": "rtsp_user",
  "password": "rtsp_password"
}

API de cartographie FlightHub - Progression de la reconstruction du modèle

{
    "msg_type": "model_reconstruction_percent_change", // Type de message, model_reconstruction_percent_change=Reconstruction de modèle, model_zip_change=Compression de modèle
    "resource_uuid": "7417bac3-00a4-4e07-b078-233c77e3fdf9",
    "model_uuid": "3d33643c-de0d-4070-b155-8cf791e662e2",
    "model_status": 14, // Statut de reconstruction, 9=Compression de modèle, 12=En attente de ressources, 13=Échec d'obtention des ressources, 14=Reconstruction en cours, 15=Reconstruction réussie, 16=Reconstruction annulée
    "model_size": 37353992,
    "reconstruction_progress": 100, // Progression de la reconstruction, 0-100
    "error_code": 0, // Code d'erreur de reconstruction
    "zip_status": 2, // Statut de compression, 1=Compression en cours, 2=Compression terminée, 3=Échec de compression
    "zip_progress": 100, // Progression de la compression 0-100
    "zip_file_key": "https://test-file-storage.djicdn.com/5a6f9d4b-2a38-4b4b-86f9-3a678da0bf4a/open_reconstruction/7417bac3-00a4-4e07-b078-233c77e3fdf9/3D/3d33643c-de0d-4070-b155-8cf791e662e2.zip?auth_key=1767942603-0-0-150d3c28868e91dd2446aef97c26de85", // Adresse de téléchargement du fichier de sortie compressé
}

Last Updated: