Wb-mqtt-serial templates: различия между версиями
Kilpio (обсуждение | вклад) |
Kilpio (обсуждение | вклад) |
||
Строка 13: | Строка 13: | ||
Общая структура шаблона устройства выглядит следующим образом: | Общая структура шаблона устройства выглядит следующим образом: | ||
<pre>"device": { | <pre> | ||
//Шаблон устройства | |||
{ | |||
"device": { | |||
общие параметры устройства, | общие параметры устройства, | ||
"channels": [ {параметры канала 1}, {параметры канала 2}, ...] | "channels": [ {параметры канала 1}, {параметры канала 2}, ...] | ||
}</pre> | }</pre> | ||
} | |||
Здесь device — устройство, подключаемое к контроллеру, канал — источник данных: обычно Modbus-регистр с описанием типа данных, частоты опроса, преобразования значений и проч. | Здесь device — устройство, подключаемое к контроллеру, канал — источник данных: обычно Modbus-регистр с описанием типа данных, частоты опроса, преобразования значений и проч. | ||
Подробное описание смотрите в следующих разделах. | Подробное описание смотрите в следующих разделах. | ||
=== Параметры устройства (device) === | === Параметры устройства (device) === |
Версия 13:23, 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-регистр с описанием типа данных, частоты опроса, преобразования значений и проч. Подробное описание смотрите в следующих разделах.
Параметры устройства (device)
В начале шаблона задаются параметры устройства в виде набора пар ключ:значение. Обязательными параметрами являются ключи "device_type" и "device".
Ключ device_type задает уникальное название типа устройства в виде строки, например:
"device_type": "WB-MAP12H",
.
Значение ключа device — составная структура, описывающее конкретные параметры устройства:
"device": { "name": "WB-MAP12H", "id": "wb-map12h", "channels": [...] ...}
- name — отображаемое имя устройства. Публикуется как
.../meta/name в mqtt
. Имя устройства используется при отображении web-интерфейсе, хранится в топике"id" + " " + "slave_id"
. Пример для устройства с modbus-адресом 5 и значением "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
- slave_id — Modbus-адрес устройства. Задается в виде
"slave_id" : slaveID,
. Необязательный параметр для шаблона, slave_id задается при конкурировании устройства и уже с этим параметром включается в конфигурационный файл <cоde>/etc/wb-mqtt-serial.conf</cоde>.
- channels — список каналов устройств, задается в виде массива
[...]
, каждый из элементов которого представляет описание отдельного канала.
Каналы устройства
Описание канала представляет собой структуру, содержащую следующий набор полей.
name reg_type address type type word_order poll_interval on_value scale error_value round_to
В статье приведены примеры конфигурационных файлов для некоторых совместимых устройств. Следуя данным примерам, вы можете добавить новые устройства RS-485 в интерфейс Wiren Board, написав их конфигурации либо напрямую в файл /etc/wb-mqtt-serial.conf
, либо в файл шаблонов /usr/share/wb-mqtt-serial/templates/config-*.json
.
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 задаётся при помощи физического переключателя.
Пример конфигурации: