Skip to main content

Группы рассылки (Multicast)

Multicast-группа — общий адрес и общие ключи, по которым несколько устройств принимают один и тот же кадр downlink. В разделе «Multicasts» веб-интерфейса ONS группы создают, меняют и удаляют. Добавить устройства в группу и отправить группе данные из веб-интерфейса нельзя — см. Что важно знать.

Что такое группа в веб-интерфейсе​

Пункт меню «Multicasts» стоит между «Узлы» и «Частотные планы» и открывает список групп по адресу /multicast. Название пункта в русском интерфейсе не переведено. Новую группу создают на странице /multicast/add, существующая открывается по своему Multicast EUI: /multicast/<Multicast EUI>.

На сервере группа хранится как запись устройства с пометкой multicast-группы. Multicast EUI записывается как DevEUI, multicast-адрес — как DevAddr, тип группы — как класс устройства, DR — как фиксированная скорость передачи, частота — в отдельное поле.

Поэтому EUI и адрес группы должны быть уникальны среди всех активных записей — и групп, и устройств. При совпадении сервер группу не сохранит и вернёт ошибку «This combination of uniq fields already exists.». EUI и адрес удалённой группы снова свободны.

Внимание

Веб-интерфейс только хранит параметры группы. Он не добавляет в группу устройства, не отправляет группе данные и не записывает адрес и ключи группы в устройства.

Кто видит раздел и кто может менять группы​

ЧтоКому доступно
Пункт меню «Multicasts» и сам разделГруппы admin, monitoring и суперпользователь (superuser)
Кнопка «Добавить multicast узел» и действие «Удалить» в спискеГруппы admin, node_admin и суперпользователь
Действие «Права» в спискеГруппа dealer и суперпользователь
Заполнение и сохранение новой группы на странице /multicast/addГруппы admin, node_admin и суперпользователь
Изменение существующей группыРешают права пользователя на эту группу, которые возвращает сервер: они важнее групп пользователя

Группа node_admin есть в правах экранов раздела, но её нет в списке групп, которым виден пункт меню «Multicasts». Доступ к адресам раздела проверяется по тому же списку, поэтому пользователь только из группы node_admin в раздел не попадёт.

Список групп​

Список multicast-групп
  1. Поиск — поле и кнопка «Найти». Сервер ищет по Multicast EUI, multicast-адресу, имени приложения, описанию и значениям дополнительных полей.
  2. Добавить multicast узел — открывает страницу новой группы /multicast/add.
  3. Флажки строк — отмеченные группы, к которым применится действие.
  4. Действие и Выполнить — выбор действия «Удалить» или «Права» и его запуск. Рядом видно, сколько строк отмечено.
  5. Настройки таблицы (шестерёнка) — переключатель «Сокращать текст».
  6. Multicast EUI — ссылка на страницу группы.
  7. Приложение — по этому столбцу и по столбцу «Описание» можно сортировать. В строках — ссылки на страницы приложений, если пользователю разрешён их просмотр.
  8. Размер таблицы — сколько строк показывать на странице, по умолчанию 25.
СтолбецЧто показывает
«Multicast EUI»EUI группы; ссылка на страницу группы
«Приложение»Приложение группы. Ссылка на страницу приложения, если пользователю разрешён его просмотр, иначе просто текст
«Описание»Описание группы

После поиска рядом с полем видно, сколько групп найдено («Найдено») и сколько их всего («Всего»). Сервер ищет без учёта регистра по Multicast EUI, multicast-адресу, имени приложения, описанию и значениям дополнительных полей.

Сортировать можно по столбцам «Приложение» и «Описание». Сортировка по столбцу «Multicast EUI» в текущей версии не работает: интерфейс передаёт серверу поле сортировки multicast_eui, которого нет среди допустимых, сервер отвечает ошибкой, и её текст появляется вместо строк таблицы. Строки вернутся после сортировки по другому столбцу.

На странице по умолчанию 25 строк. Другое число вводят в поле внизу списка и нажимают «Размер таблицы». В меню с шестерёнкой «Настройки таблицы» есть переключатель «Сокращать текст». Поиск, сортировку, номер страницы, размер таблицы и режим сокращения браузер запоминает в localStorage под ключом multicast_node_list.

Действие над несколькими группами:

  1. Отметьте строки.
  2. В поле «Действие» выберите «Удалить» или «Права».
  3. Нажмите «Выполнить». Кнопка неактивна, пока не выбраны действие и хотя бы одна строка.

Удаление групп и действие «Права»​

