Шаблон MAP12E не применяется

Решил обновить свой контроллер WB7 на bullseye, в процессе всё пошло не так…
Сначала кончилось место на root, вынес nodejs в раздел /mst/data/, процесс запустил заново и он закончился, вроде как, успешно. Ввел команду reboot, и всё, устройство ушло bootloop…
При этом с флешки, так же не давал обновлиться поверх, загрузчик выдавал ошибку “sh: can’t access tty; job control turned off”. Поколупавшись с ним немного, решил сбросить в заводские настройки, потери не большие, думал я, конфиги восстановлю, заодно попрактикуюсь со скриптами… Ну и ладно, речь не об этом…

После сброса обновление прошло как по маслу, без приключений… Прошу, увеличьте базовый раздел / хотя бы в 2 раза, 1 GB это очень мало…

Имея обновленный до bullseye контроллер я начал регистрировать все модули, модули прошли регистрацию, кроме электросчетчика, почему-то, но речь не о нем, а вот с MAP12E возникла странная засада:
При выборе шаблона MAP12E fw2, не происходит ровным счетом ничего, будто нет такого шаблона, при том, если у меня после нажатия на кнопку “добавить” тип модуля поумолчанию выставлен WB-LED и я выбираю MAP12E, то шаблон WB-LED не меняется, т.е. параметры устройства остаются как у WB-LED, если я меняю его на, например, MAP6E, параметры из шаблона MAP6E применяются, но при смене на MAP12E вообще все параметры удаляются, и модуль будто бы пустой…

Что может быть не так? Шаблон сам визуально в порядке, скачивал его предыдущую версию, которая успешно работала до этого, все равно ничего не работает…

Не буду удалять пост, но сегодня, после написания поста решил попробовать еще раз, чтоб сделать скрин, но шаблон применился…

В общем ситуация в том, что вчера я скачал шаблон от 2 сентября 22 года, но примениться он нормально смог только сегодня… Почему-то…

Попробовал сказать снова текущую версию шаблона, и он опять не применяется…
В общем у вас есть проблема в текущем шаблоне WB-MAP12E fw2.json

Попробовал только что на одновлённом до последний версии bullseye - применяется.
А какой версии wb-mqtt-serial у Вас? Его переустановка не помогает?

wb-mqtt-serial -v
wb-mqtt-serial 2.80.0 git de6c58bf97f3808feea1952cd0a57eb81ecc6b0f

Переустановка не помогла…
Проблема именно с последним шаблоном из ветки master…

Сейчас, с этим шаблоном, от 22 года, девайс добавляется, но данные получает всего 1 раз, хотя обмен идет постоянно…

Шаблон из репозитория, наверное, всё ж не стоило ставить. С тем, что идёт в комплекте с пакетом, то же самое поведение?

А что в логе wb-mqtt-serial? Интересно посмотреть с актуальным шаблоном (штатным из пакета) и со старым, 22 года.

Из репозитория взял именно потому, что столкнулся со штатным поведением текущего…
А вы не могли бы шаблон свой мне скинуть?

И с одним и с другим шаблоном все одинаково

