Wb-cli 1.8.5: serial wb-fw check падает с Validation failed на всех устройствах

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

Окружение

  • Контроллер: wb-2602 (wb7/bullseye, stable), SN AWRJQZPY
  • wb-cli 1.8.5
  • wb-device-manager 1.25.4
  • wb-mqtt-serial 2.224.0-wb106
  • python3-mqttrpc 1.3.5, python3-wb-common 2.2.6
  • На шине ~50 устройств WB (MR6C, MR6CU, LED, M1W2, MWAC, MAP3E, MSW v.3, MRGBW-D) на ttyRS485-1/2

Симптом

wb-cli serial wb-fw check возвращает ошибку на всех устройствах:

RPC call to 'wb-device-manager/fw-update/GetFirmwareInfo' failed:
Server error [-32000]: Validation failed.

Причина

wb-cli (lib/serial_conf.py, iter_devices) берёт значения из
wb-mqtt-serial.conf и передаёт в RPC GetFirmwareInfo без приведения типов:

  1. slave_id — в конфиге хранится строкой ("73"), все 50 устройств.
    Схема wb-device-manager требует integer:
    <root>[slave_id] Value type not permitted by 'type' constraint

  2. baud_rate — у 30 устройств device-level baud_rate записан как 1152
    (кодом, скорость/100). Схема ждёт реальную скорость из enum:
    <root>[baud_rate] Failed to match against any enum values

Воспроизведение (прямой RPC, без wb-cli)

A) slave_id строкой + baud 1152 — как шлёт wb-cli → Validation failed:

mqtt-rpc-client -d wb-device-manager -s fw-update -m GetFirmwareInfo \
  -a '{"slave_id":"73","port":{"path":"/dev/ttyRS485-1","baud_rate":1152,"parity":"N","data_bits":8,"stop_bits":2}}'

B) slave_id числом + baud 115200 → отрабатывает корректно:

mqtt-rpc-client -d wb-device-manager -s fw-update -m GetFirmwareInfo \
  -a '{"slave_id":73,"port":{"path":"/dev/ttyRS485-1","baud_rate":115200,"parity":"N","data_bits":8,"stop_bits":2}}'
-> {"fw":"1.20.4","bootloader":"1.4.7","model":"WBMR6C", ...}

Вывод: сам wb-device-manager исправен, баг в wb-cli — не нормализует
slave_id и baud_rate перед RPC. В ветке main репозитория serial_conf.py тот же.

Диагностический архив прилагаю.

Добрый день!

Благодарю, что сообщили. Постараемся воспроизвести и в течение дня дать ответ.

Добрый день.
Похоже - воспроизводится.
Описал отдал разработчикам.

Исправлено, доступно в testing.