Skip to main content

Обновить multicast-группу

Меняет параметры multicast-группы: ключи, класс, частотный план, описание и приложение. Сервер ищет группу по multicast_eui, по multicast_addr или по обоим полям сразу; сами EUI и адрес изменить нельзя.

Команда записывает параметры заново, а не дополняет их. Поля group_type, region, dr и ping_slot_period, которых нет в запросе, сервер сбросит на значения по умолчанию, а ключи nwks_key и apps_key сотрёт. Без изменений остаются только description и приложение группы. Поэтому сначала запросите текущие параметры командой get_multicast_req и передайте в запросе все поля — и те, что не меняются.

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

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

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

  • Поля, которых нет в запросе, не остаются прежними, а сбрасываются: nwks_key и apps_key — на пустое значение, group_type — на 3, region — на 0, dr — на 0, ping_slot_period — на 128.
  • freq сервер принимает, но не записывает: частота группы остаётся прежней.
  • В ответе group_type всегда null.
  • Поля app_key у группы нет: сервер его игнорирует.
  • Команда ответа — update_multicast_resp, а не create_multicast_resp, как в примере v0.17.

Запрос​

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

ПолеТипОписание
cmdstringupdate_multicast_req
operation_idstringПроизвольная строка; сервер вернёт её в ответе — по ней сопоставляют запрос и ответ
multicast_euistringОбязательно multicast_eui или multicast_addr. EUI группы, которую нужно изменить, 16 hex-символов
multicast_addrstringОбязательно multicast_eui или multicast_addr. Адрес группы, которую нужно изменить, 8 hex-символов
nwks_keystringОбязательно. NwkSKey группы, 32 hex-символа. Сервер не проверяет, что поле передано: без него он сотрёт ключ группы
apps_keystringОбязательно. AppSKey группы, 32 hex-символа. Сервер не проверяет, что поле передано: без него он сотрёт ключ группы
regionuint8Код региона — частотного плана группы, 0–23, см. Коды регионов. Без поля сбрасывается на 0 (EU)
group_typeuint8Класс группы: 3 — C, 2 — B, 1 — A. Без поля сбрасывается на 3
druint8Скорость передачи (DR) группы, 0–15. Сервер значение только хранит. Без поля сбрасывается на 0
ping_slot_perioduint32Зарезервировано. Без поля сбрасывается на 128
descriptionstringНовое описание, до 255 символов. Без поля описание не меняется
application_euistringAppEUI приложения владельца токена, в которое нужно перенести группу, 16 hex-символов. Без поля группа остаётся в своём приложении
freqfloatНе записывается: частота группы остаётся прежней
{
"cmd": "update_multicast_req",
"operation_id": "xyw",
"multicast_eui": "7DA50BE8C74CE6DC",
"description": "Street lights, north district",
"nwks_key": "EEFBF983C00B35240C9A7C2D8D011301",
"apps_key": "6F17B97CEA2C63D1089EF4268FD68D38",
"group_type": 3,
"ping_slot_period": 128,
"dr": 0,
"region": 6
}

Ответ​

ПолеТипОписание
cmdstringupdate_multicast_resp
operation_idstringЗначение из запроса. В ответах с ошибками 1 и 3 поля нет
statusuint81 — группа изменена, 2 — ошибка
multicast_eui, multicast_addrstringEUI и адрес изменённой группы
application_euistringAppEUI из запроса. Если поле не передавали — AppEUI одного из приложений владельца, не обязательно того, которому принадлежит группа
description, nwks_key, apps_key, ping_slot_period, freq, dr, regionПараметры группы после изменения. Типы — как в запросе
group_typeuint8Всегда null. Записанный класс возвращает get_multicast_req
error_code, error_textuint8, stringТолько при ошибке, см. ниже
{
"cmd": "update_multicast_resp",
"operation_id": "xyw",
"status": 1,
"multicast_eui": "7DA50BE8C74CE6DC",
"multicast_addr": "C74CE6DC",
"application_eui": "819EA8554FCD762A",
"description": "Street lights, north district",
"nwks_key": "EEFBF983C00B35240C9A7C2D8D011301",
"apps_key": "6F17B97CEA2C63D1089EF4268FD68D38",
"group_type": null,
"ping_slot_period": 128,
"freq": null,
"dr": 0,
"region": 6
}

Ошибки​

error_codeerror_textЧто случилось
1Unauthorized accessЗапрос пришёл с токеном низкого уровня
3Data is filled in with an errorНеверный формат: multicast_eui или application_eui не из 16 hex-символов, multicast_addr не из 8, ключ не из 32; group_type не 1–3; dr не 0–15; region не 0–23; freq не число
9Multicast does not existsГруппы с такими multicast_eui и multicast_addr у владельца токена нет
5Application does not existsУ владельца токена нет приложения с таким application_eui
0Unexpected errorИзменение не записано: не указаны ни multicast_eui, ни multicast_addr, либо произошла внутренняя ошибка сервера

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

  • Передавайте группу целиком. Запрос только с multicast_eui и description сотрёт оба ключа и сбросит класс, частотный план и скорость передачи (DR): группа останется без ключей.
  • Новые ключи нужно записать и в устройства. Сервер устройствам ничего не передаёт.
  • EUI и адрес группы не меняются. Чтобы сменить их, удалите группу и создайте новую.

См. также​

  • Multicast-группы — что такое группа и какие у неё ограничения.
  • get_multicast_req — получить текущие параметры группы перед изменением.