02-03-2023 19:05:19.638	INFO: [serial device] device modbus:35 is disconnected
02-03-2023 19:03:49.354	INFO: [serial device] device modbus:35 is disconnected
02-03-2023 18:58:12.091	INFO: [serial device] device modbus:35 is disconnected
02-03-2023 18:51:04.540	INFO: [serial device] device modbus:35 is disconnected
02-03-2023 18:41:22.400	INFO: [serial device] device modbus:35 is disconnected
02-03-2023 18:32:43.590	INFO: [serial device] device modbus:35 is disconnected
02-03-2023 18:29:11.933	INFO: [serial device] device modbus:35 is disconnected
02-03-2023 18:23:58.780	INFO: [serial device] device modbus:35 is disconnected
02-03-2023 18:10:41.879	INFO: [serial device] device modbus:35 is disconnected
02-03-2023 17:57:55.530	INFO: [serial device] device modbus:35 is disconnected
02-03-2023 17:57:55.530	INFO: [serial device] device modbus:35 is disconnected
02-03-2023 17:57:10.969	INFO: [serial device] device modbus:35 is disconnected
02-03-2023 17:56:16.391	INFO: [serial device] device modbus:35 is disconnected
02-03-2023 17:52:10.482	INFO: [serial device] device modbus:35 is disconnected
02-03-2023 17:51:55.381	INFO: [serial device] device modbus:35 is disconnected
02-03-2023 17:48:27.852	INFO: [serial device] device modbus:35 is disconnected
02-03-2023 17:22:22.827	INFO: [serial device] device modbus:35 is disconnected
02-03-2023 17:22:22.827	WARNING: [modbus] failed to read 16 input(s) @ 8704 of device modbus:35: Serial protocol error: request timed out
02-03-2023 17:22:22.781	WARNING: [modbus] failed to read 3 input(s) @ 8441 of device modbus:35: Serial protocol error: request timed out
02-03-2023 17:21:02.265	INFO: [serial device] device modbus:35 is connected
02-03-2023 17:21:02.265	INFO: [serial device] device modbus:35 is connected
02-03-2023 17:19:06.188	INFO: [serial device] device modbus:35 is connected
02-03-2023 00:08:22.863	WARNING: [modbus] failed to read 4 discrete(s) @ 0 of device modbus:35: Serial protocol error: illegal data address
02-03-2023 00:08:22.857	WARNING: [modbus] failed to read 2 coil(s) @ 9 of device modbus:35: Serial protocol error: illegal data address
02-03-2023 00:08:22.850	WARNING: [modbus] failed to read 1 coil(s) @ 3 of device modbus:35: Serial protocol error: illegal data address
02-03-2023 00:08:22.842	WARNING: [modbus] failed to read 1 input(s) @ 402 of device modbus:35: Serial protocol error: illegal data value
02-03-2023 00:08:22.835	WARNING: [modbus] failed to read 1 input(s) @ 401 of device modbus:35: Serial protocol error: illegal data value
02-03-2023 00:08:22.829	WARNING: [modbus] failed to read 1 input(s) @ 400 of device modbus:35: Serial protocol error: illegal data value
02-03-2023 00:08:22.818	WARNING: [modbus] failed to read 1 input(s) @ 35 of device modbus:35: Serial protocol error: illegal data value
02-03-2023 00:08:22.812	WARNING: [modbus] failed to read 1 input(s) @ 34 of device modbus:35: Serial protocol error: illegal data value
02-03-2023 00:08:22.812	WARNING: [modbus] failed to read 1 input(s) @ 34 of device modbus:35: Serial protocol error: illegal data value
02-03-2023 00:08:22.805	WARNING: [modbus] failed to read 1 input(s) @ 33 of device modbus:35: Serial protocol error: illegal data value
02-03-2023 00:08:22.797	WARNING: [modbus] failed to read 1 input(s) @ 32 of device modbus:35: Serial protocol error: illegal data value
02-03-2023 00:08:22.789	WARNING: [modbus] failed to read 1 holding(s) @ 2017 of device modbus:35: Serial protocol error: illegal data value
02-03-2023 00:08:22.782	WARNING: [modbus] failed to read 1 holding(s) @ 2016 of device modbus:35: Serial protocol error: illegal data value
02-03-2023 00:08:22.775	WARNING: [modbus] failed to read 1 holding(s) @ 2015 of device modbus:35: Serial protocol error: illegal data value
02-03-2023 00:08:22.769	WARNING: [modbus] failed to read 1 holding(s) @ 2014 of device modbus:35: Serial protocol error: illegal data value
02-03-2023 00:08:22.764	WARNING: [modbus] failed to read 1 holding(s) @ 2013 of device modbus:35: Serial protocol error: illegal data value
02-03-2023 00:08:22.759	WARNING: [modbus] failed to read 1 holding(s) @ 2012 of device modbus:35: Serial protocol error: illegal data value
02-03-2023 00:08:22.750	WARNING: [modbus] failed to read 1 holding(s) @ 2011 of device modbus:35: Serial protocol error: illegal data value
02-03-2023 00:08:22.750	WARNING: [modbus] failed to read 1 holding(s) @ 2011 of device modbus:35: Serial protocol error: illegal data value
02-03-2023 00:08:22.744	WARNING: [modbus] failed to read 1 holding(s) @ 2003 of device modbus:35: Serial protocol error: illegal data value
02-03-2023 00:08:22.740	INFO: [serial device] device modbus:35 is connected
02-03-2023 00:07:54.821	WARNING: [modbus] failed to read 4 discrete(s) @ 0 of device modbus:35: Serial protocol error: illegal data address
02-03-2023 00:07:54.814	WARNING: [modbus] failed to read 2 coil(s) @ 9 of device modbus:35: Serial protocol error: illegal data address
02-03-2023 00:07:54.807	WARNING: [modbus] failed to read 1 coil(s) @ 3 of device modbus:35: Serial protocol error: illegal data address
02-03-2023 00:07:54.801	WARNING: [modbus] failed to read 1 input(s) @ 402 of device modbus:35: Serial protocol error: illegal data value
02-03-2023 00:07:54.795	WARNING: [modbus] failed to read 1 input(s) @ 401 of device modbus:35: Serial protocol error: illegal data value
02-03-2023 00:07:54.784	WARNING: [modbus] failed to read 1 input(s) @ 400 of device modbus:35: Serial protocol error: illegal data value
02-03-2023 00:07:54.771	WARNING: [modbus] failed to read 1 input(s) @ 35 of device modbus:35: Serial protocol error: illegal data value
02-03-2023 00:07:54.771	WARNING: [modbus] failed to read 1 input(s) @ 35 of device modbus:35: Serial protocol error: illegal data value
02-03-2023 00:07:54.765	WARNING: [modbus] failed to read 1 input(s) @ 34 of device modbus:35: Serial protocol error: illegal data value
02-03-2023 00:07:54.757	WARNING: [modbus] failed to read 1 input(s) @ 33 of device modbus:35: Serial protocol error: illegal data value
02-03-2023 00:07:54.748	WARNING: [modbus] failed to read 1 input(s) @ 32 of device modbus:35: Serial protocol error: illegal data value
02-03-2023 00:07:54.739	WARNING: [modbus] failed to read 1 holding(s) @ 2017 of device modbus:35: Serial protocol error: illegal data value
02-03-2023 00:07:54.732	WARNING: [modbus] failed to read 1 holding(s) @ 2016 of device modbus:35: Serial protocol error: illegal data value
02-03-2023 00:07:54.725	WARNING: [modbus] failed to read 1 holding(s) @ 2015 of device modbus:35: Serial protocol error: illegal data value
02-03-2023 00:07:54.719	WARNING: [modbus] failed to read 1 holding(s) @ 2014 of device modbus:35: Serial protocol error: illegal data value
02-03-2023 00:07:54.712	WARNING: [modbus] failed to read 1 holding(s) @ 2013 of device modbus:35: Serial protocol error: illegal data value
02-03-2023 00:07:54.707	WARNING: [modbus] failed to read 1 holding(s) @ 2012 of device modbus:35: Serial protocol error: illegal data value
02-03-2023 00:07:54.707	WARNING: [modbus] failed to read 1 holding(s) @ 2012 of device modbus:35: Serial protocol error: illegal data value
02-03-2023 00:07:54.699	WARNING: [modbus] failed to read 1 holding(s) @ 2011 of device modbus:35: Serial protocol error: illegal data value
02-03-2023 00:07:54.692	WARNING: [modbus] failed to read 1 holding(s) @ 2003 of device modbus:35: Serial protocol error: illegal data value
02-03-2023 00:07:54.687	INFO: [serial device] device modbus:35 is connected
02-03-2023 00:06:32.847	WARNING: [modbus] failed to read 4 discrete(s) @ 0 of device modbus:35: Serial protocol error: illegal data address
02-03-2023 00:06:32.840	WARNING: [modbus] failed to read 2 coil(s) @ 9 of device modbus:35: Serial protocol error: illegal data address
02-03-2023 00:06:32.834	WARNING: [modbus] failed to read 1 coil(s) @ 3 of device modbus:35: Serial protocol error: illegal data address
02-03-2023 00:06:32.826	WARNING: [modbus] failed to read 1 input(s) @ 402 of device modbus:35: Serial protocol error: illegal data value
02-03-2023 00:06:32.819	WARNING: [modbus] failed to read 1 input(s) @ 401 of device modbus:35: Serial protocol error: illegal data value
02-03-2023 00:06:32.813	WARNING: [modbus] failed to read 1 input(s) @ 400 of device modbus:35: Serial protocol error: illegal data value

