jblance / mpp-solar

Python package to communicate to MPP Solar PIP-4048MS inverters (and similar)
MIT License
364 stars 151 forks source link

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

Open axyaxyfr opened 3 months ago

axyaxyfr commented 3 months ago

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, ''], 'lowestcell': [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'], 'balanceon/_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
lowestcell 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
balanceon/_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 commented 3 months ago

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: https://github.com/jblance/mpp-solar/issues/504

jblance commented 3 months ago

The response doesnt match any of the protocols I have documentation for - perhaps the baud rate is wrong can you try at 9600?

On Sun, 28 Jul 2024 at 08:33, axyaxyfr @.***> wrote:

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? @.:~ $ jkbms -p /dev/ttyUSB0 -b 115200 -P JK485 -D 2024-07-27 @.: Solar Device Command Utility, version: 0.15.62 2024-07-27 @. https://github.com/29: mqttbroker config: {'name': 'localhost', 'port': 1883, 'user': None, 'pass': None} 2024-07-27 @.: MqttBroker name: localhost, port: 1883, user: None 2024-07-27 @.: udp port 5555 2024-07-27 @.: Using Postgres None 2024-07-27 @.: Using Mongo None with mppsolar 2024-07-27 @.: Creating device "unnamed" (type: "jkbms") on port "/dev/ttyUSB0 (porttype=None)" using protocol "JK485" 2024-07-27 @.: device_class <class 'mppsolar.devices.jkbms.jkbms'> 2024-07-27 @. https://github.com/33: init args () 2024-07-27 @. https://github.com/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 @.: port matches ttyusb 2024-07-27 @.: Using serialio for communications 2024-07-27 @.: Protocol JK485 2024-07-27 @. https://github.com/38: init name unnamed, port <mppsolar.inout.serialio.SerialIO object at 0x7607bda8>, protocol JKBMS RS485 serial communication protocol handler 2024-07-27 @.: Commands [(<mppsolar.devices.jkbms.jkbms object at 0x7607bcb8>, '', '', 'screen', None, None)] 2024-07-27 @.: Looping 1 commands 2024-07-27 @.: 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 @.: Running command 2024-07-27 @.: Using protocol b'JK485' with 1 commands 2024-07-27 @.: get_command_defn for: getBalancerData 2024-07-27 @.: Processing command 'getBalancerData' 2024-07-27 @.: Found command getBalancerData in protocol b'JK485' 2024-07-27 @.: cmd with header: bytearray(b'U\xaa\x00\x00\x00\x00\x00') 2024-07-27 @.***: cmd with header

  • slave address: bytearray(b'U\xaa\x01\x00\x00\x00\x00') 2024-07-27 @.: cmd with command code and frame data: bytearray(b'U\xaa\x01\xff\x00\x00\x00') 2024-07-27 @.: cmd with crc: bytearray(b'U\xaa\x01\xff\x00\x00\xff') 2024-07-27 @.: full command bytearray(b'U\xaa\x01\xff\x00\x00\xff') for command getBalancerData 2024-07-27 @.: get_command_defn for: getBalancerData 2024-07-27 @.: Processing command 'getBalancerData' 2024-07-27 @.: Found command getBalancerData in protocol b'JK485' 2024-07-27 @.: port /dev/ttyUSB0, baudrate 115200 2024-07-27 @.: Executing command via serialio... 2024-07-27 @.: 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 @.: 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 @.: 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 @.: get_command_defn for: getBalancerData 2024-07-27 @.: Processing command 'getBalancerData' 2024-07-27 @.: Found command getBalancerData in protocol b'JK485' 2024-07-27 @.: Processing response of type POSITIONAL 2024-07-27 @.: Got defn: ['Hex2Str', 2, 'Header', ''] 2024-07-27 @.: Got defn: ['Hex2Str', 1, 'Slave Address', ''] 2024-07-27 @.: Got defn: ['Hex2Str', 1, 'Command Code', ''] 2024-07-27 @.: Got defn: ['BigHex2Short:r/100', 2, 'Total Battery Voltage', 'V'] 2024-07-27 @.: Got defn: ['BigHex2Short:r/1000', 2, 'Average Cell Voltage', 'V'] 2024-07-27 @.: Got defn: ['Hex2Int', 1, 'Number of Cells', ''] 2024-07-27 @.: Got defn: ['Hex2Int', 1, 'Highest Cell', ''] 2024-07-27 @.: Got defn: ['Hex2Int', 1, 'Lowest Cell', ''] 2024-07-27 @.: Got defn: ['Hex2Str', 1, 'Charging / Discharging', ''] 2024-07-27 @.: Got defn: ['Hex2Str', 1, 'Alarm - todo', ''] 2024-07-27 @.: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Difference', 'V'] 2024-07-27 @.: Got defn: ['BigHex2Short:r/1000', 2, 'Balance Current', 'A'] 2024-07-27 @.: Got defn: ['BigHex2Short:r/1000', 2, 'Balance Trigger Voltage', 'V'] 2024-07-27 @.: Got defn: ['BigHex2Short:r/1000', 2, 'Max Balance Current', 'A'] 2024-07-27 @.: Got defn: ['Hex2Str', 1, 'Balance On / Off', ''] 2024-07-27 @.: Got defn: ['Hex2Int', 1, 'Set Number of Cells', ''] 2024-07-27 @.: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell01', 'V'] 2024-07-27 @.: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell02', 'V'] 2024-07-27 @.: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell03', 'V'] 2024-07-27 @.: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell04', 'V'] 2024-07-27 @.: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell05', 'V'] 2024-07-27 @.: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell06', 'V'] 2024-07-27 @.: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell07', 'V'] 2024-07-27 @.: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell08', 'V'] 2024-07-27 @.: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell09', 'V'] 2024-07-27 @.: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell10', 'V'] 2024-07-27 @.: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell11', 'V'] 2024-07-27 @.: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell12', 'V'] 2024-07-27 @.: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell13', 'V'] 2024-07-27 @.: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell14', 'V'] 2024-07-27 @.: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell15', 'V'] 2024-07-27 @.: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell16', 'V'] 2024-07-27 @.: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell17', 'V'] 2024-07-27 @.: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell18', 'V'] 2024-07-27 @.: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell19', 'V'] 2024-07-27 @.: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell20', 'V'] 2024-07-27 @.: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell21', 'V'] 2024-07-27 @.: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell22', 'V'] 2024-07-27 @.: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell23', 'V'] 2024-07-27 @.: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell24', 'V'] 2024-07-27 @.: Got defn: ['BigHex2Short', 2, 'Temperature', '°C'] 2024-07-27 @.: Got defn: ['Hex2Str', 1, 'Checksum', ''] 2024-07-27 @.: 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 @.: Processing POSITIONAL type responses 2024-07-27 @.: Got defn ['Hex2Str', 2, 'Header', ''] 2024-07-27 @.: Processing data_type: Hex2Str for data_name: Header, raw_value b'\x02\x10' 2024-07-27 @.: Processing format string Hex2Str(raw_value) 2024-07-27 @.: Hex b'\x02\x10' decoded to 0210 2024-07-27 @.: Processing POSITIONAL type responses 2024-07-27 @.: Got defn ['Hex2Str', 1, 'Slave Address', ''] 2024-07-27 @.: Processing data_type: Hex2Str for data_name: Slave Address, raw_value b'\x16' 2024-07-27 @.: Processing format string Hex2Str(raw_value) 2024-07-27 @.: Hex b'\x16' decoded to 16 2024-07-27 @.: Processing POSITIONAL type responses 2024-07-27 @.: Got defn ['Hex2Str', 1, 'Command Code', ''] 2024-07-27 @.: Processing data_type: Hex2Str for data_name: Command Code, raw_value b' ' 2024-07-27 @.: Processing format string Hex2Str(raw_value) 2024-07-27 @.: Hex b' ' decoded to 20 2024-07-27 @.: Processing POSITIONAL type responses 2024-07-27 @.: Got defn ['BigHex2Short:r/100', 2, 'Total Battery Voltage', 'V'] 2024-07-27 @.: Got template r/100 for Total Battery Voltage b'\x00\x01' 2024-07-27 @.: Processing data_type: BigHex2Short for data_name: Total Battery Voltage, raw_value b'\x00\x01' 2024-07-27 @.: Processing format string BigHex2Short(raw_value) 2024-07-27 @.: Hex b'\x00\x01' 2 byte decoded to 1 2024-07-27 @.: Processing POSITIONAL type responses 2024-07-27 @.: Got defn ['BigHex2Short:r/1000', 2, 'Average Cell Voltage', 'V'] 2024-07-27 @.: Got template r/1000 for Average Cell Voltage b'\x02\x00' 2024-07-27 @.: Processing data_type: BigHex2Short for data_name: Average Cell Voltage, raw_value b'\x02\x00' 2024-07-27 @.: Processing format string BigHex2Short(raw_value) 2024-07-27 @.: Hex b'\x02\x00' 2 byte decoded to 512 2024-07-27 @.: Processing POSITIONAL type responses 2024-07-27 @.: Got defn ['Hex2Int', 1, 'Number of Cells', ''] 2024-07-27 @.: Processing data_type: Hex2Int for data_name: Number of Cells, raw_value b'\x00' 2024-07-27 @.: Processing format string Hex2Int(raw_value) 2024-07-27 @.: Hex b'\x00' decoded to 0 2024-07-27 @.: Processing POSITIONAL type responses 2024-07-27 @.: Got defn ['Hex2Int', 1, 'Highest Cell', ''] 2024-07-27 @.: Processing data_type: Hex2Int for data_name: Highest Cell, raw_value b'\xc2' 2024-07-27 @.: Processing format string Hex2Int(raw_value) 2024-07-27 @.: Hex b'\xc2' decoded to 194 2024-07-27 @.: Processing POSITIONAL type responses 2024-07-27 @.: Got defn ['Hex2Int', 1, 'Lowest Cell', ''] 2024-07-27 @.: Processing data_type: Hex2Int for data_name: Lowest Cell, raw_value b'\x01' 2024-07-27 @.: Processing format string Hex2Int(raw_value) 2024-07-27 @.: Hex b'\x01' decoded to 1 2024-07-27 @.: Processing POSITIONAL type responses 2024-07-27 @.: Got defn ['Hex2Str', 1, 'Charging / Discharging', ''] 2024-07-27 @.: Processing data_type: Hex2Str for data_name: Charging / Discharging, raw_value b'\x03' 2024-07-27 @.: Processing format string Hex2Str(raw_value) 2024-07-27 @.: Hex b'\x03' decoded to 03 2024-07-27 @.: Processing POSITIONAL type responses 2024-07-27 @.: Got defn ['Hex2Str', 1, 'Alarm - todo', ''] 2024-07-27 @.: Processing data_type: Hex2Str for data_name: Alarm - todo, raw_value b'\x10' 2024-07-27 @.: Processing format string Hex2Str(raw_value) 2024-07-27 @.: Hex b'\x10' decoded to 10 2024-07-27 @.: Processing POSITIONAL type responses 2024-07-27 @.: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Difference', 'V'] 2024-07-27 @.: Got template r/1000 for Voltage Difference b'\x16 ' 2024-07-27 @.: Processing data_type: BigHex2Short for data_name: Voltage Difference, raw_value b'\x16 ' 2024-07-27 @.: Processing format string BigHex2Short(raw_value) 2024-07-27 @.: Hex b'\x16 ' 2 byte decoded to 5664 2024-07-27 @.: Processing POSITIONAL type responses 2024-07-27 @.: Got defn ['BigHex2Short:r/1000', 2, 'Balance Current', 'A'] 2024-07-27 @.: Got template r/1000 for Balance Current b'\x00\x01' 2024-07-27 @.: Processing data_type: BigHex2Short for data_name: Balance Current, raw_value b'\x00\x01' 2024-07-27 @.: Processing format string BigHex2Short(raw_value) 2024-07-27 @.: Hex b'\x00\x01' 2 byte decoded to 1 2024-07-27 @.: Processing POSITIONAL type responses 2024-07-27 @.: Got defn ['BigHex2Short:r/1000', 2, 'Balance Trigger Voltage', 'V'] 2024-07-27 @.: Got template r/1000 for Balance Trigger Voltage b'\x02\x00' 2024-07-27 @.: Processing data_type: BigHex2Short for data_name: Balance Trigger Voltage, raw_value b'\x02\x00' 2024-07-27 @.: Processing format string BigHex2Short(raw_value) 2024-07-27 @.: Hex b'\x02\x00' 2 byte decoded to 512 2024-07-27 @.: Processing POSITIONAL type responses 2024-07-27 @.: Got defn ['BigHex2Short:r/1000', 2, 'Max Balance Current', 'A'] 2024-07-27 @.: Got template r/1000 for Max Balance Current b'\x00\xcf' 2024-07-27 @.: Processing data_type: BigHex2Short for data_name: Max Balance Current, raw_value b'\x00\xcf' 2024-07-27 @.: Processing format string BigHex2Short(raw_value) 2024-07-27 @.: Hex b'\x00\xcf' 2 byte decoded to 207 2024-07-27 @.: Processing POSITIONAL type responses 2024-07-27 @.: Got defn ['Hex2Str', 1, 'Balance On / Off', ''] 2024-07-27 @.: Processing data_type: Hex2Str for data_name: Balance On / Off, raw_value b'\x91' 2024-07-27 @.: Processing format string Hex2Str(raw_value) 2024-07-27 @.: Hex b'\x91' decoded to 91 2024-07-27 @.: Processing POSITIONAL type responses 2024-07-27 @.: Got defn ['Hex2Int', 1, 'Set Number of Cells', ''] 2024-07-27 @.: Processing data_type: Hex2Int for data_name: Set Number of Cells, raw_value b'\x04' 2024-07-27 @.: Processing format string Hex2Int(raw_value) 2024-07-27 @.: Hex b'\x04' decoded to 4 2024-07-27 @.: Processing POSITIONAL type responses 2024-07-27 @.: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell01', 'V'] 2024-07-27 @.: Got template r/1000 for Voltage Cell01 b'\x10\x16' 2024-07-27 @.: Processing data_type: BigHex2Short for data_name: Voltage Cell01, raw_value b'\x10\x16' 2024-07-27 @.: Processing format string BigHex2Short(raw_value) 2024-07-27 @.: Hex b'\x10\x16' 2 byte decoded to 4118 2024-07-27 @.: Processing POSITIONAL type responses 2024-07-27 @.: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell02', 'V'] 2024-07-27 @.: Got template r/1000 for Voltage Cell02 b' \x00' 2024-07-27 @.: Processing data_type: BigHex2Short for data_name: Voltage Cell02, raw_value b' \x00' 2024-07-27 @.: Processing format string BigHex2Short(raw_value) 2024-07-27 @.: Hex b' \x00' 2 byte decoded to 8192 2024-07-27 @.: Processing POSITIONAL type responses 2024-07-27 @.: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell03', 'V'] 2024-07-27 @.: Got template r/1000 for Voltage Cell03 b'\x01\x02' 2024-07-27 @.: Processing data_type: BigHex2Short for data_name: Voltage Cell03, raw_value b'\x01\x02' 2024-07-27 @.: Processing format string BigHex2Short(raw_value) 2024-07-27 @.: Hex b'\x01\x02' 2 byte decoded to 258 2024-07-27 @.: Processing POSITIONAL type responses 2024-07-27 @.: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell04', 'V'] 2024-07-27 @.: Got template r/1000 for Voltage Cell04 b'\x00\x00' 2024-07-27 @.: Processing data_type: BigHex2Short for data_name: Voltage Cell04, raw_value b'\x00\x00' 2024-07-27 @.: Processing format string BigHex2Short(raw_value) 2024-07-27 @.: Hex b'\x00\x00' 2 byte decoded to 0 2024-07-27 @.: Processing POSITIONAL type responses 2024-07-27 @.: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell05', 'V'] 2024-07-27 @.: Got template r/1000 for Voltage Cell05 b'\xe9\xa1' 2024-07-27 @.: Processing data_type: BigHex2Short for data_name: Voltage Cell05, raw_value b'\xe9\xa1' 2024-07-27 @.: Processing format string BigHex2Short(raw_value) 2024-07-27 @.: Hex b'\xe9\xa1' 2 byte decoded to -5727 2024-07-27 @.: Processing POSITIONAL type responses 2024-07-27 @.: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell06', 'V'] 2024-07-27 @.: Got template r/1000 for Voltage Cell06 b'\x05' 2024-07-27 @.: Processing data_type: BigHex2Short for data_name: Voltage Cell06, raw_value b'\x05' 2024-07-27 @.: Processing format string BigHex2Short(raw_value) 2024-07-27 @.: Hex encoded value must be 2 bytes long. Was 1 length 2024-07-27 @.: Processing POSITIONAL type responses 2024-07-27 @.: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell07', 'V'] 2024-07-27 @.: Got template r/1000 for Voltage Cell07 b'' 2024-07-27 @.: Processing data_type: BigHex2Short for data_name: Voltage Cell07, raw_value b'' 2024-07-27 @.: Processing format string BigHex2Short(raw_value) 2024-07-27 @.: Hex encoded value must be 2 bytes long. Was 0 length 2024-07-27 @.: Processing POSITIONAL type responses 2024-07-27 @.: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell08', 'V'] 2024-07-27 @.: Got template r/1000 for Voltage Cell08 b'' 2024-07-27 @.: Processing data_type: BigHex2Short for data_name: Voltage Cell08, raw_value b'' 2024-07-27 @.: Processing format string BigHex2Short(raw_value) 2024-07-27 @.: Hex encoded value must be 2 bytes long. Was 0 length 2024-07-27 @.: Processing POSITIONAL type responses 2024-07-27 @.: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell09', 'V'] 2024-07-27 @.: Got template r/1000 for Voltage Cell09 b'' 2024-07-27 @.: Processing data_type: BigHex2Short for data_name: Voltage Cell09, raw_value b'' 2024-07-27 @.: Processing format string BigHex2Short(raw_value) 2024-07-27 @.: Hex encoded value must be 2 bytes long. Was 0 length 2024-07-27 @.: Processing POSITIONAL type responses 2024-07-27 @.: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell10', 'V'] 2024-07-27 @.: Got template r/1000 for Voltage Cell10 b'' 2024-07-27 @.: Processing data_type: BigHex2Short for data_name: Voltage Cell10, raw_value b'' 2024-07-27 @.: Processing format string BigHex2Short(raw_value) 2024-07-27 @.: Hex encoded value must be 2 bytes long. Was 0 length 2024-07-27 @.: Processing POSITIONAL type responses 2024-07-27 @.: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell11', 'V'] 2024-07-27 @.: Got template r/1000 for Voltage Cell11 b'' 2024-07-27 @.: Processing data_type: BigHex2Short for data_name: Voltage Cell11, raw_value b'' 2024-07-27 @.: Processing format string BigHex2Short(raw_value) 2024-07-27 @.: Hex encoded value must be 2 bytes long. Was 0 length 2024-07-27 @.: Processing POSITIONAL type responses 2024-07-27 @.: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell12', 'V'] 2024-07-27 @.: Got template r/1000 for Voltage Cell12 b'' 2024-07-27 @.: Processing data_type: BigHex2Short for data_name: Voltage Cell12, raw_value b'' 2024-07-27 @.: Processing format string BigHex2Short(raw_value) 2024-07-27 @.: Hex encoded value must be 2 bytes long. Was 0 length 2024-07-27 @.: Processing POSITIONAL type responses 2024-07-27 @.: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell13', 'V'] 2024-07-27 @.: Got template r/1000 for Voltage Cell13 b'' 2024-07-27 @.: Processing data_type: BigHex2Short for data_name: Voltage Cell13, raw_value b'' 2024-07-27 @.: Processing format string BigHex2Short(raw_value) 2024-07-27 @.: Hex encoded value must be 2 bytes long. Was 0 length 2024-07-27 @.: Processing POSITIONAL type responses 2024-07-27 @.: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell14', 'V'] 2024-07-27 @.: Got template r/1000 for Voltage Cell14 b'' 2024-07-27 @.: Processing data_type: BigHex2Short for data_name: Voltage Cell14, raw_value b'' 2024-07-27 @.: Processing format string BigHex2Short(raw_value) 2024-07-27 @.: Hex encoded value must be 2 bytes long. Was 0 length 2024-07-27 @.: Processing POSITIONAL type responses 2024-07-27 @.: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell15', 'V'] 2024-07-27 @.: Got template r/1000 for Voltage Cell15 b'' 2024-07-27 @.: Processing data_type: BigHex2Short for data_name: Voltage Cell15, raw_value b'' 2024-07-27 @.: Processing format string BigHex2Short(raw_value) 2024-07-27 @.: Hex encoded value must be 2 bytes long. Was 0 length 2024-07-27 @.: Processing POSITIONAL type responses 2024-07-27 @.: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell16', 'V'] 2024-07-27 @.: Got template r/1000 for Voltage Cell16 b'' 2024-07-27 @.: Processing data_type: BigHex2Short for data_name: Voltage Cell16, raw_value b'' 2024-07-27 @.: Processing format string BigHex2Short(raw_value) 2024-07-27 @.: Hex encoded value must be 2 bytes long. Was 0 length 2024-07-27 @.: Processing POSITIONAL type responses 2024-07-27 @.: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell17', 'V'] 2024-07-27 @.: Got template r/1000 for Voltage Cell17 b'' 2024-07-27 @.: Processing data_type: BigHex2Short for data_name: Voltage Cell17, raw_value b'' 2024-07-27 @.: Processing format string BigHex2Short(raw_value) 2024-07-27 @.: Hex encoded value must be 2 bytes long. Was 0 length 2024-07-27 @.: Processing POSITIONAL type responses 2024-07-27 @.: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell18', 'V'] 2024-07-27 @.: Got template r/1000 for Voltage Cell18 b'' 2024-07-27 @.: Processing data_type: BigHex2Short for data_name: Voltage Cell18, raw_value b'' 2024-07-27 @.: Processing format string BigHex2Short(raw_value) 2024-07-27 @.: Hex encoded value must be 2 bytes long. Was 0 length 2024-07-27 @.: Processing POSITIONAL type responses 2024-07-27 @.: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell19', 'V'] 2024-07-27 @.: Got template r/1000 for Voltage Cell19 b'' 2024-07-27 @.: Processing data_type: BigHex2Short for data_name: Voltage Cell19, raw_value b'' 2024-07-27 @.: Processing format string BigHex2Short(raw_value) 2024-07-27 @.: Hex encoded value must be 2 bytes long. Was 0 length 2024-07-27 @.: Processing POSITIONAL type responses 2024-07-27 @.: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell20', 'V'] 2024-07-27 @.: Got template r/1000 for Voltage Cell20 b'' 2024-07-27 @.: Processing data_type: BigHex2Short for data_name: Voltage Cell20, raw_value b'' 2024-07-27 @.: Processing format string BigHex2Short(raw_value) 2024-07-27 @.: Hex encoded value must be 2 bytes long. Was 0 length 2024-07-27 @.: Processing POSITIONAL type responses 2024-07-27 @.: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell21', 'V'] 2024-07-27 @.: Got template r/1000 for Voltage Cell21 b'' 2024-07-27 @.: Processing data_type: BigHex2Short for data_name: Voltage Cell21, raw_value b'' 2024-07-27 @.: Processing format string BigHex2Short(raw_value) 2024-07-27 @.: Hex encoded value must be 2 bytes long. Was 0 length 2024-07-27 @.: Processing POSITIONAL type responses 2024-07-27 @.: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell22', 'V'] 2024-07-27 @.: Got template r/1000 for Voltage Cell22 b'' 2024-07-27 @.: Processing data_type: BigHex2Short for data_name: Voltage Cell22, raw_value b'' 2024-07-27 @.: Processing format string BigHex2Short(raw_value) 2024-07-27 @.: Hex encoded value must be 2 bytes long. Was 0 length 2024-07-27 @.: Processing POSITIONAL type responses 2024-07-27 @.: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell23', 'V'] 2024-07-27 @.: Got template r/1000 for Voltage Cell23 b'' 2024-07-27 @.: Processing data_type: BigHex2Short for data_name: Voltage Cell23, raw_value b'' 2024-07-27 @.: Processing format string BigHex2Short(raw_value) 2024-07-27 @.: Hex encoded value must be 2 bytes long. Was 0 length 2024-07-27 @.: Processing POSITIONAL type responses 2024-07-27 @.: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell24', 'V'] 2024-07-27 @.: Got template r/1000 for Voltage Cell24 b'' 2024-07-27 @.: Processing data_type: BigHex2Short for data_name: Voltage Cell24, raw_value b'' 2024-07-27 @.: Processing format string BigHex2Short(raw_value) 2024-07-27 @.: Hex encoded value must be 2 bytes long. Was 0 length 2024-07-27 @.: Processing POSITIONAL type responses 2024-07-27 @.: Got defn ['BigHex2Short', 2, 'Temperature', '°C'] 2024-07-27 @.: Processing data_type: BigHex2Short for data_name: Temperature, raw_value b'' 2024-07-27 @.: Processing format string BigHex2Short(raw_value) 2024-07-27 @.: Hex encoded value must be 2 bytes long. Was 0 length 2024-07-27 @.: Processing POSITIONAL type responses 2024-07-27 @.: Got defn ['Hex2Str', 1, 'Checksum', ''] 2024-07-27 @.: Processing data_type: Hex2Str for data_name: Checksum, raw_value b'' 2024-07-27 @.: Processing format string Hex2Str(raw_value) 2024-07-27 @.: Hex b'' decoded to 2024-07-27 @.: 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 @.: 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 @.: attempting to create output processor: screen 2024-07-27 @. https://github.com/15: processor.screen init kwargs {} 2024-07-27 @.: Using output filter: None 2024-07-27 @.: Using output processor: screen 2024-07-27 @.: 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 **@.**: 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 lowestcell 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 @.: Not daemon, so not looping @.:~ $ lsusb Bus 001 Device 004: ID 1a86:7523 QinHeng Electronics CH340 serial converter

— Reply to this email directly, view it on GitHub https://github.com/jblance/mpp-solar/issues/506, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAJVKNWMMCYUD2DUXVSU3STZOP7Z7AVCNFSM6AAAAABLSEZ4F2VHI2DSMVQWIX3LMV43ASLTON2WKOZSGQZTGNRRG43DQOA . You are receiving this because you are subscribed to this thread.Message ID: @.***>

axyaxyfr commented 3 months ago

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, ''], 'lowestcell': [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'], 'balanceon/_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
lowestcell 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
balanceon/_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 commented 3 months ago

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 commented 2 months ago

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

axyaxyfr commented 2 months ago

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:~ $

lukolszewski commented 2 months ago

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 commented 2 months ago

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

--porttype daly should work too

lukolszewski commented 2 months ago

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

--porttype daly should work too

Indeed it does :sweat_smile:

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 commented 1 month ago

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