Пытаюсь настроить работу home assistant с WB-MGE.
Схема подключения
home assitant -ethernet-> WB-MGE -rs485->WB-MR6C
конфигурация WB-MGE дефолтная (сменил только ip)
Напрямую по rs485 все работает нормально. Через WB-MGE - очень нестабильно: после отправки команды проходит несколько секунд прежде чем срабатывает реле. В логах home assitant полно сообщений о том, что не получен ответ от устройства при опросе и о том что не удалась запись за 5с. Таймауты не проичходят только при части попыток работы с устройством т.к. реле иногда срабатывает и состояние с него получается но гораздо реже чем настроенный период опроса.
Пооже home assitant генерит слишком мноо запросов. Кроме реле стои счетчик wb-map6s у которого опрашивается 12 значений. Пока идет опрос значений команды на реле не проходят.
Спасибо. Попробую.
А есть понимание с чем связано это поведение?
Я очень сомневаюсь что home assistant одновремнно пытается общаться с несколькими устройствами через modbus - их модуль довольно старый и такое уже давно бы выловили и выстроили запросы в очередь (тем более что при работе напрямую через usb-rs485 адаптер проблема не возникает). Выглядит так что wb-mge отработав запрос , “подвисает” на какое-то время и не отвечает на следующие.
Может надо обновить прошивку (хотя я не нашел как это сделать ни в документации ни в интерфейсе) ?
wb-mge у меня 2 штуки, ведут себя одинаково. Т.е. проблема не в конкретной железке.
Скорее всего проблемы с драйвером wb-mqtt-serial, с его особенностью взаимодействия с WB-MGE. Прошивки для WB-MGE для обновления нет. В логах (/var/log/messages) у вас таймауты должны появляться при чтении случайных регистров. Я решал эту проблему, изменяя количество одновременно опрашиваемых регистров, уменьшением таймаутов, задержкой перед чтением, но периодически все равно ошибки возникают.
wb-mqtt-serial нет. С WB-MGE работает виртуалка под убунтой с установленным home assistnat.
wb-mqtt-serial могло бы быть решением, но как его собрать и поставить на убунту я не нашел…
Кажестся нашел проблему - wb-mge после обработки запроса какое-то время не может принять следующий. Влез в код home assistant и добавил 50мс задержки перед отправкой запроса, все заработло.
В документации нигде не сказано, что есть минимальное время между запросами. Т.е. либо это бага в прошивке wb-mge либо ограничение его аппаратной части. В любом случае неплохо бы о таких вещах писать в докмуентации.
knst, спасибо, что потратили время и, главное, успешно решили проблему!
К сожалению, это не какая-то известная “особенность”, поэтому это скорее повод для наших исследований, чем для исправления документации сейчас. Передам разработчикам.
Разработчики что-нибудь ответили? Практика показала, что задержка просто уменьшает вероятность напороться на проблему. У меня к wb-mge подключено 3 WB-MR6C и WB-MAP6S.
Все это опрашивается раз в 5секунд. За день 40-50 ошибок
Воспроизведу. Вообще - да, причиной может быть то что Kx модуль внутри начинает передачу принятого ethernet пакета в RS-485 не джидаясь окончания цикла предыдущего обмена.