Wb-mqtt-serial driver: различия между версиями
Admin (обсуждение | вклад) |
Admin (обсуждение | вклад) |
||
Строка 19: | Строка 19: | ||
#:Для каждого устройства обязательно указывается его уникальный адрес на шине - ''slave_id'' (подробнее про это можно прочитать в статье [[RS-485]]). Также можно указать другие необязательные параметры - смотрите полное описание формата в [https://github.com/contactless/wb-homa-drivers/#wb-homa-modbus подробной документации]. | #:Для каждого устройства обязательно указывается его уникальный адрес на шине - ''slave_id'' (подробнее про это можно прочитать в статье [[RS-485]]). Также можно указать другие необязательные параметры - смотрите полное описание формата в [https://github.com/contactless/wb-homa-drivers/#wb-homa-modbus подробной документации]. | ||
#Впишите конфигурацию для портов и подключённых устройств в файл, используя примеры ниже. | #Впишите конфигурацию для портов и подключённых устройств в файл, используя примеры ниже. | ||
#Перезагрузите устройство | #Перезагрузите устройство ИЛИ выполните из консоли команду | ||
#: <syntaxhighlight lang="bash"> | #: <syntaxhighlight lang="bash"> | ||
service wb-homa-modbus restart | service wb-homa-modbus restart |
Версия 17:12, 7 мая 2015
Внимание! В этой статье даётся упрощённое и, возможно, устаревшее описание драйвера, работающего с устройствами Modbus и Uniel и передающего сообщения в MQTT. Полное актуальное описание смотрите на https://github.com/contactless/wb-homa-drivers/#wb-homa-modbus
Краткое описание драйвера
В настоящее время поддерживается работа с устройствами протоколов Modbus RTU и Uniel, подключаемыми через RS-485.
Конфигурация драйвера задаётся в файле /etc/wb-homa-modbus.conf
. Если такой файл создан, драйвер запускается при загрузке контроллера автоматически. Также драйвером можно управлять в ручном режиме из консоли:
service wb-homa-modbus stop #остановить драйвер
service wb-homa-modbus start #запустить драйвер
service wb-homa-modbus restart #перезапустить драйвер
wb-homa-modbus -c /etc/wb-homa-modbus.conf -d #запустить драйвер в принудительном отладочном режиме
Конфигурационный файл
Для работы драйвера нужно создать и отредактировать файл /etc/wb-homa-modbus.conf
. Для этого:
- Воспользуйтесь инструкцией Просмотр файлов контроллера с компьютера
- Файл имеет
/etc/wb-homa-modbus.conf
структуру порты (ports) -> устройства (devices): в файле есть описания физических портов контроллера, а внутри них - список устройств, которые подключены к этому порту.- Для каждого порта указываются настройки (скорость, чётность и т.п.), а также протокол (Modbus, RTU, etc.)
- Для каждого устройства обязательно указывается его уникальный адрес на шине - slave_id (подробнее про это можно прочитать в статье RS-485). Также можно указать другие необязательные параметры - смотрите полное описание формата в подробной документации.
- Впишите конфигурацию для портов и подключённых устройств в файл, используя примеры ниже.
- Перезагрузите устройство ИЛИ выполните из консоли команду
service wb-homa-modbus restart
- Она перезапустит драйвер, и подключённое устройство появится в веб-интерфейсе. Если устройство не появилось, выполните команду Если там будет строчка такого типа:
tail /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 .
Полный список поддерживаемых типов устройств - https://github.com/contactless/wb-homa-drivers/blob/master/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
Пример конфигурационного файла для нескольких подключённых устройств
// 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
}
]
}
]
}
Доработка драйвера для поддержки новых устройств
В качестве отправной точки смотрите статью Драйвер wb-homa-modbus:Примеры написания шаблонов, для дальнейшей поддержки свяжитесь с нами.