Wb-mcu-fw-updater

Добрый день!

Каким образом запустить:

wb-mcu-fw-updater update-all

Чтобы утилита безусловно не только обновила прошивки всех устройств, но и:

  • отрабатывала без лишних вопросов (чтобы можно было использовать в скриптах)
  • обновляла и все загрузчики (если требуется их обновить) без запросов
    ?
    Спасибо!

Добрый день,

Для реализации вашей задачи необходимо использовать ключ -f. Подробнее об этом можно ознакомиться в данной статье.

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

Так нет же задачи шить то, что уже прошито.
А с этим ключем будет флеш память перезаписываться каждый раз, что будет сокращать ее ресурс?

То есть просто запускать в определенное время (когда устройства не заняты, ни на что не может повлиять и т.п.), или вручную скриптом (так чтобы оно выполнилось и при потере связи и отсутствии Интернет … стабильно) не получится, так как ключ -f будет изнашивать флеш память?

К тому же, видимо после последних обновлений, при запуске предупреждение новое, что будет на паузу поставлены порты …
/dev/ttyRS485-1, /dev/ttyRS485-2, /dev/ttyMOD2 used by node index.js, /usr/bin/wb-mqtt-serial; Will be paused and resumed after finish [Y/N]

Сейчас обновил устройства:

  1. Посмотрет в WEB интерфейсе, почти все устройства просили обновиться (еще со вчера)
  2. в консоли запустил update-all
  3. На все вопросы отвечал Y
  4. Оно все успешно обновило (наверное!, так как одно реле явно хоть и обновилось, но не выключалось, а должно было …)
  5. Перезапустит wb-rules
  6. В WEB интерфейсе продолжало писать на некоторые устройства, что нужно обновить только загрузчик (но он же был обновлен!!!)
  7. По очереди нажал обновить все устройства
  8. Большинство довольно быстро обновилось и судя по надписям, после обновления загрузчика была обновлена и прошивка … зачем-то.
  9. Но два последних устройства не обновилось с ошибкой (я так понимаю, для обновления загрузчика он скачивается, потом устройство переводится в режим загрузчика, … потом потеряло связь?)
  10. Запустил после каждого раза из консоли update-all и перезапуск wb-rules
  11. Во время обновления в консоли ничего не требовалось обновить6 но проблемное устройство было найдено и без вопросов было обновлено
  12. Все устройства после этого появились в консоли, ошибка с просьбой “найти устройство” исчезла, но первая ошибка на месте … (Как убрать этот глюк?)

Итого:

  • после обновления в консоли и ответов Y, либо загрузчик все-таки не обновляется, либо WEB интерфейс это не видит.
  • уже не первый раз обновление в WEB интерфейсе падает (в отличии от обновления в консоли), возможно из-за сбоя в соединении Интернет (предположение), но непонятно почему
  • в WEB интерфейсе странные ошибки

Вот и нужно это делать “стабильно” и “контролируемо”, но автоматически.

Есть еще одна “проблема”.
WEB интерфейс не показывает значения заданные в устройстве.
Поэтому дополнительно планируется прописывать значения “по умолчанию” как нужно тоже “автоматически”, если не совпадают. Начиная со скорости обмена …

Плюс продумываю пока алгоритм “автоматической” замены устройств, которые “сломались”, то есть нужно отключить старое, поставить новое на его место и … все, все остальное сделает контроллер.

Добрый день,

Вашу идею о реализации обновления в silent-режиме без принудительной прошивки устройств направлю в книгу пожеланий, так как на данный момент такая функция отсутствует.

Также отправлю запрос на автоматическое прописывание значений.

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

К update-all нужно два дополнительных ключа:

  • не задавать лишних вопросов (все действия “по умолчанию”, а “по умолчанию” загрузчик не обновляется, так как может стереть настройки по умолчанию … видимо)
  • при обновлении, обновлять и загрузчик, если есть более новый (и/или только загрузчик, если он есть более новый), не спрашивая

WEB интерфейс должен … наверное, при старте wb-rules или wb-mqtt-serial загружать все значения настроечных регистров (возможно вообще всех, отображаемых в WEB интерфейсе и имеющим возможность записи). То есть, вообще не должно быть варианта с галкой для регистра куда можно записать информацию, так как там что-то есть всегда, даже с завода.

Значения, отличающиеся от значений по умолчанию, должны куда-то сохраняться в отдельный настроечный файл. И при замене этого файла - перезаписывать все настройки всех устройств, отличных от завода (датчиков, подключенных термометров, начальных значений счетчиков …)

Имхо.

Ответил в уже открытую тему с подобной ошибкой.

1 лайк

Добрый день,

Благодарю за полное описание. Идея направлена разработчикам в книгу пожеланий.

Остались ли ещё вопросы?