Но это при учете, что я добавил модуль с, казалось бы, рабочим шаблоном…
С другим шаблоном даже добавить не могу…

Еще раз проверил прошивку самого модуля, зашита map12eG, в чем отличие “eG” от “E”?

А какая, кстати, версия прошивки самого счётчика?
Не повторяются ли адреса?

2.5.0
Смущает только, что “map12eG”…

Адреса не повторяются…

С миллионной попытки, остановив, перед заменой шаблона, сервисы …-serial и …-serial-templates.path, шаблон таки начал работать…

Но сам модуль так и не хочет нормально отвечать на запросы…

После перезагрузки контроллера, шаблон опять навернулся…

А скиньте, пожалуйста, шаблон - попробую воспроизвести у себя.

Вот этот самый шаблон: https://raw.githubusercontent.com/wirenboard/wb-mqtt-serial/master/templates/config-map12e-fw2.json

Правки в него не вносил… его отличие от того, что работает, лишь в наличии 3х блоков:

>                 "name": "U L1-L2",
>                 "reg_type": "input",
>                 "address": "0x141C",
>                 "type": "voltage",
>                 "format": "u16",
>                 "scale": 0.01,
>                 "round_to": 0.1,
>                 "error_value": "0xFFFF",
>                 "group": "l1"
>             },
>             {
1917a1929,1939
>            {
>                 "name": "U L2-L3",
>                 "reg_type": "input",
>                 "address": "0x141D",
>                 "type": "voltage",
>                 "format": "u16",
>                 "scale": 0.01,
>                 "round_to": 0.1,
>                 "error_value": "0xFFFF",
>                 "group": "l2"
>             },
1950a1973,1983
>             },
>             {
>                 "name": "U L3-L1",
>                 "reg_type": "input",
>                 "address": "0x141E",
>                 "type": "voltage",
>                 "format": "u16",
>                 "scale": 0.01,
>                 "round_to": 0.1,
>                 "error_value": "0xFFFF",
>                 "group": "l3"

Кстати, сейчас в логах появились строки:


02-03-2023 21:41:17.373	WARNING: </dev/ttyRS485-1 115200 8 N 2>: closed due to repetetive errors
02-03-2023 21:41:10.109	WARNING: </dev/ttyRS485-1 115200 8 N 2>: closed due to repetetive errors
02-03-2023 21:41:02.807	WARNING: </dev/ttyRS485-1 115200 8 N 2>: closed due to repetetive errors
02-03-2023 21:40:55.463	WARNING: </dev/ttyRS485-1 115200 8 N 2>: closed due to repetetive errors
02-03-2023 21:40:48.203	WARNING: </dev/ttyRS485-1 115200 8 N 2>: closed due to repetetive errors
02-03-2023 21:40:40.934	WARNING: </dev/ttyRS485-1 115200 8 N 2>: closed due to repetetive errors

Идут примерно каждые 7 секунд…

При этом не работает только map12e

Проблема шаблона в описании этих трех параметров, в них указаны группы, которых не существует в шаблоне…

"group": "l1"

"group": "l2"

"group": "l13"

У себя я поменял на general, и шаблон заработал…

Но сам модуль, по прежнему не отвечает…
Сканирование не может определить что за устройство…
На месте модели и версии прошивки выводит “ошибка”…

Системный лог сканирования:

02-03-2023 22:10:13.834	wb_modbus.minimalmodbus.NoResponseError: RPC: no response with 10.00s timeout: server returned code -32000; rpc call: {'response_size': 43, 'format': 'HEX', 'msg': 'FD6008FF0000710300FA00109FD3', 'response_timeout': 8, 'frame_timeout': 2, 'path': '/dev/ttyRS485-1', 'baud_rate': 115200, 'parity': 'N', 'stop_bits': 2, 'data_bits': 8, 'total_timeout': 10000}
02-03-2023 22:10:13.834	    raise reraise_err from e
02-03-2023 22:10:13.834	    raise reraise_err from e
02-03-2023 22:10:13.834	  File "/usr/lib/python3/dist-packages/wb/device_manager/mqtt_rpc.py", line 138, in _communicate
02-03-2023 22:10:13.834	    response = await self.device._communicate(request, number_of_bytes_to_read)
02-03-2023 22:10:13.834	  File "/usr/lib/python3/dist-packages/wb/device_manager/serial_bus.py", line 262, in read_string
02-03-2023 22:10:13.834	    device_info.fw.version = await mb_conn.read_string(
02-03-2023 22:10:13.834	  File "/usr/lib/python3/dist-packages/wb/device_manager/main.py", line 293, in fill_device_info
02-03-2023 22:10:13.834	Traceback (most recent call last):
02-03-2023 22:10:13.834	The above exception was the direct cause of the following exception:
02-03-2023 22:10:13.834	mqttrpc.client.MQTTRPCError: Server error [-32000]: Port IO error: Serial protocol error: request timed out
02-03-2023 22:10:13.834	    return fut.result()
02-03-2023 22:10:13.834	    return fut.result()
02-03-2023 22:10:13.834	  File "/usr/lib/python3.9/asyncio/tasks.py", line 481, in wait_for
02-03-2023 22:10:13.834	    response = await asyncio.wait_for(response_f, timeout)
02-03-2023 22:10:13.834	  File "/usr/lib/python3/dist-packages/wb/device_manager/mqtt_rpc.py", line 59, in make_rpc_call
02-03-2023 22:10:13.834	    response = await self.rpc_client.make_rpc_call(
02-03-2023 22:10:13.834	  File "/usr/lib/python3/dist-packages/wb/device_manager/mqtt_rpc.py", line 121, in _communicate
02-03-2023 22:10:13.834	Traceback (most recent call last):
02-03-2023 22:10:13.834	[ERROR] Failed to read fw_version
02-03-2023 22:10:13.775	wb_modbus.minimalmodbus.NoResponseError: RPC: no response with 10.00s timeout: server returned code -32000; rpc call: {'response_size': 35, 'format': 'HEX', 'msg': 'FD6008FF000071030122000C1FDD', 'response_timeout': 8, 'frame_timeout': 2, 'path': '/dev/ttyRS485-1', 'baud_rate': 115200, 'parity': 'N', 'stop_bits': 2, 'data_bits': 8, 'total_timeout': 10000}
02-03-2023 22:10:13.775	    raise reraise_err from e
02-03-2023 22:10:13.775	    raise reraise_err from e
02-03-2023 22:10:13.775	  File "/usr/lib/python3/dist-packages/wb/device_manager/mqtt_rpc.py", line 138, in _communicate
02-03-2023 22:10:13.775	    response = await self.device._communicate(request, number_of_bytes_to_read)
02-03-2023 22:10:13.775	  File "/usr/lib/python3/dist-packages/wb/device_manager/serial_bus.py", line 262, in read_string
02-03-2023 22:10:13.775	    device_info.fw_signature = await mb_conn.read_string(
02-03-2023 22:10:13.775	  File "/usr/lib/python3/dist-packages/wb/device_manager/main.py", line 284, in fill_device_info
02-03-2023 22:10:13.775	Traceback (most recent call last):
02-03-2023 22:10:13.775	The above exception was the direct cause of the following exception:
02-03-2023 22:10:13.775	mqttrpc.client.MQTTRPCError: Server error [-32000]: Port IO error: Serial protocol error: request timed out
02-03-2023 22:10:13.775	    return fut.result()
02-03-2023 22:10:13.775	    return fut.result()
02-03-2023 22:10:13.775	  File "/usr/lib/python3.9/asyncio/tasks.py", line 481, in wait_for
02-03-2023 22:10:13.775	    response = await asyncio.wait_for(response_f, timeout)
02-03-2023 22:10:13.775	  File "/usr/lib/python3/dist-packages/wb/device_manager/mqtt_rpc.py", line 59, in make_rpc_call
02-03-2023 22:10:13.775	    response = await self.rpc_client.make_rpc_call(
02-03-2023 22:10:13.775	  File "/usr/lib/python3/dist-packages/wb/device_manager/mqtt_rpc.py", line 121, in _communicate
02-03-2023 22:10:13.775	Traceback (most recent call last):
02-03-2023 22:10:13.775	[ERROR] Failed to read fw_signature
02-03-2023 22:10:13.705	wb_modbus.minimalmodbus.NoResponseError: RPC: no response with 10.00s timeout: server returned code -32000; rpc call: {'response_size': 23, 'format': 'HEX', 'msg': 'FD6008FF0000710300C80006BFD2', 'response_timeout': 8, 'frame_timeout': 2, 'path': '/dev/ttyRS485-1', 'baud_rate': 115200, 'parity': 'N', 'stop_bits': 2, 'data_bits': 8, 'total_timeout': 10000}
02-03-2023 22:10:13.705	    raise reraise_err from e
02-03-2023 22:10:13.705	    raise reraise_err from e
02-03-2023 22:10:13.705	  File "/usr/lib/python3/dist-packages/wb/device_manager/mqtt_rpc.py", line 138, in _communicate
02-03-2023 22:10:13.705	    response = await self.device._communicate(request, number_of_bytes_to_read)
02-03-2023 22:10:13.705	  File "/usr/lib/python3/dist-packages/wb/device_manager/serial_bus.py", line 262, in read_string
02-03-2023 22:10:13.705	    device_signature = await mb_conn.read_string(
02-03-2023 22:10:13.705	  File "/usr/lib/python3/dist-packages/wb/device_manager/main.py", line 267, in fill_device_info
02-03-2023 22:10:13.705	Traceback (most recent call last):
02-03-2023 22:10:13.705	The above exception was the direct cause of the following exception:
02-03-2023 22:10:13.705	mqttrpc.client.MQTTRPCError: Server error [-32000]: Port IO error: Serial protocol error: request timed out
02-03-2023 22:10:13.705	    return fut.result()
02-03-2023 22:10:13.705	    return fut.result()
02-03-2023 22:10:13.705	  File "/usr/lib/python3.9/asyncio/tasks.py", line 481, in wait_for
02-03-2023 22:10:13.705	    response = await asyncio.wait_for(response_f, timeout)
02-03-2023 22:10:13.705	  File "/usr/lib/python3/dist-packages/wb/device_manager/mqtt_rpc.py", line 59, in make_rpc_call
02-03-2023 22:10:13.705	    response = await self.rpc_client.make_rpc_call(
02-03-2023 22:10:13.705	  File "/usr/lib/python3/dist-packages/wb/device_manager/mqtt_rpc.py", line 121, in _communicate
02-03-2023 22:10:13.705	Traceback (most recent call last):
02-03-2023 22:10:13.705	[ERROR] Failed to read device signature
02-03-2023 22:10:13.588	[INFO] Got device: 35 4278190193

При этом:

:/usr/share/wb-mqtt-serial/templates# wb-mcu-fw-updater update-fw /dev/ttyRS485-1 -a35
2023-03-02 12:19:29,940 Will find serial port settings for (/dev/ttyRS485-1 : 35; response_timeout: 0.20)...
2023-03-02 12:19:37,259 Has found serial port settings: {'baudrate': 115200, 'parity': 'N', 'stopbits': 2}
2023-03-02 12:19:41,774 fw (map12eG 35 on /dev/ttyRS485-1):
2023-03-02 12:19:41,776 Update skipped: 2.5.0 -> 2.5.0 (map12eG 35 /dev/ttyRS485-1)
2023-03-02 12:19:41,778 Done

Спасибо, и правда ошибка. Поправим в ближайшее время.

map12eG - это WB-MAP12E на контроллере GD32. Проверим тоже.

откатил прошивку к версии 2.3.8 и модуль стал нормально отдавать данные…

Судя по всему, начиная с версии прошивки 2.4.0 всё становится плохо… Модуль перестает отдавать данные когда его добавляешь в устройства на порту…
И еще одно наблюдение - когда его пытаешься опрашивать, начинает сильно тормозить вся шина…