Перейти к содержанию

Навигация

Wb-mqtt-serial driver: различия между версиями

(не показано 11 промежуточных версий 3 участников)
Строка 1: Строка 1:
{{DISPLAYTITLE: Драйвер wb-mqtt-serial}}
{{DISPLAYTITLE: Драйвер wb-mqtt-serial}}
== Описание ==
[[Image: wb-mqtt-serial a few protocols.png |500px|thumb|right| Драйвер wb-mqtt-serial может одновременно опрашивать устройства, работающие по разным протоколам: <br> ​1 — виртуальный порт для устройств с протоколом Modbus TCP,<br> 2  — устройство работает по протоколу Modbus RTU,<br> 3 — устройство работает по протоколу DLMS]]
[[Image: wb-mqtt-serial a few protocols.png |500px|thumb|right| Драйвер wb-mqtt-serial может одновременно опрашивать устройства, работающие по разным протоколам: <br> ​1 — виртуальный порт для устройств с протоколом Modbus TCP,<br> 2  — устройство работает по протоколу Modbus RTU,<br> 3 — устройство работает по протоколу DLMS]]
== Описание ==
=== Общая информация ===
=== Общая информация ===
''wb-mqtt-serial'' — драйвер master-slave протоколов для устройств, подключённых:
''wb-mqtt-serial'' — драйвер master-slave протоколов для устройств, подключённых:
* к шине RS-485 — протокол Modbus RTU и других;
* к шине RS-485 — протокол Modbus RTU и других;
* через Ethernet — протоколы Modbus TCP, Modbus over TCP и другие;
* через Ethernet — протоколы Modbus TCP, Modbus over TCP и другие;
* к разъёмам MOD1–MOD3 — при наличии модулей расширение, использующих обмен по UART.
* к разъёмам MOD1–MOD3 — при наличии модулей расширения, использующих обмен по UART.


Драйвер опрашивает serial-устройства и публикует данные в топики [[MQTT|MQTT]]-брокера. Устройства настраиваются через [[RS-485:Configuration via Web Interface | веб-интерфейс]].
Драйвер опрашивает serial-устройства и публикует данные в топики [[MQTT|MQTT]]-брокера. Устройства настраиваются через [[RS-485:Configuration via Web Interface | веб-интерфейс]].
Строка 17: Строка 17:
* <code>/etc/wb-mqtt-serial.conf</code> — файл настроек драйвера, редактировать вручную не рекомендуем;
* <code>/etc/wb-mqtt-serial.conf</code> — файл настроек драйвера, редактировать вручную не рекомендуем;
* <code>/usr/share/wb-mqtt-serial/templates</code> — папка с предустановленными шаблонами;
* <code>/usr/share/wb-mqtt-serial/templates</code> — папка с предустановленными шаблонами;
* <code>/etc/wb-mqtt-serial.conf.d/templates</code> — папка для пользовательских шаблонов, которые имеют приоритет на предустановленными.
* <code>/etc/wb-mqtt-serial.conf.d/templates</code> — папка для пользовательских шаблонов, которые имеют приоритет над предустановленными.
 
Если вы добавили свой шаблон или изменили существующий, подождите 20 секунд, а потом перезагрузите страницу конфигуратора в веб-интерфейсе клавишами <kbd>Ctrl</kbd>+<kbd>F5</kbd> или перезапустите сервис: <syntaxhighlight lang="bash>systemctl restart wb-mqtt-confed</syntaxhighlight>


