Mbgate слетают настройки

Wirenboard мониторит показания счетчиков. Настроили публикацию данных счетчиков в Модбас через wb-mqtt-mbgate. Примерно через 2 недели внезапно изменились наименование одного из устройств с wb-modbus-5-0 на wb-modbus-4-0. Это название было присвоено автоматически при добавлении устройства Модбас. Стоит ли говорить, что публикация на модбасе перестала работать, пока не переименовали. Далее. Еще примерно через месяц в один день мы обанружили, что данные ни одного из счетчиков не публикуются в Модбас. Посмотрев конфиг /etc/wb-mqtt-mbgate.conf мы увидели, что все настройки нами внесенные “слетели”. Такое впечателение, что конфиг был самостоятельно сгенерен. Что за “чудеса” происходят? Как отключить все ваши автоматические именования устройств и генерацию конфига? Что могло посодействовать этому? Скажу сразу в этих случаях НИКАКИХ работ (изменеие настроек и пр) с WB не производилось. Работал в штатном режиме.

Здравствуйте!
Для диагностики вашей проблемы нужно больше информации. Опишите, пожалуйста, проблему подробнее. Примерная информация указана в приветственном сообщении: Добро пожаловать на портал техподдержки Wiren Board!

Эта проблема произошла в первый раз или происходит периодически? Какая аппаратная версия контроллера у вас? Какой релиз ПО установлен? Какие еще устройства подключены?

Пришлите, пожалуйста, архив с диагностической информацией контроллера
https://wirenboard.com/wiki/Wiren_Board_Web_Interface#Settings_->_System_(Настройки_->_Системные)

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

Эта проблема дважды произошла. Описал в предыдущем сообщении. Перед этими случаями была замечена следующая особенность. Если задать в конфиге регистры с пересекающейся адресацией (т.е. сделать 2 регистра с одинаковыми адресами), то ВСЕ адреса регистров, которые были введены вручную генерятся как будто поставили галку “Обновить адреса устройств”. И приходится выполнять всю работу заново. Я не знаю, является ли это особенностью (признаюсь, весьма противной) или неисправностью.

Wiren Board 6.8.2 (s/n AGMDCKYH), release wb-2201 (as stable)

Подключены к двум портам RS-485 счетчики. Также происходит опрос нескольких устройств по Modbus TCP, которые подключены по Wifi (WB настроен как точка доступа).

Все верно. НИЧЕГО не делалось в момент наступления неисправности. Но, возможно контроллер перезагружался. Т.к. судя по дате когда был запущен демон wb-mqtt-mbgate - стоит как раз дата, когда все сломалось. Предполагаю, что в этот момент контроллер перезаггрузился либо был отключен из-за отключения электричества.

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

То есть для корректной работы нужно подключить все необходимые устройства, и больше их не подключать (не отключать). Перезапустить сервис wb-mqtt-mbgate (перезагрузить контроллер). Сконфигурировать адреса и регистры mbgate, сохранить конфигурацию. На всякий случай перезагрузить контроллер еще раз и убедиться, что адреса не изменились.

Постараюсь воспроизвести проблему.

Вы неправильно меня поняли. До отключения питания (если таковое было воббще) НИКАКИХ ИЗМЕНЕНИЙ КОНФИГУРАЦИИ НЕБЫЛО. Даже если они были, это не повод полностью менять карту регистров, согласитесь? Еще раз повторюсь, полностью была перегенерена карта регистров. Если потребуется, повторюсь еще раз. Это выходит за грань логики. Такого не должно быть при любом раскладе.

1 лайк

Прислать архив не представляется возможным. Т.к. полчаса наблюдаем крутящееся колесико. Это уже вторая попытка. Первую ждали минут 10.

Не получилось точно воспроизвести описанную проблему. Сейчас есть такая особенность у сервиса: если вручную указать пересекающиеся адреса, то сервис не может запуститься. Нужно либо исправлять конфигурацию, либо устанавливать галочку “Устранить наложение адресов”.

Если можно, опишите, пожалуйста, более детально по шагам, как воспроизвести указанное поведение.

Проверьте, работает ли сервис wb-diag-collect командой:

systemctl status wb-diag-collect

Да, сервис был остановлен. Он что по умолчанию не запускается?
diag_output_AGMDCKYH_2022-04-19-09.19.06.zip (103.0 КБ)

Теперь у нас не получается тоже воспроизвести проблему. Но это не означает, что ее нет. Поэтому просьба, расскажите, как отключить ваш скрипт, который генерит адреса регистров. А также тот, который генерит имена устройств, например wb-modbus-4-0. Выше я описал, что это срипт также криво работает. У нас внезапно переименовалось устройство с wb-modbus-5-0 на wb-modbus-4-0. Стоить ли говорить, что мы также “потеряли” с мониторинга это устройство?

Да, мы обсуждаем этот случай и скорее всего откажемся от автоматической генерации конфига.

Вы откажитесь, а как нам сейчас от него отказаться? ))) И как отключить генератор имен устройств?

Позвал компетентного специалиста.

Выложите сюда ваш конфиг mbgate, проверим на нем.
В файле
/lib/systemd/system/wb-mqtt-mbgate.service
Уберите совсем строчку
ExecStartPre=/usr/bin/wb-mqtt-mbgate-confgen -c /etc/wb-mqtt-mbgate.conf
чтобы отключить перегенерацию.

wb-mqtt-mbgate.conf (95.2 КБ)

А как отключить генератор имен устройств?

Вот так:

Это как я понял генератор в сервисе mbgate. А при добавлении устройства в wb-mqtt-serial генерится имя устройства. Что за скрипт отвечает за генерацию таких имен? И как его отключить? Например, вручную могли бы генерить имя через wb-rules. Выглядит костылем, что я не знаю что еще сделать. Надежность важнее.

Зачем? Можно ж просто задать сразу при добавлении:

Вы отключите это в новом релизе? Как нам поступать в следующих релизах, отключать вручную?

Да, скорее всего отключим.