LoRa FS - Настройка в контроллере
Настройка и работа с LoRa в веб-интерфейсе контроллера Lavritech
Этот раздел описывает настройку обмена данными в контроллере при использовании режима LoRa FS - с поддержкой шаблонов для чтения данных и управления.
В разделе рассмотрены:
- выбор режима работы (Node / Gateway)
- настройка в режиме Gateway (шлюз)
- настройка в режиме Node (нода)
- параметры радиосвязи
- сценарии использования и интеграции через Web, MQTT, Modbus Master, Modbus Slave
- детальные настройки
Примечание: Распределение общих ресурсов контроллера выполняется на этапе подготовки прошивки.
Для двух Lavritech контроллеров, выступающих в роли LoRa Gateway и Node - вначале надо произвести общую настройку связи по радиоканалу чтобы они смогли общаться между собой. Общая настройка связи для Gateway и Node производится аналогично с использованием одних и тех же значений.
Нужно будет повторить шаги, описанные ниже для двух контроллеров.
Для перехода к настройкам - зайдите на вкладку Lora с главной страницы контроллера.

Выбор режима работы (Node / Gateway)
В верхней части страницы настройки LoRa сосредоточены общие настройки связи, включая выбор режима работы.

1️⃣ Выбор текущего режима работы:
- Disable - функционал LoRa отключен
- Lora Gateway - работа в режиме шлюза
- Lora Node - работа в режиме оконечного устройства ("ноды")
2️⃣ Выбор режима шифрования (должен совпадать в настройках Gateway и Node):
- Open - передача данных без шифрования
- ABP (activation by personalization) - основной вариант, рекомендуемый к использованию в простых сетях. В этом случае надо произвести предварительную настройку параметров идентификации и кодирования данных на ноде и шлюзе через веб-интерфейс, чтобы они смогли "опознать" друг друга.
- OTAA (over the air activation) - активация «по воздуху». Поддержка шифрования с обменом ключей. Пока в данной версии прошивки используется редко (требует доп. ресурсов)
Другие технические настройки:
- Use PA BOOST PIN — включение передачи через вывод PA BOOST радиочипа. Активно по-умолчанию.
- Invert mode - включение инвертирование сигнала на прием на Node. Активно по-умолчанию.
Внимание
Настройки связи шлюза и ноды должны быть идентичные, чтобы они могли общаться между собой.
Настройка в режиме Gateway
Основные настройки
Выбор параметров связи
Параметры связи выбираются в соответствии с региональным стандартами, в РФ это RU864-870.
Более детальное описание параметров связи и вариантов выбора находится в разделе
"Общие сведения о технологии LoRa и сети LoRaWAN"
Российские стандарты и принципы передачи данных описаны в ГОСТ Р 71168-2023 (раздел "Региональные параметры").
Общий вид интерфейса Gateway