Удалить группу можно только из списка: на странице группы кнопки удаления нет.

  1. Отметьте группы, выберите действие «Удалить» и нажмите «Выполнить».
  2. Подтвердите вопрос «Вы действительно хотите удалить узлы?».
  3. Итог появится сообщением «Узлы удалены» со списком EUI удалённых групп.

Если среди отмеченных есть группа, которую пользователю удалять нельзя, сервер удалит остальные, а интерфейс покажет только «Что-то пошло не так». Список на экране при этом не обновится — обновите страницу и проверьте, какие группы удалены. Ссылка «Выбрать все (N)» рядом с кнопкой «Выполнить» для удаления не работает: сервер отклоняет запрос целиком, ничего не удаляет, а интерфейс показывает то же сообщение.

Группа не стирается из базы. Сервер помечает её неактивной, записывает дату отключения, снимает выданные на неё права пользователей и групп и добавляет в журнал действий пользователей запись «Удаление». Группа пропадает из списка, а её EUI и адрес можно занять снова. Удаление сервер разрешает суперпользователю, владельцу приложения группы и пользователю с правом удаления на эту группу (delete_node).

Действие «Права» в текущей версии ничего не меняет: окно выбора прав открывается, но после подтверждения интерфейс не отправляет запрос на сервер.

Создание группы​

  1. В списке нажмите «Добавить multicast узел» — откроется страница /multicast/add.
  2. Выберите «Приложение» и введите «Multicast EUI».
  3. Проверьте «Multicast адрес», «Nwks key» и «Apps key»: они уже заполнены случайными значениями. Если в устройства уже записаны адрес и ключи группы, введите их.
  4. Заполните поле «Частота»: без него форма не считается заполненной и кнопка «Добавить» неактивна.
  5. Нажмите «Добавить». Группа создаётся, появляется сообщение «Multicast добавлен», и открывается список.
Страница новой multicast-группы
  1. Приложение — приложение группы.
  2. Multicast EUI — EUI группы, 16 hex-символов. Обязательно.
  3. Кнопки копирования — «Copy big endian» и «Copy little endian», см. Адрес и ключи: формат и копирование.
  4. Multicast адрес — уже заполнен случайным адресом от сервера.
  5. Регион — частотный план группы, по умолчанию KZ865-868. Значок информации открывает окно «Частотный план».
  6. Частота — обязательно: без неё кнопка «Добавить» неактивна.
  7. Nwks key и Apps key — ключи группы. При открытии страницы заполнены случайными значениями; если ключи уже записаны в устройства, введите их — на снимке ключи вписаны вручную.
  8. Добавить — создаёт группу и открывает список.

Поля левой панели и правой панели «LoRaWAN AES128 ключи»:

ПолеЧто задаётПо умолчанию
«Приложение»Приложение группы. В списке — не больше 50 первых по имени активных приложений, которые видит пользователь; остальные выбрать нельзя—
«Multicast EUI»EUI группы, 16 hex-символов. Обязательно—
«Multicast адрес»Адрес группы (DevAddr), 8 hex-символовСлучайный адрес от сервера
«Регион»Частотный план группы. В списке все 38 планов, коды 0–37, см. Коды регионов. Значок информации рядом открывает окно «Частотный план» с кратким описанием выбранного планаKZ865-868 (код 6)
«Тип группы»Класс LoRaWAN группы: B или CC
«Частота»Частота группы, число. Обязательно. Единица в форме не указана—
«DR»Скорость передачи группы: пусто или DR0–DR15. Пустое значение сервер не принимает — сохранение завершится ошибкойDR0
«Описание»Описание группы, до 255 символов—
«Nwks key»NwkSKey группы, 32 hex-символа. Подпись под названием — «Ключ сенса сети» (так в интерфейсе)Случайный ключ
«Apps key»AppSKey группы, 32 hex-символа. Подпись под названием — «Ключ сеанса приложения»Случайный ключ

Под ключами — примечание: ключ AES128 при копировании и вставке нужно использовать как есть.

При создании сервер проверяет, что выбранное приложение активно и пользователь вправе в нём работать, и добавляет в журнал действий пользователей запись «Добавление».

Класс B ONS не поддерживает — см. Классы устройств. Поэтому в поле «Тип группы» выбирайте C.

Адрес и ключи: формат и копирование​

Поля «Multicast EUI», «Multicast адрес», «Nwks key» и «Apps key» принимают hex только в верхнем регистре. Ошибки формы:

  • строчные буквы — «Введите действительное шестнадцатеричное значение в верхнем регистре: например "FF0022"»;
  • значение короче нужного — «Минимальная длинна 16 (сейчас 12)» (так в интерфейсе; числа зависят от поля).

