Не обновляются периферийные устройства

Добрый день.

Проблема:

  1. зависли в загрузчике датчики msw v4
  2. не передают в спрут состояние реле mr6cu
  3. на модулях wb-led поменялись modbus адреса

Анамнез

  1. вчера проводил обновление через ssh apt update &&& apt upgrade
  2. после обновления пропали все настроенные устройства - msw, mwac, mr6cu, ecodim Dali gw, wb-led. Остались только relay&FETs.
  3. Поиском удалось найти msw и mr6cu. MWAC - добавлял в ручную после добавления появилась индикация, что требуется обновление бутлоадера и прошивок mr6cu, wb-led, msw.
  4. На вкладке «устройства» происходило мерцание - устройства появлялись и пропадали. На вкладке «правила» список правил не подгружался.
  5. через интерфейс попытался обновить бутлоадер у устройств, где это указала система - попытка обновления проходила не успешно.
  6. для восстановления устройств, как указано было в инструкции, проводил прошивку через ssh. Команда recovery не проходила, но через upgrade-bl удавалось прошить бутлоадер. В некоторых случаях со второго раза, тк первая попытка крашилась.
  7. накатив на несколько устройств новый бутлоадер «колбасня» на вкладке «устройства прекратилась».
  8. обновив 1 mr6cu и все wb-led попробовал обновить msw, но они не прошивались и зависли в статусе «в загрузчике».
  9. попробовал накатить последний стэйбл образ системы - не помогло (до этого была осенняя прошивка)

Вопрос, как поднять железки?

Здравствуйте.

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

Проверьте также качество электропитания для контроллера и периферийных устройств.

Какие либо физические манипуляции проводились? С шиной, например?

Добрый день. Архив приложил.
diag_output_AYVLJB5N_2025-03-17-08.52.37.zip (200,1 КБ)

До обновления - нет, шину физически не трогал.

Кстати, ещё пропал один wb-led, с адресом 29 - в ручную не добавляется и не находится поиском устройств.

Нужно некоторое время для анализа вашего архива. Пожалуйста, ожидайте.

Давайте поэтапно решать задачу.

Вижу одно проблемное устройство с адресом 21 - “ecodim_dali_gw2”.
Для проверки попробуйте отключить его физически из шины. Что то изменится после этого?


Прочтите (не забудьте остановить wb-mqtt-serial), пожалуйста, версию загрузчика.
Аналогично для:

Добрый день.
Исключать ecodim пока не стал, т.к.:

  1. Он стоит в щите, с коммутацией пока не хотел бы
  2. Проблема была всегда, я так понимаю это особенность работы этого шлюза, т.к. где-то тут была тема, где он так же себя вёл
  3. На работоспособность ранее это не влияло.

Логи загрузчика я считал:

Спойлер

root@wirenboard:~# systemctl stop wb-mqtt-serial
root@wirenboard:~# echo -e $(modbus_client -mrtu -pnone -s2 /dev/ttyRS485-1 -a29 -t0x03 -r330 -c8 | grep Data | sed -e ‘s/.*Data://’ -e ‘s/ 0x00/\x/g’)30 -c8 | grep Data | sed -e ‘s/.*Data://’ -e ‘s/ 0x00/\x/g’)
root@wirenboard:~# echo -e $(modbus_client -mrtu -pnone -s2 /dev/ttyRS485-2 -a46 -t0x03 -r330 -c8 | grep Data | sed -e ‘s/.*Data://’ -e ‘s/ 0x00/\x/g’)
1.4.8
root@wirenboard:~# echo -e $(modbus_client -mrtu -pnone -s2 /dev/ttyRS485-2 -a69 -t0x03 -r330 -c8 | grep Data | sed -e ‘s/.*Data://’ -e ‘s/ 0x00/\x/g’)
1.4.8
root@wirenboard:~# echo -e $(modbus_client -mrtu -pnone -s2 /dev/ttyRS485-2 -a49 -t0x03 -r330 -c8 | grep Data | sed -e ‘s/.*Data://’ -e ‘s/ 0x00/\x/g’)
1.4.8
root@wirenboard:~# echo -e $(modbus_client -mrtu -pnone -s2 /dev/ttyRS485-2 -a117 -t0x03 -r330 -c8 | grep Data | sed -e ‘s/.*Data://’ -e ‘s/ 0x00/\x/g’)
1.2.2
root@wirenboard:~# echo -e $(modbus_client -mrtu -pnone -s2 /dev/ttyRS485-1 -a129 -t0x03 -r330 -c8 | grep Data | sed -e ‘s/.*Data://’ -e ‘s/ 0x00/\x/g’)
1.4.8
root@wirenboard:~# echo -e $(modbus_client -mrtu -pnone -s2 /dev/ttyRS485-1 -a119 -t0x03 -r330 -c8 | grep Data | sed -e ‘s/.*Data://’ -e ‘s/ 0x00/\x/g’)
1.4.8
root@wirenboard:~# systemctl start wb-mqtt-serial

  • 29 - это пропавший с радаров wb-led
  • a49, 69 - датчики msw, которые висят в загрузчике
  • а46 - датчик msw, где обновился загрузки у меня
  • а117 - это датчик msw до обновления (у меня есть ещё 4, которые я после отвала первых двух не трогал)
  • a129, a119 - это mr6cu, которые работают, но их состояние не пробрасывается в Sprut

