WBE2-I-EBUS обработка отсутствия связи с котлом

Хочу обработать ситуацию с пропаданием связи с котлом (например сантехник отключил питание котла). При стандартных настройках meta/error просто не формируется. Если настроить период опроса (100 мс например), то error = “p” появляется, и тут же исчезает, каждые пару секунд, хотя котел отключен. Почему так? Что делать?

Добрый день.
meta/error выводится при отсутствии связи по Modbus с самим шлюзом.
А тут шлюз в контроллере, с ним связь пропадет маловероятно…
В шаблоне https://github.com/wirenboard/wb-mqtt-serial/blob/master/wb-mqtt-serial-templates/config-wbe2-i-ebus.json также не описаны “аварийные” значения.
А при отключении (физическом) котла не меняется, например Error Code?

Error Code формирует котел, соответственно, при отключении котла не формируется. Я так понимаю, error = ‘p’ формирует драйвер при отсутствии ответа от устройства по конкретному регистру - и это правильно. Но зачем снимает? Раз топик пропадает - значит, драйвер присылает туда пустое значение. Но зачем? Нет связи - оставь error = ‘p’, пока не получишь значение, и все будет логично.

Неверно, “p” признак того что установленный приоритет не удается соблюсти. Ошибка связи - “r”

image
это из conventions, т.е. формируется правильно

Да. “p” не показывает именно ошибки связи (разве что косвенно). Просто с текущими настройками не удается опросить регистры именно с установленным периодом.


К тому, что приходит ‘p’, вопросов нет - это правильно. Но почему практически сразу приходит ‘null’? И это же от вашего драйвера ‘null’. приходит, не от железки Nevoton.

В канал error null. Ну естественно. В очередном чикле опроса удалось для этого канала уложится в указанное время.

Котел то отключен, я даже кабель отключил - от него ничего прийти не могло. Если котел включить - никаких ‘p’.

Увеличил период опроса до секунды - та же песня, Сообщения приходят реже, но тоже парами, сначала ‘p’ и сразу ‘null’.

Я соврал - ‘p’ начинают появляться как только задаешь период опроса, отключение котла тут не при чем. У меня просто совпало. Но как тогда отловить отключение котла? Заводить таймер с момента получения последнего значения?

Поэксперементировал на работающем котле. У котла очень неторопливая автоматика. После смены уставки котел отображает новое значение иногда через 5 секунд, иногда через 80. Температура котла у меня непрерывно росла - от драйвера пришли значения 33, 52, 62, 66 и 70 гр.С. Перерывы между значениями были и более минуты, и несколько секунд. В логах ошибок serial нет, говорить о том, что с каналом связи проблемы, не приходится. Более 7 минут значение не менялось на котле - котел поддерживал постоянную температуру - от драйвера ничего не приходило. Так что таймауты не вариант.
Кстати, проверил Error code = значение ошибки соответствует кодам неисправности котла. Т.е. если на дисплее котла F.28, то Error code = 28. Можете добавить в документацию.
Но вопрос остается - как понять, что с котлом пропала связь?

Не надо изменять период опроса порта.
Он не работает нормально если испольуются приоритеты.

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

Ок, жду - тема для меня актуальная, у меня несколько котельных в очереди на автоматизацию, и все с котлами Vaillant.

Да. Тут так и есть. Ошибка в регистре Error Code, это ошибка именно со стороны подключённого котла. Если обрывается связь котла и модуля, то, в этой версии, нет контроля обрыва шины котла. Вроде, если не ошибаюсь, на Vailant есть КЗ шины котла. Должен выдать ошибку. Но вот не помню, только на дисплей котла, или может и в сам модуль.
Дополню, что котлы разные, ошибки типовые они общие, должны читаться без проблем. Если какая-то серия котлов имеет свои, частные ошибки (доп. контур, или доп оборудование, доп. датчики давления/температуры/насоса), возможно некорректное отображение, котлов как звёзд на небе.

Технически поймать обрыв связи котла и модуля можно, но это новая версия, тоже займёт время написания. Рук мало :frowning:

Уточните для понимания:

  1. Значение ‘error=p’ формируется, когда по таймауту не ответил wbe2-i-ebus драйверу, или не ответил котел устройству wbe2-i-ebus?
  2. Если wbe2-i-ebus запрашивает данные у котла, а тот вообще не отвечает, что происходит? Опрашивается ли котел повторно? Какую информацию получает драйвер?
  3. Как понять, что уставка температуры котлом прочитана и понята? Я так понимаю, что драйвер пишет уставку в топик ‘Heating setpoint/on’, а вот ‘Heating setpoint’ когда меняет свое значение? Когда wbe2-i-ebus подтвердил получение информации от драйвера, или когда эту информацию подтвердил котел?
  4. Если я в настройках wbe2-i-ebus задам период опроса топика, например температуры подачи, то буду получать значения с этим интервалом? Меня смущает ситуация, описанная выше - температура котла плавно растет, а я получаю значения 33, 52, 62, 66 и 70 гр.С через произвольные промежутки времени, хочется видеть это в более менее реальном времени.
    5, Какие значения периода опроса в настройках топика вы считаете корректными? Меня бы 1 сек. вполне устроила. Учитывая, что на порту одно устройство, этого времени более чем достаточно вроде как.

Когда элемент в очереди планировщика запросов, для которого установлено времяопроса (приоритет) не смог быть опрошен в это время. То есть установлено 100мс а опрошен через 110 мс после последнего опроса.

думаю что сохраняет в своих регистрах последние полученные данные.

Это хорошие, годные вопросы. Думаю @Vladimir_Nev_Sup ответит

В настройках wb-mqtt-serial задается период опроса регистров wbe2-i-ebus. Этот период никак не связан со связью модуля wbe2-i-ebus с котлом. Модуль - это отдельное устройство, шлюз.
И да, 1 секунда вполне достаточна для обмена с котлом, так как процессы в нем протекают неспешно.

Поигрался с modbus_client при отключенном кабеле к котлу. Причем кабель отключен уже почти сутки. Все печально: wbe2-i-ebus отвечает последними запомненными значениями как ни в чем не бывало. Даже на команду записи в регистр отвечает SUCCESS. Читаешь потом тот же регистр - да, там хранится уже новое значение. Т.е. я общаюсь исключительно с wbe2-i-ebus абсолютно без всякой привязки к тому, что происходит с котлом. Никакой обратной связи. М-да, даже не знаю, что сказать. Ну нельзя же так, ну лучше бы вообще wbe2-i-ebus не отвечала при отсутствии связи, как то можно было выкручиваться. Я в печали.

Эта тема была автоматически закрыта через 7 дней после последнего ответа. В ней больше нельзя отвечать.