Получить историю кадров downlink
Возвращает кадры downlink, поставленные в очередь за указанный период, — отправленные, ожидающие и отозванные — вместе с их статусами. Пригодится, чтобы проверить, что стало с кадрами, если вы не получали сообщения downlink_status.
Ответ приходит двумя сообщениями get_downlink_data_resp с одним operation_id: сначала status: 1 — запрос принят, затем status: 3 — данные.
Запрос и ответ: get_downlink_data_req → get_downlink_data_resp (два сообщения).
Доступ: с токеном низкого уровня — устройства своего приложения и приложений, которые открыли ему доступ; с токеном высокого уровня — все устройства владельца.
Запрос
Поля без пометки «обязательно» можно не передавать.
| Поле | Тип | Описание |
|---|---|---|
cmd | string | get_downlink_data_req |
operation_id | string | Произвольная строка; сервер вернёт её в ответе — по ней сопоставляют запрос и ответ |
date_from | string | Обязательно. Начало периода, включительно. Формат YYYY-MM-DD HH:MM:SS+HHMM |
date_to | string | Обязательно. Конец периода, не включительно. Тот же формат |
devEui | string | DevEUI устройства, 16 hex-символов. Без него — все доступные устройства |
limit | uint32 | Сколько кадров вернуть. По умолчанию 10; значение больше 100 сервер уменьшает до 100 |
descending | bool | true — сначала новые. По умолчанию 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
}
Второе — с данными:
| Поле | Тип | Описание |
|---|---|---|
cmd | string | get_downlink_data_resp |
operation_id | string | Значение из запроса |
status | uint8 | 1 — запрос принят, 3 — данные, 2 — ошибка |
dataCount | uint32 | Сколько кадров в списке |
dataList | array | Кадры, поля — в таблице ниже |
error_code, error_text | uint8, string | Только при ошибке, см. ниже |
Поля кадра в dataList:
| Поле | Тип | Описание |
|---|---|---|
devEui, devAddr | string | Устройство |
time | string | Время постановки в очередь, UTC |
data | string | Полезная нагрузка в hex |
downlink_status | uint8 | Код статуса кадра, см. таблицу статусов |
downlink_status_text | string | Название статуса, например Delivered |
downlink_ack | bool | true — кадр получил итоговый статус |
downlink_ack_time | string или 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_code | error_text | Что случилось |
|---|---|---|
| 3 | Invalid date range | Не указан date_from или date_to |
При ошибке приходит одно сообщение со status: 2, без подтверждения приёма.
Что важно знать
- Проверяйте формат дат. Если дату не удаётся разобрать, сервер пришлёт только первое сообщение (
status: 1), а данных не будет. - Указывайте часовой пояс в датах. Время в ответе — в UTC.
- Поля
appIdиdevAddrв запросе сервер для отбора не использует — фильтруйте поdevEui. downlink_ackозначает, что кадр получил итоговый статус, а не что устройство подтвердило приём: кадры уходят неподтверждаемыми. Подробнее — в статусах кадра.
Поля downlink_status и downlink_status_text добавлены в сервер в июне 2026, в описании v0.17 их нет.
См. также
- Отправка данных на устройство — сценарий и статусы кадра.
get_data_req— история uplink.