Дополню по поводу wb-led на 29 адресе - индикация “S” примерно раз в секунду. Поиском не находится, поиском устройств в режиме загрузчика так же не нашёлся, по SSH тоже ничего не вернул по поводу bootloader

Благодарю за ожидание.

  • Тем устройствам, которые ответили корректно, восстановите прошивку.

  • Те устройства, которые не ответили, установите по одному на отдельный порт. Желательно по одному. И повторите запрос.

Прошу поделиться результатом.

Попробовал.

Датчик с адресом а69, который висел в загрузчике - поднялся.
Датчик с адресом а49 падает с ошибкой:

Спойлер

root@wirenboard:~# wb-mcu-fw-updater recover /dev/ttyRS485-2 -a 49
Will find bootloader port settings for (/dev/ttyRS485-2 : 49; response_timeout: 0.20)… (elapsed: 00:02)
2025-03-18 18:18:46,149 Has found bootloader port settings: SerialSettings(baudrate=9600, parity=‘N’, stopbits=2)
2025-03-18 18:18:57,570 Flashing /var/lib/wb-mcu-fw-updater/msw5G__4.31.13_master_e4dd903.wbfw (312 data chunks)
2025-03-18 18:19:00,398 Recovering (49 /dev/ttyRS485-2) was not successful
2025-03-18 18:19:00,399
root@wirenboard:~#

WB-Led, который никак не определяется перекомутирую позднее - жду, когда приедут клемники, что бы собрать временную линию и не потребовалось разбирать пол щита

Добрый день.

Тогда попробуйте для датчика WB-MSW c номером 49 восстановить прошивку через flasher, подробнее здесь. Кстати, для WB-LED тоже.

Спасибо.
Датчик MSW удалось завести, а вот с wb-led выходит ошибку.
У меня не получилось считать сигнатуру - возвращает после пустое поле, и прошить не удалось

Спойлер

Last login: Wed Mar 19 17:55:13 2025 from 192.168.0.17
root@wirenboard:~# ls
dead.letter ledG__3.5.3_master_616ca5a.wbfw
root@wirenboard:~# systemctl stop wb-mqtt-serial
root@wirenboard:~# wb-mcu-fw-flasher -d /dev/ttyRS485-1 -a 29 -f ./ledG__3.5.3_master_616ca5a.wbfw

/dev/ttyRS485-1 opened successfully.
./ledG__3.5.3_master_616ca5a.wbfw opened successfully, size 32944 bytes

Sending info block…
Error while sending info block: Connection timed out

Error while sending info block: Connection timed out

Error while sending info block: Connection timed out
Error while sending info block.
Check connection, jump to bootloader and try again.
root@wirenboard:~# systemctl start wb-mqtt-serial
root@wirenboard:~#

Здравствуйте.

Если не удается прочитать сигнатуру - не получится и прошить.

Подключите, пожалуйста, WB-LED единственным устройством на шине и выполните присвоение 29-го адреса:

modbus_client --debug -mrtu -b9600 -pnone -s2 /dev/ttyRS485-1 -a0 -t0x06 -r128 29

Затем повторите попытку восстановления:

Прошу поделиться результатом.

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

Хорошо, ожидаю.

Добрый день .

Я присвоил адрес и восстановил прошивку устройства - теперь работает корректно.

Точнее, если быть точным, то пришлось у 2 wb-led править адреса, т.к. во время сбоя устройство с адресом 149, потеряло адрес, а устройство с адресом 29 каким-то образом присвоило себе адрес 149. Соответственно вернув всем адреса и накатив прошивку на 149 удалось восстановить всё.

Здравствуйте. Рад что получилось.

Если возникнут еще какие-либо вопросы - не стесняйтесь обращаться.