Updater падает

Продолжение из телеграма.

Апдейтер подавился моим увлажнителем.

wb-mcu-fw-updater update-all
2021-09-13 21:54:32,164 Will probe all devices defined in /etc/wb-mqtt-serial.conf
2021-09-13 21:54:32,378 ‘utf-8’ codec can’t decode byte 0xf4 in position 15: invalid continuation byte
2021-09-13 21:54:32,913 Carel humiSteam (slaveid: 2; port: /dev/ttyRS485-2) is too old and does not support firmware updates!
2021-09-13 21:54:49,503 ‘utf-8’ codec can’t decode byte 0xf4 in position 15: invalid continuation byte
2021-09-13 21:54:49,528 Unhandled exception!
Traceback (most recent call last):
File “/usr/bin/wb-mcu-fw-updater”, line 201, in
args.func(args)
File “/usr/bin/wb-mcu-fw-updater”, line 99, in update_all
update_monitor._update_all(force=args.force)
File “/usr/lib/python3/dist-packages/wb_mcu_fw_updater/update_monitor.py”, line 263, in _update_all
_latest_remote_version = downloader.get_latest_version_number(fw_signature)
File “/usr/lib/python3/dist-packages/wb_mcu_fw_updater/fw_downloader.py”, line 88, in get_latest_version_number
url_path = urljoin(self._construct_urlpath(name), CONFIG[‘LATEST_FW_VERSION_FILE’])
File “/usr/lib/python3/dist-packages/wb_mcu_fw_updater/fw_downloader.py”, line 77, in _construct_urlpath
return urljoin(self.parent_url_path, name, self.fw_source)
File “/usr/lib/python3.5/posixpath.py”, line 89, in join
genericpath._check_arg_types(‘join’, a, *p)
File “/usr/lib/python3.5/genericpath.py”, line 143, in _check_arg_types
(funcname, s.class.name)) from None
TypeError: join() argument must be str or bytes, not ‘NoneType’

Конфиг в аттаче.
wb-mqtt-serial.conf (56.9 КБ)

И еще выдача с дебагом
debug.txt (139.2 КБ)

Здравствуйте!
Какую версию утилиты wb-mcu-fw-updater используете?

1.0.10

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

докину от себя

root@wirenboard-AYFITZ72:~# wb-mcu-fw-updater update-all
2021-09-17 13:05:49,229 Will probe all devices defined in /etc/wb-mqtt-serial.co nf
2021-09-17 13:05:50,260 Unhandled exception!
Traceback (most recent call last):
File “/usr/bin/wb-mcu-fw-updater”, line 200, in
args.func(args)
File “/usr/bin/wb-mcu-fw-updater”, line 98, in update_all
update_monitor._update_all(force=args.force)
File “/usr/lib/python3/dist-packages/wb_mcu_fw_updater/update_monitor.py”, lin e 251, in update_all
alive, in_bootloader, dummy_records, too_old_devices = probe_all_devices(CON FIG[‘SERIAL_DRIVER_CONFIG_FNAME’])
File “/usr/lib/python3/dist-packages/wb_mcu_fw_updater/update_monitor.py”, lin e 233, in probe_all_devices
if modbus_connection.is_in_bootloader():
File “/usr/lib/python3/dist-packages/wb_modbus/bindings.py”, line 716, in is_i n_bootloader
self.get_slave_addr()
File “/usr/lib/python3/dist-packages/wb_modbus/bindings.py”, line 525, in get
slave_addr
return self.read_u16(self.COMMON_REGS_MAP[‘slaveid’])
File “/usr/lib/python3/dist-packages/wb_modbus/bindings.py”, line 38, in wrapp er
raise thrown_exc
File “/usr/lib/python3/dist-packages/wb_modbus/bindings.py”, line 33, in wrapp er
return f(*args, **kwargs)
File “/usr/lib/python3/dist-packages/wb_modbus/bindings.py”, line 177, in read _u16
return self.device.read_register(addr, 0, 3, signed=False)
File “/usr/lib/python3/dist-packages/wb_modbus/minimalmodbus.py”, line 447, in read_register
payloadformat=_PAYLOADFORMAT_REGISTER,
File “/usr/lib/python3/dist-packages/wb_modbus/minimalmodbus.py”, line 1170, 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 1219, i n _perform_command
self.address, self.mode, functioncode, payload_to_slave
File “/usr/lib/python3/dist-packages/wb_modbus/minimalmodbus.py”, line 1618, i n _embed_payload
_check_slaveaddress(slaveaddress)
File “/usr/lib/python3/dist-packages/wb_modbus/minimalmodbus.py”, line 3300, i n _check_slaveaddress
slaveaddress, SLAVEADDRESS_MIN, SLAVEADDRESS_MAX, description=“slaveaddress”
File “/usr/lib/python3/dist-packages/wb_modbus/minimalmodbus.py”, line 3706, i n _check_int
_check_numerical(inputvalue, minvalue, maxvalue, description)
File “/usr/lib/python3/dist-packages/wb_modbus/minimalmodbus.py”, line 3769, i n _check_numerical
description, inputvalue, maxvalue
ValueError: The slaveaddress is too large: 40637969, but maximum value is 255.

Мое подозрение на Счетчик mercury206RN

root@wirenboard-AYFITZ72:~# apt-cache policy wb-mcu-fw-updater
wb-mcu-fw-updater:
Installed: 1.0.8
Candidate: 1.0.8
Version table:
*** 1.0.8 990
990 http://deb.wirenboard.com/wb6/stretch stable/main armhf Packages
100 /var/lib/dpkg/status

обновление до 1.0.10 не решает проблему

wb-mqtt-serial.conf (2.3 КБ)

Да, похоже в нем. Эту ошибку вызовет любое устройство с адресом больше 255. Надо исправить, сообщу разработчику. Спасибо вам за информацию.

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

Здравствуйте! Да, в планах записано. О сроках, к сожалению, не могу подсказать.