Использование контроллера Lavritech L1 в качестве LoRaWAN шлюза с контроллером Wiren Board

From Wiren Board
This is the approved revision of this page, as well as being the most recent.

Общая информация

LoRaWAN — это беспроводная технология передачи данных с дальностью действия до 15 км. Используется в домашней и коммерческой автоматизации.

На физическом уровне основана на методе модуляции LoRa (ЛоРа) и разработана специально для использования в интернете вещей (IoT).

Описание

Lavritech L1 Lite

Для использования LoRaWAN-устройств с контроллером Wiren Board понадобится контроллер в исполнении Lavritech L1 Lite Lora Wan + Ethernet, который будет выступать в качестве LoRaWAN шлюза. Для использования протокола ModBus RTU для связи шлюза и контроллера Wiren Board необходима прошивка LoRaWAN шлюз ModBus RTU slave MQTT. Выбирается на сайте производителя при заказе устройства.

В качестве оконечного устройства могут выступать разнообразные устройства: датчики температуры, охранные устройства, приборы учёта и др. Обратите внимание, устройства должны поддерживать протокол LoRaWAN, не все устройства работающие на физическом уровне LoRa поддерживают LoRaWAN.

Настройка контроллера Lavritech L1 Lite в качестве LoRaWAN шлюза

Подключение к веб-интерфейсу контроллера Lavritech L1 Lite

  1. На контроллере нажмите и удерживайте кнопку «SAFE» и затем нажмите кнопку «RESET», так контроллер перейдёт в режим точки доступа WiFi, на устройстве с WiFi модемом найдите и подключитесь к открытой WiFi сети «Lavritech_L1», веб-интерфейс будет доступен по ip адресу 192.168.4.1
  2. Так же возможно проводное ethernet подключение, Lavritech_L1 получит ip адрес от вашего DHCP-сервера и веб-интерфейс будет доступен по его ip адресу.

Инструкция производителя

Настройка котроллера Lavritech L1 Lite в режим шлюза LoRaWAN

  1. В веб-интерфейсе перейдите в Config:LoRa
  2. В первой строке выберите Lora Gateway
  3. Во второй строке выберите ABP

Инструкция производителя

Подключение оконечных устройств в LoRaWAN шлюз по ABP

ABP(Activation by Personalization) — поддержка шифрования со статическими ключами. Работа в режиме ABP — это наилучший компромисс между безопасностью передачи данных и удобством (простотой) работы. Для работы в шлюз должны быть записаны DevAddr, AppSkey, NwkSkey полученные от производителя оконечного устройства (часто указаны на наклейке или в паспорте устройства).

  1. В веб-интерфейсе Lavritech L1 Lite перейдите в Lora-Nodes option, выберите из номеров Node (каждый номер соответствует подключенному оконечному устройству)
  2. Заполните графы:
    • DevAddr — адрес устройства.
    • TimeOut — оставьте по умолчанию 65535 секунд (если за это время шлюз не получал данных от оконечного устройства — выводится сообщение об ошибке).
    • AppSkey — сессионный ключ.
    • NwkSkey — сетевой сессионный ключ.
    • Data structure — здесь опишите структуру получаемого сообщения, можно найти в документации на оконечное устройство.

Ниже представлена расшифровка основных типов бинарных данных из документации на Lavritech L1 Lite, для заполнения поля Data structure:

  • T — Температура, 2 байта int, значение умножено на 10 (1 знак после запятой).
  • H — Влажность, 2 байта uint, значение умножено на 10 (1 знак после запятой).
  • L — Long данные, 4 байта, например, счетчики импульсов.
  • С — Аналогично L.
  • А — АЦП или другие 16 битные данные, 2 байта.
  • B — Однобайтовое значение.
  • G — состояние GPIO.
  • 1..9 — количество пропускаемых байт, эти данные не будут использоваться. Также данные не используются, если названия переменных указать в нижнем регистре.

Дополнительные флаги (дописываются перед основными):

  • R — обратный порядок байтов (старший байт первый), т. е. если принимаем температуру то пишем не просто T, а RT, если старший байт передаётся первым.
  • S — значение с 2 знаками после запятой.

Пример подключения оконечного устройства к шлюзу LoRaWAN

Вега ТД-11

Подключаем оконечное устройство — датчик температуры Вега ТД-11.

