Дополнил и улучшил
config-royal-clima-soffio-primo.json (14,3 КБ)
Еще вопрос
есть два значения для состояния байпаса
{
"name": "Bypass ON",
"reg_type": "holding",
"address": "18:1:1",
"type": "switch",
"readonly": true,
"group": "status"
},
{
"name": "Bypass OFF",
"reg_type": "holding",
"address": "18:2:1",
"type": "switch",
"readonly": true,
"group": "status"
},
А возможно ли их объединить в один свитч ?
а то както “не красиво”
Думаю, только через виртуальное устройство, но в данном случае (для шаблона) это не вариант.
Кажется, нужное вам решение описано в разделе «Писать в один регистр, читать из другого» на странице Как писать шаблоны для сторонних Modbus-устройств — Wiren Board
Периодически теряется связь с ПВУ…
И лог забивает ошибками:
09-04-2024 01:39:50.356 [wb-mqtt-serial] WARNING: </dev/ttyMOD3 9600 8 N 1>: closed due to repetitive errors
09-04-2024 01:39:50.356 [wb-mqtt-serial] DEBUG: [modbus] failed to read 1 holding(s) @ 9 of device modbus:7: Serial protocol error: request timed out
09-04-2024 01:39:50.356 [wb-mqtt-serial] DEBUG: [modbus] failed to read 1 holding(s) @ 9 of device modbus:7: Serial protocol error: request timed out
09-04-2024 01:39:47.327 [wb-mqtt-serial] DEBUG: [port] /dev/ttyMOD3: Sleep 8334 us
09-04-2024 01:39:47.321 [wb-mqtt-serial] DEBUG: [port] /dev/ttyMOD3: Write: 07 03 00 09 00 01 54 6e
09-04-2024 01:39:47.321 [wb-mqtt-serial] DEBUG: [port] /dev/ttyMOD3: Sleep 60000 us
09-04-2024 01:39:47.321 [wb-mqtt-serial] DEBUG: [port] /dev/ttyMOD3: Sleep 1000000 us
09-04-2024 01:39:47.321 [wb-mqtt-serial] DEBUG: [serial client] </dev/ttyMOD3 9600 8 N 1>744844466: Wait until 744844466
09-04-2024 01:39:47.318 [wb-mqtt-serial] DEBUG: [modbus] failed to read 1 holding(s) @ 15 of device modbus:7: Serial protocol error: request timed out
09-04-2024 01:39:44.289 [wb-mqtt-serial] DEBUG: [port] /dev/ttyMOD3: Sleep 8334 us
09-04-2024 01:39:44.283 [wb-mqtt-serial] DEBUG: [port] /dev/ttyMOD3: Write: 07 03 00 0f 00 01 b4 6f
09-04-2024 01:39:44.283 [wb-mqtt-serial] DEBUG: [port] /dev/ttyMOD3: Sleep 60000 us
09-04-2024 01:39:44.283 [wb-mqtt-serial] DEBUG: [port] /dev/ttyMOD3: Sleep 60000 us
09-04-2024 01:39:44.281 [wb-mqtt-serial] DEBUG: [port] /dev/ttyMOD3: Sleep 1000000 us
09-04-2024 01:39:43.283 [wb-mqtt-serial] DEBUG: [serial client] </dev/ttyMOD3 9600 8 N 1>744840429: Wait until 744840429
09-04-2024 01:39:43.283 [wb-mqtt-serial] DEBUG: [serial port] Setup /dev/ttyMOD3 port: 9600 8 N 1
09-04-2024 01:39:43.283 [wb-mqtt-serial] WARNING: </dev/ttyMOD3 9600 8 N 1>: closed due to repetitive errors
09-04-2024 01:39:43.279 [wb-mqtt-serial] DEBUG: [modbus] failed to read 1 holding(s) @ 14 of device modbus:7: Serial protocol error: request timed out
09-04-2024 01:39:40.251 [wb-mqtt-serial] DEBUG: [port] /dev/ttyMOD3: Sleep 8334 us
09-04-2024 01:39:40.245 [wb-mqtt-serial] DEBUG: [port] /dev/ttyMOD3: Write: 07 03 00 0e 00 01 e5 af
09-04-2024 01:39:40.245 [wb-mqtt-serial] DEBUG: [port] /dev/ttyMOD3: Sleep 60000 us
09-04-2024 01:39:40.245 [wb-mqtt-serial] DEBUG: [port] /dev/ttyMOD3: Sleep 1000000 us
09-04-2024 01:39:40.245 [wb-mqtt-serial] DEBUG: [port] /dev/ttyMOD3: Sleep 1000000 us
09-04-2024 01:39:40.241 [wb-mqtt-serial] DEBUG: [serial client] </dev/ttyMOD3 9600 8 N 1>744837388: Wait until 744837388
09-04-2024 01:39:40.241 [wb-mqtt-serial] DEBUG: [modbus] failed to read 1 holding(s) @ 13 of device modbus:7: Serial protocol error: request timed out
09-04-2024 01:39:37.212 [wb-mqtt-serial] DEBUG: [port] /dev/ttyMOD3: Sleep 8334 us
09-04-2024 01:39:37.206 [wb-mqtt-serial] DEBUG: [port] /dev/ttyMOD3: Write: 07 03 00 0d 00 01 15 af
09-04-2024 01:39:37.206 [wb-mqtt-serial] DEBUG: [port] /dev/ttyMOD3: Sleep 60000 us
09-04-2024 01:39:37.204 [wb-mqtt-serial] DEBUG: [port] /dev/ttyMOD3: Sleep 1000000 us
09-04-2024 01:39:36.205 [wb-mqtt-serial] DEBUG: [serial client] </dev/ttyMOD3 9600 8 N 1>744833352: Wait until 744833352
09-04-2024 01:39:36.205 [wb-mqtt-serial] DEBUG: [serial port] Setup /dev/ttyMOD3 port: 9600 8 N 1
09-04-2024 01:39:36.205 [wb-mqtt-serial] WARNING: </dev/ttyMOD3 9600 8 N 1>: closed due to repetitive errors
В чем может быть ошибка?
Добрый день.
Пришлите диагностический архив и сам шаблон. Посмотрю настройки. Также не помешает фото подключения.
Похоже проблема в частоте скорости общения устройства по modbus
в шаблоне прописаны
"response_timeout_ms": 10000,
"frame_timeout_ms" : 5000,
"guard_interval_us": 1000000,
при такой конфигурации запросы идут с паузой 1 сек постоянно
Как в шаблоне указать правильно чтобы запросы шли с интервалом например в 5 секунд ?
По мне все три параметра великоваты.
У вас одно устройство на шине? Может стоит попробовать использовать скорость обмена поменьше? Предполагаю, что ПВУ поддерживает 4800. Вдруг установка на этой скорости лучше себя чувствует. Попробуйте и сообщите результат.
Заметил что работает ПВУ странно, скорости сам меняет, настройки, адрес модбас…
По логам WB заметно что еще например скорость иногда “прилетает” не того значения что указаны в паспорте
например прилетело 6
при доступных вариантах
0, 2, 3, 5, 8, 9, 10, 11, 12, 13, 14
И внешняя панель управления ПВУ со сбоями связывается с “головой”…
А учитывая что она работает по проводу всего с двумя жилами…
тоесть там и питание и данные…
В общем я предполагаю что панель тоже по шине RS485 общается…
И в этом и проблема - WB и панель “конкурируют” на шине…
Создавая хаос в “голове”
(в паспорте на ПВУ нет никаких упоминаний и рекомендаций на эту тему)
Отключил панель, оставил только соединение с WB
Настроил в HA + WB режим поддержания CO2 по датчику [WB-MSW v.4]
Все 12 часов ПВУ включал и выключал когда надо, менял скорость по заданному алгоритму…
Вот уже 12 часов полет нормальный
Однако должен быть в доккументации описан режим настроек подключения внешнего Modbus. Ну, тем не менее - отлично что заработало.
Специально еще раз изучил идущую в комплекте документацию, и ту что прислали от производителя про Modbus протокол и регистры
Ни где нет никаких намеков…
И вот еще небольшой файл правил для WB
создает 4 дополнительных топика
мне для HomeAssistant потребовалось
/devices/Ventilation speed/controls/Exhaust fan speed
/devices/Ventilation speed/controls/Exhaust fan state
/devices/Ventilation speed/controls/Supply fan speed
/devices/Ventilation speed/controls/Supply fan state
speed r/w топики приведены к нормальной последовательности 0-10
state readonly топики выдают 0 если скорость вентилятора 0 и 1 если скорость больше 0
royal_clima.js (3,1 КБ)
Наблюдаю проблему с одним регистром #5
канал
{
"name": "Defrosting enter temperature",
"address": "5",
"reg_type": "holding",
"type": "range",
"default": -1,
"units" : "deg C",
"format": "u16",
"min": -9,
"max": 5,
"offset": -40,
"group": "settings"
},
При попытке изменить его например на -2 (значение 38)
из карточки устройства:
12-04-2024 10:57:09.182 [wb-mqtt-serial] WARNING: [register handler] failed to write: <modbus:7:holding: 5>: Serial protocol error: request timed out
12-04-2024 10:57:09.182 [wb-mqtt-serial] WARNING: [register handler] failed to write: <modbus:7:holding: 5>: Serial protocol error: request timed out
12-04-2024 10:56:59.141 [wb-mqtt-serial] DEBUG: [port] /dev/ttyMOD3: Sleep 16667 us
12-04-2024 10:56:59.124 [wb-mqtt-serial] DEBUG: [port] /dev/ttyMOD3: Write: 07 06 00 05 ff ff 98 1d
12-04-2024 10:56:59.124 [wb-mqtt-serial] DEBUG: [port] /dev/ttyMOD3: Sleep 5000 us
12-04-2024 10:56:59.124 [wb-mqtt-serial] DEBUG: [modbus] write 1 holding(s) @ 5 of device modbus:7
и через ssh
modbus_client_rpc --debug -mrtu -b4800 -pnone -s2 -o5000 /dev/ttyMOD3 -a7 -t6 -r5 38
2024-04-12 08:01:11,285 [DEBUG] Data to write: 0x26
2024-04-12 08:01:11,286 [DEBUG] [07][06][00][05][00][26][18][77]
2024-04-12 08:01:11,289 [DEBUG] Connecting to broker unix:///var/run/mosquitto/mosquitto.sock
2024-04-12 08:01:11,296 [DEBUG] RPC Client -> {'path': '/dev/ttyMOD3', 'baud_rate': 4800, 'parity': 'N', 'data_bits': 8, 'stop_bits': 2, 'response_size': 8, 'format': 'HEX', 'msg': '0706000500261877', 'total_timeout': 5000} (5000 timeout ms)
2024-04-12 08:01:12,484 [DEBUG] RPC Client <- {'response': '0706000500261877'}
2024-04-12 08:01:13,487 [DEBUG] Response: 0706000500261877
2024-04-12 08:01:13,487 [DEBUG] <07><06><00><05><00><26><18><77>
SUCCESS: written 1 element
вижу разницу в пакете:
ставлю -1 (39)
из карточки 07 06 00 05 ff ff 98 1d
ssh 07 06 00 05 00 27 d9 b7
ставлю -2 (38)
из карточки 07 06 00 05 ff ff 98 1d
ssh 07 06 00 05 00 26 18 77
что то не соображу в чем проблема
PS: ну и еще вопросик
WARNING: [conventions] control of type “range” doesn’t support custom units
А как вы предполагаете передачу отрицательного значения в беззнаковом виде? Поккажите пожалуйста, что именно должно записаться в регистр?
в регистре значения хранятся со сдвигом в +40
итого -2 + 40 = 38
-1 + 40 = 39
я так и указал
похоже проблема в обработке данных из карточки
чтение регистра в карточку отображается нормально
в регистре Data: 0x0026 = 38 (-2)
а вот смена из карточки в регистр уже не отрабатывает offset
и пишет в регистр 07 06 00 05 ff ff 98 1d
PS: пока поставлю
“readonly”: true,
а то ПВУ ругается
Добрый день.
Подобное не получается воспроизвести.
Обновите систему и обратите внимание, что в вашем случае для данного регистра необходимо использовать формат числа со знаком, иначе нет смысла, т.к. вам необходимо задавать отрицательные значения.
Пропишите в шаблоне:
"format": "s16",
Сообщите о результате.
установил s16
понаблюдаю