Продолжая обсуждение из темы Приточная система Royal clima RCV-500 + WB:
Подключаю ПВУ от того-же производителя.
Получил таблицу регистров от производителя
Modbus protocol - DC (Primo).pdf (399,4 КБ)
Продолжая обсуждение из темы Приточная система Royal clima RCV-500 + WB:
Подключаю ПВУ от того-же производителя.
Получил таблицу регистров от производителя
Modbus protocol - DC (Primo).pdf (399,4 КБ)
Регистры совпадают, есть лишь пара вопросов по подключению:
root@wirenboard-AXWLK46C:~# modbus_client_rpc --debug -mrtu -b9600 -pnone -s2 /dev/ttyMOD3 -a7 -t0x06 -r10 5
2024-03-25 18:55:11,073 [DEBUG] Data to write: 0x05
2024-03-25 18:55:11,075 [DEBUG] [07][06][00][0a][00][05][69][ad]
2024-03-25 18:55:11,079 [DEBUG] Connecting to broker unix:///var/run/mosquitto/mosquitto.sock
2024-03-25 18:55:11,087 [DEBUG] RPC Client -> {'path': '/dev/ttyMOD3', 'baud_rate': 9600, 'parity': 'N', 'data_bits': 8, 'stop_bits': 2, 'response_size': 8, 'format': 'HEX', 'msg': '0706000a000569ad', 'total_timeout': 1000} (1000 timeout ms)
2024-03-25 18:55:12,094 [ERROR] Mqtt-rpc client timeout error, timeout 1000 ms
root@wirenboard-AXWLK46C:~# modbus_client_rpc --debug -mrtu -b9600 -pnone -s2 /dev/ttyMOD3 -a7 -t0x06 -r10 5
2024-03-25 18:59:49,575 [DEBUG] Data to write: 0x05
2024-03-25 18:59:49,576 [DEBUG] [07][06][00][0a][00][05][69][ad]
2024-03-25 18:59:49,580 [DEBUG] Connecting to broker unix:///var/run/mosquitto/mosquitto.sock
2024-03-25 18:59:49,583 [DEBUG] RPC Client -> {'path': '/dev/ttyMOD3', 'baud_rate': 9600, 'parity': 'N', 'data_bits': 8, 'stop_bits': 2, 'response_size': 8, 'format': 'HEX', 'msg': '0706000a000569ad', 'total_timeout': 1000} (1000 timeout ms)
2024-03-25 18:59:49,834 [DEBUG] RPC Client <- {'response': '0706000a000569ad'}
2024-03-25 18:59:50,836 [DEBUG] Response: 0706000a000569ad
2024-03-25 18:59:50,837 [DEBUG] <07><06><00><0a><00><05><69><ad>
SUCCESS: written 1 element
root@wirenboard-AXWLK46C:~# modbus_client_rpc --debug -mrtu -b9600 -pnone -s1 -o2000 /dev/ttyMOD3 -a7 -t3 -r12
2024-03-25 20:48:48,340 [DEBUG] [07][03][00][0c][00][01][44][6f]
2024-03-25 20:48:48,344 [DEBUG] Connecting to broker unix:///var/run/mosquitto/mosquitto.sock
2024-03-25 20:48:48,349 [DEBUG] RPC Client -> {'path': '/dev/ttyMOD3', 'baud_rate': 9600, 'parity': 'N', 'data_bits': 8, 'stop_bits': 1, 'response_size': 7, 'format': 'HEX', 'msg': '0703000c0001446f', 'total_timeout': 2000} (2000 timeout ms)
2024-03-25 20:48:48,833 [DEBUG] RPC Client <- {'response': '070302003df195'}
2024-03-25 20:48:49,836 [DEBUG] Response: 070302003df195
2024-03-25 20:48:49,837 [DEBUG] <07><03><02><00><3d><f1><95>
SUCCESS: read 1 elements:
Data: 0x003d
Второй вопрос
Как правильно указать чтение регистров?
Например температура читается только при коде функции
0x03 Read Holding Registers
с остальными кодами выдает ошибку
2024-03-25 21:24:46,130 [DEBUG] Error message: Server error
2024-03-25 21:24:46,131 [DEBUG] Error code: -32000
2024-03-25 21:24:46,132 [DEBUG] Error data: Port IO error: Serial protocol error: request timed out
Но тогда в интерфейсе WB эти поля отображаются как поля ввода
Хотя они Read only
И еще один вопрос:
есть таблица соответствия команд скоростям вентилятора:
Fan speed:
0-stop,
2-speed 1,
3-speed 2,
5-speed 3,
8-speed 4,
9-speed 5,
10-speed 6,
11-speed 7,
12-speed 8,
13-speed 9,
14-speed 10
Как ввести это в устройство serial WB ?
Добрый день.
2024-03-25 18:55:12,094 [ERROR] Mqtt-rpc client timeout error, timeout 1000 ms
Как я понимаю, за указанное время ожидания ответа от устройства не пришел ответ. Почему за это время не пришел ответ сложно сказать. Надо смотреть на документацию устройства. Может оно медленное. Хотя 1000 мс вроде не мало. Попробуйте увеличить таймаут и посмотрите будет ли повторяться ошибка.
Так а какой у данного параметра тип регистра? Если “Holding Registers”, то он и будет читаться через данную функцию.
Все верно. Так отображается параметр с типом регистра “holding”.
В данной теме есть ответ. Использование enum в шаблонах устройств - #2 от пользователя Viorel
Да, спасибо, таймаут в 2 сек исправил положение
В документации от производителя типы регистров не указаны, методом тыка перепробовав 4 типа
Выяснил - что только на 0х03 приходит ответ
Да. Сталкивался с таким, что если тип регистра не указан производителем, то это оказывались Holding Registers.
Темплейт собрал и проверил - работает
PS: А как в темплейте в канале указать Единицы измерения ?
Добрый день.
Для этого добавьте в структуру канала данную настройку "readonly" : true
, например так:
{
"name": "Room temperature",
"address": "12",
"reg_type": "holding",
"readonly" : true,
"type": "temperature",
"format": "s16",
"offset": -40,
"group": "temperature"
},
Также в структуре канала добавьте следующую настройку "units" : "ppm"
, например, так:
{
"name": "CO2 value",
"address": "768",
"reg_type": "holding",
"type": "value",
"units" : "ppm",
"format": "u16",
"group": "status"
},
Попробуйте данные настройки и сообщите о результате.
Спасибо, обе строки помогли.
Причесал шаблон, внес диапазоны настроек в комментарии.
заменил все type на value
так как увидел такую информацию:
Осталась пара вопросов
не нашел где прочитать про составление темплейтов…
1)- как в канале указать множитель?
Канал “Fan running time record”
ведет счет в 0,1 часа…хорошо бы перевести в часы…
root@wirenboard-AXWLK46C:~# modbus_client_rpc -mrtu -b9600 -pnone -s2 -o2000 /dev/ttyMOD3 -a7 -t3 -r19
SUCCESS: read 1 elements:
Data: 0x0070
В канале вроде все верно
{
"name": "Humidity setting value",
"address": "19",
"reg_type": "holding",
"type": "value",
"units" : "%",
"format": "s16",
"min": 1,
"max": 99,
"group": "settings"
},
Но на дисплее пульта отображается 7 а не 112
И через пульт позволяет отрегулировать лишь в диапазоне 1-16, чтото я непойму в каких это единицах
в инструкции
19 Humidity setting value 1-99
Все верно. Рекомендуется использовать через параметр "units"
.
Единственно, вместо "units" : "°C"
, я бы использовал "units" : "deg C"
. Отображаться это будет также. Но все-таки, если есть данная единица измерения в списке предлагаемых, то я бы использовал ее.
Это по сути описано в примере конфигурационного файла /etc/wb-mqtt-serial.conf. Вот так. Т.е. добавляете в настройку канала что-то подобное: "scale": 0.5
.
Тут, к сожалению, не подскажу. Я бы с пульта позадавал значения с 1 по 16 и смотрел бы, как меняется при этом данный регистр. Если меняется, то посмотрел бы на зависимость.
Вы можете уточнить точную модель вашей ПВУ?
Марка
Royal Climo
Серия приточно-вытяжных установок
Soffio Primo
модели
Также аналогичная инструкция и перечень регистров идут к установкам:
Добавил пару пропущенных регистров
и прописал единицы измерения времени
В конфиге уже прописаны enum для каналов:
{
"name": "Supply fan speed",
"address": "10",
"reg_type": "holding",
"type": "value",
"enum": [0, 2, 3, 5, 8, 9, 10, 11, 12, 13, 14],
"enum_titles": ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10"],
"min": 0,
"max": 14,
"group": "settings"
},
{
"name": "Exhaust fan speed",
"address": "11",
"reg_type": "holding",
"type": "value",
"enum": [0, 2, 3, 5, 8, 9, 10, 11, 12, 13, 14],
"enum_titles": ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10"],
"min": 0,
"max": 14,
"group": "settings"
},
{
"name": "Filter alarm timer",
"address": "25",
"reg_type": "holding",
"type": "value",
"enum": [0, 1, 2, 3],
"enum_titles": ["45 days", "60 days", "90 days", "180 days"],
"readonly" : true,
"group": "status"
},
По идее должны заработать при выходе версии wb-2404
Не знаю только как прописать маппинг для таких значений:
Правильно понимаю, что по регистрам SOFFIO Primo RCS-350-P отличается от вашей SOFFIO Primo RCS-650-P? У нас в вики есть от реализация для SOFFIO Primo RCS-350-P.
Должны совпадать, но поиск гуглом не выдал результата на вики, а только лишь пару тем здесь, причем неутешительных…
Поэтому я и писал шаблон сам с нуля
Ну будет дубль)
Считаю что на WiKi необходимо написать полное название серии совместимых установок…
Можете посмотреть, как реализовано здесь и проверить у себя.
В Вики указаны только те модели с которыми был проверен шаблон. Если вы сможете проверить шаблон из Вики и он у вас будет работать, мы добавим и вашу модель в список.
Согласен, модели добавлять надо после проверки, но вот название марки писать надо…
Собственно поэтому я и не нашел эту статью в вики, так как искал Royal Clima
Спасибо, добавил.