Добавление стороннего modbus-устройства ломает остальные

Пытаюсь подключить по modbus приточку Turkov.

На момент начала к WB по линии RS485-1 подключено 4 устройства WB (wb-msw, wb-mr6c и т.п.).
Все устройства корректно работают, отображаются в Devices и так далее, т.е. полностью штатная работа.
По линии RS485-2 подключён только пульт от приточки, но пока не сконфигурирован в WB.

Действие 1.
В WB wb-mqtt-serial.conf через веб-интерфейс конфигурирую RS485-2. Получаются следующие настройки:

{
“path”: “/dev/ttyRS485-2”,
“devices”: [],
“baud_rate”: 9600,
“parity”: “N”,
“data_bits”: 8,
“stop_bits”: 1,
“poll_interval”: 3000,
“enabled”: true
}

Сохраняю. Все устройства в WB всё ещё корректно работают.

Действие 2.
Останавливаю wb-mqtt-serial. Выполняю чтение из 1 регистра (вкл/выкл. приточки) и получаю успешный ответ:

root@wirenboard-AGY6SGDE:~# modbus_client --debug -mrtu -pnone -s1 /dev/ttyRS485-2 -a3 -t0x03 -r1
Opening /dev/ttyRS485-2 at 9600 bauds (N, 8, 1)
[03][03][00][01][00][01][D4][28]
Waiting for a confirmation…
<03><03><02><00><01><00><44>
SUCCESS: read 1 of elements:
Data: 0x0001

Включаю обратно wb-mqtt-serial.

Действие 3.
Так же в wb-mqtt-serial.conf через веб-интерфейс пытаюсь добавить само устройство. Нажимаю “+ Serial Device”, указываю id = “3”, тип = пустой. Нажимаю “Save”:


Перехожу на вкладку Devices и вижу, что все мои устройства исчезли (остался только сам контроллер WB). Аналогично в Settings/MQTT Channels - только топики от контроллера. При этом в wb-mqtt-mbgate.conf все “старые” топики от устройств присутствуют. Весь умный дом “сломался”, т.е. попытки записать в топики со стороны home assistant ничем не заканчиваются (это я к тому, что не просто на фронте что-то сломалось, а оно в принципе становится неработоспособным).

Из того, что заметил на данном этапе - если обратно перейти в конфиг, у добавленного устройства будет device_type": “DDL04R”. Попытка стереть или поменять на что-то собственное (например, “TURKOV”, как в этом сообщении, при сохранении всё равно сбрасывает в DDL04R.) Ну и такой интерфейс найти у себя не могу.

Действие 4.
Через веб-интерфейс в wb-mqtt-serial.conf удаляю устройство, нажимаю Save.
В разделе Devices сразу появляются все старые устройства, в Settings/MQTT Channels - все старые топики, всё работает как и раньше.

Вопрос - где я как пользователь затупил? :grinning: Был даже уверен, что добавление устройства на этом не закончится и нужно будет что-то ещё конфигурировать, но точно не был готов, что первый же шаг сломает всё остальное.

В качестве дополнения, я примерно догадался, куда я не туда зашёл с точки зрения пользовательского workflow.
По этой инструкции, я должен выбрать шаблон “Custom Device”, однако у меня в выпадающем списке его нет.
Почему?

Здравствуйте!

Скорее всего вы некорректно добавляете новое устройство, при этом сервис wb-mqtt-serial просто не может прочитать настройки и не запускается. Работу сервиса можно проверить командой:
service wb-mqrr-serial status
Для нормальной работы статус должен быть active (runninng). При ошибках во время старта сервис выводит сообщения в лог, просмотреть сообщения от сервиса можно командой
journalctl -f -u wb-mqtt-serial

Вероятно, вы используете не самую новую версию пакета wb-mqtt-serial.
В вашей версии надо сделать так.
Добавить новое устройство:

Нажать кнопку Properties и установить галочки, как на рисунке ниже:

Можно обновить пакет wb-mqtt-serial до последнего в ветке testing: Обновление прошивки контроллера Wiren Board — Wiren Board. При этом при необходимости сделайте резервные копии настроек (шаблонов) контроллера.

