Работа с LORAWAN
Настройка сервера LORAWan
Сервер LORA использует ПО на базе Chirpstack https://www.chirpstack.io/. Для связи с устройствами используется любая базовая станция.
Количество БС может быть более одной для увеличения зоны покрытия сети.
Настройки сервера:
После установки сервера в него нужно добавить устройства:
- Добавляется Базовая станция по ее ID.
- Далее создается Device profile Настройки профиля определяются параметрами устройства.
- Добавление Lora устройств:
- Добавлюяем новое приложение с нужным именем. Далее добавляем устройство внутри прижожения. Для добавления устройства требуется его даные для авторизации: Device EUI (EUI64) и Application key
Совет
- Важно создавать отельные группы девайсов для каждого класса устройств.
- У каждого устройства может быть свой класс lora, это также нужно учитывать
- Изначально при установке сервера и выборе RU региона в списке частот только 2 частоты. Этого недостаточно для нормальной работы устройств. Нужно подменить файл
Для передачи данных в ЛК необходимо настроить интеграцию по https. Данная настройка находится в Applications. Вкладка Integrations
Внести в поля данные:
- Payload encoding : JSON
- Event endpoint URL :
https://<host core restserices>:<port>/sem-restservices/lora/chirpstack
- Header: вносится ключ
- ApiToken
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
- ApiToken
Ключ должен совпадать с значением ключа, которое ввели в платформе в настройках взаимодействия с Chirpstack сервером в поле API Токен(см. ниже).
Настройка платформы
Действия по подключению lora устройства в платформе:
- Сформировать модель устройства в Библиотеке устройств с типом
CHIRPSTACK
(если такое устройство отстутсвует). Модель устройств описана в тут. - Сформирвоать Типовую конфигурацию (ТК)
- Назначить ТК на любой контроллер объекта, на котором стоит Lora устройство.
- Зайти в список устройств на Объекте, и для нужного устройства в поле серийный номер внести его
DEVUI
. - Убедится, что данные начали приходить на это устройство.
Примечание
Важно правильно заполнить поля Производитель и Продукт. Например:
- Производитель: Вега
- Продукт: SmartAS-0101:1
Эти поля используются для resapi сервиса, который позволяет проверить разбор пакета lorain модулем.
Если необходимо со стороны платформы отсылать пакеты на LORAWan устройства, то требуется выполнить следующие настройки:
- root пользователем в настройке Сервер->Серве Chirpstack зарегистрировать IP адрес lora сервера и внести API Token.
- В Библиотеке устройств для Lora устройств ввести все
Внешние команды
(lora-пакеты), которые требуется отправлять на устройство. - В атрибут
Внешнешняя команда
внести номер пакета, в поле Дата значение lora-пакета в hex-формате. - Далее на Объекте выберите нужное устройство и выполните вызов Внешней команды вручную, либо оформите периодическое ее выполнение.
Совет
Вызов команды по расписанию нужен, чтобы получать требуемый набор параметров от устройства, который требуется запрашивать.
Проверка пакетов Lora
Предоставляет http интерфейс
http://host:port/lorain/api/lora/decode_series/{deviceId}
- Выполняет разбор сообщения от устройства из сети LoRa на карту параметров ключ - значение.
где deviceId идентификатор устройства (код для определения способа разбора), напримерВега:SmartUM-0101:3
. Этот идентификатор состоит из полей Производитель и Продукт.
Возвращает данные от устройста из сети LoRa: JSON массив объектов, в каждом объекте есть поля
- name - имя параметра (не может быть NULL)
- value - значение параметра. Если NULL - значит зафиксирована ошибка при опросе канала параметра.
FAQ
Не данных по устройству
Порядок поиска причин:
- Найти пакет на сервере Lora - если его там нет, значит проблема с БС или датчиком.
- Убедится в настройке интеграции на Lora сервере
- Найти в логах модуля restservices данные о приходе пакета. Если записей в логе нет, значит он не приходил на платформу. Лог подскажет если в пакете есть ошибки.
- Проверить , что DEVUI устройства внесен в SN устройства
- Проверить лог модуля lorain на предмет ошибки разбора пакета, или выполнить пункт выше по проверке пакета.
Не отправляется внешняя команда
- проверить лог модуля restservices на наличие ошибки по отправке команды.
- Проверить совпадение API Token.
- Проверить формат команды
- Проверить внутренне время на устройстве. Если оно отстает - пакет не запишется