О том, как получить доступ к файлам и папкам, читайте в статье [[View controller files from your computer|Просмотр файлов контроллера с компьютера]].
О том, как получить доступ к файлам и папкам, читайте в статье [[View controller files from your computer|Просмотр файлов контроллера с компьютера]].
Строка 28: Строка 30:
Поэтому при написании шаблона для сторонних Modbus-устройств, нужно указать параметр ''guard_interval_us'', который рассчитывается по формуле:
Поэтому при написании шаблона для сторонних Modbus-устройств, нужно указать параметр ''guard_interval_us'', который рассчитывается по формуле:
<syntaxhighlight lang="js">
<syntaxhighlight lang="js">
guard_interval_us = (3.5*11*106)/(скорость в бит/с)
guard_interval_us = (3.5*11*10^6)/(скорость в бит/с)
</syntaxhighlight>
</syntaxhighlight>
Так же этот параметр можно установить через веб-интерфейс:
Так же этот параметр можно установить через веб-интерфейс:
Строка 48: Строка 50:
systemctl restart wb-mqtt-serial # перезапустить
systemctl restart wb-mqtt-serial # перезапустить
wb-mqtt-serial -c /etc/wb-mqtt-serial.conf -d # запустить в отладочном режиме с указанием пути к конфигурационному файлу
wb-mqtt-serial -c /etc/wb-mqtt-serial.conf -d # запустить в отладочном режиме с указанием пути к конфигурационному файлу
wb-mqtt-serial -j # проверить файл конфигурации по умолчанию на ошибки
wb-mqtt-serial -c /etc/wb-mqtt-serial.conf -j # проверить указанный файл конфигурации на ошибки, может быть удобно при поиске причины ошибки
</syntaxhighlight>
</syntaxhighlight>


Строка 67: Строка 67:
Jan 28 15:10:51 wirenboard-A6XXXT2R wb-mqtt-serial[23682]: ERROR: [serial] Failed to parse JSON /etc/wb-mqtt-serial.conf:* Line 2, Column 14
Jan 28 15:10:51 wirenboard-A6XXXT2R wb-mqtt-serial[23682]: ERROR: [serial] Failed to parse JSON /etc/wb-mqtt-serial.conf:* Line 2, Column 14
Jan 28 15:10:51 wirenboard-A6XXXT2R wb-mqtt-serial[23682]:  Syntax error: value, object or array expected.
Jan 28 15:10:51 wirenboard-A6XXXT2R wb-mqtt-serial[23682]:  Syntax error: value, object or array expected.
</syntaxhighlight>
Проверить только шаблоны, в том числе и не подключённые в файле конфигурации, можно командой:
<syntaxhighlight lang="console">
# wb-mqtt-serial -g
<3>ERROR: [serial config] Failed to parse /usr/share/wb-mqtt-serial/templates/config-bac-6000-series.json
Failed to parse JSON /usr/share/wb-mqtt-serial/templates/config-bac-6000-series.json:* Line 12, Column 5
  Missing ',' or '}' in object declaration
</syntaxhighlight>
Проверить файл конфигурации и шаблоны на ошибки:
<syntaxhighlight lang="console">
# wb-mqtt-serial -j
<3>ERROR: [serial config] Failed to parse /usr/share/wb-mqtt-serial/templates/config-wb-mdm3.json
Failed to parse JSON /usr/share/wb-mqtt-serial/templates/config-wb-mdm3.json:* Line 8, Column 9
  Missing ',' or '}' in object declaration
<3>ERROR: [serial] Can't find template for 'WB-MDM3'
</syntaxhighlight>
При необходимости, можно добавить путь к файлу, который нужно проверить:
<syntaxhighlight lang="bash">
wb-mqtt-serial -c /etc/wb-mqtt-serial.conf -j
</syntaxhighlight>
</syntaxhighlight>


Строка 98: Строка 121:
Jan 29 14:27:24 wirenboard-A6ZZXT2R wb-mqtt-serial[1667]: DEBUG: [serial port driver] register value change: input @ 3 of device modbus:22 <- 39.01
Jan 29 14:27:24 wirenboard-A6ZZXT2R wb-mqtt-serial[1667]: DEBUG: [serial port driver] register value change: input @ 3 of device modbus:22 <- 39.01
</syntaxhighlight>
</syntaxhighlight>
== Полезные ссылки ==
* [[WB FAQ/thirdparty-modbus-devices-conection | Как подключить стороннее Modbus-устройство]]
* [https://github.com/contactless/wb-mqtt-serial Описание wb-mqtt-serial на Github]
* [[Modbus|Описание протокола Modbus]]
* [[RS-485|Описание шины RS-485]]