Skip to main content

Получить карточку устройства

Возвращает карточку устройства: идентификаторы, ключи, класс, код региона, параметры ADR, счётчики кадров и координаты. Пригодится, чтобы проверить, как устройство зарегистрировано на сервере, и узнать его текущий DevAddr: у устройства OTAA он меняется при каждой активации.

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

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

Сервер возвращает не больше одного устройства. Без devEui в ответе будет одно произвольное доступное устройство, а не все, как в описании v0.17. Запрашивайте устройства по одному, по devEui. В карточке есть поле active, которого нет в v0.17.

Запрос​

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

ПолеТипОписание
cmdstringget_devices_req
operation_idstringПроизвольная строка; сервер вернёт её в ответе — по ней сопоставляют запрос и ответ
devEuistringDevEUI устройства, 16 hex-символов заглавными буквами — сервер сравнивает с учётом регистра. Без поля сервер вернёт одно произвольное устройство
{
"cmd": "get_devices_req",
"operation_id": "Qlg",
"devEui": "D745F677B2412E03"
}

Ответ​

ПолеТипОписание
cmdstringget_devices_resp
operation_idstringЗначение из запроса
statusuint81 — успех, 2 — ошибка
deviceCountuint32Сколько устройств в списке: 0 или 1
deviceListarrayКарточки устройств, поля — в таблице ниже
error_code, error_textuint8, stringТолько при ошибке, см. ниже

Поля карточки:

ПолеТипОписание
devEuistringDevEUI
devAddrstringDevAddr. У устройства OTAA — адрес, выданный при последней активации
application_euistringAppEUI приложения устройства
descriptionstringОписание; может быть null
app_keystringAppKey
nwks_key, apps_keystringNwkSKey и AppSKey. У устройства OTAA — ключи текущей сессии
node_classuint8Класс LoRaWAN: 1 — A, 2 — B, 3 — C
rx_windowuint8Окно приёма для downlink: 1 — RX1, 2 — RX2
adrboolВключён ли ADR
adr_intervaluint16Раз в сколько кадров uplink сервер пересчитывает скорость
adr_min, adr_maxuint8Границы DR для ADR; null — не заданы
adr_fixuint8Фиксированный DR; null — не задан
duty_cycleuint8Сервер сейчас значение только хранит
seq_up, seq_downuint32Счётчики кадров uplink и downlink (FCntUp, FCntDown)
seq_chkuint8Проверка счётчика кадров: 0 — Strict, 1 — Relaxed
regionuint8Код региона, см. Коды регионов
activationuint8Способ активации: 0 — OTAA, 1 — ABP
activeboolВсегда true: удалённые устройства сервер не возвращает
lat, lonfloatШирота и долгота, WGS 84; null, если координаты не заданы
{
"cmd": "get_devices_resp",
"operation_id": "Qlg",
"status": 1,
"deviceList": [
{
"devEui": "D745F677B2412E03",
"devAddr": "D1FD37F0",
"application_eui": "819EA8554FCD762A",
"description": "",
"app_key": "2B7E151628AED2A6ABF7158809CF4F3C",
"nwks_key": "D745F677B2412E03268C11F3E1B6893C",
"apps_key": "2D48A7ECFF70AF6323B7A57186C23E11",
"node_class": 1,
"rx_window": 1,
"adr": true,
"adr_interval": 20,
"adr_min": 0,
"adr_max": 5,
"adr_fix": null,
"duty_cycle": 0,
"seq_up": 352,
"seq_down": 7,
"seq_chk": 0,
"region": 6,
"activation": 0,
"active": true,
"lat": 45.234232,
"lon": 76.342534
}
],
"deviceCount": 1
}

Ошибки​

error_codeerror_textЧто случилось
3Data is filled in with an errordevEui не из 16 hex-символов
0—Внутренняя ошибка сервера — повторите запрос позже

Устройство, которого нет или которое недоступно с вашим токеном, ошибкой не считается: ответ придёт с deviceCount = 0. Так же сервер ответит, если devEui передан строчными буквами.

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

  • В ответе ключи устройства открытым текстом — в том числе при запросе с токеном низкого уровня. Не пишите ответ в общедоступные журналы.
  • Тарифа и down_queue в карточке нет. Тариф задают в create_device_req и меняют в update_device_req.

См. также​