Ошибки wb-device-manager

Здравствуйте!
Возникла аналогичная проблема с последним релизом testing от 10.11.
почемуто в журнале ошибки ‘stop_bits’: 2, а в настройках шин выставлено значение 1…

10-11-2025 23:21:51.231 File /usr/lib/python3.9/asyncio/tasks.py, line 492, in wait_for
10-11-2025 23:21:51.231 Traceback (most recent call last):
10-11-2025 23:21:51.231 [ERROR] Unhandled exception during Fast Modbus search /dev/ttyRS485-1 2400 8O2: rpc call to wb-mqtt-serial/port/Scan → 10.00s: no answer [-33000]: rpc call params: {‘total_timeout’: 10000, ‘command’: 96, ‘mode’: ‘start’, ‘path’: ‘/dev/ttyRS485-1’, ‘baud_rate’: 2400, ‘parity’: ‘O’, ‘data_bits’: 8, ‘stop_bits’: 2}
10-11-2025 23:21:41.231 wb.device_manager.mqtt_rpc.MQTTRPCCallTimeoutError: rpc call to wb-mqtt-serial/port/Scan → 10.00s: no answer [-33000]: rpc call params: {‘total_timeout’: 10000, ‘command’: 96, ‘mode’: ‘start’, ‘path’: ‘/dev/ttyRS485-2’, ‘baud_rate’: 1200, ‘parity’: ‘O’, ‘data_bits’: 8, ‘stop_bits’: 2}
10-11-2025 23:21:41.231 raise MQTTRPCCallTimeoutError(
10-11-2025 23:21:41.231 File /usr/lib/python3/dist-packages/wb/device_manager/mqtt_rpc.py, line 78, in make_rpc_call
10-11-2025 23:21:41.231 return await rpc_client.make_rpc_call(
10-11-2025 23:21:41.231 File /usr/lib/python3/dist-packages/wb/device_manager/fast_modbus_scan.py, line 53, in port_scan
10-11-2025 23:21:41.231 res = await port_scan(self._rpc_client, port_config, fast_modbus_command, protocol, start)
10-11-2025 23:21:41.231 File /usr/lib/python3/dist-packages/wb/device_manager/fast_modbus_scan.py, line 83, in _do_scan
10-11-2025 23:21:41.231 Traceback (most recent call last):
10-11-2025 23:21:41.231 The above exception was the direct cause of the following exception:
10-11-2025 23:21:41.231 asyncio.exceptions.TimeoutError
10-11-2025 23:21:41.231 raise exceptions.TimeoutError() from exc
10-11-2025 23:21:41.231 File /usr/lib/python3.9/asyncio/tasks.py, line 494, in wait_for
10-11-2025 23:21:41.231 response = await asyncio.wait_for(response_f, timeout)
10-11-2025 23:21:41.231 File /usr/lib/python3/dist-packages/wb/device_manager/mqtt_rpc.py, line 73, in make_rpc_call

Здравствуйте!
Согласно правилам портала перенёс ваш вопрос в отдельную тему.
Так будет удобнее отслеживать обсуждение и быстрее получить помощь.

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

приложен диагностический архив, доступен только сотрудникам поддержки
(1,1 МБ)

Вижу многочисленные ошибки:

device modbus:124: Serial protocol error: malformed response: invalid crc

Предлагаю вам использовать параметры порта по умолчанию и убрать из конфига “guard_interval_us” : 0 и “response_timeout_ms” : 500, так как эти параметры установлены по умолчанию и не имеют смысла.

Так же рекомендую проверить шину на предмет отсутствия помех, а так же её заземление.

Убрал эти параметры и после перезагрузки контроллера всё заработало.
Спасибо.

ps/ помех на шине не было так как вся шина 20см подключено одно реле WB-LED…

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

Вы правы, радоваться было рано(
Выяснил следующее - сканирование шин перестает работать, когда я включаю MODBUS TCP с DALI контроллером ECODIM GW2. Причем, управление устройствами DALI при этом в норме.
Как только выключаю MODBUS TCP порт и перезагружаю контроллер wb - сканирование работает в норме.

приложен диагностический архив, доступен только сотрудникам поддержки
(1,3 МБ)

и в тестовом релизе исчезли checkbox для управления параметрами RS485

на другом контроллере со стабильной версией они есть

Добрый день!

Получается, что каким-то образом работа шлюза ECODIM GW2 влияет на опрос в шине RS485-1.
Если отключить MODBUS TCP порт, то и ошибки invalid crc исчезают?
Если попробовать добавить терминатор на конце линии с где WB-LED ,ситуация улучшится?

Давайте попробуем еще отключить на WB-LED Быстрый Modbus и запустим медленное сканирование.

При этом увеличьте response_timeout_ms для RS485-1 до 700–1000 мс и добавьте guard_interval_us: 4000

Добрый день!
Я вообще удалил из конфигурации WB-Led реле и на контроллере оба гнезда RS485 оставил свободными.
В конфигурации остался один прописанный порт MODBUS TCP c Dali контроллером.
И как только его включаю, сканирование виснет.
Чтобы не перезапускать WB контроллер, рестартую два сервиса wb-mqtt-serial и wb-device-manager выключаю MODBUS TCP и сканирование работает снова. Как то так…

Видимо дело в том, что сканирование шины работает только для устройств с поддержкой быстрого Modbus, т.е. для устройств WB. Modbus-адрес устройства Wiren Board — Wiren Board

Вероятно так и есть. при добавлении устройств надо на время отлючать TCP и после включать снова. Либо ненавязчиво предложить разработчикам обработать данное исключение))) крашится сервис wb-mqtt-service , потомучто он оказывается не запущен после данной ошибки

Нужно понимать как воспроизводить проблему.
Могу вас попробовать подключить шлюз не через TCP, а к порту RS485-1 и проверить?

Кажется у меня такая же песня. У меня 2 шлюза. И периодически отваливается в обсуждаемую ошибку. Пока шлюзов не было все искалось и не падало.

Подключил DALI шлюз к RS485-1. Проблем не наблюдается.

И он автоматически находится на этом порту?

Еще сообщите, пожалуйста, какое устройство у вас в качестве преобразователя интерфейсов?

Нет, Dali контроллер прописываю как устройство вручную на созданном Modbas TCP порту.
У меня контроллер WB подключен патчкордом к роутеру, соответственно и Dali контроллер тоже подключен к роутеру и они находятся в одном адресном IP пространстве. Вот и вся конфигурация…
На самом деле сканирование виснет даже без привязки и подключении DALI(очевидно дело не в нем).
Просто пропишите Modbas TCP c любым IP, включите его и сканирование виснет…
Если выключить данный порт, то все работает.

У меня открыт порт Modbus TCP с подключённым устройством, и при этом поиск по остальным портам стабильно работает — как на тестовом стенде, так и на разных версиях контроллеров.
Возможно, я не до конца понимаю, как корректно воспроизвести эту проблему.
Могли бы вы предоставить доступ к вашему контроллеру?

Пригласите пожалуйста пользователя support@wirenboard.com в организацию на облачном сервисе.
Для этого в настройках организации нажмите кнопку “Пригласить”


И укажите почтовый адрес:

После этого поддержка получит доступ к вашему контроллеру для диагностики.
Не забудьте удалить потом доступ.

сделал

1 лайк