В режиме Gateway контроллер принимает данные от нескольких Node и предоставляет доступ к ним через различные интерфейсы (Web, MQTT, Modbus Slave).
1️⃣ Выбор текущего режима работы:
- должно быть выбрано Lora Gateway
2️⃣ Выбор режима шифрования (должен совпадать в настройках Gateway и Node):
- Open - передача данных без шифрования
- ABP (activation by personalization) - основной вариант, рекомендуемый к использованию в простых сетях. В этом случае надо произвести предварительную настройку параметров идентификации и кодирования данных на ноде и шлюзе через веб-интерфейс, чтобы они смогли "опознать" друг друга.
- OTAA (over the air activation) - не поддерживается для Gateway
3️⃣ Настройки параметров связи
- Power TX - мощность передачи
- доступные значения: 3-14
- для России максимально разрешенное значение — 14 - 14 dBm (25 мВт)
- Freq - частота канала
- для одноканального режима как правило используется значение 868,9 МГц (канал "по-умолчанию" для диапазона
RU864-870) - полный список частот и каналов для диапазона
RU864-870см. в разделе "Выбор канала (частоты передачи)"
- для одноканального режима как правило используется значение 868,9 МГц (канал "по-умолчанию" для диапазона
- CR (Coding Rate) - степень коррекции ошибок, или "избыточность".
- чем больше CR - тем надёжнее связь, но ниже скорость (меньше полезных данных можно уместить в пакет).
- поддерживаются значения 5, 6, 7, 8 - что соответствует избыточности 4/5, 4/6, 4/7, 4/8.
- SF (Spreading Factor) — фактор расширения спектра.
- чем выше SF - тем больше дальность передачи и выше помехоустойчивость, но ниже скорость.
- диапазон значений: 7 - 12 (максимальная скорость - максимальное расстояние)
- BW (Bandwidth) — ширина спектра сигнала
- для России только 125 кГц
Для сохранения настроек нажмите на кнопку "SET".
Внимание
Настройки связи шлюза и ноды должны быть идентичные, чтобы они могли общаться между собой.
4️⃣ Gateway options
- нажмите "Nodes options" для настройки метрик и параметров шифрования для связи с Node
5️⃣ Мониторинг подключенных Nodes

- первая цифра - порядковый номер ноды
- count - счётчик принятых пакетов
- rssi - уровень сигнала
- time - счетчик времени с момента получения последнего пакета от ноды
6️⃣ Мониторинг принятых пакетов (Last Package)
Сведения о последнем принятом пакете (используется для отладки)

- RSSI - уровень сигнала
- LEN - длина пакета
- HEX - содержимое пакета (байты в формате hex)
Настройка метрик
Gateway обрабатывает принятые данные (и формирует команды к Node) на основе описания структуры данных из LoRa-шаблонов.
Каждой Node на стороне Gateway соответствует свой шаблон.
Функционал LoRa FS позволяет:
- загружать и обновлять готовые шаблоны с сервера
- создавать свои шаблоны и редактировать существующие (через ЕasyFS)
- a также пользоваться шаблонами, которые были автоматически сформированы на стороне Node и отправлены на шлюз.
LoRa-шаблоны хранятся в виде файлов в контролере и доступны на вкладке ЕasyFS.
Подробнее структура шаблонов будет описана в других разделах.
Для выбора шаблона:
- в Gateway-контроллере перейдите на вкладку Lorа
- в разделе Gateway options нажмите кнопку Nodes options.
- выберите ноду, кликнув по её номеру вверху страницы
- выберите шаблон, используя списки в разделах Выбор группы и Выбор шаблона
- внизу нажмите кнопку "SET" чтобы сохранить выбор



При выборе шаблона доступны следующие варианты:
- Выключено - пункт который используется для отключения приёма данных с ноды
- Локальный конфиг - шаблон из файла вида
loralocal1.lr(см. в EasyFS), где 1 - номер выбранной ноды. Этот файл автоматически обновляется при получении конфигурации из Node (см. функцию "Отправить конфигурацию на шлюз" в веб интерфейсе Node). - другие варианты - любые другие шаблоны устройств - принятые с сервера или на основе локальных файлов из EasyFS (например, на скриншоте - показан временный шаблон "test_template")
Функции для обновления шаблонов

Существуют общие функции для обновления шаблонов:
- Применить локальные правки Device list - если были локальные изменения в файлах шаблонов, нужно будет их применить перед использованием.
- Загрузить Device list с сервера - загрузить новые версии шаблонов с сервера lavritech.
После применения шаблона данные, принятые от LoRa появятся на главной странице. A также они будут доступны по другим интерфейсам (если были включены соответствующие опции).

Таким образов в системе контроллера появятся новые связи на основе системных параметров (Sensors/GPIO/PWM), которые были описаны в шаблоне. Подробнее про системные параметры можно прочитать в разделе "Модель данных". Подробнее про интеграцию LoRa с другими опциями, использование значений и связей будет описано ниже.
Настройка в режиме Node
Основные настройки
Общий вид интерфейса Node

В режиме Node контроллер передаёт метрики по LoRaWan согласно конфигурации.
Настройка метрик
Настройка данных (метрик) для передачи осуществляется через веб-интерфейс:
- в Node-контроллере перейдите на вкладку Lorа
- в разделе Node options нажмите кнопку Configure binary metrics.

Откроется список метрик, который можно редактировать вручную, либо воспользоваться Автозаполнением датчиков

Метрики выбираются на основе доступных системных параметров из Sensors/GPIO/PWM.
(на скриншоте Sensors берутся из параметров Modbus устройств)
На основе списка метрик нода формирует конфигурацию пакета (LoRa-шаблон), и периодически отправляет пакеты на шлюз.
Автозаполнение датчиков позволяет заполнить часть списка метрик в автоматическом режиме. Автозаполнение формирует список метрик, основываясь на данных устройств, интегрированных в систему контроллера (устройства должны быть настроены и подключены).
За основу берутся данные, которые видны в блоке "Sensors" на главной странице. В частности, в список метрик попадают параметры из опрашиваемых Modbus устройств. Связи c Modbus строятся на основе данных из секций [sensors] Modbus-шаблонов.
Отправить конфигурацию на шлюз - чтобы шлюз (Gateway) смог верно распознать принятые данные от ноды, ему нужно однократно отправить конфигурацию. При этом на стороне Gateway будет создан или изменён LoRa-шаблон.
Использование и управление
Web-интерфейс

- На главной странице в Gateway-контроллере в блоке Sensors - появятся данные от Nodes. Они группированы под именами Lora device D, где D - номер подключенной ноды.
- при помощи Web_Key для GPIO существует возможность вывести кнопки-индикаторы для контроля и управления. Они будут отображать состояния удалённых GPIO с ноды.
- при помощи Web_Key для PWM существует возможность вывести слайдеры на главной странице. При помощи них можно управлять (или считывать состояние) удалённых PWM с ноды.
Особенности управления через веб (для устройств Class A)
Реакция для команд с Web-кнопок/слайдеров не моментальная.
Большинство Node работает как LoRa-устройство Class A, поэтому при управлении с Gateway нужно учитывать возможные задержки (около двух интервалов между пакетами).
Ожидаемая логика и реакция при управлении с Gateway:
- При нажатию на кнопку или при изменении уровня слайдера - вначале видимого эффекта нет. Команде требуется время на выполнение.
- Надо подождать нового окна передачи от Node к Gateway.
- Когда приходит очередной пакет от Node, шлюз шлёт команду на запись (Downlink-сообщение).
- Нода принимает команду и применяет изменение (реле щёлкает / диммер меняет уровень).
- В составе следующего пакета от Node - новое значение возвращается на шлюз и становится видимым.
MQTT

Чтение значений, формирование имён топиков:
- для чтении группы GPIO - в топике указывается
gpioN- где N - номер параметра - для чтении группы PWM - в топике указывается
pwmN- где N - номер параметра - группа Sensors (в веб отображается как Lora device D) - может отображаться двумя способами:
- при использовании стандартных сгенерированных шаблонов в топике указывается
lorsDDNN, где DD - номер устройства (номер ноды), а NN - номер параметра в рамках ноды. - если в шаблоне добавлены имена топиков для параметров - возможно более удобное обращение по имени параметра в рамках ноды. Тогда появляется группа
lorsD- где D - это номер устройства
- при использовании стандартных сгенерированных шаблонов в топике указывается
Для формирование запросов на запись нужно в топик вставить секцию .../set/...
Например, если топики для чтения имеют вид user/device/...,
то топики для записи будут user/device/set/...
Примеры управления с Gateway:
- GPIO: включение второго канала диммера - запись
1в топикuser/device/gpio221 - PWM: установка яркости второго канала диммера на 70% - запись
70в топикuser/device/pwm221 - Sensors: установка яркости второго канала диммера на 25% - запись
25в топикuser/device/set/lors0102
Дополнительный контроль: Также дополнительно в MQTT можно контролировать изменение счётчика принятых пакетов на gateway lorsc1 и RSSI (уровень сигнала) lorsr1 (1 - номер ноды). Для каждой ноды эти параметры свои.
Особенности управления через MQTT (для устройств Class A)
Обновление значения после записи в топик и реакция - не моментальные.
Большинство Node работает как LoRa-устройство Class A, поэтому при управлении с Gateway нужно учитывать возможные задержки (около двух интервалов между пакетами).
Ожидаемая логика и реакция при управлении с Gateway:
- При записи в топик регистрируется только запись в
.../set/...). Значение топика на чтение может не поменяться. Команде требуется время на выполнение. - Надо подождать нового окна передачи от Node к Gateway.
- Когда приходит очередной пакет от Node, шлюз шлёт команду на запись (Downlink-сообщение).
- Нода принимает команду и применяет изменение (реле щёлкает / диммер меняет уровень).
- В составе следующего пакета от Node - новое значение возвращается на шлюз.
- В новый интервал отправки в MQTT - шлюз шлёт значения параметров, и параметр которые записывали устанавливается в нужное значение.
Именнованные топики
Именованные MQTT-топики для Sensors не генерируются автоматически при авто-заполнении — при необходимости они добавляются вручную в файле шаблона на шлюзе.
Modbus Slave
Шлюз предоставляет карту регистров для доступа со стороны Modbus Master:
- GPIO транслируются в область Coils с 1-го адреса. Адрес Сoil = номер GPIO (управление реле/выполнение дискретных команд).
- PWM транслируются в область Holding Registers с 10000-адреса. Адрес Holding = номер PWM + 10000.
- Sensors транслируются как “static registers” — см. диапазоны, автоматически созданные из LoRa-шаблона ноды.
Более детальное описание работы находится в разделе про опцию Modbus Slave.
Внимание
Некоторые Modbus-утилиты используют адресацию “1-based” — может потребоваться смещение адреса +1 при обращении к регистрам/coil.
Примеры запросов от Modbus Master и ответов контроллера (c использованием утилиты "modpoll"). Данные соответствуют данным показанным на скриншоте главной страницы.
- чтение трёх GPIO: 220 221 222
-
чтение трёх PWM: 220 221 222
-
чтение всех Sensors параметров (10 параметров)
Особенности управления через Modbus Slave (для устройств Class A)
Обновление значения после записи в топик и реакция - не моментальные.
Большинство Node работает как LoRa-устройство Class A, поэтому при управлении с Gateway нужно учитывать возможные задержки (около двух интервалов между пакетами).
Ожидаемая логика и реакция при управлении с Gateway:
- В ответ на команду записи в регистр - возвращается код успешного выполнения команды.
- Если сразу же после этого прочитать значение из регистра - значение будет старым. Команде требуется время на выполнение.
- Надо подождать нового окна передачи от Node к Gateway.
- Когда приходит очередной пакет от Node, шлюз шлёт команду на запись (Downlink-сообщение).
- Нода принимает команду и применяет изменение (реле щёлкает / диммер меняет уровень).
- В составе следующего пакета от Node - новое значение возвращается на шлюз.
- Далее, если опрос значения по Modbus активен - произойдёт изменение значения в регистре, параметр установится в нужное значение.
Интеграция с Node + Modbus Master FS → Gateway
Node:
- Настройте устройства на вкладке Modbus (режим Modbus Master FS) (шаблоны, адреса, параметры опроса).
- На вкладке Lora откройте список метрик (Node options → Configure binary metrics) и выполните Автозаполнение датчиков — нода автоматически сформирует список метрик на основе доступных параметров для подключенных Modbus-устройств
[sensors] - При необходимости - вручную добавьте в список метрик нужные GPIO и PWM. Номера каналов GPIO и PWM можно увидеть на вкладке Modbus, в Device map соответствующего устройства.
- Отправьте конфигурацию на шлюз - она будет передана на Gateway и там будет обновлён файл конфигурации.
Gateway:
- Зайдите на вкладку Lora, откройте Gateway options → Nodes options
- Выберите нужную ноду по её номеру вверху страницы
- Выберите "Локальный конфиг" в списке шаблонов
- Сохраните выбор для этой ноды - кнопка "SET"
- Зайдите на вкладку Lora, убедитесь что счётчик пакетов (count) для ноды увеличивается. Нужно подождать время - интервала передачи пакета который был выставлен на Node.
- Проконтролируйте, что данные от ноды отобразились на главной странице (Lora device в блоке Sensors).
- При необходимости выполните привязки к GPIO и PWM - если данные этого типа передавались с Node и были в списке метрик.
Автозаполнение - только Sensors
Автозаполнение создаёт только часть конфигурации (Sensors).
Автозаполнение датчиков учитывает только секцию [sensors] из Modbus-шаблонов.
Проброс GPIO и PWM из Modbus-шаблонов пока не выполняется автоматически — их необходимо задать в списке метрик вручную.
Пример связывания GPIO и PWM на стороне Node и Gateway
GPIO и PWM с Node транслируются по-порядку как они указаны в списке метрик,
и транслируются по номерам которые были выделены для области LoRa на стороне Gateway.
Например, в списке метрик на Node - мы передаём по 2 параметра из этих групп:

