Skip to main content

Добавить устройство в multicast-группу

Записывает устройство в состав multicast-группы. Это запись для учёта на сервере: самому устройству сервер ничего не передаёт и при отправке кадра состав группы не проверяет. Чтобы устройство принимало кадры группы, её адрес и ключи нужно записать в устройство отдельно — см. Как устройство узнаёт о группе.

Запрос и ответ: add_device_to_multicast_req → add_device_to_multicast_resp.
Доступ: только токен высокого уровня; сервер ищет группу среди групп всех приложений владельца токена. С токеном низкого уровня сервер ответит ошибкой 1.

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

Ответ отличается от описания v0.17:

  • DevEUI устройства приходит в поле dev_eui, а не devEui.
  • В поле multicast_addr приходит DevAddr устройства, а не адрес группы.

Запрос​

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

ПолеТипОписание
cmdstringadd_device_to_multicast_req
operation_idstringПроизвольная строка; сервер вернёт её в ответе — по ней сопоставляют запрос и ответ
multicast_euistringОбязательно multicast_eui или multicast_addr. EUI группы, 16 hex-символов
multicast_addrstringОбязательно multicast_eui или multicast_addr. Адрес группы, 8 hex-символов
devEuistringОбязательно. DevEUI устройства, 16 hex-символов
{
"cmd": "add_device_to_multicast_req",
"operation_id": "xyw",
"multicast_eui": "7DA50BE8C74CE6DC",
"devEui": "6F1E570FFE14DBFC"
}

Ответ​

ПолеТипОписание
cmdstringadd_device_to_multicast_resp
operation_idstringЗначение из запроса. В ответах с ошибками 1 и 3 поля нет
statusuint81 — устройство записано в группу, 2 — ошибка
multicast_euistringEUI группы
multicast_addrstringDevAddr устройства — не адрес группы
dev_euistringDevEUI устройства
error_code, error_textuint8, stringТолько при ошибке, см. ниже
{
"cmd": "add_device_to_multicast_resp",
"operation_id": "xyw",
"status": 1,
"multicast_eui": "7DA50BE8C74CE6DC",
"multicast_addr": "78130AE1",
"dev_eui": "6F1E570FFE14DBFC"
}

Ошибки​

error_codeerror_textЧто случилось
1Unauthorized accessЗапрос пришёл с токеном низкого уровня
3Data is filled in with an errormulticast_eui или devEui не из 16 hex-символов, multicast_addr не из 8
9Multicast does not existsГруппы с такими multicast_eui и multicast_addr у владельца токена нет
8Device does not existsУстройство с таким devEui не найдено, либо devEui не передан
10Device already exist in MulticastУстройство уже записано в эту группу
0Unexpected errorВнутренняя ошибка сервера — повторите запрос позже

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

  • Всегда указывайте идентификатор группы. Сервер не проверяет, что передан multicast_eui или multicast_addr. Без обоих полей устройство попадёт в одну из групп владельца — в какую именно, предсказать нельзя.
  • Состав группы нельзя запросить. Команды, которая возвращает список устройств группы, в WebSocket API нет — ведите список на своей стороне.
  • Одно устройство можно записать в несколько групп, но в каждую — только один раз.

См. также​