Дрон → Сервер
Топики для передачи данных и статусов от дрона к серверу.
1. data
Телеметрия- MQTT Topic:
{DRONE_ID}_data - QoS: 1
Периодическая публикация телеметрии дрона: координаты, высота, скорость, заряд батареи, курс, статус миссии и флаги режимов управления. Публикуется по таймеру (~0.7 с).
positionPositionrequiredpointPointrequiredlatfloatrequiredlongfloatrequiredheightfloatdirectionintrequiredspeedfloatbattery_levelfloatrequiredheadingfloatrequiredstatusstrrequiredonline— В сети, готов к работеoffline— Не в сетиon mission— Выполняет миссиюtaking off— Взлетаетlanding— Совершает посадкуreturning— Возвращается на точку стартаpaused— Миссия на паузеemergency landing— Аварийная посадкаmission_iduuidrequiredcommand_iduuidrequiredtrackerbooleanrequiredtracker_camerastruse_hand_modebooleanrequiredobstacle_avoidancebooleanrequiredaimobjectcarint{
"topic": "10001_data",
"message": {
"position": {
"point": {
"lat": 55.751244,
"long": 37.618423,
"height": 50.0
},
"direction": 180.0,
"speed": 5.2
},
"battery_level": 85.0,
"heading": 180.0,
"status": "on mission",
"mission_id": "01939ba1-fd8a-7ed4-acb1-35791c03c70d",
"command_id": "0193909e-e71c-7b38-8ed7-ab4d7aed7e1c",
"tracker": true,
"aim": null,
"use_hand_mode": false,
"obstacle_avoidance": true,
"tracker_camera": null
}
}
2. mission_received
Миссии- MQTT Topic:
{DRONE_ID}_mission_received - QoS: 1
Подтверждение получения миссии дроном.
messageuuidrequired{
"topic": "10001_mission_received",
"message": "01939ba1-fd8a-7ed4-acb1-35791c03c70d"
}
3. mission_completed
Миссии- MQTT Topic:
{DRONE_ID}_mission_completed - QoS: 1
Уведомление о завершении миссии.
messageuuidrequired{
"topic": "10001_mission_completed",
"message": "01939ba1-fd8a-7ed4-acb1-35791c03c70d"
}
4. mission_cancelled
Миссии- MQTT Topic:
{DRONE_ID}_mission_cancelled - QoS: 1
Уведомление об отмене миссии.
messageuuidrequired{
"topic": "10001_mission_cancelled",
"message": "01939ba1-fd8a-7ed4-acb1-35791c03c70d"
}
5. photo
Телеметрия- MQTT Topic:
{DRONE_ID}_photo - QoS: 1
Данные фото с детектируемым объектом. Включает изображение в Base64.
namestrrequiredidinttimedatetimerequiredphotoBase64requiredlatfloatrequiredlongfloatrequired{
"topic": "10001_photo",
"message": {
"name": "car",
"id": 1,
"time": "2025-08-09T18:31:42",
"photo": "/9j/4AAQSkZJRgABAD...",
"lat": 59.942,
"long": 30.3202
}
}
6. current_model_tracking
ML-модели- MQTT Topic:
{DRONE_ID}_current_model_tracking - QoS: 1
Информация о текущей активной и всех доступных ML-моделях на дроне.
current_modelstrrequiredavailable_modelsArray[str]required{
"topic": "10001_current_model_tracking",
"message": {
"current_model": "yolov8n.pt",
"available_models": [
"yolov8n.pt",
"yolov8s.pt",
"custom_model.pt"
]
}
}
7. result_delete
ML-модели- MQTT Topic:
{DRONE_ID}_result_delete - QoS: 1
Результат удаления ML-моделей. Массив объектов с результатом для каждого файла.
messageArray[object]requiredmodel_namestrrequiredstatus_codeintrequiredmessagestrrequired{
"topic": "10001_result_delete",
"message": [
{
"model_name": "old_model.pt",
"status_code": 200,
"message": "Deleted"
},
{
"model_name": "missing_model.pt",
"status_code": 500,
"message": "File not found"
}
]
}
8. objects_data
Телеметрия- MQTT Topic:
{DRONE_ID}_objects_data - QoS: 1
Метаданные детектируемого объекта без изображения. Передаётся при каждом обнаружении.
namestrrequiredidinttimedatetimerequiredpositionPositionrequiredpointPointrequiredlatfloatrequiredlongfloatrequiredheightfloatdirectionintrequiredspeedfloatdrone_pointPointrequiredlatfloatrequiredlongfloatrequired{
"topic": "10001_objects_data",
"message": {
"name": "car",
"id": 1,
"time": "2025-08-09T18:31:42",
"position": {
"point": {
"lat": 59.9397889,
"long": 149.18209,
"height": 200
},
"direction": 90,
"speed": 60
},
"drone_point": {
"lat": -35.364,
"long": 149.165
}
}
}
9. gimbal_data
Камера и подвес- MQTT Topic:
{DRONE_ID}_gimbal_data - QoS: 1
Текущие данные подвеса камеры для каждой подключённой камеры.
{camera_id}objectrequiredrollintrequiredpitchintrequiredyawintrequiredzoomintrequired{
"topic": "10001_gimbal_data",
"message": {
"camera_0": {
"roll": 0,
"pitch": -45,
"yaw": 180,
"zoom": 1
}
}
}
10. gimbal_auto_status
Камера и подвес- MQTT Topic:
{DRONE_ID}_gimbal_auto_status - QoS: 1
Статус автоматического сканирования подвеса.
camera_idstrrequiredstatusstrrequiredrunning— Автосканирование выполняетсяstart— Автосканирование запущеноstop— Автосканирование остановленоcurrent— Ответ на запрос текущего статусаtypestrrequiredsin— Синусоидальное движениеdynamic— Динамическое движениеnone— Не задан{
"topic": "10001_gimbal_auto_status",
"message": {
"camera_id": "camera_1",
"status": "running",
"type": "sin"
}
}
11. drone_params_data
Параметры дрона- MQTT Topic:
{DRONE_ID}_drone_params_data - QoS: 1
Ответ с запрошенными параметрами полётного контроллера (ArduPilot). Ключ — имя параметра, значение — текущее значение.
messageobjectrequired{
"topic": "10001_drone_params_data",
"message": {
"WPNAV_SPEED": 500,
"WPNAV_SPEED_DN": 150
}
}
12. ardupilot_status
Телеметрия- MQTT Topic:
{DRONE_ID}_ardupilot_status - QoS: 1
Статусные сообщения от ArduPilot (предупреждения, ошибки, информация).
severityintrequired0— Emergency1— Alert2— Critical3— Error4— Warning5— Notice6— Infomessagestrrequired{
"topic": "10001_ardupilot_status",
"message": {
"severity": 4,
"message": "PreArm: GPS not healthy"
}
}
13. calibration_data
Калибровка- MQTT Topic:
{DRONE_ID}_calibration_data - QoS: 1
Данные о текущем состоянии калибровки сенсоров.
stepintrequired0— Reboot1— Accelerometer2— Magnetometer3— Otherparamintrequiredstatusintrequired0— False (не пройдена)1— True (пройдена)2— Running (выполняется)3— Rebooting (перезагрузка)4— NotStarted (не начата){
"topic": "10001_calibration_data",
"message": {
"step": 1,
"param": 75,
"status": 2
}
}
14. check_motors_data
Калибровка- MQTT Topic:
{DRONE_ID}_check_motors_data - QoS: 1
Данные проверки моторов — массив PWM-значений для каждого мотора.
messageArray[int]required{
"topic": "10001_check_motors_data",
"message": [1000, 1200, 1150, 1180, 1190]
}
15. download_info
ML-модели- MQTT Topic:
{DRONE_ID}_download_info - QoS: 1
Прогресс загрузки файла ML-модели на дрон.
statusstrrequirednone— Загрузка не начатаprogress— Загрузка в процессеcomplete— Загрузка завершенаerror— Ошибка загрузкиmodel_namestrrequiredprogress_percentintmessagestr{
"topic": "10001_download_info",
"message": {
"status": "progress",
"model_name": "yolov8n.pt",
"progress_percent": 45
}
}
16. mag_fitness
Калибровка- MQTT Topic:
{DRONE_ID}_mag_fitness - QoS: 1
Данные калибровки магнитометра (компаса).
compass_idintrequiredfitnessfloatrequired{
"topic": "10001_mag_fitness",
"message": {
"compass_id": 0,
"fitness": 0.95
}
}
17. stream_lost
Камера и подвес- MQTT Topic:
{DRONE_ID}_stream_lost - QoS: 1
Уведомление о потере URL видеопотока. Сервер должен отправить актуальный URL через stream_url.
messagebooleanrequiredtrue— URL видеопотока потерян, требуется повторная отправка{
"topic": "10001_stream_lost",
"message": true
}
18. payload
Телеметрия- MQTT Topic:
{DRONE_ID}_payload - QoS: 1
Полный статус оборудования дрона: камеры, SD-карта, прошивка, контроллер, состояние связи.
camerasobjectcamera_<index>objectidstrmodelstrserial_numberstrconnection_typestrusb— USBethernet— Ethernetdistortion_modelstrbarrel— Barrelpincushion— Pincushiontangential— Tangentialthin_prism— Thin Prismsd_cardobjectidstrmodelstrserial_numberstrtotal_capacityfloatfree_capacityfloatused_capacityfloatmedia_capacityfloatbatteriesobjectbattery_<index>objectidstrmodelstrservosobjectservo_<index>objectidstrmodelstrboard_computerobjectmodelstrfirmwareobjectnamestrversionstrflight_controllerobjectmodelstrsensorsArray[str]batterystrconnectivityobjecttelemetrystrwifibooleansignal_levelfloat{
"topic": "10001_payload",
"message": {
"cameras": {
"camera_0": {
"id": "3f1c2a9e-8c7b-4a55-9f21-1a9d6f2c8c11",
"model": "Sony IMX477",
"serial_number": "CAM-477-883920",
"connection_type": "usb",
"distortion_model": "barrel"
},
"camera_1": {
"id": "7d2a91bc-11aa-4c33-9f88-91c2b7d3aa55",
"model": "Sony IMX219",
"serial_number": "CAM-219-552110",
"connection_type": "usb",
"distortion_model": "barrel"
}
},
"sd_card": {
"id": "c9a11234-77dd-4a22-bc11-9911ffcc8822",
"model": "SanDisk Extreme 128GB",
"serial_number": "SD-128-AX99211",
"total_capacity": 128.0,
"free_capacity": 84.2,
"used_capacity": 43.8,
"media_capacity": 120.5
},
"batteries": {
"battery_0": {
"id": "b1a7c3d2-88aa-4f55-9b11-123456789abc",
"model": "Tattu 6S 16000mAh"
},
"battery_1": {
"id": "d9f8a2c1-55bb-4e77-aa99-998877665544",
"model": "Tattu 6S 16000mAh (spare)"
}
},
"servos": {
"servo_0": {
"id": "s1c2d3e4-aaaa-bbbb-cccc-111122223333",
"model": "Hitec HS-7954SH"
},
"servo_1": {
"id": "s9f8e7d6-1111-2222-3333-444455556666",
"model": "KST DS215MG"
}
},
"board_computer": {
"model": "NVIDIA Jetson Xavier NX"
},
"firmware": {
"name": "ArduPilot",
"version": "4.5.7"
},
"flight_controller": {
"model": "Cube Orange+",
"sensors": [
"accelerometer",
"gyroscope",
"magnetometer",
"barometer"
],
"battery": "6S LiPo monitoring enabled"
},
"connectivity": {
"telemetry": "SiK Radio 915MHz",
"wifi": true,
"signal_level": 0.82
}
}
}
19. drone_request_init
Регистрация- MQTT Topic:
drone_request_init(без DRONE_ID) - QoS: 1
Инициация процесса регистрации нового дрона в системе.
organization_idstrrequireddrone_idstrrequiredpublic_keystrrequiredmac_addressstrrequiredassetsobjectcamera_<index>objecttypestrmodelstrserial_numberstrconnection_typestrusb— USBethernet— Ethernetdistortion_modelstrbarrel— Barrelpincushion— Pincushiontangential— Tangentialthin_prism— Thin Prismsd_cardobjecttypestrmodelstrserial_numberstrtotal_capacityfloatfree_capacityfloatused_capacityfloatmedia_capacityfloatbattery_<index>objecttypestrmodelstrservo_<index>objecttypestrmodelstrflight_controllerobjectmodelstrsensorsArray[str]batterystrboard_computerobjectmodelstrfirmwareobjectnamestrversionstrconnectivityobjecttelemetrystrwifibooleansignal_levelfloat{
"topic": "drone_request_init",
"message": {
"organization_id": "org-001",
"drone_id": "10001",
"public_key": "MIIBIjANBgkqhki...",
"mac_address": "AA:BB:CC:DD:EE:FF",
"assets": {
"camera_0": {
"type": "camera",
"model": "Sony IMX477",
"serial_number": "CAM-ALM-477-883920",
"connection_type": "usb",
"distortion_model": "barrel"
},
"camera_1": {
"type": "camera",
"model": "Sony IMX219",
"serial_number": "CAM-ALM-219-552110",
"connection_type": "usb",
"distortion_model": "barrel"
},
"sd_card": {
"type": "sd_card",
"model": "SanDisk Extreme 128GB",
"serial_number": "SD-128-AX99211",
"total_capacity": 128.0,
"free_capacity": 86.5,
"used_capacity": 41.5,
"media_capacity": 128.0
},
"battery_0": {
"type": "battery",
"model": "Tattu 6S 16000mAh LiPo"
},
"servo_0": {
"type": "servo",
"model": "Hitec HS-7954SH"
}
},
"flight_controller": {
"model": "Cube Orange+",
"sensors": ["accelerometer", "gyroscope", "magnetometer", "barometer"],
"battery": "6S LiPo monitoring enabled"
},
"board_computer": {
"model": "NVIDIA Jetson Xavier NX"
},
"firmware": {
"name": "ArduPilot",
"version": "4.5.7"
},
"connectivity": {
"telemetry": "SiK Radio 915MHz",
"wifi": true,
"signal_level": 0.78
}
}
}
20. drone_request_complete
Регистрация- MQTT Topic:
drone_request_complete(без DRONE_ID) - QoS: 1
Подтверждение завершения аутентификации дрона. Публикуется после получения одобрения от сервера (drone_request_approve). Структура аналогична drone_request_init.
organization_idstrrequireddrone_idstrrequiredpublic_keystrrequiredmac_addressstrrequired{
"topic": "drone_request_complete",
"message": {
"organization_id": "org_001",
"drone_id": "10001",
"public_key": "ssh-rsa AAAA...",
"mac_address": "AA:BB:CC:DD:EE:FF"
}
}
21. follow_info_publisher
Слежение за объектами- MQTT Topic:
{DRONE_ID}_follow_info_publisher - QoS: 1
Информация о текущем состоянии трекинга объекта камерой.
track_idstrrequiredclass_namestrrequiredstatusstrrequiredtracking— Активное слежение за объектомlost— Объект потерянerror— Ошибка трекингаstop— Слежение остановленоnone— Трекинг не активенerror_codestrzoom_statusstrrequiredenable— Автозум активенdisenable— Автозум выключенzoom_meanfloatrequired{
"topic": "10001_follow_info_publisher",
"message": {
"track_id": "42",
"class_name": "car",
"status": "tracking",
"zoom_status": "enable",
"zoom_mean": 5.0
}
}
22. drone_strike_status
Слежение за объектами- MQTT Topic:
{DRONE_ID}_drone_strike_status - QoS: 1
Текущий статус тарана объекта дроном.
track_idstrrequiredclass_namestrrequiredstatusstrrequirednone— Таран не активенstrike— Таран выполняетсяlost— Объект потерян, таран прерван{
"topic": "10001_drone_strike_status",
"message": {
"track_id": "5",
"class_name": "car",
"status": "strike"
}
}
23. drone_follow_status
Слежение за объектами- MQTT Topic:
{DRONE_ID}_drone_follow_status - QoS: 1
Текущий статус следования дрона за объектом.
track_idstrrequiredclass_namestrrequiredstatusstrrequirednone— Следование не активноtracking— Дрон следует за объектомlost— Объект потерян, следование прервано{
"topic": "10001_drone_follow_status",
"message": {
"track_id": "3",
"class_name": "person",
"status": "tracking"
}
}
24. check_registration
Регистрация- MQTT Topic:
check_registration(без DRONE_ID) - QoS: 1
Запрос на проверку регистрации дрона в системе.
messagestrrequired{
"topic": "check_registration",
"message": "10001"
}
25. actual_objects_data
Запрос состояния- MQTT Topic:
{DRONE_ID}_actual_objects_data - QoS: 1
Список актуальных детектируемых объектов, сгруппированных по классам. Каждому классу соответствует массив ID объектов.
objectsobjectrequired{
"topic": "10001_actual_objects_data",
"message": {
"objects": {
"car": [101, 102, 103],
"person": [201, 202]
}
}
}
26. create_orthophoto_request
Ортофото- MQTT Topic:
{DRONE_ID}_create_orthophoto_request - QoS: 1
Запрос дрона на создание ортофотоплана. Сервер должен ответить через create_orthophoto.
request_idstrrequired{
"topic": "10001_create_orthophoto_request",
"message": {
"request_id": "ortho-001"
}
}
27. transferring_info
ML-модели- MQTT Topic:
{DRONE_ID}_transferring_info - QoS: 1
Статус конвертации ML-модели из формата .pt в формат .engine (TensorRT) на дроне. При успешном завершении имя модели меняет расширение с .pt на .engine.
statusstrrequirednone— Нет активного процесса конвертацииstarted— Конвертация начата (инициализация)transferring— Конвертация в процессеcompleted— Конвертация завершена успешноstopped— Конвертация отмененаerror— Ошибка конвертацииmodel_namestrrequiredmessagestrprogress_percentintНет активного процесса:
{
"topic": "10001_transferring_info",
"message": {
"status": "none",
"model_name": "none",
"progress_percent": 0
}
}
Конвертация начата:
{
"topic": "10001_transferring_info",
"message": {
"status": "started",
"model_name": "yolov8s.pt",
"progress_percent": 0
}
}
Конвертация в процессе:
{
"topic": "10001_transferring_info",
"message": {
"status": "transferring",
"model_name": "yolov8s.pt",
"progress_percent": 50
}
}
Конвертация завершена успешно:
{
"topic": "10001_transferring_info",
"message": {
"status": "completed",
"model_name": "yolov8s.engine",
"progress_percent": 100
}
}
Конвертация отменена:
{
"topic": "10001_transferring_info",
"message": {
"status": "stopped",
"model_name": "yolov8s.pt",
"progress_percent": 0
}
}
Ошибка при конвертации:
{
"topic": "10001_transferring_info",
"message": {
"status": "error",
"model_name": "yolov8s.pt",
"message": "Model yolov8s.pt not found",
"progress_percent": 0
}
}
28. download_audio_info
Робот- MQTT Topic:
{DRONE_ID}_download_audio_info - QoS: 1
Прогресс и статус загрузки аудиофайла на робота в рамках голосового пайплайна.
statusstrrequiredprogress— Загрузка в процессеcomplete— Загрузка завершенаerror— Ошибка загрузкиmodel_namestrrequiredprogress_percentintmessagestrЗагрузка в процессе:
{
"topic": "10001_download_audio_info",
"message": {
"status": "progress",
"model_name": "123434.wav",
"progress_percent": 45
}
}
Загрузка завершена:
{
"topic": "10001_download_audio_info",
"message": {
"status": "complete",
"model_name": "123434.wav",
"message": "Audio loaded successfully"
}
}
Ошибка загрузки:
{
"topic": "10001_download_audio_info",
"message": {
"status": "error",
"model_name": "123434.wav",
"message": "ConnectionError / Timeout / ..."
}
}
29. STT_result
Робот- MQTT Topic:
{DRONE_ID}_STT_result - QoS: 1
Результат распознавания речи (Speech-to-Text). После успешной загрузки аудио робот запускает голосовой пайплайн, первый этап которого — распознавание речи (Whisper).
messagestrrequired{
"topic": "10001_STT_result",
"message": {
"message": "Привет, как дела?"
}
}
30. LLM_answer
Робот- MQTT Topic:
{DRONE_ID}_LLM_answer - QoS: 1
Ответ языковой модели (LLM). Второй этап голосового пайплайна — генерация ответа языковой моделью (Qwen) на основе распознанного текста.
messagestrrequired{
"topic": "10001_LLM_answer",
"message": {
"message": "Привет! У меня всё отлично, спасибо что спросил."
}
}
31. lep_status
ЛЭП- MQTT Topic:
{DRONE_ID}_lep_status - QoS: 1
Агрегированный статус режима полёта вдоль ЛЭП и инспекции столбов. Публикуется при изменении состояния любой подсистемы ЛЭП, а также в ответ на lep_control с action: "current".
lep_enabledbooleanrequiredfollowingbooleanrequiredfollow_statusstrrequiredidle— Режим ЛЭП не активенsearching— Столбы не обнаружены, ожиданиеfollowing— Активный полёт вдоль линии столбовapproaching— Приближение к столбу — замедлениеlost— Провод потерян (автоматическое отключение ЛЭП)stop— Полёт приостановленerror— Внутренняя ошибка (зарезервировано)pole_inspector_enabledbooleanrequiredpole_inspector_statusstrrequiredinactive— Инспекция столбов не активнаsearching— Камера направлена вниз, ожидание обнаружения столбаtracking— Столб обнаружен, отслеживается в кадреbraking— Столб приближается к центру кадра — дрон замедляетсяphotographing— Дрон зависает, идёт серия из 3 фотоresetting— Фото сделаны, ожидание следующего столбаpole_countintrequiredlep_placement_activebooleanrequiredlep_placement_statestrrequiredidle— Постановка не активнаdetecting— Поиск двух столбов на гимбал-камереready— Два столба найдены, дрон зависает, ожидание placement_startaligning— Выравнивание между столбами + поворот headingdescending— Снижение до целевой высотыcomplete— Постановка завершена (нода автоматически выключается)Всё выключено (ответ на current при неактивном режиме):
{
"topic": "10001_lep_status",
"message": {
"lep_enabled": false,
"following": false,
"follow_status": "idle",
"pole_inspector_enabled": false,
"pole_inspector_status": "inactive",
"pole_count": 0,
"lep_placement_active": false,
"lep_placement_state": "idle"
}
}
Постановка — поиск столбов:
{
"topic": "10001_lep_status",
"message": {
"lep_enabled": false,
"following": false,
"follow_status": "idle",
"pole_inspector_enabled": false,
"pole_inspector_status": "inactive",
"pole_count": 0,
"lep_placement_active": true,
"lep_placement_state": "detecting"
}
}
Постановка — столбы найдены, ожидание placement_start:
{
"topic": "10001_lep_status",
"message": {
"lep_enabled": false,
"following": false,
"follow_status": "idle",
"pole_inspector_enabled": false,
"pole_inspector_status": "inactive",
"pole_count": 0,
"lep_placement_active": true,
"lep_placement_state": "ready"
}
}
Полёт вдоль ЛЭП + инспекция активны:
{
"topic": "10001_lep_status",
"message": {
"lep_enabled": true,
"following": true,
"follow_status": "following",
"pole_inspector_enabled": true,
"pole_inspector_status": "searching",
"pole_count": 0,
"lep_placement_active": false,
"lep_placement_state": "idle"
}
}
Полёт + инспекция, приближение к столбу:
{
"topic": "10001_lep_status",
"message": {
"lep_enabled": true,
"following": true,
"follow_status": "approaching",
"pole_inspector_enabled": true,
"pole_inspector_status": "braking",
"pole_count": 2,
"lep_placement_active": false,
"lep_placement_state": "idle"
}
}
Столб потерян (автоматическое выключение):
{
"topic": "10001_lep_status",
"message": {
"lep_enabled": false,
"following": false,
"follow_status": "lost",
"pole_inspector_enabled": false,
"pole_inspector_status": "inactive",
"pole_count": 0,
"lep_placement_active": false,
"lep_placement_state": "idle"
}
}
32. update_software_status
ПО- MQTT Topic:
{DRONE_ID}_update_software_status - QoS: 1
Подтверждение успешного завершения обновления программного обеспечения на дроне.
installation_idstringrequiredsoftware_release_idstringrequiredversionstringrequiredstatusstringrequiredok— Обновление успешно завершеноerror— Не удалось обновить{
"topic": "10001_update_software_status",
"message": {
"installation_id": "8f4d3c21-6f5d-4a31-bd93-12c3f0f7a8d1",
"software_release_id": "9d8c7b6a-5e4f-3a2b-1c0d-fedcba987654",
"version": "2.5.1",
"status": "ok"
}
}
{
"topic": "10001_update_software_status",
"message": {
"installation_id": "8f4d3c21-6f5d-4a31-bd93-12c3f0f7a8d1",
"software_release_id": "9d8c7b6a-5e4f-3a2b-1c0d-fedcba987654",
"version": "2.5.1",
"status": "error"
}
}