В веб-интерфейсе Gateway-контроллера уточняем какие номера системных параметров GPIO и PWM были выделены под Lora. Открываем таблицы на вкладках GPIO и PWM.

В итоге, получаем такие таблицы соответствия:
GPIO:
| Номер канала на Node | Номер канала на Gateway |
|---|---|
| 181 | 220 |
| 190 | 221 |
PWM:
| Номер канала на Node | Номер канала на Gateway |
|---|---|
| 180 | 220 |
| 181 | 221 |
Детальные настройки
Настройка интервала передачи данных
На стороне Node выбираем подходящий интервал передачи данных. При выборе необходимо ориентироваться на такие факторы, как:
- объём передаваемых данных c одной ноды
- количество нод в сети
- настройки параметров связи
- региональные стандарты
Рекомендуется использовать длинные интервалы, чтобы не создавать помехи в сети и не перекрывать "окна" передачи других устройств.
Также длинные интервалы передачи позволяют соблюдать региональные стандарты. Например, согласно RU864-870 для частоты канала 868,9 МГц Duty Cycle должен быть менее 10%. Это означает, что при интервале в 10 минут (360 sec) устройство может находится в режиме активной передачи не более 36 секунд. То есть нужно использовать соответсвующие настройки связи, чтобы не превышать это значение, либо реже выходить на связь и увеличивать интервал.

