Виснут показания устройств подключеных по RS485 (топики MQTT не обнавляются)

Скорее всего один из портов, настроенный в serial device configuration используется ещё кем-то.
Пожалуйста покажите вывод команд

fuser -a -v /dev/ttyRS485-1
fuser -a -v /dev/ttyRS485-2

Доброе утро

root@wirenboard-ALFWP6GJ:~# fuser -a -v /dev/ttyRS485-1
USER PID ACCESS COMMAND
/dev/ttymxc1: root 24533 F… mercury236

root@wirenboard-ALFWP6GJ:~# fuser -a -v /dev/ttyRS485-2
USER PID ACCESS COMMAND
/dev/ttymxc3:
root@wirenboard-ALFWP6GJ:~#

добрый день! А это точно не какой-то сторонний софт?

Вроде нет, но мне все досталось по наследству от предыдущего сотрудника, что он там сделал одному Богу известно)

А это нормально что тут так много файлов

root@wirenboard-ALFWP6GJ:/var/log/mosquitto# ls
mosquitto.log mosquitto.log.2.gz mosquitto.log.4.gz mosquitto.log.6.gz
mosquitto.log.1.gz mosquitto.log.3.gz mosquitto.log.5.gz mosquitto.log.7.gz
root@wirenboard-ALFWP6GJ:/var/log/mosquitto#

Скорее всего logrotate настроен на сохранение занеделю.

Что делать с зависанием? неужели откатываться к заводским настройкам контроллера придется?

Если уверены что знаете все, что подключено к контроллеру - можно сбросить. Но проще найти приложение, которое знанимает порт и отключить его. Имя же, как и номер процесса выводится.

Речь идет об этом?
24533 F… mercury236

ВЫ уж извините за нубские вопросы, а как найти это приложение? куда копать?

Для примера:

fuser -a -v /dev/ttyRS485-2
                     USER        PID ACCESS COMMAND
/dev/ttymxc3:        root      12228 F.... wb-mqtt-serial

У меня порт занят “wb-mqtt-serial” и его PID 12228
Определим по PID расположение процесса:

ps axl |grep 12228
4     0 12228     1  20   0  61708  7608 futex_ Ssl  ?        133:13 /usr/bin/wb-mqtt-serial

Узнаем, чем он запускается, если сервис:

find /lib/systemd -type f -exec grep -i -H "wb-mqtt-serial"  {} \;

Вам надо вот так

find /lib/systemd -type f -exec grep -i -H "mercury236"  {} \;

Но, предполагаю (по имени) что это Съём показаний по RS485 порту с электросчётчиков Меркурий
Если оно разньше работало - то скорее всего для порта /dev/ttyRS485-1 не указано никаких устройств. Их физически на порту нет?

вот что по процессу пишет

root@wirenboard-ALFWP6GJ:~# ps axl |grep 2215
0 0 3867 26910 20 0 2092 572 pipe_w S+ pts/1 0:00 grep 2215

послее вода этой команды
find /lib/systemd -type f -exec grep -i -H “mercury236” {} ;

пустота, недвижимый курсор

на /dev/ttyRS485-2 подключен микроклимат
на /dev/ttyRS485-1 счетчики электрожэнергии

Контроллер очень сильно тормозит, чтобы перейти в меню на веб интерфейсе порой ждать несколько минуть приходится

Если на порту первом - только устройства (счетчики), которые опрашиваются из стороннего софта - просто отключите этот порт в настройках serial.
Конфликта не будет и wb-mqtt-serial не будет отключаться. Если не получится отключить, снять галку "Enable port@ - напиште, подключусь.
Screenshot from 2021-05-06 11-34-39

Доброе утро. Спасибо за помощь

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

Огромное спасибо за помощь!

1 лайк