После обновления модулей - 3 перестали работать

Здравствуйте. Вчера при попытке обновления прошивки модулей (порядка 40 шт) командой wb-mcu-fw-updater update-all
Получил такие ошибки
(Прядок снизу вверх)

04-03-2024 10:44:29.876 [wb-cloud-agent-telegraf] 2024-03-04T07:44:29Z E! [agent] Error writing to outputs.influxdb_v2::influx-wbc: failed to send metrics to any configured server(s)
04-03-2024 10:44:29.873 [wb-cloud-agent-telegraf] 2024-03-04T07:44:29Z E! [outputs.influxdb_v2::influx-wbc] When writing to [https://influx.wirenboard.cloud]: 500 Internal Server Error: internal error: unexpected error writing points to database: opening shard previously failed with: [shard 47985] manifest write failed for “/var/lib/influxdb/engine/data/f0601a6c40d4c586/autogen/47985/index/0/MANIFEST”: open /var/lib/influxdb/engine/data/f0601a6c40d4c586/autogen/47985/index/0/MANIFEST2492023245: too many open files
04-03-2024 10:44:02.471 [session-c3.scope] Bootloader update (v1.2.2 → v1.4.0) for mrwl3G /dev/ttyRS485-1:37 is available! (bootloader updates are highly recommended to install) Do a bootloader update? [Y/N]
04-03-2024 10:44:01.710 [session-c3.scope] GET: http://fw-releases.wirenboard.com/bootloader/by-signature/mrwl3G/main/latest.txt
04-03-2024 10:44:01.710 [session-c3.scope] GET: http://fw-releases.wirenboard.com/bootloader/by-signature/mrwl3G/main/latest.txt
04-03-2024 10:44:01.397 [session-c3.scope] Flashing approved for mrwl3G /dev/ttyRS485-1:37
04-03-2024 10:44:01.295 [session-c3.scope] Flashing firmware to WB-MR3 (37, /dev/ttyRS485-1)

В результате 3 модуля, включая этот, 37 перестали работать. Поведение модулей в видео.
Recover не помогает, так как модуль постоянно перезагружается.
Питание на объекте хорошее. проблем во время прошивки не было.

Контроллер:
HW Revision
7.4.2

Serial Number

AOO5F5MZ

Batch No

7.4.2A/2COM 1D/G-2GC
Прошивка 202402260207_testing
diag_output_AOO5F5MZ_2024-03-05-06.03.56.zip (194,1 КБ)

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

Модули - трупы? или можно восстановить?

Вероятно я не полностью лог выложил. вот продолжение:

04-03-2024 11:12:24.608 [wb-mqtt-serial] INFO: [mqtt] subscription succeeded (message id 60997)
04-03-2024 11:12:24.607 [wb-mqtt-serial] INFO: [mqtt] subscription succeeded (message id 60996)
04-03-2024 11:12:24.599 [wb-mqtt-serial] INFO: [mqtt] connection estabilished with code “0”
04-03-2024 11:12:24.599 [mosquitto] 1709539944: New client connected from /var/run/mosquitto/mosquitto.sock:0 as wb-modbus (p2, c0, k60).
04-03-2024 11:12:24.596 [mosquitto] 1709539944: New connection from /var/run/mosquitto/mosquitto.sock:0 on port 0.
04-03-2024 11:12:24.533 [wb-mqtt-serial] WARNING: [serial device] device modbus:37 is disconnected
04-03-2024 11:12:24.532 [wb-mqtt-serial] WARNING: [modbus] failed to read 2 input(s) @ 270 of device modbus:37: Serial protocol error: request timed out
04-03-2024 11:12:24.483 [wb-mqtt-serial] WARNING: [modbus] failed to read 8 input(s) @ 32 of device modbus:37: Serial protocol error: request timed out
04-03-2024 11:12:24.061 [wb-mqtt-serial] WARNING: [serial device] device modbus:28 is disconnected
04-03-2024 11:12:24.061 [wb-mqtt-serial] WARNING: [modbus] failed to read 2 input(s) @ 270 of device modbus:28: Serial protocol error: request timed out
04-03-2024 11:12:24.012 [wb-mqtt-serial] WARNING: [modbus] failed to read 8 input(s) @ 32 of device modbus:28: Serial protocol error: request timed out
04-03-2024 11:12:23.600 [wb-mqtt-serial] WARNING: [serial device] device modbus:17 is disconnected
04-03-2024 11:12:23.595 [wb-mqtt-serial] ERROR: [serial client] Serial protocol error: /dev/ttyRS485-2, can’t get termios attributes Input/output error (5)
04-03-2024 11:12:23.595 [wb-mqtt-serial] WARNING: [mqtt] connection lost
04-03-2024 11:12:23.595 [wb-mqtt-serial] ERROR: [signal handling] sigwaitinfo error: Interrupted system call
04-03-2024 11:12:23.467 [session-c3.scope] Will run: fuser -k -CONT /dev/ttyRS485-1 /dev/ttyRS485-2
04-03-2024 11:12:23.466 [session-c3.scope] Has saved db to /var/lib/wb-mcu-fw-updater/devices.jsondb
04-03-2024 11:12:23.458 [session-c3.scope] Unhandled exception! Traceback (most recent call last): File “/usr/bin/wb-mcu-fw-updater”, line 525, in args.func(args) File “/usr/bin/wb-mcu-fw-updater”, line 205, in update_all update_monitor._update_all( File “/usr/lib/python3/dist-packages/wb_mcu_fw_updater/update_monitor.py”, line 783, in _update_all _do_flash(device_info.modbus_connection, downloaded_wbfw, False, force=force) File “/usr/lib/python3/dist-packages/wb_mcu_fw_updater/update_monitor.py”, line 542, in _do_flash if is_bl_update_required(modbus_connection, force): File “/usr/lib/python3/dist-packages/wb_mcu_fw_updater/update_monitor.py”, line 530, in is_bl_update_required return ask_user(suggestion_str + " Do a bootloader update?", force) File “/usr/lib/python3/dist-packages/wb_mcu_fw_updater/update_monitor.py”, line 74, in ask_user ret = force_yes or six.moves.input().upper().startswith(“Y”) UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xd0 in position 0: invalid continuation byte

Добрый день.
Пришлите серийные номера проблемных модулей. Пришлите фото подключения данных устройств.
Оставьте только питание на модулях (отключите физически шину данных) и опишите поведение статусного светодиода трех рассматриваемых устройств.
Также при подключенной шине (обязательно подключите отдельной шиной) покажите результат чтения сигнатуры устройств.

Модули забрал из щита, собрал на стенде только проблемные. Фото прилагаю

Серийники:
MRWL3 126314, 126284,
WBLED 136869
Если оставить только питание - то в WB LED S просто горит. Реле продолжают вести себя как при подключенной шине

Чтение сигнатур выдаёт по трём устройствам ERROR Connection reset by peer: read

По порядку ответы
root@wirenboard-AOO5F5MZ:~# modbus_client --debug -mrtu -b9600 -pnone -s2 /dev/ttyRS485-1 -a17 -t0x03 -r290 -c12
Opening /dev/ttyRS485-1 at 9600 bauds (N, 8, 2)
[11][03][01][22][00][0C][E6][A9]
Waiting for a confirmation…
ERROR Connection reset by peer: read
ERROR occured!
root@wirenboard-AOO5F5MZ:~# modbus_client --debug -mrtu -b9600 -pnone -s2 /dev/ttyRS485-1 -a28 -t0x03 -r290 -c12
Opening /dev/ttyRS485-1 at 9600 bauds (N, 8, 2)
[1C][03][01][22][00][0C][E7][B4]
Waiting for a confirmation…
ERROR Resource temporarily unavailable: read
<11><06><00>ERROR occured!
root@wirenboard-AOO5F5MZ:~# modbus_client --debug -mrtu -b9600 -pnone -s2 /dev/ttyRS485-1 -a37 -t0x03 -r290 -c12
Opening /dev/ttyRS485-1 at 9600 bauds (N, 8, 2)
[25][03][01][22][00][0C][E2][DD]
Waiting for a confirmation…
ERROR Resource temporarily unavailable: read
ERROR occured!

Могут ли ошибки обновления быть связаны с тем, что перед прошивкой, в этот контроллер я добавлял устройства нажатием кнопки “добавить в конфигурацию” в интерфейсе сканирования устройств?
При этом они были ранее настроены другим контроллером на скорость 115200, а при добавлении их кнопкой - в конфигурационный файл нового контроллера данные о скорости уже не попадают.

Ещё замечание: иногда у меня получается получить ответ от WBLED:

root@wirenboard-AOO5F5MZ:~# modbus_client --debug -mrtu -b115200 -pnone -s2 /dev/ttyRS485-1 -a17 -t0x03 -r290 -c12
Opening /dev/ttyRS485-1 at 115200 bauds (N, 8, 2)
[11][03][01][22][00][0C][E6][A9]
Waiting for a confirmation…
<11><03><18><00><6C><00><65><00><64><00><47><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><0A>
SUCCESS: read 12 of elements:
Data: 0x006c 0x0065 0x0064 0x0047 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000

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

Ещё ремарка. я в момент прошивки точно видел такие-же сообщение , как в запросе тут:

Прямо один в один.
И могу предположить что 3 устройства - это потому что я трижды пробовал обновить, думая что я что-то делаю не так.
Пытаюсь их найти в логах - никак не могу

В той сборке, что у вас сейчас попробуйте восстановить:

wb-mcu-fw-updater recover-all

Покажите результат.

Также еще раз можно диагностический прислать, снятый с той конфигурации, что сейчас у вас.

root@wirenboard-AOO5F5MZ:~# wb-mcu-fw-updater recover-all
2024-03-06 14:20:47,064 Will probe all devices on enabled serial ports of /etc/wb-mqtt-serial.conf:
2024-03-06 14:20:47,067 Probing WB-MR3 (port: /dev/ttyRS485-1, slaveid: 37, uart_params: 115200N2, response_timeout: 0.50)…
2024-03-06 14:21:09,733 Probing WB-MR3 (port: /dev/ttyRS485-1, slaveid: 28, uart_params: 115200N2, response_timeout: 0.50)…
2024-03-06 14:21:32,782 Probing WB-LED (port: /dev/ttyRS485-1, slaveid: 17, uart_params: 115200N2, response_timeout: 0.50)…
2024-03-06 14:21:46,697 Known fw_signature: WB-MR3 (28, /dev/ttyRS485-1)
2024-03-06 14:21:46,698 Flashing the most recent stable firmware:
2024-03-06 14:22:10,180 Flashing /var/lib/wb-mcu-fw-updater/mrwl3G__1.21.1_master_ebe20ba.wbfw (210 data chunks)
100%|################################################################################################################################################################################################################################|210/210
2024-03-06 14:22:56,806 Done
2024-03-06 14:22:56,812 1 recovered, 0 was already working, 0 not recovered and 2 not answered to recover cmd.

Один вроде как восстановил, но его поведение не изменилось.
Попробовал ещё раз, он восстановил уже 2. Но поведение опять же не поменялось

root@wirenboard-AOO5F5MZ:~# root@wirenboard-AOO5F5MZ:~# wb-mcu-fw-updater recove r-all
2024-03-06 14:20:47,064 Will probe all devices on enabled serial ports of /etc/w b-mqtt-serial.conf:
2024-03-06 14:20:47,067 Probing WB-MR3 (port: /dev/ttyRS485-1, slaveid: 37, uart _params: 115200N2, response_timeout: 0.50)…
2024-03-06 14:21:09,733 Probing WB-MR3 (port: /dev/ttyRS485-1, slaveid: 28, uart _params: 115200N2, response_timeout: 0.50)…
2024-03-06 14:21:32,782 Probing WB-LED (port: /dev/ttyRS485-1, slaveid: 17, ^C
root@wirenboard-AOO5F5MZ:~# wb-mcu-fw-updater recover-all
2024-03-06 14:26:59,979 Will probe all devices on enabled serial ports of /etc/wb-mqtt-serial.conf:
2024-03-06 14:26:59,982 Probing WB-LED (port: /dev/ttyRS485-1, slaveid: 17, uart_params: 115200N2, response_timeout: 0.50)…
2024-03-06 14:27:13,814 Probing WB-MR3 (port: /dev/ttyRS485-1, slaveid: 28, uart_params: 115200N2, response_timeout: 0.50)…
2024-03-06 14:27:36,790 Probing WB-MR3 (port: /dev/ttyRS485-1, slaveid: 37, uart_params: 115200N2, response_timeout: 0.50)…
2024-03-06 14:28:01,059 Known fw_signature: WB-MR3 (28, /dev/ttyRS485-1)
2024-03-06 14:28:01,669 Known fw_signature: WB-MR3 (37, /dev/ttyRS485-1)
2024-03-06 14:28:01,670 Flashing the most recent stable firmware:
2024-03-06 14:28:25,171 Flashing /var/lib/wb-mcu-fw-updater/mrwl3G__1.21.1_master_ebe20ba.wbfw (210 data chunks)
100%|################################################################################################################################################################################################################################|210/210
2024-03-06 14:29:35,282 Flashing /var/lib/wb-mcu-fw-updater/mrwl3G__1.21.1_master_ebe20ba.wbfw (210 data chunks)
100%|################################################################################################################################################################################################################################|210/210
2024-03-06 14:30:21,897 Done
2024-03-06 14:30:21,900 2 recovered, 0 was already working, 0 not recovered and 1 not answered to recover cmd.
root@wirenboard-AOO5F5MZ:~#

Один вроде как восстановил, но его поведение не изменилось.
Попробовал ещё раз, он восстановил уже 2. Но поведение опять же не поменялось

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

А вот вывод если я оставляю на шине только wb led

root@wirenboard-AOO5F5MZ:~# wb-mcu-fw-updater recover-all
2024-03-06 14:47:26,505 Will probe all devices on enabled serial ports of /etc/w b-mqtt-serial.conf:
2024-03-06 14:47:26,510 Probing WB-LED (port: /dev/ttyRS485-1, slaveid: 17, uart params: 115200N2, response_timeout: 0.50)…
2024-03-06 14:47:47,094 Unhandled exception!
Traceback (most recent call last):
File “/usr/lib/python3/dist-packages/wb_mcu_fw_updater/update_monitor.py”, lin e 690, in probe_all_devices
modbus_connection=get_correct_modbus_connection(
File “/usr/lib/python3/dist-packages/wb_mcu_fw_updater/update_monitor.py”, lin e 268, in get_correct_modbus_connection
check_device_is_a_wb_one(modbus_connection)
File “/usr/lib/python3/dist-packages/wb_mcu_fw_updater/update_monitor.py”, lin e 220, in check_device_is_a_wb_one
sn = modbus_connection.get_serial_number() # Will raise NoResponseError, if disconnected
File “/usr/lib/python3/dist-packages/wb_modbus/bindings.py”, line 628, in get
serial_number
return self.read_u32_big_endian(self.COMMON_REGS_MAP[“serial_number”])
File “/usr/lib/python3/dist-packages/wb_modbus/bindings.py”, line 42, in wrapp er
return f(self, *args, **kwargs)
File “/usr/lib/python3/dist-packages/wb_modbus/bindings.py”, line 69, in wrapp er
raise thrown_exc
File “/usr/lib/python3/dist-packages/wb_modbus/bindings.py”, line 63, in wrapp er
return f(*args, **kwargs)
File “/usr/lib/python3/dist-packages/wb_modbus/bindings.py”, line 347, in read _u32_big_endian
return self.device.read_long(addr, 3, signed=False, byteorder=order)
File “/usr/lib/python3/dist-packages/wb_modbus/minimalmodbus.py”, line 548, in read_long
return self._generic_command(
File “/usr/lib/python3/dist-packages/wb_modbus/minimalmodbus.py”, line 1139, i n _generic_command
payload_from_slave = self._perform_command(functioncode, payload_to_slave)
File “/usr/lib/python3/dist-packages/wb_modbus/minimalmodbus.py”, line 1203, i n _perform_command
response = self._communicate(request, number_of_bytes_to_read)
File “/usr/lib/python3/dist-packages/wb_modbus/instruments.py”, line 161, in _ communicate
self._write_to_bus(request)
File “/usr/lib/python3/dist-packages/wb_modbus/instruments.py”, line 251, in _ write_to_bus
raise minimalmodbus.NoResponseError(“No communication with the instrument (n o answer)”)
wb_modbus.minimalmodbus.NoResponseError: No communication with the instrument (n o answer)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File “/usr/lib/python3/dist-packages/wb_modbus/bindings.py”, line 869, in is_i n_bootloader
probe_func()
File “/usr/lib/python3/dist-packages/wb_modbus/bindings.py”, line 638, in get
slave_addr
return self.read_u16(self.COMMON_REGS_MAP[“slaveid”])
File “/usr/lib/python3/dist-packages/wb_modbus/bindings.py”, line 42, in wrapp er
return f(self, *args, **kwargs)
File “/usr/lib/python3/dist-packages/wb_modbus/bindings.py”, line 69, in wrapp er
raise thrown_exc
File “/usr/lib/python3/dist-packages/wb_modbus/bindings.py”, line 63, in wrapp er
return f(*args, **kwargs)
File “/usr/lib/python3/dist-packages/wb_modbus/bindings.py”, line 235, in read _u16
return self.device.read_register(addr, 0, 3, signed=False)
File “/usr/lib/python3/dist-packages/wb_modbus/minimalmodbus.py”, line 437, in read_register
return self._generic_command(
File “/usr/lib/python3/dist-packages/wb_modbus/minimalmodbus.py”, line 1139, i n _generic_command
payload_from_slave = self._perform_command(functioncode, payload_to_slave)
File “/usr/lib/python3/dist-packages/wb_modbus/minimalmodbus.py”, line 1203, i n _perform_command
response = self._communicate(request, number_of_bytes_to_read)
File “/usr/lib/python3/dist-packages/wb_modbus/instruments.py”, line 161, in _ communicate
self._write_to_bus(request)
File “/usr/lib/python3/dist-packages/wb_modbus/instruments.py”, line 251, in _ write_to_bus
raise minimalmodbus.NoResponseError(“No communication with the instrument (n o answer)”)
wb_modbus.minimalmodbus.NoResponseError: No communication with the instrument (n o answer)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File “/usr/bin/wb-mcu-fw-updater”, line 525, in
args.func(args)
File “/usr/bin/wb-mcu-fw-updater”, line 221, in recover_all
update_monitor._recover_all(
File “/usr/lib/python3/dist-packages/wb_mcu_fw_updater/update_monitor.py”, lin e 899, in _recover_all
probing_result = probe_all_devices(
File “/usr/lib/python3/dist-packages/wb_mcu_fw_updater/update_monitor.py”, lin e 709, in probe_all_devices
if device_info.modbus_connection.is_in_bootloader():
File “/usr/lib/python3/dist-packages/wb_modbus/bindings.py”, line 872, in is_i n_bootloader
return self._has_bootloader_answered() # Is device in bootloader or disconn ected
File “/usr/lib/python3/dist-packages/wb_modbus/bindings.py”, line 852, in _has _bootloader_answered
self.probe_bootloader(_probe_func)
File “/usr/lib/python3/dist-packages/wb_modbus/bindings.py”, line 835, in prob e_bootloader
_probe_func(0x1000, [0] * 16) # A dummy payload
File “/usr/lib/python3/dist-packages/wb_modbus/bindings.py”, line 42, in wrapp er
return f(self, *args, **kwargs)
File “/usr/lib/python3/dist-packages/wb_modbus/bindings.py”, line 63, in wrapp er
return f(*args, **kwargs)
File “/usr/lib/python3/dist-packages/wb_modbus/bindings.py”, line 285, in writ e_u16_regs
self.device.write_registers(beginning, values)
File “/usr/lib/python3/dist-packages/wb_modbus/minimalmodbus.py”, line 885, in write_registers
self._generic_command(
File “/usr/lib/python3/dist-packages/wb_modbus/minimalmodbus.py”, line 1139, i n _generic_command
payload_from_slave = self._perform_command(functioncode, payload_to_slave)
File “/usr/lib/python3/dist-packages/wb_modbus/minimalmodbus.py”, line 1203, i n _perform_command
response = self._communicate(request, number_of_bytes_to_read)
File “/usr/lib/python3/dist-packages/wb_modbus/instruments.py”, line 185, in _ communicate
answer = self._read_from_bus(number_of_bytes_to_read, minimum_silent_period)
File “/usr/lib/python3/dist-packages/wb_modbus/instruments.py”, line 263, in _ read_from_bus
ret = super(StopbitsTolerantInstrument, self)._read_from_bus(
File “/usr/lib/python3/dist-packages/wb_modbus/instruments.py”, line 47, in _r ead_from_bus
answer = self.serial.read(number_of_bytes_to_read)
File “/usr/lib/python3/dist-packages/serial/serialposix.py”, line 577, in read
raise SerialException(
serial.serialutil.SerialException: device reports readiness to read but returned no data (device disconnected or multiple access on port?)
root@wirenboard-AOO5F5MZ:~#

Давайте по порядку попробуем решить проблему. Я пробовал обновить прошивки на тестинге - никаких проблем не обнаружено.
Просьба присылать логи или файлом или как команду.

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

modbus_client --debug -mrtu -b115200 -pnone -s2 /dev/ttyRS485-1 -a17 -t0x03 -r290 -c12

покажите результат.

Если читается без проблем, то снова пробуйте:

wb-mcu-fw-updater recover-all

покажите результат.

  1. Накинул заведомо исправный WB-MRC6. Сканируется, находится, добавляется, управляется. Логи чистые. Скидываю 10 минут логов. название соответствует


    10 минут с WB-MRC6.txt (43,9 КБ)

  2. Заменяю на этом же клемнике на WB led. Сканируется. находится. добавляется. даже меняются параметры. в устройствах то красный то чёрный (можно даже успеть поуправлять). Перед прошивкой выставил скорость 9600 на всякий случай и в wb led и на порту.


Логи полны предупреждений. Скидываю. Названия соответствуют.
пара минут с WB ledtxt.txt (19,5 КБ)

Результат прошивки тоже скидывай файлом
Фото подключения прилагаю


Результат команды recover all на wb led.txt (6,8 КБ)

Поведение когда wb-led на одной рейке

Да. Странное поведение статусного светодиода. Пришлите серийные номера всех трех проблемных модулей.

Серийники:
MRWL3 126314, 126284,
WBLED 136869
Это те что снял
Есть ещё один mr3. Я его оставил в щите. он мигает постоянно как будто в режиме загрузчика. При этом управляется и видится контроллером. Поэтому не стал про него писать

Вижу, что эти три модуля запускаются и через 2-3 с перезагружаются.

Давайте мы бесплатно поменяем вам оборудование. Курьер привезёт новое оборудование и заберёт старое:

  • WB-MRWL3 - 2 шт.
  • WB LED - 1 шт.

Для возврата напишите, пожалуйста, письмо на info@wirenboard.com.

В письме укажите:

  1. ссылку на эту тему,
  2. серийный номер устройства, если есть,
  3. ваш действующий телефон, адрес доставки, ФИО получателя.

Спасибо.

Второй вопрос: как поступать с прошивкой следующих модулей? Те же могут умереть и остальные при перепрошивке

Добрый день. Не должно быть такого. Я пробовал воспроизвести - не воспроизвелось.