Skip to main content

Узлы

Раздел «Узлы» веб-интерфейса Orion Network Server — список устройств LoRaWAN и карточка каждого из них; узлом интерфейс называет устройство. Здесь устройства регистрируют вручную или импортом из файла, меняют их настройки по одному и пачкой, смотрят принятые кадры, уровень сигнала и потери. Отправить данные на устройство из карточки нельзя: downlink отправляют через WebSocket API.

Где находится раздел и кому он доступен​

Пункт меню «Узлы» открывает список узлов по адресу /nodes. Новый узел добавляют на странице /nodes/add. Карточка узла открывается по адресу /nodes/<DevEUI> — на неё ведёт DevEUI в списке.

ЧтоКому доступно
Пункт меню «Узлы» и сам разделГруппы admin, monitoring и суперпользователь (superuser)
Добавление узла, действия «Удалить», «Экспорт» и «Изменить»Группы admin, node_admin и суперпользователь
Действие «Права»Группа dealer и суперпользователь
Изменение существующего узлаПо правам на этот узел, которые передал сервер. Без права изменения карточка открывается только для чтения

Группы node_admin и dealer дают эти действия только вместе с доступом к разделу — группой admin или monitoring.

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

Список узлов: колонки и цветовые отметки​

Список узлов
  1. Поле поиска и кнопка «Найти» — поиск по одной или нескольким строкам.
  2. «Действие» и «Выполнить» — массовое действие над отмеченными узлами.
  3. «Импорт» — панель «Импорт узлов» для файла CSV или XLSX.
  4. «Добавить узел» — новый узел на странице /nodes/add.
  5. Шестерёнка «Настройки таблицы» — режим «Сокращать текст».
  6. Флажки — в заголовке отмечают все строки страницы, в строке — один узел.
  7. «Последнее сообщение» — жёлтая ячейка: от узла нет сообщений больше 2 суток.
  8. «Процент потерь» — жёлтая ячейка: потери 20 % и больше.
КолонкаЧто показывает
«EUI устройства»DevEUI узла; ссылка на карточку
«Адрес устройства»DevAddr
«Приложение»Приложение, к которому относится узел. Это ссылка, если пользователю разрешён просмотр приложения
«Вкл/Выкл»Включён ли узел
«Последнее сообщение»Когда от узла пришло последнее сообщение
«Описание»Описание узла
«Последнее соединение»Когда узел последний раз подключался к сети (join)
«Процент потерь»Потери за четыре периода: «Текущий», «За день», «За неделю», «За месяц»

Если для узлов заданы дополнительные поля с показом в таблице, у каждого такого поля в списке своя колонка.

Цвет ячейки подсказывает, на какие узлы посмотреть:

ЯчейкаЖёлтаяКрасная
«Последнее сообщение»Больше 2 суток назадБольше 5 суток назад
«Процент потерь»20 % и большеБольше 50 %
«Последнее соединение»—Последний join завершился не статусом MIC OK

Подсказка при наведении на ячейку «Последнее соединение» показывает статус последнего join: MIC OK, MIC ERROR или LATE JOIN ACCEPT. Знак «!» после времени значит, что сервер забанил узел за частые join; отметка снимается при первом join после окончания бана, — подробнее в описании поля «Тестовое устройство» ниже.

Поиск, сортировка и выбор узлов​

Поле поиска многострочное:

  • Одна строка. Слова разделяют пробелом. Узел найдётся, если каждое слово встречается — как часть значения, без учёта регистра — в DevEUI, DevAddr, названии приложения, описании или дополнительном поле, показанном в таблице.
  • Несколько строк. По одному значению в строке — например, вставленный список DevEUI. Сервер сравнивает строки с теми же полями целиком и с учётом регистра, а не по части значения; DevEUI вставляйте в том же регистре, что и в списке.

Когда задан поиск, рядом с полем видно «Найдено: N (Всего: M)»; щелчок по «(Всего: M)» сбрасывает поиск.

Щелчок по заголовку колонки сортирует список по DevEUI, DevAddr, названию приложения, «Вкл/Выкл», последнему сообщению, описанию или последнему соединению. Следующие щелчки переключают порядок: по возрастанию, по убыванию, без сортировки.

На странице 25 строк; другое число введите в поле под таблицей и нажмите «Размер таблицы». Номер страницы, поиск, сортировку, размер страницы и режим «Сокращать текст» (меню-шестерёнка «Настройки таблицы») браузер запоминает в localStorage под ключом node_list.

