Skip to main content

Получить историю кадров downlink

Возвращает кадры downlink, поставленные в очередь за указанный период, — отправленные, ожидающие и отозванные — вместе с их статусами. Пригодится, чтобы проверить, что стало с кадрами, если вы не получали сообщения downlink_status.

Ответ приходит двумя сообщениями get_downlink_data_resp с одним operation_id: сначала status: 1 — запрос принят, затем status: 3 — данные.

Запрос и ответ: get_downlink_data_req → get_downlink_data_resp (два сообщения).
Доступ: с токеном низкого уровня — устройства своего приложения и приложений, которые открыли ему доступ; с токеном высокого уровня — все устройства владельца.

Запрос​

Поля без пометки «обязательно» можно не передавать.

ПолеТипОписание
cmdstringget_downlink_data_req
operation_idstringПроизвольная строка; сервер вернёт её в ответе — по ней сопоставляют запрос и ответ
date_fromstringОбязательно. Начало периода, включительно. Формат YYYY-MM-DD HH:MM:SS+HHMM
date_tostringОбязательно. Конец периода, не включительно. Тот же формат
devEuistringDevEUI устройства, 16 hex-символов. Без него — все доступные устройства
limituint32Сколько кадров вернуть. По умолчанию 10; значение больше 100 сервер уменьшает до 100
descendingbooltrue — сначала новые. По умолчанию false: сначала старые
{
"cmd": "get_downlink_data_req",
"operation_id": "rsm234",
"devEui": "7950D20CBBB77561",
"date_from": "2026-10-07 00:00:00+0500",
"date_to": "2026-10-08 00:00:00+0500",
"limit": 10
}

Ответ​

Первое сообщение подтверждает, что запрос принят:

{
"cmd": "get_downlink_data_resp",
"operation_id": "rsm234",
"status": 1
}

Второе — с данными:

ПолеТипОписание
cmdstringget_downlink_data_resp
operation_idstringЗначение из запроса
statusuint81 — запрос принят, 3 — данные, 2 — ошибка
dataCountuint32Сколько кадров в списке
dataListarrayКадры, поля — в таблице ниже
error_code, error_textuint8, stringТолько при ошибке, см. ниже

Поля кадра в dataList:

ПолеТипОписание
devEui, devAddrstringУстройство
timestringВремя постановки в очередь, UTC
datastringПолезная нагрузка в hex
downlink_statusuint8Код статуса кадра, см. таблицу статусов
downlink_status_textstringНазвание статуса, например Delivered
downlink_ackbooltrue — кадр получил итоговый статус
downlink_ack_timestring или nullКогда кадр получил итоговый статус; null, пока итогового статуса нет
{
"cmd": "get_downlink_data_resp",
"operation_id": "rsm234",
"status": 3,
"dataCount": 1,
"dataList": [
{
"devEui": "7950D20CBBB77561",
"devAddr": "7950D20C",
"time": "2026-10-07 09:15:03+0000",
"data": "FFFFFFFFFFFF",
"downlink_status": 3,
"downlink_status_text": "Delivered",
"downlink_ack": true,
"downlink_ack_time": "2026-10-07 09:47:21+0000"
}
]
}

Ошибки​

error_codeerror_textЧто случилось
3Invalid date rangeНе указан date_from или date_to

При ошибке приходит одно сообщение со status: 2, без подтверждения приёма.

Что важно знать​

  • Проверяйте формат дат. Если дату не удаётся разобрать, сервер пришлёт только первое сообщение (status: 1), а данных не будет.
  • Указывайте часовой пояс в датах. Время в ответе — в UTC.
  • Поля appId и devAddr в запросе сервер для отбора не использует — фильтруйте по devEui.
  • downlink_ack означает, что кадр получил итоговый статус, а не что устройство подтвердило приём: кадры уходят неподтверждаемыми. Подробнее — в статусах кадра.
Текущая версия ONS

Поля downlink_status и downlink_status_text добавлены в сервер в июне 2026, в описании v0.17 их нет.

См. также​