Внимание
При использовании интервала передачи менее 30-60 секунд увеличивается вероятность ошибок и потери пакетов.
В режиме штатной эксплуатации не рекомендуется устанавливать интервал менее 60 секунд.
Для тестирования (а также для отдельных случаев прямого соединения Gateway-Node с малым количеством данных в условиях отсутствия передачи от других устройств) можно сокращать интервал до значений 30-60 секунд, при условии соблюдения региональных стандартов.
Выбор интервала для нескольких Node
В одноканальном режиме работы, если несколько Node передают данные на один Gateway-контроллер - они разделяют один и тот же канал (частоту передачи) между собой. Чтобы снизить вероятность наложения по времени отправки пакетов и снизить вероятность возникновения ошибок приёма - рекомендуется выбирать на разных Node разные интервалы отправки сообщений (не кратные между собой). Например Node1 - 61 cек., Node 2 - 73 cек, Node 3 - 85 сек.
Настройка времени ожидания пакета
В Gateway эта настройка называется TimeOut. Она настраивается индивидуально для каждой ноды. По умолчанию таймаут не используется - значение 65535.
Значение таймаута не должно быть меньше интервала передачи данных в настройках Node-контроллера, иначе Gateway будет всегда детектировать ошибку приёма. Рекомендуется устанавливать таймаут с двухкратным запасом или более (2*Send interval Node).