Узлы для массовых действий отмечают так:

  • флажок в строке — каждый узел отдельно: щелчок с нажатой Shift отмечает диапазон строк только на экране, в действие эти строки не попадут;
  • флажок в заголовке таблицы — все строки страницы;
  • ссылка «Выбрать все (N)» — все найденные узлы.
Внимание

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

Массовые действия: удаление, экспорт, изменение настроек, права​

Отметьте узлы, выберите действие в меню «Действие» и нажмите «Выполнить». Кому доступно каждое действие, сказано в первом разделе.

ДействиеЧто делает
«Удалить»Удаляет выбранные узлы
«Экспорт»Скачивает CSV-файл с настройками и ключами выбранных узлов
«Изменить»Меняет настройки выбранных узлов одной операцией
«Права»Выдаёт пользователю право просмотра или изменения выбранных узлов либо отзывает права

Удаление​

Интерфейс спрашивает: «Вы действительно хотите удалить узлы?». Удаление мягкое: узел остаётся в базе неактивным, с датой деактивации, а права на него удаляются. DevEUI и DevAddr должны быть уникальны только среди активных узлов, поэтому удалённое устройство можно зарегистрировать заново с тем же DevEUI.

Экспорт​

Браузер скачает файл exported_nodes_YYYY-MM-DD-HH-mm.csv (в имени — дата и время выгрузки) с колонками: Device EUI, Device address, App key, Nwks key, Apps key, Activation, Description, Node class, Region, Rx window, ADR, ADR interval, Adr min, Adr max, Adr fix, Duty cycle, Seq up, Seq down, Down queue, Seq chk, Place, Last join, Last message, Tariff. Названия колонок сервер пишет на языке запроса; здесь они приведены по-английски.

Внимание

Ключи устройств — App key, Nwks key и Apps key — записаны в файле открытым текстом.

Изменение настроек​

«Изменить» открывает окно «Изменить настройки узла» с полями: «Приложение», «Тариф», «Описание», «Класс узла», «Rx окно», «Регион», «Duty cycle», «ADR», «ADR интервал», «Adr min», «Adr max», «Adr fix», «RX2 скорость (DR)», «RX1 смещение DR», «RX1 задержка», «RX2 частота, Гц», «Дополнительные каналы», «Проверка последовательности», «Поддержка роуминга», «Включен».

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

Поле «Приложение» переносит узлы в другое приложение. Выбрать можно приложение, владельцем которого является пользователь; суперпользователь может выбрать любое.

Массовое изменение работает только в пределах одного региона. Если отмечены узлы разных регионов, окно показывает «Выборка из разных диапазонов» и предлагает «Оставить только» один из регионов: в подписи — название региона и число его узлов. Запрос с узлами разных регионов сервер отклоняет целиком (ответ 400). Перед сохранением сервер проверяет все узлы и, если хотя бы один не прошёл проверку, не сохраняет ничего.

Импорт узлов из CSV и XLSX​

  1. Нажмите «Импорт» — откроется панель «Импорт узлов».
  2. Выберите файл .csv в кодировке UTF-8 или .xlsx (читается только первый лист). Образец — файл template_nodes.xlsx по ссылке в панели; ссылка может быть подписана TEMPLATE, потому что перевода для неё в интерфейсе нет.
  3. Выберите тариф («Выберите тариф») и приложение («Выберите приложение»), в которое попадут узлы.
  4. Перетащите столбцы файла на «Поля из базы данных». Столбцы с названиями, как у полей узла по-русски или по-английски, сопоставятся сами.
  5. Нажмите «Загрузить данные». Ошибки интерфейс показывает по строкам файла.

Правила импорта:

  • Обязательны только «EUI устройства» и «App key».
  • Если DevAddr пуст, сервер назначит случайный свободный адрес; пустые Nwks key и Apps key заменит случайными ключами.
  • Ячейки null, none и [null] считаются пустыми; true и false превращаются в логические значения.
  • Если узел с таким DevEUI уже есть, строка получит ошибку Node <EUI> already exists.
  • Импортировать узлы в приложение может его владелец, суперпользователь или пользователь с правом изменения этого приложения.

Добавление узла: OTAA и ABP​

Новый узел заполняют в той же карточке, что и существующий; поля описаны в следующем разделе. По умолчанию выбрана активация OTAA:

  • «Адрес устройства» заполняется сам: сервер выдаёт адрес, который не занят другими узлами;
  • Nwks key и Apps key заполняются случайными значениями;
  • App key нужно ввести — подсказка у поля: «Если вы хотите включить соединение по воздуху, добавьте ключ приложения.»

