Wb-mqtt-serial driver: различия между версиями
(Подготовка страницы к переводу) |
(Отметить эту версию для перевода) |
||
Строка 1: | Строка 1: | ||
<languages/> | <languages/> | ||
<translate> | <translate> | ||
<!--T:1--> | |||
'''Внимание!''' Драйвер ''wb-mqtt-serial'' ранее назывался ''wb-homa-modbus'', конфигурационный файл <code>/etc/wb-mqtt-serial.conf</code> ранее назывался <code>/etc/wb-homa-modbus.conf</code>. Учитывайте это, если используете устаревшие прошивки. | '''Внимание!''' Драйвер ''wb-mqtt-serial'' ранее назывался ''wb-homa-modbus'', конфигурационный файл <code>/etc/wb-mqtt-serial.conf</code> ранее назывался <code>/etc/wb-homa-modbus.conf</code>. Учитывайте это, если используете устаревшие прошивки. | ||
<!--T:2--> | |||
'''Драйвер wb-mqtt-serial''' отвечает за работу с подключёнными по [[Special:MyLanguage/RS-485|RS-485]] устройствами в Wiren Board. Он обеспечивает работу с подключёнными устройствами через систему [[Special:MyLanguage/MQTT|MQTT]]-сообщений. В этой статье даётся упрощённое описание драйвера, полное смотрите [https://github.com/contactless/wb-mqtt-serial в описании драйвера на нашем Github]. | '''Драйвер wb-mqtt-serial''' отвечает за работу с подключёнными по [[Special:MyLanguage/RS-485|RS-485]] устройствами в Wiren Board. Он обеспечивает работу с подключёнными устройствами через систему [[Special:MyLanguage/MQTT|MQTT]]-сообщений. В этой статье даётся упрощённое описание драйвера, полное смотрите [https://github.com/contactless/wb-mqtt-serial в описании драйвера на нашем Github]. | ||
==Поддерживаемые устройства== | ==Поддерживаемые устройства== <!--T:3--> | ||
<!--T:4--> | |||
В настоящее время поддерживается работа с [[Special:MyLanguage/Периферийные устройства с интерфейсом RS-485 серии WB-xxxx | устройствами с интерфейсом Modbus нашего производства]], счётчиками Меркурий и Милур, а также с некоторыми другими устройствами, в том числе работающими по протоколу Modbus. Полный список протестированных устройств: [[Special:MyLanguage/Поддерживаемые устройства#Подключаемые по RS-485|Поддерживаемые устройства#Подключаемые по RS-485]]. | В настоящее время поддерживается работа с [[Special:MyLanguage/Периферийные устройства с интерфейсом RS-485 серии WB-xxxx | устройствами с интерфейсом Modbus нашего производства]], счётчиками Меркурий и Милур, а также с некоторыми другими устройствами, в том числе работающими по протоколу Modbus. Полный список протестированных устройств: [[Special:MyLanguage/Поддерживаемые устройства#Подключаемые по RS-485|Поддерживаемые устройства#Подключаемые по RS-485]]. | ||
=== Поддержка устройств различных протоколов на одной шине === | === Поддержка устройств различных протоколов на одной шине === <!--T:5--> | ||
<!--T:6--> | |||
Использовать устройства с разными протоколами на одной шине возможно, но необходимо учитывать особенности конкретных протоколов. | Использовать устройства с разными протоколами на одной шине возможно, но необходимо учитывать особенности конкретных протоколов. | ||
<!--T:7--> | |||
Например, фреймы устройств Uniel начинаются с байта 0xff, устройств ИВТМ - с байта 0x24 ('$'), в случае же протоколов Modbus, Меркурий 230 и Милур первым байтом фрейма является идентификатор slave, поэтому при совмещении подобных устройств следует внимательно подходить к выбору slave id - у устройств Милур, например, slave id по умолчанию равен 0xff, что приводит к конфликту с устройствами Uniel. Устройства Милур требуют дополнительных задержек при опросе (заданы в шаблоне) и при использовании на одной шине с другими устройствами могут снизить скорость опроса. Некоторые устройства, поддерживающие дополнительные протоколы, могут оказаться несовместимыми с теми или иными протоколами на той же шине, например, было замечено, что устройства с поддержкой протокола A-BUS производства "Разумный дом" не могут работать на одной шине с устройствами Uniel. Работа устройств ИВТМ на одной шине с устройствами, работающими по другим протоколам, не проверялась. Проверенная рабочая комбинация: Modbus + Milur (slave_id != 0xff) + Uniel на одной шине. | Например, фреймы устройств Uniel начинаются с байта 0xff, устройств ИВТМ - с байта 0x24 ('$'), в случае же протоколов Modbus, Меркурий 230 и Милур первым байтом фрейма является идентификатор slave, поэтому при совмещении подобных устройств следует внимательно подходить к выбору slave id - у устройств Милур, например, slave id по умолчанию равен 0xff, что приводит к конфликту с устройствами Uniel. Устройства Милур требуют дополнительных задержек при опросе (заданы в шаблоне) и при использовании на одной шине с другими устройствами могут снизить скорость опроса. Некоторые устройства, поддерживающие дополнительные протоколы, могут оказаться несовместимыми с теми или иными протоколами на той же шине, например, было замечено, что устройства с поддержкой протокола A-BUS производства "Разумный дом" не могут работать на одной шине с устройствами Uniel. Работа устройств ИВТМ на одной шине с устройствами, работающими по другим протоколам, не проверялась. Проверенная рабочая комбинация: Modbus + Milur (slave_id != 0xff) + Uniel на одной шине. | ||
=== Доработка драйвера для поддержки новых устройств === | === Доработка драйвера для поддержки новых устройств === <!--T:8--> | ||
<!--T:9--> | |||
В качестве отправной точки смотрите статью [[Драйвер wb-homa-modbus:Примеры написания шаблонов|Драйвер wb-homa-modbus:Примеры написания шаблонов]], для дальнейшей поддержки [mailto:info@contactless.ru свяжитесь с нами]. | В качестве отправной точки смотрите статью [[Драйвер wb-homa-modbus:Примеры написания шаблонов|Драйвер wb-homa-modbus:Примеры написания шаблонов]], для дальнейшей поддержки [mailto:info@contactless.ru свяжитесь с нами]. | ||
==Конфигурирование и запуск драйвера== | ==Конфигурирование и запуск драйвера== <!--T:10--> | ||
<!--T:11--> | |||
Конфигурация драйвера задаётся в файле <code>/etc/wb-mqtt-serial.conf</code>. Если такой файл создан, драйвер запускается при загрузке контроллера автоматически. Также драйвером можно управлять в ручном режиме из консоли: | Конфигурация драйвера задаётся в файле <code>/etc/wb-mqtt-serial.conf</code>. Если такой файл создан, драйвер запускается при загрузке контроллера автоматически. Также драйвером можно управлять в ручном режиме из консоли: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
Строка 34: | Строка 41: | ||
== Конфигурационный файл драйвера == | == Конфигурационный файл драйвера == <!--T:12--> | ||
<!--T:13--> | |||
Для работы драйвера нужно отредактировать файл <code>/etc/wb-mqtt-serial.conf</code>. Обычный пользователь может воспользоваться способом [[RS-485:Настройка через веб-интерфейс|RS-485:Настройка через веб-интерфейс]], который тоже приводит к правильному заполнению файла конфигурации. Однако отредактировать файл можно и вручную, для этого: | Для работы драйвера нужно отредактировать файл <code>/etc/wb-mqtt-serial.conf</code>. Обычный пользователь может воспользоваться способом [[RS-485:Настройка через веб-интерфейс|RS-485:Настройка через веб-интерфейс]], который тоже приводит к правильному заполнению файла конфигурации. Однако отредактировать файл можно и вручную, для этого: | ||
#Ознакомьтесь с инструкцией [[Special:MyLanguage/Просмотр файлов контроллера с компьютера|Просмотр файлов контроллера с компьютера]] | #Ознакомьтесь с инструкцией [[Special:MyLanguage/Просмотр файлов контроллера с компьютера|Просмотр файлов контроллера с компьютера]] | ||
Строка 52: | Строка 60: | ||
===Пример конфигурации для [[Special:MyLanguage/WB-MRM2 Реле 2х канальное | модуля реле WB-MRM2]], подключённого к изолированному порту (RS-485-ISO) Wiren Board 4=== | ===Пример конфигурации для [[Special:MyLanguage/WB-MRM2 Реле 2х канальное | модуля реле WB-MRM2]], подключённого к изолированному порту (RS-485-ISO) Wiren Board 4=== <!--T:14--> | ||
<!--T:15--> | |||
<syntaxhighlight lang="javascript">{ | <syntaxhighlight lang="javascript">{ | ||
"ports": [ | "ports": [ | ||
Строка 74: | Строка 83: | ||
Узнать файл, соответствующий порту для вашего контроллера - [[Special:MyLanguage/RS-485#Реализация портов в разных версиях Wiren Board |RS-485#Реализация портов в разных версиях Wiren Board ]]. | Узнать файл, соответствующий порту для вашего контроллера - [[Special:MyLanguage/RS-485#Реализация портов в разных версиях Wiren Board |RS-485#Реализация портов в разных версиях Wiren Board ]]. | ||
<!--T:16--> | |||
Полный список поддерживаемых типов устройств см. в статье [[Special:MyLanguage/Поддерживаемые устройства|Поддерживаемые устройства]], а также [https://github.com/contactless/wb-homa-drivers/blob/master/wb-homa-modbus/README.md#%D0%A2%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D0%B0-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%BE%D0%B2-device_type здесь]. | Полный список поддерживаемых типов устройств см. в статье [[Special:MyLanguage/Поддерживаемые устройства|Поддерживаемые устройства]], а также [https://github.com/contactless/wb-homa-drivers/blob/master/wb-homa-modbus/README.md#%D0%A2%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D0%B0-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%BE%D0%B2-device_type здесь]. | ||
=== Пример конфигурационного файла для нескольких подключённых устройств === | === Пример конфигурационного файла для нескольких подключённых устройств === <!--T:17--> | ||
<!--T:18--> | |||
<syntaxhighlight lang="javascript"> | <syntaxhighlight lang="javascript"> | ||
<!--T:19--> | |||
// Configuration options | // Configuration options | ||
{ | { |
Версия 13:00, 29 мая 2019
Внимание! Драйвер wb-mqtt-serial ранее назывался wb-homa-modbus, конфигурационный файл /etc/wb-mqtt-serial.conf
ранее назывался /etc/wb-homa-modbus.conf
. Учитывайте это, если используете устаревшие прошивки.
Драйвер wb-mqtt-serial отвечает за работу с подключёнными по RS-485 устройствами в Wiren Board. Он обеспечивает работу с подключёнными устройствами через систему MQTT-сообщений. В этой статье даётся упрощённое описание драйвера, полное смотрите в описании драйвера на нашем Github.
Поддерживаемые устройства
В настоящее время поддерживается работа с устройствами с интерфейсом Modbus нашего производства, счётчиками Меркурий и Милур, а также с некоторыми другими устройствами, в том числе работающими по протоколу Modbus. Полный список протестированных устройств: Поддерживаемые устройства#Подключаемые по RS-485.
Поддержка устройств различных протоколов на одной шине
Использовать устройства с разными протоколами на одной шине возможно, но необходимо учитывать особенности конкретных протоколов.
Например, фреймы устройств Uniel начинаются с байта 0xff, устройств ИВТМ - с байта 0x24 ('$'), в случае же протоколов Modbus, Меркурий 230 и Милур первым байтом фрейма является идентификатор slave, поэтому при совмещении подобных устройств следует внимательно подходить к выбору slave id - у устройств Милур, например, slave id по умолчанию равен 0xff, что приводит к конфликту с устройствами Uniel. Устройства Милур требуют дополнительных задержек при опросе (заданы в шаблоне) и при использовании на одной шине с другими устройствами могут снизить скорость опроса. Некоторые устройства, поддерживающие дополнительные протоколы, могут оказаться несовместимыми с теми или иными протоколами на той же шине, например, было замечено, что устройства с поддержкой протокола A-BUS производства "Разумный дом" не могут работать на одной шине с устройствами Uniel. Работа устройств ИВТМ на одной шине с устройствами, работающими по другим протоколам, не проверялась. Проверенная рабочая комбинация: Modbus + Milur (slave_id != 0xff) + Uniel на одной шине.
Доработка драйвера для поддержки новых устройств
В качестве отправной точки смотрите статью Драйвер wb-homa-modbus:Примеры написания шаблонов, для дальнейшей поддержки свяжитесь с нами.
Конфигурирование и запуск драйвера
Конфигурация драйвера задаётся в файле /etc/wb-mqtt-serial.conf
. Если такой файл создан, драйвер запускается при загрузке контроллера автоматически. Также драйвером можно управлять в ручном режиме из консоли:
service wb-mqtt-serial stop #остановить драйвер
service wb-mqtt-serial start #запустить драйвер
service wb-mqtt-serial restart #перезапустить драйвер
wb-mqtt-serial -c /etc/wb-mqtt-serial.conf -d #запустить драйвер в принудительном отладочном режиме с указанием пути к конфигурационному файлу
Конфигурационный файл драйвера
Для работы драйвера нужно отредактировать файл /etc/wb-mqtt-serial.conf
. Обычный пользователь может воспользоваться способом RS-485:Настройка через веб-интерфейс, который тоже приводит к правильному заполнению файла конфигурации. Однако отредактировать файл можно и вручную, для этого:
- Ознакомьтесь с инструкцией Просмотр файлов контроллера с компьютера
- Файл
/etc/wb-mqtt-serial.conf
имеет структуру порты (ports) -> устройства (devices): в файле есть описания физических портов контроллера, а внутри них - список устройств, которые подключены к этому порту.- Для каждого порта указываются настройки (скорость, чётность и т.п.), а также протокол (Modbus, RTU, etc.)
- Для каждого устройства обязательно указывается его уникальный адрес на шине - slave_id. Также можно указать другие необязательные параметры - смотрите полное описание формата в описании драйвера на нашем Github.
- Впишите конфигурацию для портов и подключённых устройств в файл, используя примеры ниже.
- Перезагрузите устройство ИЛИ выполните из консоли команду
service wb-mqtt-serial restart
- Она перезапустит драйвер, и подключённое устройство появится в веб-интерфейсе.
- Если устройство не появилось, выполните команду или откройте файл
tail /var/log/messages
/var/log/messages
и промотайте его до конца. Если там будет строчка такого типа:May 6 17:50:58 wirenboard user.notice modbus: FATAL: Error parsing config file: Failed to parse JSON: * Line 15, Column 17
- - ищите ошибку в 15-й строке конфигурационного файла.
Пример конфигурации для модуля реле WB-MRM2, подключённого к изолированному порту (RS-485-ISO) Wiren Board 4
{
"ports": [
{
"path" : "/dev/ttyNSC0", //псевдофайл, соответствующий порту
"baud_rate": 9600, //скорость порта, 9600 почти для всех устройств, но проверьте документацию к ним
"parity": "N", //четность
"data_bits": 8, //битов данных в посылке
"stop_bits": 2, //количество стоп-битов. Чётность, количество битов и стоп-битов тоже редко меняются
"poll_interval": 10, //интервал опроса устройств на порту в миллисекундах
"devices" : [
{
"device_type" : "WB-MRM2", //тип устройства, распознаваемый драйвером
"slave_id": 25 //адрес устройства
}
]
}
]
}
Узнать файл, соответствующий порту для вашего контроллера - RS-485#Реализация портов в разных версиях Wiren Board .
Полный список поддерживаемых типов устройств см. в статье Поддерживаемые устройства, а также здесь.
Пример конфигурационного файла для нескольких подключённых устройств
// Configuration options
{
"debug": false,
"ports": [
{
"path" : "/dev/ttyNSC1",
"baud_rate": 9600,
"parity": "N",
"data_bits": 8,
"stop_bits": 2,
"poll_interval": 0,
"enabled": true,
"devices" : [
{
"name": "DRB88",
"id": "drb88",
"enabled": true,
"slave_id": "0x23",
"device_type" : "DRB88"
},
{
"slave_id": "0x26",
"device_type" : "MSU24"
},
{
"slave_id": "0x31",
"device_type" : "MSU34"
},
{
"slave_id": "0x04",
"device_type" : "LC-103"
},
{
"device_type" : "DDL24",
"slave_id" : "0x20"
},
{
"enabled": true,
"slave_id": "0x06",
"device_type" : "WB-MRM2"
},
{
"slave_id" : 16,
"device_type" : "WB-MRGB"
}
]
},
{
"path" : "/dev/ttyNSC0",
"type": "uniel",
"poll_interval": 10,
"enabled": true,
"devices" : [
{
"device_type" : "UCH-M141RC",
"slave_id": 1
}
]
}
]
}