Идентификация и шифрование в режиме ABP
Важно указать DevAddr, AppSkey и NwkSkey на Node и повторить эти жe значения в Gateway.
DevAddr (Device Address) — это 32-битный (4-байтный) уникальный сетевой адрес устройства, который используется для идентификации устройства в сети во время обмена данными. в ABP — он прописывается вручную и статически.
AppSKey (Application Session Key) и NwkSKey (Network Session Key) — это два ключа шифрования в LoRaWAN.
Для взаимодействия в режиме ABP на ноде и шлюзе должны быть указаны одинаковые DevAddr, AppSkey и NwkSkey.
Пользователь задаёт уникальный DevAddr вручную на стороне ноды, и потом дублирует его в настройках Gateway.
По умолчанию в полях AppSkey и NwkSkey находятся по 32 символа «F». Пользователь должен заменить их на свои уникальные 32-битные ключи и затем скопировать их на Gateway.
Пример настроек на Node:

Пример настроек в Gateway (для первой ноды)


Контроль счётчика пакетов (Frame Counter)

- у ноды и у шлюза собственные счётчики пакетов
- шлюз отслеживает несколько счётчиков - для каждой ноды в отдельности
- шлюз также передаёт счётчики в MQTT - cм. топики
lorscN, где N - номер ноды - контроль значений счётчиков позволяет определить моменты передачи и приёма сообщений
Контроль уровня сигнала от Node (RSSI)
- в веб интерфейсе на вкладке Lora - видны уровни сигналов от каждой ноды (рядом со счётчиком пакетов)
- в MQTT - cм. топик, заканчивающийся на
lorsr1, где 1 - номер ноды
Локальные шаблоны на шлюзе
- после нажатия кнопки “Отправить конфигурацию на шлюз”, на шлюзе появится либо обновится локальный шаблон (например, файл
loralocal1.lr) - его можно выбрать и при необходимости отредактировать через EasyFS
- при повторной отправке конфигурации с ноды - файл будет перезаписан! Если в нём были локальные правки - его лучше использовать как отдельный шаблон и сохранять под другим именем.
- подробнее про использование и редактирование шаблонов будет рассказано в других разделах