Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fragmented cellVoltage serial response with Daly BMS #516

Open
klvbdmh opened this issue Oct 7, 2024 · 5 comments
Open

Fragmented cellVoltage serial response with Daly BMS #516

klvbdmh opened this issue Oct 7, 2024 · 5 comments

Comments

@klvbdmh
Copy link

klvbdmh commented Oct 7, 2024

Occasionally, reported cellVoltage values are outside of the norm. The app and the UART monitor show correct values all of the time.

Setup

I connected my Daly BMS (16S 48V 250A) to Raspberry Pi 4B through the UART to USB cable.

mpp-solar --version
Solar Device Command Utility, version: 0.16.39, python version: 3.11.2

Input

mpp-solar -n DalyBMS -p /dev/ttyUSB0 -b 9600 -P DALY --porttype=dalyserial -c cellVoltages -D

Output (debug)

2024-10-07 07:50:31,025:INFO:__init__:main@216: Solar Device Command Utility, version: 0.16.39, python version: 3.11.2
2024-10-07 07:50:31,025:DEBUG:mqttbrokerc:__init__@29: mqttbroker config: {'name': 'localhost', 'port': 1883, 'user': None, 'pass': None}
2024-10-07 07:50:31,025:DEBUG:__init__:main@251: MqttBroker name: localhost, port: 1883, user: None
2024-10-07 07:50:31,025:DEBUG:__init__:main@253: udp port 5555
2024-10-07 07:50:31,025:DEBUG:__init__:main@255: Using Postgres None
2024-10-07 07:50:31,026:DEBUG:__init__:main@258: Using Mongo None with mppsolar
2024-10-07 07:50:31,027:INFO:__init__:main@275: Daemon DISABLED
2024-10-07 07:50:31,027:INFO:__init__:main@379: Creating device "DalyBMS" (type: "mppsolar") on port "/dev/ttyUSB0 (porttype=dalyserial)" using protocol "DALY"
2024-10-07 07:50:31,030:DEBUG:__init__:main@383: device_class <class 'mppsolar.devices.mppsolar.mppsolar'>
2024-10-07 07:50:31,030:DEBUG:device:__init__@34: __init__ args ()
2024-10-07 07:50:31,030:DEBUG:device:__init__@35: __init__ kwargs {'name': 'DalyBMS', 'port': '/dev/ttyUSB0', 'protocol': 'DALY', 'baud': 9600, 'porttype': 'dalyserial', 'mqtt_broker': <mppsolar.libs.mqttbrokerc.MqttBroker object at 0x7f8d379b10>, 'udp_port': 5555, 'mongo_url': None, 'mongo_db': 'mppsolar', 'push_url': 'http://localhost:9091/metrics/job/pushgateway', 'prom_output_dir': '/var/lib/node_exporter'}
2024-10-07 07:50:31,031:INFO:__init__:get_port@81: Port overide - using port 'dalyserial'
2024-10-07 07:50:31,031:DEBUG:__init__:get_port_type@57: port matches daly
2024-10-07 07:50:31,031:INFO:__init__:get_port@117: Using dalyserialio for communications
2024-10-07 07:50:31,038:DEBUG:__init__:get_protocol@13: Protocol DALY
2024-10-07 07:50:31,327:DEBUG:device:__init__@39: __init__ name DalyBMS, port <mppsolar.inout.dalyserialio.DalySerialIO object at 0x7f8d37b0d0>, protocol Daly BMS protocol handler
2024-10-07 07:50:31,327:DEBUG:__init__:main@430: Commands [(<mppsolar.devices.mppsolar.mppsolar object at 0x7f8d379fd0>, 'cellVoltages', 'cellVoltages', 'screen', None, None)]
2024-10-07 07:50:31,327:INFO:__init__:main@435: Looping 1 commands
2024-10-07 07:50:31,328:INFO:__init__:main@441: Getting results from device: mppsolar device - name: DalyBMS, port: <mppsolar.inout.dalyserialio.DalySerialIO object at 0x7f8d37b0d0>, protocol: Daly BMS protocol handler for command: cellVoltages, tag: cellVoltages, outputs: screen
2024-10-07 07:50:31,328:INFO:device:run_command@51: Running command cellVoltages
2024-10-07 07:50:31,328:INFO:daly:get_full_command@212: Using protocol b'DALY' with 7 commands
2024-10-07 07:50:31,328:DEBUG:abstractprotocol:get_command_defn@71: Processing command 'cellVoltages'
2024-10-07 07:50:31,328:DEBUG:abstractprotocol:get_command_defn@73: Found command cellVoltages in protocol b'DALY'
2024-10-07 07:50:31,328:DEBUG:daly:get_full_command@231: full command: b'\xa5\x80\x95\x08\x00\x00\x00\x00\x00\x00\x00\x00\xc2\n'
2024-10-07 07:50:31,328:INFO:device:run_command@81: full command b'\xa5\x80\x95\x08\x00\x00\x00\x00\x00\x00\x00\x00\xc2\n' for command cellVoltages
2024-10-07 07:50:31,328:DEBUG:abstractprotocol:get_command_defn@71: Processing command 'cellVoltages'
2024-10-07 07:50:31,328:DEBUG:abstractprotocol:get_command_defn@73: Found command cellVoltages in protocol b'DALY'
2024-10-07 07:50:31,328:DEBUG:dalyserialio:send_and_receive@19: port /dev/ttyUSB0, baudrate 9600
2024-10-07 07:50:31,335:DEBUG:dalyserialio:send_and_receive@22: Executing command via dalyserialio...
2024-10-07 07:50:31,836:DEBUG:dalyserialio:send_and_receive@32: bytes waiting 92
2024-10-07 07:50:32,336:DEBUG:dalyserialio:send_and_receive@32: bytes waiting 0
2024-10-07 07:50:32,337:DEBUG:dalyserialio:send_and_receive@38: serial response was: b'{\xa5\x01\x95\x08\x06\x0c\xce\x0c\xd0\x0c\xd0\xa0{\xa5\x01\x95\x08\x01\x0c\xd1\x0c\xd0\x0c\xce\xa0w\xa5\x01\x95\x08\x02\x0c\xd0\x0c\xcf\x0c\xd0\xa0x\xa5\x01\x95\x08\x03\x0c\xcf\x0c\xd0\x0c\xcf\xa0x\xa5\x01\x95\x08\x04\x0c\xd0\x0c\xcf\x0c\xd0\xa0z\xa5\x01\x95\x08\x05\x0c\xcf\x0c\xd0\x0c\xcf\xa0z\xa5\x01\x95\x08\x06\x0c\xcf\x0c\xd0\x0c\xcf\xa0{'
2024-10-07 07:50:32,340:DEBUG:device:run_command@98: Send and Receive Response b'{\xa5\x01\x95\x08\x06\x0c\xce\x0c\xd0\x0c\xd0\xa0{\xa5\x01\x95\x08\x01\x0c\xd1\x0c\xd0\x0c\xce\xa0w\xa5\x01\x95\x08\x02\x0c\xd0\x0c\xcf\x0c\xd0\xa0x\xa5\x01\x95\x08\x03\x0c\xcf\x0c\xd0\x0c\xcf\xa0x\xa5\x01\x95\x08\x04\x0c\xd0\x0c\xcf\x0c\xd0\xa0z\xa5\x01\x95\x08\x05\x0c\xcf\x0c\xd0\x0c\xcf\xa0z\xa5\x01\x95\x08\x06\x0c\xcf\x0c\xd0\x0c\xcf\xa0{'
2024-10-07 07:50:32,341:DEBUG:abstractprotocol:decode@238: response passed to decode: b'{\xa5\x01\x95\x08\x06\x0c\xce\x0c\xd0\x0c\xd0\xa0{\xa5\x01\x95\x08\x01\x0c\xd1\x0c\xd0\x0c\xce\xa0w\xa5\x01\x95\x08\x02\x0c\xd0\x0c\xcf\x0c\xd0\xa0x\xa5\x01\x95\x08\x03\x0c\xcf\x0c\xd0\x0c\xcf\xa0x\xa5\x01\x95\x08\x04\x0c\xd0\x0c\xcf\x0c\xd0\xa0z\xa5\x01\x95\x08\x05\x0c\xcf\x0c\xd0\x0c\xcf\xa0z\xa5\x01\x95\x08\x06\x0c\xcf\x0c\xd0\x0c\xcf\xa0{'
2024-10-07 07:50:32,341:DEBUG:abstractprotocol:get_command_defn@71: Processing command 'cellVoltages'
2024-10-07 07:50:32,341:DEBUG:abstractprotocol:get_command_defn@73: Found command cellVoltages in protocol b'DALY'
2024-10-07 07:50:32,341:DEBUG:daly:check_response_valid@245: checking validity of b'{\xa5\x01\x95\x08\x06\x0c\xce\x0c\xd0\x0c\xd0\xa0{\xa5\x01\x95\x08\x01\x0c\xd1\x0c\xd0\x0c\xce\xa0w\xa5\x01\x95\x08\x02\x0c\xd0\x0c\xcf\x0c\xd0\xa0x\xa5\x01\x95\x08\x03\x0c\xcf\x0c\xd0\x0c\xcf\xa0x\xa5\x01\x95\x08\x04\x0c\xd0\x0c\xcf\x0c\xd0\xa0z\xa5\x01\x95\x08\x05\x0c\xcf\x0c\xd0\x0c\xcf\xa0z\xa5\x01\x95\x08\x06\x0c\xcf\x0c\xd0\x0c\xcf\xa0{'
2024-10-07 07:50:32,342:INFO:daly:check_response_valid@251: is multiframe response - assuming ok for now
2024-10-07 07:50:32,342:DEBUG:abstractprotocol:decode@283: Processing response of type MULTIFRAME-POSITIONAL
2024-10-07 07:50:32,342:INFO:daly:get_responses@292: Multi frame response with 8 frames
2024-10-07 07:50:32,343:DEBUG:abstractprotocol:decode@287: trimmed and split responses: [[b'{', b'\xa5', b'\x01', b'\x95', b'\x08', b'\x06\x0c', b'\xce\x0c', b'\xd0\x0c', b'\xd0', b'\xa0'], [b'{', b'\xa5', b'\x01', b'\x95', b'\x08', b'\x01\x0c', b'\xd1\x0c', b'\xd0\x0c', b'\xce', b'\xa0'], [b'w', b'\xa5', b'\x01', b'\x95', b'\x08', b'\x02\x0c', b'\xd0\x0c', b'\xcf\x0c', b'\xd0', b'\xa0'], [b'x', b'\xa5', b'\x01', b'\x95', b'\x08', b'\x03\x0c', b'\xcf\x0c', b'\xd0\x0c', b'\xcf', b'\xa0'], [b'x', b'\xa5', b'\x01', b'\x95', b'\x08', b'\x04\x0c', b'\xd0\x0c', b'\xcf\x0c', b'\xd0', b'\xa0'], [b'z', b'\xa5', b'\x01', b'\x95', b'\x08', b'\x05\x0c', b'\xcf\x0c', b'\xd0\x0c', b'\xcf', b'\xa0'], [b'z', b'\xa5', b'\x01', b'\x95', b'\x08', b'\x06\x0c', b'\xcf\x0c', b'\xd0\x0c', b'\xcf', b'\xa0'], [b'{', b'', b'', b'', b'', b'', b'', b'', b'', b'']]
2024-10-07 07:50:32,343:DEBUG:abstractprotocol:decode@411: Processing MULTIFRAME-POSITIONAL type responses
2024-10-07 07:50:32,344:DEBUG:abstractprotocol:decode@415: got 8 frames
2024-10-07 07:50:32,344:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,344:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'start flag', '']
2024-10-07 07:50:32,345:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: start flag, raw_value b'{'
2024-10-07 07:50:32,345:DEBUG:abstractprotocol:process_response@124: Discarding start flag:b'{'
2024-10-07 07:50:32,345:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,345:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'module address', '']
2024-10-07 07:50:32,346:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: module address, raw_value b'\xa5'
2024-10-07 07:50:32,346:DEBUG:abstractprotocol:process_response@124: Discarding module address:b'\xa5'
2024-10-07 07:50:32,346:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,347:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'command id', '']
2024-10-07 07:50:32,347:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: command id, raw_value b'\x01'
2024-10-07 07:50:32,347:DEBUG:abstractprotocol:process_response@124: Discarding command id:b'\x01'
2024-10-07 07:50:32,347:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,348:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'data length', '']
2024-10-07 07:50:32,348:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: data length, raw_value b'\x95'
2024-10-07 07:50:32,348:DEBUG:abstractprotocol:process_response@124: Discarding data length:b'\x95'
2024-10-07 07:50:32,348:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,349:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, "f'Frame Number {f:02d}'", '']
2024-10-07 07:50:32,349:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: f'Frame Number {f:02d}', raw_value b'\x08'
2024-10-07 07:50:32,349:DEBUG:abstractprotocol:process_response@124: Discarding f'Frame Number {f:02d}':b'\x08'
2024-10-07 07:50:32,349:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,350:DEBUG:abstractprotocol:decode@523: Got defn ['BigHex2Short:r/1000', 2, "f'Cell {3*f+1:02d} Voltage'", 'V']
2024-10-07 07:50:32,350:DEBUG:abstractprotocol:process_response@117: Got template r/1000 for f'Cell {3*f+1:02d} Voltage' b'\x06\x0c'
2024-10-07 07:50:32,350:DEBUG:abstractprotocol:process_response@118: Processing data_type: BigHex2Short for data_name: f'Cell {3*f+1:02d} Voltage', raw_value b'\x06\x0c'
2024-10-07 07:50:32,351:DEBUG:abstractprotocol:process_response@203: Processing format string: 'BigHex2Short(raw_value)'
2024-10-07 07:50:32,351:DEBUG:protocol_helpers:BigHex2Short@146: Hex b'\x06\x0c' 2 byte decoded to 1548
2024-10-07 07:50:32,352:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,352:DEBUG:abstractprotocol:decode@523: Got defn ['BigHex2Short:r/1000', 2, "f'Cell {3*f+2:02d} Voltage'", 'V']
2024-10-07 07:50:32,353:DEBUG:abstractprotocol:process_response@117: Got template r/1000 for f'Cell {3*f+2:02d} Voltage' b'\xce\x0c'
2024-10-07 07:50:32,353:DEBUG:abstractprotocol:process_response@118: Processing data_type: BigHex2Short for data_name: f'Cell {3*f+2:02d} Voltage', raw_value b'\xce\x0c'
2024-10-07 07:50:32,353:DEBUG:abstractprotocol:process_response@203: Processing format string: 'BigHex2Short(raw_value)'
2024-10-07 07:50:32,354:DEBUG:protocol_helpers:BigHex2Short@146: Hex b'\xce\x0c' 2 byte decoded to -12788
2024-10-07 07:50:32,354:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,355:DEBUG:abstractprotocol:decode@523: Got defn ['BigHex2Short:r/1000', 2, "f'Cell {3*f+3:02d} Voltage'", 'V']
2024-10-07 07:50:32,355:DEBUG:abstractprotocol:process_response@117: Got template r/1000 for f'Cell {3*f+3:02d} Voltage' b'\xd0\x0c'
2024-10-07 07:50:32,355:DEBUG:abstractprotocol:process_response@118: Processing data_type: BigHex2Short for data_name: f'Cell {3*f+3:02d} Voltage', raw_value b'\xd0\x0c'
2024-10-07 07:50:32,356:DEBUG:abstractprotocol:process_response@203: Processing format string: 'BigHex2Short(raw_value)'
2024-10-07 07:50:32,356:DEBUG:protocol_helpers:BigHex2Short@146: Hex b'\xd0\x0c' 2 byte decoded to -12276
2024-10-07 07:50:32,357:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,357:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'Reserved', '']
2024-10-07 07:50:32,357:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: Reserved, raw_value b'\xd0'
2024-10-07 07:50:32,357:DEBUG:abstractprotocol:process_response@124: Discarding Reserved:b'\xd0'
2024-10-07 07:50:32,357:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,358:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'checksum', '']
2024-10-07 07:50:32,358:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: checksum, raw_value b'\xa0'
2024-10-07 07:50:32,358:DEBUG:abstractprotocol:process_response@124: Discarding checksum:b'\xa0'
2024-10-07 07:50:32,358:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,359:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'start flag', '']
2024-10-07 07:50:32,359:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: start flag, raw_value b'{'
2024-10-07 07:50:32,359:DEBUG:abstractprotocol:process_response@124: Discarding start flag:b'{'
2024-10-07 07:50:32,359:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,360:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'module address', '']
2024-10-07 07:50:32,360:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: module address, raw_value b'\xa5'
2024-10-07 07:50:32,360:DEBUG:abstractprotocol:process_response@124: Discarding module address:b'\xa5'
2024-10-07 07:50:32,360:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,361:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'command id', '']
2024-10-07 07:50:32,361:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: command id, raw_value b'\x01'
2024-10-07 07:50:32,361:DEBUG:abstractprotocol:process_response@124: Discarding command id:b'\x01'
2024-10-07 07:50:32,361:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,362:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'data length', '']
2024-10-07 07:50:32,362:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: data length, raw_value b'\x95'
2024-10-07 07:50:32,362:DEBUG:abstractprotocol:process_response@124: Discarding data length:b'\x95'
2024-10-07 07:50:32,362:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,362:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, "f'Frame Number {f:02d}'", '']
2024-10-07 07:50:32,363:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: f'Frame Number {f:02d}', raw_value b'\x08'
2024-10-07 07:50:32,363:DEBUG:abstractprotocol:process_response@124: Discarding f'Frame Number {f:02d}':b'\x08'
2024-10-07 07:50:32,363:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,363:DEBUG:abstractprotocol:decode@523: Got defn ['BigHex2Short:r/1000', 2, "f'Cell {3*f+1:02d} Voltage'", 'V']
2024-10-07 07:50:32,364:DEBUG:abstractprotocol:process_response@117: Got template r/1000 for f'Cell {3*f+1:02d} Voltage' b'\x01\x0c'
2024-10-07 07:50:32,364:DEBUG:abstractprotocol:process_response@118: Processing data_type: BigHex2Short for data_name: f'Cell {3*f+1:02d} Voltage', raw_value b'\x01\x0c'
2024-10-07 07:50:32,364:DEBUG:abstractprotocol:process_response@203: Processing format string: 'BigHex2Short(raw_value)'
2024-10-07 07:50:32,364:DEBUG:protocol_helpers:BigHex2Short@146: Hex b'\x01\x0c' 2 byte decoded to 268
2024-10-07 07:50:32,365:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,365:DEBUG:abstractprotocol:decode@523: Got defn ['BigHex2Short:r/1000', 2, "f'Cell {3*f+2:02d} Voltage'", 'V']
2024-10-07 07:50:32,366:DEBUG:abstractprotocol:process_response@117: Got template r/1000 for f'Cell {3*f+2:02d} Voltage' b'\xd1\x0c'
2024-10-07 07:50:32,366:DEBUG:abstractprotocol:process_response@118: Processing data_type: BigHex2Short for data_name: f'Cell {3*f+2:02d} Voltage', raw_value b'\xd1\x0c'
2024-10-07 07:50:32,366:DEBUG:abstractprotocol:process_response@203: Processing format string: 'BigHex2Short(raw_value)'
2024-10-07 07:50:32,367:DEBUG:protocol_helpers:BigHex2Short@146: Hex b'\xd1\x0c' 2 byte decoded to -12020
2024-10-07 07:50:32,367:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,367:DEBUG:abstractprotocol:decode@523: Got defn ['BigHex2Short:r/1000', 2, "f'Cell {3*f+3:02d} Voltage'", 'V']
2024-10-07 07:50:32,368:DEBUG:abstractprotocol:process_response@117: Got template r/1000 for f'Cell {3*f+3:02d} Voltage' b'\xd0\x0c'
2024-10-07 07:50:32,368:DEBUG:abstractprotocol:process_response@118: Processing data_type: BigHex2Short for data_name: f'Cell {3*f+3:02d} Voltage', raw_value b'\xd0\x0c'
2024-10-07 07:50:32,368:DEBUG:abstractprotocol:process_response@203: Processing format string: 'BigHex2Short(raw_value)'
2024-10-07 07:50:32,369:DEBUG:protocol_helpers:BigHex2Short@146: Hex b'\xd0\x0c' 2 byte decoded to -12276
2024-10-07 07:50:32,369:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,369:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'Reserved', '']
2024-10-07 07:50:32,370:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: Reserved, raw_value b'\xce'
2024-10-07 07:50:32,370:DEBUG:abstractprotocol:process_response@124: Discarding Reserved:b'\xce'
2024-10-07 07:50:32,370:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,370:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'checksum', '']
2024-10-07 07:50:32,371:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: checksum, raw_value b'\xa0'
2024-10-07 07:50:32,371:DEBUG:abstractprotocol:process_response@124: Discarding checksum:b'\xa0'
2024-10-07 07:50:32,371:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,371:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'start flag', '']
2024-10-07 07:50:32,372:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: start flag, raw_value b'w'
2024-10-07 07:50:32,372:DEBUG:abstractprotocol:process_response@124: Discarding start flag:b'w'
2024-10-07 07:50:32,372:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,373:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'module address', '']
2024-10-07 07:50:32,373:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: module address, raw_value b'\xa5'
2024-10-07 07:50:32,373:DEBUG:abstractprotocol:process_response@124: Discarding module address:b'\xa5'
2024-10-07 07:50:32,373:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,374:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'command id', '']
2024-10-07 07:50:32,374:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: command id, raw_value b'\x01'
2024-10-07 07:50:32,374:DEBUG:abstractprotocol:process_response@124: Discarding command id:b'\x01'
2024-10-07 07:50:32,374:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,375:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'data length', '']
2024-10-07 07:50:32,375:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: data length, raw_value b'\x95'
2024-10-07 07:50:32,375:DEBUG:abstractprotocol:process_response@124: Discarding data length:b'\x95'
2024-10-07 07:50:32,375:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,376:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, "f'Frame Number {f:02d}'", '']
2024-10-07 07:50:32,376:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: f'Frame Number {f:02d}', raw_value b'\x08'
2024-10-07 07:50:32,376:DEBUG:abstractprotocol:process_response@124: Discarding f'Frame Number {f:02d}':b'\x08'
2024-10-07 07:50:32,377:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,377:DEBUG:abstractprotocol:decode@523: Got defn ['BigHex2Short:r/1000', 2, "f'Cell {3*f+1:02d} Voltage'", 'V']
2024-10-07 07:50:32,377:DEBUG:abstractprotocol:process_response@117: Got template r/1000 for f'Cell {3*f+1:02d} Voltage' b'\x02\x0c'
2024-10-07 07:50:32,377:DEBUG:abstractprotocol:process_response@118: Processing data_type: BigHex2Short for data_name: f'Cell {3*f+1:02d} Voltage', raw_value b'\x02\x0c'
2024-10-07 07:50:32,378:DEBUG:abstractprotocol:process_response@203: Processing format string: 'BigHex2Short(raw_value)'
2024-10-07 07:50:32,378:DEBUG:protocol_helpers:BigHex2Short@146: Hex b'\x02\x0c' 2 byte decoded to 524
2024-10-07 07:50:32,379:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,379:DEBUG:abstractprotocol:decode@523: Got defn ['BigHex2Short:r/1000', 2, "f'Cell {3*f+2:02d} Voltage'", 'V']
2024-10-07 07:50:32,379:DEBUG:abstractprotocol:process_response@117: Got template r/1000 for f'Cell {3*f+2:02d} Voltage' b'\xd0\x0c'
2024-10-07 07:50:32,379:DEBUG:abstractprotocol:process_response@118: Processing data_type: BigHex2Short for data_name: f'Cell {3*f+2:02d} Voltage', raw_value b'\xd0\x0c'
2024-10-07 07:50:32,380:DEBUG:abstractprotocol:process_response@203: Processing format string: 'BigHex2Short(raw_value)'
2024-10-07 07:50:32,380:DEBUG:protocol_helpers:BigHex2Short@146: Hex b'\xd0\x0c' 2 byte decoded to -12276
2024-10-07 07:50:32,381:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,381:DEBUG:abstractprotocol:decode@523: Got defn ['BigHex2Short:r/1000', 2, "f'Cell {3*f+3:02d} Voltage'", 'V']
2024-10-07 07:50:32,381:DEBUG:abstractprotocol:process_response@117: Got template r/1000 for f'Cell {3*f+3:02d} Voltage' b'\xcf\x0c'
2024-10-07 07:50:32,381:DEBUG:abstractprotocol:process_response@118: Processing data_type: BigHex2Short for data_name: f'Cell {3*f+3:02d} Voltage', raw_value b'\xcf\x0c'
2024-10-07 07:50:32,382:DEBUG:abstractprotocol:process_response@203: Processing format string: 'BigHex2Short(raw_value)'
2024-10-07 07:50:32,382:DEBUG:protocol_helpers:BigHex2Short@146: Hex b'\xcf\x0c' 2 byte decoded to -12532
2024-10-07 07:50:32,383:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,383:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'Reserved', '']
2024-10-07 07:50:32,383:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: Reserved, raw_value b'\xd0'
2024-10-07 07:50:32,383:DEBUG:abstractprotocol:process_response@124: Discarding Reserved:b'\xd0'
2024-10-07 07:50:32,384:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,384:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'checksum', '']
2024-10-07 07:50:32,384:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: checksum, raw_value b'\xa0'
2024-10-07 07:50:32,384:DEBUG:abstractprotocol:process_response@124: Discarding checksum:b'\xa0'
2024-10-07 07:50:32,385:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,385:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'start flag', '']
2024-10-07 07:50:32,385:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: start flag, raw_value b'x'
2024-10-07 07:50:32,385:DEBUG:abstractprotocol:process_response@124: Discarding start flag:b'x'
2024-10-07 07:50:32,385:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,386:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'module address', '']
2024-10-07 07:50:32,386:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: module address, raw_value b'\xa5'
2024-10-07 07:50:32,386:DEBUG:abstractprotocol:process_response@124: Discarding module address:b'\xa5'
2024-10-07 07:50:32,386:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,387:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'command id', '']
2024-10-07 07:50:32,387:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: command id, raw_value b'\x01'
2024-10-07 07:50:32,387:DEBUG:abstractprotocol:process_response@124: Discarding command id:b'\x01'
2024-10-07 07:50:32,387:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,388:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'data length', '']
2024-10-07 07:50:32,388:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: data length, raw_value b'\x95'
2024-10-07 07:50:32,388:DEBUG:abstractprotocol:process_response@124: Discarding data length:b'\x95'
2024-10-07 07:50:32,388:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,389:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, "f'Frame Number {f:02d}'", '']
2024-10-07 07:50:32,389:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: f'Frame Number {f:02d}', raw_value b'\x08'
2024-10-07 07:50:32,389:DEBUG:abstractprotocol:process_response@124: Discarding f'Frame Number {f:02d}':b'\x08'
2024-10-07 07:50:32,389:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,389:DEBUG:abstractprotocol:decode@523: Got defn ['BigHex2Short:r/1000', 2, "f'Cell {3*f+1:02d} Voltage'", 'V']
2024-10-07 07:50:32,390:DEBUG:abstractprotocol:process_response@117: Got template r/1000 for f'Cell {3*f+1:02d} Voltage' b'\x03\x0c'
2024-10-07 07:50:32,390:DEBUG:abstractprotocol:process_response@118: Processing data_type: BigHex2Short for data_name: f'Cell {3*f+1:02d} Voltage', raw_value b'\x03\x0c'
2024-10-07 07:50:32,390:DEBUG:abstractprotocol:process_response@203: Processing format string: 'BigHex2Short(raw_value)'
2024-10-07 07:50:32,390:DEBUG:protocol_helpers:BigHex2Short@146: Hex b'\x03\x0c' 2 byte decoded to 780
2024-10-07 07:50:32,391:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,391:DEBUG:abstractprotocol:decode@523: Got defn ['BigHex2Short:r/1000', 2, "f'Cell {3*f+2:02d} Voltage'", 'V']
2024-10-07 07:50:32,392:DEBUG:abstractprotocol:process_response@117: Got template r/1000 for f'Cell {3*f+2:02d} Voltage' b'\xcf\x0c'
2024-10-07 07:50:32,392:DEBUG:abstractprotocol:process_response@118: Processing data_type: BigHex2Short for data_name: f'Cell {3*f+2:02d} Voltage', raw_value b'\xcf\x0c'
2024-10-07 07:50:32,392:DEBUG:abstractprotocol:process_response@203: Processing format string: 'BigHex2Short(raw_value)'
2024-10-07 07:50:32,393:DEBUG:protocol_helpers:BigHex2Short@146: Hex b'\xcf\x0c' 2 byte decoded to -12532
2024-10-07 07:50:32,393:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,393:DEBUG:abstractprotocol:decode@523: Got defn ['BigHex2Short:r/1000', 2, "f'Cell {3*f+3:02d} Voltage'", 'V']
2024-10-07 07:50:32,394:DEBUG:abstractprotocol:process_response@117: Got template r/1000 for f'Cell {3*f+3:02d} Voltage' b'\xd0\x0c'
2024-10-07 07:50:32,394:DEBUG:abstractprotocol:process_response@118: Processing data_type: BigHex2Short for data_name: f'Cell {3*f+3:02d} Voltage', raw_value b'\xd0\x0c'
2024-10-07 07:50:32,394:DEBUG:abstractprotocol:process_response@203: Processing format string: 'BigHex2Short(raw_value)'
2024-10-07 07:50:32,394:DEBUG:protocol_helpers:BigHex2Short@146: Hex b'\xd0\x0c' 2 byte decoded to -12276
2024-10-07 07:50:32,395:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,395:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'Reserved', '']
2024-10-07 07:50:32,396:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: Reserved, raw_value b'\xcf'
2024-10-07 07:50:32,396:DEBUG:abstractprotocol:process_response@124: Discarding Reserved:b'\xcf'
2024-10-07 07:50:32,396:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,396:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'checksum', '']
2024-10-07 07:50:32,396:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: checksum, raw_value b'\xa0'
2024-10-07 07:50:32,397:DEBUG:abstractprotocol:process_response@124: Discarding checksum:b'\xa0'
2024-10-07 07:50:32,397:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,397:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'start flag', '']
2024-10-07 07:50:32,397:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: start flag, raw_value b'x'
2024-10-07 07:50:32,398:DEBUG:abstractprotocol:process_response@124: Discarding start flag:b'x'
2024-10-07 07:50:32,398:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,398:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'module address', '']
2024-10-07 07:50:32,398:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: module address, raw_value b'\xa5'
2024-10-07 07:50:32,398:DEBUG:abstractprotocol:process_response@124: Discarding module address:b'\xa5'
2024-10-07 07:50:32,399:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,399:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'command id', '']
2024-10-07 07:50:32,399:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: command id, raw_value b'\x01'
2024-10-07 07:50:32,400:DEBUG:abstractprotocol:process_response@124: Discarding command id:b'\x01'
2024-10-07 07:50:32,400:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,400:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'data length', '']
2024-10-07 07:50:32,400:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: data length, raw_value b'\x95'
2024-10-07 07:50:32,400:DEBUG:abstractprotocol:process_response@124: Discarding data length:b'\x95'
2024-10-07 07:50:32,401:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,401:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, "f'Frame Number {f:02d}'", '']
2024-10-07 07:50:32,401:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: f'Frame Number {f:02d}', raw_value b'\x08'
2024-10-07 07:50:32,401:DEBUG:abstractprotocol:process_response@124: Discarding f'Frame Number {f:02d}':b'\x08'
2024-10-07 07:50:32,402:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,402:DEBUG:abstractprotocol:decode@523: Got defn ['BigHex2Short:r/1000', 2, "f'Cell {3*f+1:02d} Voltage'", 'V']
2024-10-07 07:50:32,402:DEBUG:abstractprotocol:process_response@117: Got template r/1000 for f'Cell {3*f+1:02d} Voltage' b'\x04\x0c'
2024-10-07 07:50:32,402:DEBUG:abstractprotocol:process_response@118: Processing data_type: BigHex2Short for data_name: f'Cell {3*f+1:02d} Voltage', raw_value b'\x04\x0c'
2024-10-07 07:50:32,403:DEBUG:abstractprotocol:process_response@203: Processing format string: 'BigHex2Short(raw_value)'
2024-10-07 07:50:32,403:DEBUG:protocol_helpers:BigHex2Short@146: Hex b'\x04\x0c' 2 byte decoded to 1036
2024-10-07 07:50:32,403:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,404:DEBUG:abstractprotocol:decode@523: Got defn ['BigHex2Short:r/1000', 2, "f'Cell {3*f+2:02d} Voltage'", 'V']
2024-10-07 07:50:32,404:DEBUG:abstractprotocol:process_response@117: Got template r/1000 for f'Cell {3*f+2:02d} Voltage' b'\xd0\x0c'
2024-10-07 07:50:32,404:DEBUG:abstractprotocol:process_response@118: Processing data_type: BigHex2Short for data_name: f'Cell {3*f+2:02d} Voltage', raw_value b'\xd0\x0c'
2024-10-07 07:50:32,404:DEBUG:abstractprotocol:process_response@203: Processing format string: 'BigHex2Short(raw_value)'
2024-10-07 07:50:32,404:DEBUG:protocol_helpers:BigHex2Short@146: Hex b'\xd0\x0c' 2 byte decoded to -12276
2024-10-07 07:50:32,404:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,405:DEBUG:abstractprotocol:decode@523: Got defn ['BigHex2Short:r/1000', 2, "f'Cell {3*f+3:02d} Voltage'", 'V']
2024-10-07 07:50:32,405:DEBUG:abstractprotocol:process_response@117: Got template r/1000 for f'Cell {3*f+3:02d} Voltage' b'\xcf\x0c'
2024-10-07 07:50:32,405:DEBUG:abstractprotocol:process_response@118: Processing data_type: BigHex2Short for data_name: f'Cell {3*f+3:02d} Voltage', raw_value b'\xcf\x0c'
2024-10-07 07:50:32,405:DEBUG:abstractprotocol:process_response@203: Processing format string: 'BigHex2Short(raw_value)'
2024-10-07 07:50:32,405:DEBUG:protocol_helpers:BigHex2Short@146: Hex b'\xcf\x0c' 2 byte decoded to -12532
2024-10-07 07:50:32,405:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,405:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'Reserved', '']
2024-10-07 07:50:32,405:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: Reserved, raw_value b'\xd0'
2024-10-07 07:50:32,405:DEBUG:abstractprotocol:process_response@124: Discarding Reserved:b'\xd0'
2024-10-07 07:50:32,405:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,406:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'checksum', '']
2024-10-07 07:50:32,406:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: checksum, raw_value b'\xa0'
2024-10-07 07:50:32,406:DEBUG:abstractprotocol:process_response@124: Discarding checksum:b'\xa0'
2024-10-07 07:50:32,406:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,406:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'start flag', '']
2024-10-07 07:50:32,406:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: start flag, raw_value b'z'
2024-10-07 07:50:32,406:DEBUG:abstractprotocol:process_response@124: Discarding start flag:b'z'
2024-10-07 07:50:32,406:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,406:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'module address', '']
2024-10-07 07:50:32,406:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: module address, raw_value b'\xa5'
2024-10-07 07:50:32,406:DEBUG:abstractprotocol:process_response@124: Discarding module address:b'\xa5'
2024-10-07 07:50:32,406:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,406:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'command id', '']
2024-10-07 07:50:32,406:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: command id, raw_value b'\x01'
2024-10-07 07:50:32,407:DEBUG:abstractprotocol:process_response@124: Discarding command id:b'\x01'
2024-10-07 07:50:32,407:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,407:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'data length', '']
2024-10-07 07:50:32,407:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: data length, raw_value b'\x95'
2024-10-07 07:50:32,407:DEBUG:abstractprotocol:process_response@124: Discarding data length:b'\x95'
2024-10-07 07:50:32,407:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,407:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, "f'Frame Number {f:02d}'", '']
2024-10-07 07:50:32,407:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: f'Frame Number {f:02d}', raw_value b'\x08'
2024-10-07 07:50:32,407:DEBUG:abstractprotocol:process_response@124: Discarding f'Frame Number {f:02d}':b'\x08'
2024-10-07 07:50:32,407:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,407:DEBUG:abstractprotocol:decode@523: Got defn ['BigHex2Short:r/1000', 2, "f'Cell {3*f+1:02d} Voltage'", 'V']
2024-10-07 07:50:32,407:DEBUG:abstractprotocol:process_response@117: Got template r/1000 for f'Cell {3*f+1:02d} Voltage' b'\x05\x0c'
2024-10-07 07:50:32,407:DEBUG:abstractprotocol:process_response@118: Processing data_type: BigHex2Short for data_name: f'Cell {3*f+1:02d} Voltage', raw_value b'\x05\x0c'
2024-10-07 07:50:32,408:DEBUG:abstractprotocol:process_response@203: Processing format string: 'BigHex2Short(raw_value)'
2024-10-07 07:50:32,408:DEBUG:protocol_helpers:BigHex2Short@146: Hex b'\x05\x0c' 2 byte decoded to 1292
2024-10-07 07:50:32,408:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,408:DEBUG:abstractprotocol:decode@523: Got defn ['BigHex2Short:r/1000', 2, "f'Cell {3*f+2:02d} Voltage'", 'V']
2024-10-07 07:50:32,408:DEBUG:abstractprotocol:process_response@117: Got template r/1000 for f'Cell {3*f+2:02d} Voltage' b'\xcf\x0c'
2024-10-07 07:50:32,408:DEBUG:abstractprotocol:process_response@118: Processing data_type: BigHex2Short for data_name: f'Cell {3*f+2:02d} Voltage', raw_value b'\xcf\x0c'
2024-10-07 07:50:32,408:DEBUG:abstractprotocol:process_response@203: Processing format string: 'BigHex2Short(raw_value)'
2024-10-07 07:50:32,408:DEBUG:protocol_helpers:BigHex2Short@146: Hex b'\xcf\x0c' 2 byte decoded to -12532
2024-10-07 07:50:32,408:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,409:DEBUG:abstractprotocol:decode@523: Got defn ['BigHex2Short:r/1000', 2, "f'Cell {3*f+3:02d} Voltage'", 'V']
2024-10-07 07:50:32,409:DEBUG:abstractprotocol:process_response@117: Got template r/1000 for f'Cell {3*f+3:02d} Voltage' b'\xd0\x0c'
2024-10-07 07:50:32,409:DEBUG:abstractprotocol:process_response@118: Processing data_type: BigHex2Short for data_name: f'Cell {3*f+3:02d} Voltage', raw_value b'\xd0\x0c'
2024-10-07 07:50:32,409:DEBUG:abstractprotocol:process_response@203: Processing format string: 'BigHex2Short(raw_value)'
2024-10-07 07:50:32,409:DEBUG:protocol_helpers:BigHex2Short@146: Hex b'\xd0\x0c' 2 byte decoded to -12276
2024-10-07 07:50:32,409:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,409:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'Reserved', '']
2024-10-07 07:50:32,409:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: Reserved, raw_value b'\xcf'
2024-10-07 07:50:32,409:DEBUG:abstractprotocol:process_response@124: Discarding Reserved:b'\xcf'
2024-10-07 07:50:32,409:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,409:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'checksum', '']
2024-10-07 07:50:32,409:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: checksum, raw_value b'\xa0'
2024-10-07 07:50:32,410:DEBUG:abstractprotocol:process_response@124: Discarding checksum:b'\xa0'
2024-10-07 07:50:32,410:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,410:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'start flag', '']
2024-10-07 07:50:32,410:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: start flag, raw_value b'z'
2024-10-07 07:50:32,410:DEBUG:abstractprotocol:process_response@124: Discarding start flag:b'z'
2024-10-07 07:50:32,410:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,410:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'module address', '']
2024-10-07 07:50:32,410:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: module address, raw_value b'\xa5'
2024-10-07 07:50:32,410:DEBUG:abstractprotocol:process_response@124: Discarding module address:b'\xa5'
2024-10-07 07:50:32,410:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,410:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'command id', '']
2024-10-07 07:50:32,410:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: command id, raw_value b'\x01'
2024-10-07 07:50:32,410:DEBUG:abstractprotocol:process_response@124: Discarding command id:b'\x01'
2024-10-07 07:50:32,411:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,411:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'data length', '']
2024-10-07 07:50:32,411:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: data length, raw_value b'\x95'
2024-10-07 07:50:32,411:DEBUG:abstractprotocol:process_response@124: Discarding data length:b'\x95'
2024-10-07 07:50:32,411:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,411:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, "f'Frame Number {f:02d}'", '']
2024-10-07 07:50:32,411:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: f'Frame Number {f:02d}', raw_value b'\x08'
2024-10-07 07:50:32,411:DEBUG:abstractprotocol:process_response@124: Discarding f'Frame Number {f:02d}':b'\x08'
2024-10-07 07:50:32,411:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,411:DEBUG:abstractprotocol:decode@523: Got defn ['BigHex2Short:r/1000', 2, "f'Cell {3*f+1:02d} Voltage'", 'V']
2024-10-07 07:50:32,411:DEBUG:abstractprotocol:process_response@117: Got template r/1000 for f'Cell {3*f+1:02d} Voltage' b'\x06\x0c'
2024-10-07 07:50:32,411:DEBUG:abstractprotocol:process_response@118: Processing data_type: BigHex2Short for data_name: f'Cell {3*f+1:02d} Voltage', raw_value b'\x06\x0c'
2024-10-07 07:50:32,412:DEBUG:abstractprotocol:process_response@203: Processing format string: 'BigHex2Short(raw_value)'
2024-10-07 07:50:32,412:DEBUG:protocol_helpers:BigHex2Short@146: Hex b'\x06\x0c' 2 byte decoded to 1548
2024-10-07 07:50:32,412:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,412:DEBUG:abstractprotocol:decode@523: Got defn ['BigHex2Short:r/1000', 2, "f'Cell {3*f+2:02d} Voltage'", 'V']
2024-10-07 07:50:32,412:DEBUG:abstractprotocol:process_response@117: Got template r/1000 for f'Cell {3*f+2:02d} Voltage' b'\xcf\x0c'
2024-10-07 07:50:32,412:DEBUG:abstractprotocol:process_response@118: Processing data_type: BigHex2Short for data_name: f'Cell {3*f+2:02d} Voltage', raw_value b'\xcf\x0c'
2024-10-07 07:50:32,412:DEBUG:abstractprotocol:process_response@203: Processing format string: 'BigHex2Short(raw_value)'
2024-10-07 07:50:32,412:DEBUG:protocol_helpers:BigHex2Short@146: Hex b'\xcf\x0c' 2 byte decoded to -12532
2024-10-07 07:50:32,412:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,413:DEBUG:abstractprotocol:decode@523: Got defn ['BigHex2Short:r/1000', 2, "f'Cell {3*f+3:02d} Voltage'", 'V']
2024-10-07 07:50:32,413:DEBUG:abstractprotocol:process_response@117: Got template r/1000 for f'Cell {3*f+3:02d} Voltage' b'\xd0\x0c'
2024-10-07 07:50:32,413:DEBUG:abstractprotocol:process_response@118: Processing data_type: BigHex2Short for data_name: f'Cell {3*f+3:02d} Voltage', raw_value b'\xd0\x0c'
2024-10-07 07:50:32,413:DEBUG:abstractprotocol:process_response@203: Processing format string: 'BigHex2Short(raw_value)'
2024-10-07 07:50:32,413:DEBUG:protocol_helpers:BigHex2Short@146: Hex b'\xd0\x0c' 2 byte decoded to -12276
2024-10-07 07:50:32,413:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,413:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'Reserved', '']
2024-10-07 07:50:32,413:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: Reserved, raw_value b'\xcf'
2024-10-07 07:50:32,413:DEBUG:abstractprotocol:process_response@124: Discarding Reserved:b'\xcf'
2024-10-07 07:50:32,413:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,413:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'checksum', '']
2024-10-07 07:50:32,413:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: checksum, raw_value b'\xa0'
2024-10-07 07:50:32,413:DEBUG:abstractprotocol:process_response@124: Discarding checksum:b'\xa0'
2024-10-07 07:50:32,414:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,414:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'start flag', '']
2024-10-07 07:50:32,414:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: start flag, raw_value b'{'
2024-10-07 07:50:32,414:DEBUG:abstractprotocol:process_response@124: Discarding start flag:b'{'
2024-10-07 07:50:32,414:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,414:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'module address', '']
2024-10-07 07:50:32,414:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: module address, raw_value b''
2024-10-07 07:50:32,414:DEBUG:abstractprotocol:process_response@124: Discarding module address:b''
2024-10-07 07:50:32,414:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,414:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'command id', '']
2024-10-07 07:50:32,414:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: command id, raw_value b''
2024-10-07 07:50:32,414:DEBUG:abstractprotocol:process_response@124: Discarding command id:b''
2024-10-07 07:50:32,414:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,415:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'data length', '']
2024-10-07 07:50:32,415:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: data length, raw_value b''
2024-10-07 07:50:32,415:DEBUG:abstractprotocol:process_response@124: Discarding data length:b''
2024-10-07 07:50:32,415:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,415:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, "f'Frame Number {f:02d}'", '']
2024-10-07 07:50:32,415:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: f'Frame Number {f:02d}', raw_value b''
2024-10-07 07:50:32,415:DEBUG:abstractprotocol:process_response@124: Discarding f'Frame Number {f:02d}':b''
2024-10-07 07:50:32,415:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,415:DEBUG:abstractprotocol:decode@523: Got defn ['BigHex2Short:r/1000', 2, "f'Cell {3*f+1:02d} Voltage'", 'V']
2024-10-07 07:50:32,415:DEBUG:abstractprotocol:process_response@117: Got template r/1000 for f'Cell {3*f+1:02d} Voltage' b''
2024-10-07 07:50:32,415:DEBUG:abstractprotocol:process_response@118: Processing data_type: BigHex2Short for data_name: f'Cell {3*f+1:02d} Voltage', raw_value b''
2024-10-07 07:50:32,415:DEBUG:abstractprotocol:process_response@203: Processing format string: 'BigHex2Short(raw_value)'
2024-10-07 07:50:32,416:INFO:protocol_helpers:BigHex2Short@143: Hex encoded value must be 2 bytes long. Was 0 length
2024-10-07 07:50:32,416:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,416:DEBUG:abstractprotocol:decode@523: Got defn ['BigHex2Short:r/1000', 2, "f'Cell {3*f+2:02d} Voltage'", 'V']
2024-10-07 07:50:32,416:DEBUG:abstractprotocol:process_response@117: Got template r/1000 for f'Cell {3*f+2:02d} Voltage' b''
2024-10-07 07:50:32,416:DEBUG:abstractprotocol:process_response@118: Processing data_type: BigHex2Short for data_name: f'Cell {3*f+2:02d} Voltage', raw_value b''
2024-10-07 07:50:32,416:DEBUG:abstractprotocol:process_response@203: Processing format string: 'BigHex2Short(raw_value)'
2024-10-07 07:50:32,416:INFO:protocol_helpers:BigHex2Short@143: Hex encoded value must be 2 bytes long. Was 0 length
2024-10-07 07:50:32,416:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,417:DEBUG:abstractprotocol:decode@523: Got defn ['BigHex2Short:r/1000', 2, "f'Cell {3*f+3:02d} Voltage'", 'V']
2024-10-07 07:50:32,417:DEBUG:abstractprotocol:process_response@117: Got template r/1000 for f'Cell {3*f+3:02d} Voltage' b''
2024-10-07 07:50:32,417:DEBUG:abstractprotocol:process_response@118: Processing data_type: BigHex2Short for data_name: f'Cell {3*f+3:02d} Voltage', raw_value b''
2024-10-07 07:50:32,417:DEBUG:abstractprotocol:process_response@203: Processing format string: 'BigHex2Short(raw_value)'
2024-10-07 07:50:32,417:INFO:protocol_helpers:BigHex2Short@143: Hex encoded value must be 2 bytes long. Was 0 length
2024-10-07 07:50:32,417:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,417:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'Reserved', '']
2024-10-07 07:50:32,417:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: Reserved, raw_value b''
2024-10-07 07:50:32,417:DEBUG:abstractprotocol:process_response@124: Discarding Reserved:b''
2024-10-07 07:50:32,417:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-10-07 07:50:32,417:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'checksum', '']
2024-10-07 07:50:32,417:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: checksum, raw_value b''
2024-10-07 07:50:32,417:DEBUG:abstractprotocol:process_response@124: Discarding checksum:b''
2024-10-07 07:50:32,418:INFO:device:run_command@116: Decoded response {'_command': 'cellVoltages', '_command_description': 'Cell Voltages Information', 'raw_response': ['{¥\x01\x95\x08\x06\x0cÎ\x0cÐ\x0cÐ\xa0{¥\x01\x95\x08\x01\x0cÑ\x0cÐ\x0cÎ\xa0w¥\x01\x95\x08\x02\x0cÐ\x0cÏ\x0cÐ\xa0x¥\x01\x95\x08\x03\x0cÏ\x0cÐ\x0cÏ\xa0x¥\x01\x95\x08\x04\x0cÐ\x0cÏ\x0cÐ\xa0z¥\x01\x95\x08\x05\x0cÏ\x0cÐ\x0cÏ\xa0z¥\x01\x95\x08\x06\x0cÏ\x0cÐ\x0cÏ\xa0{', ''], 'Cell 01 Voltage': [1.548, 'V'], 'Cell 02 Voltage': [-12.788, 'V'], 'Cell 03 Voltage': [-12.276, 'V'], 'Cell 04 Voltage': [0.268, 'V'], 'Cell 05 Voltage': [-12.02, 'V'], 'Cell 06 Voltage': [-12.276, 'V'], 'Cell 07 Voltage': [0.524, 'V'], 'Cell 08 Voltage': [-12.276, 'V'], 'Cell 09 Voltage': [-12.532, 'V'], 'Cell 10 Voltage': [0.78, 'V'], 'Cell 11 Voltage': [-12.532, 'V'], 'Cell 12 Voltage': [-12.276, 'V'], 'Cell 13 Voltage': [1.036, 'V'], 'Cell 14 Voltage': [-12.276, 'V'], 'Cell 15 Voltage': [-12.532, 'V'], 'Cell 16 Voltage': [1.292, 'V'], 'Cell 17 Voltage': [-12.532, 'V'], 'Cell 18 Voltage': [-12.276, 'V'], 'Cell 19 Voltage': [1.548, 'V'], 'Cell 20 Voltage': [-12.532, 'V'], 'Cell 21 Voltage': [-12.276, 'V'], 'Cell 22 Voltage': [0.0, 'V'], 'Cell 23 Voltage': [0.0, 'V'], 'Cell 24 Voltage': [0.0, 'V']}
2024-10-07 07:50:32,418:DEBUG:__init__:main@443: results: {'_command': 'cellVoltages', '_command_description': 'Cell Voltages Information', 'raw_response': ['{¥\x01\x95\x08\x06\x0cÎ\x0cÐ\x0cÐ\xa0{¥\x01\x95\x08\x01\x0cÑ\x0cÐ\x0cÎ\xa0w¥\x01\x95\x08\x02\x0cÐ\x0cÏ\x0cÐ\xa0x¥\x01\x95\x08\x03\x0cÏ\x0cÐ\x0cÏ\xa0x¥\x01\x95\x08\x04\x0cÐ\x0cÏ\x0cÐ\xa0z¥\x01\x95\x08\x05\x0cÏ\x0cÐ\x0cÏ\xa0z¥\x01\x95\x08\x06\x0cÏ\x0cÐ\x0cÏ\xa0{', ''], 'Cell 01 Voltage': [1.548, 'V'], 'Cell 02 Voltage': [-12.788, 'V'], 'Cell 03 Voltage': [-12.276, 'V'], 'Cell 04 Voltage': [0.268, 'V'], 'Cell 05 Voltage': [-12.02, 'V'], 'Cell 06 Voltage': [-12.276, 'V'], 'Cell 07 Voltage': [0.524, 'V'], 'Cell 08 Voltage': [-12.276, 'V'], 'Cell 09 Voltage': [-12.532, 'V'], 'Cell 10 Voltage': [0.78, 'V'], 'Cell 11 Voltage': [-12.532, 'V'], 'Cell 12 Voltage': [-12.276, 'V'], 'Cell 13 Voltage': [1.036, 'V'], 'Cell 14 Voltage': [-12.276, 'V'], 'Cell 15 Voltage': [-12.532, 'V'], 'Cell 16 Voltage': [1.292, 'V'], 'Cell 17 Voltage': [-12.532, 'V'], 'Cell 18 Voltage': [-12.276, 'V'], 'Cell 19 Voltage': [1.548, 'V'], 'Cell 20 Voltage': [-12.532, 'V'], 'Cell 21 Voltage': [-12.276, 'V'], 'Cell 22 Voltage': [0.0, 'V'], 'Cell 23 Voltage': [0.0, 'V'], 'Cell 24 Voltage': [0.0, 'V']}
2024-10-07 07:50:32,418:INFO:__init__:get_output@40: attempting to create output processor: screen
2024-10-07 07:50:32,419:DEBUG:screen:__init__@17: processor.screen __init__ args: (), kwargs: {}
2024-10-07 07:50:32,419:DEBUG:__init__:main@449: Using output filter: None
2024-10-07 07:50:32,419:INFO:screen:output@23: Using output processor: screen
2024-10-07 07:50:32,420:DEBUG:screen:output@24: kwargs {'data': {'_command': 'cellVoltages', '_command_description': 'Cell Voltages Information', 'raw_response': ['{¥\x01\x95\x08\x06\x0cÎ\x0cÐ\x0cÐ\xa0{¥\x01\x95\x08\x01\x0cÑ\x0cÐ\x0cÎ\xa0w¥\x01\x95\x08\x02\x0cÐ\x0cÏ\x0cÐ\xa0x¥\x01\x95\x08\x03\x0cÏ\x0cÐ\x0cÏ\xa0x¥\x01\x95\x08\x04\x0cÐ\x0cÏ\x0cÐ\xa0z¥\x01\x95\x08\x05\x0cÏ\x0cÐ\x0cÏ\xa0z¥\x01\x95\x08\x06\x0cÏ\x0cÐ\x0cÏ\xa0{', ''], 'Cell 01 Voltage': [1.548, 'V'], 'Cell 02 Voltage': [-12.788, 'V'], 'Cell 03 Voltage': [-12.276, 'V'], 'Cell 04 Voltage': [0.268, 'V'], 'Cell 05 Voltage': [-12.02, 'V'], 'Cell 06 Voltage': [-12.276, 'V'], 'Cell 07 Voltage': [0.524, 'V'], 'Cell 08 Voltage': [-12.276, 'V'], 'Cell 09 Voltage': [-12.532, 'V'], 'Cell 10 Voltage': [0.78, 'V'], 'Cell 11 Voltage': [-12.532, 'V'], 'Cell 12 Voltage': [-12.276, 'V'], 'Cell 13 Voltage': [1.036, 'V'], 'Cell 14 Voltage': [-12.276, 'V'], 'Cell 15 Voltage': [-12.532, 'V'], 'Cell 16 Voltage': [1.292, 'V'], 'Cell 17 Voltage': [-12.532, 'V'], 'Cell 18 Voltage': [-12.276, 'V'], 'Cell 19 Voltage': [1.548, 'V'], 'Cell 20 Voltage': [-12.532, 'V'], 'Cell 21 Voltage': [-12.276, 'V'], 'Cell 22 Voltage': [0.0, 'V'], 'Cell 23 Voltage': [0.0, 'V'], 'Cell 24 Voltage': [0.0, 'V']}, 'tag': 'cellVoltages', 'name': 'DalyBMS', 'mqtt_broker': <mppsolar.libs.mqttbrokerc.MqttBroker object at 0x7f8d379b10>, 'udp_port': 5555, 'postgres_url': None, 'mongo_url': None, 'mongo_db': 'mppsolar', 'push_url': 'http://localhost:9091/metrics/job/pushgateway', 'prom_output_dir': '/var/lib/node_exporter', 'mqtt_topic': None, 'filter': None, 'excl_filter': None, 'keep_case': False}
2024-10-07 07:50:32,420:DEBUG:screen:output@68: displayData: {'cell_01_voltage': [1.548, 'V'], 'cell_02_voltage': [-12.788, 'V'], 'cell_03_voltage': [-12.276, 'V'], 'cell_04_voltage': [0.268, 'V'], 'cell_05_voltage': [-12.02, 'V'], 'cell_06_voltage': [-12.276, 'V'], 'cell_07_voltage': [0.524, 'V'], 'cell_08_voltage': [-12.276, 'V'], 'cell_09_voltage': [-12.532, 'V'], 'cell_10_voltage': [0.78, 'V'], 'cell_11_voltage': [-12.532, 'V'], 'cell_12_voltage': [-12.276, 'V'], 'cell_13_voltage': [1.036, 'V'], 'cell_14_voltage': [-12.276, 'V'], 'cell_15_voltage': [-12.532, 'V'], 'cell_16_voltage': [1.292, 'V'], 'cell_17_voltage': [-12.532, 'V'], 'cell_18_voltage': [-12.276, 'V'], 'cell_19_voltage': [1.548, 'V'], 'cell_20_voltage': [-12.532, 'V'], 'cell_21_voltage': [-12.276, 'V'], 'cell_22_voltage': [0.0, 'V'], 'cell_23_voltage': [0.0, 'V'], 'cell_24_voltage': [0.0, 'V']}
Command: cellVoltages - Cell Voltages Information
--------------------------------------------------------------------------------
Parameter       Value          Unit
cell_01_voltage 1.548          V
cell_02_voltage -12.788        V
cell_03_voltage -12.276        V
cell_04_voltage 0.268          V
cell_05_voltage -12.02         V
cell_06_voltage -12.276        V
cell_07_voltage 0.524          V
cell_08_voltage -12.276        V
cell_09_voltage -12.532        V
cell_10_voltage 0.78           V
cell_11_voltage -12.532        V
cell_12_voltage -12.276        V
cell_13_voltage 1.036          V
cell_14_voltage -12.276        V
cell_15_voltage -12.532        V
cell_16_voltage 1.292          V
cell_17_voltage -12.532        V
cell_18_voltage -12.276        V
cell_19_voltage 1.548          V
cell_20_voltage -12.532        V
cell_21_voltage -12.276        V
cell_22_voltage 0.0            V
cell_23_voltage 0.0            V
cell_24_voltage 0.0            V
--------------------------------------------------------------------------------


