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

Нет описания правки
Строка 1: Строка 1:
'''Внимание!''' В этой статье даётся упрощённое и, возможно, устаревшее описание драйвера, работающего с устройствами Modbus и передающего сообщения в MQTT. Полное актуальное описание смотрите на https://github.com/contactless/wb-homa-drivers/#wb-homa-modbus
'''Внимание!''' В этой статье даётся упрощённое и, возможно, устаревшее описание драйвера, работающего с устройствами Modbus и Uniel и передающего сообщения в MQTT. Полное актуальное описание смотрите на https://github.com/contactless/wb-homa-drivers/#wb-homa-modbus


== Краткое описание драйвера ==
== Краткое описание драйвера ==
В настоящее время поддерживается работа с устройствами Modbus RTU, подключаемыми через RS-485.
В настоящее время поддерживается работа с устройствами Modbus RTU, а также Uniel, подключаемыми через RS-485.


Конфигурация драйвера задаётся в файле /etc/wb-homa-modbus.conf
Конфигурация драйвера задаётся в файле /etc/wb-homa-modbus.conf


Останов драйвера: - <code>service wb-homa-modbus stop</code>
Остановить драйвер: - <code>service wb-homa-modbus stop</code>


Запуск драйвера: <code>service wb-homa-modbus start</code>
Запуск драйвера: <code>service wb-homa-modbus start</code>
Строка 13: Строка 13:


<code>wb-homa-modbus -c /etc/wb-homa-modbus.conf -d</code>
<code>wb-homa-modbus -c /etc/wb-homa-modbus.conf -d</code>
=== Кофигурационный файл и подключение устройств ===
Для работы нужно создать файл <code> /etc/wb-homa-modbus.conf </code>.
В файле есть описания физических портов контроллера, с которыми работает драйвер.
Для каждого порта указываются настройки (скорость, чётность и т.п.), а также протокол.
Для каждого порта определён также список устройств, которые подключены к этому порту.
Для каждого устройства обязательно указывается его уникальный идентификатор на шине (подробнее про это можно прочитать в статье [[RS-485]]) - slave_id.
Кроме этого, для устройства можно задать его id в системе [[MQTT]], название устройства, а также описание каналов и регистров. Полное описание формата см. в [[ https://github.com/contactless/wb-homa-drivers/#wb-homa-modbus подробной документации].
Для многих устройств уже существуют шаблоны, которые позволяют подключать эти устройства простым способом. Минимальное описание одного устройства, таким образом, имеет вид:
<syntaxhighlight lang="javascript">
{
  "slave_id": "0x06",
  "device_type" : "WB-MRM2"
}
</syntaxhighlight>
Здесь <code>slave_id</code> - идентификатор устройства на шине, а <code> device_type </code> - тип устройства.
Поддерживаемые типы устройств: [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 список в документации].
Пример конфигурационного файла <code> /etc/wb-homa-modbus.conf </code> :
<syntaxhighlight lang="javascript">
// 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
}
    ]
}
    ]
}
</syntaxhighlight>
== Подключение устройств ==


====MSU34+TLP, MSU24 и MSU21 и подобные устройства====
====MSU34+TLP, MSU24 и MSU21 и подобные устройства====