Значения по умолчанию на странице новой группы:

  • ключи — случайные 32 hex-символа в верхнем регистре; их генерирует браузер;
  • адрес — случайный DevAddr от сервера. Сервер строит его из NetID сети, заданного в настройках сервера (по умолчанию 000021), и проверяет, что такого адреса ещё нет среди существующих; на подбор у него до 10 попыток.

У EUI, адреса и каждого ключа по две кнопки копирования: «Copy big endian» копирует значение как есть, «Copy little endian» — с обратным порядком байтов (01020304 → 04030201). Подсказки этих кнопок на английском и не переведены.

Изменение группы​

Страница группы открывается щелчком по Multicast EUI в списке. В заголовке — «EUI - адрес» группы и описание, обрезанное до 56 символов. Кнопка-стрелка с подсказкой «Назад к multicast узлам» возвращает к списку. В боковом меню под «Multicasts» появляется пункт с Multicast EUI группы и вложенный пункт «Данные» — переход к таблице «Данные». На странице новой группы этих пунктов нет.

Страница multicast-группы
  1. Назад к multicast узлам — кнопка-стрелка, возвращает к списку.
  2. Заголовок — «EUI - адрес» группы и описание, обрезанное до 56 символов.
  3. Пункты бокового меню — Multicast EUI группы и вложенный пункт «Данные», переход к таблице «Данные».
  4. Данные — таблица данных группы: без фильтров по направлению и MType, без столбцов RSSI и LSNR.
  5. Приложение — сменить приложение у существующей группы нельзя: сервер оставляет группу в прежнем приложении.
  6. Multicast адрес — после «Сохранить и продолжить редактирование» заполняется новым случайным адресом от сервера.
  7. Сохранить — сохраняет изменения и возвращает в список.
  8. Сохранить и продолжить редактирование — сохраняет изменения и оставляет на странице. Обе кнопки активны, только когда в форме есть изменения и все поля заполнены верно; на снимке форма ещё не менялась.
КнопкаЧто делает
«Сохранить»Сохраняет изменения и возвращает в список
«Сохранить и продолжить редактирование»Сохраняет изменения и оставляет на странице. После сохранения поле «Multicast адрес» заполняется новым случайным адресом от сервера; если затем изменить другое поле и сохранить, группа получит этот новый адрес

После сохранения появляется сообщение «Multicast обновлен», а в журнал действий пользователей добавляется запись «Изменение». Кнопки активны, только когда в форме есть изменения и все поля заполнены верно.

Можно ли менять группу, решают права пользователя на неё:

  • без права изменения поля доступны только для чтения, а панели с кнопками нет;
  • поле «Приложение» заблокировано и тогда, когда у пользователя нет права add (добавление) на приложение группы.

Сменить приложение у существующей группы нельзя. Даже если поле «Приложение» доступно и в нём выбрано другое приложение, сервер при сохранении оставляет группу в прежнем приложении.

Таблица «Данные» на странице группы​

На странице существующей группы над формой — таблица «Данные». Фильтров по направлению и по типу сообщения (MType) в ней нет, столбцы RSSI и LSNR скрыты. На странице новой группы таблицы нет.

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

  • Состав группы здесь не задаётся. Добавить устройство в группу из веб-интерфейса нельзя. Состав группы — отдельная запись на сервере, её ведёт команда WebSocket API add_device_to_multicast_req.
  • Отправить данные группе нельзя. В веб-интерфейсе такой функции нет, а команда WebSocket API multicast_data_req в текущей версии проверяет запрос, но кадр не отправляет. Как отправить команду нескольким устройствам сейчас — см. Что делать сейчас.
  • После «Сохранить и продолжить редактирование» адрес в форме меняется. Перед следующим сохранением верните прежний адрес или откройте группу заново из списка.
  • Сервер не настраивает устройства. Адрес группы и оба ключа нужно записать в каждое устройство отдельно — см. Как устройство узнаёт о группе.
  • Частота и DR только хранятся. Сервер записывает их, но для передачи не использует. Единица частоты не указана ни в форме, ни в модели данных сервера; на странице create_multicast_req поле freq описано в МГц.
  • Класс B не поддерживается. Интерфейс предлагает классы B и C, сервер принимает ещё и A, но класс B ONS не поддерживает.
  • Приложение группы не меняется. Выбор другого приложения на странице группы сервер при сохранении игнорирует.

См. также​