Remove device from multicast group
Removes a device from a multicast group. Only the record on the server changes: the server sends nothing to the device. As long as the device holds the group address and keys, it keeps receiving the group frames.
Request and response: delete_device_from_multicast_req → delete_device_from_multicast_req.
Access: high access level token only; the group is looked up among the groups of all applications of the token owner. With a low access level token the server responds with error 1.
Current ONS version
The response differs from the v0.17 description:
- The response command is named
delete_device_from_multicast_req— the same as the request, notdelete_device_from_multicast_resp. Thestatusfield distinguishes the response from the request. - The device DevEUI comes in the
dev_euifield, notdevEui. - The
multicast_addrfield holds the device DevAddr, not the group address.
Request
Fields not marked as required may be omitted.
| Field | Type | Description |
|---|---|---|
cmd | string | delete_device_from_multicast_req |
operation_id | string | Any string; the server returns it in the response to match the request and the response |
multicast_eui | string | multicast_eui or multicast_addr is required. Group EUI, 16 hex characters |
multicast_addr | string | multicast_eui or multicast_addr is required. Group address, 8 hex characters |
devEui | string | Required. Device DevEUI, 16 hex characters |
{
"cmd": "delete_device_from_multicast_req",
"operation_id": "xyw",
"multicast_eui": "7DA50BE8C74CE6DC",
"devEui": "6F1E570FFE14DBFC"
}
Response
| Field | Type | Description |
|---|---|---|
cmd | string | delete_device_from_multicast_req |
operation_id | string | Value from the request. Absent in responses with errors 1 and 3 |
status | uint8 | 1 — the device is removed from the group, 2 — error |
multicast_eui | string | Group EUI |
multicast_addr | string | Device DevAddr — not the group address |
dev_eui | string | Device DevEUI |
error_code, error_text | uint8, string | Only on error, see below |
{
"cmd": "delete_device_from_multicast_req",
"operation_id": "xyw",
"status": 1,
"multicast_eui": "7DA50BE8C74CE6DC",
"multicast_addr": "78130AE1",
"dev_eui": "6F1E570FFE14DBFC"
}
Errors
error_code | error_text | What happened |
|---|---|---|
| 1 | Unauthorized access | The request came with a low access level token |
| 3 | Data is filled in with an error | multicast_eui or devEui is not 16 hex characters, multicast_addr is not 8 |
| 9 | Multicast does not exists | The token owner has no group with this multicast_eui and multicast_addr |
| 8 | Device does not exists | No device with this devEui is found, or devEui is not given |
| 11 | Device not in Multicast | The device is not in this group |
| 0 | Unexpected error | Internal server error — retry later |
Good to know
- Always specify the group identifier. The server does not check that
multicast_euiormulticast_addris given. If neither field is given, it takes one of the owner's groups — there is no way to predict which one. - To make a device stop receiving group frames, remove the group address and keys from the device itself.
See also
- Multicast groups — what a group is and in which order to call the commands.
add_device_to_multicast_req— add a device to a group.