ПВУ Royal Clima Soffio Primo

Дополнил и улучшил :slight_smile:

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"
			},

А возможно ли их объединить в один свитч ?

а то както “не красиво” :slight_smile:
2024-03-29_12-19-55

Думаю, только через виртуальное устройство, но в данном случае (для шаблона) это не вариант.

Кажется, нужное вам решение описано в разделе «Писать в один регистр, читать из другого» на странице Как писать шаблоны для сторонних 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. Вдруг установка на этой скорости лучше себя чувствует. Попробуйте и сообщите результат.

1 лайк

Заметил что работает ПВУ странно, скорости сам меняет, настройки, адрес модбас…

По логам 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 часов полет нормальный

1 лайк

Однако должен быть в доккументации описан режим настроек подключения внешнего 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)
2024-04-12_11-42-57

а вот смена из карточки в регистр уже не отрабатывает offset
и пишет в регистр 07 06 00 05 ff ff 98 1d

PS: пока поставлю
“readonly”: true,

а то ПВУ ругается

Добрый день.
Подобное не получается воспроизвести.
Обновите систему и обратите внимание, что в вашем случае для данного регистра необходимо использовать формат числа со знаком, иначе нет смысла, т.к. вам необходимо задавать отрицательные значения.
Пропишите в шаблоне:

"format": "s16",

Сообщите о результате.

1 лайк

установил s16
понаблюдаю

1 лайк