Завис wb-mqtt-serial

Добрый день! Сегодня заметили, что завис wb-mqtt-serial. Причем, напряжение на ИК в топики приходило, а данные с map12, счетчика импульсов и все другие данные - нет. Ошибок в топиках небыло. После перезапуска wb-mqtt-serial обновление данных пошло в штатном режиме.

На всякий случай обновил wb-mqtt-serial:

Unpacking wb-mqtt-serial (1.57.0) over (1.51.0)

Кто-нибудь сталкивался с похожей проблемой?

Мы пару раз получали подобные сообщения от клиентов, но воспроизвести ни разу не удалось. Будет здорово, если вы с этим поможете.

  1. Не могли бы вы прислать конфиг-файл? Сюда или на support@contactless.ru, как удобнее.
  2. ИК (которые работали) и MAP12 (которые нет) на одном порту RS-485 были или на разных?

Шины разные. Конфиг на почту сейчас отправлю.

Когда я возился с подключением и настройкой USB-флэшки под логи, мне пришлось многократно перезагружать контролер. В это время обнаружил, что периодически после очередной перезагрузки контролера командой reboot - перестают меняться данные со всех датчиков на определенном порту rs485. При этом сервис wb-mqtt-serial в активном состоянии и нет никаких ошибок в логах.
У меня задействовано 2 встроенных порта rs485.

  • На одном эл. счетчик Меркурий-230
  • На другом MR6C и M1W2.
    При многократных перезагрузках чаще всего перестают меняться данные на 2 порту, но иногда и на первом.

Во время написания этого топика еще раз проверил актуальность проблемы и перезагружал контроллер. На 5 перезагрузке данные датчиков на 2 порту перестали меняться. После рестарта сервиса wb-mqtt-serial данные стали обновляться. Весь софт перед этим был обновлен.

Один раз пришлось на ходу отключать и включать обратно питание на M1W2 и также обнаружил, что данные со всех устройств на этом порту перестали меняться, пока не перезапустил wb-mqtt-serial.

1 лайк

Еще на одном объекте столкнулись с подобной проблемой. Перестали приходить температуры со второй шины (кроме одного датчика температуры). Перезапуск wb-mqtt-serial помог.

Конфиг

{
“debug”: false,
“ports”: [
{
“baud_rate”: 9600,
“data_bits”: 8,
“devices”: [
{
“device_type”: “WB-MR6C”,
“enabled”: true,
“slave_id”: “50”
},
{
“device_type”: “WB-MR6C”,
“enabled”: true,
“slave_id”: “34”
},
{
“device_type”: “WB-MR6C”,
“enabled”: true,
“slave_id”: “42”
},
{
“device_type”: “WB-MR6C”,
“enabled”: true,
“slave_id”: “54”
},
{
“device_type”: “WB-MR6C”,
“enabled”: true,
“slave_id”: “25”
},
{
“device_type”: “WB-MR6C”,
“enabled”: true,
“slave_id”: “38”
},
{
“device_type”: “WB-MR6C”,
“enabled”: true,
“slave_id”: “15”
},
{
“device_type”: “WB-MR6C”,
“enabled”: true,
“slave_id”: “24”
},
{
“device_type”: “WB-MR6C”,
“enabled”: true,
“slave_id”: “33”
},
{
“device_type”: “WB-MR6C”,
“enabled”: true,
“slave_id”: “41”
}
],
“enabled”: true,
“parity”: “N”,
“path”: “/dev/ttyRS485-1”,
“poll_interval”: 100,
“protocol”: “Modbus”,
“stop_bits”: 1
},
{
“baud_rate”: 9600,
“data_bits”: 8,
“devices”: [
{
“device_type”: “WB-M1W2”,
“enabled”: true,
“slave_id”: “135”
},
{
“device_type”: “WB-M1W2”,
“enabled”: true,
“slave_id”: “123”
},
{
“device_type”: “WB-M1W2”,
“enabled”: true,
“slave_id”: “150”
},
{
“device_type”: “WB-M1W2”,
“enabled”: true,
“slave_id”: “134”
}
],
“enabled”: true,
“parity”: “N”,
“path”: “/dev/ttyRS485-2”,
“poll_interval”: 100,
“protocol”: “Modbus”,
“stop_bits”: 1
}
]
}

Есть мнение, что wb-mqtt-serial как-то некорректно проставляет ошибки по топикам. У него свой кеш по ошибкам?

Еще на одном объекте зависло