Добрый день!
Давно добавлено два новых устройства Modbus. В devices их видно, но значения с какого-то момента остановились и не обновляются. В MQTT значения передаются. Подскажите пожалуйста, что проверить и как найти причину?
К WB подключаюсь удалённо.
В MQTT данные пишет wb-mqtt-serial.
для начала надо посмотреть в лог /var/log/messages - нет ли ошибок обмена.
Файл посмотрел. Ошибок не увидел. Как его можно скачать на компьютер, что бы переслать?
И посмотрите сразу - сконфигурированы ли они, устройства в /etc/wb-mqtt-serial.conf
По ssh например. Ну или:
https://wirenboard.com/wiki/Просмотр_файлов_контроллера_с_компьютера
Файл /etc/wb-mqtt-serial.conf присутствует. В нём всё прописано, и раннее всё работало. Только перед файлом символ “@”. Не знаю что это значит в линуксе.
Скачать файлы на компьютер не получилось. Не запускается win-sshfs в windows 10. И, во-вторых, описано как подключиться напрямую к WB, ну или хотя бы в одной сети. А я подключаюсь к WB из вне. По SSH, через Putty.
Вот скрин файла /var/log/messages
Для начала - проверьте, запущен ли сам wb-mqtt-serial
systemctl status wb-mqtt-serial
Если да - то включите debug:
“Enable debug logging” и покажите лог.
Если нет - то запустите
systemctl start wb-mqtt-serial
и снова проверьте его статус.
Снова зашёл в веб-интерфейс и увидел что на устройствах цифры поменялись. Обновляются они или нет проверю завтра. Но для wb-mqtt-serial я не делал Restart. Только Status.
Debug главное выключите - в зависимости от количества устройств он приведет к разрастанию файла логов и полному заполнению раздела.
Сегодня снова зашёл в веб-интерфейс. Устройства не обновляются. Вчерашние цифры. Проверил статус wb-mqtt-serial. Активен. Сделал Restart. Всё начало обновляться. Помню раньше такого небыло.
Как происходит движение данных? Данные (значения) считываются с датчиков (в данном случае по modbus), затем отправляются в MQTT, а если зайти в веб-интерфейс, то данные считываются из MQTT и отображаются в devices. Верно? А если подключится напрямую к контроллеру, интернета нет. Тогда как? Брокером MQTT выступает сам контроллер? И движения те же?
Он точно активен и не вышел (Exited)? Скопируйте сюда вывод, пожалуйста.
Верно. wb-mqtt-serial записывает в mqtt постоянно. Дальше значения используются и для интерфейса и для работы правил.
Независимо от наличия-отсутствия доступа в интернет брокер все равно на контроллере.
И да, контроллер обновлялся?
apt update && apt upgrade -y
Сегодня снова всё повторяется. В веб-интерфейсе данные не обновляются. На скриншоте видно, что wb-mqtt-serial активен. После рестарта начали обновляться. И по команде статус более расширенная информация появилась.
Контроллер не обновлялся. Как я понимаю, Вы написали две команды. 1) apt update; 2) apt upgrade -y.
На контроллере выполняется правило. Эти обновления не сотрут его?
Прошло не более 15 минут, данные снова перестали обновляться. Снова помог Restart wb-mqtt-serial
“exited” - неактивен. То есть вышел.
cat /var/log/messages |grep wb-mqtt-serial
и надо посмотреть - возможно найдется причина.
Правило - нет, но если обновлялся очень давно - то возможно надо будет поправить значения
https://wirenboard.com/wiki/Совместимость_скриптов_при_обновлении_wb-rules
И проверьте - место свободное есть?
Ну, с местом все хорошо. Кстати, до обновления выполните
dpkg -s wb-mqtt-serial |grep Version
Интересно, насколько старый стоит.
Ну и само правило выложите - глянем чем чревато обновление.