Добрый день помогите проверить правильность написания темплейта
{
"title": "CWT-TH03S-H-M-Modbus_template",
"device_type": "CWT-TH03S-H-M",
"device": {
"name": "CWT-TH03S-H-M",
"id": "CWT-TH03S-H-M",
"max_read_registers": 0,
"response_timeout_ms": 150,
"frame_timeout_ms": 12,
"guard_interval_us": 4000,
"channels": [
{
"name": "Humidity zone1",
"reg_type": "input",
"address": "40001",
"type": "rel_humidity",
"format": "s16",
"scale": 0.1,
"error_value": "0xE6",
"group": "air_quality"
},
{
"name": "Temperature zone1",
"reg_type": "input",
"address": "40002",
"type": "rel_temperature",
"format": "s16",
"scale": 0.1,
"error_value": "0x9F",
"group": "air_quality"
}
]
}
}
Здравствуйте!
Я бы скорректировал так:
input → holding, чтобы функция чтения была 0x3. Хотя в документации указана 0х30, предполагаю, что это ошибка.
“error_value”: “0x9F” - это значение, при котором данные в регистре считаются некорректными, в инструкции такого не нашел, думаю, не нужно.
если с указанными адресами читаться не будет, то нужно попробовать адреса 0 и 1. У разных производителей бывает по-разному.
{
"name": "Humidity zone1",
"reg_type": "holding",
"address": "40001",
"type": "rel_humidity",
"format": "s16",
"scale": 0.1,
"group": "air_quality"
},
{
"name": "Temperature zone1",
"reg_type": "holding",
"address": "40002",
"type": "rel_temperature",
"format": "s16",
"scale": 0.1,
"group": "air_quality"
}
Также еще для сторонних устройств в шаблоне желательно прописать задержки для точного соответствия стандарту Modbus RTU: Как подключить Modbus RTU-устройство стороннего производителя к контроллеру Wiren Board? — Wiren Board - увидел, что уже сделано
Пример шаблона для стороннего устройства можно найти здесь: https://github.com/wirenboard/wb-mqtt-serial/blob/master/wb-mqtt-serial-templates/config-cityron-pu-3.json
это моя первая попытка что то добавить, я статью читал, но для не програмиста не совсем понятно
Explorerol:
"format": "s16",
подскажите а зачем эта строка?
подскажите что не так? устройство не появилось в списке
root@wirenboard-ARQPLVEX:~# wb-mqtt-serial -g
<3>ERROR: [serial config] File: /etc/wb-mqtt-serial.conf.d/templates/config-CWT- TH03S-H-M Modbus.json error: Validation failed.
Error 1
context: [device][channels][1][type]
desc: Failed to match against any enum values.
Error 2
context: [device][channels][1]
desc: Failed to validate against schema associated with property name ‘type’.
Error 3
context: [device][channels][1]
desc: Failed to validate against child schema #0 .
Error 4
context: [device][channels][1]
desc: Failed to validate against child schema #0 .
Error 5
context: [device][channels][1]
desc: Missing required property ‘consists_of’.
Error 6
context: [device][channels][1]
desc: Failed to validate against child schema #1 .
Error 7
context: [device][channels][1]
desc: Failed to validate against any child schemas allowed by oneOf constraint .
Error 8
context: [device][channels][1]
desc: Failed to validate against child schema #0 .
Error 9
context: [device][channels][1]
desc: Failed to validate against child schema #0 .
Error 10
context: [device][channels][1]
desc: Missing required property ‘device_type’.
Error 11
context: [device][channels][1]
desc: Failed to validate against child schema #0 .
Error 12
context: [device][channels][1]
desc: Missing required property ‘oneOf’.
Error 13
context: [device][channels][1]
desc: Failed to validate against child schema #1 .
Error 14
context: [device][channels][1]
desc: Failed to validate against any schemas allowed by anyOf constraint.
Error 15
context: [device][channels][1]
desc: Failed to validate against child schema #1 .
Error 16
context: [device][channels][1]
desc: Failed to validate against any child schemas allowed by oneOf constraint .
Error 17
context: [device][channels]
desc: Failed to validate item #1 in array.
Error 18
context: [device]
desc: Failed to validate against schema associated with property name ‘channel s’.
Error 19
context: [device]
desc: Failed to validate against child schema #2 .
Error 20
context: [device]
desc: Failed to validate against child schema #0 .
Error 21
context: [device]
desc: Failed to validate against any child schemas allowed by oneOf constraint .
Error 22
context:
desc: Failed to validate against schema associated with property name ‘device’
Это нужно испрвить на
"type": "temperature",
Шаблоны могут не сразу появиться в веб-интерфейсе. Они обновляются в фоновом режиме. Подождите немного, затем обновите страницу со сбросом кэша (Ctrl+F5 в Chrome)
Или выполните в консоли контроллера:
wb-mqtt-serial -g && systemctl restart wb-mqtt-serial
А затем также обновите страницу в браузере.
root@wirenboard-ARQPLVEX:~# wb-mqtt-serial -g &&systemctl restart wb-mqtt-serial
<3>ERROR: [serial config] File: /etc/wb-mqtt-serial.conf.d/templates/config-CWT-TH03S-H-M Modbus.json error: Validation failed.
Error 1
context: [device][channels][0][type]
desc: Failed to match against any enum values.
Error 2
context: [device][channels][0]
desc: Failed to validate against schema associated with property name ‘type’.
Error 3
context: [device][channels][0]
desc: Failed to validate against child schema #0 .
Error 4
context: [device][channels][0]
desc: Failed to validate against child schema #0 .
Error 5
context: [device][channels][0]
desc: Missing required property ‘consists_of’.
Error 6
context: [device][channels][0]
desc: Failed to validate against child schema #1 .
Error 7
context: [device][channels][0]
desc: Failed to validate against any child schemas allowed by oneOf constraint.
Error 8
context: [device][channels][0]
desc: Failed to validate against child schema #0 .
Error 9
context: [device][channels][0]
desc: Failed to validate against child schema #0 .
Error 10
context: [device][channels][0]
desc: Missing required property ‘device_type’.
Error 11
context: [device][channels][0]
desc: Failed to validate against child schema #0 .
Error 12
context: [device][channels][0]
desc: Missing required property ‘oneOf’.
Error 13
context: [device][channels][0]
desc: Failed to validate against child schema #1 .
Error 14
context: [device][channels][0]
desc: Failed to validate against any schemas allowed by anyOf constraint.
Error 15
context: [device][channels][0]
desc: Failed to validate against child schema #1 .
Error 16
context: [device][channels][0]
desc: Failed to validate against any child schemas allowed by oneOf constraint.
Error 17
context: [device][channels]
desc: Failed to validate item #0 in array.
Error 18
context: [device]
desc: Failed to validate against schema associated with property name ‘channels’.
Error 19
context: [device]
desc: Failed to validate against child schema #2 .
Error 20
context: [device]
desc: Failed to validate against child schema #0 .
Error 21
context: [device]
desc: Failed to validate against any child schemas allowed by oneOf constraint.
Error 22
context:
desc: Failed to validate against schema associated with property name ‘device’.
Добавил секцию с описанием групп, вот такой файл у меня нормально принимается:
config-CWT- TH03S-H-M Modbus.json (1.1 KB)
ураа что то появилось, буду думать как победить красноту
красноту победил вернув скорость опроса 9600, но данных нет почему-то, может поменять адрес на что то другое?
Если каналы отображаются черным, значит устройство отвечает. Предлагаю попробовать еще указать адреса 0 и 1.
Если это не поможет, то попробовать прочитать регистры с помощью утилиты modbus_client на контроллере: Утилита «modbus_client» — Wiren Board и проверить, есть ли ответ от устройства и правильный ли он.
0,1 не работает буду пробывать с утилитой
подключаю на прямую к компу данные идут
подскажите стопбит стоит 1 это критично? может это быть проблемой?
Да, это может быть критичным. Нужно задавать точно такие же параметры обмена, как и на стороннем устройстве.
тогда вопрос, стоп бит меняется только на порте контролера, к этому порту подключены устройства вб, будут ли они работать?
На всех устройствах, подключенных к одному порту RS-485 контроллера должны быть полностью одинаковые настройки обмена: скорость, четность, количество бит данных, количество стоп-бит.