Wb-mqtt-serial driver: различия между версиями
Ivan4th (обсуждение | вклад) |
Ivan4th (обсуждение | вклад) |
||
Строка 42: | Строка 42: | ||
команду: | команду: | ||
<pre> | <pre> | ||
set-rd.address.sh /dev/ttyNSC0 | set-rd.address.sh /dev/ttyNSC0 0x02 | ||
</pre> | </pre> | ||
Вместо | Вместо 0x02 можно задать любой другой адрес | ||
в диапазоне от 0 до 247 (0xf7). | в диапазоне от 0 до 247 (0xf7). | ||
Строка 133: | Строка 133: | ||
</pre> | </pre> | ||
==== | ====Исполнительный модуль релейный восьмиканальный DRB88==== | ||
Сайт производителя - http://www.razumdom.ru/ | Сайт производителя - http://www.razumdom.ru/ | ||
Строка 216: | Строка 216: | ||
"address" : 18, | "address" : 18, | ||
"type": "text" | "type": "text" | ||
} | |||
] | |||
} | |||
</pre> | |||
====Исполнительный модуль релейный восьмиканальный DRB88==== | |||
Сайт производителя - http://www.razumdom.ru/ | |||
Документация: | |||
http://www.razumdom.ru/userfiles/file/Modbus/DRB88S16_v14.pdf | |||
Исполнительные модули DRB88 предназначены для создания | |||
систем автоматизации зданий. При работе по протоколу Modbus | |||
поддерживается работа с реле через coils и с входами | |||
через input registers. | |||
Для установки адреса slave можно использовать скрипт | |||
set-rd-address.sh. При этом необходимо убедиться, что к | |||
порту RS-485 было подлкючено только то устройство, | |||
у которого необходимо сменить адрес, затем выполнить | |||
команду: | |||
<pre> | |||
set-rd.address.sh /dev/ttyNSC0 0x16 | |||
</pre> | |||
Вместо 0x16 можно задать любой другой адрес | |||
в диапазоне от 0 до 247 (0xf7). | |||
Настройка типов input'ов осуществляется через | |||
holding-регистры (см. описание). Для задания конфигурации | |||
можно использовать команду <code>modbus_client</code>, | |||
или сделать setup-секцию в конфигурации драйвера. | |||
Пример конфигурации: | |||
<pre> | |||
{ | |||
"name": "DRB88", | |||
"id": "drb88", | |||
"enabled": true, | |||
"slave_id": 22, | |||
"setup": [ | |||
{ | |||
"title": "Input 0 type", | |||
"address": 1, | |||
"value": 1 | |||
}, | |||
{ | |||
"title": "Input 0 module", | |||
"address": 3, | |||
"value": 3 | |||
} | |||
], | |||
"channels": [ | |||
{ | |||
"name" : "Relay 1", | |||
"reg_type" : "coil", | |||
"address" : 0, | |||
"type": "switch" | |||
}, | |||
{ | |||
"name" : "Relay 2", | |||
"reg_type" : "coil", | |||
"address" : 1, | |||
"type": "switch" | |||
}, | |||
{ | |||
"name" : "Relay 3", | |||
"reg_type" : "coil", | |||
"address" : 2, | |||
"type": "switch" | |||
}, | |||
{ | |||
"name" : "Relay 4", | |||
"reg_type" : "coil", | |||
"address" : 3, | |||
"type": "switch" | |||
}, | |||
{ | |||
"name" : "Relay 5", | |||
"reg_type" : "coil", | |||
"address" : 4, | |||
"type": "switch" | |||
}, | |||
{ | |||
"name" : "Relay 6", | |||
"reg_type" : "coil", | |||
"address" : 5, | |||
"type": "switch" | |||
}, | |||
{ | |||
"name" : "Relay 7", | |||
"reg_type" : "coil", | |||
"address" : 6, | |||
"type": "switch" | |||
}, | |||
{ | |||
"name" : "Relay 8", | |||
"reg_type" : "coil", | |||
"address" : 7, | |||
"type": "switch" | |||
}, | |||
{ | |||
"name" : "Input 1", | |||
"reg_type" : "input", | |||
"address" : 0, | |||
"type": "switch", | |||
"on_value": 101 | |||
}, | |||
{ | |||
"name" : "Input 2", | |||
"reg_type" : "input", | |||
"address" : 1, | |||
"type": "switch", | |||
"on_value": 101 | |||
}, | |||
{ | |||
"name" : "Input 3", | |||
"reg_type" : "input", | |||
"address" : 2, | |||
"type": "switch", | |||
"on_value": 101 | |||
}, | |||
{ | |||
"name" : "Input 4", | |||
"reg_type" : "input", | |||
"address" : 3, | |||
"type": "switch", | |||
"on_value": 101 | |||
}, | |||
{ | |||
"name" : "Input 5", | |||
"reg_type" : "input", | |||
"address" : 4, | |||
"type": "switch", | |||
"on_value": 101 | |||
}, | |||
{ | |||
"name" : "Input 6", | |||
"reg_type" : "input", | |||
"address" : 5, | |||
"type": "switch", | |||
"on_value": 101 | |||
}, | |||
{ | |||
"name" : "Input 7", | |||
"reg_type" : "input", | |||
"address" : 6, | |||
"type": "switch", | |||
"on_value": 101 | |||
}, | |||
{ | |||
"name" : "Input 8", | |||
"reg_type" : "input", | |||
"address" : 7, | |||
"type": "switch", | |||
"on_value": 101 | |||
} | } | ||
] | ] | ||
} | } | ||
</pre> | </pre> |
Версия 03:36, 15 августа 2014
В настоящее время поддерживается работа с устройствами Modbus RTU, подключаемыми через RS-485.
Конфигурация драйвера задаётся в файле /etc/wb-homa-modbus.conf
Останов драйвера: - service wb-homa-modbus stop
Запуск драйвера: service wb-homa-modbus start
Запуск драйвера в принудительном отладочном режиме:
wb-homa-modbus -c /etc/wb-homa-modbus.conf -d
MSU34+TLP, MSU24 и MSU21 и подобные устройства
Сайт производителя - http://www.razumdom.ru/
Документация:
http://www.razumdom.ru/userfiles/file/Modbus/MSU21.pdf
http://www.razumdom.ru/userfiles/file/Modbus/MSU24.pdf
http://www.razumdom.ru/userfiles/file/Modbus/MSU34.pdf
Устройства выдают значения с датчиков через input-регистры. Для значений температуры используются 8-битные знаковые значения без расширения знака на старшие 8 бит input-регистра, вследствие чего для значений температуры в конфигурационном файле необходимо указывать "format": "s8".
Подключаемые к устройству датчики конфигурируются
через holding-регистры (см. описание). Для конфигурации
датчиков можно использовать команду modbus_client
,
или сделать setup-секцию в конфигурации драйвера.
Для установки адреса slave можно использовать скрипт set-rd-address.sh. При этом необходимо убедиться, что к порту RS-485 было подлкючено только то устройство, у которого необходимо сменить адрес, затем выполнить команду:
set-rd.address.sh /dev/ttyNSC0 0x02
Вместо 0x02 можно задать любой другой адрес в диапазоне от 0 до 247 (0xf7).
Пример конфигурации:
{ "debug": false, "ports": [ { "path" : "/dev/ttyNSC0", "baud_rate": 9600, "parity": "N", "data_bits": 8, "stop_bits": 2, "poll_interval": 10, "enabled": true, "devices" : [ { "name": "MSU34+TLP", "id": "msu34tlp", "slave_id": 2, "enabled": false, "channels": [ { "name" : "Temp 1", "reg_type" : "input", "address" : 0, "type": "temperature", "format": "s8" }, { "name" : "Illuminance", "reg_type" : "input", "address" : 1, "type": "text" }, { "name" : "Pressure", "reg_type" : "input", "address" : 2, "type": "text", "scale": 0.075 }, { "name" : "Temp 2", "reg_type" : "input", "address" : 3, "type": "temperature", "format": "s8" } ] } ] } ] }
Пример конфигурации MSU21 с секцией инициализации ("setup"):
{ "name": "MSU21", "id": "msu21", "slave_id": 24, "enabled": true, "setup": [ { "title": "Input 0 type", "address": 1, "value": 2 }, { "title": "Input 0 module", "address": 3, "value": 6 } ], "channels": [ { "name" : "Temperature", "reg_type" : "input", "address" : 0, "type": "temperature", "format": "s8" } ] }
Исполнительный модуль релейный восьмиканальный DRB88
Сайт производителя - http://www.razumdom.ru/
Документация:
http://www.razumdom.ru/userfiles/file/Modbus/DDL24.pdf
Устройство предназначено для управления светодиодными лентами RGBW сигналами ШИМ или для управления приводами сигналами 0-10 В.
Управление осуществляется записью значений в holding-регистры.
Как и в случае с устройствами MSU*, адрес modbus slave устанавливается командой set-rd-address.sh.
set-rd-address.sh /dev/ttyNSC0 0x17 0x00
Здесь происходит установка slave-адреса в 0x17. Дополнительное значение 0x00 нужно, т.к. DDL24 использует для конфигурации адреса holding-регистр 0x00, а не 0x80, используемый скриптом set-rd-address.sh по умолчанию.
Пример конфигурации:
{ "name": "DDL24", "id": "ddl24", "enabled": true, "slave_id": 23, "channels": [ { "name" : "Red", "reg_type" : "holding", "address" : 4, "type": "range", "max": 255 }, { "name" : "Green", "reg_type" : "holding", "address" : 5, "type": "range", "max": 255 }, { "name" : "Blue", "reg_type" : "holding", "address" : 6, "type": "range", "max": 255 }, { "name" : "White", "reg_type" : "holding", "address" : 7, "type": "range", "max": 255 }, { "name" : "RGB", "reg_type" : "holding", "address" : 8, "type": "range", "max": 100 }, { "name" : "White1", "reg_type" : "holding", "address" : 9, "type": "range", "max": 100 }, { "name" : "Voltage", "reg_type" : "holding", "address" : 18, "type": "text" } ] }
Исполнительный модуль релейный восьмиканальный DRB88
Сайт производителя - http://www.razumdom.ru/
Документация:
http://www.razumdom.ru/userfiles/file/Modbus/DRB88S16_v14.pdf
Исполнительные модули DRB88 предназначены для создания систем автоматизации зданий. При работе по протоколу Modbus поддерживается работа с реле через coils и с входами через input registers.
Для установки адреса slave можно использовать скрипт set-rd-address.sh. При этом необходимо убедиться, что к порту RS-485 было подлкючено только то устройство, у которого необходимо сменить адрес, затем выполнить команду:
set-rd.address.sh /dev/ttyNSC0 0x16
Вместо 0x16 можно задать любой другой адрес в диапазоне от 0 до 247 (0xf7).
Настройка типов input'ов осуществляется через
holding-регистры (см. описание). Для задания конфигурации
можно использовать команду modbus_client
,
или сделать setup-секцию в конфигурации драйвера.
Пример конфигурации:
{ "name": "DRB88", "id": "drb88", "enabled": true, "slave_id": 22, "setup": [ { "title": "Input 0 type", "address": 1, "value": 1 }, { "title": "Input 0 module", "address": 3, "value": 3 } ], "channels": [ { "name" : "Relay 1", "reg_type" : "coil", "address" : 0, "type": "switch" }, { "name" : "Relay 2", "reg_type" : "coil", "address" : 1, "type": "switch" }, { "name" : "Relay 3", "reg_type" : "coil", "address" : 2, "type": "switch" }, { "name" : "Relay 4", "reg_type" : "coil", "address" : 3, "type": "switch" }, { "name" : "Relay 5", "reg_type" : "coil", "address" : 4, "type": "switch" }, { "name" : "Relay 6", "reg_type" : "coil", "address" : 5, "type": "switch" }, { "name" : "Relay 7", "reg_type" : "coil", "address" : 6, "type": "switch" }, { "name" : "Relay 8", "reg_type" : "coil", "address" : 7, "type": "switch" }, { "name" : "Input 1", "reg_type" : "input", "address" : 0, "type": "switch", "on_value": 101 }, { "name" : "Input 2", "reg_type" : "input", "address" : 1, "type": "switch", "on_value": 101 }, { "name" : "Input 3", "reg_type" : "input", "address" : 2, "type": "switch", "on_value": 101 }, { "name" : "Input 4", "reg_type" : "input", "address" : 3, "type": "switch", "on_value": 101 }, { "name" : "Input 5", "reg_type" : "input", "address" : 4, "type": "switch", "on_value": 101 }, { "name" : "Input 6", "reg_type" : "input", "address" : 5, "type": "switch", "on_value": 101 }, { "name" : "Input 7", "reg_type" : "input", "address" : 6, "type": "switch", "on_value": 101 }, { "name" : "Input 8", "reg_type" : "input", "address" : 7, "type": "switch", "on_value": 101 } ] }