При создании узла OTAA сервер сохраняет DevAddr и сеансовые ключи из формы, но при каждом join заменяет их: новый DevAddr и ключи выдаёт Join Accept. При изменении существующего узла OTAA сервер DevAddr, Nwks key и Apps key из формы не сохраняет.

Для ABP переведите переключатель «Активация» в положение ABP. Интерфейс очистит «Адрес устройства» и оба сеансовых ключа — введите значения из прошивки устройства. Переключатель подписан «OTTA» / «ABP»: «OTTA» — это OTAA.

Значения по умолчанию для нового узла:

ПараметрПо умолчанию
«Класс узла»A
«Rx окно»RX1
«Регион»KZ865-868 (код 6)
«ADR»Включён
«ADR интервал»20
«Adr min» / «Adr max»DR0 / DR5
«Adr fix»Не задан
«Duty cycle»0
«Seq up», «Seq down», «Down queue»0
«Проверка последовательности»Strict
«Вкл/Выкл»Вкл

Все эти поля, кроме «Вкл/Выкл», находятся в расширенном режиме, поэтому в простом режиме узел создаётся с этими значениями. Если устройство работает в другом частотном плане, включите режим «Расширенный» и выберите регион до сохранения.

«Добавить» сохраняет узел, показывает «Узел добавлен» и возвращает к списку.

Карточка узла: основные поля и ключи​

Вверху карточки — кнопка «Назад к узлам», заголовок «DevEUI - DevAddr» и описание узла, обрезанное до 56 символов. Вкладки: «Мониторинг» (только у существующего узла) и «Настройки узла». На вкладке настроек переключатель «Простой» / «Расширенный» («Режим настроек») показывает дополнительные блоки; по умолчанию включён «Простой».

Карточка узла: вкладка «Настройки узла» в простом режиме
  1. «Назад к узлам» — возврат к списку.
  2. Заголовок «DevEUI - DevAddr» и описание узла.
  3. Вкладки «Мониторинг» и «Настройки узла».
  4. «Простой» / «Расширенный» — переключатель режима настроек.
  5. «Активация» — переключатель «OTTA» / «ABP».
  6. Кнопки копирования — «Copy big endian» и «Copy little endian».
  7. Блок «LoRaWAN AES128 ключи» — App key, Nwks key и Apps key.
  8. «Сохранить» и «Сохранить и продолжить редактирование» — неактивны, пока форма не изменена.
ПолеЧто вводить
«Активация»OTAA или ABP; переключатель подписан «OTTA» / «ABP»
«Приложение»Начните вводить название; варианты показаны как «app_id - название». Обязательно
«EUI устройства»DevEUI, 16 hex-символов. Обязательно
«Адрес устройства»DevAddr, 8 hex-символов; редактируется только в ABP
«Тариф»Тариф узла. Обязательно
«Описание»До 255 символов
«Вкл/Выкл»Включён ли узел
Дополнительные поляПоля, настроенные для узлов, если они есть

Идентификаторы и ключи вводятся шестнадцатеричными цифрами в верхнем регистре. На строчные буквы интерфейс отвечает «Введите действительное шестнадцатеричное значение в верхнем регистре: например "FF0022"», на неверную длину — «Минимальная длинна N (сейчас M)» (так в интерфейсе).

Блок «LoRaWAN AES128 ключи»:

КлючПодпись в интерфейсеРедактируется
App key«Ключ приложения»В OTAA и ABP
Nwks key«Ключ сенса сети» (так в интерфейсе)Только в ABP
Apps key«Ключ сеанса приложения»Только в ABP

У полей DevEUI, DevAddr и трёх ключей по две кнопки копирования: «Copy big endian» копирует значение как показано, «Copy little endian» — с обратным порядком байтов. Под ключами интерфейс напоминает: «При копировании-вставке ключа AES128, использовать его как есть. Это криптографический ключ без понятия байтов.»

Смена тарифа. Новый тариф существующего узла начинает действовать с ближайших 00:00 UTC. До этого карточка показывает «Назначено изменение тарифа …» с датой и новым тарифом, а следующую смену тарифа сервер отклоняет с ошибкой «Tariff can be changed no more than once a day».

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

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

Расширенный режим: параметры LoRaWAN, местоположение, номера последовательностей, теги и переменные​

Параметры узла LoRaWAN​

