Сигнализация отсутствия связи с приборами


#1

Как правильно отслеживать и сигнализировать отсутствие обмена данными по линии RS-232/485?
Как отслеживать любые ошибки на этих линиях?

ЗЫЖ Пользуясь случаем сетую а документацию…
Просмотрел всё, что нашел. Но так и не нашел исчерпывающую спецификацию (там всё примеры кода не пойми, в каком они порядке).
Движок правил wb-rules




#2

Добрый день, viktorkho!
Достаточно обширный вопрос, обмен данными по линии со стороны контроллера выполняет демон wb-mqtt-serial, в его отладочной информации (которая по умолчанию пишется в файл /var/log/messages) записываются данные и об ошибках связи с устройствами.
Кроме того, в случае ошибки драйвер публикует ее наличие в MQTT в топик вида /devices/device/controls/value/meta/error (не отрабатывается движком правил, к сожалению, только сторонним ПО).
Документацию, как и сам движок правил постепенно улучшаем, спасибо за критику!


#3

Александр, спасибо.

$ mosquitto_sub -t /devices/device/controls/+/meta/error              
...
/devices/device/controls/T2/meta/error (null)
/devices/device/controls/T3/meta/error (null)
/devices/device/controls/T4/meta/error (null)
...
/devices/device/controls/Accumulation state/meta/error r
/devices/device/controls/Serial Number/meta/error r
/devices/device/controls/Accumulation state/meta/error (null)

Вот это “(null)” в сообщении в одних случаях (топиках) и “r” в других — как интерпретировать?

Я догадываюсь, что “r” — это возникновение ошибки, а “(null)” — восстановление функционирования. Это так?


#4

Да, совершенно верно, так r- ошибка, (null) – восстановление.