Добрый день!
Каким образом запустить:
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]
Сейчас обновил устройства:
- Посмотрет в WEB интерфейсе, почти все устройства просили обновиться (еще со вчера)
- в консоли запустил update-all
- На все вопросы отвечал Y
- Оно все успешно обновило (наверное!, так как одно реле явно хоть и обновилось, но не выключалось, а должно было …)
- Перезапустит wb-rules
- В WEB интерфейсе продолжало писать на некоторые устройства, что нужно обновить только загрузчик (но он же был обновлен!!!)
- По очереди нажал обновить все устройства
- Большинство довольно быстро обновилось и судя по надписям, после обновления загрузчика была обновлена и прошивка … зачем-то.
- Но два последних устройства не обновилось с ошибкой (я так понимаю, для обновления загрузчика он скачивается, потом устройство переводится в режим загрузчика, … потом потеряло связь?)
- Запустил после каждого раза из консоли update-all и перезапуск wb-rules
- Во время обновления в консоли ничего не требовалось обновить6 но проблемное устройство было найдено и без вопросов было обновлено
- Все устройства после этого появились в консоли, ошибка с просьбой “найти устройство” исчезла, но первая ошибка на месте … (Как убрать этот глюк?)
Итого:
- после обновления в консоли и ответов Y, либо загрузчик все-таки не обновляется, либо WEB интерфейс это не видит.
- уже не первый раз обновление в WEB интерфейсе падает (в отличии от обновления в консоли), возможно из-за сбоя в соединении Интернет (предположение), но непонятно почему
- в WEB интерфейсе странные ошибки
Вот и нужно это делать “стабильно” и “контролируемо”, но автоматически.
Есть еще одна “проблема”.
WEB интерфейс не показывает значения заданные в устройстве.
Поэтому дополнительно планируется прописывать значения “по умолчанию” как нужно тоже “автоматически”, если не совпадают. Начиная со скорости обмена …
Плюс продумываю пока алгоритм “автоматической” замены устройств, которые “сломались”, то есть нужно отключить старое, поставить новое на его место и … все, все остальное сделает контроллер.
Добрый день,
Вашу идею о реализации обновления в silent-режиме без принудительной прошивки устройств направлю в книгу пожеланий, так как на данный момент такая функция отсутствует.
Также отправлю запрос на автоматическое прописывание значений.
По поводу ошибки при обновлении прошу создать отдельную тему на портале и приложить диагностический архив.
К update-all нужно два дополнительных ключа:
- не задавать лишних вопросов (все действия “по умолчанию”, а “по умолчанию” загрузчик не обновляется, так как может стереть настройки по умолчанию … видимо)
- при обновлении, обновлять и загрузчик, если есть более новый (и/или только загрузчик, если он есть более новый), не спрашивая
WEB интерфейс должен … наверное, при старте wb-rules или wb-mqtt-serial загружать все значения настроечных регистров (возможно вообще всех, отображаемых в WEB интерфейсе и имеющим возможность записи). То есть, вообще не должно быть варианта с галкой для регистра куда можно записать информацию, так как там что-то есть всегда, даже с завода.
Значения, отличающиеся от значений по умолчанию, должны куда-то сохраняться в отдельный настроечный файл. И при замене этого файла - перезаписывать все настройки всех устройств, отличных от завода (датчиков, подключенных термометров, начальных значений счетчиков …)
Имхо.
Ответил в уже открытую тему с подобной ошибкой.
1 лайк
Добрый день,
Благодарю за полное описание. Идея направлена разработчикам в книгу пожеланий.
Остались ли ещё вопросы?