ПолеЗначения
«Класс узла»A, B или C. Класс B выбрать можно, но подсказка интерфейса говорит, что он не поддерживается: сервер не отправляет таким узлам downlink, см. Классы устройств
«Rx окно»Предпочтительное окно приёма: RX1 или RX2
«Регион»Частотный план узла, 38 вариантов. Значок рядом с полем открывает «Частотный план»; каналы и параметры всех планов — в разделе Частотные планы
«Duty cycle»Число; сервер сейчас значение только хранит
«ADR»Включён ли ADR. Подсказка: «Только конечный узел может включить / отключить ADR»
«ADR интервал»По умолчанию 20
«Adr min», «Adr max», «Adr fix»Скорость передачи (DR). В списке рядом с номером — параметры и предел кадра из частотного плана, например «DR3 — SF9BW125 — 115 Б»
«Поддержка роуминга»Переключатель
«Тестовое устройство»«Не банить за частые join (тест-стенд)». Только для staff и суперпользователя

Сервер запрещает подключение устройству, которое слишком часто присылает join-запросы: по умолчанию — на 1 час, когда join приходит 20-м за скользящие 600 секунд; этот join сервер отклоняет. Порог и длительность бана задаются параметрами запуска сервера, окно 600 секунд фиксировано. Join от незарегистрированного устройства тоже приводит к бану, а создание устройства на сервере бан снимает. «Тестовое устройство» исключает узел из этой проверки — например, на испытательном стенде.

Номера последовательностей LoRaWAN​

ПолеЧто это
«Seq up»Счётчик uplink-кадров (FCnt Up). У существующего узла сервер изменение не сохраняет
«Seq down»Счётчик downlink-кадров (FCnt Down). Уменьшить нельзя: меньшее значение сервер не сохранит
«Down queue»У существующего узла сервер изменение не сохраняет
«Проверка последовательности»Strict или Relaxed

Местоположение​

Блок «Местоположение»: карта, поля «Широта» и «Долгота» с кнопкой «Перейти» и кнопки, которые ставят и убирают метку. Интерфейс передаёт местоположение серверу точкой GeoJSON (долгота, широта).

Теги и переменные​

У существующего узла есть блоки «Теги» и «Переменные» — пары «ключ — значение». JS-кодек приложения получает их как input.tags и input.variables; теги узла перекрывают одноимённые теги приложения.

Радиопараметры и журнал MAC-команд​

Панель «Радиопараметры» есть в расширенном режиме у существующего узла. В ней задают желаемые параметры окон приёма и каналов, а сервер доводит до них устройство MAC-командами RXParamSetupReq, RXTimingSetupReq и NewChannelReq.

ПараметрЗначения
«RX2 скорость (DR)»DR0–DR7 или «Дефолт диапазона (…)»
«RX1 смещение DR»0–7
«RX1 задержка»1–15 секунд
«RX2 частота, Гц»В пределах частотного плана, шаг 100 Гц; пусто — значение из плана
«Дополнительные каналы»До 5 каналов: частота, min DR и max DR; пусто — каналы диапазона. Для US915 и AU915 не поддерживаются

Под параметрами строка «Фактически» — значение, которое подтвердил узел; у скорости RX2, смещения, задержки и каналов рядом показано состояние:

СостояниеЧто значит
«Ожидает ACK»Сервер ждёт подтверждения от узла
«Отклонено (n)»Узел отклонил команду n раз (2 и больше); сервер прекратил попытки
ГалочкаУзел подтвердил значение; у каналов галочки нет
«—»Узел ещё не обменивался MAC-командами с сервером
Панель «Радиопараметры» узла класса C: RX2 поднят до DR3
  1. «RX2 скорость (DR)» — желаемое значение: DR3 вместо дефолта диапазона.
  2. «Ожидает ACK» — сервер ждёт подтверждения от узла; строка «Фактически» показывает прежнее значение DR0.
  3. Галочка — узел подтвердил «RX1 задержку» 2 с.
  4. «Дополнительные каналы» — частота, min DR и max DR канала; «Добавить» — ещё один канал, до 5.
  5. «Отклонено (2)» — узел дважды отклонил канал, сервер прекратил попытки.
  6. «Сохранить» — сохраняет только радиопараметры.
  7. «Повторить» — сбрасывает счётчик отказов и отправляет MAC-команды заново.
  8. Значок «?» — подсказка «Как работают радиопараметры» с примером для узла класса C.
  • Кнопка «Сохранить» на панели сохраняет только радиопараметры.
  • Изменения уходят со следующим обменом downlink и действуют только после подтверждения узла; до этого узел работает на прежних параметрах.
  • После 2 отказов узла сервер прекращает попытки. «Повторить» сбрасывает счётчик отказов и отправляет MAC-команды заново.
  • После повторного join сервер применяет настройки заново.

