Skip to main content

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_addrDevAddr, с которым уходят кадры группы, 8 hex-символов
Сетевой ключnwks_keyNwkSKey группы, 32 hex-символа: им подписывается каждый кадр
Ключ приложенияapps_keyAppSKey группы, 32 hex-символа: им шифруются данные кадра
Классgroup_typeКласс LoRaWAN группы: 3 — C, 2 — B, 1 — A
РегионregionЧастотный план группы
  • EUI и адрес группы уникальны на всём сервере — и среди групп, и среди устройств.
  • Группа создаётся в приложении, к которому выполнено подключение.

Как устройство узнаёт о группе​

Сервер не настраивает устройства: он не передаёт им адрес и ключи группы и не сообщает, что устройство добавлено в группу. Адрес группы, nwks_key и apps_key нужно записать в каждое устройство отдельно — при производстве, при настройке или командой вашего приложения. Значения в устройствах и на сервере должны совпадать, иначе устройство отбросит кадр.

Состав группы на сервере (add_device_to_multicast_req) — список для учёта: кадр группы примет любое устройство, в которое записаны её адрес и ключи.

Порядок команд​

  1. Создайте группу: create_multicast_req.
  2. Запишите адрес и ключи группы в устройства. Это делается вне сервера.
  3. Запишите устройства в состав группы для учёта: 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Очистить очередь группыНе реализована