DevAddr, AppSkey, NwkSkey этого устройства указаны в паспорте устройства, а также их можно считать или сгенерировать новые в ПО Vega LoRaWAN Configurator при подключении датчика к ПК.

Для заполнения графы Data structure, в инструкции на датчик, находим таблицу Пакет с текущими показаниями:

Vega td11 register map.png

Соответственно наша запись в поле Data structure будет такая : BBBLTBBBB

Показания в меню

Где:

  1. B — Тип пакета.
  2. B — Заряд батареи в %.
  3. B — Превышение лимитов ("0" - нет превышения, "1" - есть превышение).
  4. L — Время снятия показаний, передаваемых в данном пакете (unixtime UTC).
  5. T — Температура в °C, умноженная на 10.
  6. B — Нижний температурный лимит.
  7. B — Верхний температурный лимит.
  8. B — Причина передачи пакета.
  9. B — Состояние входов (битовое поле).

На главной странице шлюза мы должны получить показания с датчика.

Передача показаний от шлюза в контроллер Wiren Board по ModBus RTU

Настройка ModBus slave на контроллере Lavritech L1 Lite

Открыть Config: ModBus_slave-Config RTU

  1. Address — ModBus адрес контроллера Lavritech L1 Lite
  2. Speed RS485 — Скорость обмена на шине

Привязка данных полученных от шлюза к регистрам ModBus RTU

Config ModBus Slave (RTU)

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

  1. Регистр — по этому адресу будет доступны данные при запросе Modbus RTU командой чтения Input registrer(0x04).
  2. Далее выбор источника данных — Lora.
  3. Привязка регистров Num: A-B, где A — номер ноды, B — регистр ноды.

В соответствии с нашим примером установим:

  • 1 Registr : 0 Lora Num: 1-2 (Заряд батареи в %).
  • 2 Registr : 2 Lora Num: 1-5 (Температура в °C, умноженная на 10).

Подключение контроллера Lavritech L1 Lite к контроллеру Wiren Board по шине RS-485 ModBus RTU

Настройка канала батареи
Настройка канала температуры
Результат
  • Подключите устройство к шине RS-485 с соблюдением распиновки, указанной на Lavritech L1 Lite.
  • Считать данные со шлюза можно создав устройство через веб интерфейс или создав шаблон

Пример без шаблона

  1. Открыть веб-интерфейс контроллера Wiren Board Настройки — Конфигурационные файлы — Настройка драйвера serial — устройств(необходимы права Администратора) — Добавить устройство
  2. Порт — RS485-1 или RS485-2, в соответствии к какой шине подключен шлюз, тип устройства — Произвольные устройства - Устройство с протоколом Modbus. Нажать Добавить устройство.
  1. Адрес устройства — адрес контроллера Lavritech L1 Lite
  2. Свойства — название устройства, ввести название устройства Температура на улице
  3. Нажатием +канал создаём канал устройства:
    • Имя — Заряд батареи.
  4. Заполняем поля:
    • Тип — range.
    • Тип регистра — input.
    • Адрес (десятичное значение) — 0.
  5. Нажатием "+канал" создаём ещё один канал устройства.
  6. Заполняем поля.
    • Имя — Температура.
    • Тип — temperature.
    • Тип регистра — input.
    • Адрес (десятичное значение) — 2.
    • Множитель — 0.1
  7. Нажать — Сохранить настройки.
  8. В веб-интерфейсе Wiren Board выбрать Устройства, увидеть устройство Температура на улице с полями Заряд батареи и Температура.

Пример с созданием шаблона

Для удобства использования и редактирования можно создать шаблон по инструкции. Пример шаблона:

{
    "device_type": "lora_temperature_sensor",
    "title": "LoRa Temperature Sensor",
    "group": "g-climate-sensor",
    "device": {
        "name": "LoRa Temperature Sensor",
        "id": "lora_temperature_sensor",
        "channels": [
            {
                "name": "Battery Charge",
                "reg_type": "input",
                "address": 0,
                "type": "range",
                "format": "u16"
            },
            {
                "name": "Temperature",
                "reg_type": "input",
                "address": 2,
                "type": "value",
                "units": "deg C",
                "format": "u16",
                "scale": 0.1
            }
        ],
        "translations": {
            "ru": {
                "LoRa Temperature Sensor": "LoRa датчик температуры",
                "Battery Charge": "Заряд батареи",
                "Temperature": "Температура"
            }
        }
    }
}