Пример из подсказки интерфейса: узлу класса C на KZ865 нужно записать длинную конфигурацию. Поднимите RX2 до DR3 — предел кадра вырастет с 51 до 115 байт; запишите конфигурацию и верните «Дефолт диапазона».

Сервер проверяет значения при сохранении:

  • RX1 задержка — 1–15 секунд, смещение DR — 0–7;
  • не больше 5 каналов; у каждого min DR и max DR — целые числа 0–15, и min DR не больше max DR;
  • частоты RX2 и каналов должны лежать в пределах частотного плана, а DR — быть скоростью LoRa этого плана: скорости FSK и LR-FHSS сервер не принимает, см. Скорости и размер данных;
  • для US915 и AU915 дополнительные каналы не принимаются;
  • при смене региона сохранённые значения должны подходить к новому плану, иначе сервер ответит «Saved value is outside the band plan of the new region; change or clear it».

«Журнал MAC-команд» на вкладке «Мониторинг» показывает обмен MAC-командами с узлом: время, MAC-команду (название и 0xCID), направление (Req или Ans), содержимое, статус (sent, acked, rejected, unsolicited) и ACK. Журнал фильтруется по типу команды и выводится постранично.

Вкладка «Мониторинг»​

БлокЧто показывает
«Состояние узла»Графики «Запас помехоустойчивости» и «Аккумулятор». Вместо уровня заряда может стоять «На внешнем питании» или «Нет актуальных данных»; при внешнем питании графика аккумулятора нет
Графики состояния сетиRSSI, LSNR, пузырьковые диаграммы, частоты, число сообщений
«Процент потерь»Таблица потерь
График FCntСчётчик кадров
«Текущие данные»Панель с таблицами ниже. Кнопка «Обновлять через» включает и выключает автообновление; интервал в секундах задают в поле рядом, по умолчанию 10
«Шлюзы в радиусе»Шлюз, RSSI (дБм), SNR (дБ), «Замечен». Строится по последним 100 uplink, не старше месяца
«Данные»Кадры узла, см. ниже
«Лог adr»Журнал ADR
«Журнал MAC-команд»См. предыдущий раздел

Колонки таблицы «Данные»: время, частота (МГц), тип сообщения (JR, JA, UDU, UDD, CDU, CDD, RFU, Proprietary), FCnt, FPort, RSSI (дБм), LSNR (дБ), SF, размер, время в эфире (мс), полоса (кГц), MAC, направление (Uplink или Downlink), данные, статус подтверждения downlink (от Scheduled до GPS Unlocked) и время подтверждения.

  • Значок колбы расшифровывает данные кодеком приложения; если кодека нет — «Кодек не задан для приложения».
  • Фильтры: типы сообщений, направления, период (целыми днями). Границы дней и время в таблице считаются по часовому поясу браузера.
  • Строк на странице: 10, 25, 50 или 100.
Вкладка «Мониторинг»: панель «Текущие данные»
  1. «Обновлять через» — автообновление; интервал в секундах — в поле рядом.
  2. «Шлюзы в радиусе» — шлюз, RSSI, SNR и «Замечен».
  3. «Данные» — кадры узла; рядом — их число.
  4. Значок колбы — расшифровка данных кодеком приложения.
  5. Фильтры типов сообщений и направлений — «Все типы сообщений» и «Все направления».
  6. «Показать за период» — период целыми днями.
  7. Строк на странице — 10, 25, 50 или 100.

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

  • «Выбрать все» при пустом поиске затрагивает только узлы, отмеченные на странице.
  • Перенести узел в другое приложение можно только массовым действием «Изменить».
  • Узел OTAA получает новые DevAddr и сеансовые ключи при каждом join; при изменении узла OTAA значения этих полей из формы сервер не сохраняет.
  • У существующего узла сервер не сохраняет изменения «Seq up» и «Down queue» и не даёт уменьшить «Seq down».
  • «Duty cycle» сервер сейчас только хранит.
  • Тариф меняют не чаще раза в сутки; новый тариф действует с 00:00 UTC.
  • Файл экспорта содержит ключи устройств открытым текстом.

См. также​