Skip to main content

Получить uplink-пакеты из базы

Возвращает uplink-пакеты устройств, сохранённые в базе сервера, за указанный период. Команда нужна, чтобы получить данные за прошедший период — например, если сообщения realtime_data потерялись при обрыве соединения или их получило другое подписанное соединение.

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

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

Запрос​

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

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

Ответ​

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

{
"cmd": "get_data_resp",
"operation_id": "abc",
"status": 1
}

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

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

Поля пакета в dataList:

ПолеТипОписание
iduint64Номер записи в базе
devEui, devAddrstringУстройство
appIdstringИдентификатор приложения устройства (APP_ID)
timestringВремя приёма, UTC
fportuint8Порт приложения
datastringПолезная нагрузка в hex
sizeuint16Размер пакета, байт
fcntuint32Счётчик uplink устройства
mtypeuint8Тип сообщения LoRaWAN: 2 — без подтверждения, 4 — с подтверждением
adrboolУстройство включило ADR
ackboolСервер это поле не заполняет
foptsstringMAC-команды в заголовке пакета, hex
datruint8Индекс скорости передачи (DR)
freqfloatЧастота, МГц
rssiint16Уровень сигнала, дБм
lsnrfloatОтношение сигнал/шум, дБ
gatewayEuistringШлюз, от которого записан пакет
gateway_availableobjectВсе шлюзы, принявшие пакет: EUI шлюза → строка [SNR, RSSI]
packet_loss_ratefloatДоля потерянных пакетов устройства по оценке сервера, %
output_ack, output_ack_timebool, stringУстаревшие поля, сервер их не заполняет
{
"cmd": "get_data_resp",
"operation_id": "abc",
"status": 3,
"dataCount": 1,
"dataList": [
{
"id": 4671384,
"devEui": "7950D20CBBB77561",
"devAddr": "7950D20C",
"appId": "77179F01",
"time": "2026-10-07 13:06:22+0000",
"fport": 2,
"data": "7713F800020F010AA78D0014360100150B0000",
"size": 32,
"fcnt": 7525,
"mtype": 2,
"adr": true,
"ack": false,
"fopts": "",
"datr": 4,
"freq": 865.1,
"rssi": -100,
"lsnr": 6.2,
"gatewayEui": "0000B827EB76A75F",
"gateway_available": {
"0000B827EB76A75F": "[6.2, -100]"
},
"packet_loss_rate": 0,
"output_ack": false,
"output_ack_time": null
}
]
}

Ошибки​

error_codeerror_textЧто случилось
3Invalid date rangeНе указан date_from или date_to
1Date parse errorДату не удалось разобрать

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

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

  • Указывайте часовой пояс в датах (+0500, +0000). Время в ответе — в UTC.
  • Больше 500 пакетов за раз не придёт. Данные за длинный период запрашивайте по частям: следующий запрос начинайте со времени последнего полученного пакета — он придёт ещё раз, отбросьте его по id.
  • Поле devAddr в запросе сервер для отбора не использует — фильтруйте по devEui.
  • В выборку попадают только uplink. Отправленные устройствам кадры возвращает get_downlink_data_req.

См. также​

  • consume_req — получать данные в реальном времени.
  • get_downlink_data_req — история отправленных кадров.