|
Метка: новое перенаправление |
(не показано 113 промежуточных версий 7 участников) |
Строка 1: |
Строка 1: |
| '''Внимание!''' Драйвер ''wb-mqtt-serial'' ранее назывался ''wb-homa-modbus'', конфигурационный файл <code>/etc/wb-mqtt-serial.conf</code> ранее назывался <code>/etc/wb-homa-modbus.conf</code>. Учитывайте это, если используете устаревшие прошивки.
| | #REDIRECT [[Wb-mqtt-serial driver]] |
| | |
| | |
| '''Внимание, статья устарела''', актуальную информацию можно найти по ссылке в описании [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-датчик температуры, влажности, освещённости и звукового давления. Устройство предоставляет доступ к данным через input-регистры Modbus. Первоначальные настройки устройства записаны в holding-регистры, но не используются для получения данных и управления устройством, поэтому в шаблон не входят.
| |
| По ссылке "Expand" можно увидеть полный код шаблона.
| |
| | |
| <div class="mw-collapsible mw-collapsed" style="width:500px; overflow: hidden;" >
| |
| <pre>
| |
| {
| |
| "device_type": "WB-MS-THLS v.2",
| |
| "device": {
| |
| "name": "WB-MS / WB-MSW",
| |
| "id": "wb-ms-thls-v2",
| |
| "max_read_registers": 0,
| |
| "channels": [
| |
| {
| |
| "name": "Temperature",
| |
| "reg_type": "input",
| |
| "address": 0,
| |
| "type": "temperature",
| |
| "format": "s16",
| |
| "scale": 0.1,
| |
| "error_value": "0x7FFF"
| |
| },
| |
| {
| |
| "name": "Humidity",
| |
| "reg_type": "input",
| |
| "address": 1,
| |
| "type": "rel_humidity",
| |
| "scale": 0.1,
| |
| "error_value": "0xFFFF"
| |
| },
| |
| {
| |
| "name": "Illuminance",
| |
| "reg_type": "input",
| |
| "address": 2,
| |
| "type": "lux"
| |
| },
| |
| {
| |
| "name": "Sound Level",
| |
| "reg_type": "input",
| |
| "address": 3,
| |
| "scale": 0.01,
| |
| "type": "sound_level"
| |
| },
| |
| {
| |
| "name": "Input Voltage",
| |
| "reg_type": "input",
| |
| "address": 121,
| |
| "scale": 0.001,
| |
| "type": "voltage"
| |
| },
| |
| {
| |
| "name": "External Sensor 1",
| |
| "type": "temperature",
| |
| "reg_type": "input",
| |
| "address": "6",
| |
| "format": "s16",
| |
| "scale": 0.0625,
| |
| "error_value": "0x7FFF"
| |
| },
| |
| {
| |
| "name": "External Sensor 2",
| |
| "type": "temperature",
| |
| "reg_type": "input",
| |
| "address": "7",
| |
| "format": "s16",
| |
| "scale": 0.0625,
| |
| "error_value": "0x7FFF"
| |
| }
| |
| ]
| |
| }
| |
| }
| |
| </pre>
| |
| </div>
| |
| | |
| В настройках устройства интересен параметр <pre> "max_read_registers": 0,</pre> Этот параметр описывает максимальное количество регистров, считываемых с устройства при запросе. Значение по умолчанию — 1, в нашем случае мы указываем считывать все регистры за один проход (bulk read).
| |
| В настройках канала "Temperature" имеются три параметра, на которые стоит обратить внимание:
| |
| <pre>
| |
| "format": "s16",
| |
| "scale": 0.1,
| |
| "error_value": "0x7FFF"
| |
| </pre>
| |
| Параметр '''"format": "s16"''' указывает на то, что число в регистрах представленов в виде знакового шестнадцатибитнного целого, '''"scale": 0.1''' — говорит о том, что полученное из регистров значение следует домножить на коэффициент масштабирования 0,1 для получения значения температуры, а параметр '''"error_value": "0x7FFF"''' задает значение, получаемое из регистра, указывающее на то, что при опросе датчика произошла ошибка. Такой параметр будет выделен красным цветом в Web-интерфейсе контроллера. Применять такой параметр следует, если вы знаете, какое значение выдает ваше устройство в случае ошибки.
| |
| | |
| | |
| ----
| |
| | |
| ==== WB-MRGBW-D ====
| |
| Устройство [[WB-MRGBW-D|WB-MRGBW-D]] — четырехканальный диммер для управления светодиодными лентами. Может управлять лентой RGB+W либо независимо четырьмя одноцветными лентами.
| |
| Настройки яркости хранятся в holding-регистрах; шаблон описывает, какие регистры можно менять для получения нужной яркости каналов, отслеживать нажатия на кнопки диммера и получать значения количества нажатий.По ссылке "Expand" можно увидеть полный код шаблона.
| |
| | |
| <div class="mw-collapsible mw-collapsed" style="width:500px; overflow: hidden;" >
| |
| <pre>
| |
| {
| |
| "device_type": "WB-MRGBW-D",
| |
| "device": {
| |
| "name": "WB-MRGBW-D",
| |
| "id": "wb-mrgbw-d",
| |
| "max_read_registers": 0,
| |
| "channels": [
| |
| {
| |
| "name": "RGB",
| |
| "type": "rgb",
| |
| "consists_of": [
| |
| {
| |
| "reg_type": "holding",
| |
| "address": 1
| |
| },
| |
| {
| |
| "reg_type": "holding",
| |
| "address": 0
| |
| },
| |
| {
| |
| "reg_type": "holding",
| |
| "address": 2
| |
| }
| |
| ]
| |
| },
| |
| {
| |
| "name": "White",
| |
| "reg_type": "holding",
| |
| "address": 3,
| |
| "type": "range",
| |
| "max": 255
| |
| },
| |
| {
| |
| "name": "Button 1",
| |
| "reg_type": "holding",
| |
| "readonly": true,
| |
| "address": 6,
| |
| "type": "switch"
| |
| },
| |
| {
| |
| "name": "Button 2",
| |
| "reg_type": "holding",
| |
| "readonly": true,
| |
| "address": 7,
| |
| "type": "switch"
| |
| },
| |
| {
| |
| "name": "Button 3",
| |
| "reg_type": "holding",
| |
| "readonly": true,
| |
| "address": 8,
| |
| "type": "switch"
| |
| },
| |
| {
| |
| "name": "Button 1 counter",
| |
| "reg_type": "holding",
| |
| "readonly": true,
| |
| "address": 32,
| |
| "type": "value"
| |
| },
| |
| {
| |
| "name": "Button 2 counter",
| |
| "reg_type": "holding",
| |
| "readonly": true,
| |
| "address": 33,
| |
| "type": "value"
| |
| },
| |
| {
| |
| "name": "Button 3 counter",
| |
| "reg_type": "holding",
| |
| "readonly": true,
| |
| "address": 34,
| |
| "type": "value"
| |
| },
| |
| {
| |
| "name": "Serial NO",
| |
| "type": "text",
| |
| "reg_type": "holding",
| |
| "address": 270,
| |
| "format": "u32"
| |
| }
| |
| ]
| |
| }
| |
| }
| |
| </pre>
| |
| </div>
| |
| В этом шаблоне составной канал RGB задает одновременно яркости трех цветовых компонентов ленты, хранящихся в трех holding-регистрах и описывается следующим образом:
| |
| <pre>
| |
| {
| |
| "name": "RGB",
| |
| "type": "rgb",
| |
| "consists_of": [
| |
| {
| |
| "reg_type": "holding",
| |
| "address": 1
| |
| },
| |
| {
| |
| "reg_type": "holding",
| |
| "address": 0
| |
| },
| |
| {
| |
| "reg_type": "holding",
| |
| "address": 2
| |
| }
| |
| ]
| |
| },
| |
| </pre>
| |
| | |
| Канал белого цвета управляется отдельно,
| |
| <pre>
| |
| {
| |
| "name": "White",
| |
| "reg_type": "holding",
| |
| "address": 3,
| |
| "type": "range",
| |
| "max": 255
| |
| },
| |
| </pre>
| |
| Здесь указано максимальное значение, которое можно установить для ползунка яркости белого — 255:<pre>"max": 255</pre>
| |
| | |
| Серийный номер устройства (канал "Serial NO") считывается как беззнаковое 32-битное целое: <pre>"format": "u32"</pre>
| |
| | |
| ----
| |
| | |
| ==== WBIO-DO-R10A-8 ====
| |
| Устройство [[WBIO-DO-R10A-8_Relay_Module|WBIO-DO-R10A-8]] — релейный боковой модуль, который подключается непосредственно к WBIO-разъему контроллера, и не управляется по Modbus. Но при подключении его через устройство расширения WB-MIO или WB-MIO-E становится полноценным Modbus-устройством, для которого имеется соответствующий шаблон.
| |
| По ссылке "Expand" можно увидеть полный код шаблона.
| |
| | |
| <div class="mw-collapsible mw-collapsed" style="width:500px; overflow: hidden;" >
| |
| <pre>
| |
| {
| |
| "device_type": "WBIO-DO-R10A-8",
| |
| "device": {
| |
| "name": "WBIO-DO-R10A-8",
| |
| "id": "wb-mio-gpio",
| |
| "protocol": "modbus_io",
| |
| "stride": 1000,
| |
| "shift": 500,
| |
| "max_read_registers": 0,
| |
| "setup": [
| |
| {
| |
| "title": "IODIR",
| |
| "address": 10000,
| |
| "value": "0x0000"
| |
| },
| |
| {
| |
| "title": "IPOL",
| |
| "address": 10001,
| |
| "value": "0x0000"
| |
| },
| |
| {
| |
| "title": "GPINTEN",
| |
| "address": 10002,
| |
| "value": "0xffff"
| |
| },
| |
| {
| |
| "title": "DEFVAL",
| |
| "address": 10003,
| |
| "value": "0x0000"
| |
| },
| |
| {
| |
| "title": "INTCON",
| |
| "address": 10004,
| |
| "value": "0x0000"
| |
| },
| |
| {
| |
| "title": "IOCON",
| |
| "address": 10005,
| |
| "value": "0x4444"
| |
| },
| |
| {
| |
| "title": "FLAG",
| |
| "address": 9999,
| |
| "value": 1
| |
| }
| |
| ],
| |
| "channels": [
| |
| {
| |
| "name": "K1",
| |
| "reg_type": "coil",
| |
| "address": 0,
| |
| "type": "switch"
| |
| },
| |
| {
| |
| "name": "K2",
| |
| "reg_type": "coil",
| |
| "address": 1,
| |
| "type": "switch"
| |
| },
| |
| {
| |
| "name": "K3",
| |
| "reg_type": "coil",
| |
| "address": 2,
| |
| "type": "switch"
| |
| },
| |
| {
| |
| "name": "K4",
| |
| "reg_type": "coil",
| |
| "address": 3,
| |
| "type": "switch"
| |
| },
| |
| {
| |
| "name": "K5",
| |
| "reg_type": "coil",
| |
| "address": 4,
| |
| "type": "switch"
| |
| },
| |
| {
| |
| "name": "K6",
| |
| "reg_type": "coil",
| |
| "address": 5,
| |
| "type": "switch"
| |
| },
| |
| {
| |
| "name": "K7",
| |
| "reg_type": "coil",
| |
| "address": 6,
| |
| "type": "switch"
| |
| },
| |
| {
| |
| "name": "K8",
| |
| "reg_type": "coil",
| |
| "address": 7,
| |
| "type": "switch"
| |
| }
| |
| ]
| |
| }
| |
| }
| |
| </pre>
| |
| </div>
| |
| | |
| | |
| В этом шаблоне следует обратить внимание на следующие параметры устройства.
| |
| <pre>
| |
| "protocol": "modbus_io",
| |
| "stride": 1000,
| |
| "shift": 500,
| |
| "max_read_registers": 0,
| |
| "setup": [
| |
| </pre>
| |
| | |
| Параметр '''"protocol": "modbus_io"''' указывает, что устройство подключается оп специальному протоколу к модулю расширения. Параметры '''"stride": 1000''' и '''"shift": 500''' задают сдвиг регистров в зависимости от того, в каком порядке подключены модули к модулю расширения.
| |
| | |
| Сдвиг регистров (число, которое нужно добавить к базовому номеру регистра) вычисляется по формуле: <pre>Shift = (((SlaveId.Secondary - 1) % 4) + 1) * DeviceConfig()->Stride + DeviceConfig()->Shift;</pre>
| |
| Каждое подключенное устройство имеет порядковый номер (SlaveId.Secondary), начинающийся с 1 для первого устройства. (Здесь знаком "%" обозначается деление по модулю.)
| |
| | |
| Например, подставляя значения shift и stride в формулу, получаем: <pre>Shift = ((( 1 - 1) % 4) + 1) * 500 + 1000 = (0 + 1) * 500 + 1000 = 1500</pre> То есть ко всем регистрам, указанным в шаблоне, надо добавить 1500.
| |
| | |
| Еще один важный параметр — setup-секция, массив
| |
| <pre>
| |
| "setup": [ {
| |
| "title": "IODIR",
| |
| "address": 10000,
| |
| "value": "0x0000"
| |
| },
| |
| {},
| |
| ...]
| |
| </pre>
| |
| Он описывает регистры и значения, которые однократно заносятся в эти регистры при инициализации устройства. Его можно использовать для конфигурирования устройств для работы в каком-то определенном режиме, задавать изначальные значения яркости, положения сервоприводов, состояния реле, режима работы с входами релейных модулей и т. п.
| |
| | |
| ====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>
| |