Передача показаний от шлюза в контроллер Wiren Board по MQTT

Для передачи данных от шлюза к контроллеру Wiren Board можно вместо ModBus RTU использовать MQTT Для этого контроллер Lavritech L1 Lite должен иметь сетевой доступ к контроллеру Wiren Board (обычно используется при использовании обоих котроллеров в одной локальной сети)

  1. В настройках Lavritech L1 Lite перейти к настройке публикаций сообщений в брокер MQTT установленный на Wiren Board Config:Servers.
  2. Включить функцию Enable send MQTT.
  3. Ввести ip адрес, порт, логин и пароль от MQTT брокера установленного на Wiren Board (по умолчанию порт 18883, логин и пароль отсутствуют).
  4. Нажать SET, через несколько секунд в первой строчке должно быть сообщение OK, если подключение прошло успешно.
  5. Данные от шлюза теперь публикуются в MQTT брокере контроллера Wiren Board (для удобства просмотра можно использовать MQTT Explorer).
  6. Для получения данных в веб-интерфейсе Wiren Board необходимо создать виртуальное устройство и связать его каналы с топиком в MQTT брокере с помощью правила wb-rules

Пример правила с датчиком Вега ТД-11

defineVirtualDevice('lora-device', {
    title: 'Vega DT11' ,
    cells: {
      temperature: {
        title: "Temperature",
        type: "value",
        value: "0",
        units:"deg C",
        scale:0.1
        
      },
      battery:{
        title: "Battery",
        type: "range",
        value: "0",
        readonly:true
      }
    }
});

trackMqtt("/Lavritech_L1/lors0102", function(message) {
  dev["lora-device/battery"]=Number(message.value);
});
trackMqtt("/Lavritech_L1/lors0105", function(message) {
  dev["lora-device/temperature"]=Number(message.value);
});

Полезные ссылки

