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

JKBMS and RS485 strange output? Looks different/better with new cable... #506

Open
axyaxyfr opened this issue Jul 27, 2024 · 10 comments
Open

Comments

@axyaxyfr
Copy link

I have two JK_PB2A16S15P connected to eachother and an RS485 connection to a rpi running this. Hardware ver 15.XA and sw is 15.10.
It connects to the BMS but the values look strange. I use the supplied cable from eelbattery to connect...
Any suggestions?

ps@raspberrypi:~ $ jkbms -p /dev/ttyUSB0 -b 115200 -P JK485 -D
2024-07-27 22:23:52,104:INFO:init:main@214: Solar Device Command Utility, version: 0.15.62
2024-07-27 22:23:52,105:DEBUG:mqttbrokerc:init@29: mqttbroker config: {'name': 'localhost', 'port': 1883, 'user': None, 'pass': None}
2024-07-27 22:23:52,106:DEBUG:init:main@239: MqttBroker name: localhost, port: 1883, user: None
2024-07-27 22:23:52,106:DEBUG:init:main@241: udp port 5555
2024-07-27 22:23:52,106:DEBUG:init:main@243: Using Postgres None
2024-07-27 22:23:52,106:DEBUG:init:main@246: Using Mongo None with mppsolar
2024-07-27 22:23:52,107:INFO:init:main@347: Creating device "unnamed" (type: "jkbms") on port "/dev/ttyUSB0 (porttype=None)" using protocol "JK485"
2024-07-27 22:23:52,112:DEBUG:init:main@351: device_class <class 'mppsolar.devices.jkbms.jkbms'>
2024-07-27 22:23:52,113:DEBUG:device:init@33: init args ()
2024-07-27 22:23:52,113:DEBUG:device:init@34: init kwargs {'name': 'unnamed', 'port': '/dev/ttyUSB0', 'protocol': 'JK485', 'baud': 115200, 'porttype': None, 'mqtt_broker': <mppsolar.libs.mqttbrokerc.MqttBroker object at 0x7607bca0>, 'udp_port': '5555', 'mongo_url': None, 'mongo_db': 'mppsolar'}
2024-07-27 22:23:52,113:DEBUG:init:get_port_type@69: port matches ttyusb
2024-07-27 22:23:52,114:INFO:init:get_port@111: Using serialio for communications
2024-07-27 22:23:52,128:DEBUG:init:get_protocol@13: Protocol JK485
2024-07-27 22:23:52,363:DEBUG:device:init@38: init name unnamed, port <mppsolar.inout.serialio.SerialIO object at 0x7607bda8>, protocol JKBMS RS485 serial communication protocol handler
2024-07-27 22:23:52,363:DEBUG:init:main@402: Commands [(<mppsolar.devices.jkbms.jkbms object at 0x7607bcb8>, '', '', 'screen', None, None)]
2024-07-27 22:23:52,363:INFO:init:main@407: Looping 1 commands
2024-07-27 22:23:52,364:INFO:init:main@417: Getting results from device: jkbms device - name: unnamed, port: <mppsolar.inout.serialio.SerialIO object at 0x7607bda8>, protocol: JKBMS RS485 serial communication protocol handler for command: , tag: , outputs: screen
2024-07-27 22:23:52,364:INFO:device:run_command@50: Running command
2024-07-27 22:23:52,364:INFO:jk485:get_full_command@100: Using protocol b'JK485' with 1 commands
2024-07-27 22:23:52,364:DEBUG:jkabstractprotocol:get_command_defn@105: get_command_defn for: getBalancerData
2024-07-27 22:23:52,365:DEBUG:abstractprotocol:get_command_defn@70: Processing command 'getBalancerData'
2024-07-27 22:23:52,365:DEBUG:abstractprotocol:get_command_defn@72: Found command getBalancerData in protocol b'JK485'
2024-07-27 22:23:52,365:DEBUG:jk485:get_full_command@114: cmd with header: bytearray(b'U\xaa\x00\x00\x00\x00\x00')
2024-07-27 22:23:52,365:DEBUG:jk485:get_full_command@117: cmd with header + slave address: bytearray(b'U\xaa\x01\x00\x00\x00\x00')
2024-07-27 22:23:52,366:DEBUG:jk485:get_full_command@122: cmd with command code and frame data: bytearray(b'U\xaa\x01\xff\x00\x00\x00')
2024-07-27 22:23:52,366:DEBUG:jk485:get_full_command@125: cmd with crc: bytearray(b'U\xaa\x01\xff\x00\x00\xff')
2024-07-27 22:23:52,366:INFO:device:run_command@78: full command bytearray(b'U\xaa\x01\xff\x00\x00\xff') for command getBalancerData
2024-07-27 22:23:52,366:DEBUG:jkabstractprotocol:get_command_defn@105: get_command_defn for: getBalancerData
2024-07-27 22:23:52,367:DEBUG:abstractprotocol:get_command_defn@70: Processing command 'getBalancerData'
2024-07-27 22:23:52,367:DEBUG:abstractprotocol:get_command_defn@72: Found command getBalancerData in protocol b'JK485'
2024-07-27 22:23:52,367:DEBUG:serialio:send_and_receive@19: port /dev/ttyUSB0, baudrate 115200
2024-07-27 22:23:52,370:DEBUG:serialio:send_and_receive@22: Executing command via serialio...
2024-07-27 22:23:53,727:DEBUG:serialio:send_and_receive@30: serial response was: b'\x02\x10\x16 \x00\x01\x02\x00\x00\xc2\x01\x03\x10\x16 \x00\x01\x02\x00\x00\xcf\x91\x04\x10\x16 \x00\x01\x02\x00\x00\xe9\xa1\x05'
2024-07-27 22:23:53,729:DEBUG:device:run_command@95: Send and Receive Response b'\x02\x10\x16 \x00\x01\x02\x00\x00\xc2\x01\x03\x10\x16 \x00\x01\x02\x00\x00\xcf\x91\x04\x10\x16 \x00\x01\x02\x00\x00\xe9\xa1\x05'
2024-07-27 22:23:53,730:INFO:abstractprotocol:decode@245: response passed to decode: b'\x02\x10\x16 \x00\x01\x02\x00\x00\xc2\x01\x03\x10\x16 \x00\x01\x02\x00\x00\xcf\x91\x04\x10\x16 \x00\x01\x02\x00\x00\xe9\xa1\x05'
2024-07-27 22:23:53,730:DEBUG:jkabstractprotocol:get_command_defn@105: get_command_defn for: getBalancerData
2024-07-27 22:23:53,731:DEBUG:abstractprotocol:get_command_defn@70: Processing command 'getBalancerData'
2024-07-27 22:23:53,731:DEBUG:abstractprotocol:get_command_defn@72: Found command getBalancerData in protocol b'JK485'
2024-07-27 22:23:53,732:INFO:abstractprotocol:decode@289: Processing response of type POSITIONAL
2024-07-27 22:23:53,732:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['Hex2Str', 2, 'Header', '']
2024-07-27 22:23:53,733:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['Hex2Str', 1, 'Slave Address', '']
2024-07-27 22:23:53,733:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['Hex2Str', 1, 'Command Code', '']
2024-07-27 22:23:53,734:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/100', 2, 'Total Battery Voltage', 'V']
2024-07-27 22:23:53,734:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Average Cell Voltage', 'V']
2024-07-27 22:23:53,735:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['Hex2Int', 1, 'Number of Cells', '']
2024-07-27 22:23:53,735:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['Hex2Int', 1, 'Highest Cell', '']
2024-07-27 22:23:53,736:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['Hex2Int', 1, 'Lowest Cell', '']
2024-07-27 22:23:53,736:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['Hex2Str', 1, 'Charging / Discharging', '']
2024-07-27 22:23:53,737:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['Hex2Str', 1, 'Alarm - todo', '']
2024-07-27 22:23:53,737:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Difference', 'V']
2024-07-27 22:23:53,738:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Balance Current', 'A']
2024-07-27 22:23:53,738:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Balance Trigger Voltage', 'V']
2024-07-27 22:23:53,739:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Max Balance Current', 'A']
2024-07-27 22:23:53,739:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['Hex2Str', 1, 'Balance On / Off', '']
2024-07-27 22:23:53,739:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['Hex2Int', 1, 'Set Number of Cells', '']
2024-07-27 22:23:53,740:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell01', 'V']
2024-07-27 22:23:53,740:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell02', 'V']
2024-07-27 22:23:53,741:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell03', 'V']
2024-07-27 22:23:53,741:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell04', 'V']
2024-07-27 22:23:53,742:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell05', 'V']
2024-07-27 22:23:53,742:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell06', 'V']
2024-07-27 22:23:53,743:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell07', 'V']
2024-07-27 22:23:53,743:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell08', 'V']
2024-07-27 22:23:53,744:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell09', 'V']
2024-07-27 22:23:53,744:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell10', 'V']
2024-07-27 22:23:53,745:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell11', 'V']
2024-07-27 22:23:53,745:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell12', 'V']
2024-07-27 22:23:53,746:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell13', 'V']
2024-07-27 22:23:53,746:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell14', 'V']
2024-07-27 22:23:53,746:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell15', 'V']
2024-07-27 22:23:53,747:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell16', 'V']
2024-07-27 22:23:53,747:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell17', 'V']
2024-07-27 22:23:53,748:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell18', 'V']
2024-07-27 22:23:53,748:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell19', 'V']
2024-07-27 22:23:53,749:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell20', 'V']
2024-07-27 22:23:53,749:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell21', 'V']
2024-07-27 22:23:53,749:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell22', 'V']
2024-07-27 22:23:53,750:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell23', 'V']
2024-07-27 22:23:53,750:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell24', 'V']
2024-07-27 22:23:53,751:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short', 2, 'Temperature', '°C']
2024-07-27 22:23:53,751:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['Hex2Str', 1, 'Checksum', '']
2024-07-27 22:23:53,752:DEBUG:abstractprotocol:decode@293: trimmed and split responses: [b'\x02\x10', b'\x16', b' ', b'\x00\x01', b'\x02\x00', b'\x00', b'\xc2', b'\x01', b'\x03', b'\x10', b'\x16 ', b'\x00\x01', b'\x02\x00', b'\x00\xcf', b'\x91', b'\x04', b'\x10\x16', b' \x00', b'\x01\x02', b'\x00\x00', b'\xe9\xa1', b'\x05', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'']
2024-07-27 22:23:53,752:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-27 22:23:53,753:DEBUG:abstractprotocol:decode@519: Got defn ['Hex2Str', 2, 'Header', '']
2024-07-27 22:23:53,753:DEBUG:abstractprotocol:process_response@117: Processing data_type: Hex2Str for data_name: Header, raw_value b'\x02\x10'
2024-07-27 22:23:53,753:DEBUG:abstractprotocol:process_response@206: Processing format string Hex2Str(raw_value)
2024-07-27 22:23:53,754:DEBUG:protocol_helpers:Hex2Str@109: Hex b'\x02\x10' decoded to 0210
2024-07-27 22:23:53,755:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-27 22:23:53,756:DEBUG:abstractprotocol:decode@519: Got defn ['Hex2Str', 1, 'Slave Address', '']
2024-07-27 22:23:53,756:DEBUG:abstractprotocol:process_response@117: Processing data_type: Hex2Str for data_name: Slave Address, raw_value b'\x16'
2024-07-27 22:23:53,757:DEBUG:abstractprotocol:process_response@206: Processing format string Hex2Str(raw_value)
2024-07-27 22:23:53,757:DEBUG:protocol_helpers:Hex2Str@109: Hex b'\x16' decoded to 16
2024-07-27 22:23:53,758:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-27 22:23:53,759:DEBUG:abstractprotocol:decode@519: Got defn ['Hex2Str', 1, 'Command Code', '']
2024-07-27 22:23:53,759:DEBUG:abstractprotocol:process_response@117: Processing data_type: Hex2Str for data_name: Command Code, raw_value b' '
2024-07-27 22:23:53,759:DEBUG:abstractprotocol:process_response@206: Processing format string Hex2Str(raw_value)
2024-07-27 22:23:53,760:DEBUG:protocol_helpers:Hex2Str@109: Hex b' ' decoded to 20
2024-07-27 22:23:53,761:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-27 22:23:53,761:DEBUG:abstractprotocol:decode@519: Got defn ['BigHex2Short:r/100', 2, 'Total Battery Voltage', 'V']
2024-07-27 22:23:53,761:DEBUG:abstractprotocol:process_response@116: Got template r/100 for Total Battery Voltage b'\x00\x01'
2024-07-27 22:23:53,762:DEBUG:abstractprotocol:process_response@117: Processing data_type: BigHex2Short for data_name: Total Battery Voltage, raw_value b'\x00\x01'
2024-07-27 22:23:53,762:DEBUG:abstractprotocol:process_response@206: Processing format string BigHex2Short(raw_value)
2024-07-27 22:23:53,763:DEBUG:protocol_helpers:BigHex2Short@151: Hex b'\x00\x01' 2 byte decoded to 1
2024-07-27 22:23:53,764:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-27 22:23:53,764:DEBUG:abstractprotocol:decode@519: Got defn ['BigHex2Short:r/1000', 2, 'Average Cell Voltage', 'V']
2024-07-27 22:23:53,765:DEBUG:abstractprotocol:process_response@116: Got template r/1000 for Average Cell Voltage b'\x02\x00'
2024-07-27 22:23:53,765:DEBUG:abstractprotocol:process_response@117: Processing data_type: BigHex2Short for data_name: Average Cell Voltage, raw_value b'\x02\x00'
2024-07-27 22:23:53,765:DEBUG:abstractprotocol:process_response@206: Processing format string BigHex2Short(raw_value)
2024-07-27 22:23:53,766:DEBUG:protocol_helpers:BigHex2Short@151: Hex b'\x02\x00' 2 byte decoded to 512
2024-07-27 22:23:53,767:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-27 22:23:53,767:DEBUG:abstractprotocol:decode@519: Got defn ['Hex2Int', 1, 'Number of Cells', '']
2024-07-27 22:23:53,768:DEBUG:abstractprotocol:process_response@117: Processing data_type: Hex2Int for data_name: Number of Cells, raw_value b'\x00'
2024-07-27 22:23:53,768:DEBUG:abstractprotocol:process_response@206: Processing format string Hex2Int(raw_value)
2024-07-27 22:23:53,769:DEBUG:protocol_helpers:Hex2Int@96: Hex b'\x00' decoded to 0
2024-07-27 22:23:53,770:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-27 22:23:53,770:DEBUG:abstractprotocol:decode@519: Got defn ['Hex2Int', 1, 'Highest Cell', '']
2024-07-27 22:23:53,771:DEBUG:abstractprotocol:process_response@117: Processing data_type: Hex2Int for data_name: Highest Cell, raw_value b'\xc2'
2024-07-27 22:23:53,771:DEBUG:abstractprotocol:process_response@206: Processing format string Hex2Int(raw_value)
2024-07-27 22:23:53,772:DEBUG:protocol_helpers:Hex2Int@96: Hex b'\xc2' decoded to 194
2024-07-27 22:23:53,772:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-27 22:23:53,773:DEBUG:abstractprotocol:decode@519: Got defn ['Hex2Int', 1, 'Lowest Cell', '']
2024-07-27 22:23:53,773:DEBUG:abstractprotocol:process_response@117: Processing data_type: Hex2Int for data_name: Lowest Cell, raw_value b'\x01'
2024-07-27 22:23:53,773:DEBUG:abstractprotocol:process_response@206: Processing format string Hex2Int(raw_value)
2024-07-27 22:23:53,774:DEBUG:protocol_helpers:Hex2Int@96: Hex b'\x01' decoded to 1
2024-07-27 22:23:53,775:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-27 22:23:53,775:DEBUG:abstractprotocol:decode@519: Got defn ['Hex2Str', 1, 'Charging / Discharging', '']
2024-07-27 22:23:53,776:DEBUG:abstractprotocol:process_response@117: Processing data_type: Hex2Str for data_name: Charging / Discharging, raw_value b'\x03'
2024-07-27 22:23:53,776:DEBUG:abstractprotocol:process_response@206: Processing format string Hex2Str(raw_value)
2024-07-27 22:23:53,777:DEBUG:protocol_helpers:Hex2Str@109: Hex b'\x03' decoded to 03
2024-07-27 22:23:53,777:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-27 22:23:53,778:DEBUG:abstractprotocol:decode@519: Got defn ['Hex2Str', 1, 'Alarm - todo', '']
2024-07-27 22:23:53,778:DEBUG:abstractprotocol:process_response@117: Processing data_type: Hex2Str for data_name: Alarm - todo, raw_value b'\x10'
2024-07-27 22:23:53,778:DEBUG:abstractprotocol:process_response@206: Processing format string Hex2Str(raw_value)
2024-07-27 22:23:53,779:DEBUG:protocol_helpers:Hex2Str@109: Hex b'\x10' decoded to 10
2024-07-27 22:23:53,780:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-27 22:23:53,780:DEBUG:abstractprotocol:decode@519: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Difference', 'V']
2024-07-27 22:23:53,781:DEBUG:abstractprotocol:process_response@116: Got template r/1000 for Voltage Difference b'\x16 '
2024-07-27 22:23:53,781:DEBUG:abstractprotocol:process_response@117: Processing data_type: BigHex2Short for data_name: Voltage Difference, raw_value b'\x16 '
2024-07-27 22:23:53,782:DEBUG:abstractprotocol:process_response@206: Processing format string BigHex2Short(raw_value)
2024-07-27 22:23:53,782:DEBUG:protocol_helpers:BigHex2Short@151: Hex b'\x16 ' 2 byte decoded to 5664
2024-07-27 22:23:53,783:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-27 22:23:53,784:DEBUG:abstractprotocol:decode@519: Got defn ['BigHex2Short:r/1000', 2, 'Balance Current', 'A']
2024-07-27 22:23:53,784:DEBUG:abstractprotocol:process_response@116: Got template r/1000 for Balance Current b'\x00\x01'
2024-07-27 22:23:53,785:DEBUG:abstractprotocol:process_response@117: Processing data_type: BigHex2Short for data_name: Balance Current, raw_value b'\x00\x01'
2024-07-27 22:23:53,785:DEBUG:abstractprotocol:process_response@206: Processing format string BigHex2Short(raw_value)
2024-07-27 22:23:53,786:DEBUG:protocol_helpers:BigHex2Short@151: Hex b'\x00\x01' 2 byte decoded to 1
2024-07-27 22:23:53,786:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-27 22:23:53,787:DEBUG:abstractprotocol:decode@519: Got defn ['BigHex2Short:r/1000', 2, 'Balance Trigger Voltage', 'V']
2024-07-27 22:23:53,787:DEBUG:abstractprotocol:process_response@116: Got template r/1000 for Balance Trigger Voltage b'\x02\x00'
2024-07-27 22:23:53,788:DEBUG:abstractprotocol:process_response@117: Processing data_type: BigHex2Short for data_name: Balance Trigger Voltage, raw_value b'\x02\x00'
2024-07-27 22:23:53,788:DEBUG:abstractprotocol:process_response@206: Processing format string BigHex2Short(raw_value)
2024-07-27 22:23:53,789:DEBUG:protocol_helpers:BigHex2Short@151: Hex b'\x02\x00' 2 byte decoded to 512
2024-07-27 22:23:53,790:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-27 22:23:53,790:DEBUG:abstractprotocol:decode@519: Got defn ['BigHex2Short:r/1000', 2, 'Max Balance Current', 'A']
2024-07-27 22:23:53,791:DEBUG:abstractprotocol:process_response@116: Got template r/1000 for Max Balance Current b'\x00\xcf'
2024-07-27 22:23:53,791:DEBUG:abstractprotocol:process_response@117: Processing data_type: BigHex2Short for data_name: Max Balance Current, raw_value b'\x00\xcf'
2024-07-27 22:23:53,791:DEBUG:abstractprotocol:process_response@206: Processing format string BigHex2Short(raw_value)
2024-07-27 22:23:53,792:DEBUG:protocol_helpers:BigHex2Short@151: Hex b'\x00\xcf' 2 byte decoded to 207
2024-07-27 22:23:53,793:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-27 22:23:53,793:DEBUG:abstractprotocol:decode@519: Got defn ['Hex2Str', 1, 'Balance On / Off', '']
2024-07-27 22:23:53,794:DEBUG:abstractprotocol:process_response@117: Processing data_type: Hex2Str for data_name: Balance On / Off, raw_value b'\x91'
2024-07-27 22:23:53,794:DEBUG:abstractprotocol:process_response@206: Processing format string Hex2Str(raw_value)
2024-07-27 22:23:53,795:DEBUG:protocol_helpers:Hex2Str@109: Hex b'\x91' decoded to 91
2024-07-27 22:23:53,796:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-27 22:23:53,796:DEBUG:abstractprotocol:decode@519: Got defn ['Hex2Int', 1, 'Set Number of Cells', '']
2024-07-27 22:23:53,797:DEBUG:abstractprotocol:process_response@117: Processing data_type: Hex2Int for data_name: Set Number of Cells, raw_value b'\x04'
2024-07-27 22:23:53,797:DEBUG:abstractprotocol:process_response@206: Processing format string Hex2Int(raw_value)
2024-07-27 22:23:53,798:DEBUG:protocol_helpers:Hex2Int@96: Hex b'\x04' decoded to 4
2024-07-27 22:23:53,798:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-27 22:23:53,799:DEBUG:abstractprotocol:decode@519: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell01', 'V']
2024-07-27 22:23:53,799:DEBUG:abstractprotocol:process_response@116: Got template r/1000 for Voltage Cell01 b'\x10\x16'
2024-07-27 22:23:53,799:DEBUG:abstractprotocol:process_response@117: Processing data_type: BigHex2Short for data_name: Voltage Cell01, raw_value b'\x10\x16'
2024-07-27 22:23:53,800:DEBUG:abstractprotocol:process_response@206: Processing format string BigHex2Short(raw_value)
2024-07-27 22:23:53,801:DEBUG:protocol_helpers:BigHex2Short@151: Hex b'\x10\x16' 2 byte decoded to 4118
2024-07-27 22:23:53,801:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-27 22:23:53,802:DEBUG:abstractprotocol:decode@519: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell02', 'V']
2024-07-27 22:23:53,802:DEBUG:abstractprotocol:process_response@116: Got template r/1000 for Voltage Cell02 b' \x00'
2024-07-27 22:23:53,803:DEBUG:abstractprotocol:process_response@117: Processing data_type: BigHex2Short for data_name: Voltage Cell02, raw_value b' \x00'
2024-07-27 22:23:53,803:DEBUG:abstractprotocol:process_response@206: Processing format string BigHex2Short(raw_value)
2024-07-27 22:23:53,803:DEBUG:protocol_helpers:BigHex2Short@151: Hex b' \x00' 2 byte decoded to 8192
2024-07-27 22:23:53,803:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-27 22:23:53,804:DEBUG:abstractprotocol:decode@519: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell03', 'V']
2024-07-27 22:23:53,804:DEBUG:abstractprotocol:process_response@116: Got template r/1000 for Voltage Cell03 b'\x01\x02'
2024-07-27 22:23:53,804:DEBUG:abstractprotocol:process_response@117: Processing data_type: BigHex2Short for data_name: Voltage Cell03, raw_value b'\x01\x02'
2024-07-27 22:23:53,804:DEBUG:abstractprotocol:process_response@206: Processing format string BigHex2Short(raw_value)
2024-07-27 22:23:53,805:DEBUG:protocol_helpers:BigHex2Short@151: Hex b'\x01\x02' 2 byte decoded to 258
2024-07-27 22:23:53,805:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-27 22:23:53,805:DEBUG:abstractprotocol:decode@519: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell04', 'V']
2024-07-27 22:23:53,806:DEBUG:abstractprotocol:process_response@116: Got template r/1000 for Voltage Cell04 b'\x00\x00'
2024-07-27 22:23:53,806:DEBUG:abstractprotocol:process_response@117: Processing data_type: BigHex2Short for data_name: Voltage Cell04, raw_value b'\x00\x00'
2024-07-27 22:23:53,806:DEBUG:abstractprotocol:process_response@206: Processing format string BigHex2Short(raw_value)
2024-07-27 22:23:53,806:DEBUG:protocol_helpers:BigHex2Short@151: Hex b'\x00\x00' 2 byte decoded to 0
2024-07-27 22:23:53,807:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-27 22:23:53,807:DEBUG:abstractprotocol:decode@519: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell05', 'V']
2024-07-27 22:23:53,807:DEBUG:abstractprotocol:process_response@116: Got template r/1000 for Voltage Cell05 b'\xe9\xa1'
2024-07-27 22:23:53,807:DEBUG:abstractprotocol:process_response@117: Processing data_type: BigHex2Short for data_name: Voltage Cell05, raw_value b'\xe9\xa1'
2024-07-27 22:23:53,808:DEBUG:abstractprotocol:process_response@206: Processing format string BigHex2Short(raw_value)
2024-07-27 22:23:53,808:DEBUG:protocol_helpers:BigHex2Short@151: Hex b'\xe9\xa1' 2 byte decoded to -5727
2024-07-27 22:23:53,808:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-27 22:23:53,809:DEBUG:abstractprotocol:decode@519: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell06', 'V']
2024-07-27 22:23:53,809:DEBUG:abstractprotocol:process_response@116: Got template r/1000 for Voltage Cell06 b'\x05'
2024-07-27 22:23:53,809:DEBUG:abstractprotocol:process_response@117: Processing data_type: BigHex2Short for data_name: Voltage Cell06, raw_value b'\x05'
2024-07-27 22:23:53,809:DEBUG:abstractprotocol:process_response@206: Processing format string BigHex2Short(raw_value)
2024-07-27 22:23:53,810:INFO:protocol_helpers:BigHex2Short@148: Hex encoded value must be 2 bytes long. Was 1 length
2024-07-27 22:23:53,810:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-27 22:23:53,810:DEBUG:abstractprotocol:decode@519: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell07', 'V']
2024-07-27 22:23:53,811:DEBUG:abstractprotocol:process_response@116: Got template r/1000 for Voltage Cell07 b''
2024-07-27 22:23:53,811:DEBUG:abstractprotocol:process_response@117: Processing data_type: BigHex2Short for data_name: Voltage Cell07, raw_value b''
2024-07-27 22:23:53,811:DEBUG:abstractprotocol:process_response@206: Processing format string BigHex2Short(raw_value)
2024-07-27 22:23:53,811:INFO:protocol_helpers:BigHex2Short@148: Hex encoded value must be 2 bytes long. Was 0 length
2024-07-27 22:23:53,812:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-27 22:23:53,812:DEBUG:abstractprotocol:decode@519: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell08', 'V']
2024-07-27 22:23:53,812:DEBUG:abstractprotocol:process_response@116: Got template r/1000 for Voltage Cell08 b''
2024-07-27 22:23:53,812:DEBUG:abstractprotocol:process_response@117: Processing data_type: BigHex2Short for data_name: Voltage Cell08, raw_value b''
2024-07-27 22:23:53,813:DEBUG:abstractprotocol:process_response@206: Processing format string BigHex2Short(raw_value)
2024-07-27 22:23:53,813:INFO:protocol_helpers:BigHex2Short@148: Hex encoded value must be 2 bytes long. Was 0 length
2024-07-27 22:23:53,813:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-27 22:23:53,813:DEBUG:abstractprotocol:decode@519: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell09', 'V']
2024-07-27 22:23:53,814:DEBUG:abstractprotocol:process_response@116: Got template r/1000 for Voltage Cell09 b''
2024-07-27 22:23:53,814:DEBUG:abstractprotocol:process_response@117: Processing data_type: BigHex2Short for data_name: Voltage Cell09, raw_value b''
2024-07-27 22:23:53,814:DEBUG:abstractprotocol:process_response@206: Processing format string BigHex2Short(raw_value)
2024-07-27 22:23:53,814:INFO:protocol_helpers:BigHex2Short@148: Hex encoded value must be 2 bytes long. Was 0 length
2024-07-27 22:23:53,815:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-27 22:23:53,815:DEBUG:abstractprotocol:decode@519: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell10', 'V']
2024-07-27 22:23:53,815:DEBUG:abstractprotocol:process_response@116: Got template r/1000 for Voltage Cell10 b''
2024-07-27 22:23:53,816:DEBUG:abstractprotocol:process_response@117: Processing data_type: BigHex2Short for data_name: Voltage Cell10, raw_value b''
2024-07-27 22:23:53,816:DEBUG:abstractprotocol:process_response@206: Processing format string BigHex2Short(raw_value)
2024-07-27 22:23:53,816:INFO:protocol_helpers:BigHex2Short@148: Hex encoded value must be 2 bytes long. Was 0 length
2024-07-27 22:23:53,817:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-27 22:23:53,817:DEBUG:abstractprotocol:decode@519: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell11', 'V']
2024-07-27 22:23:53,817:DEBUG:abstractprotocol:process_response@116: Got template r/1000 for Voltage Cell11 b''
2024-07-27 22:23:53,817:DEBUG:abstractprotocol:process_response@117: Processing data_type: BigHex2Short for data_name: Voltage Cell11, raw_value b''
2024-07-27 22:23:53,817:DEBUG:abstractprotocol:process_response@206: Processing format string BigHex2Short(raw_value)
2024-07-27 22:23:53,818:INFO:protocol_helpers:BigHex2Short@148: Hex encoded value must be 2 bytes long. Was 0 length
2024-07-27 22:23:53,818:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-27 22:23:53,818:DEBUG:abstractprotocol:decode@519: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell12', 'V']
2024-07-27 22:23:53,819:DEBUG:abstractprotocol:process_response@116: Got template r/1000 for Voltage Cell12 b''
2024-07-27 22:23:53,819:DEBUG:abstractprotocol:process_response@117: Processing data_type: BigHex2Short for data_name: Voltage Cell12, raw_value b''
2024-07-27 22:23:53,819:DEBUG:abstractprotocol:process_response@206: Processing format string BigHex2Short(raw_value)
2024-07-27 22:23:53,819:INFO:protocol_helpers:BigHex2Short@148: Hex encoded value must be 2 bytes long. Was 0 length
2024-07-27 22:23:53,820:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-27 22:23:53,820:DEBUG:abstractprotocol:decode@519: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell13', 'V']
2024-07-27 22:23:53,820:DEBUG:abstractprotocol:process_response@116: Got template r/1000 for Voltage Cell13 b''
2024-07-27 22:23:53,820:DEBUG:abstractprotocol:process_response@117: Processing data_type: BigHex2Short for data_name: Voltage Cell13, raw_value b''
2024-07-27 22:23:53,821:DEBUG:abstractprotocol:process_response@206: Processing format string BigHex2Short(raw_value)
2024-07-27 22:23:53,821:INFO:protocol_helpers:BigHex2Short@148: Hex encoded value must be 2 bytes long. Was 0 length
2024-07-27 22:23:53,821:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-27 22:23:53,822:DEBUG:abstractprotocol:decode@519: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell14', 'V']
2024-07-27 22:23:53,822:DEBUG:abstractprotocol:process_response@116: Got template r/1000 for Voltage Cell14 b''
2024-07-27 22:23:53,822:DEBUG:abstractprotocol:process_response@117: Processing data_type: BigHex2Short for data_name: Voltage Cell14, raw_value b''
2024-07-27 22:23:53,822:DEBUG:abstractprotocol:process_response@206: Processing format string BigHex2Short(raw_value)
2024-07-27 22:23:53,823:INFO:protocol_helpers:BigHex2Short@148: Hex encoded value must be 2 bytes long. Was 0 length
2024-07-27 22:23:53,823:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-27 22:23:53,823:DEBUG:abstractprotocol:decode@519: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell15', 'V']
2024-07-27 22:23:53,824:DEBUG:abstractprotocol:process_response@116: Got template r/1000 for Voltage Cell15 b''
2024-07-27 22:23:53,824:DEBUG:abstractprotocol:process_response@117: Processing data_type: BigHex2Short for data_name: Voltage Cell15, raw_value b''
2024-07-27 22:23:53,824:DEBUG:abstractprotocol:process_response@206: Processing format string BigHex2Short(raw_value)
2024-07-27 22:23:53,825:INFO:protocol_helpers:BigHex2Short@148: Hex encoded value must be 2 bytes long. Was 0 length
2024-07-27 22:23:53,825:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-27 22:23:53,825:DEBUG:abstractprotocol:decode@519: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell16', 'V']
2024-07-27 22:23:53,826:DEBUG:abstractprotocol:process_response@116: Got template r/1000 for Voltage Cell16 b''
2024-07-27 22:23:53,826:DEBUG:abstractprotocol:process_response@117: Processing data_type: BigHex2Short for data_name: Voltage Cell16, raw_value b''
2024-07-27 22:23:53,826:DEBUG:abstractprotocol:process_response@206: Processing format string BigHex2Short(raw_value)
2024-07-27 22:23:53,826:INFO:protocol_helpers:BigHex2Short@148: Hex encoded value must be 2 bytes long. Was 0 length
2024-07-27 22:23:53,827:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-27 22:23:53,827:DEBUG:abstractprotocol:decode@519: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell17', 'V']
2024-07-27 22:23:53,827:DEBUG:abstractprotocol:process_response@116: Got template r/1000 for Voltage Cell17 b''
2024-07-27 22:23:53,827:DEBUG:abstractprotocol:process_response@117: Processing data_type: BigHex2Short for data_name: Voltage Cell17, raw_value b''
2024-07-27 22:23:53,828:DEBUG:abstractprotocol:process_response@206: Processing format string BigHex2Short(raw_value)
2024-07-27 22:23:53,828:INFO:protocol_helpers:BigHex2Short@148: Hex encoded value must be 2 bytes long. Was 0 length
2024-07-27 22:23:53,828:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-27 22:23:53,829:DEBUG:abstractprotocol:decode@519: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell18', 'V']
2024-07-27 22:23:53,829:DEBUG:abstractprotocol:process_response@116: Got template r/1000 for Voltage Cell18 b''
2024-07-27 22:23:53,829:DEBUG:abstractprotocol:process_response@117: Processing data_type: BigHex2Short for data_name: Voltage Cell18, raw_value b''
2024-07-27 22:23:53,829:DEBUG:abstractprotocol:process_response@206: Processing format string BigHex2Short(raw_value)
2024-07-27 22:23:53,830:INFO:protocol_helpers:BigHex2Short@148: Hex encoded value must be 2 bytes long. Was 0 length
2024-07-27 22:23:53,830:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-27 22:23:53,830:DEBUG:abstractprotocol:decode@519: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell19', 'V']
2024-07-27 22:23:53,830:DEBUG:abstractprotocol:process_response@116: Got template r/1000 for Voltage Cell19 b''
2024-07-27 22:23:53,831:DEBUG:abstractprotocol:process_response@117: Processing data_type: BigHex2Short for data_name: Voltage Cell19, raw_value b''
2024-07-27 22:23:53,831:DEBUG:abstractprotocol:process_response@206: Processing format string BigHex2Short(raw_value)
2024-07-27 22:23:53,831:INFO:protocol_helpers:BigHex2Short@148: Hex encoded value must be 2 bytes long. Was 0 length
2024-07-27 22:23:53,832:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-27 22:23:53,832:DEBUG:abstractprotocol:decode@519: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell20', 'V']
2024-07-27 22:23:53,832:DEBUG:abstractprotocol:process_response@116: Got template r/1000 for Voltage Cell20 b''
2024-07-27 22:23:53,833:DEBUG:abstractprotocol:process_response@117: Processing data_type: BigHex2Short for data_name: Voltage Cell20, raw_value b''
2024-07-27 22:23:53,833:DEBUG:abstractprotocol:process_response@206: Processing format string BigHex2Short(raw_value)
2024-07-27 22:23:53,833:INFO:protocol_helpers:BigHex2Short@148: Hex encoded value must be 2 bytes long. Was 0 length
2024-07-27 22:23:53,834:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-27 22:23:53,834:DEBUG:abstractprotocol:decode@519: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell21', 'V']
2024-07-27 22:23:53,834:DEBUG:abstractprotocol:process_response@116: Got template r/1000 for Voltage Cell21 b''
2024-07-27 22:23:53,834:DEBUG:abstractprotocol:process_response@117: Processing data_type: BigHex2Short for data_name: Voltage Cell21, raw_value b''
2024-07-27 22:23:53,835:DEBUG:abstractprotocol:process_response@206: Processing format string BigHex2Short(raw_value)
2024-07-27 22:23:53,835:INFO:protocol_helpers:BigHex2Short@148: Hex encoded value must be 2 bytes long. Was 0 length
2024-07-27 22:23:53,835:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-27 22:23:53,836:DEBUG:abstractprotocol:decode@519: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell22', 'V']
2024-07-27 22:23:53,836:DEBUG:abstractprotocol:process_response@116: Got template r/1000 for Voltage Cell22 b''
2024-07-27 22:23:53,836:DEBUG:abstractprotocol:process_response@117: Processing data_type: BigHex2Short for data_name: Voltage Cell22, raw_value b''
2024-07-27 22:23:53,836:DEBUG:abstractprotocol:process_response@206: Processing format string BigHex2Short(raw_value)
2024-07-27 22:23:53,837:INFO:protocol_helpers:BigHex2Short@148: Hex encoded value must be 2 bytes long. Was 0 length
2024-07-27 22:23:53,837:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-27 22:23:53,837:DEBUG:abstractprotocol:decode@519: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell23', 'V']
2024-07-27 22:23:53,837:DEBUG:abstractprotocol:process_response@116: Got template r/1000 for Voltage Cell23 b''
2024-07-27 22:23:53,838:DEBUG:abstractprotocol:process_response@117: Processing data_type: BigHex2Short for data_name: Voltage Cell23, raw_value b''
2024-07-27 22:23:53,838:DEBUG:abstractprotocol:process_response@206: Processing format string BigHex2Short(raw_value)
2024-07-27 22:23:53,838:INFO:protocol_helpers:BigHex2Short@148: Hex encoded value must be 2 bytes long. Was 0 length
2024-07-27 22:23:53,839:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-27 22:23:53,839:DEBUG:abstractprotocol:decode@519: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell24', 'V']
2024-07-27 22:23:53,839:DEBUG:abstractprotocol:process_response@116: Got template r/1000 for Voltage Cell24 b''
2024-07-27 22:23:53,840:DEBUG:abstractprotocol:process_response@117: Processing data_type: BigHex2Short for data_name: Voltage Cell24, raw_value b''
2024-07-27 22:23:53,840:DEBUG:abstractprotocol:process_response@206: Processing format string BigHex2Short(raw_value)
2024-07-27 22:23:53,840:INFO:protocol_helpers:BigHex2Short@148: Hex encoded value must be 2 bytes long. Was 0 length
2024-07-27 22:23:53,841:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-27 22:23:53,841:DEBUG:abstractprotocol:decode@519: Got defn ['BigHex2Short', 2, 'Temperature', '°C']
2024-07-27 22:23:53,841:DEBUG:abstractprotocol:process_response@117: Processing data_type: BigHex2Short for data_name: Temperature, raw_value b''
2024-07-27 22:23:53,841:DEBUG:abstractprotocol:process_response@206: Processing format string BigHex2Short(raw_value)
2024-07-27 22:23:53,842:INFO:protocol_helpers:BigHex2Short@148: Hex encoded value must be 2 bytes long. Was 0 length
2024-07-27 22:23:53,842:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-27 22:23:53,842:DEBUG:abstractprotocol:decode@519: Got defn ['Hex2Str', 1, 'Checksum', '']
2024-07-27 22:23:53,843:DEBUG:abstractprotocol:process_response@117: Processing data_type: Hex2Str for data_name: Checksum, raw_value b''
2024-07-27 22:23:53,843:DEBUG:abstractprotocol:process_response@206: Processing format string Hex2Str(raw_value)
2024-07-27 22:23:53,843:DEBUG:protocol_helpers:Hex2Str@109: Hex b'' decoded to
2024-07-27 22:23:53,844:INFO:device:run_command@113: Decoded response {'_command': 'getBalancerData', '_command_description': 'Get Balancer Data', 'raw_response': ['\x02\x10\x16 \x00\x01\x02\x00\x00Â\x01\x03\x10\x16 \x00\x01\x02\x00\x00Ï\x91\x04\x10\x16 \x00\x01\x02\x00\x00é¡\x05', ''], 'Header': ['0210', ''], 'Slave Address': ['16', ''], 'Command Code': ['20', ''], 'Total Battery Voltage': [0.01, 'V'], 'Average Cell Voltage': [0.512, 'V'], 'Number of Cells': [0, ''], 'Highest Cell': [194, ''], 'Lowest Cell': [1, ''], 'Charging / Discharging': ['03', ''], 'Alarm - todo': ['10', ''], 'Voltage Difference': [5.664, 'V'], 'Balance Current': [0.001, 'A'], 'Balance Trigger Voltage': [0.512, 'V'], 'Max Balance Current': [0.207, 'A'], 'Balance On / Off': ['91', ''], 'Set Number of Cells': [4, ''], 'Voltage Cell01': [4.118, 'V'], 'Voltage Cell02': [8.192, 'V'], 'Voltage Cell03': [0.258, 'V'], 'Voltage Cell04': [0.0, 'V'], 'Voltage Cell05': [-5.727, 'V'], 'Voltage Cell06': [0.0, 'V'], 'Voltage Cell07': [0.0, 'V'], 'Voltage Cell08': [0.0, 'V'], 'Voltage Cell09': [0.0, 'V'], 'Voltage Cell10': [0.0, 'V'], 'Voltage Cell11': [0.0, 'V'], 'Voltage Cell12': [0.0, 'V'], 'Voltage Cell13': [0.0, 'V'], 'Voltage Cell14': [0.0, 'V'], 'Voltage Cell15': [0.0, 'V'], 'Voltage Cell16': [0.0, 'V'], 'Voltage Cell17': [0.0, 'V'], 'Voltage Cell18': [0.0, 'V'], 'Voltage Cell19': [0.0, 'V'], 'Voltage Cell20': [0.0, 'V'], 'Voltage Cell21': [0.0, 'V'], 'Voltage Cell22': [0.0, 'V'], 'Voltage Cell23': [0.0, 'V'], 'Voltage Cell24': [0.0, 'V'], 'Temperature': [0, '°C'], 'Checksum': ['', '']}
2024-07-27 22:23:53,844:DEBUG:init:main@421: results: {'_command': 'getBalancerData', '_command_description': 'Get Balancer Data', 'raw_response': ['\x02\x10\x16 \x00\x01\x02\x00\x00Â\x01\x03\x10\x16 \x00\x01\x02\x00\x00Ï\x91\x04\x10\x16 \x00\x01\x02\x00\x00é¡\x05', ''], 'Header': ['0210', ''], 'Slave Address': ['16', ''], 'Command Code': ['20', ''], 'Total Battery Voltage': [0.01, 'V'], 'Average Cell Voltage': [0.512, 'V'], 'Number of Cells': [0, ''], 'Highest Cell': [194, ''], 'Lowest Cell': [1, ''], 'Charging / Discharging': ['03', ''], 'Alarm - todo': ['10', ''], 'Voltage Difference': [5.664, 'V'], 'Balance Current': [0.001, 'A'], 'Balance Trigger Voltage': [0.512, 'V'], 'Max Balance Current': [0.207, 'A'], 'Balance On / Off': ['91', ''], 'Set Number of Cells': [4, ''], 'Voltage Cell01': [4.118, 'V'], 'Voltage Cell02': [8.192, 'V'], 'Voltage Cell03': [0.258, 'V'], 'Voltage Cell04': [0.0, 'V'], 'Voltage Cell05': [-5.727, 'V'], 'Voltage Cell06': [0.0, 'V'], 'Voltage Cell07': [0.0, 'V'], 'Voltage Cell08': [0.0, 'V'], 'Voltage Cell09': [0.0, 'V'], 'Voltage Cell10': [0.0, 'V'], 'Voltage Cell11': [0.0, 'V'], 'Voltage Cell12': [0.0, 'V'], 'Voltage Cell13': [0.0, 'V'], 'Voltage Cell14': [0.0, 'V'], 'Voltage Cell15': [0.0, 'V'], 'Voltage Cell16': [0.0, 'V'], 'Voltage Cell17': [0.0, 'V'], 'Voltage Cell18': [0.0, 'V'], 'Voltage Cell19': [0.0, 'V'], 'Voltage Cell20': [0.0, 'V'], 'Voltage Cell21': [0.0, 'V'], 'Voltage Cell22': [0.0, 'V'], 'Voltage Cell23': [0.0, 'V'], 'Voltage Cell24': [0.0, 'V'], 'Temperature': [0, '°C'], 'Checksum': ['', '']}
2024-07-27 22:23:53,845:INFO:init:get_output@40: attempting to create output processor: screen
2024-07-27 22:23:53,847:DEBUG:screen:init@15: processor.screen init kwargs {}
2024-07-27 22:23:53,848:DEBUG:init:main@427: Using output filter: None
2024-07-27 22:23:53,848:INFO:screen:output@21: Using output processor: screen
2024-07-27 22:23:53,849:DEBUG:screen:output@22: kwargs {'data': {'_command': 'getBalancerData', 'command_description': 'Get Balancer Data', 'raw_response': ['\x02\x10\x16 \x00\x01\x02\x00\x00Â\x01\x03\x10\x16 \x00\x01\x02\x00\x00Ï\x91\x04\x10\x16 \x00\x01\x02\x00\x00é¡\x05', ''], 'Header': ['0210', ''], 'Slave Address': ['16', ''], 'Command Code': ['20', ''], 'Total Battery Voltage': [0.01, 'V'], 'Average Cell Voltage': [0.512, 'V'], 'Number of Cells': [0, ''], 'Highest Cell': [194, ''], 'Lowest Cell': [1, ''], 'Charging / Discharging': ['03', ''], 'Alarm - todo': ['10', ''], 'Voltage Difference': [5.664, 'V'], 'Balance Current': [0.001, 'A'], 'Balance Trigger Voltage': [0.512, 'V'], 'Max Balance Current': [0.207, 'A'], 'Balance On / Off': ['91', ''], 'Set Number of Cells': [4, ''], 'Voltage Cell01': [4.118, 'V'], 'Voltage Cell02': [8.192, 'V'], 'Voltage Cell03': [0.258, 'V'], 'Voltage Cell04': [0.0, 'V'], 'Voltage Cell05': [-5.727, 'V'], 'Voltage Cell06': [0.0, 'V'], 'Voltage Cell07': [0.0, 'V'], 'Voltage Cell08': [0.0, 'V'], 'Voltage Cell09': [0.0, 'V'], 'Voltage Cell10': [0.0, 'V'], 'Voltage Cell11': [0.0, 'V'], 'Voltage Cell12': [0.0, 'V'], 'Voltage Cell13': [0.0, 'V'], 'Voltage Cell14': [0.0, 'V'], 'Voltage Cell15': [0.0, 'V'], 'Voltage Cell16': [0.0, 'V'], 'Voltage Cell17': [0.0, 'V'], 'Voltage Cell18': [0.0, 'V'], 'Voltage Cell19': [0.0, 'V'], 'Voltage Cell20': [0.0, 'V'], 'Voltage Cell21': [0.0, 'V'], 'Voltage Cell22': [0.0, 'V'], 'Voltage Cell23': [0.0, 'V'], 'Voltage Cell24': [0.0, 'V'], 'Temperature': [0, '°C'], 'Checksum': ['', '']}, 'tag': '', 'name': 'unnamed', 'mqtt_broker': <mppsolar.libs.mqttbrokerc.MqttBroker object at 0x7607bca0>, 'udp_port': '5555', 'postgres_url': None, 'mongo_url': None, 'mongo_db': 'mppsolar', 'mqtt_topic': None, 'filter': None, 'excl_filter': None, 'keep_case': False}
2024-07-27 22:23:53,850:DEBUG:screen:output@74: displayData: {'header': ['0210', ''], 'slave_address': ['16', ''], 'command_code': ['20', ''], 'total_battery_voltage': [0.01, 'V'], 'average_cell_voltage': [0.512, 'V'], 'number_of_cells': [0, ''], 'highest_cell': [194, ''], 'lowest_cell': [1, ''], 'charging
/discharging': ['03', ''], 'alarm-todo': ['10', ''], 'voltage_difference': [5.664, 'V'], 'balance_current': [0.001, 'A'], 'balance_trigger_voltage': [0.512, 'V'], 'max_balance_current': [0.207, 'A'], 'balance_on/_off': ['91', ''], 'set_number_of_cells': [4, ''], 'voltage_cell01': [4.118, 'V'], 'voltage_cell02': [8.192, 'V'], 'voltage_cell03': [0.258, 'V'], 'voltage_cell04': [0.0, 'V'], 'voltage_cell05': [-5.727, 'V'], 'voltage_cell06': [0.0, 'V'], 'voltage_cell07': [0.0, 'V'], 'voltage_cell08': [0.0, 'V'], 'voltage_cell09': [0.0, 'V'], 'voltage_cell10': [0.0, 'V'], 'voltage_cell11': [0.0, 'V'], 'voltage_cell12': [0.0, 'V'], 'voltage_cell13': [0.0, 'V'], 'voltage_cell14': [0.0, 'V'], 'voltage_cell15': [0.0, 'V'], 'voltage_cell16': [0.0, 'V'], 'voltage_cell17': [0.0, 'V'], 'voltage_cell18': [0.0, 'V'], 'voltage_cell19': [0.0, 'V'], 'voltage_cell20': [0.0, 'V'], 'voltage_cell21': [0.0, 'V'], 'voltage_cell22': [0.0, 'V'], 'voltage_cell23': [0.0, 'V'], 'voltage_cell24': [0.0, 'V'], 'temperature': [0, '°C'], 'checksum': ['', '']}
Command: getBalancerData - Get Balancer Data

Parameter Value Unit
header 0210
slave_address 16
command_code 20
total_battery_voltage 0.01 V
average_cell_voltage 0.512 V
number_of_cells 0
highest_cell 194
lowest_cell 1
charging_/discharging 03
alarm
-todo 10
voltage_difference 5.664 V
balance_current 0.001 A
balance_trigger_voltage 0.512 V
max_balance_current 0.207 A
balance_on
/_off 91
set_number_of_cells 4
voltage_cell01 4.118 V
voltage_cell02 8.192 V
voltage_cell03 0.258 V
voltage_cell04 0.0 V
voltage_cell05 -5.727 V
voltage_cell06 0.0 V
voltage_cell07 0.0 V
voltage_cell08 0.0 V
voltage_cell09 0.0 V
voltage_cell10 0.0 V
voltage_cell11 0.0 V
voltage_cell12 0.0 V
voltage_cell13 0.0 V
voltage_cell14 0.0 V
voltage_cell15 0.0 V
voltage_cell16 0.0 V
voltage_cell17 0.0 V
voltage_cell18 0.0 V
voltage_cell19 0.0 V
voltage_cell20 0.0 V
voltage_cell21 0.0 V
voltage_cell22 0.0 V
voltage_cell23 0.0 V
voltage_cell24 0.0 V
temperature 0 °C
checksum
2024-07-27 22:23:53,852:DEBUG:init:main@452: Not daemon, so not looping
ps@raspberrypi:~ $ lsusb
Bus 001 Device 004: ID 1a86:7523 QinHeng Electronics CH340 serial converter

@axyaxyfr
Copy link
Author

axyaxyfr commented Jul 28, 2024

Also tried BT with JK04, but it runs until I break and gives this:

2024-07-28 08:22:41,254:DEBUG:jkabstractprotocol:wipe_to_start@150: SOR not found in record
2024-07-28 08:22:41,255:DEBUG:jkbledelegate:handleNotification@31: Post wipe to start bytearray(b'')
2024-07-28 08:22:41,255:DEBUG:jkbledelegate:handleNotification@38: Not expected type of record - wiping data bytearray(b'')
2024-07-28 08:22:41,255:DEBUG:jkabstractprotocol:is_record_complete@166: No SOR found in record looking for completeness
2024-07-28 08:22:41,459:DEBUG:jkbledelegate:handleNotification@27: From handle: 0x12 Got 4 bytes of data
2024-07-28 08:22:41,460:DEBUG:jkbledelegate:handleNotification@29: Pre wipe to start bytearray(b'AT\r\n')
2024-07-28 08:22:41,460:DEBUG:jkabstractprotocol:wipe_to_start@150: SOR not found in record
2024-07-28 08:22:41,461:DEBUG:jkbledelegate:handleNotification@31: Post wipe to start bytearray(b'')
2024-07-28 08:22:41,461:DEBUG:jkbledelegate:handleNotification@38: Not expected type of record - wiping data bytearray(b'')
2024-07-28 08:22:41,462:DEBUG:jkabstractprotocol:is_record_complete@166: No SOR found in record looking for completeness
2024-07-28 08:22:41,759:DEBUG:jkbledelegate:handleNotification@27: From handle: 0x12 Got 4 bytes of data
2024-07-28 08:22:41,760:DEBUG:jkbledelegate:handleNotification@29: Pre wipe to start bytearray(b'AT\r\n')
2024-07-28 08:22:41,760:DEBUG:jkabstractprotocol:wipe_to_start@150: SOR not found in record
2024-07-28 08:22:41,761:DEBUG:jkbledelegate:handleNotification@31: Post wipe to start bytearray(b'')
2024-07-28 08:22:41,761:DEBUG:jkbledelegate:handleNotification@38: Not expected type of record - wiping data bytearray(b'')
2024-07-28 08:22:41,762:DEBUG:jkabstractprotocol:is_record_complete@166: No SOR found in record looking for completeness
^CTraceback (most recent call last):
File "/home/ps/.local/bin/jkbms", line 8, in
sys.exit(main())
File "/home/ps/.local/lib/python3.9/site-packages/mppsolar/init.py", line 420, in main
results = _device.run_command(command=_command)
File "/home/ps/.local/lib/python3.9/site-packages/mppsolar/devices/device.py", line 89, in run_command
raw_response = self._port.send_and_receive(
File "/home/ps/.local/lib/python3.9/site-packages/mppsolar/inout/jkbleio.py", line 37, in send_and_receive
response = self.ble_get_data(full_command)
File "/home/ps/.local/lib/python3.9/site-packages/mppsolar/inout/jkbleio.py", line 125, in ble_get_data
if self._device.waitForNotifications(1.0):
File "/usr/local/lib/python3.9/dist-packages/bluepy/btle.py", line 560, in waitForNotifications
resp = self._getResp(['ntfy','ind'], timeout)
File "/usr/local/lib/python3.9/dist-packages/bluepy/btle.py", line 407, in _getResp
resp = self._waitResp(wantType + ['ntfy', 'ind'], timeout)
File "/usr/local/lib/python3.9/dist-packages/bluepy/btle.py", line 342, in _waitResp
fds = self._poller.poll(timeout*1000)
KeyboardInterrupt

EDIT: Looks like the same as: #504

@jblance
Copy link
Owner

jblance commented Jul 28, 2024 via email

@axyaxyfr
Copy link
Author

Sure thing. With 9600:

ps@raspberrypi:~ $ jkbms -p /dev/ttyUSB0 -b 9600 -P JK485 -D
2024-07-29 06:40:49,507:INFO:init:main@214: Solar Device Command Utility, version: 0.15.62
2024-07-29 06:40:49,507:DEBUG:mqttbrokerc:init@29: mqttbroker config: {'name': 'localhost', 'port': 1883, 'user': None, 'pass': None}
2024-07-29 06:40:49,508:DEBUG:init:main@239: MqttBroker name: localhost, port: 1883, user: None
2024-07-29 06:40:49,508:DEBUG:init:main@241: udp port 5555
2024-07-29 06:40:49,509:DEBUG:init:main@243: Using Postgres None
2024-07-29 06:40:49,509:DEBUG:init:main@246: Using Mongo None with mppsolar
2024-07-29 06:40:49,509:INFO:init:main@347: Creating device "unnamed" (type: "jkbms") on port "/dev/ttyUSB0 (porttype=None)" using protocol "JK485"
2024-07-29 06:40:49,524:DEBUG:init:main@351: device_class <class 'mppsolar.devices.jkbms.jkbms'>
2024-07-29 06:40:49,525:DEBUG:device:init@33: init args ()
2024-07-29 06:40:49,525:DEBUG:device:init@34: init kwargs {'name': 'unnamed', 'port': '/dev/ttyUSB0', 'protocol': 'JK485', 'baud': 9600, 'porttype': None, 'mqtt_broker': <mppsolar.libs.mqttbrokerc.MqttBroker object at 0x760bbca0>, 'udp_port': '5555', 'mongo_url': None, 'mongo_db': 'mppsolar'}
2024-07-29 06:40:49,526:DEBUG:init:get_port_type@69: port matches ttyusb
2024-07-29 06:40:49,526:INFO:init:get_port@111: Using serialio for communications
2024-07-29 06:40:49,557:DEBUG:init:get_protocol@13: Protocol JK485
2024-07-29 06:40:49,877:DEBUG:device:init@38: init name unnamed, port <mppsolar.inout.serialio.SerialIO object at 0x760bbda8>, protocol JKBMS RS485 serial communication protocol handler
2024-07-29 06:40:49,877:DEBUG:init:main@402: Commands [(<mppsolar.devices.jkbms.jkbms object at 0x760bbcb8>, '', '', 'screen', None, None)]
2024-07-29 06:40:49,878:INFO:init:main@407: Looping 1 commands
2024-07-29 06:40:49,878:INFO:init:main@417: Getting results from device: jkbms device - name: unnamed, port: <mppsolar.inout.serialio.SerialIO object at 0x760bbda8>, protocol: JKBMS RS485 serial communication protocol handler for command: , tag: , outputs: screen
2024-07-29 06:40:49,878:INFO:device:run_command@50: Running command
2024-07-29 06:40:49,879:INFO:jk485:get_full_command@100: Using protocol b'JK485' with 1 commands
2024-07-29 06:40:49,879:DEBUG:jkabstractprotocol:get_command_defn@105: get_command_defn for: getBalancerData
2024-07-29 06:40:49,879:DEBUG:abstractprotocol:get_command_defn@70: Processing command 'getBalancerData'
2024-07-29 06:40:49,879:DEBUG:abstractprotocol:get_command_defn@72: Found command getBalancerData in protocol b'JK485'
2024-07-29 06:40:49,879:DEBUG:jk485:get_full_command@114: cmd with header: bytearray(b'U\xaa\x00\x00\x00\x00\x00')
2024-07-29 06:40:49,880:DEBUG:jk485:get_full_command@117: cmd with header + slave address: bytearray(b'U\xaa\x01\x00\x00\x00\x00')
2024-07-29 06:40:49,880:DEBUG:jk485:get_full_command@122: cmd with command code and frame data: bytearray(b'U\xaa\x01\xff\x00\x00\x00')
2024-07-29 06:40:49,880:DEBUG:jk485:get_full_command@125: cmd with crc: bytearray(b'U\xaa\x01\xff\x00\x00\xff')
2024-07-29 06:40:49,880:INFO:device:run_command@78: full command bytearray(b'U\xaa\x01\xff\x00\x00\xff') for command getBalancerData
2024-07-29 06:40:49,881:DEBUG:jkabstractprotocol:get_command_defn@105: get_command_defn for: getBalancerData
2024-07-29 06:40:49,881:DEBUG:abstractprotocol:get_command_defn@70: Processing command 'getBalancerData'
2024-07-29 06:40:49,881:DEBUG:abstractprotocol:get_command_defn@72: Found command getBalancerData in protocol b'JK485'
2024-07-29 06:40:49,882:DEBUG:serialio:send_and_receive@19: port /dev/ttyUSB0, baudrate 9600
2024-07-29 06:40:49,885:DEBUG:serialio:send_and_receive@22: Executing command via serialio...
2024-07-29 06:40:51,005:DEBUG:serialio:send_and_receive@30: serial response was: b'I\xef\x8e\x0c\x00\x00\xd8\x08H@\x00\x00\x00\x00\x00\x84\x19\x00@\x80\x80 \x03\x00\x84\xfe\x00'
2024-07-29 06:40:51,006:DEBUG:device:run_command@95: Send and Receive Response b'I\xef\x8e\x0c\x00\x00\xd8\x08H@\x00\x00\x00\x00\x00\x84\x19\x00@\x80\x80 \x03\x00\x84\xfe\x00'
2024-07-29 06:40:51,007:INFO:abstractprotocol:decode@245: response passed to decode: b'I\xef\x8e\x0c\x00\x00\xd8\x08H@\x00\x00\x00\x00\x00\x84\x19\x00@\x80\x80 \x03\x00\x84\xfe\x00'
2024-07-29 06:40:51,008:DEBUG:jkabstractprotocol:get_command_defn@105: get_command_defn for: getBalancerData
2024-07-29 06:40:51,008:DEBUG:abstractprotocol:get_command_defn@70: Processing command 'getBalancerData'
2024-07-29 06:40:51,008:DEBUG:abstractprotocol:get_command_defn@72: Found command getBalancerData in protocol b'JK485'
2024-07-29 06:40:51,010:INFO:abstractprotocol:decode@289: Processing response of type POSITIONAL
2024-07-29 06:40:51,010:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['Hex2Str', 2, 'Header', '']
2024-07-29 06:40:51,011:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['Hex2Str', 1, 'Slave Address', '']
2024-07-29 06:40:51,011:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['Hex2Str', 1, 'Command Code', '']
2024-07-29 06:40:51,012:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/100', 2, 'Total Battery Voltage', 'V']
2024-07-29 06:40:51,013:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Average Cell Voltage', 'V']
2024-07-29 06:40:51,013:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['Hex2Int', 1, 'Number of Cells', '']
2024-07-29 06:40:51,014:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['Hex2Int', 1, 'Highest Cell', '']
2024-07-29 06:40:51,015:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['Hex2Int', 1, 'Lowest Cell', '']
2024-07-29 06:40:51,015:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['Hex2Str', 1, 'Charging / Discharging', '']
2024-07-29 06:40:51,016:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['Hex2Str', 1, 'Alarm - todo', '']
2024-07-29 06:40:51,019:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Difference', 'V']
2024-07-29 06:40:51,019:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Balance Current', 'A']
2024-07-29 06:40:51,020:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Balance Trigger Voltage', 'V']
2024-07-29 06:40:51,021:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Max Balance Current', 'A']
2024-07-29 06:40:51,021:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['Hex2Str', 1, 'Balance On / Off', '']
2024-07-29 06:40:51,022:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['Hex2Int', 1, 'Set Number of Cells', '']
2024-07-29 06:40:51,023:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell01', 'V']
2024-07-29 06:40:51,025:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell02', 'V']
2024-07-29 06:40:51,025:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell03', 'V']
2024-07-29 06:40:51,026:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell04', 'V']
2024-07-29 06:40:51,026:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell05', 'V']
2024-07-29 06:40:51,027:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell06', 'V']
2024-07-29 06:40:51,028:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell07', 'V']
2024-07-29 06:40:51,029:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell08', 'V']
2024-07-29 06:40:51,029:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell09', 'V']
2024-07-29 06:40:51,030:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell10', 'V']
2024-07-29 06:40:51,030:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell11', 'V']
2024-07-29 06:40:51,031:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell12', 'V']
2024-07-29 06:40:51,032:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell13', 'V']
2024-07-29 06:40:51,033:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell14', 'V']
2024-07-29 06:40:51,033:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell15', 'V']
2024-07-29 06:40:51,034:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell16', 'V']
2024-07-29 06:40:51,034:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell17', 'V']
2024-07-29 06:40:51,035:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell18', 'V']
2024-07-29 06:40:51,035:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell19', 'V']
2024-07-29 06:40:51,036:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell20', 'V']
2024-07-29 06:40:51,037:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell21', 'V']
2024-07-29 06:40:51,038:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell22', 'V']
2024-07-29 06:40:51,038:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell23', 'V']
2024-07-29 06:40:51,039:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell24', 'V']
2024-07-29 06:40:51,040:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short', 2, 'Temperature', '°C']
2024-07-29 06:40:51,040:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['Hex2Str', 1, 'Checksum', '']
2024-07-29 06:40:51,041:DEBUG:abstractprotocol:decode@293: trimmed and split responses: [b'I\xef', b'\x8e', b'\x0c', b'\x00\x00', b'\xd8\x08', b'H', b'@', b'\x00', b'\x00', b'\x00', b'\x00\x00', b'\x84\x19', b'\x00@', b'\x80\x80', b' ', b'\x03', b'\x00\x84', b'\xfe\x00', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'']
2024-07-29 06:40:51,043:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-29 06:40:51,043:DEBUG:abstractprotocol:decode@519: Got defn ['Hex2Str', 2, 'Header', '']
2024-07-29 06:40:51,044:DEBUG:abstractprotocol:process_response@117: Processing data_type: Hex2Str for data_name: Header, raw_value b'I\xef'
2024-07-29 06:40:51,044:DEBUG:abstractprotocol:process_response@206: Processing format string Hex2Str(raw_value)
2024-07-29 06:40:51,046:DEBUG:protocol_helpers:Hex2Str@109: Hex b'I\xef' decoded to 49ef
2024-07-29 06:40:51,046:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-29 06:40:51,047:DEBUG:abstractprotocol:decode@519: Got defn ['Hex2Str', 1, 'Slave Address', '']
2024-07-29 06:40:51,048:DEBUG:abstractprotocol:process_response@117: Processing data_type: Hex2Str for data_name: Slave Address, raw_value b'\x8e'
2024-07-29 06:40:51,049:DEBUG:abstractprotocol:process_response@206: Processing format string Hex2Str(raw_value)
2024-07-29 06:40:51,050:DEBUG:protocol_helpers:Hex2Str@109: Hex b'\x8e' decoded to 8e
2024-07-29 06:40:51,050:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-29 06:40:51,051:DEBUG:abstractprotocol:decode@519: Got defn ['Hex2Str', 1, 'Command Code', '']
2024-07-29 06:40:51,051:DEBUG:abstractprotocol:process_response@117: Processing data_type: Hex2Str for data_name: Command Code, raw_value b'\x0c'
2024-07-29 06:40:51,052:DEBUG:abstractprotocol:process_response@206: Processing format string Hex2Str(raw_value)
2024-07-29 06:40:51,053:DEBUG:protocol_helpers:Hex2Str@109: Hex b'\x0c' decoded to 0c
2024-07-29 06:40:51,054:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-29 06:40:51,054:DEBUG:abstractprotocol:decode@519: Got defn ['BigHex2Short:r/100', 2, 'Total Battery Voltage', 'V']
2024-07-29 06:40:51,055:DEBUG:abstractprotocol:process_response@116: Got template r/100 for Total Battery Voltage b'\x00\x00'
2024-07-29 06:40:51,056:DEBUG:abstractprotocol:process_response@117: Processing data_type: BigHex2Short for data_name: Total Battery Voltage, raw_value b'\x00\x00'
2024-07-29 06:40:51,056:DEBUG:abstractprotocol:process_response@206: Processing format string BigHex2Short(raw_value)
2024-07-29 06:40:51,058:DEBUG:protocol_helpers:BigHex2Short@151: Hex b'\x00\x00' 2 byte decoded to 0
2024-07-29 06:40:51,058:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-29 06:40:51,059:DEBUG:abstractprotocol:decode@519: Got defn ['BigHex2Short:r/1000', 2, 'Average Cell Voltage', 'V']
2024-07-29 06:40:51,060:DEBUG:abstractprotocol:process_response@116: Got template r/1000 for Average Cell Voltage b'\xd8\x08'
2024-07-29 06:40:51,061:DEBUG:abstractprotocol:process_response@117: Processing data_type: BigHex2Short for data_name: Average Cell Voltage, raw_value b'\xd8\x08'
2024-07-29 06:40:51,061:DEBUG:abstractprotocol:process_response@206: Processing format string BigHex2Short(raw_value)
2024-07-29 06:40:51,062:DEBUG:protocol_helpers:BigHex2Short@151: Hex b'\xd8\x08' 2 byte decoded to -10232
2024-07-29 06:40:51,063:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-29 06:40:51,063:DEBUG:abstractprotocol:decode@519: Got defn ['Hex2Int', 1, 'Number of Cells', '']
2024-07-29 06:40:51,064:DEBUG:abstractprotocol:process_response@117: Processing data_type: Hex2Int for data_name: Number of Cells, raw_value b'H'
2024-07-29 06:40:51,065:DEBUG:abstractprotocol:process_response@206: Processing format string Hex2Int(raw_value)
2024-07-29 06:40:51,066:DEBUG:protocol_helpers:Hex2Int@96: Hex b'H' decoded to 72
2024-07-29 06:40:51,066:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-29 06:40:51,067:DEBUG:abstractprotocol:decode@519: Got defn ['Hex2Int', 1, 'Highest Cell', '']
2024-07-29 06:40:51,067:DEBUG:abstractprotocol:process_response@117: Processing data_type: Hex2Int for data_name: Highest Cell, raw_value b'@'
2024-07-29 06:40:51,068:DEBUG:abstractprotocol:process_response@206: Processing format string Hex2Int(raw_value)
2024-07-29 06:40:51,069:DEBUG:protocol_helpers:Hex2Int@96: Hex b'@' decoded to 64
2024-07-29 06:40:51,069:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-29 06:40:51,070:DEBUG:abstractprotocol:decode@519: Got defn ['Hex2Int', 1, 'Lowest Cell', '']
2024-07-29 06:40:51,070:DEBUG:abstractprotocol:process_response@117: Processing data_type: Hex2Int for data_name: Lowest Cell, raw_value b'\x00'
2024-07-29 06:40:51,071:DEBUG:abstractprotocol:process_response@206: Processing format string Hex2Int(raw_value)
2024-07-29 06:40:51,072:DEBUG:protocol_helpers:Hex2Int@96: Hex b'\x00' decoded to 0
2024-07-29 06:40:51,072:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-29 06:40:51,073:DEBUG:abstractprotocol:decode@519: Got defn ['Hex2Str', 1, 'Charging / Discharging', '']
2024-07-29 06:40:51,074:DEBUG:abstractprotocol:process_response@117: Processing data_type: Hex2Str for data_name: Charging / Discharging, raw_value b'\x00'
2024-07-29 06:40:51,074:DEBUG:abstractprotocol:process_response@206: Processing format string Hex2Str(raw_value)
2024-07-29 06:40:51,075:DEBUG:protocol_helpers:Hex2Str@109: Hex b'\x00' decoded to 00
2024-07-29 06:40:51,076:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-29 06:40:51,077:DEBUG:abstractprotocol:decode@519: Got defn ['Hex2Str', 1, 'Alarm - todo', '']
2024-07-29 06:40:51,078:DEBUG:abstractprotocol:process_response@117: Processing data_type: Hex2Str for data_name: Alarm - todo, raw_value b'\x00'
2024-07-29 06:40:51,078:DEBUG:abstractprotocol:process_response@206: Processing format string Hex2Str(raw_value)
2024-07-29 06:40:51,079:DEBUG:protocol_helpers:Hex2Str@109: Hex b'\x00' decoded to 00
2024-07-29 06:40:51,080:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-29 06:40:51,080:DEBUG:abstractprotocol:decode@519: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Difference', 'V']
2024-07-29 06:40:51,081:DEBUG:abstractprotocol:process_response@116: Got template r/1000 for Voltage Difference b'\x00\x00'
2024-07-29 06:40:51,082:DEBUG:abstractprotocol:process_response@117: Processing data_type: BigHex2Short for data_name: Voltage Difference, raw_value b'\x00\x00'
2024-07-29 06:40:51,082:DEBUG:abstractprotocol:process_response@206: Processing format string BigHex2Short(raw_value)
2024-07-29 06:40:51,083:DEBUG:protocol_helpers:BigHex2Short@151: Hex b'\x00\x00' 2 byte decoded to 0
2024-07-29 06:40:51,084:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-29 06:40:51,085:DEBUG:abstractprotocol:decode@519: Got defn ['BigHex2Short:r/1000', 2, 'Balance Current', 'A']
2024-07-29 06:40:51,086:DEBUG:abstractprotocol:process_response@116: Got template r/1000 for Balance Current b'\x84\x19'
2024-07-29 06:40:51,087:DEBUG:abstractprotocol:process_response@117: Processing data_type: BigHex2Short for data_name: Balance Current, raw_value b'\x84\x19'
2024-07-29 06:40:51,087:DEBUG:abstractprotocol:process_response@206: Processing format string BigHex2Short(raw_value)
2024-07-29 06:40:51,088:DEBUG:protocol_helpers:BigHex2Short@151: Hex b'\x84\x19' 2 byte decoded to -31719
2024-07-29 06:40:51,089:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-29 06:40:51,090:DEBUG:abstractprotocol:decode@519: Got defn ['BigHex2Short:r/1000', 2, 'Balance Trigger Voltage', 'V']
2024-07-29 06:40:51,091:DEBUG:abstractprotocol:process_response@116: Got template r/1000 for Balance Trigger Voltage b'\x00@'
2024-07-29 06:40:51,091:DEBUG:abstractprotocol:process_response@117: Processing data_type: BigHex2Short for data_name: Balance Trigger Voltage, raw_value b'\x00@'
2024-07-29 06:40:51,092:DEBUG:abstractprotocol:process_response@206: Processing format string BigHex2Short(raw_value)
2024-07-29 06:40:51,093:DEBUG:protocol_helpers:BigHex2Short@151: Hex b'\x00@' 2 byte decoded to 64
2024-07-29 06:40:51,094:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-29 06:40:51,095:DEBUG:abstractprotocol:decode@519: Got defn ['BigHex2Short:r/1000', 2, 'Max Balance Current', 'A']
2024-07-29 06:40:51,095:DEBUG:abstractprotocol:process_response@116: Got template r/1000 for Max Balance Current b'\x80\x80'
2024-07-29 06:40:51,096:DEBUG:abstractprotocol:process_response@117: Processing data_type: BigHex2Short for data_name: Max Balance Current, raw_value b'\x80\x80'
2024-07-29 06:40:51,096:DEBUG:abstractprotocol:process_response@206: Processing format string BigHex2Short(raw_value)
2024-07-29 06:40:51,098:DEBUG:protocol_helpers:BigHex2Short@151: Hex b'\x80\x80' 2 byte decoded to -32640
2024-07-29 06:40:51,099:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-29 06:40:51,099:DEBUG:abstractprotocol:decode@519: Got defn ['Hex2Str', 1, 'Balance On / Off', '']
2024-07-29 06:40:51,100:DEBUG:abstractprotocol:process_response@117: Processing data_type: Hex2Str for data_name: Balance On / Off, raw_value b' '
2024-07-29 06:40:51,100:DEBUG:abstractprotocol:process_response@206: Processing format string Hex2Str(raw_value)
2024-07-29 06:40:51,101:DEBUG:protocol_helpers:Hex2Str@109: Hex b' ' decoded to 20
2024-07-29 06:40:51,102:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-29 06:40:51,102:DEBUG:abstractprotocol:decode@519: Got defn ['Hex2Int', 1, 'Set Number of Cells', '']
2024-07-29 06:40:51,103:DEBUG:abstractprotocol:process_response@117: Processing data_type: Hex2Int for data_name: Set Number of Cells, raw_value b'\x03'
2024-07-29 06:40:51,103:DEBUG:abstractprotocol:process_response@206: Processing format string Hex2Int(raw_value)
2024-07-29 06:40:51,105:DEBUG:protocol_helpers:Hex2Int@96: Hex b'\x03' decoded to 3
2024-07-29 06:40:51,105:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-29 06:40:51,106:DEBUG:abstractprotocol:decode@519: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell01', 'V']
2024-07-29 06:40:51,106:DEBUG:abstractprotocol:process_response@116: Got template r/1000 for Voltage Cell01 b'\x00\x84'
2024-07-29 06:40:51,107:DEBUG:abstractprotocol:process_response@117: Processing data_type: BigHex2Short for data_name: Voltage Cell01, raw_value b'\x00\x84'
2024-07-29 06:40:51,107:DEBUG:abstractprotocol:process_response@206: Processing format string BigHex2Short(raw_value)
2024-07-29 06:40:51,108:DEBUG:protocol_helpers:BigHex2Short@151: Hex b'\x00\x84' 2 byte decoded to 132
2024-07-29 06:40:51,109:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-29 06:40:51,110:DEBUG:abstractprotocol:decode@519: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell02', 'V']
2024-07-29 06:40:51,110:DEBUG:abstractprotocol:process_response@116: Got template r/1000 for Voltage Cell02 b'\xfe\x00'
2024-07-29 06:40:51,111:DEBUG:abstractprotocol:process_response@117: Processing data_type: BigHex2Short for data_name: Voltage Cell02, raw_value b'\xfe\x00'
2024-07-29 06:40:51,111:DEBUG:abstractprotocol:process_response@206: Processing format string BigHex2Short(raw_value)
2024-07-29 06:40:51,112:DEBUG:protocol_helpers:BigHex2Short@151: Hex b'\xfe\x00' 2 byte decoded to -512
2024-07-29 06:40:51,113:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-29 06:40:51,114:DEBUG:abstractprotocol:decode@519: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell03', 'V']
2024-07-29 06:40:51,114:DEBUG:abstractprotocol:process_response@116: Got template r/1000 for Voltage Cell03 b''
2024-07-29 06:40:51,115:DEBUG:abstractprotocol:process_response@117: Processing data_type: BigHex2Short for data_name: Voltage Cell03, raw_value b''
2024-07-29 06:40:51,115:DEBUG:abstractprotocol:process_response@206: Processing format string BigHex2Short(raw_value)
2024-07-29 06:40:51,116:INFO:protocol_helpers:BigHex2Short@148: Hex encoded value must be 2 bytes long. Was 0 length
2024-07-29 06:40:51,117:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-29 06:40:51,118:DEBUG:abstractprotocol:decode@519: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell04', 'V']
2024-07-29 06:40:51,118:DEBUG:abstractprotocol:process_response@116: Got template r/1000 for Voltage Cell04 b''
2024-07-29 06:40:51,118:DEBUG:abstractprotocol:process_response@117: Processing data_type: BigHex2Short for data_name: Voltage Cell04, raw_value b''
2024-07-29 06:40:51,119:DEBUG:abstractprotocol:process_response@206: Processing format string BigHex2Short(raw_value)
2024-07-29 06:40:51,119:INFO:protocol_helpers:BigHex2Short@148: Hex encoded value must be 2 bytes long. Was 0 length
2024-07-29 06:40:51,120:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-29 06:40:51,120:DEBUG:abstractprotocol:decode@519: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell05', 'V']
2024-07-29 06:40:51,121:DEBUG:abstractprotocol:process_response@116: Got template r/1000 for Voltage Cell05 b''
2024-07-29 06:40:51,121:DEBUG:abstractprotocol:process_response@117: Processing data_type: BigHex2Short for data_name: Voltage Cell05, raw_value b''
2024-07-29 06:40:51,121:DEBUG:abstractprotocol:process_response@206: Processing format string BigHex2Short(raw_value)
2024-07-29 06:40:51,122:INFO:protocol_helpers:BigHex2Short@148: Hex encoded value must be 2 bytes long. Was 0 length
2024-07-29 06:40:51,124:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-29 06:40:51,124:DEBUG:abstractprotocol:decode@519: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell06', 'V']
2024-07-29 06:40:51,125:DEBUG:abstractprotocol:process_response@116: Got template r/1000 for Voltage Cell06 b''
2024-07-29 06:40:51,125:DEBUG:abstractprotocol:process_response@117: Processing data_type: BigHex2Short for data_name: Voltage Cell06, raw_value b''
2024-07-29 06:40:51,125:DEBUG:abstractprotocol:process_response@206: Processing format string BigHex2Short(raw_value)
2024-07-29 06:40:51,126:INFO:protocol_helpers:BigHex2Short@148: Hex encoded value must be 2 bytes long. Was 0 length
2024-07-29 06:40:51,126:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-29 06:40:51,126:DEBUG:abstractprotocol:decode@519: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell07', 'V']
2024-07-29 06:40:51,127:DEBUG:abstractprotocol:process_response@116: Got template r/1000 for Voltage Cell07 b''
2024-07-29 06:40:51,127:DEBUG:abstractprotocol:process_response@117: Processing data_type: BigHex2Short for data_name: Voltage Cell07, raw_value b''
2024-07-29 06:40:51,127:DEBUG:abstractprotocol:process_response@206: Processing format string BigHex2Short(raw_value)
2024-07-29 06:40:51,127:INFO:protocol_helpers:BigHex2Short@148: Hex encoded value must be 2 bytes long. Was 0 length
2024-07-29 06:40:51,128:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-29 06:40:51,128:DEBUG:abstractprotocol:decode@519: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell08', 'V']
2024-07-29 06:40:51,128:DEBUG:abstractprotocol:process_response@116: Got template r/1000 for Voltage Cell08 b''
2024-07-29 06:40:51,128:DEBUG:abstractprotocol:process_response@117: Processing data_type: BigHex2Short for data_name: Voltage Cell08, raw_value b''
2024-07-29 06:40:51,129:DEBUG:abstractprotocol:process_response@206: Processing format string BigHex2Short(raw_value)
2024-07-29 06:40:51,129:INFO:protocol_helpers:BigHex2Short@148: Hex encoded value must be 2 bytes long. Was 0 length
2024-07-29 06:40:51,129:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-29 06:40:51,129:DEBUG:abstractprotocol:decode@519: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell09', 'V']
2024-07-29 06:40:51,130:DEBUG:abstractprotocol:process_response@116: Got template r/1000 for Voltage Cell09 b''
2024-07-29 06:40:51,130:DEBUG:abstractprotocol:process_response@117: Processing data_type: BigHex2Short for data_name: Voltage Cell09, raw_value b''
2024-07-29 06:40:51,130:DEBUG:abstractprotocol:process_response@206: Processing format string BigHex2Short(raw_value)
2024-07-29 06:40:51,130:INFO:protocol_helpers:BigHex2Short@148: Hex encoded value must be 2 bytes long. Was 0 length
2024-07-29 06:40:51,131:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-29 06:40:51,131:DEBUG:abstractprotocol:decode@519: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell10', 'V']
2024-07-29 06:40:51,131:DEBUG:abstractprotocol:process_response@116: Got template r/1000 for Voltage Cell10 b''
2024-07-29 06:40:51,131:DEBUG:abstractprotocol:process_response@117: Processing data_type: BigHex2Short for data_name: Voltage Cell10, raw_value b''
2024-07-29 06:40:51,132:DEBUG:abstractprotocol:process_response@206: Processing format string BigHex2Short(raw_value)
2024-07-29 06:40:51,132:INFO:protocol_helpers:BigHex2Short@148: Hex encoded value must be 2 bytes long. Was 0 length
2024-07-29 06:40:51,132:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-29 06:40:51,133:DEBUG:abstractprotocol:decode@519: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell11', 'V']
2024-07-29 06:40:51,133:DEBUG:abstractprotocol:process_response@116: Got template r/1000 for Voltage Cell11 b''
2024-07-29 06:40:51,133:DEBUG:abstractprotocol:process_response@117: Processing data_type: BigHex2Short for data_name: Voltage Cell11, raw_value b''
2024-07-29 06:40:51,133:DEBUG:abstractprotocol:process_response@206: Processing format string BigHex2Short(raw_value)
2024-07-29 06:40:51,134:INFO:protocol_helpers:BigHex2Short@148: Hex encoded value must be 2 bytes long. Was 0 length
2024-07-29 06:40:51,134:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-29 06:40:51,134:DEBUG:abstractprotocol:decode@519: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell12', 'V']
2024-07-29 06:40:51,134:DEBUG:abstractprotocol:process_response@116: Got template r/1000 for Voltage Cell12 b''
2024-07-29 06:40:51,135:DEBUG:abstractprotocol:process_response@117: Processing data_type: BigHex2Short for data_name: Voltage Cell12, raw_value b''
2024-07-29 06:40:51,135:DEBUG:abstractprotocol:process_response@206: Processing format string BigHex2Short(raw_value)
2024-07-29 06:40:51,135:INFO:protocol_helpers:BigHex2Short@148: Hex encoded value must be 2 bytes long. Was 0 length
2024-07-29 06:40:51,136:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-29 06:40:51,136:DEBUG:abstractprotocol:decode@519: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell13', 'V']
2024-07-29 06:40:51,136:DEBUG:abstractprotocol:process_response@116: Got template r/1000 for Voltage Cell13 b''
2024-07-29 06:40:51,136:DEBUG:abstractprotocol:process_response@117: Processing data_type: BigHex2Short for data_name: Voltage Cell13, raw_value b''
2024-07-29 06:40:51,136:DEBUG:abstractprotocol:process_response@206: Processing format string BigHex2Short(raw_value)
2024-07-29 06:40:51,137:INFO:protocol_helpers:BigHex2Short@148: Hex encoded value must be 2 bytes long. Was 0 length
2024-07-29 06:40:51,137:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-29 06:40:51,137:DEBUG:abstractprotocol:decode@519: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell14', 'V']
2024-07-29 06:40:51,138:DEBUG:abstractprotocol:process_response@116: Got template r/1000 for Voltage Cell14 b''
2024-07-29 06:40:51,138:DEBUG:abstractprotocol:process_response@117: Processing data_type: BigHex2Short for data_name: Voltage Cell14, raw_value b''
2024-07-29 06:40:51,138:DEBUG:abstractprotocol:process_response@206: Processing format string BigHex2Short(raw_value)
2024-07-29 06:40:51,138:INFO:protocol_helpers:BigHex2Short@148: Hex encoded value must be 2 bytes long. Was 0 length
2024-07-29 06:40:51,139:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-29 06:40:51,139:DEBUG:abstractprotocol:decode@519: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell15', 'V']
2024-07-29 06:40:51,139:DEBUG:abstractprotocol:process_response@116: Got template r/1000 for Voltage Cell15 b''
2024-07-29 06:40:51,139:DEBUG:abstractprotocol:process_response@117: Processing data_type: BigHex2Short for data_name: Voltage Cell15, raw_value b''
2024-07-29 06:40:51,140:DEBUG:abstractprotocol:process_response@206: Processing format string BigHex2Short(raw_value)
2024-07-29 06:40:51,141:INFO:protocol_helpers:BigHex2Short@148: Hex encoded value must be 2 bytes long. Was 0 length
2024-07-29 06:40:51,142:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-29 06:40:51,142:DEBUG:abstractprotocol:decode@519: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell16', 'V']
2024-07-29 06:40:51,143:DEBUG:abstractprotocol:process_response@116: Got template r/1000 for Voltage Cell16 b''
2024-07-29 06:40:51,143:DEBUG:abstractprotocol:process_response@117: Processing data_type: BigHex2Short for data_name: Voltage Cell16, raw_value b''
2024-07-29 06:40:51,143:DEBUG:abstractprotocol:process_response@206: Processing format string BigHex2Short(raw_value)
2024-07-29 06:40:51,143:INFO:protocol_helpers:BigHex2Short@148: Hex encoded value must be 2 bytes long. Was 0 length
2024-07-29 06:40:51,144:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-29 06:40:51,144:DEBUG:abstractprotocol:decode@519: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell17', 'V']
2024-07-29 06:40:51,144:DEBUG:abstractprotocol:process_response@116: Got template r/1000 for Voltage Cell17 b''
2024-07-29 06:40:51,144:DEBUG:abstractprotocol:process_response@117: Processing data_type: BigHex2Short for data_name: Voltage Cell17, raw_value b''
2024-07-29 06:40:51,145:DEBUG:abstractprotocol:process_response@206: Processing format string BigHex2Short(raw_value)
2024-07-29 06:40:51,145:INFO:protocol_helpers:BigHex2Short@148: Hex encoded value must be 2 bytes long. Was 0 length
2024-07-29 06:40:51,145:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-29 06:40:51,145:DEBUG:abstractprotocol:decode@519: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell18', 'V']
2024-07-29 06:40:51,146:DEBUG:abstractprotocol:process_response@116: Got template r/1000 for Voltage Cell18 b''
2024-07-29 06:40:51,146:DEBUG:abstractprotocol:process_response@117: Processing data_type: BigHex2Short for data_name: Voltage Cell18, raw_value b''
2024-07-29 06:40:51,146:DEBUG:abstractprotocol:process_response@206: Processing format string BigHex2Short(raw_value)
2024-07-29 06:40:51,146:INFO:protocol_helpers:BigHex2Short@148: Hex encoded value must be 2 bytes long. Was 0 length
2024-07-29 06:40:51,147:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-29 06:40:51,147:DEBUG:abstractprotocol:decode@519: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell19', 'V']
2024-07-29 06:40:51,147:DEBUG:abstractprotocol:process_response@116: Got template r/1000 for Voltage Cell19 b''
2024-07-29 06:40:51,147:DEBUG:abstractprotocol:process_response@117: Processing data_type: BigHex2Short for data_name: Voltage Cell19, raw_value b''
2024-07-29 06:40:51,148:DEBUG:abstractprotocol:process_response@206: Processing format string BigHex2Short(raw_value)
2024-07-29 06:40:51,148:INFO:protocol_helpers:BigHex2Short@148: Hex encoded value must be 2 bytes long. Was 0 length
2024-07-29 06:40:51,149:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-29 06:40:51,150:DEBUG:abstractprotocol:decode@519: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell20', 'V']
2024-07-29 06:40:51,150:DEBUG:abstractprotocol:process_response@116: Got template r/1000 for Voltage Cell20 b''
2024-07-29 06:40:51,150:DEBUG:abstractprotocol:process_response@117: Processing data_type: BigHex2Short for data_name: Voltage Cell20, raw_value b''
2024-07-29 06:40:51,151:DEBUG:abstractprotocol:process_response@206: Processing format string BigHex2Short(raw_value)
2024-07-29 06:40:51,151:INFO:protocol_helpers:BigHex2Short@148: Hex encoded value must be 2 bytes long. Was 0 length
2024-07-29 06:40:51,152:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-29 06:40:51,152:DEBUG:abstractprotocol:decode@519: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell21', 'V']
2024-07-29 06:40:51,152:DEBUG:abstractprotocol:process_response@116: Got template r/1000 for Voltage Cell21 b''
2024-07-29 06:40:51,153:DEBUG:abstractprotocol:process_response@117: Processing data_type: BigHex2Short for data_name: Voltage Cell21, raw_value b''
2024-07-29 06:40:51,153:DEBUG:abstractprotocol:process_response@206: Processing format string BigHex2Short(raw_value)
2024-07-29 06:40:51,154:INFO:protocol_helpers:BigHex2Short@148: Hex encoded value must be 2 bytes long. Was 0 length
2024-07-29 06:40:51,154:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-29 06:40:51,155:DEBUG:abstractprotocol:decode@519: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell22', 'V']
2024-07-29 06:40:51,155:DEBUG:abstractprotocol:process_response@116: Got template r/1000 for Voltage Cell22 b''
2024-07-29 06:40:51,155:DEBUG:abstractprotocol:process_response@117: Processing data_type: BigHex2Short for data_name: Voltage Cell22, raw_value b''
2024-07-29 06:40:51,156:DEBUG:abstractprotocol:process_response@206: Processing format string BigHex2Short(raw_value)
2024-07-29 06:40:51,156:INFO:protocol_helpers:BigHex2Short@148: Hex encoded value must be 2 bytes long. Was 0 length
2024-07-29 06:40:51,157:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-29 06:40:51,157:DEBUG:abstractprotocol:decode@519: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell23', 'V']
2024-07-29 06:40:51,157:DEBUG:abstractprotocol:process_response@116: Got template r/1000 for Voltage Cell23 b''
2024-07-29 06:40:51,157:DEBUG:abstractprotocol:process_response@117: Processing data_type: BigHex2Short for data_name: Voltage Cell23, raw_value b''
2024-07-29 06:40:51,158:DEBUG:abstractprotocol:process_response@206: Processing format string BigHex2Short(raw_value)
2024-07-29 06:40:51,158:INFO:protocol_helpers:BigHex2Short@148: Hex encoded value must be 2 bytes long. Was 0 length
2024-07-29 06:40:51,158:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-29 06:40:51,159:DEBUG:abstractprotocol:decode@519: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell24', 'V']
2024-07-29 06:40:51,159:DEBUG:abstractprotocol:process_response@116: Got template r/1000 for Voltage Cell24 b''
2024-07-29 06:40:51,159:DEBUG:abstractprotocol:process_response@117: Processing data_type: BigHex2Short for data_name: Voltage Cell24, raw_value b''
2024-07-29 06:40:51,159:DEBUG:abstractprotocol:process_response@206: Processing format string BigHex2Short(raw_value)
2024-07-29 06:40:51,160:INFO:protocol_helpers:BigHex2Short@148: Hex encoded value must be 2 bytes long. Was 0 length
2024-07-29 06:40:51,160:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-29 06:40:51,160:DEBUG:abstractprotocol:decode@519: Got defn ['BigHex2Short', 2, 'Temperature', '°C']
2024-07-29 06:40:51,160:DEBUG:abstractprotocol:process_response@117: Processing data_type: BigHex2Short for data_name: Temperature, raw_value b''
2024-07-29 06:40:51,161:DEBUG:abstractprotocol:process_response@206: Processing format string BigHex2Short(raw_value)
2024-07-29 06:40:51,161:INFO:protocol_helpers:BigHex2Short@148: Hex encoded value must be 2 bytes long. Was 0 length
2024-07-29 06:40:51,161:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-07-29 06:40:51,162:DEBUG:abstractprotocol:decode@519: Got defn ['Hex2Str', 1, 'Checksum', '']
2024-07-29 06:40:51,162:DEBUG:abstractprotocol:process_response@117: Processing data_type: Hex2Str for data_name: Checksum, raw_value b''
2024-07-29 06:40:51,163:DEBUG:abstractprotocol:process_response@206: Processing format string Hex2Str(raw_value)
2024-07-29 06:40:51,163:DEBUG:protocol_helpers:Hex2Str@109: Hex b'' decoded to
2024-07-29 06:40:51,164:INFO:device:run_command@113: Decoded response {'_command': 'getBalancerData', '_command_description': 'Get Balancer Data', 'raw_response': ['Iï\x8e\x0c\x00\x00Ø\x08H@\x00\x00\x00\x00\x00\x84\x19\x00@\x80\x80 \x03\x00\x84þ\x00', ''], 'Header': ['49ef', ''], 'Slave Address': ['8e', ''], 'Command Code': ['0c', ''], 'Total Battery Voltage': [0.0, 'V'], 'Average Cell Voltage': [-10.232, 'V'], 'Number of Cells': [72, ''], 'Highest Cell': [64, ''], 'Lowest Cell': [0, ''], 'Charging / Discharging': ['00', ''], 'Alarm - todo': ['00', ''], 'Voltage Difference': [0.0, 'V'], 'Balance Current': [-31.719, 'A'], 'Balance Trigger Voltage': [0.064, 'V'], 'Max Balance Current': [-32.64, 'A'], 'Balance On / Off': ['20', ''], 'Set Number of Cells': [3, ''], 'Voltage Cell01': [0.132, 'V'], 'Voltage Cell02': [-0.512, 'V'], 'Voltage Cell03': [0.0, 'V'], 'Voltage Cell04': [0.0, 'V'], 'Voltage Cell05': [0.0, 'V'], 'Voltage Cell06': [0.0, 'V'], 'Voltage Cell07': [0.0, 'V'], 'Voltage Cell08': [0.0, 'V'], 'Voltage Cell09': [0.0, 'V'], 'Voltage Cell10': [0.0, 'V'], 'Voltage Cell11': [0.0, 'V'], 'Voltage Cell12': [0.0, 'V'], 'Voltage Cell13': [0.0, 'V'], 'Voltage Cell14': [0.0, 'V'], 'Voltage Cell15': [0.0, 'V'], 'Voltage Cell16': [0.0, 'V'], 'Voltage Cell17': [0.0, 'V'], 'Voltage Cell18': [0.0, 'V'], 'Voltage Cell19': [0.0, 'V'], 'Voltage Cell20': [0.0, 'V'], 'Voltage Cell21': [0.0, 'V'], 'Voltage Cell22': [0.0, 'V'], 'Voltage Cell23': [0.0, 'V'], 'Voltage Cell24': [0.0, 'V'], 'Temperature': [0, '°C'], 'Checksum': ['', '']}
2024-07-29 06:40:51,165:DEBUG:init:main@421: results: {'_command': 'getBalancerData', '_command_description': 'Get Balancer Data', 'raw_response': ['Iï\x8e\x0c\x00\x00Ø\x08H@\x00\x00\x00\x00\x00\x84\x19\x00@\x80\x80 \x03\x00\x84þ\x00', ''], 'Header': ['49ef', ''], 'Slave Address': ['8e', ''], 'Command Code': ['0c', ''], 'Total Battery Voltage': [0.0, 'V'], 'Average Cell Voltage': [-10.232, 'V'], 'Number of Cells': [72, ''], 'Highest Cell': [64, ''], 'Lowest Cell': [0, ''], 'Charging / Discharging': ['00', ''], 'Alarm - todo': ['00', ''], 'Voltage Difference': [0.0, 'V'], 'Balance Current': [-31.719, 'A'], 'Balance Trigger Voltage': [0.064, 'V'], 'Max Balance Current': [-32.64, 'A'], 'Balance On / Off': ['20', ''], 'Set Number of Cells': [3, ''], 'Voltage Cell01': [0.132, 'V'], 'Voltage Cell02': [-0.512, 'V'], 'Voltage Cell03': [0.0, 'V'], 'Voltage Cell04': [0.0, 'V'], 'Voltage Cell05': [0.0, 'V'], 'Voltage Cell06': [0.0, 'V'], 'Voltage Cell07': [0.0, 'V'], 'Voltage Cell08': [0.0, 'V'], 'Voltage Cell09': [0.0, 'V'], 'Voltage Cell10': [0.0, 'V'], 'Voltage Cell11': [0.0, 'V'], 'Voltage Cell12': [0.0, 'V'], 'Voltage Cell13': [0.0, 'V'], 'Voltage Cell14': [0.0, 'V'], 'Voltage Cell15': [0.0, 'V'], 'Voltage Cell16': [0.0, 'V'], 'Voltage Cell17': [0.0, 'V'], 'Voltage Cell18': [0.0, 'V'], 'Voltage Cell19': [0.0, 'V'], 'Voltage Cell20': [0.0, 'V'], 'Voltage Cell21': [0.0, 'V'], 'Voltage Cell22': [0.0, 'V'], 'Voltage Cell23': [0.0, 'V'], 'Voltage Cell24': [0.0, 'V'], 'Temperature': [0, '°C'], 'Checksum': ['', '']}
2024-07-29 06:40:51,165:INFO:init:get_output@40: attempting to create output processor: screen
2024-07-29 06:40:51,172:DEBUG:screen:init@15: processor.screen init kwargs {}
2024-07-29 06:40:51,173:DEBUG:init:main@427: Using output filter: None
2024-07-29 06:40:51,173:INFO:screen:output@21: Using output processor: screen
2024-07-29 06:40:51,174:DEBUG:screen:output@22: kwargs {'data': {'_command': 'getBalancerData', 'command_description': 'Get Balancer Data', 'raw_response': ['Iï\x8e\x0c\x00\x00Ø\x08H@\x00\x00\x00\x00\x00\x84\x19\x00@\x80\x80 \x03\x00\x84þ\x00', ''], 'Header': ['49ef', ''], 'Slave Address': ['8e', ''], 'Command Code': ['0c', ''], 'Total Battery Voltage': [0.0, 'V'], 'Average Cell Voltage': [-10.232, 'V'], 'Number of Cells': [72, ''], 'Highest Cell': [64, ''], 'Lowest Cell': [0, ''], 'Charging / Discharging': ['00', ''], 'Alarm - todo': ['00', ''], 'Voltage Difference': [0.0, 'V'], 'Balance Current': [-31.719, 'A'], 'Balance Trigger Voltage': [0.064, 'V'], 'Max Balance Current': [-32.64, 'A'], 'Balance On / Off': ['20', ''], 'Set Number of Cells': [3, ''], 'Voltage Cell01': [0.132, 'V'], 'Voltage Cell02': [-0.512, 'V'], 'Voltage Cell03': [0.0, 'V'], 'Voltage Cell04': [0.0, 'V'], 'Voltage Cell05': [0.0, 'V'], 'Voltage Cell06': [0.0, 'V'], 'Voltage Cell07': [0.0, 'V'], 'Voltage Cell08': [0.0, 'V'], 'Voltage Cell09': [0.0, 'V'], 'Voltage Cell10': [0.0, 'V'], 'Voltage Cell11': [0.0, 'V'], 'Voltage Cell12': [0.0, 'V'], 'Voltage Cell13': [0.0, 'V'], 'Voltage Cell14': [0.0, 'V'], 'Voltage Cell15': [0.0, 'V'], 'Voltage Cell16': [0.0, 'V'], 'Voltage Cell17': [0.0, 'V'], 'Voltage Cell18': [0.0, 'V'], 'Voltage Cell19': [0.0, 'V'], 'Voltage Cell20': [0.0, 'V'], 'Voltage Cell21': [0.0, 'V'], 'Voltage Cell22': [0.0, 'V'], 'Voltage Cell23': [0.0, 'V'], 'Voltage Cell24': [0.0, 'V'], 'Temperature': [0, '°C'], 'Checksum': ['', '']}, 'tag': '', 'name': 'unnamed', 'mqtt_broker': <mppsolar.libs.mqttbrokerc.MqttBroker object at 0x760bbca0>, 'udp_port': '5555', 'postgres_url': None, 'mongo_url': None, 'mongo_db': 'mppsolar', 'mqtt_topic': None, 'filter': None, 'excl_filter': None, 'keep_case': False}
2024-07-29 06:40:51,174:DEBUG:screen:output@74: displayData: {'header': ['49ef', ''], 'slave_address': ['8e', ''], 'command_code': ['0c', ''], 'total_battery_voltage': [0.0, 'V'], 'average_cell_voltage': [-10.232, 'V'], 'number_of_cells': [72, ''], 'highest_cell': [64, ''], 'lowest_cell': [0, ''], 'charging
/discharging': ['00', ''], 'alarm-todo': ['00', ''], 'voltage_difference': [0.0, 'V'], 'balance_current': [-31.719, 'A'], 'balance_trigger_voltage': [0.064, 'V'], 'max_balance_current': [-32.64, 'A'], 'balance_on/_off': ['20', ''], 'set_number_of_cells': [3, ''], 'voltage_cell01': [0.132, 'V'], 'voltage_cell02': [-0.512, 'V'], 'voltage_cell03': [0.0, 'V'], 'voltage_cell04': [0.0, 'V'], 'voltage_cell05': [0.0, 'V'], 'voltage_cell06': [0.0, 'V'], 'voltage_cell07': [0.0, 'V'], 'voltage_cell08': [0.0, 'V'], 'voltage_cell09': [0.0, 'V'], 'voltage_cell10': [0.0, 'V'], 'voltage_cell11': [0.0, 'V'], 'voltage_cell12': [0.0, 'V'], 'voltage_cell13': [0.0, 'V'], 'voltage_cell14': [0.0, 'V'], 'voltage_cell15': [0.0, 'V'], 'voltage_cell16': [0.0, 'V'], 'voltage_cell17': [0.0, 'V'], 'voltage_cell18': [0.0, 'V'], 'voltage_cell19': [0.0, 'V'], 'voltage_cell20': [0.0, 'V'], 'voltage_cell21': [0.0, 'V'], 'voltage_cell22': [0.0, 'V'], 'voltage_cell23': [0.0, 'V'], 'voltage_cell24': [0.0, 'V'], 'temperature': [0, '°C'], 'checksum': ['', '']}
Command: getBalancerData - Get Balancer Data

Parameter Value Unit
header 49ef
slave_address 8e
command_code 0c
total_battery_voltage 0.0 V
average_cell_voltage -10.232 V
number_of_cells 72
highest_cell 64
lowest_cell 0
charging_/discharging 00
alarm
-todo 00
voltage_difference 0.0 V
balance_current -31.719 A
balance_trigger_voltage 0.064 V
max_balance_current -32.64 A
balance_on
/_off 20
set_number_of_cells 3
voltage_cell01 0.132 V
voltage_cell02 -0.512 V
voltage_cell03 0.0 V
voltage_cell04 0.0 V
voltage_cell05 0.0 V
voltage_cell06 0.0 V
voltage_cell07 0.0 V
voltage_cell08 0.0 V
voltage_cell09 0.0 V
voltage_cell10 0.0 V
voltage_cell11 0.0 V
voltage_cell12 0.0 V
voltage_cell13 0.0 V
voltage_cell14 0.0 V
voltage_cell15 0.0 V
voltage_cell16 0.0 V
voltage_cell17 0.0 V
voltage_cell18 0.0 V
voltage_cell19 0.0 V
voltage_cell20 0.0 V
voltage_cell21 0.0 V
voltage_cell22 0.0 V
voltage_cell23 0.0 V
voltage_cell24 0.0 V
temperature 0 °C
checksum
2024-07-29 06:40:51,176:DEBUG:init:main@452: Not daemon, so not looping

@jblance
Copy link
Owner

jblance commented Jul 29, 2024

i dont think the code work with 'real' rs485 - pretty sure someone else found this out an made a script that worked - looks like they used the esphome solution https://github.com/txubelaxu/esphome-jk-bms
i have bought a jkbms with rs485 interface that i need to install to test against

@axyaxyfr
Copy link
Author

axyaxyfr commented Aug 6, 2024

Is it also an unknown protocol with BT? I get the same is issue #504
Thanks

@axyaxyfr
Copy link
Author

axyaxyfr commented Aug 7, 2024

Tried with a new cable, and now it looks different/better:

ps@raspberrypi:~ $ jkbms -p /dev/ttyUSB0 -b 115200 -P JK485 -D
2024-08-07 13:22:03,003:INFO:init:main@214: Solar Device Command Utility, version: 0.15.62
2024-08-07 13:22:03,003:DEBUG:mqttbrokerc:init@29: mqttbroker config: {'name': 'localhost', 'port': 1883, 'user': None, 'pass': None}
2024-08-07 13:22:03,004:DEBUG:init:main@239: MqttBroker name: localhost, port: 1883, user: None
2024-08-07 13:22:03,004:DEBUG:init:main@241: udp port 5555
2024-08-07 13:22:03,004:DEBUG:init:main@243: Using Postgres None
2024-08-07 13:22:03,004:DEBUG:init:main@246: Using Mongo None with mppsolar
2024-08-07 13:22:03,005:INFO:init:main@347: Creating device "unnamed" (type: "jkbms") on port "/dev/ttyUSB0 (porttype=None)" using protocol "JK485"
2024-08-07 13:22:03,010:DEBUG:init:main@351: device_class <class 'mppsolar.devices.jkbms.jkbms'>
2024-08-07 13:22:03,011:DEBUG:device:init@33: init args ()
2024-08-07 13:22:03,011:DEBUG:device:init@34: init kwargs {'name': 'unnamed', 'port': '/dev/ttyUSB0', 'protocol': 'JK485', 'baud': 115200, 'porttype': None, 'mqtt_broker': <mppsolar.libs.mqttbrokerc.MqttBroker object at 0x75fe9ca0>, 'udp_port': '5555', 'mongo_url': None, 'mongo_db': 'mppsolar'}
2024-08-07 13:22:03,012:DEBUG:init:get_port_type@69: port matches ttyusb
2024-08-07 13:22:03,012:INFO:init:get_port@111: Using serialio for communications
2024-08-07 13:22:03,025:DEBUG:init:get_protocol@13: Protocol JK485
2024-08-07 13:22:03,258:DEBUG:device:init@38: init name unnamed, port <mppsolar.inout.serialio.SerialIO object at 0x75fe9da8>, protocol JKBMS RS485 serial communication protocol handler
2024-08-07 13:22:03,258:DEBUG:init:main@402: Commands [(<mppsolar.devices.jkbms.jkbms object at 0x75fe9cb8>, '', '', 'screen', None, None)]
2024-08-07 13:22:03,259:INFO:init:main@407: Looping 1 commands
2024-08-07 13:22:03,259:INFO:init:main@417: Getting results from device: jkbms device - name: unnamed, port: <mppsolar.inout.serialio.SerialIO object at 0x75fe9da8>, protocol: JKBMS RS485 serial communication protocol handler for command: , tag: , outputs: screen
2024-08-07 13:22:03,259:INFO:device:run_command@50: Running command
2024-08-07 13:22:03,259:INFO:jk485:get_full_command@100: Using protocol b'JK485' with 1 commands
2024-08-07 13:22:03,260:DEBUG:jkabstractprotocol:get_command_defn@105: get_command_defn for: getBalancerData
2024-08-07 13:22:03,260:DEBUG:abstractprotocol:get_command_defn@70: Processing command 'getBalancerData'
2024-08-07 13:22:03,260:DEBUG:abstractprotocol:get_command_defn@72: Found command getBalancerData in protocol b'JK485'
2024-08-07 13:22:03,260:DEBUG:jk485:get_full_command@114: cmd with header: bytearray(b'U\xaa\x00\x00\x00\x00\x00')
2024-08-07 13:22:03,261:DEBUG:jk485:get_full_command@117: cmd with header + slave address: bytearray(b'U\xaa\x01\x00\x00\x00\x00')
2024-08-07 13:22:03,261:DEBUG:jk485:get_full_command@122: cmd with command code and frame data: bytearray(b'U\xaa\x01\xff\x00\x00\x00')
2024-08-07 13:22:03,261:DEBUG:jk485:get_full_command@125: cmd with crc: bytearray(b'U\xaa\x01\xff\x00\x00\xff')
2024-08-07 13:22:03,261:INFO:device:run_command@78: full command bytearray(b'U\xaa\x01\xff\x00\x00\xff') for command getBalancerData
2024-08-07 13:22:03,261:DEBUG:jkabstractprotocol:get_command_defn@105: get_command_defn for: getBalancerData
2024-08-07 13:22:03,262:DEBUG:abstractprotocol:get_command_defn@70: Processing command 'getBalancerData'
2024-08-07 13:22:03,262:DEBUG:abstractprotocol:get_command_defn@72: Found command getBalancerData in protocol b'JK485'
2024-08-07 13:22:03,262:DEBUG:serialio:send_and_receive@19: port /dev/ttyUSB0, baudrate 115200
2024-08-07 13:22:03,266:DEBUG:serialio:send_and_receive@22: Executing command via serialio...
2024-08-07 13:22:04,368:DEBUG:serialio:send_and_receive@30: serial response was: b''
2024-08-07 13:22:04,370:DEBUG:device:run_command@95: Send and Receive Response b''
2024-08-07 13:22:04,371:INFO:abstractprotocol:decode@245: response passed to decode: b''
2024-08-07 13:22:04,371:DEBUG:jkabstractprotocol:get_command_defn@105: get_command_defn for: getBalancerData
2024-08-07 13:22:04,372:DEBUG:abstractprotocol:get_command_defn@70: Processing command 'getBalancerData'
2024-08-07 13:22:04,372:DEBUG:abstractprotocol:get_command_defn@72: Found command getBalancerData in protocol b'JK485'
2024-08-07 13:22:04,373:INFO:abstractprotocol:decode@289: Processing response of type POSITIONAL
2024-08-07 13:22:04,373:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['Hex2Str', 2, 'Header', '']
2024-08-07 13:22:04,374:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['Hex2Str', 1, 'Slave Address', '']
2024-08-07 13:22:04,374:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['Hex2Str', 1, 'Command Code', '']
2024-08-07 13:22:04,375:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/100', 2, 'Total Battery Voltage', 'V']
2024-08-07 13:22:04,375:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Average Cell Voltage', 'V']
2024-08-07 13:22:04,376:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['Hex2Int', 1, 'Number of Cells', '']
2024-08-07 13:22:04,376:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['Hex2Int', 1, 'Highest Cell', '']
2024-08-07 13:22:04,377:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['Hex2Int', 1, 'Lowest Cell', '']
2024-08-07 13:22:04,377:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['Hex2Str', 1, 'Charging / Discharging', '']
2024-08-07 13:22:04,377:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['Hex2Str', 1, 'Alarm - todo', '']
2024-08-07 13:22:04,378:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Difference', 'V']
2024-08-07 13:22:04,378:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Balance Current', 'A']
2024-08-07 13:22:04,379:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Balance Trigger Voltage', 'V']
2024-08-07 13:22:04,379:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Max Balance Current', 'A']
2024-08-07 13:22:04,380:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['Hex2Str', 1, 'Balance On / Off', '']
2024-08-07 13:22:04,380:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['Hex2Int', 1, 'Set Number of Cells', '']
2024-08-07 13:22:04,380:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell01', 'V']
2024-08-07 13:22:04,381:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell02', 'V']
2024-08-07 13:22:04,381:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell03', 'V']
2024-08-07 13:22:04,382:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell04', 'V']
2024-08-07 13:22:04,382:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell05', 'V']
2024-08-07 13:22:04,383:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell06', 'V']
2024-08-07 13:22:04,383:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell07', 'V']
2024-08-07 13:22:04,383:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell08', 'V']
2024-08-07 13:22:04,384:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell09', 'V']
2024-08-07 13:22:04,384:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell10', 'V']
2024-08-07 13:22:04,385:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell11', 'V']
2024-08-07 13:22:04,385:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell12', 'V']
2024-08-07 13:22:04,386:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell13', 'V']
2024-08-07 13:22:04,386:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell14', 'V']
2024-08-07 13:22:04,387:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell15', 'V']
2024-08-07 13:22:04,387:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell16', 'V']
2024-08-07 13:22:04,388:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell17', 'V']
2024-08-07 13:22:04,388:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell18', 'V']
2024-08-07 13:22:04,388:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell19', 'V']
2024-08-07 13:22:04,389:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell20', 'V']
2024-08-07 13:22:04,389:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell21', 'V']
2024-08-07 13:22:04,390:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell22', 'V']
2024-08-07 13:22:04,390:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell23', 'V']
2024-08-07 13:22:04,391:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell24', 'V']
2024-08-07 13:22:04,391:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['BigHex2Short', 2, 'Temperature', '°C']
2024-08-07 13:22:04,392:DEBUG:jkabstractprotocol:get_responses@127: Got defn: ['Hex2Str', 1, 'Checksum', '']
2024-08-07 13:22:04,392:DEBUG:abstractprotocol:decode@293: trimmed and split responses: [b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'']
2024-08-07 13:22:04,392:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-08-07 13:22:04,393:DEBUG:abstractprotocol:decode@519: Got defn ['Hex2Str', 2, 'Header', '']
2024-08-07 13:22:04,393:DEBUG:abstractprotocol:process_response@117: Processing data_type: Hex2Str for data_name: Header, raw_value b''
2024-08-07 13:22:04,394:DEBUG:abstractprotocol:process_response@206: Processing format string Hex2Str(raw_value)
2024-08-07 13:22:04,394:DEBUG:protocol_helpers:Hex2Str@109: Hex b'' decoded to
2024-08-07 13:22:04,395:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-08-07 13:22:04,395:DEBUG:abstractprotocol:decode@519: Got defn ['Hex2Str', 1, 'Slave Address', '']
2024-08-07 13:22:04,396:DEBUG:abstractprotocol:process_response@117: Processing data_type: Hex2Str for data_name: Slave Address, raw_value b''
2024-08-07 13:22:04,396:DEBUG:abstractprotocol:process_response@206: Processing format string Hex2Str(raw_value)
2024-08-07 13:22:04,397:DEBUG:protocol_helpers:Hex2Str@109: Hex b'' decoded to
2024-08-07 13:22:04,397:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-08-07 13:22:04,398:DEBUG:abstractprotocol:decode@519: Got defn ['Hex2Str', 1, 'Command Code', '']
2024-08-07 13:22:04,398:DEBUG:abstractprotocol:process_response@117: Processing data_type: Hex2Str for data_name: Command Code, raw_value b''
2024-08-07 13:22:04,398:DEBUG:abstractprotocol:process_response@206: Processing format string Hex2Str(raw_value)
2024-08-07 13:22:04,399:DEBUG:protocol_helpers:Hex2Str@109: Hex b'' decoded to
2024-08-07 13:22:04,400:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-08-07 13:22:04,400:DEBUG:abstractprotocol:decode@519: Got defn ['BigHex2Short:r/100', 2, 'Total Battery Voltage', 'V']
2024-08-07 13:22:04,401:DEBUG:abstractprotocol:process_response@116: Got template r/100 for Total Battery Voltage b''
2024-08-07 13:22:04,401:DEBUG:abstractprotocol:process_response@117: Processing data_type: BigHex2Short for data_name: Total Battery Voltage, raw_value b''
2024-08-07 13:22:04,401:DEBUG:abstractprotocol:process_response@206: Processing format string BigHex2Short(raw_value)
2024-08-07 13:22:04,402:INFO:protocol_helpers:BigHex2Short@148: Hex encoded value must be 2 bytes long. Was 0 length
2024-08-07 13:22:04,403:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-08-07 13:22:04,403:DEBUG:abstractprotocol:decode@519: Got defn ['BigHex2Short:r/1000', 2, 'Average Cell Voltage', 'V']
2024-08-07 13:22:04,404:DEBUG:abstractprotocol:process_response@116: Got template r/1000 for Average Cell Voltage b''
2024-08-07 13:22:04,404:DEBUG:abstractprotocol:process_response@117: Processing data_type: BigHex2Short for data_name: Average Cell Voltage, raw_value b''
2024-08-07 13:22:04,404:DEBUG:abstractprotocol:process_response@206: Processing format string BigHex2Short(raw_value)
2024-08-07 13:22:04,405:INFO:protocol_helpers:BigHex2Short@148: Hex encoded value must be 2 bytes long. Was 0 length
2024-08-07 13:22:04,406:DEBUG:abstractprotocol:decode@492: Processing POSITIONAL type responses
2024-08-07 13:22:04,406:DEBUG:abstractprotocol:decode@519: Got defn ['Hex2Int', 1, 'Number of Cells', '']
2024-08-07 13:22:04,407:DEBUG:abstractprotocol:process_response@117: Processing data_type: Hex2Int for data_name: Number of Cells, raw_value b''
2024-08-07 13:22:04,407:DEBUG:abstractprotocol:process_response@206: Processing format string Hex2Int(raw_value)
Traceback (most recent call last):
File "/home/ps/.local/bin/jkbms", line 8, in
sys.exit(main())
File "/home/ps/.local/lib/python3.9/site-packages/mppsolar/init.py", line 420, in main
results = _device.run_command(command=_command)
File "/home/ps/.local/lib/python3.9/site-packages/mppsolar/devices/device.py", line 112, in run_command
decoded_response = self._protocol.decode(raw_response, command)
File "/home/ps/.local/lib/python3.9/site-packages/mppsolar/protocols/abstractprotocol.py", line 550, in decode
processed_responses = self.process_response(
File "/home/ps/.local/lib/python3.9/site-packages/mppsolar/protocols/abstractprotocol.py", line 208, in process_response
r = eval(format_string)
File "", line 1, in
File "/home/ps/.local/lib/python3.9/site-packages/mppsolar/protocols/protocol_helpers.py", line 95, in Hex2Int
answer = hexString[0]
IndexError: index out of range
ps@raspberrypi:~ $

@axyaxyfr axyaxyfr changed the title JKBMS and RS485 strange output? JKBMS and RS485 strange output? Looks different/better with new cable... Aug 8, 2024
@lukolszewski
Copy link
Contributor

Just like the poster above I too am getting nothing back from the BMS using mppsolar, but sending to it '4E 57 00 13 00 00 00 00 06 03 00 00 00 00 00 00 68 00 00 01 29' responds will all data.

I tried all sorts of commands, but I believe the closes to success was:
jkbms -P jkserial -b 115200 -I --porttype serial -p /dev/ttyUSB5

the result is:

jkbms -P jkserial -b 115200 -I --porttype serial -p /dev/ttyUSB5 -D
2024-08-18 09:28:42,082:INFO:init:main@216: Solar Device Command Utility, version: 0.16.40-dev, python version: 3.11.2
2024-08-18 09:28:42,082:DEBUG:mqttbrokerc:init@29: mqttbroker config: {'name': 'localhost', 'port': 1883, 'user': None, 'pass': None}
2024-08-18 09:28:42,082:DEBUG:init:main@251: MqttBroker name: localhost, port: 1883, user: None
2024-08-18 09:28:42,082:DEBUG:init:main@253: udp port 5555
2024-08-18 09:28:42,083:DEBUG:init:main@255: Using Postgres None
2024-08-18 09:28:42,083:DEBUG:init:main@258: Using Mongo None with mppsolar
2024-08-18 09:28:42,083:INFO:init:main@275: Daemon DISABLED
2024-08-18 09:28:42,083:INFO:init:main@379: Creating device "unnamed" (type: "jkbms") on port "/dev/ttyUSB5 (porttype=serial)" using protocol "jkserial"
2024-08-18 09:28:42,084:DEBUG:init:main@383: device_class <class 'mppsolar.devices.jkbms.jkbms'>
2024-08-18 09:28:42,084:DEBUG:device:init@34: init args ()
2024-08-18 09:28:42,085:DEBUG:device:init@35: init kwargs {'name': 'unnamed', 'port': '/dev/ttyUSB5', 'protocol': 'jkserial', 'baud': 115200, 'porttype': 'serial', 'mqtt_brok
er': <mppsolar.libs.mqttbrokerc.MqttBroker object at 0x7fff38d51190>, 'udp_port': 5555, 'mongo_url': None, 'mongo_db': 'mppsolar', 'push_url': 'http://localhost:9091/metrics/job/push
gateway', 'prom_output_dir': '/var/lib/node_exporter'}
2024-08-18 09:28:42,085:INFO:init:get_port@81: Port overide - using port 'serial'
2024-08-18 09:28:42,085:DEBUG:init:get_port_type@66: port matches serial
2024-08-18 09:28:42,085:INFO:init:get_port@111: Using serialio for communications
2024-08-18 09:28:42,087:DEBUG:init:get_protocol@13: Protocol jkserial
2024-08-18 09:28:42,211:DEBUG:device:init@39: init name unnamed, port <mppsolar.inout.serialio.SerialIO object at 0x7fff39993410>, protocol JKBMS TTL serial communication pro
tocol handler
2024-08-18 09:28:42,212:DEBUG:init:main@430: Commands [(<mppsolar.devices.jkbms.jkbms object at 0x7fff39931050>, '', '', 'screen', None, None)]
2024-08-18 09:28:42,212:INFO:init:main@435: Looping 1 commands
2024-08-18 09:28:42,212:INFO:init:main@441: Getting results from device: jkbms device - name: unnamed, port: <mppsolar.inout.serialio.SerialIO object at 0x7fff39993410>, protocol
: JKBMS TTL serial communication protocol handler for command: , tag: , outputs: screen
2024-08-18 09:28:42,212:INFO:device:run_command@51: Running command
2024-08-18 09:28:42,212:DEBUG:jkserial:get_full_command@117: Using protocol b'JKSERIAL' with 1 commands
2024-08-18 09:28:42,212:DEBUG:abstractprotocol:get_command_defn@71: Processing command 'getBalancerData'
2024-08-18 09:28:42,212:DEBUG:abstractprotocol:get_command_defn@73: Found command getBalancerData in protocol b'JKSERIAL'
2024-08-18 09:28:42,212:DEBUG:jkserial:get_full_command@159: cmd with crc: bytearray(b'NW\x00\x13\x00\x00\x00\x00\x03\x03\x00\x00\x00\x00\x00\x00h\x00\x00\x01&')
2024-08-18 09:28:42,212:INFO:device:run_command@81: full command bytearray(b'NW\x00\x13\x00\x00\x00\x00\x03\x03\x00\x00\x00\x00\x00\x00h\x00\x00\x01&') for command getBalancerData
2024-08-18 09:28:42,212:DEBUG:abstractprotocol:get_command_defn@71: Processing command 'getBalancerData'
2024-08-18 09:28:42,212:DEBUG:abstractprotocol:get_command_defn@73: Found command getBalancerData in protocol b'JKSERIAL'
2024-08-18 09:28:42,212:DEBUG:serialio:send_and_receive@19: port /dev/ttyUSB5, baudrate 115200
2024-08-18 09:28:42,213:DEBUG:serialio:send_and_receive@22: Executing command via serialio...
2024-08-18 09:28:42,313:DEBUG:serialio:send_and_receive@30: serial response was: b'NW\x01!\x00\x00\x00\x00\x03\x00\x01y0\x01\r'
2024-08-18 09:28:42,314:DEBUG:device:run_command@98: Send and Receive Response b'NW\x01!\x00\x00\x00\x00\x03\x00\x01y0\x01\r'
2024-08-18 09:28:42,314:DEBUG:abstractprotocol:decode@238: response passed to decode: b'NW\x01!\x00\x00\x00\x00\x03\x00\x01y0\x01\r'
2024-08-18 09:28:42,314:DEBUG:abstractprotocol:get_command_defn@71: Processing command 'getBalancerData'
2024-08-18 09:28:42,314:DEBUG:abstractprotocol:get_command_defn@73: Found command getBalancerData in protocol b'JKSERIAL'
2024-08-18 09:28:42,314:DEBUG:abstractprotocol:decode@283: Processing response of type POSITIONAL
2024-08-18 09:28:42,314:DEBUG:jkserial:get_responses@187: get_responses: responses [b'NW\x01!\x00\x00\x00\x00\x03\x00\x01', b'y', b'0', b'\x01', b'\r', b'', b'', b'', b'', b'', b'',
b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'
', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'']
2024-08-18 09:28:42,314:DEBUG:abstractprotocol:decode@287: trimmed and split responses: [b'NW\x01!\x00\x00\x00\x00\x03\x00\x01', b'y', b'0', b'\x01', b'\r', b'', b'', b'', b'', b'',
b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'
', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'']
2024-08-18 09:28:42,314:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-08-18 09:28:42,314:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 11, 'Packet header', '']
2024-08-18 09:28:42,314:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: Packet header, raw_value b'NW\x01!\x00\x00\x00\x00\x03\x00\x01'
2024-08-18 09:28:42,314:DEBUG:abstractprotocol:process_response@124: Discarding Packet header:b'NW\x01!\x00\x00\x00\x00\x03\x00\x01'
2024-08-18 09:28:42,314:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-08-18 09:28:42,314:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'Cells connected', '']
2024-08-18 09:28:42,314:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: Cells connected, raw_value b'y'
2024-08-18 09:28:42,314:DEBUG:abstractprotocol:process_response@124: Discarding Cells connected:b'y'
2024-08-18 09:28:42,314:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-08-18 09:28:42,314:DEBUG:abstractprotocol:decode@523: Got defn ['Hex2Int:r/3', 1, 'Cells_connected', '']
2024-08-18 09:28:42,314:DEBUG:abstractprotocol:process_response@117: Got template r/3 for Cells_connected b'0'
2024-08-18 09:28:42,314:DEBUG:abstractprotocol:process_response@118: Processing data_type: Hex2Int for data_name: Cells_connected, raw_value b'0'
2024-08-18 09:28:42,314:DEBUG:abstractprotocol:process_response@203: Processing format string: 'Hex2Int(raw_value)'
2024-08-18 09:28:42,314:DEBUG:protocol_helpers:Hex2Int@91: Hex b'0' decoded to 48
2024-08-18 09:28:42,314:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-08-18 09:28:42,314:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'Voltage_Cell01', '']
2024-08-18 09:28:42,314:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: Voltage_Cell01, raw_value b'\x01'
2024-08-18 09:28:42,314:DEBUG:abstractprotocol:process_response@124: Discarding Voltage_Cell01:b'\x01'
2024-08-18 09:28:42,314:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-08-18 09:28:42,314:DEBUG:abstractprotocol:decode@523: Got defn ['BigHex2Short:r/1000', 2, 'Voltage_Cell01', 'V']
2024-08-18 09:28:42,314:DEBUG:abstractprotocol:process_response@117: Got template r/1000 for Voltage_Cell01 b'\r'
2024-08-18 09:28:42,315:DEBUG:abstractprotocol:process_response@118: Processing data_type: BigHex2Short for data_name: Voltage_Cell01, raw_value b'\r'
2024-08-18 09:28:42,315:DEBUG:abstractprotocol:process_response@203: Processing format string: 'BigHex2Short(raw_value)'
2024-08-18 09:28:42,315:INFO:protocol_helpers:BigHex2Short@143: Hex encoded value must be 2 bytes long. Was 1 length
2024-08-18 09:28:42,315:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-08-18 09:28:42,315:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'Voltage_Cell02', '']
2024-08-18 09:28:42,315:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: Voltage_Cell02, raw_value b''
2024-08-18 09:28:42,315:DEBUG:abstractprotocol:process_response@124: Discarding Voltage_Cell02:b''
2024-08-18 09:28:42,315:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-08-18 09:28:42,315:DEBUG:abstractprotocol:decode@523: Got defn ['BigHex2Short:r/1000', 2, 'Voltage_Cell02', 'V']
2024-08-18 09:28:42,315:DEBUG:abstractprotocol:process_response@117: Got template r/1000 for Voltage_Cell02 b''
2024-08-18 09:28:42,315:DEBUG:abstractprotocol:process_response@118: Processing data_type: BigHex2Short for data_name: Voltage_Cell02, raw_value b''
2024-08-18 09:28:42,315:DEBUG:abstractprotocol:process_response@203: Processing format string: 'BigHex2Short(raw_value)'
2024-08-18 09:28:42,315:INFO:protocol_helpers:BigHex2Short@143: Hex encoded value must be 2 bytes long. Was 0 length
2024-08-18 09:28:42,315:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-08-18 09:28:42,315:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'Voltage_Cell03', '']
2024-08-18 09:28:42,315:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: Voltage_Cell03, raw_value b''
2024-08-18 09:28:42,315:DEBUG:abstractprotocol:process_response@124: Discarding Voltage_Cell03:b''
2024-08-18 09:28:42,315:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses [166/1813]
2024-08-18 09:28:42,315:DEBUG:abstractprotocol:decode@523: Got defn ['BigHex2Short:r/1000', 2, 'Voltage_Cell03', 'V']
2024-08-18 09:28:42,315:DEBUG:abstractprotocol:process_response@117: Got template r/1000 for Voltage_Cell03 b''
2024-08-18 09:28:42,315:DEBUG:abstractprotocol:process_response@118: Processing data_type: BigHex2Short for data_name: Voltage_Cell03, raw_value b''
2024-08-18 09:28:42,315:DEBUG:abstractprotocol:process_response@203: Processing format string: 'BigHex2Short(raw_value)'
2024-08-18 09:28:42,315:INFO:protocol_helpers:BigHex2Short@143: Hex encoded value must be 2 bytes long. Was 0 length
2024-08-18 09:28:42,315:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-08-18 09:28:42,315:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'Voltage_Cell04', '']
2024-08-18 09:28:42,315:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: Voltage_Cell04, raw_value b''
2024-08-18 09:28:42,315:DEBUG:abstractprotocol:process_response@124: Discarding Voltage_Cell04:b''
2024-08-18 09:28:42,315:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-08-18 09:28:42,315:DEBUG:abstractprotocol:decode@523: Got defn ['BigHex2Short:r/1000', 2, 'Voltage_Cell04', 'V']
2024-08-18 09:28:42,315:DEBUG:abstractprotocol:process_response@117: Got template r/1000 for Voltage_Cell04 b''
2024-08-18 09:28:42,315:DEBUG:abstractprotocol:process_response@118: Processing data_type: BigHex2Short for data_name: Voltage_Cell04, raw_value b''
2024-08-18 09:28:42,315:DEBUG:abstractprotocol:process_response@203: Processing format string: 'BigHex2Short(raw_value)'
2024-08-18 09:28:42,315:INFO:protocol_helpers:BigHex2Short@143: Hex encoded value must be 2 bytes long. Was 0 length
2024-08-18 09:28:42,315:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-08-18 09:28:42,315:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'Voltage_Cell05', '']
2024-08-18 09:28:42,315:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: Voltage_Cell05, raw_value b''
2024-08-18 09:28:42,315:DEBUG:abstractprotocol:process_response@124: Discarding Voltage_Cell05:b''
2024-08-18 09:28:42,315:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-08-18 09:28:42,315:DEBUG:abstractprotocol:decode@523: Got defn ['BigHex2Short:r/1000', 2, 'Voltage_Cell05', 'V']
2024-08-18 09:28:42,315:DEBUG:abstractprotocol:process_response@117: Got template r/1000 for Voltage_Cell05 b''
2024-08-18 09:28:42,315:DEBUG:abstractprotocol:process_response@118: Processing data_type: BigHex2Short for data_name: Voltage_Cell05, raw_value b''
2024-08-18 09:28:42,316:DEBUG:abstractprotocol:process_response@203: Processing format string: 'BigHex2Short(raw_value)'
2024-08-18 09:28:42,316:INFO:protocol_helpers:BigHex2Short@143: Hex encoded value must be 2 bytes long. Was 0 length
2024-08-18 09:28:42,316:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-08-18 09:28:42,316:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'Voltage_Cell06', '']
2024-08-18 09:28:42,316:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: Voltage_Cell06, raw_value b''
2024-08-18 09:28:42,316:DEBUG:abstractprotocol:process_response@124: Discarding Voltage_Cell06:b''
2024-08-18 09:28:42,316:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-08-18 09:28:42,316:DEBUG:abstractprotocol:decode@523: Got defn ['BigHex2Short:r/1000', 2, 'Voltage_Cell06', 'V']
2024-08-18 09:28:42,316:DEBUG:abstractprotocol:process_response@117: Got template r/1000 for Voltage_Cell06 b''
2024-08-18 09:28:42,316:DEBUG:abstractprotocol:process_response@118: Processing data_type: BigHex2Short for data_name: Voltage_Cell06, raw_value b''
2024-08-18 09:28:42,316:DEBUG:abstractprotocol:process_response@203: Processing format string: 'BigHex2Short(raw_value)'
2024-08-18 09:28:42,316:INFO:protocol_helpers:BigHex2Short@143: Hex encoded value must be 2 bytes long. Was 0 length
2024-08-18 09:28:42,316:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-08-18 09:28:42,316:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'Voltage_Cell07', '']
2024-08-18 09:28:42,316:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: Voltage_Cell07, raw_value b''
2024-08-18 09:28:42,316:DEBUG:abstractprotocol:process_response@124: Discarding Voltage_Cell07:b''
2024-08-18 09:28:42,316:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-08-18 09:28:42,316:DEBUG:abstractprotocol:decode@523: Got defn ['BigHex2Short:r/1000', 2, 'Voltage_Cell07', 'V']
2024-08-18 09:28:42,316:DEBUG:abstractprotocol:process_response@117: Got template r/1000 for Voltage_Cell07 b''
2024-08-18 09:28:42,316:DEBUG:abstractprotocol:process_response@118: Processing data_type: BigHex2Short for data_name: Voltage_Cell07, raw_value b''
2024-08-18 09:28:42,316:DEBUG:abstractprotocol:process_response@203: Processing format string: 'BigHex2Short(raw_value)'
2024-08-18 09:28:42,316:INFO:protocol_helpers:BigHex2Short@143: Hex encoded value must be 2 bytes long. Was 0 length
2024-08-18 09:28:42,316:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses [120/1813]
2024-08-18 09:28:42,316:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'Voltage_Cell08', '']
2024-08-18 09:28:42,316:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: Voltage_Cell08, raw_value b''
2024-08-18 09:28:42,316:DEBUG:abstractprotocol:process_response@124: Discarding Voltage_Cell08:b''
2024-08-18 09:28:42,316:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-08-18 09:28:42,316:DEBUG:abstractprotocol:decode@523: Got defn ['BigHex2Short:r/1000', 2, 'Voltage_Cell08', 'V']
2024-08-18 09:28:42,316:DEBUG:abstractprotocol:process_response@117: Got template r/1000 for Voltage_Cell08 b''
2024-08-18 09:28:42,316:DEBUG:abstractprotocol:process_response@118: Processing data_type: BigHex2Short for data_name: Voltage_Cell08, raw_value b''
2024-08-18 09:28:42,316:DEBUG:abstractprotocol:process_response@203: Processing format string: 'BigHex2Short(raw_value)'
2024-08-18 09:28:42,316:INFO:protocol_helpers:BigHex2Short@143: Hex encoded value must be 2 bytes long. Was 0 length
2024-08-18 09:28:42,316:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-08-18 09:28:42,316:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'Voltage_Cell09', '']
2024-08-18 09:28:42,316:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: Voltage_Cell09, raw_value b''
2024-08-18 09:28:42,317:DEBUG:abstractprotocol:process_response@124: Discarding Voltage_Cell09:b''
2024-08-18 09:28:42,317:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-08-18 09:28:42,317:DEBUG:abstractprotocol:decode@523: Got defn ['BigHex2Short:r/1000', 2, 'Voltage_Cell09', 'V']
2024-08-18 09:28:42,317:DEBUG:abstractprotocol:process_response@117: Got template r/1000 for Voltage_Cell09 b''
2024-08-18 09:28:42,317:DEBUG:abstractprotocol:process_response@118: Processing data_type: BigHex2Short for data_name: Voltage_Cell09, raw_value b''
2024-08-18 09:28:42,317:DEBUG:abstractprotocol:process_response@203: Processing format string: 'BigHex2Short(raw_value)'
2024-08-18 09:28:42,317:INFO:protocol_helpers:BigHex2Short@143: Hex encoded value must be 2 bytes long. Was 0 length
2024-08-18 09:28:42,317:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-08-18 09:28:42,317:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'Voltage_Cell10', '']
2024-08-18 09:28:42,317:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: Voltage_Cell10, raw_value b''
2024-08-18 09:28:42,317:DEBUG:abstractprotocol:process_response@124: Discarding Voltage_Cell10:b''
2024-08-18 09:28:42,317:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-08-18 09:28:42,317:DEBUG:abstractprotocol:decode@523: Got defn ['BigHex2Short:r/1000', 2, 'Voltage_Cell10', 'V']
2024-08-18 09:28:42,317:DEBUG:abstractprotocol:process_response@117: Got template r/1000 for Voltage_Cell10 b''
2024-08-18 09:28:42,317:DEBUG:abstractprotocol:process_response@118: Processing data_type: BigHex2Short for data_name: Voltage_Cell10, raw_value b''
2024-08-18 09:28:42,317:DEBUG:abstractprotocol:process_response@203: Processing format string: 'BigHex2Short(raw_value)'
2024-08-18 09:28:42,317:INFO:protocol_helpers:BigHex2Short@143: Hex encoded value must be 2 bytes long. Was 0 length
2024-08-18 09:28:42,317:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-08-18 09:28:42,317:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'Voltage_Cell11', '']
2024-08-18 09:28:42,317:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: Voltage_Cell11, raw_value b''
2024-08-18 09:28:42,317:DEBUG:abstractprotocol:process_response@124: Discarding Voltage_Cell11:b''
2024-08-18 09:28:42,317:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-08-18 09:28:42,317:DEBUG:abstractprotocol:decode@523: Got defn ['BigHex2Short:r/1000', 2, 'Voltage_Cell11', 'V']
2024-08-18 09:28:42,317:DEBUG:abstractprotocol:process_response@117: Got template r/1000 for Voltage_Cell11 b''
2024-08-18 09:28:42,317:DEBUG:abstractprotocol:process_response@118: Processing data_type: BigHex2Short for data_name: Voltage_Cell11, raw_value b''
2024-08-18 09:28:42,317:DEBUG:abstractprotocol:process_response@203: Processing format string: 'BigHex2Short(raw_value)'
2024-08-18 09:28:42,317:INFO:protocol_helpers:BigHex2Short@143: Hex encoded value must be 2 bytes long. Was 0 length
2024-08-18 09:28:42,317:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-08-18 09:28:42,317:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'Voltage_Cell12', '']
2024-08-18 09:28:42,317:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: Voltage_Cell12, raw_value b''
2024-08-18 09:28:42,317:DEBUG:abstractprotocol:process_response@124: Discarding Voltage_Cell12:b''
2024-08-18 09:28:42,317:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-08-18 09:28:42,317:DEBUG:abstractprotocol:decode@523: Got defn ['BigHex2Short:r/1000', 2, 'Voltage_Cell12', 'V']
2024-08-18 09:28:42,317:DEBUG:abstractprotocol:process_response@117: Got template r/1000 for Voltage_Cell12 b'' [74/1813]
2024-08-18 09:28:42,317:DEBUG:abstractprotocol:process_response@118: Processing data_type: BigHex2Short for data_name: Voltage_Cell12, raw_value b''
2024-08-18 09:28:42,317:DEBUG:abstractprotocol:process_response@203: Processing format string: 'BigHex2Short(raw_value)'
2024-08-18 09:28:42,317:INFO:protocol_helpers:BigHex2Short@143: Hex encoded value must be 2 bytes long. Was 0 length
2024-08-18 09:28:42,317:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-08-18 09:28:42,317:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'Voltage_Cell13', '']
2024-08-18 09:28:42,317:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: Voltage_Cell13, raw_value b''
2024-08-18 09:28:42,317:DEBUG:abstractprotocol:process_response@124: Discarding Voltage_Cell13:b''
2024-08-18 09:28:42,317:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-08-18 09:28:42,317:DEBUG:abstractprotocol:decode@523: Got defn ['BigHex2Short:r/1000', 2, 'Voltage_Cell13', 'V']
2024-08-18 09:28:42,317:DEBUG:abstractprotocol:process_response@117: Got template r/1000 for Voltage_Cell13 b''
2024-08-18 09:28:42,317:DEBUG:abstractprotocol:process_response@118: Processing data_type: BigHex2Short for data_name: Voltage_Cell13, raw_value b''
2024-08-18 09:28:42,318:DEBUG:abstractprotocol:process_response@203: Processing format string: 'BigHex2Short(raw_value)'
2024-08-18 09:28:42,318:INFO:protocol_helpers:BigHex2Short@143: Hex encoded value must be 2 bytes long. Was 0 length
2024-08-18 09:28:42,318:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-08-18 09:28:42,318:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'Voltage_Cell14', '']
2024-08-18 09:28:42,318:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: Voltage_Cell14, raw_value b''
2024-08-18 09:28:42,318:DEBUG:abstractprotocol:process_response@124: Discarding Voltage_Cell14:b''
2024-08-18 09:28:42,318:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-08-18 09:28:42,318:DEBUG:abstractprotocol:decode@523: Got defn ['BigHex2Short:r/1000', 2, 'Voltage_Cell14', 'V']
2024-08-18 09:28:42,318:DEBUG:abstractprotocol:process_response@117: Got template r/1000 for Voltage_Cell14 b''
2024-08-18 09:28:42,318:DEBUG:abstractprotocol:process_response@118: Processing data_type: BigHex2Short for data_name: Voltage_Cell14, raw_value b''
2024-08-18 09:28:42,318:DEBUG:abstractprotocol:process_response@203: Processing format string: 'BigHex2Short(raw_value)'
2024-08-18 09:28:42,318:INFO:protocol_helpers:BigHex2Short@143: Hex encoded value must be 2 bytes long. Was 0 length
2024-08-18 09:28:42,318:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-08-18 09:28:42,318:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'Voltage_Cell15', '']
2024-08-18 09:28:42,318:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: Voltage_Cell15, raw_value b''
2024-08-18 09:28:42,318:DEBUG:abstractprotocol:process_response@124: Discarding Voltage_Cell15:b''
2024-08-18 09:28:42,318:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-08-18 09:28:42,318:DEBUG:abstractprotocol:decode@523: Got defn ['BigHex2Short:r/1000', 2, 'Voltage_Cell15', 'V']
2024-08-18 09:28:42,318:DEBUG:abstractprotocol:process_response@117: Got template r/1000 for Voltage_Cell15 b''
2024-08-18 09:28:42,318:DEBUG:abstractprotocol:process_response@118: Processing data_type: BigHex2Short for data_name: Voltage_Cell15, raw_value b''
2024-08-18 09:28:42,318:DEBUG:abstractprotocol:process_response@203: Processing format string: 'BigHex2Short(raw_value)'
2024-08-18 09:28:42,318:INFO:protocol_helpers:BigHex2Short@143: Hex encoded value must be 2 bytes long. Was 0 length
2024-08-18 09:28:42,318:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-08-18 09:28:42,318:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'Voltage_Cell16', '']
2024-08-18 09:28:42,318:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: Voltage_Cell16, raw_value b''
2024-08-18 09:28:42,318:DEBUG:abstractprotocol:process_response@124: Discarding Voltage_Cell16:b''
2024-08-18 09:28:42,318:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-08-18 09:28:42,318:DEBUG:abstractprotocol:decode@523: Got defn ['BigHex2Short:r/1000', 2, 'Voltage_Cell16', 'V']
2024-08-18 09:28:42,318:DEBUG:abstractprotocol:process_response@117: Got template r/1000 for Voltage_Cell16 b''
2024-08-18 09:28:42,318:DEBUG:abstractprotocol:process_response@118: Processing data_type: BigHex2Short for data_name: Voltage_Cell16, raw_value b''
2024-08-18 09:28:42,318:DEBUG:abstractprotocol:process_response@203: Processing format string: 'BigHex2Short(raw_value)'
2024-08-18 09:28:42,318:INFO:protocol_helpers:BigHex2Short@143: Hex encoded value must be 2 bytes long. Was 0 length
2024-08-18 09:28:42,318:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-08-18 09:28:42,318:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'MOS_Temp', '']
2024-08-18 09:28:42,318:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: MOS_Temp, raw_value b'' [28/1813]
2024-08-18 09:28:42,318:DEBUG:abstractprotocol:process_response@124: Discarding MOS_Temp:b''
2024-08-18 09:28:42,319:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-08-18 09:28:42,319:DEBUG:abstractprotocol:decode@523: Got defn ['BigHex2Short', 2, 'MOS_Temp', '°C']
2024-08-18 09:28:42,319:DEBUG:abstractprotocol:process_response@118: Processing data_type: BigHex2Short for data_name: MOS_Temp, raw_value b''
2024-08-18 09:28:42,319:DEBUG:abstractprotocol:process_response@203: Processing format string: 'BigHex2Short(raw_value)'
2024-08-18 09:28:42,319:INFO:protocol_helpers:BigHex2Short@143: Hex encoded value must be 2 bytes long. Was 0 length
2024-08-18 09:28:42,319:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-08-18 09:28:42,319:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'Battery_T1', '']
2024-08-18 09:28:42,319:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: Battery_T1, raw_value b''
2024-08-18 09:28:42,319:DEBUG:abstractprotocol:process_response@124: Discarding Battery_T1:b''
2024-08-18 09:28:42,319:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-08-18 09:28:42,319:DEBUG:abstractprotocol:decode@523: Got defn ['BigHex2Short', 2, 'Battery_T1', '°C']
2024-08-18 09:28:42,319:DEBUG:abstractprotocol:process_response@118: Processing data_type: BigHex2Short for data_name: Battery_T1, raw_value b''
2024-08-18 09:28:42,319:DEBUG:abstractprotocol:process_response@203: Processing format string: 'BigHex2Short(raw_value)'
2024-08-18 09:28:42,319:INFO:protocol_helpers:BigHex2Short@143: Hex encoded value must be 2 bytes long. Was 0 length
2024-08-18 09:28:42,319:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-08-18 09:28:42,319:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'Battery_T2', '']
2024-08-18 09:28:42,319:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: Battery_T2, raw_value b''
2024-08-18 09:28:42,319:DEBUG:abstractprotocol:process_response@124: Discarding Battery_T2:b''
2024-08-18 09:28:42,319:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-08-18 09:28:42,319:DEBUG:abstractprotocol:decode@523: Got defn ['BigHex2Short', 2, 'Battery_T2', '°C']
2024-08-18 09:28:42,319:DEBUG:abstractprotocol:process_response@118: Processing data_type: BigHex2Short for data_name: Battery_T2, raw_value b''
2024-08-18 09:28:42,319:DEBUG:abstractprotocol:process_response@203: Processing format string: 'BigHex2Short(raw_value)'
2024-08-18 09:28:42,319:INFO:protocol_helpers:BigHex2Short@143: Hex encoded value must be 2 bytes long. Was 0 length
2024-08-18 09:28:42,320:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-08-18 09:28:42,320:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'Battery_Voltage', '']
2024-08-18 09:28:42,320:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: Battery_Voltage, raw_value b''
2024-08-18 09:28:42,320:DEBUG:abstractprotocol:process_response@124: Discarding Battery_Voltage:b''
2024-08-18 09:28:42,320:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-08-18 09:28:42,320:DEBUG:abstractprotocol:decode@523: Got defn ['BigHex2Short:r/100', 2, 'Battery_Voltage', 'V']
2024-08-18 09:28:42,320:DEBUG:abstractprotocol:process_response@117: Got template r/100 for Battery_Voltage b''
2024-08-18 09:28:42,320:DEBUG:abstractprotocol:process_response@118: Processing data_type: BigHex2Short for data_name: Battery_Voltage, raw_value b''
2024-08-18 09:28:42,320:DEBUG:abstractprotocol:process_response@203: Processing format string: 'BigHex2Short(raw_value)'
2024-08-18 09:28:42,320:INFO:protocol_helpers:BigHex2Short@143: Hex encoded value must be 2 bytes long. Was 0 length
2024-08-18 09:28:42,320:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-08-18 09:28:42,320:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'Battery_Current', '']
2024-08-18 09:28:42,320:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: Battery_Current, raw_value b''
2024-08-18 09:28:42,320:DEBUG:abstractprotocol:process_response@124: Discarding Battery_Current:b''
2024-08-18 09:28:42,320:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-08-18 09:28:42,320:DEBUG:abstractprotocol:decode@523: Got defn ['BigHex2Short:(r&0x7FFF)/100*(((r&0x8000)>>15)2-1)', 2, 'Battery_Current', 'A']
2024-08-18 09:28:42,320:DEBUG:abstractprotocol:process_response@117: Got template (r&0x7FFF)/100
(((r&0x8000)>>15)*2-1) for Battery_Current b''
2024-08-18 09:28:42,320:DEBUG:abstractprotocol:process_response@118: Processing data_type: BigHex2Short for data_name: Battery_Current, raw_value b''
2024-08-18 09:28:42,320:DEBUG:abstractprotocol:process_response@203: Processing format string: 'BigHex2Short(raw_value)'
2024-08-18 09:28:42,320:INFO:protocol_helpers:BigHex2Short@143: Hex encoded value must be 2 bytes long. Was 0 length
2024-08-18 09:28:42,320:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-08-18 09:28:42,320:DEBUG:abstractprotocol:decode@523: Got defn ['discard', 1, 'Percent_Remain', '']
2024-08-18 09:28:42,320:DEBUG:abstractprotocol:process_response@118: Processing data_type: discard for data_name: Percent_Remain, raw_value b''
2024-08-18 09:28:42,320:DEBUG:abstractprotocol:process_response@124: Discarding Percent_Remain:b''
2024-08-18 09:28:42,321:DEBUG:abstractprotocol:decode@496: Processing POSITIONAL type responses
2024-08-18 09:28:42,321:DEBUG:abstractprotocol:decode@523: Got defn ['Hex2Int', 1, 'Percent_Remain', '%']
2024-08-18 09:28:42,321:DEBUG:abstractprotocol:process_response@118: Processing data_type: Hex2Int for data_name: Percent_Remain, raw_value b''
2024-08-18 09:28:42,321:DEBUG:abstractprotocol:process_response@203: Processing format string: 'Hex2Int(raw_value)'
Traceback (most recent call last):
File "/home/userone/dev/jkdirect/venv/bin/jkbms", line 8, in
sys.exit(main())
^^^^^^
File "/home/userone/dev/jkdirect/mpp-solar/mppsolar/init.py", line 442, in main
results = _device.run_command(command=_command)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/userone/dev/jkdirect/mpp-solar/mppsolar/devices/device.py", line 115, in run_command
decoded_response = self._protocol.decode(raw_response, command)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/userone/dev/jkdirect/mpp-solar/mppsolar/protocols/abstractprotocol.py", line 554, in decode
processed_responses = self.process_response(
^^^^^^^^^^^^^^^^^^^^^^
File "/home/userone/dev/jkdirect/mpp-solar/mppsolar/protocols/abstractprotocol.py", line 205, in process_response
r = eval(format_string) # pylint: disable=W0123
^^^^^^^^^^^^^^^^^^^
File "", line 1, in
File "/home/userone/dev/jkdirect/mpp-solar/mppsolar/protocols/protocol_helpers.py", line 90, in Hex2Int
answer = hexString[0]
~~~~~~~~~^^^
IndexError: index out of range

So clearly it is getting a wrong response, but why? It sends the following hex string:
'4e 57 00 13 00 00 00 00 03 03 00 00 00 00 00 00 68 00 00 01 26'
'4e 57 01 21 00 00 00 00 03 00 01 79 30 01 0d'

Most curiously, when I send the same string via serial I do get the following response:
4e 57 01 21 00 00 00 00 03 00 01 79 30 01 0d 16 02 0d 16 03 0d 16 04 0d 15 05 0d 15 06 0d 16 07 0d 14 08 0d 17 09 0d 19 0a 0d 16 0b 0d 17 0c 0d 15 0d 0d 17 0e 0d 16 0f 0d 15 10 0d 17 80 00 14 81 00 13 82 00 13 83 14 f0 84 81 b7 85 63 86 02 87 00 0a 89 00 00 0b 5f 8a 00 10 8b 00 00 8c 00 03 8e 16 d0 8f 10 40 90 0e 42 91 0d de 92 00 05 93 0a 28 94 0a 5a 95 00 05 96 01 2c 97 00 c8 98 01 2c 99 00 82 9a 00 1e 9b 0d 7a 9c 00 14 9d 01 9e 00 64 9f 00 50 a0 00 64 a1 00 64 a2 00 14 a3 00 46 a4 00 46 a5 ff ec a6 ff f6 a7 ff ec a8 ff f6 a9 10 aa 00 00 01 18 ab 01 ac 01 ad 04 17 ae 01 af 00 b0 00 0a b1 14 b2 6d 6f 6b 6e 69 74 6f 72 32 00 b3 00 b4 49 6e 70 75 74 20 55 73 b5 32 34 30 34 b6 00 01 d6 13 b7 31 31 2e 58 57 5f 53 31 31 2e 32 36 5f 5f 5f b8 00 b9 00 00 01 18 ba 49 6e 70 75 74 20 55 73 65 72 64 61 34 38 56 65 72 74 69 63 61 6c 00 00 c0 01 00 00 00 00 68 00 00 50 2c

So it appears to be truncating maybe?
I increased the timeout in mppsolar/inout/serialio.py with no difference. But then I looked what is the last byte it cuts off on? 0d and what is 0d? it is \r and in mppsolar/inout/serialio.py we have line

response_line = s.read_until(b"\r")
So it reads until it gets \r.... But this is a binary protocol so looking for a carriage return is not going to work.

I looked at the translated Chinese document for something else we can interpret as the end of the frame. I found this. At the end there is always 0x68 followed by 4 byte checksum, of which 2 bytes are not used and are zero. So it seems every frame ends with (hex) 68 00 00 XX XX and this is one simple method to detect the end (a better one would be to process the header and get the length, but this is the faster method I chose today).

So after making the following changes: https://github.com/lukolszewski/mpp-solar/tree/feature/jk_serialio

It appears to be working fine!

@jblance
Copy link
Owner

jblance commented Aug 18, 2024

jkbms -P jkserial -b 115200 -I --porttype serial -p /dev/ttyUSB5

--porttype daly should work too

@lukolszewski
Copy link
Contributor

lukolszewski commented Aug 18, 2024

jkbms -P jkserial -b 115200 -I --porttype serial -p /dev/ttyUSB5

--porttype daly should work too

Indeed it does 😅

Edit: I still like my version though as it replies signifficantly faster (both could be tweaked further of course). Does anyone know how frequently the values are updated internally? Is there a point to query every second for example to catch current peaks?

@gianfrdp
Copy link
Contributor

Hello, which protocol is configured on BMS UART?
Are you using UART2?
Did someone try using RS232 port?

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

4 participants