WB-MGE таймауты


#1

Пытаюсь настроить работу home assistant с WB-MGE.
Схема подключения
home assitant -ethernet-> WB-MGE -rs485->WB-MR6C
конфигурация WB-MGE дефолтная (сменил только ip)

настройка home assitant
modbus:
name: hub1
type: rtuovertcp
host: 192.168.4.150
port: 20108
timeout: 5

switch:
platform: modbus
scan_interval: 5
coils:
- name: Switch1
hub: hub1
slave: 105
coil: 0

Напрямую по rs485 все работает нормально. Через WB-MGE - очень нестабильно: после отправки команды проходит несколько секунд прежде чем срабатывает реле. В логах home assitant полно сообщений о том, что не получен ответ от устройства при опросе и о том что не удалась запись за 5с. Таймауты не проичходят только при части попыток работы с устройством т.к. реле иногда срабатывает и состояние с него получается но гораздо реже чем настроенный период опроса.


#2

Пооже home assitant генерит слишком мноо запросов. Кроме реле стои счетчик wb-map6s у которого опрашивается 12 значений. Пока идет опрос значений команды на реле не проходят.


#3

knst, gопробуйте увеличить скорость MGE->RS-495 с 9600 до 115200 (не забудьте переконфигурировать устройства).


#4

Спасибо. Попробую.
А есть понимание с чем связано это поведение?
Я очень сомневаюсь что home assistant одновремнно пытается общаться с несколькими устройствами через modbus - их модуль довольно старый и такое уже давно бы выловили и выстроили запросы в очередь (тем более что при работе напрямую через usb-rs485 адаптер проблема не возникает). Выглядит так что wb-mge отработав запрос , “подвисает” на какое-то время и не отвечает на следующие.
Может надо обновить прошивку (хотя я не нашел как это сделать ни в документации ни в интерфейсе) ?

wb-mge у меня 2 штуки, ведут себя одинаково. Т.е. проблема не в конкретной железке.


#5

Скорее всего проблемы с драйвером wb-mqtt-serial, с его особенностью взаимодействия с WB-MGE. Прошивки для WB-MGE для обновления нет. В логах (/var/log/messages) у вас таймауты должны появляться при чтении случайных регистров. Я решал эту проблему, изменяя количество одновременно опрашиваемых регистров, уменьшением таймаутов, задержкой перед чтением, но периодически все равно ошибки возникают.


#6

wb-mqtt-serial нет. С WB-MGE работает виртуалка под убунтой с установленным home assistnat.
wb-mqtt-serial могло бы быть решением, но как его собрать и поставить на убунту я не нашел…


#7

Кажестся нашел проблему - wb-mge после обработки запроса какое-то время не может принять следующий. Влез в код home assistant и добавил 50мс задержки перед отправкой запроса, все заработло.

В документации нигде не сказано, что есть минимальное время между запросами. Т.е. либо это бага в прошивке wb-mge либо ограничение его аппаратной части. В любом случае неплохо бы о таких вещах писать в докмуентации.


#8

knst, спасибо, что потратили время и, главное, успешно решили проблему!
К сожалению, это не какая-то известная “особенность”, поэтому это скорее повод для наших исследований, чем для исправления документации сейчас. Передам разработчикам.