Спасибо, инструкция помогла, всё заработало.
В части обновления до testing - всё же дождусь 1 недельку перехода на нормальные ветки.
В части “Скорее всего вы некорректно добавляете новое устройство, при этом сервис wb-mqtt-serial просто не может прочитать настройки и не запускается.”, для пользователя это, увы, не очевидно - штатно нажал кнопку и “всё сломалось”.

В планах есть задача по визуализации работы важных сервисов, возможности их диагностики и перезапуска из веб-интерфейса.

1 лайк

Столкнулся с аналогичным, с той разницей что modbus устройство подключено к удаленно через WB-MIO и отваливаются все устройства MIO. Через WUI добавил custom modbus device

wb-mqtt-serial.conf (47.8 КБ)

release wb-2108 (as stable)

 wb-mqtt-serial.service - MQTT Driver for serial devices
   Loaded: loaded (/lib/systemd/system/wb-mqtt-serial.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2021-09-29 07:20:36 UTC; 3h 10min ago
 Main PID: 3690 (wb-mqtt-serial)
   CGroup: /system.slice/wb-mqtt-serial.service
           └─3690 /usr/bin/wb-mqtt-serial

Sep 29 10:16:56 wirenboard-AN3PDYLU wb-mqtt-serial[3690]: ERROR: [serial client] Serial protocol error: <192.168.1.198:20108> connect error: No route to host (113)
Sep 29 10:18:02 wirenboard-AN3PDYLU wb-mqtt-serial[3690]: WARNING: [modbus] failed to read 4 input(s) @ 4284 of device modbus:184: Serial protocol error: request timed out
Sep 29 10:18:33 wirenboard-AN3PDYLU wb-mqtt-serial[3690]: WARNING: [modbus] failed to read 4 input(s) @ 4284 of device modbus:29: Serial protocol error: request timed out
Sep 29 10:18:43 wirenboard-AN3PDYLU wb-mqtt-serial[3690]: WARNING: [modbus] failed to read 1 input(s) @ 4344 of device modbus:204: Serial protocol error: request timed out
Sep 29 10:19:58 wirenboard-AN3PDYLU wb-mqtt-serial[3690]: WARNING: [modbus] failed to read 6 input(s) @ 13074 of device modbus:101: Serial protocol error: request timed out
Sep 29 10:19:58 wirenboard-AN3PDYLU wb-mqtt-serial[3690]: WARNING: [modbus] failed to read 4 input(s) @ 16572 of device modbus:101: Serial protocol error: malformed response: invalid crc
Sep 29 10:21:56 wirenboard-AN3PDYLU wb-mqtt-serial[3690]: ERROR: [serial client] Serial protocol error: <192.168.1.198:20108> connect error: No route to host (113)
Sep 29 10:25:09 wirenboard-AN3PDYLU wb-mqtt-serial[3690]: WARNING: [modbus] failed to read 4 input(s) @ 4284 of device modbus:184: Serial protocol error: request timed out
Sep 29 10:25:39 wirenboard-AN3PDYLU wb-mqtt-serial[3690]: WARNING: [modbus] failed to read 4 input(s) @ 4284 of device modbus:144: Serial protocol error: request timed out
Sep 29 10:27:00 wirenboard-AN3PDYLU wb-mqtt-serial[3690]: ERROR: [serial client] Serial protocol error: <192.168.1.198:20108> connect error: No route to host (113)


Здравствуйте!

Вы используете модуль WB-MIO или WB-MIO-E?
Предполагаю, что все-таки WB-MIO-E. Обновляли ли вы программное обеспечение контроллера после конфигурирования контроллера? Объясните подробнее, после добавления какого устройства происходит сбой?

Вот это сообщение наводит на то, что не удается найти маршрут к узлу с адресом 192.168.1.198. С ним есть связь? Проверьте вывод команд

ping 192.168.1.198
ping 192.168.1.199

Также покажите вывод команды

ip route

Также перезапустите, пожалуйста, драйвер:

service wb-mqtt-serial restart

и приложите выводимые при этом в лог сообщения:

journalctl --since "10 minutes ago"

Я правильно понимаю, что у вас два модуля MIO: один с адресом 192.168.1.198, а другой с адресом 192.168.1.199? С обоими нет связи?

Прошу прощения ложная тревога. Работал дистанционно, а по месту люди вели ППР - отключили часть сетевого оборудования. Совпало.

1 лайк