Обновление modbus устройств до актуальной версии без wb-mcu-fw-updater

Добрый день!

Запустил обновление всех устройств, увидел, что свежайшая версия - 1.16.4, хотя на сайте уже есть 1.19.

Все ли ок?


root@IQ140001:~# wb-mcu-fw-updater update-all
2023-01-21 13:01:11,223 Will probe all devices defined in /etc/wb-mqtt-serial.conf
2023-01-21 13:01:18,769 Update available: WB-MR6C (port: /dev/ttyRS485-1; slaveid: 20) (from 1.14.0 to 1.16.4)
2023-01-21 13:01:20,003 Update available: WB-MR6C (port: /dev/ttyRS485-1; slaveid: 14) (from 1.14.0 to 1.16.4)
2023-01-21 13:01:21,032 Update available: WB-MR6C (port: /dev/ttyRS485-1; slaveid: 28) (from 1.14.0 to 1.16.4)

Версия wb-mcu-fw-updater 1.0.7

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

Для каждого устройства в документации есть чейнджлог, там видно, что в тестинге, а что в стабильном. Например, для реле: Изменения в прошивке WB-MR6C v.2 — Wiren Board

То есть по хорошему, в wb-2207 должна быть доступна прошивка версии 1.18.5.

Какая версия ПО контроллера у вас?

Версия контроллера 201906131318.

Не совсем понимаю, как версия прошивки контроллера влияет на доступную версию прошивки MR6C. Если у меня стоит stable, не важно какой он версии. Доступная версия для реле должна быть latest stable.

Какой релиз установлен в контроллере

У меня нет ответа, спрошу у коллег в понедельник.

Могу лишь предположить, что проблема связана с тем, что wb-mcu-fw-updater 1.0.7 не поддерживает релизы прошивок, которая появилась в версии 1.1.0 (changelog).

В более новом ПО контроллера есть как шаблоны “устаревших” устройств (со старыми прошивками) так и с новыми. То есть главная причина того что прошивки не обновляются автоматически - в том что может не оказаться шаблона под изменившуюся карту регистров модуля. Актуальный пример - это диммер MRGBW-D. Диммер с новой прошивкой 3.x - не будет работать со старым шаблоном. Ждя реле это менее актуально - но все ж.
Прошивку, естественно, можно обновить.

Если у меня есть старый контроллер с реле или датчиком MSW v3, у которого есть известная бага, как получить исправление не сломав совместимость?

Типичный путь - обновить ПО контроллера вместе с FW устройств. Если нет желания обновлять ПО - тогда можно взять шаблон из свежего пакета.

А какая бага? Скажите с какой на какую версию хотите обновиться, ведь версию прошивки можно указать вручную, или даже зашить её вручную. В датчике вроде шаблоны не особо менялись, только добавляли новые сенсоры.

Плохо понимаю. Можно еще раз, у меня есть софт который работает с датчиками WB. Как правило это MSW v2/3, MIR, MR 3/6, MAO4, M1W2, MAP12H v1, MAP12Hv2, MAP12E, MCM8/16.
Я использую шаблоны в которые добавил чтение некоторых регистров и убрал лишние. Какие меня ждут проблемы, если я беру новую партию оборудования и работаю со своими шаблонами?

Сложно понять, похоже на ERRMR03.
Поднимал тему, но поймать ошибку и покапаться пока не удалось, так как на объектах сразу кто-нибудь подходит и дергает питание у MR6 и после этого канал включается, к тому же воспроизводится очень редко.

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

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

1 лайк

Попробуйте обновить вручную, указав версию прошивки:
wb-mcu-fw-updater update-fw /dev/ttyRS485-1 -a 46 --version 1.19.0
где 46 — адрес устройства.

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

Список версий можно посмотреть в чейнджлоге.

1 лайк

Да, не определяет прошивку на wb-mcu-fw-updater 1.0.7:

root@IQ940000:~# wb-mcu-fw-updater update-fw /dev/ttyRS485-1 -a 55 --version 1.18.0
2023-02-02 17:32:24,738 Will find serial port settings for (/dev/ttyRS485-1 : 55)...
2023-02-02 17:32:24,802 Has found serial port settings: {'baudrate': 9600, 'parity': 'N', 'stopbits': 2}
2023-02-02 17:32:26,082 Firmware will be upgraded. Will flash (1.18.0) over (1.15.1).
2023-02-02 17:32:27,187 Could not find the firmware: signature mr6, version 1.18.0, branch 
2023-02-02 17:32:27,209 HTTP Error 404: Not Found
2023-02-02 17:32:27,259 fw file was not downloaded!

На новом контроллере wb-mcu-fw-updater 1.5.1-wb102:

root@IQ950021:~# wb-mcu-fw-updater update-fw /dev/ttyRS485-1 -a 38 --version 1.19.0
2023-02-02 17:37:10,630 Will find serial port settings for (/dev/ttyRS485-1 : 38; response_timeout: 0.20)...
2023-02-02 17:37:10,663 Has found serial port settings: {'baudrate': 9600, 'stopbits': 2, 'parity': 'N'}
2023-02-02 17:37:11,660 fw (mr6 38 on /dev/ttyRS485-1):
2023-02-02 17:37:11,662 Update: 1.17.8 -> 1.19.0 (mr6 38 /dev/ttyRS485-1)
2023-02-02 17:37:15,042 Flashing /var/lib/wb-mcu-fw-updater/fw/mr6__1.19.0_master_73ba786.wbfw
100%|############################################################################################################################################################|174/174
2023-02-02 17:37:55,813 Done

А можно ли обновить только wb-mcu-fw-updater так, чтобы он увидел новые прошивки?

Довольно интересный вопрос… Попробовал но зависимости лезут, тот же python3-wb-*
Для ПО 19 года - только обновление файлами, наверно.

Решил вопрос скриптом на bash. Без зависимостей.
wbfw_updater.sh (7.1 КБ)

2 лайка

Прямо хорошо… Вот это уровень владения башем!

Я думаю скрипт может еще кому-нибудь пригодиться, решил выложить. Т.к. вручную обновлять парк устройств не совсем удобно.

Без гугла никуда =)

Эта тема была автоматически закрыта через 7 дней после последнего ответа. В ней больше нельзя отвечать.