Skip to main content

Downlink — узнать класс LoRaWAN устройства

Возвращает класс LoRaWAN устройства: A, B или C. От класса зависит, когда сервер сможет передать устройству downlink: устройству класса A — только сразу после его очередного uplink, устройству класса C — в любой момент. Запросите класс перед отправкой данных, чтобы понимать, сколько ждать доставки.

Запрос и ответ: dev_lw_class_req → get_devices_resp.
Доступ: с токеном низкого уровня — устройства своего приложения и приложений, которые открыли ему доступ; с токеном высокого уровня — все устройства владельца.

Текущая версия ONS

Сервер отвечает командой get_devices_resp, а не dev_lw_class_resp, как указано в описании v0.17. Отличить этот ответ от ответа на get_devices_req можно по полю lwClass и по вашему operation_id.

За один запрос сервер возвращает не больше одного устройства, поэтому всегда указывайте devEui.

Запрос​

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

ПолеТипОписание
cmdstringdev_lw_class_req
operation_idstringПроизвольная строка; сервер вернёт её в ответе — по ней сопоставляют запрос и ответ
devEuistringDevEUI устройства, 16 hex-символов. Без него сервер вернёт одно из доступных устройств — см. «Текущая версия ONS»
{
"cmd": "dev_lw_class_req",
"operation_id": "axd",
"devEui": "6F1E570FFE14DBFC"
}

Ответ​

ПолеТипОписание
cmdstringget_devices_resp
operation_idstringЗначение из запроса
statusuint81 — успех, 2 — ошибка
deviceCountuint32Сколько устройств в списке: 0 или 1
deviceListarrayУстройства: devEui, devAddr и lwClass — класс LoRaWAN (1 — A, 2 — B, 3 — C)
error_code, error_textuint8, stringТолько при ошибке, см. ниже
{
"cmd": "get_devices_resp",
"operation_id": "axd",
"status": 1,
"deviceCount": 1,
"deviceList": [
{
"devEui": "6F1E570FFE14DBFC",
"devAddr": "78130AE1",
"lwClass": 1
}
]
}

Ошибки​

error_codeЧто случилось
3Неверные данные в запросе, например devEui не из 16 hex-символов
0Внутренняя ошибка сервера — повторите запрос позже

Устройство, которого нет или которое недоступно с вашим токеном, ошибкой не считается: оно просто не попадёт в deviceList.

См. также​