Поддерживаемые контроллером Wiren Board системы верхнего уровня, приложения, способы программирования, протоколы и устройства
Протоколы
Опрос датчиков и работа с устройствами (в базовой комплектации) 1-WireDLMS/COSEM Modbus RTU/TCP Master ГОСТ МЭК 61107 СПОДЭС (ГОСТ Р 58940-2020)
Опрос датчиков и работа с устройствами (с помощью модулей расширения) KNXeBUSOpenThermZ-WaveZigbee
Опрос контроллера из систем верхнего уровня и с других устройств KNX Modbus RTU/TCP SlaveMQTTOPC UASNMPZabbix МЭК 104SmartWeb (Гидролого)
Системы верхнего уровня
Системы мониторинга и SCADA GrafanaHome Assistant IntraHouse IntraSCADASprut.hubMasterSCADANagiosSimpLight SCADARapid SCADASAYMONZabbix iRidium Server
Приложения
Управление с телефона MQTT DashiRidiumHome Assistant Apple HomeДом с АлисойСалют! Умный дом
Голосовые помощники Siri Салют Алиса
Способы программирования
Языки программирования ПЛК FBD, ST, LD, SFC (МЭК 61131-3)
Визуальное программирование Node-RED
Упрощённый текстовый движок правил wb-rules
Стандартное программирование Python C++ Go Node.js
Протестированные устройства сторонних производителей
Адаптеры протоколов ECODim DALI GW2 HDL KNX-DALI Gateway M/DALI.1 Arlight DALI-LOGIC-LITE-PS-x1Lavritech L1 Lite LoRaWAN
Аудиоресиверы сетевые URRI A1
Датчики климата DS18B20 и клоныKvadro 1WIRE-RS485 RLDA NL-3DPAS-M RLDA NL-1S111Wellpro WP3066ADAMДаджет MT8057/MT8057SРД MSU21РД MSU24РД MSU34+TLPРД MSU34+THLPЭксис ИВТМ-7 М 3
Датчики уровня ЭСКОРТ ДБ-2
Универсальные датчики TESLiOT (BLE)
Диммеры DALI Philio PAD07-RU Uniel UCH-M131RC/0808 Uniel UCH-M141RC/0808 РД DDL04R РД DDL24 РД DDL84R-V РД DDM845R
Домофоны VIZIT (ВИЗИТ), Элтис, Цифрал, Техком, Метаком, Beward и другие координатного типа
Конвекторы Varmann QTherm
Кондиционеры Haier YCJ-A002 Z-Wave ИК-передатчик PAR01-RUGREE (ONOKOM-AIR-GR-1-MB-B) AUX (ONOKOM-AIR-AUX-1-MB-B) Mitsubishi Electric (ONOKOM-AIR-ME-1-MB-B) Daikin (ONOKOM-AIR-DK-1-MB-B) Hisense (ONOKOM-AIR-HS-3-MB-B) Haier (ONOKOM-AIR-HR-1-MB-B)
Рекуператоры / вентиляция Рекуператор VAKIO Base Smart ПВУ Royal Clima Soffio Primo RCS-350-PKomfoventRoyal Clima VENTO
Контроллеры вентиляции и климата Mautomatics JL204C5 (Breezart 550 Lux) GTC (General Thermo Controllers) Syberia 5.0 SystemAir VR 300Тепломаш КЭВ-БЛОК-МК Breezart Lux (SB)
Контроллеры холодильного оборудования Carel BASIC(PYEZ)/EASY(PJEZ) Danfoss EKC 204A1/AK-CC 210 Danfoss EKC 202B Danfoss EKC 202D Danfoss ERC 211/ERC 213/ERC 214 Eliwell IDPlus 974
Метеостанции Netatmo Urban Weather Station Сокол-М
Модули ввода-вывода Wellpro WP8026ADAM Wellpro WP8027ADAM Wellpro WP8028ADAM Wellpro WP9038ADAM
Модули реле РД DRB88 Rubetek TZ78 ICP DAS tM-P3R3 ICP DAS LC-103 Uniel UCH-M111RX/0808 Uniel UCH-M121RX/0808
Моторы для штор/Электрокарнизы Akko AM82 Dooya DM35EQ Dooya DT82 WinDeco Somfy SDN SunFlower KT82TV Somfy RS485 RTS transmitter Беспроводные Dooya/Somfy Dauerhaft CM5 Dauerhaft Roll 35/45 A-OK AM68 (LM100) A-OK AM35
Панели управления Cityron ПУ-3 (Modbus) Sonoff NSPanel (fw NXPanel) EKF PRO-Screen Skirell Panel
Системы защиты от протечек KAPLESTOP Ensystec Leak Protect
Считыватели карт (для СКУД) Wiegand
Счётчики воды Пульсар Пульсар-М Элехант СВД-15 Элехант СВД-20 Счётчики с импульсным выходом
Счётчики тепла Пульсар
Счётчики электроэнергии CSQ PD561Z-9SY Peacefair PZEM-016 Eastron SDM120M Eastron SDM220M Меркурий 200 Меркурий 201 Меркурий 203.2T Меркурий 204 Меркурий 206 Меркурий 208 Меркурий 230 Меркурий 231 Меркурий 234 Меркурий 236 Меркурий 238 Милур 104 Милур 105 Милур 107 Милур 305 Милур 307 Нева МТ 113 Нева МТ 123 Нева МТ 124 Нева МТ 323 Нева МТ 324 Энергомера CE301 Энергомера CE102M Энергомера CE303 Энергомера CE308
Термостаты BAC-002ALN BAC-6000ALN BAC-6000ELNW BHT-6000 Series Heatit Z-TEMP2 Hessway Siemens RDF302 Ridan Greencon-R Welrok az
Увлажнители CAREL Humisonic
Управление двигателями (преобразователи частоты) Vacon/Danfoss 10 Danfoss VLT Microdrive FC51 T13-400W-12-H/T13-750W-12-H
Прочее DIYShelly UNITasmotaESPHome
Устройства с аналоговым или цифровым выходом
Низковольтная нагрузка Реле с управляющим напряжением 12–24 В Светодиоды Низковольтные вентиляторы Низковольтные сигнальные лампы
Датчики с аналоговым выходом Датчики температуры, давления и другие, имеющие на выходе ток или напряжение
Счётчики с импульсным выходом Счётчики электроэнергии, воды, тепла и другие с импульсным выходом
Устройства с выходом «открытый коллектор» Устройства с выходом «открытый коллектор»
Устройства с питанием 220 В Лампы Контакторы и другое оборудование с питанием от 220 В