Добрый день!
Вчера начал подключение рекуператора Turkov Zenit500 к умному дому, но он не обнаруживается…
Нужно ли прописывать устройство?
Как узнать его адрес?
Добрый день!
Вчера начал подключение рекуператора Turkov Zenit500 к умному дому, но он не обнаруживается…
Нужно ли прописывать устройство?
Как узнать его адрес?
Уточню: подключаю по rs485, сообщения жду в очереди mqtt
Рано еще ждать его сообщений по MQTT.
Данные нужно сначала получить в WB от Туркова по RS-485.
Для этого нужно настроить соединение по инструкции на стр. 52
Адрес у него 0x00 по умолчанию, скорость 9600, Parity N, Data bits 8, Stop bits 1 (! по умолчанию)
Подключитесь сначала через программу PuTTy и сервис modbus_client
https://wirenboard.com/wiki/index.php/Modbus-client
Отписывайтесь пожалуйста по результатам подключения - всем будет интересно!
Видимо это подключение растянется, т.к. вечерами много времени уделить не смогу.
зашел на wb через ssh. Трижды запустил одну и ту же команду и получил ответы с переменным успехом.
root@wirenboard-AH4OLZNI:~# modbus_client --debug -mrtu -t0x03 /dev/ttyRS485-1 -a5 -pnone -r0x02 0x01
0x0001 Opening /dev/ttyRS485-1 at 9600 bauds (N, 8, 1)
[05][03][00][02][00][01][24][4E]
Waiting for a confirmation…
<05><03><02><00><07><08><46>
SUCCESS: read 1 of elements:
Data: 0x0007
root@wirenboard-AH4OLZNI:~# modbus_client --debug -mrtu -t0x03 /dev/ttyRS485-1 -a5 -pnone -r0x02 0x01
0x0001 Opening /dev/ttyRS485-1 at 9600 bauds (N, 8, 1)
[05][03][00][02][00][01][24][4E]
Waiting for a confirmation…
ERROR Connection timed out: select
<04><0A>ERROR occured!
root@wirenboard-AH4OLZNI:~# modbus_client --debug -mrtu -t0x03 /dev/ttyRS485-1 -a5 -pnone -r0x02 0x01
0x0001 Opening /dev/ttyRS485-1 at 9600 bauds (N, 8, 1)
[05][03][00][02][00][01][24][4E]
Waiting for a confirmation…
<51><04><02><0D><5D><55>
Received function not corresponding to the request (4 != 3)
ERROR occured!
взял настройки из web-ui. результат не улучшился.
root@wirenboard-AH4OLZNI:~# modbus_client --debug -mrtu /dev/ttyRS485-1 -a0x05 -t0x03 -b9600 -pnone -s2 -r0x02 0x01
0x0001 Opening /dev/ttyRS485-1 at 9600 bauds (N, 8, 2)
[05][03][00][02][00][01][24][4E]
Waiting for a confirmation…
ERROR Connection timed out: select
<22>ERROR occured!
root@wirenboard-AH4OLZNI:~# modbus_client --debug -mrtu /dev/ttyRS485-1 -a0x05 -t0x03 -b9600 -pnone -s2 -r0x02 0x01
0x0001 Opening /dev/ttyRS485-1 at 9600 bauds (N, 8, 2)
[05][03][00][02][00][01][24][4E]
Waiting for a confirmation…
ERROR Connection timed out: select
<01><01><00>ERROR occured!
root@wirenboard-AH4OLZNI:~# modbus_client --debug -mrtu /dev/ttyRS485-1 -a0x05 -t0x03 -b9600 -pnone -s2 -r0x02 0x01
0x0001 Opening /dev/ttyRS485-1 at 9600 bauds (N, 8, 2)
[05][03][00][02][00][01][24][4E]
Waiting for a confirmation…
<05><03><02><00><07><08><46>
SUCCESS: read 1 of elements:
Data: 0x0007
Писать (вкл/выкл установки) получается тоже с периодическим успехом.
root@wirenboard-AH4OLZNI:~# modbus_client --debug -mrtu /dev/ttyRS485-1 -a0x05 -t0x06 -b9600 -pnone -s2 -r0x01 0x01
Data to write: 0x1
Opening /dev/ttyRS485-1 at 9600 bauds (N, 8, 2)
[05][06][00][01][00][01][18][4E]
Waiting for a confirmation…
ERROR Connection timed out: select
<25>ERROR occured!
root@wirenboard-AH4OLZNI:~# modbus_client --debug -mrtu /dev/ttyRS485-1 -a0x05 -t0x06 -b9600 -pnone -s2 -r0x01 0x01
Data to write: 0x1
Opening /dev/ttyRS485-1 at 9600 bauds (N, 8, 2)
[05][06][00][01][00][01][18][4E]
Waiting for a confirmation…
<05><06><00><01><00><01><18><4E>
SUCCESS: written 1 elements!
Да, странное поведение. Линия длинная или вы подключали непосредственно к контроллеру?
А есть или нет терминатор на устройстве (можно попробовать снять/поставить).
Попробуйте поменять настройки failsafe bias для порта:
Провода до рекуператора метра 3-4 (самая маленькая), на порту rs485-1 у меня висят еще 3 универсальных датчика WB.
Терминатор - это что такое?
с RS485 failsafe bias configuration = disabled вообще через CRC-error сложно пробиться.
Так RS-485 подключать нельзя!
А и В должны быть в скрутке одной пары.
Сделайте А - оранжевый, В - бело-оранжевый.
Возможно исправится ситуация.
Терминатор - терминирующий резистор на конце линии (у последнего устройства) 120 Ом между контактами А и В.
Done. Связь стала надежной.
Какие следующие шаги? Надеюсь, что драйвер писать не придется?
Драйвер, слава богу, писать не надо
Нужно создать свой конфигурационный файл.
Но перед этим воспользуйтесь утилитой modbus_client, для того чтобы убедиться, что возможность управлять Турковым из WB есть.
https://wirenboard.com/wiki/index.php/Modbus-client/ru
так я его еще в прошлый раз включал и выключал. Так, что возможность есть. Теперь просто буду перебирать команды одна за другой.
Но начну все-таки с пассивных операций - мне сейчас важнее в history писать показатели.
Да, забыл уже.
Поделитесь здесь конфигом пожалуйста когда заработает.
странно записался конфиг. много лишних значений, которых нет в web-UI:
Можно было и сам файл выложить - здесь не форум экстрасенсов!
Проблема в том, что все эти поля не не добавлял в интерфейс, а они вылезли. Сейчас придется искать конфигурационный файл, т.к. через web-UI их не видно.
Откуда WB на закладке Devices для webUI взял поля, которых нет в конфиге?!
/etc/wb-mqtt-serial.conf
{ "path": "/dev/ttyRS485-2", "devices": [ { "slave_id": "8", "setup": [], "name": "Turkov Zenit 500", "poll_interval": 20, "channels": [ { "name": "Power", "type": "switch", "reg_type": "holding", "address": 1, "format": "s16", "scale": 1, "offset": 0 }, { "name": "Temp Limit", "type": "range", "reg_type": "holding", "address": 2, "format": "s16", "scale": 1, "offset": 0, "channel_readonly": false, "max": 20 }, { "name": "Vent speed", "type": "value", "reg_type": "holding_single", "address": "3", "format": "s16", "scale": 1, "offset": 0 } ] } ], "baud_rate": 9600, "parity": "N", "data_bits": 8, "stop_bits": 2, "poll_interval": 10, "enabled": true }, { "path": "/dev/ttyMOD1", "devices": [], "baud_rate": 9600, "parity": "N", "data_bits": 8, "stop_bits": 2, "poll_interval": 10, "enabled": false },