Удалить устройство из multicast-группы
Убирает устройство из состава multicast-группы. Меняется только запись на сервере: устройству сервер ничего не передаёт. Пока в устройстве записаны адрес и ключи группы, оно продолжит принимать её кадры.
Запрос и ответ: delete_device_from_multicast_req → delete_device_from_multicast_req.
Доступ: только токен высокого уровня; сервер ищет группу среди групп всех приложений владельца токена. С токеном низкого уровня сервер ответит ошибкой 1.
Текущая версия ONS
Ответ отличается от описания v0.17:
- Команда ответа называется
delete_device_from_multicast_req— так же, как запрос, а неdelete_device_from_multicast_resp. Отличить ответ от запроса можно по полюstatus. - DevEUI устройства приходит в поле
dev_eui, а неdevEui. - В поле
multicast_addrприходит DevAddr устройства, а не адрес группы.
Запрос
Поля без пометки «обязательно» можно не передавать.
| Поле | Тип | Описание |
|---|---|---|
cmd | string | delete_device_from_multicast_req |
operation_id | string | Произвольная строка; сервер вернёт её в ответе — по ней сопоставляют запрос и ответ |
multicast_eui | string | Обязательно multicast_eui или multicast_addr. EUI группы, 16 hex-символов |
multicast_addr | string | Обязательно multicast_eui или multicast_addr. Адрес группы, 8 hex-символов |
devEui | string | Обязательно. DevEUI устройства, 16 hex-символов |
{
"cmd": "delete_device_from_multicast_req",
"operation_id": "xyw",
"multicast_eui": "7DA50BE8C74CE6DC",
"devEui": "6F1E570FFE14DBFC"
}
Ответ
| Поле | Тип | Описание |
|---|---|---|
cmd | string | delete_device_from_multicast_req |
operation_id | string | Значение из запроса. В ответах с ошибками 1 и 3 поля нет |
status | uint8 | 1 — устройство убрано из группы, 2 — ошибка |
multicast_eui | string | EUI группы |
multicast_addr | string | DevAddr устройства — не адрес группы |
dev_eui | string | DevEUI устройства |
error_code, error_text | uint8, string | Только при ошибке, см. ниже |
{
"cmd": "delete_device_from_multicast_req",
"operation_id": "xyw",
"status": 1,
"multicast_eui": "7DA50BE8C74CE6DC",
"multicast_addr": "78130AE1",
"dev_eui": "6F1E570FFE14DBFC"
}
Ошибки
error_code | error_text | Что случилось |
|---|---|---|
| 1 | Unauthorized access | Запрос пришёл с токеном низкого уровня |
| 3 | Data is filled in with an error | multicast_eui или devEui не из 16 hex-символов, multicast_addr не из 8 |
| 9 | Multicast does not exists | Группы с такими multicast_eui и multicast_addr у владельца токена нет |
| 8 | Device does not exists | Устройство с таким devEui не найдено, либо devEui не передан |
| 11 | Device not in Multicast | Устройство не записано в эту группу |
| 0 | Unexpected error | Внутренняя ошибка сервера — повторите запрос позже |
Что важно знать
- Всегда указывайте идентификатор группы. Сервер не проверяет, что передан
multicast_euiилиmulticast_addr. Без обоих полей он возьмёт одну из групп владельца — какую именно, предсказать нельзя. - Чтобы устройство перестало принимать кадры группы, уберите адрес и ключи группы из самого устройства.
См. также
- Multicast-группы — что такое группа и в каком порядке вызывать команды.
add_device_to_multicast_req— записать устройство в состав группы.