Multicast-группы
Multicast-группа — это общий адрес и общие ключи, записанные сразу в несколько устройств. Кадр, отправленный на адрес группы, принимают все её устройства, которые слышат шлюз: в эфир уходит один кадр вместо отдельного кадра каждому устройству. Так рассылают то, что нужно всем сразу, — например, команду включить освещение или новую настройку.
Через WebSocket API группы создают, меняют и удаляют. Команды управления группой требуют токен высокого уровня.
Команды отправки данных группе, описанные в v0.17, — multicast_data_req, get_multicast_data_req, multicast_data_ack_req и multicast_data_purge_req — в текущей версии сервера не реализованы. Что происходит при их вызове, написано на страницах этих команд.
Что такое группа на сервере
На сервере группа — отдельная запись, похожая на устройство. У неё свои идентификаторы, ключи и параметры:
| Параметр | Поле | Что это |
|---|---|---|
| EUI группы | multicast_eui | Идентификатор группы, 16 hex-символов. По нему группу находят команды API |
| Адрес группы | multicast_addr | DevAddr, с которым уходят кадры группы, 8 hex-символов |
| Сетевой ключ | nwks_key | NwkSKey группы, 32 hex-символа: им подписывается каждый кадр |
| Ключ приложения | apps_key | AppSKey группы, 32 hex-символа: им шифруются данные кадра |
| Класс | group_type | Класс LoRaWAN группы: 3 — C, 2 — B, 1 — A |
| Регион | region | Частотный план группы |
- EUI и адрес группы уникальны на всём сервере — и среди групп, и среди устройств.
- Группа создаётся в приложении, к которому выполнено подключение.
Как устройство узнаёт о группе
Сервер не настраивает устройства: он не передаёт им адрес и ключи группы и не сообщает, что устройство добавлено в группу. Адрес группы, nwks_key и apps_key нужно записать в каждое устройство отдельно — при производстве, при настройке или командой вашего приложения. Значения в устройствах и на сервере должны совпадать, иначе устройство отбросит кадр.
Состав группы на сервере (add_device_to_multicast_req) — список для учёта: кадр группы примет любое устройство, в которое записаны её адрес и ключи.
Порядок команд
- Создайте группу:
create_multicast_req. - Запишите адрес и ключи группы в устройства. Это делается вне сервера.
- Запишите устройства в состав группы для учёта:
add_device_to_multicast_req.
Команды группы
| Команда | Зачем | В текущей версии |
|---|---|---|
create_multicast_req | Создать группу | Работает |
get_multicast_req | Получить параметры группы | Работает |
update_multicast_req | Изменить ключи, класс, частотный план, описание группы | Работает |
delete_multicast_req | Удалить группу | Работает |
add_device_to_multicast_req | Записать устройство в состав группы | Работает |
delete_device_from_multicast_req | Убрать устройство из состава группы | Работает |
multicast_data_req | Отправить данные группе | Не работает: сервер проверяет запрос, но кадр не отправляет |
get_multicast_data_req | Получить историю кадров группы | Не реализована |
multicast_data_ack_req | Получить статус кадра группы | Не реализована |
multicast_data_purge_req | Очистить очередь группы | Не реализована |