Wb-mqtt-serial templates: различия между версиями
(Перенаправление на Wb-mqtt-serial driver) Метка: новое перенаправление |
Kilpio (обсуждение | вклад) |
||
(не показано 127 промежуточных версий 7 участников) | |||
Строка 1: | Строка 1: | ||
'''Внимание!''' Драйвер ''wb-mqtt-serial'' ранее назывался ''wb-homa-modbus'', конфигурационный файл <code>/etc/wb-mqtt-serial.conf</code> ранее назывался <code>/etc/wb-homa-modbus.conf</code>. Учитывайте это, если используете устаревшие прошивки. | |||
'''Внимание, статья устарела''', актуальную информацию можно найти по ссылке в описании [https://github.com/contactless/wb-mqtt-serial/ wb-mqtt-serial], в файлах самих шаблонов и в файле [https://github.com/contactless/wb-mqtt-serial/blob/master/wb-mqtt-serial.schema.json wb-mqtt-serial.schema.json] | |||
---- | |||
=== Общая структура шаблона устройства === | |||
Файл шаблона устройств представляет собой структуру [https://ru.wikipedia.org/wiki/JSON JSON], описывающую параметры устройства. Шаблон допускает наличие комментариев. | |||
JSON-структура записывается внутри пространства между открывающей и закрывающей фигурной скобкой: <code>{ ... }</code>. | |||
Общая структура шаблона устройства выглядит следующим образом: | |||
<pre> | |||
//Шаблон устройства | |||
{ | |||
"device": { | |||
Параметры устройства, | |||
"channels": [ {Параметры канала 1}, {Параметры канала 2}, ...] | |||
} | |||
}</pre> | |||
Здесь device — устройство, подключаемое к контроллеру, канал — источник данных: обычно Modbus-регистр с описанием типа данных, частоты опроса, преобразования значений и проч. | |||
Подробное описание смотрите в следующих разделах. Файлы шаблонов хранятся на контроллере в директории <pre>/usr/share/wb-mqtt-serial/templates<pre>. В эту директорию следует копировать новые шаблоны, созданные вами для нового устройства. | |||
=== Параметры устройства (device) === | |||
[[File:Device_properties_mqtt_serial.png|650px|thumb|right|Параметры устройства описываются в wb-mqtt-serial.schema.json]] | |||
В начале шаблона задаются параметры устройства в виде набора пар ''ключ:значение''. | |||
Обязательными параметрами являются ключи "device_type" и "device". | |||
Ключ '''device_type''' задает уникальное название типа устройства в виде строки, например: | |||
<code> "device_type": "WB-MAP12H", </code>. | |||
Значение ключа '''device''' — составная структура, описывающее конкретные параметры устройства: | |||
<pre>"device": { | |||
"name": "WB-MAP12H", | |||
"id": "wb-map12h", | |||
"channels": [...] | |||
...}</pre> | |||
* '''name''' — отображаемое имя устройства. Публикуется как <code> .../meta/name в mqtt</code>. Имя устройства используется при отображении web-интерфейсе, хранится в топике <code>"id" + " " + "slave_id"</code>. Пример для устройства с modbus-адресом 5 (slave_id) и значением "name": "WB-MAP12H (basic)" <code>/devices/wb-map12h_5/meta/name WB-MAP12H (basic)</code>. | |||
* '''id''' — уникальный идентификатор устройства в MQTT. Каждый элемент в devices должен иметь уникальный id. mqtt-topic'и, относящиеся в MQTT к данному устройству, имеют общий префикс /devices/<идентификатор топика>/... Также по умолчанию берется из шаблона с добавлением slave_id: <code>"id" + "_" + slave_id</code> | |||
<!--* '''slave_id''' — Modbus-адрес устройства. Задается в виде <code>"slave_id" : slaveID,</code>. Необязательный параметр для шаблона, slave_id задается при конкурировании устройства и уже с этим параметром включается в конфигурационный файл <cоde>/etc/wb-mqtt-serial.conf</cоde>.--> | |||
* '''channels''' — список каналов устройств, задается в виде массива <code>[...]</code>, каждый из элементов которого представляет описание отдельного канала. | |||
Остальные параметры устройства либо добавляются в раздел при включении шаблона в общую конфигурацию wb-mqtt-serial, либо используются значения по умолчанию. Полный список можно найти в файле [https://github.com/contactless/wb-mqtt-serial/blob/master/wb-mqtt-serial.schema.json wb-mqtt-serial.schema.json] (его копия также хранится на контроллере: <code>/usr/share/wb-mqtt-confed/schemas/wb-mqtt-serial.schema.json</code>). Смотрите свойства объекта <code>"device" -> "properties"</code>. | |||
=== Каналы устройства === | |||
[[File:Channel_properties_mqtt_serial.png|450px|thumb|right|Параметры канала описываются в wb-mqtt-serial.schema.json]] | |||
Описание канала представляет собой структуру | |||
<pre> | |||
"channels": [ | |||
{ | |||
"name": "Имя канала 1", | |||
... | |||
}, | |||
{ | |||
"name": "Имя канала 2", | |||
... | |||
}, | |||
... | |||
] | |||
</pre> | |||
Структура содержит следующий набор полей. | |||
[[File:Vartype_properties_mqtt_serial.png|450px|thumb|right|формат представления данных в Modbus-регистрах, описывается в wb-mqtt-serial.schema.json]] | |||
* '''name''' — имя канала, уникальное для устройство имя канала | |||
* '''reg_type''' — тип Modbus-регистра, одно из "coil", "discrete", "holding", "holding_single", "holding_multi", "input", "direct" | |||
* '''address''' — адрес Modbus-регистра, связанного с каналом. | |||
* '''type''' — тип контрола -- виртуального элемента для представления данных в Web-интерфейсе контроллера: "switch", "pushbutton", "range", "rgb" и другие; полностью перечислены в схеме wb-mqtt-serial.schema.json. | |||
* '''readonly''' — "true", если значения можно только считывать. | |||
* '''format''' — тип переменной, описывающей значение, см. рис. | |||
В простейшем случае достаточно полей "name", "reg_type", "address" и "type". Описания остальных типов параметров полностью перечислены в схеме wb-mqtt-serial.schema.json. | |||
=== Примеры шаблонов устройств === | |||
Ниже приведены примеры конфигурационных файлов для некоторых устройств Wiren Board, охватывающие весь основной список используемых параметров при создании шаблонов. | |||
==== WB-MS-THLS v.2 ==== | |||
Устройство [WB-MS_Modbus_Sensor|WB-MS-THLS] — универсальный комбинированный Modbus-датчик температуры, влажности, освещённости и звукового давления. | |||
====MSU34+TLP, MSU24 и MSU21 и подобные устройства==== | |||
Сайт производителя - http://www.razumdom.ru/ | |||
Документация: | |||
[http://www.razumdom.ru/userfiles/file/Modbus/MSU21.pdf MSU21] [http://www.razumdom.ru/userfiles/file/Modbus/MSU24.pdf MSU24] [http://www.razumdom.ru/userfiles/file/Modbus/MSU34.pdf MSU34] | |||
Устройства выдают значения с датчиков через | |||
input-регистры. Для значений температуры используются | |||
8-битные знаковые значения без расширения знака | |||
на старшие 8 бит input-регистра, вследствие | |||
чего для значений температуры в конфигурационном | |||
файле необходимо указывать "format": "s8". | |||
Подключаемые к устройству датчики конфигурируются | |||
через holding-регистры (см. описание). Для конфигурации | |||
датчиков можно использовать команду <code>modbus_client</code>, | |||
или сделать setup-секцию в конфигурации драйвера. | |||
Для установки адреса slave можно использовать скрипт | |||
set-rd-address.sh. При этом необходимо убедиться, что к | |||
порту RS-485 было подлкючено только то устройство, | |||
у которого необходимо сменить адрес, затем выполнить | |||
команду: | |||
<pre> | |||
set-rd.address.sh /dev/ttyNSC0 0x02 | |||
</pre> | |||
Вместо 0x02 можно задать любой другой адрес | |||
в диапазоне от 0 до 247 (0xf7). | |||
Пример конфигурации: | |||
<div class="mw-collapsible mw-collapsed" style="width:500px; overflow: hidden;" > | |||
<pre> | |||
{ | |||
"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" | |||
} | |||
] | |||
} | |||
] | |||
} | |||
] | |||
} | |||
</pre> | |||
</div> | |||
Пример конфигурации MSU21 с секцией инициализации ("setup"): | |||
<div class="mw-collapsible mw-collapsed" style="width:500px; overflow: hidden;" > | |||
<pre> | |||
{ | |||
"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" | |||
} | |||
] | |||
} | |||
</pre> | |||
</div> | |||
====Четырёхканальный (RGBW) диммер светодиодов DDL24==== | |||
Сайт производителя - [http://www.razumdom.ru/ www.razumdom.ru] | |||
Документация: | |||
[http://www.razumdom.ru/userfiles/file/Modbus/DDL24.pdf DDL24] | |||
Устройство предназначено для управления светодиодными | |||
лентами RGBW сигналами ШИМ или для управления приводами | |||
сигналами 0-10 В. | |||
Управление осуществляется записью значений в | |||
holding-регистры. | |||
Как и в случае с устройствами MSU*, адрес | |||
modbus slave устанавливается командой | |||
set-rd-address.sh. | |||
<pre> | |||
set-rd-address.sh /dev/ttyNSC0 0x17 0x00 | |||
</pre> | |||
Здесь происходит установка slave-адреса | |||
в 0x17. Дополнительное значение | |||
0x00 нужно, т.к. DDL24 использует для | |||
конфигурации адреса holding-регистр 0x00, | |||
а не 0x80, используемый скриптом set-rd-address.sh | |||
по умолчанию. | |||
Пример конфигурации: | |||
<div class="mw-collapsible mw-collapsed" style="width:500px; overflow: hidden;" > | |||
<pre> | |||
{ | |||
"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" | |||
} | |||
] | |||
} | |||
</pre> | |||
</div> | |||
====Исполнительный модуль релейный восьмиканальный DRB88==== | |||
Сайт производителя - [http://www.razumdom.ru/ www.razumdom.ru] | |||
Документация: | |||
[http://www.razumdom.ru/userfiles/file/Modbus/DRB88S16_v14.pdf DRB88] | |||
Исполнительные модули 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-секцию в конфигурации драйвера. | |||
Пример конфигурации: | |||
<div class="mw-collapsible mw-collapsed" style="width:500px; overflow: hidden;" > | |||
<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> | |||
</div> | |||
====Модуль ввода-вывода ICP DAS tM-P3R3==== | |||
Описание: | |||
[http://www.icpdas.com/root/product/solutions/remote_io/rs-485/tm-series/tm-p3r3.html tM-P3R3] | |||
и | |||
[http://www.icpdas.com/root/product/solutions/datasheet/tm-series/tM-Series_DIO_User_Manual.pdf User_Manual] | |||
Модуль имеет 3 канала дискретного ввода, доступных через discrete inputs, | |||
и 3 канала релейного вывода, доступного через coils. | |||
Пример конфигурации: | |||
<div class="mw-collapsible mw-collapsed" style="width:500px; overflow: hidden;" > | |||
<pre> | |||
{ | |||
"name": "tM-P3R3", | |||
"id": "tmp3r3", | |||
"enabled": true, | |||
"slave_id": 1, | |||
"channels": [ | |||
{ | |||
"name" : "Relay 0", | |||
"reg_type" : "coil", | |||
"address" : 0, | |||
"type": "switch" | |||
}, | |||
{ | |||
"name" : "Relay 1", | |||
"reg_type" : "coil", | |||
"address" : 1, | |||
"type": "switch" | |||
}, | |||
{ | |||
"name" : "Relay 2", | |||
"reg_type" : "coil", | |||
"address" : 2, | |||
"type": "switch" | |||
}, | |||
{ | |||
"name" : "Input 0", | |||
"reg_type" : "discrete", | |||
"address" : 32 | |||
}, | |||
{ | |||
"name" : "Input 1", | |||
"reg_type" : "discrete", | |||
"address" : 33 | |||
}, | |||
{ | |||
"name" : "Input 2", | |||
"reg_type" : "discrete", | |||
"address" : 34 | |||
} | |||
] | |||
} | |||
</pre> | |||
</div> | |||
====Модуль управления освещением ICP DAS LC-103==== | |||
Описание: | |||
[http://www.icpdas.com/root/product/solutions/remote_io/rs-485/lighting_control/lc-103.html LC-103] | |||
и | |||
[http://www.icpdas-europe.com/uploads/tx_v4icpdascatalog/K128992/web/icpdas/manual-lc-103.pdf User manual] | |||
Модуль имеет 3 релейных вывода и один дискретный вход, допускающий | |||
подключение к сети переменного тока. | |||
Адрес Modbus slave задаётся при помощи физического переключателя. | |||
Пример конфигурации: | |||
<div class="mw-collapsible mw-collapsed" style="width:500px; overflow: hidden;" > | |||
<pre> | |||
{ | |||
"name": "LC-103", | |||
"id": "lc103", | |||
"enabled": true, | |||
"slave_id": 4, | |||
"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" : "Switch AC In", | |||
"reg_type" : "discrete", | |||
"address" : 0 | |||
} | |||
] | |||
} | |||
</pre> | |||
</div> |
Версия 14:57, 9 октября 2018
Внимание! Драйвер wb-mqtt-serial ранее назывался wb-homa-modbus, конфигурационный файл /etc/wb-mqtt-serial.conf
ранее назывался /etc/wb-homa-modbus.conf
. Учитывайте это, если используете устаревшие прошивки.
Внимание, статья устарела, актуальную информацию можно найти по ссылке в описании wb-mqtt-serial, в файлах самих шаблонов и в файле wb-mqtt-serial.schema.json
Общая структура шаблона устройства
Файл шаблона устройств представляет собой структуру JSON, описывающую параметры устройства. Шаблон допускает наличие комментариев.
JSON-структура записывается внутри пространства между открывающей и закрывающей фигурной скобкой: { ... }
.
Общая структура шаблона устройства выглядит следующим образом:
//Шаблон устройства { "device": { Параметры устройства, "channels": [ {Параметры канала 1}, {Параметры канала 2}, ...] } }
Здесь device — устройство, подключаемое к контроллеру, канал — источник данных: обычно Modbus-регистр с описанием типа данных, частоты опроса, преобразования значений и проч.
Подробное описание смотрите в следующих разделах. Файлы шаблонов хранятся на контроллере в директории
/usr/share/wb-mqtt-serial/templates<pre>. В эту директорию следует копировать новые шаблоны, созданные вами для нового устройства. === Параметры устройства (device) === [[File:Device_properties_mqtt_serial.png|650px|thumb|right|Параметры устройства описываются в wb-mqtt-serial.schema.json]] В начале шаблона задаются параметры устройства в виде набора пар ''ключ:значение''. Обязательными параметрами являются ключи "device_type" и "device". Ключ '''device_type''' задает уникальное название типа устройства в виде строки, например: <code> "device_type": "WB-MAP12H", </code>. Значение ключа '''device''' — составная структура, описывающее конкретные параметры устройства: <pre>"device": { "name": "WB-MAP12H", "id": "wb-map12h", "channels": [...] ...}
- name — отображаемое имя устройства. Публикуется как
.../meta/name в mqtt
. Имя устройства используется при отображении web-интерфейсе, хранится в топике"id" + " " + "slave_id"
. Пример для устройства с modbus-адресом 5 (slave_id) и значением "name": "WB-MAP12H (basic)"/devices/wb-map12h_5/meta/name WB-MAP12H (basic)
.
- id — уникальный идентификатор устройства в MQTT. Каждый элемент в devices должен иметь уникальный id. mqtt-topic'и, относящиеся в MQTT к данному устройству, имеют общий префикс /devices/<идентификатор топика>/... Также по умолчанию берется из шаблона с добавлением slave_id:
"id" + "_" + slave_id
- channels — список каналов устройств, задается в виде массива
[...]
, каждый из элементов которого представляет описание отдельного канала.
Остальные параметры устройства либо добавляются в раздел при включении шаблона в общую конфигурацию wb-mqtt-serial, либо используются значения по умолчанию. Полный список можно найти в файле wb-mqtt-serial.schema.json (его копия также хранится на контроллере: /usr/share/wb-mqtt-confed/schemas/wb-mqtt-serial.schema.json
). Смотрите свойства объекта "device" -> "properties"
.
Каналы устройства
Описание канала представляет собой структуру
"channels": [ { "name": "Имя канала 1", ... }, { "name": "Имя канала 2", ... }, ... ]
Структура содержит следующий набор полей.
- name — имя канала, уникальное для устройство имя канала
- reg_type — тип Modbus-регистра, одно из "coil", "discrete", "holding", "holding_single", "holding_multi", "input", "direct"
- address — адрес Modbus-регистра, связанного с каналом.
- type — тип контрола -- виртуального элемента для представления данных в Web-интерфейсе контроллера: "switch", "pushbutton", "range", "rgb" и другие; полностью перечислены в схеме wb-mqtt-serial.schema.json.
- readonly — "true", если значения можно только считывать.
- format — тип переменной, описывающей значение, см. рис.
В простейшем случае достаточно полей "name", "reg_type", "address" и "type". Описания остальных типов параметров полностью перечислены в схеме wb-mqtt-serial.schema.json.
Примеры шаблонов устройств
Ниже приведены примеры конфигурационных файлов для некоторых устройств Wiren Board, охватывающие весь основной список используемых параметров при создании шаблонов.
WB-MS-THLS v.2
Устройство [WB-MS_Modbus_Sensor|WB-MS-THLS] — универсальный комбинированный Modbus-датчик температуры, влажности, освещённости и звукового давления.
MSU34+TLP, MSU24 и MSU21 и подобные устройства
Сайт производителя - http://www.razumdom.ru/
Документация:
Устройства выдают значения с датчиков через 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).
Пример конфигурации:
Пример конфигурации MSU21 с секцией инициализации ("setup"):
Четырёхканальный (RGBW) диммер светодиодов DDL24
Сайт производителя - www.razumdom.ru
Документация: DDL24
Устройство предназначено для управления светодиодными лентами 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 по умолчанию.
Пример конфигурации:
Исполнительный модуль релейный восьмиканальный DRB88
Сайт производителя - www.razumdom.ru
Документация: DRB88
Исполнительные модули 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-секцию в конфигурации драйвера.
Пример конфигурации:
Модуль ввода-вывода ICP DAS tM-P3R3
Описание: tM-P3R3 и User_Manual
Модуль имеет 3 канала дискретного ввода, доступных через discrete inputs, и 3 канала релейного вывода, доступного через coils.
Пример конфигурации:
Модуль управления освещением ICP DAS LC-103
Описание: LC-103 и User manual
Модуль имеет 3 релейных вывода и один дискретный вход, допускающий подключение к сети переменного тока.
Адрес Modbus slave задаётся при помощи физического переключателя.
Пример конфигурации: