Downlink — узнать класс LoRaWAN устройства
Возвращает класс LoRaWAN устройства: A, B или C. От класса зависит, когда сервер сможет передать устройству downlink: устройству класса A — только сразу после его очередного uplink, устройству класса C — в любой момент. Запросите класс перед отправкой данных, чтобы понимать, сколько ждать доставки.
Запрос и ответ: dev_lw_class_req → get_devices_resp.
Доступ: с токеном низкого уровня — устройства своего приложения и приложений, которые открыли ему доступ; с токеном высокого уровня — все устройства владельца.
Сервер отвечает командой get_devices_resp, а не dev_lw_class_resp, как указано в описании v0.17. Отличить этот ответ от ответа на get_devices_req можно по полю lwClass и по вашему operation_id.
За один запрос сервер возвращает не больше одного устройства, поэтому всегда указывайте devEui.
Запрос
Поля без пометки «обязательно» можно не передавать.
| Поле | Тип | Описание |
|---|---|---|
cmd | string | dev_lw_class_req |
operation_id | string | Произвольная строка; сервер вернёт её в ответе — по ней сопоставляют запрос и ответ |
devEui | string | DevEUI устройства, 16 hex-символов. Без него сервер вернёт одно из доступных устройств — см. «Текущая версия ONS» |
{
"cmd": "dev_lw_class_req",
"operation_id": "axd",
"devEui": "6F1E570FFE14DBFC"
}
Ответ
| Поле | Тип | Описание |
|---|---|---|
cmd | string | get_devices_resp |
operation_id | string | Значение из запроса |
status | uint8 | 1 — успех, 2 — ошибка |
deviceCount | uint32 | Сколько устройств в списке: 0 или 1 |
deviceList | array | Устройства: devEui, devAddr и lwClass — класс LoRaWAN (1 — A, 2 — B, 3 — C) |
error_code, error_text | uint8, 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.
См. также
- Отправка данных на устройство — как устроен downlink и в каком порядке вызывать команды.
- Классы устройств — чем отличаются классы A, B и C.