2024-10-07 07:50:32,420:DEBUG:__init__:main@476: Not daemon, so not looping

Notes

This is the serial response, broken down in chunks:

{\
xa5\x01\x95\x08\x06\x0c\xce\x0c\xd0\x0c\xd0\xa0{\
xa5\x01\x95\x08\x01\x0c\xd1\x0c\xd0\x0c\xce\xa0w\
xa5\x01\x95\x08\x02\x0c\xd0\x0c\xcf\x0c\xd0\xa0x\
xa5\x01\x95\x08\x03\x0c\xcf\x0c\xd0\x0c\xcf\xa0x\
xa5\x01\x95\x08\x04\x0c\xd0\x0c\xcf\x0c\xd0\xa0z\
xa5\x01\x95\x08\x05\x0c\xcf\x0c\xd0\x0c\xcf\xa0z\
xa5\x01\x95\x08\x06\x0c\xcf\x0c\xd0\x0c\xcf\xa0{

Based on the frame_number (the fifth byte) it looks like two readings where the first one is cut off right before the 6th chunk.

Relevant dalyserialio logs:

2024-10-07 07:50:31,836:DEBUG:dalyserialio:send_and_receive@32: bytes waiting 92
2024-10-07 07:50:32,336:DEBUG:dalyserialio:send_and_receive@32: bytes waiting 0

Here's another example, same command:

                        \xd4\x0c\xd3\x0c\xd4\x82g
\xa5\x01\x95\x08\x04\x0c\xd3\x0c\xd4\x0c\xd3\x82g
\xa5\x01\x95\x08\x05\x0c\xd4\x0c\xd3\x0c\xd4\x82i
\xa5\x01\x95\x08\x06\x0c\xd2\x0c\xd3\x0c\xd4\x82h
\xa5\x01\x95\x08\x01\x0c\xd5\x0c\xd4\x0c\xd3\x82f
\xa5\x01\x95\x08\x02\x0c\xd4\x0c\xd3\x0c\xd4\x82f
\xa5\x01\x95\x08\x03\x0c\xd3\x0c\xd4\x0c\xd3\x82f
\xa5\x01\x95\x08\x04\x0c\xd4\x0c\xd3\x0c\xd4\x82h
\xa5\x01\x95\x08\x05\x0c\xd3\x0c\xd4\x0c\xd3\x82h
\xa5\x01\x95\x08\x06\x0c\xd2\x0c\xd4\x0c\xd3\x82h
\xa5\x01\x93\x08\x02\x01\x01\x1f\x00\x01\xa60;
\xa5\x01\x96\x08\x017\x00\x00\x00\x00\x000\xac
\xa5\x01\x94\x08\x10\x01\x00\x00\x00\x00\x0fT\xb6

Here we have more fragmented outputs. There are also chunks from different command_ids (\x93, \x96, \x94).

I observed that the correct readings have exactly 78 bytes (6 * 13). Anything else results in incorrect readings.

Things I've tried

  • running the command with --porttype=daly makes many responses incomplete
  • baud rate other than 9600 doesn't return anything at all
  • P=DALY40 doesn't seem to have any effect
@jblance
Copy link
Owner

jblance commented Oct 15, 2024

I've got this working in powermon code, I'll see if I can backport to mppsolar (but i might not be able to easily)

/workspaces/powermon (master) $ powermon -C tests/config/ble_daly.yaml -I
2024-10-15 21:27:52,231:INFO:runner:main@108: Power Device Monitoring Utility, version: 1.0.10-dev, python version: 3.11.7
2024-10-15 21:27:52,231:INFO:runner:main@120: Using config file: tests/config/ble_daly.yaml
2024-10-15 21:27:52,233:INFO:runner:main@131: Config validation successful
2024-10-15 21:27:52,233:INFO:runner:main@147: config: {'device': {'name': 'BLE_Advertising', 'serial_number': 'SmartShunt Bat2', 'model': 'SmartShunt 500A/50mV', 'manufacturer': 'Victron', 'port': {'type': 'test', 'protocol': 'DALY', 'response_number': 3}}, 'commands': [{'command': 'cell_voltages', 'outputs': [{'type': 'screen', 'format': {'type': 'table', 'draw_lines': True}}]}], 'loop': 'once', 'debuglevel': 20}
2024-10-15 21:27:52,233:INFO:runner:main@151: MqttBroker DISABLED
2024-10-15 21:27:52,237:INFO:abstractprotocol:check_definitions_count@123: Using protocol:b'DALY' with 6 commands (SOC, cell_voltage_range, temperatures, mosfet, status, cell_voltages)
2024-10-15 21:27:52,237:INFO:runner:main@174: Adding command, config: {'command': 'cell_voltages', 'outputs': [{'type': 'screen', 'format': {'type': 'table', 'draw_lines': True}}]}
2024-10-15 21:27:52,238:INFO:runner:main@176: Device: BLE_Advertising, self.device_info.serial_number='SmartShunt Bat2', self.device_info.model='SmartShunt 500A/50mV', self.device_info.manufacturer='Victron', port: Test port, mqtt_broker: MqttBroker DISABLED, commands:[<powermon.commands.command.Command object at 0x7426300382d0>]
2024-10-15 21:27:52,238:INFO:runner:main@180: Daemon DISABLED
2024-10-15 21:27:52,238:INFO:apicoordinator:from_config@49: No api definition in config
2024-10-15 21:27:52,238:INFO:runner:main@186: ApiCoordinator DISABLED
2024-10-15 21:27:52,238:INFO:device:initialize@153: initializing device
2024-10-15 21:27:52,238:INFO:device:run@196: Running command: Command: self.code='cell_voltages' self.full_command=None, self.command_type='basic',             [_outs='outputs.Screen: outputs the results to the screen as per the formatter supplied'], last_run='Not yet run', next_run='15 Oct 2024 21:27:52', trigger: every 60 loops togo: 0, CommandDefinition: self.code='cell_voltages', self.description='cell_voltages', self.result_type=<ResultType.CONSTRUCT: 8>, reading_definition count: 30, self.command_code='95', self.command_type=<CommandType.SERIAL_READ_UNTIL_DONE: 'serial_read_util_done'>, self.command_data=None self.override=None self.template=None
2024-10-15 21:27:52,239:INFO:daly:get_full_command@297: Using protocol b'DALY' with 6 commands
2024-10-15 21:27:52,239:INFO:testport:send_and_receive@68: Selected response number 3:, b'{\xa5\x01\x95\x08\x06\x0c\xce\x0c\xd0\x0c\xd0\xa0{\xa5\x01\x95\x08\x01\x0c\xd1\x0c\xd0\x0c\xce\xa0w\xa5\x01\x95\x08\x02\x0c\xd0\x0c\xcf\x0c\xd0\xa0x\xa5\x01\x95\x08\x03\x0c\xcf\x0c\xd0\x0c\xcf\xa0x\xa5\x01\x95\x08\x04\x0c\xd0\x0c\xcf\x0c\xd0\xa0z\xa5\x01\x95\x08\x05\x0c\xcf\x0c\xd0\x0c\xcf\xa0z\xa5\x01\x95\x08\x06\x0c\xcf\x0c\xd0\x0c\xcf\xa0{'
2024-10-15 21:27:52,239:INFO:result:decode_responses@105: result.response passed to decode: [('cell_16_voltage', 3278), ('cell_17_voltage', 3280), ('cell_18_voltage', 3280), ('cell_01_voltage', 3281), ('cell_02_voltage', 3280), ('cell_03_voltage', 3278), ('cell_04_voltage', 3280), ('cell_05_voltage', 3279), ('cell_06_voltage', 3280), ('cell_07_voltage', 3279), ('cell_08_voltage', 3280), ('cell_09_voltage', 3279), ('cell_10_voltage', 3280), ('cell_11_voltage', 3279), ('cell_12_voltage', 3280), ('cell_13_voltage', 3279), ('cell_14_voltage', 3280), ('cell_15_voltage', 3279), ('cell_16_voltage', 3279), ('cell_17_voltage', 3280), ('cell_18_voltage', 3279)], result_type ResultType.CONSTRUCT
2024-10-15 21:27:52,239:INFO:device:run@200: Got result: Result: self.command.command_definition.description='cell_voltages': self.is_valid=True, self.error=False - self.error_messages=[], self.raw_response=b'{\xa5\x01\x95\x08\x06\x0c\xce\x0c\xd0\x0c\xd0\xa0{\xa5\x01\x95\x08\x01\x0c\xd1\x0c\xd0\x0c\xce\xa0w\xa5\x01\x95\x08\x02\x0c\xd0\x0c\xcf\x0c\xd0\xa0x\xa5\x01\x95\x08\x03\x0c\xcf\x0c\xd0\x0c\xcf\xa0x\xa5\x01\x95\x08\x04\x0c\xd0\x0c\xcf\x0c\xd0\xa0z\xa5\x01\x95\x08\x05\x0c\xcf\x0c\xd0\x0c\xcf\xa0z\xa5\x01\x95\x08\x06\x0c\xcf\x0c\xd0\x0c\xcf\xa0{', Reading: self.data_name='cell_16_voltage', self.data_value=3.278, self.data_unit='V', self.is_valid=True,Reading: self.data_name='cell_17_voltage', self.data_value=3.28, self.data_unit='V', self.is_valid=True,Reading: self.data_name='cell_18_voltage', self.data_value=3.28, self.data_unit='V', self.is_valid=True,Reading: self.data_name='cell_01_voltage', self.data_value=3.281, self.data_unit='V', self.is_valid=True,Reading: self.data_name='cell_02_voltage', self.data_value=3.28, self.data_unit='V', self.is_valid=True,Reading: self.data_name='cell_03_voltage', self.data_value=3.278, self.data_unit='V', self.is_valid=True,Reading: self.data_name='cell_04_voltage', self.data_value=3.28, self.data_unit='V', self.is_valid=True,Reading: self.data_name='cell_05_voltage', self.data_value=3.279, self.data_unit='V', self.is_valid=True,Reading: self.data_name='cell_06_voltage', self.data_value=3.28, self.data_unit='V', self.is_valid=True,Reading: self.data_name='cell_07_voltage', self.data_value=3.279, self.data_unit='V', self.is_valid=True,Reading: self.data_name='cell_08_voltage', self.data_value=3.28, self.data_unit='V', self.is_valid=True,Reading: self.data_name='cell_09_voltage', self.data_value=3.279, self.data_unit='V', self.is_valid=True,Reading: self.data_name='cell_10_voltage', self.data_value=3.28, self.data_unit='V', self.is_valid=True,Reading: self.data_name='cell_11_voltage', self.data_value=3.279, self.data_unit='V', self.is_valid=True,Reading: self.data_name='cell_12_voltage', self.data_value=3.28, self.data_unit='V', self.is_valid=True,Reading: self.data_name='cell_13_voltage', self.data_value=3.279, self.data_unit='V', self.is_valid=True,Reading: self.data_name='cell_14_voltage', self.data_value=3.28, self.data_unit='V', self.is_valid=True,Reading: self.data_name='cell_15_voltage', self.data_value=3.279, self.data_unit='V', self.is_valid=True,Reading: self.data_name='cell_16_voltage', self.data_value=3.279, self.data_unit='V', self.is_valid=True,Reading: self.data_name='cell_17_voltage', self.data_value=3.28, self.data_unit='V', self.is_valid=True,Reading: self.data_name='cell_18_voltage', self.data_value=3.279, self.data_unit='V', self.is_valid=True
2024-10-15 21:27:52,240:INFO:screen:process@19: Using output sender: screen
2024-10-15 21:27:52,240:INFO:table:format@29: Using output formatter: table
╔════════════════════════════════════════╗
║ Command: cell_voltages - cell_voltages ║
╠═════════════════╤═══════╤══════════════╣
║ ParameterValueUnit         ║
╟─────────────────┼───────┼──────────────╢
║ cell_16_voltage3.278V            ║
║ cell_17_voltage3.28V            ║
║ cell_18_voltage3.28V            ║
║ cell_01_voltage3.281V            ║
║ cell_02_voltage3.28V            ║
║ cell_03_voltage3.278V            ║
║ cell_04_voltage3.28V            ║
║ cell_05_voltage3.279V            ║
║ cell_06_voltage3.28V            ║
║ cell_07_voltage3.279V            ║
║ cell_08_voltage3.28V            ║
║ cell_09_voltage3.279V            ║
║ cell_10_voltage3.28V            ║
║ cell_11_voltage3.279V            ║
║ cell_12_voltage3.28V            ║
║ cell_13_voltage3.279V            ║
║ cell_14_voltage3.28V            ║
║ cell_15_voltage3.279V            ║
║ cell_16_voltage3.279V            ║
║ cell_17_voltage3.28V            ║
║ cell_18_voltage3.279V            ║
╚═════════════════╧═══════╧══════════════╝
2024-10-15 21:27:52,240:INFO:device:finalize@157: finalizing device

@klvbdmh
Copy link
Author

klvbdmh commented Oct 16, 2024

When I have some free time over the weekend, I'll check out powermon. I like the table formatter.

Offtopic, but I see you're using construct for parsing. That's awesome, I used it too when I was troubleshooting my issue (and on some other projects).

@klvbdmh
Copy link
Author

klvbdmh commented Oct 20, 2024

I ran the powermon overnight and reported voltage values were within the norm. It works well so far. Thank you.

I had one hiccup with the abnormal values elsewhere (soc, current), but I don't have any debug log. I'll see if I can reproduce it - anyway, that's for another repo.

@jblance
Copy link
Owner

jblance commented Oct 20, 2024

good news
it would be good to see the debug for other abnormal value - as it shouldnt pass crc if the data is corrupt...

@klvbdmh
Copy link
Author

klvbdmh commented Oct 20, 2024

I'm not sure exactly what caused it. I noticed the powermon was sending mqtt data (confirmed with MQTT Explorer), but Home Assistant wasn't updating the sensors for a few minutes. I restarted the services and there was a single update with abnormal values - but not all of them. Interestingly, individual cell voltages, capacity_ah, and cycles were fine.

It hasn't happened again so far, so it might be tricky to catch it again with debug. Maybe I can edit my install files so it writes a detailed log if SOC is over 100%.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants