mpp-solar icon indicating copy to clipboard operation
mpp-solar copied to clipboard

Will a USB connection via FTDI USB RS485 adapter to JK BMS work with this project?

Open frederickjh opened this issue 3 years ago • 20 comments

Hello, I am not sure if this would work but thought I would ask if a setup using a RS485 to USB adapter as shown here, would work with jblance/mppsolar?

On the old jbalance/jkbms project page it says, "Python library to talk to a JK-B1A24S or B2A24S battery monitor via bluetooth (BLE)." Which says it was only via Bluetooth Low Energy.

In usage.md it says in the JKBMS Usage section,: -p PORT, --port PORT Specifies the device communications port (/dev/ttyUSB0 [default], /dev/hidraw0, test, ...) which would lead one to believe that it is possible as USB ports are given as examples.

In the README.md it says in the Protocol / Command References section : JK-B1A24S-RS485-protocol-english.pdf | JKBMS RS485 protocol (un-implemented) which makes me unsure if it is supported.

So, before I go and buy a FTDI USB RS485 adapter for this can you tell me if this would work or not? Thanks for your time and help! Frederick

frederickjh avatar Jul 25 '22 01:07 frederickjh

Hi I bought two of the RS485 adapters and RS485 USB Dongels. It doesn't seem to work at the moment.

jkbms -p /dev/ttyUSB1 -n "Battery2" -PJK485 -D

2022-07-29 13:08:56,031:INFO:__init__:main@223: Solar Device Command Utility, version: 0.13.0, add postgres support from skoky
2022-07-29 13:08:56,032:DEBUG:__init__:main@237: MqttBroker(name='localhost', port=1883, username=None, password=None, results_topic='jkbms', mqttc=<paho.mqtt.client.Client object at 0xffff7fc41c40>, _isConnected=False)
2022-07-29 13:08:56,032:DEBUG:__init__:main@239: udp port 5555
2022-07-29 13:08:56,032:DEBUG:__init__:main@241: Using Postgres None
2022-07-29 13:08:56,032:DEBUG:__init__:main@244: Using Mongo None with mppsolar
2022-07-29 13:08:56,032:INFO:__init__:main@346: Creating device "Battery2" (type: "jkbms") on port "/dev/ttyUSB1 (porttype=None)" using protocol "JK485"
2022-07-29 13:08:56,037:DEBUG:__init__:main@350: device_class <class 'mppsolar.devices.jkbms.jkbms'>
2022-07-29 13:08:56,037:DEBUG:device:__init__@33: __init__ args ()
2022-07-29 13:08:56,037:DEBUG:device:__init__@34: __init__ kwargs {'name': 'Battery2', 'port': '/dev/ttyUSB1', 'protocol': 'JK485', 'baud': 2400, 'porttype': None, 'mqtt_broker': MqttBroker(name='localhost', port=1883, username=None, password=None, results_topic='jkbms', mqttc=<paho.mqtt.client.Client object at 0xffff7fc41c40>, _isConnected=False), 'udp_port': '5555', 'mongo_url': None, 'mongo_db': 'mppsolar'}
2022-07-29 13:08:56,037:DEBUG:__init__:get_port_type@65: port matches ttyusb
2022-07-29 13:08:56,038:INFO:__init__:get_port@107: Using serialio for communications
2022-07-29 13:08:56,047:DEBUG:__init__:get_protocol@12: Protocol JK485
2022-07-29 13:08:56,050:DEBUG:device:__init__@38: __init__ name Battery2, port <mppsolar.inout.serialio.SerialIO object at 0xffff7fc2d0a0>, protocol <mppsolar.protocols.jk485.jk485 object at 0xffff7fc2d850>
2022-07-29 13:08:56,051:DEBUG:__init__:main@399: Commands [(<mppsolar.devices.jkbms.jkbms object at 0xffff7fc22b20>, '', '', 'screen', None, None)]
2022-07-29 13:08:56,051:INFO:__init__:main@404: Looping 1 commands
2022-07-29 13:08:56,051:INFO:__init__:main@414: Getting results from device: jkbms device - name: Battery2, port: <mppsolar.inout.serialio.SerialIO object at 0xffff7fc2d0a0>, protocol: <mppsolar.protocols.jk485.jk485 object at 0xffff7fc2d850> for command: , tag: , outputs: screen
2022-07-29 13:08:56,051:INFO:device:run_command@274: Running command 
2022-07-29 13:08:56,051:INFO:jk485:get_full_command@97: Using protocol b'JK485' with 1 commands
2022-07-29 13:08:56,051:DEBUG:jkabstractprotocol:get_command_defn@106: get_command_defn for: getBalancerData
2022-07-29 13:08:56,052:DEBUG:abstractprotocol:get_command_defn@60: Processing command 'getBalancerData'
2022-07-29 13:08:56,052:DEBUG:abstractprotocol:get_command_defn@62: Found command getBalancerData in protocol b'JK485'
2022-07-29 13:08:56,052:DEBUG:jk485:get_full_command@111: cmd with header: bytearray(b'U\xaa\x00\x00\x00\x00\x00')
2022-07-29 13:08:56,052:DEBUG:jk485:get_full_command@114: cmd with header + slave address: bytearray(b'U\xaa\x01\x00\x00\x00\x00')
2022-07-29 13:08:56,052:DEBUG:jk485:get_full_command@119: cmd with command code and frame data: bytearray(b'U\xaa\x01\xff\x00\x00\x00')
2022-07-29 13:08:56,052:DEBUG:jk485:get_full_command@122: cmd with crc: bytearray(b'U\xaa\x01\xff\x00\x00\xff')
2022-07-29 13:08:56,052:INFO:device:run_command@303: full command bytearray(b'U\xaa\x01\xff\x00\x00\xff') for command getBalancerData
2022-07-29 13:08:56,053:DEBUG:jkabstractprotocol:get_command_defn@106: get_command_defn for: getBalancerData
2022-07-29 13:08:56,053:DEBUG:abstractprotocol:get_command_defn@60: Processing command 'getBalancerData'
2022-07-29 13:08:56,053:DEBUG:abstractprotocol:get_command_defn@62: Found command getBalancerData in protocol b'JK485'
2022-07-29 13:08:56,053:DEBUG:serialio:send_and_receive@19: port /dev/ttyUSB1, baudrate 2400
2022-07-29 13:08:56,061:DEBUG:serialio:send_and_receive@22: Executing command via serialio...
2022-07-29 13:08:57,164:DEBUG:serialio:send_and_receive@30: serial response was: b''
2022-07-29 13:08:57,169:DEBUG:device:run_command@322: Send and Receive Response b''
2022-07-29 13:08:57,169:INFO:abstractprotocol:decode@196: response passed to decode: b''
2022-07-29 13:08:57,169:DEBUG:jkabstractprotocol:get_command_defn@106: get_command_defn for: getBalancerData
2022-07-29 13:08:57,170:DEBUG:abstractprotocol:get_command_defn@60: Processing command 'getBalancerData'
2022-07-29 13:08:57,170:DEBUG:abstractprotocol:get_command_defn@62: Found command getBalancerData in protocol b'JK485'
2022-07-29 13:08:57,171:INFO:abstractprotocol:decode@236: Processing response of type POSITIONAL
2022-07-29 13:08:57,171:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['Hex2Str', 2, 'Header', '']
2022-07-29 13:08:57,171:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['Hex2Str', 1, 'Slave Address', '']
2022-07-29 13:08:57,171:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['Hex2Str', 1, 'Command Code', '']
2022-07-29 13:08:57,172:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/100', 2, 'Total Battery Voltage', 'V']
2022-07-29 13:08:57,172:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Average Cell Voltage', 'V']
2022-07-29 13:08:57,172:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['Hex2Int', 1, 'Number of Cells', '']
2022-07-29 13:08:57,172:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['Hex2Int', 1, 'Highest Cell', '']
2022-07-29 13:08:57,172:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['Hex2Int', 1, 'Lowest Cell', '']
2022-07-29 13:08:57,172:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['Hex2Str', 1, 'Charging / Discharging', '']
2022-07-29 13:08:57,173:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['Hex2Str', 1, 'Alarm - todo', '']
2022-07-29 13:08:57,173:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Difference', 'V']
2022-07-29 13:08:57,173:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Balance Current', 'A']
2022-07-29 13:08:57,173:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Balance Trigger Voltage', 'V']
2022-07-29 13:08:57,173:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Max Balance Current', 'A']
2022-07-29 13:08:57,174:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['Hex2Str', 1, 'Balance On / Off', '']
2022-07-29 13:08:57,174:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['Hex2Int', 1, 'Set Number of Cells', '']
2022-07-29 13:08:57,174:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell01', 'V']
2022-07-29 13:08:57,174:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell02', 'V']
2022-07-29 13:08:57,174:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell03', 'V']
2022-07-29 13:08:57,174:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell04', 'V']
2022-07-29 13:08:57,175:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell05', 'V']
2022-07-29 13:08:57,175:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell06', 'V']
2022-07-29 13:08:57,175:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell07', 'V']
2022-07-29 13:08:57,175:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell08', 'V']
2022-07-29 13:08:57,175:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell09', 'V']
2022-07-29 13:08:57,176:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell10', 'V']
2022-07-29 13:08:57,176:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell11', 'V']
2022-07-29 13:08:57,176:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell12', 'V']
2022-07-29 13:08:57,176:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell13', 'V']
2022-07-29 13:08:57,176:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell14', 'V']
2022-07-29 13:08:57,176:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell15', 'V']
2022-07-29 13:08:57,177:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell16', 'V']
2022-07-29 13:08:57,177:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell17', 'V']
2022-07-29 13:08:57,177:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell18', 'V']
2022-07-29 13:08:57,177:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell19', 'V']
2022-07-29 13:08:57,177:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell20', 'V']
2022-07-29 13:08:57,178:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell21', 'V']
2022-07-29 13:08:57,178:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell22', 'V']
2022-07-29 13:08:57,178:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell23', 'V']
2022-07-29 13:08:57,178:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell24', 'V']
2022-07-29 13:08:57,178:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short', 2, 'Temperature', '°C']
2022-07-29 13:08:57,178:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['Hex2Str', 1, 'Checksum', '']
2022-07-29 13:08:57,178:DEBUG:abstractprotocol:decode@240: 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'']
2022-07-29 13:08:57,178:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-07-29 13:08:57,179:DEBUG:abstractprotocol:decode@431: Got defn ['Hex2Str', 2, 'Header', '']
2022-07-29 13:08:57,179:DEBUG:abstractprotocol:process_response@103: Processing data_type: Hex2Str for data_name: Header, raw_value b''
2022-07-29 13:08:57,179:DEBUG:abstractprotocol:process_response@175: Processing format string Hex2Str(raw_value)
2022-07-29 13:08:57,179:DEBUG:protocol_helpers:Hex2Str@109: Hex b'' decoded to 
2022-07-29 13:08:57,179:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-07-29 13:08:57,180:DEBUG:abstractprotocol:decode@431: Got defn ['Hex2Str', 1, 'Slave Address', '']
2022-07-29 13:08:57,180:DEBUG:abstractprotocol:process_response@103: Processing data_type: Hex2Str for data_name: Slave Address, raw_value b''
2022-07-29 13:08:57,180:DEBUG:abstractprotocol:process_response@175: Processing format string Hex2Str(raw_value)
2022-07-29 13:08:57,180:DEBUG:protocol_helpers:Hex2Str@109: Hex b'' decoded to 
2022-07-29 13:08:57,180:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-07-29 13:08:57,180:DEBUG:abstractprotocol:decode@431: Got defn ['Hex2Str', 1, 'Command Code', '']
2022-07-29 13:08:57,180:DEBUG:abstractprotocol:process_response@103: Processing data_type: Hex2Str for data_name: Command Code, raw_value b''
2022-07-29 13:08:57,181:DEBUG:abstractprotocol:process_response@175: Processing format string Hex2Str(raw_value)
2022-07-29 13:08:57,181:DEBUG:protocol_helpers:Hex2Str@109: Hex b'' decoded to 
2022-07-29 13:08:57,181:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-07-29 13:08:57,181:DEBUG:abstractprotocol:decode@431: Got defn ['BigHex2Short:r/100', 2, 'Total Battery Voltage', 'V']
2022-07-29 13:08:57,181:DEBUG:abstractprotocol:process_response@102: Got template r/100 for Total Battery Voltage b''
2022-07-29 13:08:57,181:DEBUG:abstractprotocol:process_response@103: Processing data_type: BigHex2Short for data_name: Total Battery Voltage, raw_value b''
2022-07-29 13:08:57,181:DEBUG:abstractprotocol:process_response@175: Processing format string BigHex2Short(raw_value)
2022-07-29 13:08:57,182:INFO:protocol_helpers:BigHex2Short@148: Hex encoded value must be 2 bytes long. Was 0 length
2022-07-29 13:08:57,182:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-07-29 13:08:57,182:DEBUG:abstractprotocol:decode@431: Got defn ['BigHex2Short:r/1000', 2, 'Average Cell Voltage', 'V']
2022-07-29 13:08:57,182:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Average Cell Voltage b''
2022-07-29 13:08:57,182:DEBUG:abstractprotocol:process_response@103: Processing data_type: BigHex2Short for data_name: Average Cell Voltage, raw_value b''
2022-07-29 13:08:57,182:DEBUG:abstractprotocol:process_response@175: Processing format string BigHex2Short(raw_value)
2022-07-29 13:08:57,183:INFO:protocol_helpers:BigHex2Short@148: Hex encoded value must be 2 bytes long. Was 0 length
2022-07-29 13:08:57,183:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-07-29 13:08:57,183:DEBUG:abstractprotocol:decode@431: Got defn ['Hex2Int', 1, 'Number of Cells', '']
2022-07-29 13:08:57,183:DEBUG:abstractprotocol:process_response@103: Processing data_type: Hex2Int for data_name: Number of Cells, raw_value b''
2022-07-29 13:08:57,183:DEBUG:abstractprotocol:process_response@175: Processing format string Hex2Int(raw_value)
Traceback (most recent call last):
  File "/root/venv/mppsolar/bin/jkbms", line 8, in <module>
    sys.exit(main())
  File "/root/venv/mppsolar/src/mppsolar/mppsolar/__init__.py", line 417, in main
    results = _device.run_command(command=_command)
  File "/root/venv/mppsolar/src/mppsolar/mppsolar/devices/device.py", line 340, in run_command
    decoded_response = self._protocol.decode(raw_response, command)
  File "/root/venv/mppsolar/src/mppsolar/mppsolar/protocols/abstractprotocol.py", line 460, in decode
    data_name, value, data_units = self.process_response(
  File "/root/venv/mppsolar/src/mppsolar/mppsolar/protocols/abstractprotocol.py", line 177, in process_response
    r = eval(format_string)
  File "<string>", line 1, in <module>
  File "/root/venv/mppsolar/src/mppsolar/mppsolar/protocols/protocol_helpers.py", line 95, in Hex2Int
    answer = hexString[0]
IndexError: index out of range

preussal avatar Jul 29 '22 06:07 preussal

Could you provide the model name of your BMS and a photo of your wiring?

syssi avatar Jul 29 '22 06:07 syssi

Everything works with Bluetooth

jkbms -p "C8:47:8C:E2:90:FA" -b 148000 -n "Battery #1" -P JK02 -c getInfo


Command: getInfo - BLE Device Information inquiry
------------------------------------------------------------
Parameter                     	Value           Unit
header                        	55aaeb90       	    
record_type                   	03             	    
record_counter bytearray(b';') 
device_model                  	JK-B2A24S15P   	    
hardware_version              	10.XW          	    
software_version              	10.08          	    
up_time                       	2D20H4M60S     	    
power-on_times bytearray(b'\x03\x00\x00\x00') 
device_name                   	Battery #1     	    
device_passcode               	1234           	    
manufacturing_date            	220726         	    
serial_number                 	2042102267     	    
passcode                      	
user_data                     	Battery #1a    	    
setup_passcode

jkbms -p "C8:47:8C:E2:90:FA" -b 148000 -n "Battery #1" -P JK02 -c getCellData

Command: getCellData - BLE Cell Data inquiry
------------------------------------------------------------
Parameter                     	Value           Unit
header                        	55aaeb90       	    
record_type                   	02             	    
record_counter bytearray(b'@') 
voltage_cell01                	3.382          	V   
voltage_cell02                	3.382          	V   
voltage_cell03                	3.382          	V   
voltage_cell04                	3.383          	V   
voltage_cell05                	3.382          	V   
voltage_cell06                	3.383          	V   
voltage_cell07                	3.385          	V   
voltage_cell08                	3.383          	V   
voltage_cell09                	3.382          	V   
voltage_cell10                	3.385          	V   
voltage_cell11                	3.377          	V   
voltage_cell12                	3.378          	V   
voltage_cell13                	3.383          	V   
voltage_cell14                	3.382          	V   
voltage_cell15                	3.383          	V   
voltage_cell16                	3.381          	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   
average_cell_voltage          	3.382          	V   
delta_cell_voltage            	0.008          	V   
current_balancer              	2.566          	    
resistance_cell01             	0.065          	Ohm 
resistance_cell02             	0.061          	Ohm 
resistance_cell03             	0.064          	Ohm 
resistance_cell04             	0.064          	Ohm 
resistance_cell05             	0.065          	Ohm 
resistance_cell06             	0.064          	Ohm 
resistance_cell07             	0.066          	Ohm 
resistance_cell08             	0.07           	Ohm 
resistance_cell09             	0.064          	Ohm 
resistance_cell10             	0.062          	Ohm 
resistance_cell11             	0.063          	Ohm 
resistance_cell12             	0.063          	Ohm 
resistance_cell13             	0.062          	Ohm 
resistance_cell14             	0.062          	Ohm 
resistance_cell15             	0.064          	Ohm 
resistance_cell16             	0.07           	Ohm 
resistance_cell17             	0.0            	Ohm 
resistance_cell18             	0.0            	Ohm 
resistance_cell19             	0.0            	Ohm 
resistance_cell20             	0.0            	Ohm 
resistance_cell21             	0.0            	Ohm 
resistance_cell22             	0.0            	Ohm 
resistance_cell23             	0.0            	Ohm 
resistance_cell24             	0.0            	Ohm 
battery_voltage               	54.114         	V   
battery_power                 	0              	W   
balance_current               	0.0            	A   
battery_t1                    	32.3           	°C  
battery_t2                    	32.2           	°C  
mos_temp                      	36.0           	°C  
percent_remain bytearray(b'b') %
capacity_remain               	276.962        	Ah  
nominal_capacity              	280.0          	Ah  
cycle_count                   	0              	    
cycle_capacity                	0.482          	Ah  
time                          	2D20H38M18S    	    
current_charge                	0.003          	    
current_discharge             	0.0          

USB RS485 Connector Yellow -> A White -> B Black -> None

preussal avatar Jul 29 '22 07:07 preussal

@preussal I saw somewhere someone complaining that the JK BMS RS485 adapters were flaky and did not always work well and some times not at all. They switched to a TTL level converter and connected it directly to the RS485 port on the JK BMS.

frederickjh avatar Jul 29 '22 07:07 frederickjh

i Try the other one now

Same result.

preussal avatar Jul 29 '22 07:07 preussal

Interesting, I exchanged A and B. So Cabling Yellow -> B White -> A

jkbms -p /dev/ttyUSB1 -n "Battery2" -P JK485 -D

2022-07-29 14:53:17,196:INFO:__init__:main@223: Solar Device Command Utility, version: 0.13.0, add postgres support from skoky
2022-07-29 14:53:17,197:DEBUG:__init__:main@237: MqttBroker(name='localhost', port=1883, username=None, password=None, results_topic='jkbms', mqttc=<paho.mqtt.client.Client object at 0xffff82b2ac40>, _isConnected=False)
2022-07-29 14:53:17,197:DEBUG:__init__:main@239: udp port 5555
2022-07-29 14:53:17,197:DEBUG:__init__:main@241: Using Postgres None
2022-07-29 14:53:17,197:DEBUG:__init__:main@244: Using Mongo None with mppsolar
2022-07-29 14:53:17,197:INFO:__init__:main@346: Creating device "Battery2" (type: "jkbms") on port "/dev/ttyUSB1 (porttype=None)" using protocol "JK485"
2022-07-29 14:53:17,201:DEBUG:__init__:main@350: device_class <class 'mppsolar.devices.jkbms.jkbms'>
2022-07-29 14:53:17,202:DEBUG:device:__init__@33: __init__ args ()
2022-07-29 14:53:17,202:DEBUG:device:__init__@34: __init__ kwargs {'name': 'Battery2', 'port': '/dev/ttyUSB1', 'protocol': 'JK485', 'baud': 2400, 'porttype': None, 'mqtt_broker': MqttBroker(name='localhost', port=1883, username=None, password=None, results_topic='jkbms', mqttc=<paho.mqtt.client.Client object at 0xffff82b2ac40>, _isConnected=False), 'udp_port': '5555', 'mongo_url': None, 'mongo_db': 'mppsolar'}
2022-07-29 14:53:17,202:DEBUG:__init__:get_port_type@65: port matches ttyusb
2022-07-29 14:53:17,202:INFO:__init__:get_port@107: Using serialio for communications
2022-07-29 14:53:17,210:DEBUG:__init__:get_protocol@12: Protocol JK485
2022-07-29 14:53:17,214:DEBUG:device:__init__@38: __init__ name Battery2, port <mppsolar.inout.serialio.SerialIO object at 0xffff82b160a0>, protocol <mppsolar.protocols.jk485.jk485 object at 0xffff82b16850>
2022-07-29 14:53:17,214:DEBUG:__init__:main@399: Commands [(<mppsolar.devices.jkbms.jkbms object at 0xffff82b0ceb0>, '', '', 'screen', None, None)]
2022-07-29 14:53:17,214:INFO:__init__:main@404: Looping 1 commands
2022-07-29 14:53:17,215:INFO:__init__:main@414: Getting results from device: jkbms device - name: Battery2, port: <mppsolar.inout.serialio.SerialIO object at 0xffff82b160a0>, protocol: <mppsolar.protocols.jk485.jk485 object at 0xffff82b16850> for command: , tag: , outputs: screen
2022-07-29 14:53:17,215:INFO:device:run_command@274: Running command 
2022-07-29 14:53:17,215:INFO:jk485:get_full_command@97: Using protocol b'JK485' with 1 commands
2022-07-29 14:53:17,215:DEBUG:jkabstractprotocol:get_command_defn@106: get_command_defn for: getBalancerData
2022-07-29 14:53:17,215:DEBUG:abstractprotocol:get_command_defn@60: Processing command 'getBalancerData'
2022-07-29 14:53:17,215:DEBUG:abstractprotocol:get_command_defn@62: Found command getBalancerData in protocol b'JK485'
2022-07-29 14:53:17,215:DEBUG:jk485:get_full_command@111: cmd with header: bytearray(b'U\xaa\x00\x00\x00\x00\x00')
2022-07-29 14:53:17,215:DEBUG:jk485:get_full_command@114: cmd with header + slave address: bytearray(b'U\xaa\x01\x00\x00\x00\x00')
2022-07-29 14:53:17,215:DEBUG:jk485:get_full_command@119: cmd with command code and frame data: bytearray(b'U\xaa\x01\xff\x00\x00\x00')
2022-07-29 14:53:17,216:DEBUG:jk485:get_full_command@122: cmd with crc: bytearray(b'U\xaa\x01\xff\x00\x00\xff')
2022-07-29 14:53:17,216:INFO:device:run_command@303: full command bytearray(b'U\xaa\x01\xff\x00\x00\xff') for command getBalancerData
2022-07-29 14:53:17,216:DEBUG:jkabstractprotocol:get_command_defn@106: get_command_defn for: getBalancerData
2022-07-29 14:53:17,216:DEBUG:abstractprotocol:get_command_defn@60: Processing command 'getBalancerData'
2022-07-29 14:53:17,216:DEBUG:abstractprotocol:get_command_defn@62: Found command getBalancerData in protocol b'JK485'
2022-07-29 14:53:17,216:DEBUG:serialio:send_and_receive@19: port /dev/ttyUSB1, baudrate 2400
2022-07-29 14:53:17,223:DEBUG:serialio:send_and_receive@22: Executing command via serialio...
2022-07-29 14:53:18,368:DEBUG:serialio:send_and_receive@30: serial response was: b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xff\x01'
2022-07-29 14:53:18,371:DEBUG:device:run_command@322: Send and Receive Response b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xff\x01'
2022-07-29 14:53:18,371:INFO:abstractprotocol:decode@196: response passed to decode: b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xff\x01'
2022-07-29 14:53:18,374:DEBUG:jkabstractprotocol:get_command_defn@106: get_command_defn for: getBalancerData
2022-07-29 14:53:18,374:DEBUG:abstractprotocol:get_command_defn@60: Processing command 'getBalancerData'
2022-07-29 14:53:18,374:DEBUG:abstractprotocol:get_command_defn@62: Found command getBalancerData in protocol b'JK485'
2022-07-29 14:53:18,375:INFO:abstractprotocol:decode@236: Processing response of type POSITIONAL
2022-07-29 14:53:18,375:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['Hex2Str', 2, 'Header', '']
2022-07-29 14:53:18,375:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['Hex2Str', 1, 'Slave Address', '']
2022-07-29 14:53:18,376:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['Hex2Str', 1, 'Command Code', '']
2022-07-29 14:53:18,376:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/100', 2, 'Total Battery Voltage', 'V']
2022-07-29 14:53:18,376:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Average Cell Voltage', 'V']
2022-07-29 14:53:18,376:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['Hex2Int', 1, 'Number of Cells', '']
2022-07-29 14:53:18,377:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['Hex2Int', 1, 'Highest Cell', '']
2022-07-29 14:53:18,377:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['Hex2Int', 1, 'Lowest Cell', '']
2022-07-29 14:53:18,377:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['Hex2Str', 1, 'Charging / Discharging', '']
2022-07-29 14:53:18,377:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['Hex2Str', 1, 'Alarm - todo', '']
2022-07-29 14:53:18,378:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Difference', 'V']
2022-07-29 14:53:18,378:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Balance Current', 'A']
2022-07-29 14:53:18,378:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Balance Trigger Voltage', 'V']
2022-07-29 14:53:18,379:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Max Balance Current', 'A']
2022-07-29 14:53:18,379:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['Hex2Str', 1, 'Balance On / Off', '']
2022-07-29 14:53:18,379:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['Hex2Int', 1, 'Set Number of Cells', '']
2022-07-29 14:53:18,379:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell01', 'V']
2022-07-29 14:53:18,380:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell02', 'V']
2022-07-29 14:53:18,380:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell03', 'V']
2022-07-29 14:53:18,380:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell04', 'V']
2022-07-29 14:53:18,380:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell05', 'V']
2022-07-29 14:53:18,380:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell06', 'V']
2022-07-29 14:53:18,380:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell07', 'V']
2022-07-29 14:53:18,380:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell08', 'V']
2022-07-29 14:53:18,380:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell09', 'V']
2022-07-29 14:53:18,380:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell10', 'V']
2022-07-29 14:53:18,381:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell11', 'V']
2022-07-29 14:53:18,381:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell12', 'V']
2022-07-29 14:53:18,381:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell13', 'V']
2022-07-29 14:53:18,381:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell14', 'V']
2022-07-29 14:53:18,381:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell15', 'V']
2022-07-29 14:53:18,381:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell16', 'V']
2022-07-29 14:53:18,381:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell17', 'V']
2022-07-29 14:53:18,381:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell18', 'V']
2022-07-29 14:53:18,382:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell19', 'V']
2022-07-29 14:53:18,382:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell20', 'V']
2022-07-29 14:53:18,382:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell21', 'V']
2022-07-29 14:53:18,382:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell22', 'V']
2022-07-29 14:53:18,382:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell23', 'V']
2022-07-29 14:53:18,382:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell24', 'V']
2022-07-29 14:53:18,382:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short', 2, 'Temperature', '°C']
2022-07-29 14:53:18,382:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['Hex2Str', 1, 'Checksum', '']
2022-07-29 14:53:18,382:DEBUG:abstractprotocol:decode@240: trimmed and split responses: [b'\x00\x00', b'\x00', b'\x00', b'\x00\x00', b'\x00\x00', b'\x00', b'\x00', b'\x00', b'\x00', b'\x00', b'\x00\x00', b'\x00\x00', b'\x00\x00', b'\x00\x00', b'\x00', b'\x00', b'\x00\x00', b'\x00\x00', b'\x00\x00', b'\x00\x00', b'\x00\x00', b'\x00\x00', b'\x00\x00', b'\x00\x00', b'\x00\x00', b'\x00\x00', b'\x00\x00', b'\x00\x00', b'\x00\x00', b'\x00\x00', b'\x00\x00', b'\x00\x00', b'\x00\x00', b'\x00\x00', b'\x00\x00', b'\x00\x00', b'\x00\x00', b'\x00\x00', b'\x00\x00', b'\x00\x00', b'\x00\x00', b'\x00', b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xff\x01']
2022-07-29 14:53:18,383:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-07-29 14:53:18,383:DEBUG:abstractprotocol:decode@431: Got defn ['Hex2Str', 2, 'Header', '']
2022-07-29 14:53:18,383:DEBUG:abstractprotocol:process_response@103: Processing data_type: Hex2Str for data_name: Header, raw_value b'\x00\x00'
2022-07-29 14:53:18,383:DEBUG:abstractprotocol:process_response@175: Processing format string Hex2Str(raw_value)
2022-07-29 14:53:18,383:DEBUG:protocol_helpers:Hex2Str@110: Hex b'\x00\x00' decoded to 0000
2022-07-29 14:53:18,384:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-07-29 14:53:18,384:DEBUG:abstractprotocol:decode@431: Got defn ['Hex2Str', 1, 'Slave Address', '']
2022-07-29 14:53:18,384:DEBUG:abstractprotocol:process_response@103: Processing data_type: Hex2Str for data_name: Slave Address, raw_value b'\x00'
2022-07-29 14:53:18,384:DEBUG:abstractprotocol:process_response@175: Processing format string Hex2Str(raw_value)
2022-07-29 14:53:18,384:DEBUG:protocol_helpers:Hex2Str@110: Hex b'\x00' decoded to 00
2022-07-29 14:53:18,384:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-07-29 14:53:18,384:DEBUG:abstractprotocol:decode@431: Got defn ['Hex2Str', 1, 'Command Code', '']
2022-07-29 14:53:18,385:DEBUG:abstractprotocol:process_response@103: Processing data_type: Hex2Str for data_name: Command Code, raw_value b'\x00'
2022-07-29 14:53:18,385:DEBUG:abstractprotocol:process_response@175: Processing format string Hex2Str(raw_value)
2022-07-29 14:53:18,385:DEBUG:protocol_helpers:Hex2Str@110: Hex b'\x00' decoded to 00
2022-07-29 14:53:18,385:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-07-29 14:53:18,385:DEBUG:abstractprotocol:decode@431: Got defn ['BigHex2Short:r/100', 2, 'Total Battery Voltage', 'V']
2022-07-29 14:53:18,385:DEBUG:abstractprotocol:process_response@102: Got template r/100 for Total Battery Voltage b'\x00\x00'
2022-07-29 14:53:18,385:DEBUG:abstractprotocol:process_response@103: Processing data_type: BigHex2Short for data_name: Total Battery Voltage, raw_value b'\x00\x00'
2022-07-29 14:53:18,385:DEBUG:abstractprotocol:process_response@175: Processing format string BigHex2Short(raw_value)
2022-07-29 14:53:18,386:DEBUG:protocol_helpers:BigHex2Short@152: Hex b'\x00\x00' 2 byte decoded to 0
2022-07-29 14:53:18,386:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-07-29 14:53:18,386:DEBUG:abstractprotocol:decode@431: Got defn ['BigHex2Short:r/1000', 2, 'Average Cell Voltage', 'V']
2022-07-29 14:53:18,386:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Average Cell Voltage b'\x00\x00'
2022-07-29 14:53:18,386:DEBUG:abstractprotocol:process_response@103: Processing data_type: BigHex2Short for data_name: Average Cell Voltage, raw_value b'\x00\x00'
2022-07-29 14:53:18,386:DEBUG:abstractprotocol:process_response@175: Processing format string BigHex2Short(raw_value)
2022-07-29 14:53:18,386:DEBUG:protocol_helpers:BigHex2Short@152: Hex b'\x00\x00' 2 byte decoded to 0
2022-07-29 14:53:18,387:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-07-29 14:53:18,387:DEBUG:abstractprotocol:decode@431: Got defn ['Hex2Int', 1, 'Number of Cells', '']
2022-07-29 14:53:18,387:DEBUG:abstractprotocol:process_response@103: Processing data_type: Hex2Int for data_name: Number of Cells, raw_value b'\x00'
2022-07-29 14:53:18,387:DEBUG:abstractprotocol:process_response@175: Processing format string Hex2Int(raw_value)
2022-07-29 14:53:18,387:DEBUG:protocol_helpers:Hex2Int@97: Hex b'\x00' decoded to 0
2022-07-29 14:53:18,387:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-07-29 14:53:18,387:DEBUG:abstractprotocol:decode@431: Got defn ['Hex2Int', 1, 'Highest Cell', '']
2022-07-29 14:53:18,387:DEBUG:abstractprotocol:process_response@103: Processing data_type: Hex2Int for data_name: Highest Cell, raw_value b'\x00'
2022-07-29 14:53:18,388:DEBUG:abstractprotocol:process_response@175: Processing format string Hex2Int(raw_value)
2022-07-29 14:53:18,388:DEBUG:protocol_helpers:Hex2Int@97: Hex b'\x00' decoded to 0
2022-07-29 14:53:18,388:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-07-29 14:53:18,388:DEBUG:abstractprotocol:decode@431: Got defn ['Hex2Int', 1, 'Lowest Cell', '']
2022-07-29 14:53:18,388:DEBUG:abstractprotocol:process_response@103: Processing data_type: Hex2Int for data_name: Lowest Cell, raw_value b'\x00'
2022-07-29 14:53:18,388:DEBUG:abstractprotocol:process_response@175: Processing format string Hex2Int(raw_value)
2022-07-29 14:53:18,388:DEBUG:protocol_helpers:Hex2Int@97: Hex b'\x00' decoded to 0
2022-07-29 14:53:18,388:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-07-29 14:53:18,389:DEBUG:abstractprotocol:decode@431: Got defn ['Hex2Str', 1, 'Charging / Discharging', '']
2022-07-29 14:53:18,389:DEBUG:abstractprotocol:process_response@103: Processing data_type: Hex2Str for data_name: Charging / Discharging, raw_value b'\x00'
2022-07-29 14:53:18,389:DEBUG:abstractprotocol:process_response@175: Processing format string Hex2Str(raw_value)
2022-07-29 14:53:18,389:DEBUG:protocol_helpers:Hex2Str@110: Hex b'\x00' decoded to 00
2022-07-29 14:53:18,389:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-07-29 14:53:18,389:DEBUG:abstractprotocol:decode@431: Got defn ['Hex2Str', 1, 'Alarm - todo', '']
2022-07-29 14:53:18,389:DEBUG:abstractprotocol:process_response@103: Processing data_type: Hex2Str for data_name: Alarm - todo, raw_value b'\x00'
2022-07-29 14:53:18,389:DEBUG:abstractprotocol:process_response@175: Processing format string Hex2Str(raw_value)
2022-07-29 14:53:18,390:DEBUG:protocol_helpers:Hex2Str@110: Hex b'\x00' decoded to 00
2022-07-29 14:53:18,390:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-07-29 14:53:18,390:DEBUG:abstractprotocol:decode@431: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Difference', 'V']
2022-07-29 14:53:18,390:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Voltage Difference b'\x00\x00'
2022-07-29 14:53:18,390:DEBUG:abstractprotocol:process_response@103: Processing data_type: BigHex2Short for data_name: Voltage Difference, raw_value b'\x00\x00'
2022-07-29 14:53:18,390:DEBUG:abstractprotocol:process_response@175: Processing format string BigHex2Short(raw_value)
2022-07-29 14:53:18,390:DEBUG:protocol_helpers:BigHex2Short@152: Hex b'\x00\x00' 2 byte decoded to 0
2022-07-29 14:53:18,390:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-07-29 14:53:18,391:DEBUG:abstractprotocol:decode@431: Got defn ['BigHex2Short:r/1000', 2, 'Balance Current', 'A']
2022-07-29 14:53:18,391:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Balance Current b'\x00\x00'
2022-07-29 14:53:18,391:DEBUG:abstractprotocol:process_response@103: Processing data_type: BigHex2Short for data_name: Balance Current, raw_value b'\x00\x00'
2022-07-29 14:53:18,391:DEBUG:abstractprotocol:process_response@175: Processing format string BigHex2Short(raw_value)
2022-07-29 14:53:18,391:DEBUG:protocol_helpers:BigHex2Short@152: Hex b'\x00\x00' 2 byte decoded to 0
2022-07-29 14:53:18,391:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-07-29 14:53:18,391:DEBUG:abstractprotocol:decode@431: Got defn ['BigHex2Short:r/1000', 2, 'Balance Trigger Voltage', 'V']
2022-07-29 14:53:18,391:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Balance Trigger Voltage b'\x00\x00'
2022-07-29 14:53:18,392:DEBUG:abstractprotocol:process_response@103: Processing data_type: BigHex2Short for data_name: Balance Trigger Voltage, raw_value b'\x00\x00'
2022-07-29 14:53:18,392:DEBUG:abstractprotocol:process_response@175: Processing format string BigHex2Short(raw_value)
2022-07-29 14:53:18,392:DEBUG:protocol_helpers:BigHex2Short@152: Hex b'\x00\x00' 2 byte decoded to 0
2022-07-29 14:53:18,392:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-07-29 14:53:18,392:DEBUG:abstractprotocol:decode@431: Got defn ['BigHex2Short:r/1000', 2, 'Max Balance Current', 'A']
2022-07-29 14:53:18,392:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Max Balance Current b'\x00\x00'
2022-07-29 14:53:18,392:DEBUG:abstractprotocol:process_response@103: Processing data_type: BigHex2Short for data_name: Max Balance Current, raw_value b'\x00\x00'
2022-07-29 14:53:18,392:DEBUG:abstractprotocol:process_response@175: Processing format string BigHex2Short(raw_value)
2022-07-29 14:53:18,392:DEBUG:protocol_helpers:BigHex2Short@152: Hex b'\x00\x00' 2 byte decoded to 0
2022-07-29 14:53:18,393:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-07-29 14:53:18,393:DEBUG:abstractprotocol:decode@431: Got defn ['Hex2Str', 1, 'Balance On / Off', '']
2022-07-29 14:53:18,393:DEBUG:abstractprotocol:process_response@103: Processing data_type: Hex2Str for data_name: Balance On / Off, raw_value b'\x00'
2022-07-29 14:53:18,393:DEBUG:abstractprotocol:process_response@175: Processing format string Hex2Str(raw_value)
2022-07-29 14:53:18,393:DEBUG:protocol_helpers:Hex2Str@110: Hex b'\x00' decoded to 00
2022-07-29 14:53:18,393:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-07-29 14:53:18,393:DEBUG:abstractprotocol:decode@431: Got defn ['Hex2Int', 1, 'Set Number of Cells', '']
2022-07-29 14:53:18,393:DEBUG:abstractprotocol:process_response@103: Processing data_type: Hex2Int for data_name: Set Number of Cells, raw_value b'\x00'
2022-07-29 14:53:18,393:DEBUG:abstractprotocol:process_response@175: Processing format string Hex2Int(raw_value)
2022-07-29 14:53:18,394:DEBUG:protocol_helpers:Hex2Int@97: Hex b'\x00' decoded to 0
2022-07-29 14:53:18,394:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-07-29 14:53:18,394:DEBUG:abstractprotocol:decode@431: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell01', 'V']
2022-07-29 14:53:18,394:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Voltage Cell01 b'\x00\x00'
2022-07-29 14:53:18,394:DEBUG:abstractprotocol:process_response@103: Processing data_type: BigHex2Short for data_name: Voltage Cell01, raw_value b'\x00\x00'
2022-07-29 14:53:18,394:DEBUG:abstractprotocol:process_response@175: Processing format string BigHex2Short(raw_value)
2022-07-29 14:53:18,394:DEBUG:protocol_helpers:BigHex2Short@152: Hex b'\x00\x00' 2 byte decoded to 0
2022-07-29 14:53:18,394:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-07-29 14:53:18,395:DEBUG:abstractprotocol:decode@431: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell02', 'V']
2022-07-29 14:53:18,395:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Voltage Cell02 b'\x00\x00'
2022-07-29 14:53:18,395:DEBUG:abstractprotocol:process_response@103: Processing data_type: BigHex2Short for data_name: Voltage Cell02, raw_value b'\x00\x00'
2022-07-29 14:53:18,395:DEBUG:abstractprotocol:process_response@175: Processing format string BigHex2Short(raw_value)
2022-07-29 14:53:18,395:DEBUG:protocol_helpers:BigHex2Short@152: Hex b'\x00\x00' 2 byte decoded to 0
2022-07-29 14:53:18,395:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-07-29 14:53:18,395:DEBUG:abstractprotocol:decode@431: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell03', 'V']
2022-07-29 14:53:18,395:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Voltage Cell03 b'\x00\x00'
2022-07-29 14:53:18,396:DEBUG:abstractprotocol:process_response@103: Processing data_type: BigHex2Short for data_name: Voltage Cell03, raw_value b'\x00\x00'
2022-07-29 14:53:18,396:DEBUG:abstractprotocol:process_response@175: Processing format string BigHex2Short(raw_value)
2022-07-29 14:53:18,396:DEBUG:protocol_helpers:BigHex2Short@152: Hex b'\x00\x00' 2 byte decoded to 0
2022-07-29 14:53:18,396:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-07-29 14:53:18,396:DEBUG:abstractprotocol:decode@431: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell04', 'V']
2022-07-29 14:53:18,396:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Voltage Cell04 b'\x00\x00'
2022-07-29 14:53:18,396:DEBUG:abstractprotocol:process_response@103: Processing data_type: BigHex2Short for data_name: Voltage Cell04, raw_value b'\x00\x00'
2022-07-29 14:53:18,396:DEBUG:abstractprotocol:process_response@175: Processing format string BigHex2Short(raw_value)
2022-07-29 14:53:18,396:DEBUG:protocol_helpers:BigHex2Short@152: Hex b'\x00\x00' 2 byte decoded to 0
2022-07-29 14:53:18,397:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-07-29 14:53:18,397:DEBUG:abstractprotocol:decode@431: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell05', 'V']
2022-07-29 14:53:18,397:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Voltage Cell05 b'\x00\x00'
2022-07-29 14:53:18,397:DEBUG:abstractprotocol:process_response@103: Processing data_type: BigHex2Short for data_name: Voltage Cell05, raw_value b'\x00\x00'
2022-07-29 14:53:18,397:DEBUG:abstractprotocol:process_response@175: Processing format string BigHex2Short(raw_value)
2022-07-29 14:53:18,397:DEBUG:protocol_helpers:BigHex2Short@152: Hex b'\x00\x00' 2 byte decoded to 0
2022-07-29 14:53:18,397:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-07-29 14:53:18,397:DEBUG:abstractprotocol:decode@431: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell06', 'V']
2022-07-29 14:53:18,398:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Voltage Cell06 b'\x00\x00'
2022-07-29 14:53:18,398:DEBUG:abstractprotocol:process_response@103: Processing data_type: BigHex2Short for data_name: Voltage Cell06, raw_value b'\x00\x00'
2022-07-29 14:53:18,398:DEBUG:abstractprotocol:process_response@175: Processing format string BigHex2Short(raw_value)
2022-07-29 14:53:18,398:DEBUG:protocol_helpers:BigHex2Short@152: Hex b'\x00\x00' 2 byte decoded to 0
2022-07-29 14:53:18,398:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-07-29 14:53:18,398:DEBUG:abstractprotocol:decode@431: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell07', 'V']
2022-07-29 14:53:18,398:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Voltage Cell07 b'\x00\x00'
2022-07-29 14:53:18,398:DEBUG:abstractprotocol:process_response@103: Processing data_type: BigHex2Short for data_name: Voltage Cell07, raw_value b'\x00\x00'
2022-07-29 14:53:18,398:DEBUG:abstractprotocol:process_response@175: Processing format string BigHex2Short(raw_value)
2022-07-29 14:53:18,399:DEBUG:protocol_helpers:BigHex2Short@152: Hex b'\x00\x00' 2 byte decoded to 0
2022-07-29 14:53:18,399:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-07-29 14:53:18,399:DEBUG:abstractprotocol:decode@431: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell08', 'V']
2022-07-29 14:53:18,399:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Voltage Cell08 b'\x00\x00'
2022-07-29 14:53:18,399:DEBUG:abstractprotocol:process_response@103: Processing data_type: BigHex2Short for data_name: Voltage Cell08, raw_value b'\x00\x00'
2022-07-29 14:53:18,399:DEBUG:abstractprotocol:process_response@175: Processing format string BigHex2Short(raw_value)
2022-07-29 14:53:18,399:DEBUG:protocol_helpers:BigHex2Short@152: Hex b'\x00\x00' 2 byte decoded to 0
2022-07-29 14:53:18,399:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-07-29 14:53:18,400:DEBUG:abstractprotocol:decode@431: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell09', 'V']
2022-07-29 14:53:18,400:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Voltage Cell09 b'\x00\x00'
2022-07-29 14:53:18,400:DEBUG:abstractprotocol:process_response@103: Processing data_type: BigHex2Short for data_name: Voltage Cell09, raw_value b'\x00\x00'
2022-07-29 14:53:18,400:DEBUG:abstractprotocol:process_response@175: Processing format string BigHex2Short(raw_value)
2022-07-29 14:53:18,400:DEBUG:protocol_helpers:BigHex2Short@152: Hex b'\x00\x00' 2 byte decoded to 0
2022-07-29 14:53:18,400:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-07-29 14:53:18,400:DEBUG:abstractprotocol:decode@431: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell10', 'V']
2022-07-29 14:53:18,400:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Voltage Cell10 b'\x00\x00'
2022-07-29 14:53:18,400:DEBUG:abstractprotocol:process_response@103: Processing data_type: BigHex2Short for data_name: Voltage Cell10, raw_value b'\x00\x00'
2022-07-29 14:53:18,401:DEBUG:abstractprotocol:process_response@175: Processing format string BigHex2Short(raw_value)
2022-07-29 14:53:18,401:DEBUG:protocol_helpers:BigHex2Short@152: Hex b'\x00\x00' 2 byte decoded to 0
2022-07-29 14:53:18,401:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-07-29 14:53:18,401:DEBUG:abstractprotocol:decode@431: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell11', 'V']
2022-07-29 14:53:18,401:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Voltage Cell11 b'\x00\x00'
2022-07-29 14:53:18,401:DEBUG:abstractprotocol:process_response@103: Processing data_type: BigHex2Short for data_name: Voltage Cell11, raw_value b'\x00\x00'
2022-07-29 14:53:18,401:DEBUG:abstractprotocol:process_response@175: Processing format string BigHex2Short(raw_value)
2022-07-29 14:53:18,401:DEBUG:protocol_helpers:BigHex2Short@152: Hex b'\x00\x00' 2 byte decoded to 0
2022-07-29 14:53:18,402:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-07-29 14:53:18,402:DEBUG:abstractprotocol:decode@431: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell12', 'V']
2022-07-29 14:53:18,402:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Voltage Cell12 b'\x00\x00'
2022-07-29 14:53:18,402:DEBUG:abstractprotocol:process_response@103: Processing data_type: BigHex2Short for data_name: Voltage Cell12, raw_value b'\x00\x00'
2022-07-29 14:53:18,402:DEBUG:abstractprotocol:process_response@175: Processing format string BigHex2Short(raw_value)
2022-07-29 14:53:18,402:DEBUG:protocol_helpers:BigHex2Short@152: Hex b'\x00\x00' 2 byte decoded to 0
2022-07-29 14:53:18,402:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-07-29 14:53:18,402:DEBUG:abstractprotocol:decode@431: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell13', 'V']
2022-07-29 14:53:18,402:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Voltage Cell13 b'\x00\x00'
2022-07-29 14:53:18,403:DEBUG:abstractprotocol:process_response@103: Processing data_type: BigHex2Short for data_name: Voltage Cell13, raw_value b'\x00\x00'
2022-07-29 14:53:18,403:DEBUG:abstractprotocol:process_response@175: Processing format string BigHex2Short(raw_value)
2022-07-29 14:53:18,403:DEBUG:protocol_helpers:BigHex2Short@152: Hex b'\x00\x00' 2 byte decoded to 0
2022-07-29 14:53:18,403:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-07-29 14:53:18,403:DEBUG:abstractprotocol:decode@431: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell14', 'V']
2022-07-29 14:53:18,403:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Voltage Cell14 b'\x00\x00'
2022-07-29 14:53:18,403:DEBUG:abstractprotocol:process_response@103: Processing data_type: BigHex2Short for data_name: Voltage Cell14, raw_value b'\x00\x00'
2022-07-29 14:53:18,403:DEBUG:abstractprotocol:process_response@175: Processing format string BigHex2Short(raw_value)
2022-07-29 14:53:18,404:DEBUG:protocol_helpers:BigHex2Short@152: Hex b'\x00\x00' 2 byte decoded to 0
2022-07-29 14:53:18,404:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-07-29 14:53:18,404:DEBUG:abstractprotocol:decode@431: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell15', 'V']
2022-07-29 14:53:18,404:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Voltage Cell15 b'\x00\x00'
2022-07-29 14:53:18,404:DEBUG:abstractprotocol:process_response@103: Processing data_type: BigHex2Short for data_name: Voltage Cell15, raw_value b'\x00\x00'
2022-07-29 14:53:18,404:DEBUG:abstractprotocol:process_response@175: Processing format string BigHex2Short(raw_value)
2022-07-29 14:53:18,404:DEBUG:protocol_helpers:BigHex2Short@152: Hex b'\x00\x00' 2 byte decoded to 0
2022-07-29 14:53:18,404:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-07-29 14:53:18,404:DEBUG:abstractprotocol:decode@431: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell16', 'V']
2022-07-29 14:53:18,405:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Voltage Cell16 b'\x00\x00'
2022-07-29 14:53:18,405:DEBUG:abstractprotocol:process_response@103: Processing data_type: BigHex2Short for data_name: Voltage Cell16, raw_value b'\x00\x00'
2022-07-29 14:53:18,405:DEBUG:abstractprotocol:process_response@175: Processing format string BigHex2Short(raw_value)
2022-07-29 14:53:18,405:DEBUG:protocol_helpers:BigHex2Short@152: Hex b'\x00\x00' 2 byte decoded to 0
2022-07-29 14:53:18,405:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-07-29 14:53:18,405:DEBUG:abstractprotocol:decode@431: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell17', 'V']
2022-07-29 14:53:18,405:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Voltage Cell17 b'\x00\x00'
2022-07-29 14:53:18,405:DEBUG:abstractprotocol:process_response@103: Processing data_type: BigHex2Short for data_name: Voltage Cell17, raw_value b'\x00\x00'
2022-07-29 14:53:18,405:DEBUG:abstractprotocol:process_response@175: Processing format string BigHex2Short(raw_value)
2022-07-29 14:53:18,406:DEBUG:protocol_helpers:BigHex2Short@152: Hex b'\x00\x00' 2 byte decoded to 0
2022-07-29 14:53:18,406:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-07-29 14:53:18,406:DEBUG:abstractprotocol:decode@431: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell18', 'V']
2022-07-29 14:53:18,406:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Voltage Cell18 b'\x00\x00'
2022-07-29 14:53:18,406:DEBUG:abstractprotocol:process_response@103: Processing data_type: BigHex2Short for data_name: Voltage Cell18, raw_value b'\x00\x00'
2022-07-29 14:53:18,406:DEBUG:abstractprotocol:process_response@175: Processing format string BigHex2Short(raw_value)
2022-07-29 14:53:18,406:DEBUG:protocol_helpers:BigHex2Short@152: Hex b'\x00\x00' 2 byte decoded to 0
2022-07-29 14:53:18,406:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-07-29 14:53:18,407:DEBUG:abstractprotocol:decode@431: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell19', 'V']
2022-07-29 14:53:18,407:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Voltage Cell19 b'\x00\x00'
2022-07-29 14:53:18,407:DEBUG:abstractprotocol:process_response@103: Processing data_type: BigHex2Short for data_name: Voltage Cell19, raw_value b'\x00\x00'
2022-07-29 14:53:18,407:DEBUG:abstractprotocol:process_response@175: Processing format string BigHex2Short(raw_value)
2022-07-29 14:53:18,407:DEBUG:protocol_helpers:BigHex2Short@152: Hex b'\x00\x00' 2 byte decoded to 0
2022-07-29 14:53:18,407:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-07-29 14:53:18,407:DEBUG:abstractprotocol:decode@431: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell20', 'V']
2022-07-29 14:53:18,407:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Voltage Cell20 b'\x00\x00'
2022-07-29 14:53:18,407:DEBUG:abstractprotocol:process_response@103: Processing data_type: BigHex2Short for data_name: Voltage Cell20, raw_value b'\x00\x00'
2022-07-29 14:53:18,408:DEBUG:abstractprotocol:process_response@175: Processing format string BigHex2Short(raw_value)
2022-07-29 14:53:18,408:DEBUG:protocol_helpers:BigHex2Short@152: Hex b'\x00\x00' 2 byte decoded to 0
2022-07-29 14:53:18,408:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-07-29 14:53:18,408:DEBUG:abstractprotocol:decode@431: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell21', 'V']
2022-07-29 14:53:18,408:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Voltage Cell21 b'\x00\x00'
2022-07-29 14:53:18,408:DEBUG:abstractprotocol:process_response@103: Processing data_type: BigHex2Short for data_name: Voltage Cell21, raw_value b'\x00\x00'
2022-07-29 14:53:18,408:DEBUG:abstractprotocol:process_response@175: Processing format string BigHex2Short(raw_value)
2022-07-29 14:53:18,408:DEBUG:protocol_helpers:BigHex2Short@152: Hex b'\x00\x00' 2 byte decoded to 0
2022-07-29 14:53:18,409:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-07-29 14:53:18,409:DEBUG:abstractprotocol:decode@431: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell22', 'V']
2022-07-29 14:53:18,409:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Voltage Cell22 b'\x00\x00'
2022-07-29 14:53:18,409:DEBUG:abstractprotocol:process_response@103: Processing data_type: BigHex2Short for data_name: Voltage Cell22, raw_value b'\x00\x00'
2022-07-29 14:53:18,409:DEBUG:abstractprotocol:process_response@175: Processing format string BigHex2Short(raw_value)
2022-07-29 14:53:18,409:DEBUG:protocol_helpers:BigHex2Short@152: Hex b'\x00\x00' 2 byte decoded to 0
2022-07-29 14:53:18,409:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-07-29 14:53:18,409:DEBUG:abstractprotocol:decode@431: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell23', 'V']
2022-07-29 14:53:18,410:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Voltage Cell23 b'\x00\x00'
2022-07-29 14:53:18,410:DEBUG:abstractprotocol:process_response@103: Processing data_type: BigHex2Short for data_name: Voltage Cell23, raw_value b'\x00\x00'
2022-07-29 14:53:18,410:DEBUG:abstractprotocol:process_response@175: Processing format string BigHex2Short(raw_value)
2022-07-29 14:53:18,410:DEBUG:protocol_helpers:BigHex2Short@152: Hex b'\x00\x00' 2 byte decoded to 0
2022-07-29 14:53:18,410:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-07-29 14:53:18,410:DEBUG:abstractprotocol:decode@431: Got defn ['BigHex2Short:r/1000', 2, 'Voltage Cell24', 'V']
2022-07-29 14:53:18,410:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Voltage Cell24 b'\x00\x00'
2022-07-29 14:53:18,410:DEBUG:abstractprotocol:process_response@103: Processing data_type: BigHex2Short for data_name: Voltage Cell24, raw_value b'\x00\x00'
2022-07-29 14:53:18,410:DEBUG:abstractprotocol:process_response@175: Processing format string BigHex2Short(raw_value)
2022-07-29 14:53:18,411:DEBUG:protocol_helpers:BigHex2Short@152: Hex b'\x00\x00' 2 byte decoded to 0
2022-07-29 14:53:18,411:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-07-29 14:53:18,411:DEBUG:abstractprotocol:decode@431: Got defn ['BigHex2Short', 2, 'Temperature', '°C']
2022-07-29 14:53:18,411:DEBUG:abstractprotocol:process_response@103: Processing data_type: BigHex2Short for data_name: Temperature, raw_value b'\x00\x00'
2022-07-29 14:53:18,411:DEBUG:abstractprotocol:process_response@175: Processing format string BigHex2Short(raw_value)
2022-07-29 14:53:18,411:DEBUG:protocol_helpers:BigHex2Short@152: Hex b'\x00\x00' 2 byte decoded to 0
2022-07-29 14:53:18,411:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-07-29 14:53:18,411:DEBUG:abstractprotocol:decode@431: Got defn ['Hex2Str', 1, 'Checksum', '']
2022-07-29 14:53:18,411:DEBUG:abstractprotocol:process_response@103: Processing data_type: Hex2Str for data_name: Checksum, raw_value b'\x00'
2022-07-29 14:53:18,412:DEBUG:abstractprotocol:process_response@175: Processing format string Hex2Str(raw_value)
2022-07-29 14:53:18,412:DEBUG:protocol_helpers:Hex2Str@110: Hex b'\x00' decoded to 00
2022-07-29 14:53:18,412:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-07-29 14:53:18,412:DEBUG:abstractprotocol:decode@431: Got defn ['str', 1, 'Unknown value in response 42', '']
2022-07-29 14:53:18,412:DEBUG:abstractprotocol:process_response@103: Processing data_type: str for data_name: Unknown value in response 42, raw_value b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xff\x01'
2022-07-29 14:53:18,412:DEBUG:abstractprotocol:process_response@175: Processing format string str(raw_value)
2022-07-29 14:53:18,413:INFO:device:run_command@341: Decoded response {'raw_response': ['\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥ÿ\x01', ''], '_command': 'getBalancerData', '_command_description': 'Get Balancer Data', 'Header': ['0000', ''], 'Slave Address': ['00', ''], 'Command Code': ['00', ''], 'Total Battery Voltage': [0.0, 'V'], 'Average Cell Voltage': [0.0, 'V'], 'Number of Cells': [0, ''], 'Highest Cell': [0, ''], 'Lowest Cell': [0, ''], 'Charging / Discharging': ['00', ''], 'Alarm - todo': ['00', ''], 'Voltage Difference': [0.0, 'V'], 'Balance Current': [0.0, 'A'], 'Balance Trigger Voltage': [0.0, 'V'], 'Max Balance Current': [0.0, 'A'], 'Balance On / Off': ['00', ''], 'Set Number of Cells': [0, ''], 'Voltage Cell01': [0.0, 'V'], 'Voltage Cell02': [0.0, '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': ['00', ''], 'Unknown value in response 42': ["b'\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xff\\x01'", '']}
2022-07-29 14:53:18,413:DEBUG:__init__:main@418: results: {'raw_response': ['\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥ÿ\x01', ''], '_command': 'getBalancerData', '_command_description': 'Get Balancer Data', 'Header': ['0000', ''], 'Slave Address': ['00', ''], 'Command Code': ['00', ''], 'Total Battery Voltage': [0.0, 'V'], 'Average Cell Voltage': [0.0, 'V'], 'Number of Cells': [0, ''], 'Highest Cell': [0, ''], 'Lowest Cell': [0, ''], 'Charging / Discharging': ['00', ''], 'Alarm - todo': ['00', ''], 'Voltage Difference': [0.0, 'V'], 'Balance Current': [0.0, 'A'], 'Balance Trigger Voltage': [0.0, 'V'], 'Max Balance Current': [0.0, 'A'], 'Balance On / Off': ['00', ''], 'Set Number of Cells': [0, ''], 'Voltage Cell01': [0.0, 'V'], 'Voltage Cell02': [0.0, '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': ['00', ''], 'Unknown value in response 42': ["b'\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xff\\x01'", '']}
2022-07-29 14:53:18,413:INFO:__init__:get_output@35: attempting to create output processor: screen
2022-07-29 14:53:18,415:DEBUG:screen:__init__@16: processor.screen __init__ kwargs {}
2022-07-29 14:53:18,415:DEBUG:__init__:main@424: Using output filter: None
2022-07-29 14:53:18,415:INFO:screen:output@19: Using output processor: screen
2022-07-29 14:53:18,416:DEBUG:screen:output@20: kwargs {'data': {'raw_response': ['\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥ÿ\x01', ''], '_command': 'getBalancerData', '_command_description': 'Get Balancer Data', 'Header': ['0000', ''], 'Slave Address': ['00', ''], 'Command Code': ['00', ''], 'Total Battery Voltage': [0.0, 'V'], 'Average Cell Voltage': [0.0, 'V'], 'Number of Cells': [0, ''], 'Highest Cell': [0, ''], 'Lowest Cell': [0, ''], 'Charging / Discharging': ['00', ''], 'Alarm - todo': ['00', ''], 'Voltage Difference': [0.0, 'V'], 'Balance Current': [0.0, 'A'], 'Balance Trigger Voltage': [0.0, 'V'], 'Max Balance Current': [0.0, 'A'], 'Balance On / Off': ['00', ''], 'Set Number of Cells': [0, ''], 'Voltage Cell01': [0.0, 'V'], 'Voltage Cell02': [0.0, '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': ['00', ''], 'Unknown value in response 42': ["b'\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xa5\\xff\\x01'", '']}, 'tag': '', 'mqtt_broker': MqttBroker(name='localhost', port=1883, username=None, password=None, results_topic='jkbms', mqttc=<paho.mqtt.client.Client object at 0xffff82b2ac40>, _isConnected=False), 'udp_port': '5555', 'postgres_url': None, 'mongo_url': None, 'mongo_db': 'mppsolar', 'filter': None, 'excl_filter': None, 'keep_case': False}
Command: getBalancerData - Get Balancer Data
------------------------------------------------------------
Parameter                     	Value           Unit
header                        	0000           	    
slave_address                 	00             	    
command_code                  	00             	    
total_battery_voltage         	0.0            	V   
average_cell_voltage          	0.0            	V   
number_of_cells               	0              	    
highest_cell                  	0              	    
lowest_cell                   	0              	    
charging_/_discharging        	00             	    
alarm_-_todo                  	00             	    
voltage_difference            	0.0            	V   
balance_current               	0.0            	A   
balance_trigger_voltage       	0.0            	V   
max_balance_current           	0.0            	A   
balance_on_/_off              	00             	    
set_number_of_cells           	0              	    
voltage_cell01                	0.0            	V   
voltage_cell02                	0.0            	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                      	00             	    
unknown_value_in_response_42  	b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xff\x01'	    
2022-07-29 14:53:18,417:DEBUG:__init__:main@448: Not daemon, so not looping

preussal avatar Jul 29 '22 07:07 preussal

Open JK RS485 IMG_20220729_145907_1

I can Try with this tow IMG_20220729_145943_1 IMG_20220729_150028_1

preussal avatar Jul 29 '22 08:07 preussal

Here is info from another project on connecting a TTL to the JK BMS.

frederickjh avatar Jul 29 '22 08:07 frederickjh

@preussal And this info from the Solar Assistant page about connecting the JK BMS.

frederickjh avatar Jul 29 '22 08:07 frederickjh

@preussal I saw somewhere someone complaining that the JK BMS RS485 adapters were flaky and did not always work well and some times not at all. They switched to a TTL level converter and connected it directly to the RS485 port on the JK BMS.

I meant a TTL to serial converter not a TTL to RS485 could be directly connected to the JK BMS RS485 connector on the BMS instead of using their "RS485 box" and a RS485 to USB serial adapter.

frederickjh avatar Jul 29 '22 08:07 frederickjh

@preussal Another link. This one idenitfies the pins on the TTL out socket (RS485).

frederickjh avatar Jul 29 '22 08:07 frederickjh

I support @frederickjh proposal. Feel free to remove both RS485 converters if you don't need long wires between your BMS and the computer.

This is your setup at the moment:

JK-BMS RS485 connector (UART-TTL 3.3V) <--> (UART-TTL 3.3V) JK-RS485 Module (RS485 -7V/12V logic level) <--> (RS485 -7V/12V logic level) RS485 Converter Module (UART-TTL 3.3V ) <--> (UART-TTL 3.3V ) FTDI-USB

This is the simplest solution by avoiding RS485:

JK-BMS RS485 connector (UART-TTL 3.3V) <--> (UART-TTL 3.3V ) FTDI-USB

syssi avatar Jul 29 '22 08:07 syssi

I support @frederickjh proposal. Feel free to remove both RS485 converters if you don't need long wires between your BMS and the computer.

This is your setup at the moment:

JK-BMS RS485 connector (UART-TTL 3.3V) <--> (UART-TTL 3.3V) JK-RS485 Module (RS485 -7V/12V logic level) <--> (RS485 -7V/12V logic level) RS485 Converter Module (UART-TTL 3.3V ) <--> (UART-TTL 3.3V ) FTDI-USB

This is the simplest solution by avoiding RS485:

JK-BMS RS485 connector (UART-TTL 3.3V) <--> (UART-TTL 3.3V ) FTDI-USB

Hi, So I have now tried 4 - 5 different TTL Uart adapter but I only get data garbage. I also built a BMS TTL -> TTL / RS485 -> RS485 / USB. But here, too, I only get data garbage.

I'm still waiting for two TTL Fido USB adapter. Let's see what they bring. I also tried every adapter with various Baud Rates because I saw a baud rate from 115200 in another forum.

preussal avatar Aug 26 '22 08:08 preussal

I support @frederickjh proposal. Feel free to remove both RS485 converters if you don't need long wires between your BMS and the computer.

This is your setup at the moment:

JK-BMS RS485 connector (UART-TTL 3.3V) <--> (UART-TTL 3.3V) JK-RS485 Module (RS485 -7V/12V logic level) <--> (RS485 -7V/12V logic level) RS485 Converter Module (UART-TTL 3.3V ) <--> (UART-TTL 3.3V ) FTDI-USB

This is the simplest solution by avoiding RS485:

JK-BMS RS485 connector (UART-TTL 3.3V) <--> (UART-TTL 3.3V ) FTDI-USB

Hi, So I have now tried 4 - 5 different TTL Uart adapter but I only get data garbage. I also built a BMS TTL -> TTL / RS485 -> RS485 / USB. But here, too, I only get data garbage.

I'm still waiting for two TTL Fido USB adapter. Let's see what they bring. I also tried every adapter with various Baud Rates because I saw a baud rate from 115200 in another forum.

preussal avatar Aug 26 '22 16:08 preussal

I have now found an adapter where I can at least get something back from a BMS

[Fri Aug 26 22:54:46 2022] usb 1-1.1: new full-speed USB device number 13 using xhci_hcd
[Fri Aug 26 22:54:46 2022] usb 1-1.1: New USB device found, idVendor=1a86, idProduct=7523, bcdDevice= 2.64
[Fri Aug 26 22:54:46 2022] usb 1-1.1: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[Fri Aug 26 22:54:46 2022] usb 1-1.1: Product: USB Serial
[Fri Aug 26 22:54:46 2022] ch341 1-1.1:1.0: ch341-uart converter detected
[Fri Aug 26 22:54:46 2022] usb 1-1.1: ch341-uart converter now attached to ttyUSB1

BMS 1 device_model JK-B2A24S15P
hardware_version 10.XW
software_version 10.08

jkbms -p /dev/ttyUSB1 -P JK232 -D
2022-08-26 23:01:07,463:INFO:__init__:main@223: Solar Device Command Utility, version: 0.13.1, add hass force update support from sebmueller
2022-08-26 23:01:07,463:DEBUG:__init__:main@237: MqttBroker(name='localhost', port=1883, username=None, password=None, results_topic='jkbms', mqttc=<paho.mqtt.client.Client object at 0xffff9eb5cc70>, _isConnected=False)
2022-08-26 23:01:07,464:DEBUG:__init__:main@239: udp port 5555
2022-08-26 23:01:07,464:DEBUG:__init__:main@241: Using Postgres None
2022-08-26 23:01:07,464:DEBUG:__init__:main@244: Using Mongo None with mppsolar
2022-08-26 23:01:07,464:INFO:__init__:main@346: Creating device "unnamed" (type: "jkbms") on port "/dev/ttyUSB1 (porttype=None)" using protocol "JK232"
2022-08-26 23:01:07,469:DEBUG:__init__:main@350: device_class <class 'mppsolar.devices.jkbms.jkbms'>
2022-08-26 23:01:07,469:DEBUG:device:__init__@33: __init__ args ()
2022-08-26 23:01:07,469:DEBUG:device:__init__@34: __init__ kwargs {'name': 'unnamed', 'port': '/dev/ttyUSB1', 'protocol': 'JK232', 'baud': 2400, 'porttype': None, 'mqtt_broker': MqttBroker(name='localhost', port=1883, username=None, password=None, results_topic='jkbms', mqttc=<paho.mqtt.client.Client object at 0xffff9eb5cc70>, _isConnected=False), 'udp_port': '5555', 'mongo_url': None, 'mongo_db': 'mppsolar'}
2022-08-26 23:01:07,469:DEBUG:__init__:get_port_type@65: port matches ttyusb
2022-08-26 23:01:07,469:INFO:__init__:get_port@107: Using serialio for communications
2022-08-26 23:01:07,478:DEBUG:__init__:get_protocol@12: Protocol JK232
2022-08-26 23:01:07,481:DEBUG:device:__init__@38: __init__ name unnamed, port <mppsolar.inout.serialio.SerialIO object at 0xffff9ead0f40>, protocol <mppsolar.protocols.jk232.jk232 object at 0xffff9ead0fa0>
2022-08-26 23:01:07,481:DEBUG:__init__:main@399: Commands [(<mppsolar.devices.jkbms.jkbms object at 0xffff9ead0d00>, '', '', 'screen', None, None)]
2022-08-26 23:01:07,481:INFO:__init__:main@404: Looping 1 commands
2022-08-26 23:01:07,481:INFO:__init__:main@414: Getting results from device: jkbms device - name: unnamed, port: <mppsolar.inout.serialio.SerialIO object at 0xffff9ead0f40>, protocol: <mppsolar.protocols.jk232.jk232 object at 0xffff9ead0fa0> for command: , tag: , outputs: screen
2022-08-26 23:01:07,481:INFO:device:run_command@274: Running command 
2022-08-26 23:01:07,482:INFO:jk232:get_full_command@82: Using protocol b'JK232' with 1 commands
2022-08-26 23:01:07,482:DEBUG:abstractprotocol:get_command_defn@60: Processing command 'getBalancerData'
2022-08-26 23:01:07,482:DEBUG:abstractprotocol:get_command_defn@62: Found command getBalancerData in protocol b'JK232'
2022-08-26 23:01:07,482:DEBUG:jk232:get_full_command@99: cmd with start bit: bytearray(b'\xdd\x00\x00\x00\x00\x00\x00')
2022-08-26 23:01:07,482:DEBUG:jk232:get_full_command@121: cmd with crc: bytearray(b'\xdd\xa5\x03\x00\xff\xfdw')
2022-08-26 23:01:07,482:INFO:device:run_command@303: full command bytearray(b'\xdd\xa5\x03\x00\xff\xfdw') for command getBalancerData
2022-08-26 23:01:07,482:DEBUG:abstractprotocol:get_command_defn@60: Processing command 'getBalancerData'
2022-08-26 23:01:07,482:DEBUG:abstractprotocol:get_command_defn@62: Found command getBalancerData in protocol b'JK232'
2022-08-26 23:01:07,482:DEBUG:serialio:send_and_receive@19: port /dev/ttyUSB1, baudrate 2400
2022-08-26 23:01:07,491:DEBUG:serialio:send_and_receive@22: Executing command via serialio...
2022-08-26 23:01:08,593:DEBUG:serialio:send_and_receive@30: serial response was: b''
2022-08-26 23:01:08,596:DEBUG:device:run_command@322: Send and Receive Response b''
2022-08-26 23:01:08,597:INFO:abstractprotocol:decode@196: response passed to decode: b''
2022-08-26 23:01:08,597:DEBUG:abstractprotocol:get_command_defn@60: Processing command 'getBalancerData'
2022-08-26 23:01:08,597:DEBUG:abstractprotocol:get_command_defn@62: Found command getBalancerData in protocol b'JK232'
2022-08-26 23:01:08,597:INFO:abstractprotocol:decode@236: Processing response of type POSITIONAL
2022-08-26 23:01:08,598:DEBUG:jk232:get_responses@149: get_responses: responses [b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'']
2022-08-26 23:01:08,598:DEBUG:abstractprotocol:decode@240: 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'']
2022-08-26 23:01:08,598:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 23:01:08,599:DEBUG:abstractprotocol:decode@431: Got defn ['Hex2Str', 1, 'Start Byte', '']
2022-08-26 23:01:08,599:DEBUG:abstractprotocol:process_response@103: Processing data_type: Hex2Str for data_name: Start Byte, raw_value b''
2022-08-26 23:01:08,599:DEBUG:abstractprotocol:process_response@175: Processing format string Hex2Str(raw_value)
2022-08-26 23:01:08,600:DEBUG:protocol_helpers:Hex2Str@109: Hex b'' decoded to 
2022-08-26 23:01:08,600:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 23:01:08,600:DEBUG:abstractprotocol:decode@431: Got defn ['Hex2Str', 1, 'Command Code', '']
2022-08-26 23:01:08,600:DEBUG:abstractprotocol:process_response@103: Processing data_type: Hex2Str for data_name: Command Code, raw_value b''
2022-08-26 23:01:08,601:DEBUG:abstractprotocol:process_response@175: Processing format string Hex2Str(raw_value)
2022-08-26 23:01:08,601:DEBUG:protocol_helpers:Hex2Str@109: Hex b'' decoded to 
2022-08-26 23:01:08,601:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 23:01:08,601:DEBUG:abstractprotocol:decode@431: Got defn ['Hex2Str', 1, 'Status', '']
2022-08-26 23:01:08,602:DEBUG:abstractprotocol:process_response@103: Processing data_type: Hex2Str for data_name: Status, raw_value b''
2022-08-26 23:01:08,602:DEBUG:abstractprotocol:process_response@175: Processing format string Hex2Str(raw_value)
2022-08-26 23:01:08,602:DEBUG:protocol_helpers:Hex2Str@109: Hex b'' decoded to 
2022-08-26 23:01:08,602:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 23:01:08,603:DEBUG:abstractprotocol:decode@431: Got defn ['Hex2Int', 1, 'Data Length', '']
2022-08-26 23:01:08,603:DEBUG:abstractprotocol:process_response@103: Processing data_type: Hex2Int for data_name: Data Length, raw_value b''
2022-08-26 23:01:08,603:DEBUG:abstractprotocol:process_response@175: Processing format string Hex2Int(raw_value)
Traceback (most recent call last):
  File "/root/venv/mppsolar/bin/jkbms", line 8, in <module>
    sys.exit(main())
  File "/root/venv/mppsolar/lib/python3.8/site-packages/mppsolar/__init__.py", line 417, in main
    results = _device.run_command(command=_command)
  File "/root/venv/mppsolar/lib/python3.8/site-packages/mppsolar/devices/device.py", line 340, in run_command
    decoded_response = self._protocol.decode(raw_response, command)
  File "/root/venv/mppsolar/lib/python3.8/site-packages/mppsolar/protocols/abstractprotocol.py", line 460, in decode
    data_name, value, data_units = self.process_response(
  File "/root/venv/mppsolar/lib/python3.8/site-packages/mppsolar/protocols/abstractprotocol.py", line 177, in process_response
    r = eval(format_string)
  File "<string>", line 1, in <module>
  File "/root/venv/mppsolar/lib/python3.8/site-packages/mppsolar/protocols/protocol_helpers.py", line 95, in Hex2Int
    answer = hexString[0]
IndexError: index out of range

BMS 2 device_model JK-B2A24S20P
hardware_version 10.XW
software_version 10.07

jkbms -p /dev/ttyUSB1 -P JK232 -D
2022-08-26 23:01:33,398:INFO:__init__:main@223: Solar Device Command Utility, version: 0.13.1, add hass force update support from sebmueller
2022-08-26 23:01:33,398:DEBUG:__init__:main@237: MqttBroker(name='localhost', port=1883, username=None, password=None, results_topic='jkbms', mqttc=<paho.mqtt.client.Client object at 0xffff8f89cc70>, _isConnected=False)
2022-08-26 23:01:33,398:DEBUG:__init__:main@239: udp port 5555
2022-08-26 23:01:33,398:DEBUG:__init__:main@241: Using Postgres None
2022-08-26 23:01:33,399:DEBUG:__init__:main@244: Using Mongo None with mppsolar
2022-08-26 23:01:33,399:INFO:__init__:main@346: Creating device "unnamed" (type: "jkbms") on port "/dev/ttyUSB1 (porttype=None)" using protocol "JK232"
2022-08-26 23:01:33,403:DEBUG:__init__:main@350: device_class <class 'mppsolar.devices.jkbms.jkbms'>
2022-08-26 23:01:33,403:DEBUG:device:__init__@33: __init__ args ()
2022-08-26 23:01:33,403:DEBUG:device:__init__@34: __init__ kwargs {'name': 'unnamed', 'port': '/dev/ttyUSB1', 'protocol': 'JK232', 'baud': 2400, 'porttype': None, 'mqtt_broker': MqttBroker(name='localhost', port=1883, username=None, password=None, results_topic='jkbms', mqttc=<paho.mqtt.client.Client object at 0xffff8f89cc70>, _isConnected=False), 'udp_port': '5555', 'mongo_url': None, 'mongo_db': 'mppsolar'}
2022-08-26 23:01:33,404:DEBUG:__init__:get_port_type@65: port matches ttyusb
2022-08-26 23:01:33,404:INFO:__init__:get_port@107: Using serialio for communications
2022-08-26 23:01:33,412:DEBUG:__init__:get_protocol@12: Protocol JK232
2022-08-26 23:01:33,415:DEBUG:device:__init__@38: __init__ name unnamed, port <mppsolar.inout.serialio.SerialIO object at 0xffff8f811f40>, protocol <mppsolar.protocols.jk232.jk232 object at 0xffff8f811fa0>
2022-08-26 23:01:33,415:DEBUG:__init__:main@399: Commands [(<mppsolar.devices.jkbms.jkbms object at 0xffff8f811d00>, '', '', 'screen', None, None)]
2022-08-26 23:01:33,415:INFO:__init__:main@404: Looping 1 commands
2022-08-26 23:01:33,415:INFO:__init__:main@414: Getting results from device: jkbms device - name: unnamed, port: <mppsolar.inout.serialio.SerialIO object at 0xffff8f811f40>, protocol: <mppsolar.protocols.jk232.jk232 object at 0xffff8f811fa0> for command: , tag: , outputs: screen
2022-08-26 23:01:33,415:INFO:device:run_command@274: Running command 
2022-08-26 23:01:33,416:INFO:jk232:get_full_command@82: Using protocol b'JK232' with 1 commands
2022-08-26 23:01:33,416:DEBUG:abstractprotocol:get_command_defn@60: Processing command 'getBalancerData'
2022-08-26 23:01:33,416:DEBUG:abstractprotocol:get_command_defn@62: Found command getBalancerData in protocol b'JK232'
2022-08-26 23:01:33,416:DEBUG:jk232:get_full_command@99: cmd with start bit: bytearray(b'\xdd\x00\x00\x00\x00\x00\x00')
2022-08-26 23:01:33,416:DEBUG:jk232:get_full_command@121: cmd with crc: bytearray(b'\xdd\xa5\x03\x00\xff\xfdw')
2022-08-26 23:01:33,416:INFO:device:run_command@303: full command bytearray(b'\xdd\xa5\x03\x00\xff\xfdw') for command getBalancerData
2022-08-26 23:01:33,416:DEBUG:abstractprotocol:get_command_defn@60: Processing command 'getBalancerData'
2022-08-26 23:01:33,416:DEBUG:abstractprotocol:get_command_defn@62: Found command getBalancerData in protocol b'JK232'
2022-08-26 23:01:33,416:DEBUG:serialio:send_and_receive@19: port /dev/ttyUSB1, baudrate 2400
2022-08-26 23:01:33,425:DEBUG:serialio:send_and_receive@22: Executing command via serialio...
2022-08-26 23:01:34,527:DEBUG:serialio:send_and_receive@30: serial response was: b'wi0\xff\x7f'
2022-08-26 23:01:34,530:DEBUG:device:run_command@322: Send and Receive Response b'wi0\xff\x7f'
2022-08-26 23:01:34,531:INFO:abstractprotocol:decode@196: response passed to decode: b'wi0\xff\x7f'
2022-08-26 23:01:34,531:DEBUG:abstractprotocol:get_command_defn@60: Processing command 'getBalancerData'
2022-08-26 23:01:34,531:DEBUG:abstractprotocol:get_command_defn@62: Found command getBalancerData in protocol b'JK232'
2022-08-26 23:01:34,532:INFO:abstractprotocol:decode@236: Processing response of type POSITIONAL
2022-08-26 23:01:34,532:DEBUG:jk232:get_responses@149: get_responses: responses [b'w', b'i', b'0', b'\xff', b'\x7f', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'']
2022-08-26 23:01:34,532:DEBUG:abstractprotocol:decode@240: trimmed and split responses: [b'w', b'i', b'0', b'\xff', b'\x7f', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'']
2022-08-26 23:01:34,532:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 23:01:34,533:DEBUG:abstractprotocol:decode@431: Got defn ['Hex2Str', 1, 'Start Byte', '']
2022-08-26 23:01:34,533:DEBUG:abstractprotocol:process_response@103: Processing data_type: Hex2Str for data_name: Start Byte, raw_value b'w'
2022-08-26 23:01:34,533:DEBUG:abstractprotocol:process_response@175: Processing format string Hex2Str(raw_value)
2022-08-26 23:01:34,534:DEBUG:protocol_helpers:Hex2Str@109: Hex b'w' decoded to 77
2022-08-26 23:01:34,534:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 23:01:34,534:DEBUG:abstractprotocol:decode@431: Got defn ['Hex2Str', 1, 'Command Code', '']
2022-08-26 23:01:34,534:DEBUG:abstractprotocol:process_response@103: Processing data_type: Hex2Str for data_name: Command Code, raw_value b'i'
2022-08-26 23:01:34,535:DEBUG:abstractprotocol:process_response@175: Processing format string Hex2Str(raw_value)
2022-08-26 23:01:34,535:DEBUG:protocol_helpers:Hex2Str@109: Hex b'i' decoded to 69
2022-08-26 23:01:34,535:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 23:01:34,536:DEBUG:abstractprotocol:decode@431: Got defn ['Hex2Str', 1, 'Status', '']
2022-08-26 23:01:34,536:DEBUG:abstractprotocol:process_response@103: Processing data_type: Hex2Str for data_name: Status, raw_value b'0'
2022-08-26 23:01:34,536:DEBUG:abstractprotocol:process_response@175: Processing format string Hex2Str(raw_value)
2022-08-26 23:01:34,536:DEBUG:protocol_helpers:Hex2Str@109: Hex b'0' decoded to 30
2022-08-26 23:01:34,537:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 23:01:34,537:DEBUG:abstractprotocol:decode@431: Got defn ['Hex2Int', 1, 'Data Length', '']
2022-08-26 23:01:34,537:DEBUG:abstractprotocol:process_response@103: Processing data_type: Hex2Int for data_name: Data Length, raw_value b'\xff'
2022-08-26 23:01:34,537:DEBUG:abstractprotocol:process_response@175: Processing format string Hex2Int(raw_value)
2022-08-26 23:01:34,538:DEBUG:protocol_helpers:Hex2Int@96: Hex b'\xff' decoded to 255
2022-08-26 23:01:34,538:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 23:01:34,538:DEBUG:abstractprotocol:decode@431: Got defn ['BigHex2Short:r/100', 2, 'Total Battery Voltage', 'V']
2022-08-26 23:01:34,539:DEBUG:abstractprotocol:process_response@102: Got template r/100 for Total Battery Voltage b'\x7f'
2022-08-26 23:01:34,539:DEBUG:abstractprotocol:process_response@103: Processing data_type: BigHex2Short for data_name: Total Battery Voltage, raw_value b'\x7f'
2022-08-26 23:01:34,539:DEBUG:abstractprotocol:process_response@175: Processing format string BigHex2Short(raw_value)
2022-08-26 23:01:34,539:INFO:protocol_helpers:BigHex2Short@148: Hex encoded value must be 2 bytes long. Was 1 length
2022-08-26 23:01:34,539:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 23:01:34,540:DEBUG:abstractprotocol:decode@431: Got defn ['BigHex2Short:r/100', 2, 'Total Current', 'A']
2022-08-26 23:01:34,540:DEBUG:abstractprotocol:process_response@102: Got template r/100 for Total Current b''
2022-08-26 23:01:34,540:DEBUG:abstractprotocol:process_response@103: Processing data_type: BigHex2Short for data_name: Total Current, raw_value b''
2022-08-26 23:01:34,540:DEBUG:abstractprotocol:process_response@175: Processing format string BigHex2Short(raw_value)
2022-08-26 23:01:34,540:INFO:protocol_helpers:BigHex2Short@148: Hex encoded value must be 2 bytes long. Was 0 length
2022-08-26 23:01:34,540:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 23:01:34,541:DEBUG:abstractprotocol:decode@431: Got defn ['BigHex2Short:r/100', 2, 'Remaining Capacity', 'Ah']
2022-08-26 23:01:34,541:DEBUG:abstractprotocol:process_response@102: Got template r/100 for Remaining Capacity b''
2022-08-26 23:01:34,541:DEBUG:abstractprotocol:process_response@103: Processing data_type: BigHex2Short for data_name: Remaining Capacity, raw_value b''
2022-08-26 23:01:34,541:DEBUG:abstractprotocol:process_response@175: Processing format string BigHex2Short(raw_value)
2022-08-26 23:01:34,541:INFO:protocol_helpers:BigHex2Short@148: Hex encoded value must be 2 bytes long. Was 0 length
2022-08-26 23:01:34,541:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 23:01:34,541:DEBUG:abstractprotocol:decode@431: Got defn ['BigHex2Short:r/100', 2, 'Nominal Capacity', 'Ah']
2022-08-26 23:01:34,542:DEBUG:abstractprotocol:process_response@102: Got template r/100 for Nominal Capacity b''
2022-08-26 23:01:34,542:DEBUG:abstractprotocol:process_response@103: Processing data_type: BigHex2Short for data_name: Nominal Capacity, raw_value b''
2022-08-26 23:01:34,542:DEBUG:abstractprotocol:process_response@175: Processing format string BigHex2Short(raw_value)
2022-08-26 23:01:34,542:INFO:protocol_helpers:BigHex2Short@148: Hex encoded value must be 2 bytes long. Was 0 length
2022-08-26 23:01:34,542:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 23:01:34,542:DEBUG:abstractprotocol:decode@431: Got defn ['BigHex2Short', 2, 'Cycles', 'cycles']
2022-08-26 23:01:34,543:DEBUG:abstractprotocol:process_response@103: Processing data_type: BigHex2Short for data_name: Cycles, raw_value b''
2022-08-26 23:01:34,543:DEBUG:abstractprotocol:process_response@175: Processing format string BigHex2Short(raw_value)
2022-08-26 23:01:34,543:INFO:protocol_helpers:BigHex2Short@148: Hex encoded value must be 2 bytes long. Was 0 length
2022-08-26 23:01:34,543:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 23:01:34,543:DEBUG:abstractprotocol:decode@431: Got defn ['Hex2Str', 2, 'Production Date', '']
2022-08-26 23:01:34,543:DEBUG:abstractprotocol:process_response@103: Processing data_type: Hex2Str for data_name: Production Date, raw_value b''
2022-08-26 23:01:34,544:DEBUG:abstractprotocol:process_response@175: Processing format string Hex2Str(raw_value)
2022-08-26 23:01:34,544:DEBUG:protocol_helpers:Hex2Str@109: Hex b'' decoded to 
2022-08-26 23:01:34,544:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 23:01:34,544:DEBUG:abstractprotocol:decode@431: Got defn ['Hex2Str', 2, 'Equilibrium State (TODO)', '']
2022-08-26 23:01:34,544:DEBUG:abstractprotocol:process_response@103: Processing data_type: Hex2Str for data_name: Equilibrium State (TODO), raw_value b''
2022-08-26 23:01:34,544:DEBUG:abstractprotocol:process_response@175: Processing format string Hex2Str(raw_value)
2022-08-26 23:01:34,544:DEBUG:protocol_helpers:Hex2Str@109: Hex b'' decoded to 
2022-08-26 23:01:34,545:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 23:01:34,545:DEBUG:abstractprotocol:decode@431: Got defn ['Hex2Str', 2, 'Equilibrium State 2 (TODO)', '']
2022-08-26 23:01:34,545:DEBUG:abstractprotocol:process_response@103: Processing data_type: Hex2Str for data_name: Equilibrium State 2 (TODO), raw_value b''
2022-08-26 23:01:34,545:DEBUG:abstractprotocol:process_response@175: Processing format string Hex2Str(raw_value)
2022-08-26 23:01:34,545:DEBUG:protocol_helpers:Hex2Str@109: Hex b'' decoded to 
2022-08-26 23:01:34,545:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 23:01:34,546:DEBUG:abstractprotocol:decode@431: Got defn ['Hex2Str', 2, 'Protection State (TODO)', '']
2022-08-26 23:01:34,546:DEBUG:abstractprotocol:process_response@103: Processing data_type: Hex2Str for data_name: Protection State (TODO), raw_value b''
2022-08-26 23:01:34,546:DEBUG:abstractprotocol:process_response@175: Processing format string Hex2Str(raw_value)
2022-08-26 23:01:34,546:DEBUG:protocol_helpers:Hex2Str@109: Hex b'' decoded to 
2022-08-26 23:01:34,546:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 23:01:34,546:DEBUG:abstractprotocol:decode@431: Got defn ['Hex2Str', 1, 'Keep', '']
2022-08-26 23:01:34,546:DEBUG:abstractprotocol:process_response@103: Processing data_type: Hex2Str for data_name: Keep, raw_value b''
2022-08-26 23:01:34,547:DEBUG:abstractprotocol:process_response@175: Processing format string Hex2Str(raw_value)
2022-08-26 23:01:34,547:DEBUG:protocol_helpers:Hex2Str@109: Hex b'' decoded to 
2022-08-26 23:01:34,547:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 23:01:34,547:DEBUG:abstractprotocol:decode@431: Got defn ['Hex2Int', 1, 'Remaining Battery', '%']
2022-08-26 23:01:34,547:DEBUG:abstractprotocol:process_response@103: Processing data_type: Hex2Int for data_name: Remaining Battery, raw_value b''
2022-08-26 23:01:34,547:DEBUG:abstractprotocol:process_response@175: Processing format string Hex2Int(raw_value)
Traceback (most recent call last):
  File "/root/venv/mppsolar/bin/jkbms", line 8, in <module>
    sys.exit(main())
  File "/root/venv/mppsolar/lib/python3.8/site-packages/mppsolar/__init__.py", line 417, in main
    results = _device.run_command(command=_command)
  File "/root/venv/mppsolar/lib/python3.8/site-packages/mppsolar/devices/device.py", line 340, in run_command
    decoded_response = self._protocol.decode(raw_response, command)
  File "/root/venv/mppsolar/lib/python3.8/site-packages/mppsolar/protocols/abstractprotocol.py", line 460, in decode
    data_name, value, data_units = self.process_response(
  File "/root/venv/mppsolar/lib/python3.8/site-packages/mppsolar/protocols/abstractprotocol.py", line 177, in process_response
    r = eval(format_string)
  File "<string>", line 1, in <module>
  File "/root/venv/mppsolar/lib/python3.8/site-packages/mppsolar/protocols/protocol_helpers.py", line 95, in Hex2Int
    answer = hexString[0]
IndexError: index out of range

The funny part is that I get data via Bluetooth on the BMS 1, but not on the BMS 2. But that is probably due to my Raspi 4 that has always made a bitch with Bluetooth

and here the other protocols

jkbms -p /dev/ttyUSB1 -P JK02 -D
2022-08-26 22:56:09,281:INFO:__init__:main@223: Solar Device Command Utility, version: 0.13.1, add hass force update support from sebmueller
2022-08-26 22:56:09,281:DEBUG:__init__:main@237: MqttBroker(name='localhost', port=1883, username=None, password=None, results_topic='jkbms', mqttc=<paho.mqtt.client.Client object at 0xffff96617c70>, _isConnected=False)
2022-08-26 22:56:09,281:DEBUG:__init__:main@239: udp port 5555
2022-08-26 22:56:09,281:DEBUG:__init__:main@241: Using Postgres None
2022-08-26 22:56:09,282:DEBUG:__init__:main@244: Using Mongo None with mppsolar
2022-08-26 22:56:09,282:INFO:__init__:main@346: Creating device "unnamed" (type: "jkbms") on port "/dev/ttyUSB1 (porttype=None)" using protocol "JK02"
2022-08-26 22:56:09,286:DEBUG:__init__:main@350: device_class <class 'mppsolar.devices.jkbms.jkbms'>
2022-08-26 22:56:09,286:DEBUG:device:__init__@33: __init__ args ()
2022-08-26 22:56:09,286:DEBUG:device:__init__@34: __init__ kwargs {'name': 'unnamed', 'port': '/dev/ttyUSB1', 'protocol': 'JK02', 'baud': 2400, 'porttype': None, 'mqtt_broker': MqttBroker(name='localhost', port=1883, username=None, password=None, results_topic='jkbms', mqttc=<paho.mqtt.client.Client object at 0xffff96617c70>, _isConnected=False), 'udp_port': '5555', 'mongo_url': None, 'mongo_db': 'mppsolar'}
2022-08-26 22:56:09,287:DEBUG:__init__:get_port_type@65: port matches ttyusb
2022-08-26 22:56:09,287:INFO:__init__:get_port@107: Using serialio for communications
2022-08-26 22:56:09,295:DEBUG:__init__:get_protocol@12: Protocol JK02
2022-08-26 22:56:09,299:DEBUG:device:__init__@38: __init__ name unnamed, port <mppsolar.inout.serialio.SerialIO object at 0xffff9658cf40>, protocol <mppsolar.protocols.jk02.jk02 object at 0xffff9658cfa0>
2022-08-26 22:56:09,299:DEBUG:__init__:main@399: Commands [(<mppsolar.devices.jkbms.jkbms object at 0xffff9658cd00>, '', '', 'screen', None, None)]
2022-08-26 22:56:09,299:INFO:__init__:main@404: Looping 1 commands
2022-08-26 22:56:09,300:INFO:__init__:main@414: Getting results from device: jkbms device - name: unnamed, port: <mppsolar.inout.serialio.SerialIO object at 0xffff9658cf40>, protocol: <mppsolar.protocols.jk02.jk02 object at 0xffff9658cfa0> for command: , tag: , outputs: screen
2022-08-26 22:56:09,300:INFO:device:run_command@274: Running command 
2022-08-26 22:56:09,300:INFO:jkabstractprotocol:get_full_command@73: Using protocol b'JK02' with 3 commands
2022-08-26 22:56:09,300:DEBUG:jkabstractprotocol:get_command_defn@106: get_command_defn for: getCellData
2022-08-26 22:56:09,300:DEBUG:abstractprotocol:get_command_defn@60: Processing command 'getCellData'
2022-08-26 22:56:09,300:DEBUG:abstractprotocol:get_command_defn@62: Found command getCellData in protocol b'JK02'
2022-08-26 22:56:09,300:DEBUG:jkabstractprotocol:get_full_command@80: self._command = getCellData
2022-08-26 22:56:09,300:DEBUG:jkabstractprotocol:get_full_command@91: cmd with SOR: bytearray(b'\xaaU\x90\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
2022-08-26 22:56:09,301:DEBUG:jkabstractprotocol:get_full_command@99: cmd with command code: bytearray(b'\xaaU\x90\xeb\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
2022-08-26 22:56:09,301:DEBUG:jkabstractprotocol:get_full_command@101: cmd with crc: bytearray(b'\xaaU\x90\xeb\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10')
2022-08-26 22:56:09,301:INFO:device:run_command@303: full command bytearray(b'\xaaU\x90\xeb\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10') for command getCellData
2022-08-26 22:56:09,301:DEBUG:jkabstractprotocol:get_command_defn@106: get_command_defn for: getCellData
2022-08-26 22:56:09,301:DEBUG:abstractprotocol:get_command_defn@60: Processing command 'getCellData'
2022-08-26 22:56:09,301:DEBUG:abstractprotocol:get_command_defn@62: Found command getCellData in protocol b'JK02'
2022-08-26 22:56:09,301:DEBUG:serialio:send_and_receive@19: port /dev/ttyUSB1, baudrate 2400
2022-08-26 22:56:09,308:DEBUG:serialio:send_and_receive@22: Executing command via serialio...
2022-08-26 22:56:10,412:DEBUG:serialio:send_and_receive@30: serial response was: b'\xffU\x90\xeb\xdf\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10'
2022-08-26 22:56:10,415:DEBUG:device:run_command@322: Send and Receive Response b'\xffU\x90\xeb\xdf\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10'
2022-08-26 22:56:10,416:INFO:abstractprotocol:decode@196: response passed to decode: b'\xffU\x90\xeb\xdf\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10'
2022-08-26 22:56:10,416:DEBUG:jkabstractprotocol:get_command_defn@106: get_command_defn for: getCellData
2022-08-26 22:56:10,416:DEBUG:abstractprotocol:get_command_defn@60: Processing command 'getCellData'
2022-08-26 22:56:10,416:DEBUG:abstractprotocol:get_command_defn@62: Found command getCellData in protocol b'JK02'
2022-08-26 22:56:10,417:INFO:abstractprotocol:decode@236: Processing response of type POSITIONAL
2022-08-26 22:56:10,417:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['Hex2Str', 4, 'Header', '']
2022-08-26 22:56:10,417:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['Hex2Str', 1, 'Record_Type', '']
2022-08-26 22:56:10,417:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['Hex2Int', 1, 'Record_Counter', '']
2022-08-26 22:56:10,418:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Short:r/1000', 2, 'Voltage_Cell01', 'V']
2022-08-26 22:56:10,418:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Short:r/1000', 2, 'Voltage_Cell02', 'V']
2022-08-26 22:56:10,418:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Short:r/1000', 2, 'Voltage_Cell03', 'V']
2022-08-26 22:56:10,418:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Short:r/1000', 2, 'Voltage_Cell04', 'V']
2022-08-26 22:56:10,419:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Short:r/1000', 2, 'Voltage_Cell05', 'V']
2022-08-26 22:56:10,419:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Short:r/1000', 2, 'Voltage_Cell06', 'V']
2022-08-26 22:56:10,419:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Short:r/1000', 2, 'Voltage_Cell07', 'V']
2022-08-26 22:56:10,419:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Short:r/1000', 2, 'Voltage_Cell08', 'V']
2022-08-26 22:56:10,420:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Short:r/1000', 2, 'Voltage_Cell09', 'V']
2022-08-26 22:56:10,420:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Short:r/1000', 2, 'Voltage_Cell10', 'V']
2022-08-26 22:56:10,420:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Short:r/1000', 2, 'Voltage_Cell11', 'V']
2022-08-26 22:56:10,420:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Short:r/1000', 2, 'Voltage_Cell12', 'V']
2022-08-26 22:56:10,421:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Short:r/1000', 2, 'Voltage_Cell13', 'V']
2022-08-26 22:56:10,421:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Short:r/1000', 2, 'Voltage_Cell14', 'V']
2022-08-26 22:56:10,421:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Short:r/1000', 2, 'Voltage_Cell15', 'V']
2022-08-26 22:56:10,421:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Short:r/1000', 2, 'Voltage_Cell16', 'V']
2022-08-26 22:56:10,421:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Short:r/1000', 2, 'Voltage_Cell17', 'V']
2022-08-26 22:56:10,422:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Short:r/1000', 2, 'Voltage_Cell18', 'V']
2022-08-26 22:56:10,422:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Short:r/1000', 2, 'Voltage_Cell19', 'V']
2022-08-26 22:56:10,422:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Short:r/1000', 2, 'Voltage_Cell20', 'V']
2022-08-26 22:56:10,422:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Short:r/1000', 2, 'Voltage_Cell21', 'V']
2022-08-26 22:56:10,423:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Short:r/1000', 2, 'Voltage_Cell22', 'V']
2022-08-26 22:56:10,423:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Short:r/1000', 2, 'Voltage_Cell23', 'V']
2022-08-26 22:56:10,423:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Short:r/1000', 2, 'Voltage_Cell24', 'V']
2022-08-26 22:56:10,423:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['discard', 4, 'discard1', '']
2022-08-26 22:56:10,424:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Short:r/1000', 2, 'Average_Cell_Voltage', 'V']
2022-08-26 22:56:10,424:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Short:r/1000', 2, 'Delta_Cell_Voltage', 'V']
2022-08-26 22:56:10,424:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Short:r/1000', 2, 'Current_Balancer', '']
2022-08-26 22:56:10,424:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Short:r/1000', 2, 'Resistance_Cell01', 'Ohm']
2022-08-26 22:56:10,424:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Short:r/1000', 2, 'Resistance_Cell02', 'Ohm']
2022-08-26 22:56:10,425:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Short:r/1000', 2, 'Resistance_Cell03', 'Ohm']
2022-08-26 22:56:10,425:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Short:r/1000', 2, 'Resistance_Cell04', 'Ohm']
2022-08-26 22:56:10,425:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Short:r/1000', 2, 'Resistance_Cell05', 'Ohm']
2022-08-26 22:56:10,425:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Short:r/1000', 2, 'Resistance_Cell06', 'Ohm']
2022-08-26 22:56:10,426:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Short:r/1000', 2, 'Resistance_Cell07', 'Ohm']
2022-08-26 22:56:10,426:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Short:r/1000', 2, 'Resistance_Cell08', 'Ohm']
2022-08-26 22:56:10,426:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Short:r/1000', 2, 'Resistance_Cell09', 'Ohm']
2022-08-26 22:56:10,426:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Short:r/1000', 2, 'Resistance_Cell10', 'Ohm']
2022-08-26 22:56:10,426:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Short:r/1000', 2, 'Resistance_Cell11', 'Ohm']
2022-08-26 22:56:10,427:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Short:r/1000', 2, 'Resistance_Cell12', 'Ohm']
2022-08-26 22:56:10,427:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Short:r/1000', 2, 'Resistance_Cell13', 'Ohm']
2022-08-26 22:56:10,427:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Short:r/1000', 2, 'Resistance_Cell14', 'Ohm']
2022-08-26 22:56:10,428:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Short:r/1000', 2, 'Resistance_Cell15', 'Ohm']
2022-08-26 22:56:10,428:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Short:r/1000', 2, 'Resistance_Cell16', 'Ohm']
2022-08-26 22:56:10,428:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Short:r/1000', 2, 'Resistance_Cell17', 'Ohm']
2022-08-26 22:56:10,428:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Short:r/1000', 2, 'Resistance_Cell18', 'Ohm']
2022-08-26 22:56:10,428:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Short:r/1000', 2, 'Resistance_Cell19', 'Ohm']
2022-08-26 22:56:10,429:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Short:r/1000', 2, 'Resistance_Cell20', 'Ohm']
2022-08-26 22:56:10,429:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Short:r/1000', 2, 'Resistance_Cell21', 'Ohm']
2022-08-26 22:56:10,429:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Short:r/1000', 2, 'Resistance_Cell22', 'Ohm']
2022-08-26 22:56:10,429:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Short:r/1000', 2, 'Resistance_Cell23', 'Ohm']
2022-08-26 22:56:10,429:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Short:r/1000', 2, 'Resistance_Cell24', 'Ohm']
2022-08-26 22:56:10,429:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['discard', 6, 'discard2', '']
2022-08-26 22:56:10,429:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2UInt:r/1000', 4, 'Battery_Voltage', 'V']
2022-08-26 22:56:10,429:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2UInt', 4, 'Battery_Power', 'W']
2022-08-26 22:56:10,429:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Int:r/1000', 4, 'Balance_Current', 'A']
2022-08-26 22:56:10,430:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Short:r/10', 2, 'Battery_T1', '°C']
2022-08-26 22:56:10,430:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Short:r/10', 2, 'Battery_T2', '°C']
2022-08-26 22:56:10,430:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Short:r/10', 2, 'MOS_Temp', '°C']
2022-08-26 22:56:10,430:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['discard', 4, 'discard4', '']
2022-08-26 22:56:10,430:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['discard', 1, 'discard4_1', '']
2022-08-26 22:56:10,430:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['Hex2Int', 1, 'Percent_Remain', '%']
2022-08-26 22:56:10,430:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2UInt:r/1000', 4, 'Capacity_Remain', 'Ah']
2022-08-26 22:56:10,430:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2UInt:r/1000', 4, 'Nominal_Capacity', 'Ah']
2022-08-26 22:56:10,430:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2UInt', 4, 'Cycle_Count', '']
2022-08-26 22:56:10,431:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2UInt:r/1000', 4, 'Cycle_Capacity', 'Ah']
2022-08-26 22:56:10,431:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['discard', 2, 'Unknown12', '']
2022-08-26 22:56:10,431:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['discard', 2, 'Unknown13', '']
2022-08-26 22:56:10,431:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['uptime', 3, 'Time', '']
2022-08-26 22:56:10,431:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['discard', 2, 'Unknown15', '']
2022-08-26 22:56:10,431:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['discard', 2, 'Unknown16', '']
2022-08-26 22:56:10,431:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['discard', 2, 'Unknown17', '']
2022-08-26 22:56:10,431:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['discard', 12, 'discard6', '']
2022-08-26 22:56:10,432:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['discard', 2, 'Unknown18', '']
2022-08-26 22:56:10,432:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['discard', 2, 'Unknown19', '']
2022-08-26 22:56:10,432:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['discard', 2, 'Unknown20', '']
2022-08-26 22:56:10,432:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Short:r/1000', 2, 'Current_Charge', '']
2022-08-26 22:56:10,432:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Short:r/1000', 2, 'Current_Discharge', '']
2022-08-26 22:56:10,432:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['discard', 2, 'Unknown23', '']
2022-08-26 22:56:10,432:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['discard', 2, 'Unknown24', '']
2022-08-26 22:56:10,432:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['discard', 2, 'Unknown25', '']
2022-08-26 22:56:10,432:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['discard', 2, 'Unknown26', '']
2022-08-26 22:56:10,432:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['discard', 2, 'Unknown27', '']
2022-08-26 22:56:10,433:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['discard', 2, 'Unknown28', '']
2022-08-26 22:56:10,433:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['discard', 2, 'Unknown29', '']
2022-08-26 22:56:10,433:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['discard', 93, 'Unknown30', '']
2022-08-26 22:56:10,433:DEBUG:abstractprotocol:decode@240: trimmed and split responses: [b'\xffU\x90\xeb', b'\xdf', b'\x80', b'\x00\x00', b'\x00\x00', b'\x00\x00', b'\x00\x00', b'\x00\x00', b'\x00\x00', b'\x00\x10', 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'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'']
2022-08-26 22:56:10,433:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:10,433:DEBUG:abstractprotocol:decode@431: Got defn ['Hex2Str', 4, 'Header', '']
2022-08-26 22:56:10,433:DEBUG:abstractprotocol:process_response@103: Processing data_type: Hex2Str for data_name: Header, raw_value b'\xffU\x90\xeb'
2022-08-26 22:56:10,433:DEBUG:abstractprotocol:process_response@175: Processing format string Hex2Str(raw_value)
2022-08-26 22:56:10,434:DEBUG:protocol_helpers:Hex2Str@109: Hex b'\xffU\x90\xeb' decoded to ff5590eb
2022-08-26 22:56:10,434:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:10,434:DEBUG:abstractprotocol:decode@431: Got defn ['Hex2Str', 1, 'Record_Type', '']
2022-08-26 22:56:10,434:DEBUG:abstractprotocol:process_response@103: Processing data_type: Hex2Str for data_name: Record_Type, raw_value b'\xdf'
2022-08-26 22:56:10,434:DEBUG:abstractprotocol:process_response@175: Processing format string Hex2Str(raw_value)
2022-08-26 22:56:10,434:DEBUG:protocol_helpers:Hex2Str@109: Hex b'\xdf' decoded to df
2022-08-26 22:56:10,435:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:10,435:DEBUG:abstractprotocol:decode@431: Got defn ['Hex2Int', 1, 'Record_Counter', '']
2022-08-26 22:56:10,435:DEBUG:abstractprotocol:process_response@103: Processing data_type: Hex2Int for data_name: Record_Counter, raw_value b'\x80'
2022-08-26 22:56:10,435:DEBUG:abstractprotocol:process_response@175: Processing format string Hex2Int(raw_value)
2022-08-26 22:56:10,435:DEBUG:protocol_helpers:Hex2Int@96: Hex b'\x80' decoded to 128
2022-08-26 22:56:10,435:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:10,435:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Short:r/1000', 2, 'Voltage_Cell01', 'V']
2022-08-26 22:56:10,436:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Voltage_Cell01 b'\x00\x00'
2022-08-26 22:56:10,436:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Short for data_name: Voltage_Cell01, raw_value b'\x00\x00'
2022-08-26 22:56:10,436:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Short(raw_value)
2022-08-26 22:56:10,436:DEBUG:protocol_helpers:LittleHex2Short@138: Hex b'\x00\x00' 2 byte decoded to 0
2022-08-26 22:56:10,436:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:10,436:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Short:r/1000', 2, 'Voltage_Cell02', 'V']
2022-08-26 22:56:10,436:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Voltage_Cell02 b'\x00\x00'
2022-08-26 22:56:10,436:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Short for data_name: Voltage_Cell02, raw_value b'\x00\x00'
2022-08-26 22:56:10,436:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Short(raw_value)
2022-08-26 22:56:10,437:DEBUG:protocol_helpers:LittleHex2Short@138: Hex b'\x00\x00' 2 byte decoded to 0
2022-08-26 22:56:10,437:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:10,437:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Short:r/1000', 2, 'Voltage_Cell03', 'V']
2022-08-26 22:56:10,437:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Voltage_Cell03 b'\x00\x00'
2022-08-26 22:56:10,437:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Short for data_name: Voltage_Cell03, raw_value b'\x00\x00'
2022-08-26 22:56:10,437:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Short(raw_value)
2022-08-26 22:56:10,437:DEBUG:protocol_helpers:LittleHex2Short@138: Hex b'\x00\x00' 2 byte decoded to 0
2022-08-26 22:56:10,438:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:10,438:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Short:r/1000', 2, 'Voltage_Cell04', 'V']
2022-08-26 22:56:10,438:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Voltage_Cell04 b'\x00\x00'
2022-08-26 22:56:10,438:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Short for data_name: Voltage_Cell04, raw_value b'\x00\x00'
2022-08-26 22:56:10,438:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Short(raw_value)
2022-08-26 22:56:10,438:DEBUG:protocol_helpers:LittleHex2Short@138: Hex b'\x00\x00' 2 byte decoded to 0
2022-08-26 22:56:10,438:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:10,438:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Short:r/1000', 2, 'Voltage_Cell05', 'V']
2022-08-26 22:56:10,438:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Voltage_Cell05 b'\x00\x00'
2022-08-26 22:56:10,439:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Short for data_name: Voltage_Cell05, raw_value b'\x00\x00'
2022-08-26 22:56:10,439:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Short(raw_value)
2022-08-26 22:56:10,439:DEBUG:protocol_helpers:LittleHex2Short@138: Hex b'\x00\x00' 2 byte decoded to 0
2022-08-26 22:56:10,439:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:10,439:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Short:r/1000', 2, 'Voltage_Cell06', 'V']
2022-08-26 22:56:10,439:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Voltage_Cell06 b'\x00\x00'
2022-08-26 22:56:10,439:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Short for data_name: Voltage_Cell06, raw_value b'\x00\x00'
2022-08-26 22:56:10,439:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Short(raw_value)
2022-08-26 22:56:10,440:DEBUG:protocol_helpers:LittleHex2Short@138: Hex b'\x00\x00' 2 byte decoded to 0
2022-08-26 22:56:10,440:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:10,440:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Short:r/1000', 2, 'Voltage_Cell07', 'V']
2022-08-26 22:56:10,440:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Voltage_Cell07 b'\x00\x10'
2022-08-26 22:56:10,440:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Short for data_name: Voltage_Cell07, raw_value b'\x00\x10'
2022-08-26 22:56:10,440:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Short(raw_value)
2022-08-26 22:56:10,440:DEBUG:protocol_helpers:LittleHex2Short@138: Hex b'\x00\x10' 2 byte decoded to 4096
2022-08-26 22:56:10,440:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:10,441:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Short:r/1000', 2, 'Voltage_Cell08', 'V']
2022-08-26 22:56:10,441:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Voltage_Cell08 b''
2022-08-26 22:56:10,441:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Short for data_name: Voltage_Cell08, raw_value b''
2022-08-26 22:56:10,441:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Short(raw_value)
2022-08-26 22:56:10,441:INFO:protocol_helpers:LittleHex2Short@135: Hex encoded value must be 2 bytes long. Was 0 length
2022-08-26 22:56:10,441:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:10,441:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Short:r/1000', 2, 'Voltage_Cell09', 'V']
2022-08-26 22:56:10,441:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Voltage_Cell09 b''
2022-08-26 22:56:10,442:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Short for data_name: Voltage_Cell09, raw_value b''
2022-08-26 22:56:10,442:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Short(raw_value)
2022-08-26 22:56:10,442:INFO:protocol_helpers:LittleHex2Short@135: Hex encoded value must be 2 bytes long. Was 0 length
2022-08-26 22:56:10,442:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:10,442:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Short:r/1000', 2, 'Voltage_Cell10', 'V']
2022-08-26 22:56:10,442:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Voltage_Cell10 b''
2022-08-26 22:56:10,442:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Short for data_name: Voltage_Cell10, raw_value b''
2022-08-26 22:56:10,442:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Short(raw_value)
2022-08-26 22:56:10,442:INFO:protocol_helpers:LittleHex2Short@135: Hex encoded value must be 2 bytes long. Was 0 length
2022-08-26 22:56:10,443:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:10,443:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Short:r/1000', 2, 'Voltage_Cell11', 'V']
2022-08-26 22:56:10,443:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Voltage_Cell11 b''
2022-08-26 22:56:10,443:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Short for data_name: Voltage_Cell11, raw_value b''
2022-08-26 22:56:10,443:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Short(raw_value)
2022-08-26 22:56:10,443:INFO:protocol_helpers:LittleHex2Short@135: Hex encoded value must be 2 bytes long. Was 0 length
2022-08-26 22:56:10,443:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:10,444:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Short:r/1000', 2, 'Voltage_Cell12', 'V']
2022-08-26 22:56:10,444:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Voltage_Cell12 b''
2022-08-26 22:56:10,444:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Short for data_name: Voltage_Cell12, raw_value b''
2022-08-26 22:56:10,444:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Short(raw_value)
2022-08-26 22:56:10,444:INFO:protocol_helpers:LittleHex2Short@135: Hex encoded value must be 2 bytes long. Was 0 length
2022-08-26 22:56:10,444:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:10,444:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Short:r/1000', 2, 'Voltage_Cell13', 'V']
2022-08-26 22:56:10,444:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Voltage_Cell13 b''
2022-08-26 22:56:10,444:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Short for data_name: Voltage_Cell13, raw_value b''
2022-08-26 22:56:10,445:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Short(raw_value)
2022-08-26 22:56:10,445:INFO:protocol_helpers:LittleHex2Short@135: Hex encoded value must be 2 bytes long. Was 0 length
2022-08-26 22:56:10,445:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:10,445:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Short:r/1000', 2, 'Voltage_Cell14', 'V']
2022-08-26 22:56:10,445:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Voltage_Cell14 b''
2022-08-26 22:56:10,445:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Short for data_name: Voltage_Cell14, raw_value b''
2022-08-26 22:56:10,445:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Short(raw_value)
2022-08-26 22:56:10,446:INFO:protocol_helpers:LittleHex2Short@135: Hex encoded value must be 2 bytes long. Was 0 length
2022-08-26 22:56:10,446:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:10,446:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Short:r/1000', 2, 'Voltage_Cell15', 'V']
2022-08-26 22:56:10,446:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Voltage_Cell15 b''
2022-08-26 22:56:10,446:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Short for data_name: Voltage_Cell15, raw_value b''
2022-08-26 22:56:10,446:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Short(raw_value)
2022-08-26 22:56:10,446:INFO:protocol_helpers:LittleHex2Short@135: Hex encoded value must be 2 bytes long. Was 0 length
2022-08-26 22:56:10,446:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:10,447:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Short:r/1000', 2, 'Voltage_Cell16', 'V']
2022-08-26 22:56:10,447:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Voltage_Cell16 b''
2022-08-26 22:56:10,447:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Short for data_name: Voltage_Cell16, raw_value b''
2022-08-26 22:56:10,447:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Short(raw_value)
2022-08-26 22:56:10,447:INFO:protocol_helpers:LittleHex2Short@135: Hex encoded value must be 2 bytes long. Was 0 length
2022-08-26 22:56:10,447:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:10,447:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Short:r/1000', 2, 'Voltage_Cell17', 'V']
2022-08-26 22:56:10,447:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Voltage_Cell17 b''
2022-08-26 22:56:10,447:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Short for data_name: Voltage_Cell17, raw_value b''
2022-08-26 22:56:10,448:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Short(raw_value)
2022-08-26 22:56:10,448:INFO:protocol_helpers:LittleHex2Short@135: Hex encoded value must be 2 bytes long. Was 0 length
2022-08-26 22:56:10,448:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:10,448:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Short:r/1000', 2, 'Voltage_Cell18', 'V']
2022-08-26 22:56:10,448:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Voltage_Cell18 b''
2022-08-26 22:56:10,448:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Short for data_name: Voltage_Cell18, raw_value b''
2022-08-26 22:56:10,448:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Short(raw_value)
2022-08-26 22:56:10,448:INFO:protocol_helpers:LittleHex2Short@135: Hex encoded value must be 2 bytes long. Was 0 length
2022-08-26 22:56:10,449:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:10,449:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Short:r/1000', 2, 'Voltage_Cell19', 'V']
2022-08-26 22:56:10,449:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Voltage_Cell19 b''
2022-08-26 22:56:10,449:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Short for data_name: Voltage_Cell19, raw_value b''
2022-08-26 22:56:10,449:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Short(raw_value)
2022-08-26 22:56:10,449:INFO:protocol_helpers:LittleHex2Short@135: Hex encoded value must be 2 bytes long. Was 0 length
2022-08-26 22:56:10,449:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:10,449:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Short:r/1000', 2, 'Voltage_Cell20', 'V']
2022-08-26 22:56:10,449:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Voltage_Cell20 b''
2022-08-26 22:56:10,450:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Short for data_name: Voltage_Cell20, raw_value b''
2022-08-26 22:56:10,450:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Short(raw_value)
2022-08-26 22:56:10,450:INFO:protocol_helpers:LittleHex2Short@135: Hex encoded value must be 2 bytes long. Was 0 length
2022-08-26 22:56:10,450:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:10,450:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Short:r/1000', 2, 'Voltage_Cell21', 'V']
2022-08-26 22:56:10,450:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Voltage_Cell21 b''
2022-08-26 22:56:10,450:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Short for data_name: Voltage_Cell21, raw_value b''
2022-08-26 22:56:10,450:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Short(raw_value)
2022-08-26 22:56:10,450:INFO:protocol_helpers:LittleHex2Short@135: Hex encoded value must be 2 bytes long. Was 0 length
2022-08-26 22:56:10,451:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:10,451:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Short:r/1000', 2, 'Voltage_Cell22', 'V']
2022-08-26 22:56:10,451:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Voltage_Cell22 b''
2022-08-26 22:56:10,451:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Short for data_name: Voltage_Cell22, raw_value b''
2022-08-26 22:56:10,451:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Short(raw_value)
2022-08-26 22:56:10,451:INFO:protocol_helpers:LittleHex2Short@135: Hex encoded value must be 2 bytes long. Was 0 length
2022-08-26 22:56:10,451:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:10,451:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Short:r/1000', 2, 'Voltage_Cell23', 'V']
2022-08-26 22:56:10,452:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Voltage_Cell23 b''
2022-08-26 22:56:10,452:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Short for data_name: Voltage_Cell23, raw_value b''
2022-08-26 22:56:10,452:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Short(raw_value)
2022-08-26 22:56:10,452:INFO:protocol_helpers:LittleHex2Short@135: Hex encoded value must be 2 bytes long. Was 0 length
2022-08-26 22:56:10,452:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:10,452:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Short:r/1000', 2, 'Voltage_Cell24', 'V']
2022-08-26 22:56:10,452:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Voltage_Cell24 b''
2022-08-26 22:56:10,452:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Short for data_name: Voltage_Cell24, raw_value b''
2022-08-26 22:56:10,452:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Short(raw_value)
2022-08-26 22:56:10,453:INFO:protocol_helpers:LittleHex2Short@135: Hex encoded value must be 2 bytes long. Was 0 length
2022-08-26 22:56:10,453:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:10,453:DEBUG:abstractprotocol:decode@431: Got defn ['discard', 4, 'discard1', '']
2022-08-26 22:56:10,453:DEBUG:abstractprotocol:process_response@103: Processing data_type: discard for data_name: discard1, raw_value b''
2022-08-26 22:56:10,453:DEBUG:abstractprotocol:process_response@111: Discarding discard1:b''
2022-08-26 22:56:10,453:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:10,453:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Short:r/1000', 2, 'Average_Cell_Voltage', 'V']
2022-08-26 22:56:10,453:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Average_Cell_Voltage b''
2022-08-26 22:56:10,453:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Short for data_name: Average_Cell_Voltage, raw_value b''
2022-08-26 22:56:10,454:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Short(raw_value)
2022-08-26 22:56:10,454:INFO:protocol_helpers:LittleHex2Short@135: Hex encoded value must be 2 bytes long. Was 0 length
2022-08-26 22:56:10,454:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:10,454:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Short:r/1000', 2, 'Delta_Cell_Voltage', 'V']
2022-08-26 22:56:10,454:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Delta_Cell_Voltage b''
2022-08-26 22:56:10,454:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Short for data_name: Delta_Cell_Voltage, raw_value b''
2022-08-26 22:56:10,454:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Short(raw_value)
2022-08-26 22:56:10,454:INFO:protocol_helpers:LittleHex2Short@135: Hex encoded value must be 2 bytes long. Was 0 length
2022-08-26 22:56:10,455:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:10,455:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Short:r/1000', 2, 'Current_Balancer', '']
2022-08-26 22:56:10,455:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Current_Balancer b''
2022-08-26 22:56:10,455:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Short for data_name: Current_Balancer, raw_value b''
2022-08-26 22:56:10,455:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Short(raw_value)
2022-08-26 22:56:10,455:INFO:protocol_helpers:LittleHex2Short@135: Hex encoded value must be 2 bytes long. Was 0 length
2022-08-26 22:56:10,455:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:10,455:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Short:r/1000', 2, 'Resistance_Cell01', 'Ohm']
2022-08-26 22:56:10,455:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Resistance_Cell01 b''
2022-08-26 22:56:10,456:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Short for data_name: Resistance_Cell01, raw_value b''
2022-08-26 22:56:10,456:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Short(raw_value)
2022-08-26 22:56:10,456:INFO:protocol_helpers:LittleHex2Short@135: Hex encoded value must be 2 bytes long. Was 0 length
2022-08-26 22:56:10,456:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:10,456:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Short:r/1000', 2, 'Resistance_Cell02', 'Ohm']
2022-08-26 22:56:10,456:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Resistance_Cell02 b''
2022-08-26 22:56:10,456:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Short for data_name: Resistance_Cell02, raw_value b''
2022-08-26 22:56:10,456:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Short(raw_value)
2022-08-26 22:56:10,456:INFO:protocol_helpers:LittleHex2Short@135: Hex encoded value must be 2 bytes long. Was 0 length
2022-08-26 22:56:10,457:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:10,457:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Short:r/1000', 2, 'Resistance_Cell03', 'Ohm']
2022-08-26 22:56:10,457:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Resistance_Cell03 b''
2022-08-26 22:56:10,457:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Short for data_name: Resistance_Cell03, raw_value b''
2022-08-26 22:56:10,457:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Short(raw_value)
2022-08-26 22:56:10,457:INFO:protocol_helpers:LittleHex2Short@135: Hex encoded value must be 2 bytes long. Was 0 length
2022-08-26 22:56:10,457:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:10,457:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Short:r/1000', 2, 'Resistance_Cell04', 'Ohm']
2022-08-26 22:56:10,458:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Resistance_Cell04 b''
2022-08-26 22:56:10,458:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Short for data_name: Resistance_Cell04, raw_value b''
2022-08-26 22:56:10,458:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Short(raw_value)
2022-08-26 22:56:10,458:INFO:protocol_helpers:LittleHex2Short@135: Hex encoded value must be 2 bytes long. Was 0 length
2022-08-26 22:56:10,458:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:10,458:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Short:r/1000', 2, 'Resistance_Cell05', 'Ohm']
2022-08-26 22:56:10,458:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Resistance_Cell05 b''
2022-08-26 22:56:10,458:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Short for data_name: Resistance_Cell05, raw_value b''
2022-08-26 22:56:10,458:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Short(raw_value)
2022-08-26 22:56:10,459:INFO:protocol_helpers:LittleHex2Short@135: Hex encoded value must be 2 bytes long. Was 0 length
2022-08-26 22:56:10,459:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:10,459:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Short:r/1000', 2, 'Resistance_Cell06', 'Ohm']
2022-08-26 22:56:10,459:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Resistance_Cell06 b''
2022-08-26 22:56:10,459:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Short for data_name: Resistance_Cell06, raw_value b''
2022-08-26 22:56:10,459:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Short(raw_value)
2022-08-26 22:56:10,459:INFO:protocol_helpers:LittleHex2Short@135: Hex encoded value must be 2 bytes long. Was 0 length
2022-08-26 22:56:10,459:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:10,460:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Short:r/1000', 2, 'Resistance_Cell07', 'Ohm']
2022-08-26 22:56:10,460:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Resistance_Cell07 b''
2022-08-26 22:56:10,460:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Short for data_name: Resistance_Cell07, raw_value b''
2022-08-26 22:56:10,460:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Short(raw_value)
2022-08-26 22:56:10,460:INFO:protocol_helpers:LittleHex2Short@135: Hex encoded value must be 2 bytes long. Was 0 length
2022-08-26 22:56:10,460:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:10,460:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Short:r/1000', 2, 'Resistance_Cell08', 'Ohm']
2022-08-26 22:56:10,460:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Resistance_Cell08 b''
2022-08-26 22:56:10,460:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Short for data_name: Resistance_Cell08, raw_value b''
2022-08-26 22:56:10,461:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Short(raw_value)
2022-08-26 22:56:10,461:INFO:protocol_helpers:LittleHex2Short@135: Hex encoded value must be 2 bytes long. Was 0 length
2022-08-26 22:56:10,461:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:10,461:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Short:r/1000', 2, 'Resistance_Cell09', 'Ohm']
2022-08-26 22:56:10,461:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Resistance_Cell09 b''
2022-08-26 22:56:10,461:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Short for data_name: Resistance_Cell09, raw_value b''
2022-08-26 22:56:10,461:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Short(raw_value)
2022-08-26 22:56:10,461:INFO:protocol_helpers:LittleHex2Short@135: Hex encoded value must be 2 bytes long. Was 0 length
2022-08-26 22:56:10,461:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:10,462:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Short:r/1000', 2, 'Resistance_Cell10', 'Ohm']
2022-08-26 22:56:10,462:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Resistance_Cell10 b''
2022-08-26 22:56:10,462:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Short for data_name: Resistance_Cell10, raw_value b''
2022-08-26 22:56:10,462:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Short(raw_value)
2022-08-26 22:56:10,462:INFO:protocol_helpers:LittleHex2Short@135: Hex encoded value must be 2 bytes long. Was 0 length
2022-08-26 22:56:10,462:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:10,462:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Short:r/1000', 2, 'Resistance_Cell11', 'Ohm']
2022-08-26 22:56:10,462:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Resistance_Cell11 b''
2022-08-26 22:56:10,462:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Short for data_name: Resistance_Cell11, raw_value b''
2022-08-26 22:56:10,463:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Short(raw_value)
2022-08-26 22:56:10,463:INFO:protocol_helpers:LittleHex2Short@135: Hex encoded value must be 2 bytes long. Was 0 length
2022-08-26 22:56:10,463:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:10,463:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Short:r/1000', 2, 'Resistance_Cell12', 'Ohm']
2022-08-26 22:56:10,463:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Resistance_Cell12 b''
2022-08-26 22:56:10,463:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Short for data_name: Resistance_Cell12, raw_value b''
2022-08-26 22:56:10,463:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Short(raw_value)
2022-08-26 22:56:10,463:INFO:protocol_helpers:LittleHex2Short@135: Hex encoded value must be 2 bytes long. Was 0 length
2022-08-26 22:56:10,464:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:10,464:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Short:r/1000', 2, 'Resistance_Cell13', 'Ohm']
2022-08-26 22:56:10,464:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Resistance_Cell13 b''
2022-08-26 22:56:10,464:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Short for data_name: Resistance_Cell13, raw_value b''
2022-08-26 22:56:10,464:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Short(raw_value)
2022-08-26 22:56:10,464:INFO:protocol_helpers:LittleHex2Short@135: Hex encoded value must be 2 bytes long. Was 0 length
2022-08-26 22:56:10,464:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:10,464:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Short:r/1000', 2, 'Resistance_Cell14', 'Ohm']
2022-08-26 22:56:10,465:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Resistance_Cell14 b''
2022-08-26 22:56:10,465:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Short for data_name: Resistance_Cell14, raw_value b''
2022-08-26 22:56:10,465:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Short(raw_value)
2022-08-26 22:56:10,465:INFO:protocol_helpers:LittleHex2Short@135: Hex encoded value must be 2 bytes long. Was 0 length
2022-08-26 22:56:10,465:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:10,465:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Short:r/1000', 2, 'Resistance_Cell15', 'Ohm']
2022-08-26 22:56:10,465:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Resistance_Cell15 b''
2022-08-26 22:56:10,465:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Short for data_name: Resistance_Cell15, raw_value b''
2022-08-26 22:56:10,465:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Short(raw_value)
2022-08-26 22:56:10,466:INFO:protocol_helpers:LittleHex2Short@135: Hex encoded value must be 2 bytes long. Was 0 length
2022-08-26 22:56:10,466:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:10,466:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Short:r/1000', 2, 'Resistance_Cell16', 'Ohm']
2022-08-26 22:56:10,466:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Resistance_Cell16 b''
2022-08-26 22:56:10,466:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Short for data_name: Resistance_Cell16, raw_value b''
2022-08-26 22:56:10,466:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Short(raw_value)
2022-08-26 22:56:10,466:INFO:protocol_helpers:LittleHex2Short@135: Hex encoded value must be 2 bytes long. Was 0 length
2022-08-26 22:56:10,466:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:10,467:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Short:r/1000', 2, 'Resistance_Cell17', 'Ohm']
2022-08-26 22:56:10,467:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Resistance_Cell17 b''
2022-08-26 22:56:10,467:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Short for data_name: Resistance_Cell17, raw_value b''
2022-08-26 22:56:10,467:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Short(raw_value)
2022-08-26 22:56:10,467:INFO:protocol_helpers:LittleHex2Short@135: Hex encoded value must be 2 bytes long. Was 0 length
2022-08-26 22:56:10,467:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:10,467:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Short:r/1000', 2, 'Resistance_Cell18', 'Ohm']
2022-08-26 22:56:10,467:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Resistance_Cell18 b''
2022-08-26 22:56:10,467:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Short for data_name: Resistance_Cell18, raw_value b''
2022-08-26 22:56:10,468:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Short(raw_value)
2022-08-26 22:56:10,468:INFO:protocol_helpers:LittleHex2Short@135: Hex encoded value must be 2 bytes long. Was 0 length
2022-08-26 22:56:10,468:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:10,468:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Short:r/1000', 2, 'Resistance_Cell19', 'Ohm']
2022-08-26 22:56:10,468:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Resistance_Cell19 b''
2022-08-26 22:56:10,468:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Short for data_name: Resistance_Cell19, raw_value b''
2022-08-26 22:56:10,468:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Short(raw_value)
2022-08-26 22:56:10,468:INFO:protocol_helpers:LittleHex2Short@135: Hex encoded value must be 2 bytes long. Was 0 length
2022-08-26 22:56:10,469:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:10,469:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Short:r/1000', 2, 'Resistance_Cell20', 'Ohm']
2022-08-26 22:56:10,469:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Resistance_Cell20 b''
2022-08-26 22:56:10,469:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Short for data_name: Resistance_Cell20, raw_value b''
2022-08-26 22:56:10,469:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Short(raw_value)
2022-08-26 22:56:10,469:INFO:protocol_helpers:LittleHex2Short@135: Hex encoded value must be 2 bytes long. Was 0 length
2022-08-26 22:56:10,469:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:10,469:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Short:r/1000', 2, 'Resistance_Cell21', 'Ohm']
2022-08-26 22:56:10,470:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Resistance_Cell21 b''
2022-08-26 22:56:10,470:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Short for data_name: Resistance_Cell21, raw_value b''
2022-08-26 22:56:10,470:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Short(raw_value)
2022-08-26 22:56:10,470:INFO:protocol_helpers:LittleHex2Short@135: Hex encoded value must be 2 bytes long. Was 0 length
2022-08-26 22:56:10,470:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:10,470:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Short:r/1000', 2, 'Resistance_Cell22', 'Ohm']
2022-08-26 22:56:10,470:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Resistance_Cell22 b''
2022-08-26 22:56:10,470:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Short for data_name: Resistance_Cell22, raw_value b''
2022-08-26 22:56:10,470:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Short(raw_value)
2022-08-26 22:56:10,471:INFO:protocol_helpers:LittleHex2Short@135: Hex encoded value must be 2 bytes long. Was 0 length
2022-08-26 22:56:10,471:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:10,471:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Short:r/1000', 2, 'Resistance_Cell23', 'Ohm']
2022-08-26 22:56:10,471:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Resistance_Cell23 b''
2022-08-26 22:56:10,471:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Short for data_name: Resistance_Cell23, raw_value b''
2022-08-26 22:56:10,471:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Short(raw_value)
2022-08-26 22:56:10,471:INFO:protocol_helpers:LittleHex2Short@135: Hex encoded value must be 2 bytes long. Was 0 length
2022-08-26 22:56:10,471:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:10,472:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Short:r/1000', 2, 'Resistance_Cell24', 'Ohm']
2022-08-26 22:56:10,472:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Resistance_Cell24 b''
2022-08-26 22:56:10,472:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Short for data_name: Resistance_Cell24, raw_value b''
2022-08-26 22:56:10,472:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Short(raw_value)
2022-08-26 22:56:10,472:INFO:protocol_helpers:LittleHex2Short@135: Hex encoded value must be 2 bytes long. Was 0 length
2022-08-26 22:56:10,472:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:10,472:DEBUG:abstractprotocol:decode@431: Got defn ['discard', 6, 'discard2', '']
2022-08-26 22:56:10,472:DEBUG:abstractprotocol:process_response@103: Processing data_type: discard for data_name: discard2, raw_value b''
2022-08-26 22:56:10,472:DEBUG:abstractprotocol:process_response@111: Discarding discard2:b''
2022-08-26 22:56:10,473:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:10,473:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2UInt:r/1000', 4, 'Battery_Voltage', 'V']
2022-08-26 22:56:10,473:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Battery_Voltage b''
2022-08-26 22:56:10,473:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2UInt for data_name: Battery_Voltage, raw_value b''
2022-08-26 22:56:10,473:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2UInt(raw_value)
2022-08-26 22:56:10,473:INFO:protocol_helpers:LittleHex2UInt@190: Hex encoded value must be 4 bytes long. Was 0 length
2022-08-26 22:56:10,473:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:10,473:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2UInt', 4, 'Battery_Power', 'W']
2022-08-26 22:56:10,473:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2UInt for data_name: Battery_Power, raw_value b''
2022-08-26 22:56:10,474:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2UInt(raw_value)
2022-08-26 22:56:10,474:INFO:protocol_helpers:LittleHex2UInt@190: Hex encoded value must be 4 bytes long. Was 0 length
2022-08-26 22:56:10,474:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:10,474:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Int:r/1000', 4, 'Balance_Current', 'A']
2022-08-26 22:56:10,474:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Balance_Current b''
2022-08-26 22:56:10,474:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Int for data_name: Balance_Current, raw_value b''
2022-08-26 22:56:10,474:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Int(raw_value)
2022-08-26 22:56:10,474:INFO:protocol_helpers:LittleHex2Int@204: Hex encoded value must be 4 bytes long. Was 0 length
2022-08-26 22:56:10,474:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:10,475:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Short:r/10', 2, 'Battery_T1', '°C']
2022-08-26 22:56:10,475:DEBUG:abstractprotocol:process_response@102: Got template r/10 for Battery_T1 b''
2022-08-26 22:56:10,475:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Short for data_name: Battery_T1, raw_value b''
2022-08-26 22:56:10,475:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Short(raw_value)
2022-08-26 22:56:10,475:INFO:protocol_helpers:LittleHex2Short@135: Hex encoded value must be 2 bytes long. Was 0 length
2022-08-26 22:56:10,475:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:10,475:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Short:r/10', 2, 'Battery_T2', '°C']
2022-08-26 22:56:10,475:DEBUG:abstractprotocol:process_response@102: Got template r/10 for Battery_T2 b''
2022-08-26 22:56:10,476:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Short for data_name: Battery_T2, raw_value b''
2022-08-26 22:56:10,476:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Short(raw_value)
2022-08-26 22:56:10,476:INFO:protocol_helpers:LittleHex2Short@135: Hex encoded value must be 2 bytes long. Was 0 length
2022-08-26 22:56:10,476:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:10,476:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Short:r/10', 2, 'MOS_Temp', '°C']
2022-08-26 22:56:10,476:DEBUG:abstractprotocol:process_response@102: Got template r/10 for MOS_Temp b''
2022-08-26 22:56:10,476:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Short for data_name: MOS_Temp, raw_value b''
2022-08-26 22:56:10,476:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Short(raw_value)
2022-08-26 22:56:10,476:INFO:protocol_helpers:LittleHex2Short@135: Hex encoded value must be 2 bytes long. Was 0 length
2022-08-26 22:56:10,477:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:10,477:DEBUG:abstractprotocol:decode@431: Got defn ['discard', 4, 'discard4', '']
2022-08-26 22:56:10,477:DEBUG:abstractprotocol:process_response@103: Processing data_type: discard for data_name: discard4, raw_value b''
2022-08-26 22:56:10,477:DEBUG:abstractprotocol:process_response@111: Discarding discard4:b''
2022-08-26 22:56:10,477:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:10,477:DEBUG:abstractprotocol:decode@431: Got defn ['discard', 1, 'discard4_1', '']
2022-08-26 22:56:10,477:DEBUG:abstractprotocol:process_response@103: Processing data_type: discard for data_name: discard4_1, raw_value b''
2022-08-26 22:56:10,477:DEBUG:abstractprotocol:process_response@111: Discarding discard4_1:b''
2022-08-26 22:56:10,477:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:10,478:DEBUG:abstractprotocol:decode@431: Got defn ['Hex2Int', 1, 'Percent_Remain', '%']
2022-08-26 22:56:10,478:DEBUG:abstractprotocol:process_response@103: Processing data_type: Hex2Int for data_name: Percent_Remain, raw_value b''
2022-08-26 22:56:10,478:DEBUG:abstractprotocol:process_response@175: Processing format string Hex2Int(raw_value)
Traceback (most recent call last):
  File "/root/venv/mppsolar/bin/jkbms", line 8, in <module>
    sys.exit(main())
  File "/root/venv/mppsolar/lib/python3.8/site-packages/mppsolar/__init__.py", line 417, in main
    results = _device.run_command(command=_command)
  File "/root/venv/mppsolar/lib/python3.8/site-packages/mppsolar/devices/device.py", line 340, in run_command
    decoded_response = self._protocol.decode(raw_response, command)
  File "/root/venv/mppsolar/lib/python3.8/site-packages/mppsolar/protocols/abstractprotocol.py", line 460, in decode
    data_name, value, data_units = self.process_response(
  File "/root/venv/mppsolar/lib/python3.8/site-packages/mppsolar/protocols/abstractprotocol.py", line 177, in process_response
    r = eval(format_string)
  File "<string>", line 1, in <module>
  File "/root/venv/mppsolar/lib/python3.8/site-packages/mppsolar/protocols/protocol_helpers.py", line 95, in Hex2Int
    answer = hexString[0]
IndexError: index out of range

jkbms -p /dev/ttyUSB1 -P JK04 -D
2022-08-26 22:56:14,713:INFO:__init__:main@223: Solar Device Command Utility, version: 0.13.1, add hass force update support from sebmueller
2022-08-26 22:56:14,714:DEBUG:__init__:main@237: MqttBroker(name='localhost', port=1883, username=None, password=None, results_topic='jkbms', mqttc=<paho.mqtt.client.Client object at 0xffffa59a6c70>, _isConnected=False)
2022-08-26 22:56:14,714:DEBUG:__init__:main@239: udp port 5555
2022-08-26 22:56:14,714:DEBUG:__init__:main@241: Using Postgres None
2022-08-26 22:56:14,714:DEBUG:__init__:main@244: Using Mongo None with mppsolar
2022-08-26 22:56:14,714:INFO:__init__:main@346: Creating device "unnamed" (type: "jkbms") on port "/dev/ttyUSB1 (porttype=None)" using protocol "JK04"
2022-08-26 22:56:14,718:DEBUG:__init__:main@350: device_class <class 'mppsolar.devices.jkbms.jkbms'>
2022-08-26 22:56:14,719:DEBUG:device:__init__@33: __init__ args ()
2022-08-26 22:56:14,719:DEBUG:device:__init__@34: __init__ kwargs {'name': 'unnamed', 'port': '/dev/ttyUSB1', 'protocol': 'JK04', 'baud': 2400, 'porttype': None, 'mqtt_broker': MqttBroker(name='localhost', port=1883, username=None, password=None, results_topic='jkbms', mqttc=<paho.mqtt.client.Client object at 0xffffa59a6c70>, _isConnected=False), 'udp_port': '5555', 'mongo_url': None, 'mongo_db': 'mppsolar'}
2022-08-26 22:56:14,719:DEBUG:__init__:get_port_type@65: port matches ttyusb
2022-08-26 22:56:14,719:INFO:__init__:get_port@107: Using serialio for communications
2022-08-26 22:56:14,727:DEBUG:__init__:get_protocol@12: Protocol JK04
2022-08-26 22:56:14,731:DEBUG:device:__init__@38: __init__ name unnamed, port <mppsolar.inout.serialio.SerialIO object at 0xffffa591bf40>, protocol <mppsolar.protocols.jk04.jk04 object at 0xffffa591bfa0>
2022-08-26 22:56:14,731:DEBUG:__init__:main@399: Commands [(<mppsolar.devices.jkbms.jkbms object at 0xffffa591bd00>, '', '', 'screen', None, None)]
2022-08-26 22:56:14,732:INFO:__init__:main@404: Looping 1 commands
2022-08-26 22:56:14,732:INFO:__init__:main@414: Getting results from device: jkbms device - name: unnamed, port: <mppsolar.inout.serialio.SerialIO object at 0xffffa591bf40>, protocol: <mppsolar.protocols.jk04.jk04 object at 0xffffa591bfa0> for command: , tag: , outputs: screen
2022-08-26 22:56:14,732:INFO:device:run_command@274: Running command 
2022-08-26 22:56:14,732:INFO:jkabstractprotocol:get_full_command@73: Using protocol b'JK04' with 2 commands
2022-08-26 22:56:14,732:DEBUG:jkabstractprotocol:get_command_defn@106: get_command_defn for: getCellData
2022-08-26 22:56:14,732:DEBUG:abstractprotocol:get_command_defn@60: Processing command 'getCellData'
2022-08-26 22:56:14,732:DEBUG:abstractprotocol:get_command_defn@62: Found command getCellData in protocol b'JK04'
2022-08-26 22:56:14,732:DEBUG:jkabstractprotocol:get_full_command@80: self._command = getCellData
2022-08-26 22:56:14,733:DEBUG:jkabstractprotocol:get_full_command@91: cmd with SOR: bytearray(b'\xaaU\x90\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
2022-08-26 22:56:14,733:DEBUG:jkabstractprotocol:get_full_command@99: cmd with command code: bytearray(b'\xaaU\x90\xeb\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
2022-08-26 22:56:14,733:DEBUG:jkabstractprotocol:get_full_command@101: cmd with crc: bytearray(b'\xaaU\x90\xeb\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10')
2022-08-26 22:56:14,733:INFO:device:run_command@303: full command bytearray(b'\xaaU\x90\xeb\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10') for command getCellData
2022-08-26 22:56:14,733:DEBUG:jkabstractprotocol:get_command_defn@106: get_command_defn for: getCellData
2022-08-26 22:56:14,733:DEBUG:abstractprotocol:get_command_defn@60: Processing command 'getCellData'
2022-08-26 22:56:14,733:DEBUG:abstractprotocol:get_command_defn@62: Found command getCellData in protocol b'JK04'
2022-08-26 22:56:14,733:DEBUG:serialio:send_and_receive@19: port /dev/ttyUSB1, baudrate 2400
2022-08-26 22:56:14,741:DEBUG:serialio:send_and_receive@22: Executing command via serialio...
2022-08-26 22:56:15,845:DEBUG:serialio:send_and_receive@30: serial response was: b'\xffU\xb6\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10'
2022-08-26 22:56:15,848:DEBUG:device:run_command@322: Send and Receive Response b'\xffU\xb6\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10'
2022-08-26 22:56:15,849:INFO:abstractprotocol:decode@196: response passed to decode: b'\xffU\xb6\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10'
2022-08-26 22:56:15,849:DEBUG:jkabstractprotocol:get_command_defn@106: get_command_defn for: getCellData
2022-08-26 22:56:15,849:DEBUG:abstractprotocol:get_command_defn@60: Processing command 'getCellData'
2022-08-26 22:56:15,850:DEBUG:abstractprotocol:get_command_defn@62: Found command getCellData in protocol b'JK04'
2022-08-26 22:56:15,850:INFO:abstractprotocol:decode@236: Processing response of type POSITIONAL
2022-08-26 22:56:15,850:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['Hex2Str', 4, 'Header', '']
2022-08-26 22:56:15,851:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['Hex2Str', 1, 'Record Type', '']
2022-08-26 22:56:15,851:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['Hex2Int', 1, 'Record Counter', '']
2022-08-26 22:56:15,851:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Float', 4, 'Voltage Cell01', 'V']
2022-08-26 22:56:15,852:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Float', 4, 'Voltage Cell02', 'V']
2022-08-26 22:56:15,852:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Float', 4, 'Voltage Cell03', 'V']
2022-08-26 22:56:15,852:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Float', 4, 'Voltage Cell04', 'V']
2022-08-26 22:56:15,852:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Float', 4, 'Voltage Cell05', 'V']
2022-08-26 22:56:15,853:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Float', 4, 'Voltage Cell06', 'V']
2022-08-26 22:56:15,853:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Float', 4, 'Voltage Cell07', 'V']
2022-08-26 22:56:15,853:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Float', 4, 'Voltage Cell08', 'V']
2022-08-26 22:56:15,853:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Float', 4, 'Voltage Cell09', 'V']
2022-08-26 22:56:15,854:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Float', 4, 'Voltage Cell10', 'V']
2022-08-26 22:56:15,854:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Float', 4, 'Voltage Cell11', 'V']
2022-08-26 22:56:15,854:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Float', 4, 'Voltage Cell12', 'V']
2022-08-26 22:56:15,855:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Float', 4, 'Voltage Cell13', 'V']
2022-08-26 22:56:15,855:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Float', 4, 'Voltage Cell14', 'V']
2022-08-26 22:56:15,855:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Float', 4, 'Voltage Cell15', 'V']
2022-08-26 22:56:15,855:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Float', 4, 'Voltage Cell16', 'V']
2022-08-26 22:56:15,856:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Float', 4, 'Voltage Cell17', 'V']
2022-08-26 22:56:15,856:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Float', 4, 'Voltage Cell18', 'V']
2022-08-26 22:56:15,856:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Float', 4, 'Voltage Cell19', 'V']
2022-08-26 22:56:15,856:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Float', 4, 'Voltage Cell20', 'V']
2022-08-26 22:56:15,856:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Float', 4, 'Voltage Cell21', 'V']
2022-08-26 22:56:15,856:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Float', 4, 'Voltage Cell22', 'V']
2022-08-26 22:56:15,856:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Float', 4, 'Voltage Cell23', 'V']
2022-08-26 22:56:15,857:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Float', 4, 'Voltage Cell24', 'V']
2022-08-26 22:56:15,857:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Float', 4, 'Resistance Cell01', 'Ohm']
2022-08-26 22:56:15,857:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Float', 4, 'Resistance Cell02', 'Ohm']
2022-08-26 22:56:15,857:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Float', 4, 'Resistance Cell03', 'Ohm']
2022-08-26 22:56:15,857:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Float', 4, 'Resistance Cell04', 'Ohm']
2022-08-26 22:56:15,857:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Float', 4, 'Resistance Cell05', 'Ohm']
2022-08-26 22:56:15,857:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Float', 4, 'Resistance Cell06', 'Ohm']
2022-08-26 22:56:15,858:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Float', 4, 'Resistance Cell07', 'Ohm']
2022-08-26 22:56:15,858:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Float', 4, 'Resistance Cell08', 'Ohm']
2022-08-26 22:56:15,858:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Float', 4, 'Resistance Cell09', 'Ohm']
2022-08-26 22:56:15,858:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Float', 4, 'Resistance Cell10', 'Ohm']
2022-08-26 22:56:15,858:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Float', 4, 'Resistance Cell11', 'Ohm']
2022-08-26 22:56:15,858:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Float', 4, 'Resistance Cell12', 'Ohm']
2022-08-26 22:56:15,858:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Float', 4, 'Resistance Cell13', 'Ohm']
2022-08-26 22:56:15,858:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Float', 4, 'Resistance Cell14', 'Ohm']
2022-08-26 22:56:15,859:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Float', 4, 'Resistance Cell15', 'Ohm']
2022-08-26 22:56:15,859:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Float', 4, 'Resistance Cell16', 'Ohm']
2022-08-26 22:56:15,859:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Float', 4, 'Resistance Cell17', 'Ohm']
2022-08-26 22:56:15,859:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Float', 4, 'Resistance Cell18', 'Ohm']
2022-08-26 22:56:15,859:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Float', 4, 'Resistance Cell19', 'Ohm']
2022-08-26 22:56:15,859:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Float', 4, 'Resistance Cell20', 'Ohm']
2022-08-26 22:56:15,859:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Float', 4, 'Resistance Cell21', 'Ohm']
2022-08-26 22:56:15,859:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Float', 4, 'Resistance Cell22', 'Ohm']
2022-08-26 22:56:15,860:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Float', 4, 'Resistance Cell23', 'Ohm']
2022-08-26 22:56:15,860:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Float', 4, 'Resistance Cell24', 'Ohm']
2022-08-26 22:56:15,860:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Float', 4, 'Resistance Cell25', 'Ohm']
2022-08-26 22:56:15,860:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Float', 4, 'Average Cell Voltage', 'V']
2022-08-26 22:56:15,860:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['LittleHex2Float', 4, 'Delta Cell Voltage', 'V']
2022-08-26 22:56:15,860:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['discard', 4, '', '']
2022-08-26 22:56:15,860:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['discard', 4, '', '']
2022-08-26 22:56:15,861:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['Hex2Int:r+1', 1, 'Highest Cell', '']
2022-08-26 22:56:15,861:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['Hex2Int:r+1', 1, 'Lowest Cell', '']
2022-08-26 22:56:15,861:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['Hex2Str', 2, 'Flags', '']
2022-08-26 22:56:15,861:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['discard', 4, '', '']
2022-08-26 22:56:15,861:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['discard', 7, '', '']
2022-08-26 22:56:15,861:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['discard', 4, '', '']
2022-08-26 22:56:15,861:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['discard', 4, '', '']
2022-08-26 22:56:15,861:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['discard', 45, '', '']
2022-08-26 22:56:15,862:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['uptime', 3, 'uptime', '']
2022-08-26 22:56:15,862:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['discard', 5, '', '']
2022-08-26 22:56:15,862:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['discard', 4, '', '']
2022-08-26 22:56:15,862:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['discard', 1, '', '']
2022-08-26 22:56:15,862:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['Hex2Str', 1, 'Checksum', '']
2022-08-26 22:56:15,862:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ["lookup:'Voltage Cell{:02d}'.format(m['Highest Cell'][0])", 0, 'Highest Cell Voltage', 'V']
2022-08-26 22:56:15,862:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ["lookup:'Voltage Cell{:02d}'.format(m['Lowest Cell'][0])", 0, 'Lowest Cell Voltage', 'V']
2022-08-26 22:56:15,862:DEBUG:abstractprotocol:decode@240: trimmed and split responses: [b'\xffU\xb6\xdf', b'\x00', b'\x00', b'\x00\x00\x00\x00', b'\x00\x00\x00\x00', b'\x00\x00\x00\x00', b'\x10', 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'', 'lookup', 'lookup']
2022-08-26 22:56:15,863:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:15,863:DEBUG:abstractprotocol:decode@431: Got defn ['Hex2Str', 4, 'Header', '']
2022-08-26 22:56:15,863:DEBUG:abstractprotocol:process_response@103: Processing data_type: Hex2Str for data_name: Header, raw_value b'\xffU\xb6\xdf'
2022-08-26 22:56:15,863:DEBUG:abstractprotocol:process_response@175: Processing format string Hex2Str(raw_value)
2022-08-26 22:56:15,863:DEBUG:protocol_helpers:Hex2Str@109: Hex b'\xffU\xb6\xdf' decoded to ff55b6df
2022-08-26 22:56:15,864:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:15,864:DEBUG:abstractprotocol:decode@431: Got defn ['Hex2Str', 1, 'Record Type', '']
2022-08-26 22:56:15,864:DEBUG:abstractprotocol:process_response@103: Processing data_type: Hex2Str for data_name: Record Type, raw_value b'\x00'
2022-08-26 22:56:15,864:DEBUG:abstractprotocol:process_response@175: Processing format string Hex2Str(raw_value)
2022-08-26 22:56:15,864:DEBUG:protocol_helpers:Hex2Str@109: Hex b'\x00' decoded to 00
2022-08-26 22:56:15,864:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:15,865:DEBUG:abstractprotocol:decode@431: Got defn ['Hex2Int', 1, 'Record Counter', '']
2022-08-26 22:56:15,865:DEBUG:abstractprotocol:process_response@103: Processing data_type: Hex2Int for data_name: Record Counter, raw_value b'\x00'
2022-08-26 22:56:15,865:DEBUG:abstractprotocol:process_response@175: Processing format string Hex2Int(raw_value)
2022-08-26 22:56:15,865:DEBUG:protocol_helpers:Hex2Int@96: Hex b'\x00' decoded to 0
2022-08-26 22:56:15,865:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:15,865:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Float', 4, 'Voltage Cell01', 'V']
2022-08-26 22:56:15,865:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Float for data_name: Voltage Cell01, raw_value b'\x00\x00\x00\x00'
2022-08-26 22:56:15,866:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Float(raw_value)
2022-08-26 22:56:15,866:DEBUG:protocol_helpers:LittleHex2Float@180: Hex b'\x00\x00\x00\x00' 4 byte decoded to 0.0
2022-08-26 22:56:15,866:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:15,866:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Float', 4, 'Voltage Cell02', 'V']
2022-08-26 22:56:15,866:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Float for data_name: Voltage Cell02, raw_value b'\x00\x00\x00\x00'
2022-08-26 22:56:15,866:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Float(raw_value)
2022-08-26 22:56:15,866:DEBUG:protocol_helpers:LittleHex2Float@180: Hex b'\x00\x00\x00\x00' 4 byte decoded to 0.0
2022-08-26 22:56:15,867:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:15,867:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Float', 4, 'Voltage Cell03', 'V']
2022-08-26 22:56:15,867:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Float for data_name: Voltage Cell03, raw_value b'\x00\x00\x00\x00'
2022-08-26 22:56:15,867:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Float(raw_value)
2022-08-26 22:56:15,867:DEBUG:protocol_helpers:LittleHex2Float@180: Hex b'\x00\x00\x00\x00' 4 byte decoded to 0.0
2022-08-26 22:56:15,867:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:15,867:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Float', 4, 'Voltage Cell04', 'V']
2022-08-26 22:56:15,867:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Float for data_name: Voltage Cell04, raw_value b'\x10'
2022-08-26 22:56:15,867:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Float(raw_value)
2022-08-26 22:56:15,868:INFO:protocol_helpers:LittleHex2Float@176: Hex encoded value must be 4 bytes long. Was 1 length
2022-08-26 22:56:15,868:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:15,868:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Float', 4, 'Voltage Cell05', 'V']
2022-08-26 22:56:15,868:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Float for data_name: Voltage Cell05, raw_value b''
2022-08-26 22:56:15,868:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Float(raw_value)
2022-08-26 22:56:15,868:INFO:protocol_helpers:LittleHex2Float@176: Hex encoded value must be 4 bytes long. Was 0 length
2022-08-26 22:56:15,868:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:15,868:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Float', 4, 'Voltage Cell06', 'V']
2022-08-26 22:56:15,869:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Float for data_name: Voltage Cell06, raw_value b''
2022-08-26 22:56:15,869:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Float(raw_value)
2022-08-26 22:56:15,869:INFO:protocol_helpers:LittleHex2Float@176: Hex encoded value must be 4 bytes long. Was 0 length
2022-08-26 22:56:15,869:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:15,869:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Float', 4, 'Voltage Cell07', 'V']
2022-08-26 22:56:15,869:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Float for data_name: Voltage Cell07, raw_value b''
2022-08-26 22:56:15,869:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Float(raw_value)
2022-08-26 22:56:15,869:INFO:protocol_helpers:LittleHex2Float@176: Hex encoded value must be 4 bytes long. Was 0 length
2022-08-26 22:56:15,869:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:15,870:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Float', 4, 'Voltage Cell08', 'V']
2022-08-26 22:56:15,870:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Float for data_name: Voltage Cell08, raw_value b''
2022-08-26 22:56:15,870:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Float(raw_value)
2022-08-26 22:56:15,870:INFO:protocol_helpers:LittleHex2Float@176: Hex encoded value must be 4 bytes long. Was 0 length
2022-08-26 22:56:15,870:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:15,870:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Float', 4, 'Voltage Cell09', 'V']
2022-08-26 22:56:15,870:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Float for data_name: Voltage Cell09, raw_value b''
2022-08-26 22:56:15,870:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Float(raw_value)
2022-08-26 22:56:15,870:INFO:protocol_helpers:LittleHex2Float@176: Hex encoded value must be 4 bytes long. Was 0 length
2022-08-26 22:56:15,871:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:15,871:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Float', 4, 'Voltage Cell10', 'V']
2022-08-26 22:56:15,871:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Float for data_name: Voltage Cell10, raw_value b''
2022-08-26 22:56:15,871:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Float(raw_value)
2022-08-26 22:56:15,871:INFO:protocol_helpers:LittleHex2Float@176: Hex encoded value must be 4 bytes long. Was 0 length
2022-08-26 22:56:15,871:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:15,871:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Float', 4, 'Voltage Cell11', 'V']
2022-08-26 22:56:15,871:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Float for data_name: Voltage Cell11, raw_value b''
2022-08-26 22:56:15,871:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Float(raw_value)
2022-08-26 22:56:15,872:INFO:protocol_helpers:LittleHex2Float@176: Hex encoded value must be 4 bytes long. Was 0 length
2022-08-26 22:56:15,872:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:15,872:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Float', 4, 'Voltage Cell12', 'V']
2022-08-26 22:56:15,872:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Float for data_name: Voltage Cell12, raw_value b''
2022-08-26 22:56:15,872:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Float(raw_value)
2022-08-26 22:56:15,872:INFO:protocol_helpers:LittleHex2Float@176: Hex encoded value must be 4 bytes long. Was 0 length
2022-08-26 22:56:15,872:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:15,872:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Float', 4, 'Voltage Cell13', 'V']
2022-08-26 22:56:15,872:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Float for data_name: Voltage Cell13, raw_value b''
2022-08-26 22:56:15,873:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Float(raw_value)
2022-08-26 22:56:15,873:INFO:protocol_helpers:LittleHex2Float@176: Hex encoded value must be 4 bytes long. Was 0 length
2022-08-26 22:56:15,873:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:15,873:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Float', 4, 'Voltage Cell14', 'V']
2022-08-26 22:56:15,873:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Float for data_name: Voltage Cell14, raw_value b''
2022-08-26 22:56:15,873:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Float(raw_value)
2022-08-26 22:56:15,873:INFO:protocol_helpers:LittleHex2Float@176: Hex encoded value must be 4 bytes long. Was 0 length
2022-08-26 22:56:15,873:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:15,873:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Float', 4, 'Voltage Cell15', 'V']
2022-08-26 22:56:15,874:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Float for data_name: Voltage Cell15, raw_value b''
2022-08-26 22:56:15,874:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Float(raw_value)
2022-08-26 22:56:15,874:INFO:protocol_helpers:LittleHex2Float@176: Hex encoded value must be 4 bytes long. Was 0 length
2022-08-26 22:56:15,874:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:15,874:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Float', 4, 'Voltage Cell16', 'V']
2022-08-26 22:56:15,874:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Float for data_name: Voltage Cell16, raw_value b''
2022-08-26 22:56:15,874:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Float(raw_value)
2022-08-26 22:56:15,874:INFO:protocol_helpers:LittleHex2Float@176: Hex encoded value must be 4 bytes long. Was 0 length
2022-08-26 22:56:15,874:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:15,875:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Float', 4, 'Voltage Cell17', 'V']
2022-08-26 22:56:15,875:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Float for data_name: Voltage Cell17, raw_value b''
2022-08-26 22:56:15,875:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Float(raw_value)
2022-08-26 22:56:15,875:INFO:protocol_helpers:LittleHex2Float@176: Hex encoded value must be 4 bytes long. Was 0 length
2022-08-26 22:56:15,875:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:15,875:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Float', 4, 'Voltage Cell18', 'V']
2022-08-26 22:56:15,875:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Float for data_name: Voltage Cell18, raw_value b''
2022-08-26 22:56:15,875:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Float(raw_value)
2022-08-26 22:56:15,876:INFO:protocol_helpers:LittleHex2Float@176: Hex encoded value must be 4 bytes long. Was 0 length
2022-08-26 22:56:15,876:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:15,876:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Float', 4, 'Voltage Cell19', 'V']
2022-08-26 22:56:15,876:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Float for data_name: Voltage Cell19, raw_value b''
2022-08-26 22:56:15,876:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Float(raw_value)
2022-08-26 22:56:15,876:INFO:protocol_helpers:LittleHex2Float@176: Hex encoded value must be 4 bytes long. Was 0 length
2022-08-26 22:56:15,876:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:15,876:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Float', 4, 'Voltage Cell20', 'V']
2022-08-26 22:56:15,876:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Float for data_name: Voltage Cell20, raw_value b''
2022-08-26 22:56:15,877:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Float(raw_value)
2022-08-26 22:56:15,877:INFO:protocol_helpers:LittleHex2Float@176: Hex encoded value must be 4 bytes long. Was 0 length
2022-08-26 22:56:15,877:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:15,877:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Float', 4, 'Voltage Cell21', 'V']
2022-08-26 22:56:15,877:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Float for data_name: Voltage Cell21, raw_value b''
2022-08-26 22:56:15,877:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Float(raw_value)
2022-08-26 22:56:15,877:INFO:protocol_helpers:LittleHex2Float@176: Hex encoded value must be 4 bytes long. Was 0 length
2022-08-26 22:56:15,877:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:15,877:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Float', 4, 'Voltage Cell22', 'V']
2022-08-26 22:56:15,878:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Float for data_name: Voltage Cell22, raw_value b''
2022-08-26 22:56:15,878:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Float(raw_value)
2022-08-26 22:56:15,878:INFO:protocol_helpers:LittleHex2Float@176: Hex encoded value must be 4 bytes long. Was 0 length
2022-08-26 22:56:15,878:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:15,878:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Float', 4, 'Voltage Cell23', 'V']
2022-08-26 22:56:15,878:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Float for data_name: Voltage Cell23, raw_value b''
2022-08-26 22:56:15,878:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Float(raw_value)
2022-08-26 22:56:15,878:INFO:protocol_helpers:LittleHex2Float@176: Hex encoded value must be 4 bytes long. Was 0 length
2022-08-26 22:56:15,878:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:15,879:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Float', 4, 'Voltage Cell24', 'V']
2022-08-26 22:56:15,879:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Float for data_name: Voltage Cell24, raw_value b''
2022-08-26 22:56:15,879:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Float(raw_value)
2022-08-26 22:56:15,879:INFO:protocol_helpers:LittleHex2Float@176: Hex encoded value must be 4 bytes long. Was 0 length
2022-08-26 22:56:15,879:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:15,879:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Float', 4, 'Resistance Cell01', 'Ohm']
2022-08-26 22:56:15,879:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Float for data_name: Resistance Cell01, raw_value b''
2022-08-26 22:56:15,879:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Float(raw_value)
2022-08-26 22:56:15,880:INFO:protocol_helpers:LittleHex2Float@176: Hex encoded value must be 4 bytes long. Was 0 length
2022-08-26 22:56:15,880:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:15,880:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Float', 4, 'Resistance Cell02', 'Ohm']
2022-08-26 22:56:15,880:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Float for data_name: Resistance Cell02, raw_value b''
2022-08-26 22:56:15,880:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Float(raw_value)
2022-08-26 22:56:15,880:INFO:protocol_helpers:LittleHex2Float@176: Hex encoded value must be 4 bytes long. Was 0 length
2022-08-26 22:56:15,880:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:15,880:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Float', 4, 'Resistance Cell03', 'Ohm']
2022-08-26 22:56:15,880:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Float for data_name: Resistance Cell03, raw_value b''
2022-08-26 22:56:15,880:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Float(raw_value)
2022-08-26 22:56:15,881:INFO:protocol_helpers:LittleHex2Float@176: Hex encoded value must be 4 bytes long. Was 0 length
2022-08-26 22:56:15,881:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:15,881:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Float', 4, 'Resistance Cell04', 'Ohm']
2022-08-26 22:56:15,881:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Float for data_name: Resistance Cell04, raw_value b''
2022-08-26 22:56:15,881:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Float(raw_value)
2022-08-26 22:56:15,881:INFO:protocol_helpers:LittleHex2Float@176: Hex encoded value must be 4 bytes long. Was 0 length
2022-08-26 22:56:15,881:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:15,881:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Float', 4, 'Resistance Cell05', 'Ohm']
2022-08-26 22:56:15,882:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Float for data_name: Resistance Cell05, raw_value b''
2022-08-26 22:56:15,882:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Float(raw_value)
2022-08-26 22:56:15,882:INFO:protocol_helpers:LittleHex2Float@176: Hex encoded value must be 4 bytes long. Was 0 length
2022-08-26 22:56:15,882:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:15,882:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Float', 4, 'Resistance Cell06', 'Ohm']
2022-08-26 22:56:15,882:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Float for data_name: Resistance Cell06, raw_value b''
2022-08-26 22:56:15,882:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Float(raw_value)
2022-08-26 22:56:15,882:INFO:protocol_helpers:LittleHex2Float@176: Hex encoded value must be 4 bytes long. Was 0 length
2022-08-26 22:56:15,882:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:15,883:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Float', 4, 'Resistance Cell07', 'Ohm']
2022-08-26 22:56:15,883:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Float for data_name: Resistance Cell07, raw_value b''
2022-08-26 22:56:15,883:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Float(raw_value)
2022-08-26 22:56:15,883:INFO:protocol_helpers:LittleHex2Float@176: Hex encoded value must be 4 bytes long. Was 0 length
2022-08-26 22:56:15,883:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:15,883:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Float', 4, 'Resistance Cell08', 'Ohm']
2022-08-26 22:56:15,883:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Float for data_name: Resistance Cell08, raw_value b''
2022-08-26 22:56:15,883:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Float(raw_value)
2022-08-26 22:56:15,883:INFO:protocol_helpers:LittleHex2Float@176: Hex encoded value must be 4 bytes long. Was 0 length
2022-08-26 22:56:15,884:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:15,884:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Float', 4, 'Resistance Cell09', 'Ohm']
2022-08-26 22:56:15,884:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Float for data_name: Resistance Cell09, raw_value b''
2022-08-26 22:56:15,884:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Float(raw_value)
2022-08-26 22:56:15,884:INFO:protocol_helpers:LittleHex2Float@176: Hex encoded value must be 4 bytes long. Was 0 length
2022-08-26 22:56:15,884:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:15,884:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Float', 4, 'Resistance Cell10', 'Ohm']
2022-08-26 22:56:15,884:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Float for data_name: Resistance Cell10, raw_value b''
2022-08-26 22:56:15,884:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Float(raw_value)
2022-08-26 22:56:15,885:INFO:protocol_helpers:LittleHex2Float@176: Hex encoded value must be 4 bytes long. Was 0 length
2022-08-26 22:56:15,885:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:15,885:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Float', 4, 'Resistance Cell11', 'Ohm']
2022-08-26 22:56:15,885:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Float for data_name: Resistance Cell11, raw_value b''
2022-08-26 22:56:15,885:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Float(raw_value)
2022-08-26 22:56:15,885:INFO:protocol_helpers:LittleHex2Float@176: Hex encoded value must be 4 bytes long. Was 0 length
2022-08-26 22:56:15,885:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:15,885:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Float', 4, 'Resistance Cell12', 'Ohm']
2022-08-26 22:56:15,885:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Float for data_name: Resistance Cell12, raw_value b''
2022-08-26 22:56:15,886:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Float(raw_value)
2022-08-26 22:56:15,886:INFO:protocol_helpers:LittleHex2Float@176: Hex encoded value must be 4 bytes long. Was 0 length
2022-08-26 22:56:15,886:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:15,886:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Float', 4, 'Resistance Cell13', 'Ohm']
2022-08-26 22:56:15,886:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Float for data_name: Resistance Cell13, raw_value b''
2022-08-26 22:56:15,886:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Float(raw_value)
2022-08-26 22:56:15,886:INFO:protocol_helpers:LittleHex2Float@176: Hex encoded value must be 4 bytes long. Was 0 length
2022-08-26 22:56:15,886:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:15,886:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Float', 4, 'Resistance Cell14', 'Ohm']
2022-08-26 22:56:15,887:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Float for data_name: Resistance Cell14, raw_value b''
2022-08-26 22:56:15,887:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Float(raw_value)
2022-08-26 22:56:15,887:INFO:protocol_helpers:LittleHex2Float@176: Hex encoded value must be 4 bytes long. Was 0 length
2022-08-26 22:56:15,887:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:15,887:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Float', 4, 'Resistance Cell15', 'Ohm']
2022-08-26 22:56:15,887:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Float for data_name: Resistance Cell15, raw_value b''
2022-08-26 22:56:15,887:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Float(raw_value)
2022-08-26 22:56:15,887:INFO:protocol_helpers:LittleHex2Float@176: Hex encoded value must be 4 bytes long. Was 0 length
2022-08-26 22:56:15,887:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:15,888:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Float', 4, 'Resistance Cell16', 'Ohm']
2022-08-26 22:56:15,888:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Float for data_name: Resistance Cell16, raw_value b''
2022-08-26 22:56:15,888:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Float(raw_value)
2022-08-26 22:56:15,888:INFO:protocol_helpers:LittleHex2Float@176: Hex encoded value must be 4 bytes long. Was 0 length
2022-08-26 22:56:15,888:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:15,888:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Float', 4, 'Resistance Cell17', 'Ohm']
2022-08-26 22:56:15,888:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Float for data_name: Resistance Cell17, raw_value b''
2022-08-26 22:56:15,888:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Float(raw_value)
2022-08-26 22:56:15,888:INFO:protocol_helpers:LittleHex2Float@176: Hex encoded value must be 4 bytes long. Was 0 length
2022-08-26 22:56:15,889:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:15,889:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Float', 4, 'Resistance Cell18', 'Ohm']
2022-08-26 22:56:15,889:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Float for data_name: Resistance Cell18, raw_value b''
2022-08-26 22:56:15,889:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Float(raw_value)
2022-08-26 22:56:15,889:INFO:protocol_helpers:LittleHex2Float@176: Hex encoded value must be 4 bytes long. Was 0 length
2022-08-26 22:56:15,889:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:15,889:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Float', 4, 'Resistance Cell19', 'Ohm']
2022-08-26 22:56:15,889:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Float for data_name: Resistance Cell19, raw_value b''
2022-08-26 22:56:15,889:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Float(raw_value)
2022-08-26 22:56:15,890:INFO:protocol_helpers:LittleHex2Float@176: Hex encoded value must be 4 bytes long. Was 0 length
2022-08-26 22:56:15,890:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:15,890:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Float', 4, 'Resistance Cell20', 'Ohm']
2022-08-26 22:56:15,890:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Float for data_name: Resistance Cell20, raw_value b''
2022-08-26 22:56:15,890:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Float(raw_value)
2022-08-26 22:56:15,890:INFO:protocol_helpers:LittleHex2Float@176: Hex encoded value must be 4 bytes long. Was 0 length
2022-08-26 22:56:15,890:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:15,890:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Float', 4, 'Resistance Cell21', 'Ohm']
2022-08-26 22:56:15,890:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Float for data_name: Resistance Cell21, raw_value b''
2022-08-26 22:56:15,891:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Float(raw_value)
2022-08-26 22:56:15,891:INFO:protocol_helpers:LittleHex2Float@176: Hex encoded value must be 4 bytes long. Was 0 length
2022-08-26 22:56:15,891:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:15,891:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Float', 4, 'Resistance Cell22', 'Ohm']
2022-08-26 22:56:15,891:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Float for data_name: Resistance Cell22, raw_value b''
2022-08-26 22:56:15,891:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Float(raw_value)
2022-08-26 22:56:15,891:INFO:protocol_helpers:LittleHex2Float@176: Hex encoded value must be 4 bytes long. Was 0 length
2022-08-26 22:56:15,891:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:15,891:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Float', 4, 'Resistance Cell23', 'Ohm']
2022-08-26 22:56:15,892:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Float for data_name: Resistance Cell23, raw_value b''
2022-08-26 22:56:15,892:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Float(raw_value)
2022-08-26 22:56:15,892:INFO:protocol_helpers:LittleHex2Float@176: Hex encoded value must be 4 bytes long. Was 0 length
2022-08-26 22:56:15,892:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:15,892:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Float', 4, 'Resistance Cell24', 'Ohm']
2022-08-26 22:56:15,892:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Float for data_name: Resistance Cell24, raw_value b''
2022-08-26 22:56:15,892:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Float(raw_value)
2022-08-26 22:56:15,892:INFO:protocol_helpers:LittleHex2Float@176: Hex encoded value must be 4 bytes long. Was 0 length
2022-08-26 22:56:15,892:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:15,893:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Float', 4, 'Resistance Cell25', 'Ohm']
2022-08-26 22:56:15,893:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Float for data_name: Resistance Cell25, raw_value b''
2022-08-26 22:56:15,893:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Float(raw_value)
2022-08-26 22:56:15,893:INFO:protocol_helpers:LittleHex2Float@176: Hex encoded value must be 4 bytes long. Was 0 length
2022-08-26 22:56:15,893:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:15,893:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Float', 4, 'Average Cell Voltage', 'V']
2022-08-26 22:56:15,893:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Float for data_name: Average Cell Voltage, raw_value b''
2022-08-26 22:56:15,893:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Float(raw_value)
2022-08-26 22:56:15,893:INFO:protocol_helpers:LittleHex2Float@176: Hex encoded value must be 4 bytes long. Was 0 length
2022-08-26 22:56:15,894:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:15,894:DEBUG:abstractprotocol:decode@431: Got defn ['LittleHex2Float', 4, 'Delta Cell Voltage', 'V']
2022-08-26 22:56:15,894:DEBUG:abstractprotocol:process_response@103: Processing data_type: LittleHex2Float for data_name: Delta Cell Voltage, raw_value b''
2022-08-26 22:56:15,894:DEBUG:abstractprotocol:process_response@175: Processing format string LittleHex2Float(raw_value)
2022-08-26 22:56:15,894:INFO:protocol_helpers:LittleHex2Float@176: Hex encoded value must be 4 bytes long. Was 0 length
2022-08-26 22:56:15,894:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:15,894:DEBUG:abstractprotocol:decode@431: Got defn ['discard', 4, '', '']
2022-08-26 22:56:15,894:DEBUG:abstractprotocol:process_response@103: Processing data_type: discard for data_name: , raw_value b''
2022-08-26 22:56:15,894:DEBUG:abstractprotocol:process_response@111: Discarding :b''
2022-08-26 22:56:15,895:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:15,895:DEBUG:abstractprotocol:decode@431: Got defn ['discard', 4, '', '']
2022-08-26 22:56:15,895:DEBUG:abstractprotocol:process_response@103: Processing data_type: discard for data_name: , raw_value b''
2022-08-26 22:56:15,895:DEBUG:abstractprotocol:process_response@111: Discarding :b''
2022-08-26 22:56:15,895:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:15,895:DEBUG:abstractprotocol:decode@431: Got defn ['Hex2Int:r+1', 1, 'Highest Cell', '']
2022-08-26 22:56:15,895:DEBUG:abstractprotocol:process_response@102: Got template r+1 for Highest Cell b''
2022-08-26 22:56:15,895:DEBUG:abstractprotocol:process_response@103: Processing data_type: Hex2Int for data_name: Highest Cell, raw_value b''
2022-08-26 22:56:15,895:DEBUG:abstractprotocol:process_response@175: Processing format string Hex2Int(raw_value)
Traceback (most recent call last):
  File "/root/venv/mppsolar/bin/jkbms", line 8, in <module>
    sys.exit(main())
  File "/root/venv/mppsolar/lib/python3.8/site-packages/mppsolar/__init__.py", line 417, in main
    results = _device.run_command(command=_command)
  File "/root/venv/mppsolar/lib/python3.8/site-packages/mppsolar/devices/device.py", line 340, in run_command
    decoded_response = self._protocol.decode(raw_response, command)
  File "/root/venv/mppsolar/lib/python3.8/site-packages/mppsolar/protocols/abstractprotocol.py", line 460, in decode
    data_name, value, data_units = self.process_response(
  File "/root/venv/mppsolar/lib/python3.8/site-packages/mppsolar/protocols/abstractprotocol.py", line 177, in process_response
    r = eval(format_string)
  File "<string>", line 1, in <module>
  File "/root/venv/mppsolar/lib/python3.8/site-packages/mppsolar/protocols/protocol_helpers.py", line 95, in Hex2Int
    answer = hexString[0]
IndexError: index out of range
jkbms -p /dev/ttyUSB1 -P JK485 -D
2022-08-26 22:56:28,213:INFO:__init__:main@223: Solar Device Command Utility, version: 0.13.1, add hass force update support from sebmueller
2022-08-26 22:56:28,213:DEBUG:__init__:main@237: MqttBroker(name='localhost', port=1883, username=None, password=None, results_topic='jkbms', mqttc=<paho.mqtt.client.Client object at 0xffff9bd48c70>, _isConnected=False)
2022-08-26 22:56:28,213:DEBUG:__init__:main@239: udp port 5555
2022-08-26 22:56:28,214:DEBUG:__init__:main@241: Using Postgres None
2022-08-26 22:56:28,214:DEBUG:__init__:main@244: Using Mongo None with mppsolar
2022-08-26 22:56:28,214:INFO:__init__:main@346: Creating device "unnamed" (type: "jkbms") on port "/dev/ttyUSB1 (porttype=None)" using protocol "JK485"
2022-08-26 22:56:28,218:DEBUG:__init__:main@350: device_class <class 'mppsolar.devices.jkbms.jkbms'>
2022-08-26 22:56:28,218:DEBUG:device:__init__@33: __init__ args ()
2022-08-26 22:56:28,218:DEBUG:device:__init__@34: __init__ kwargs {'name': 'unnamed', 'port': '/dev/ttyUSB1', 'protocol': 'JK485', 'baud': 2400, 'porttype': None, 'mqtt_broker': MqttBroker(name='localhost', port=1883, username=None, password=None, results_topic='jkbms', mqttc=<paho.mqtt.client.Client object at 0xffff9bd48c70>, _isConnected=False), 'udp_port': '5555', 'mongo_url': None, 'mongo_db': 'mppsolar'}
2022-08-26 22:56:28,219:DEBUG:__init__:get_port_type@65: port matches ttyusb
2022-08-26 22:56:28,219:INFO:__init__:get_port@107: Using serialio for communications
2022-08-26 22:56:28,227:DEBUG:__init__:get_protocol@12: Protocol JK485
2022-08-26 22:56:28,230:DEBUG:device:__init__@38: __init__ name unnamed, port <mppsolar.inout.serialio.SerialIO object at 0xffff9bcbcf40>, protocol <mppsolar.protocols.jk485.jk485 object at 0xffff9bcbcfa0>
2022-08-26 22:56:28,231:DEBUG:__init__:main@399: Commands [(<mppsolar.devices.jkbms.jkbms object at 0xffff9bcbcd00>, '', '', 'screen', None, None)]
2022-08-26 22:56:28,231:INFO:__init__:main@404: Looping 1 commands
2022-08-26 22:56:28,231:INFO:__init__:main@414: Getting results from device: jkbms device - name: unnamed, port: <mppsolar.inout.serialio.SerialIO object at 0xffff9bcbcf40>, protocol: <mppsolar.protocols.jk485.jk485 object at 0xffff9bcbcfa0> for command: , tag: , outputs: screen
2022-08-26 22:56:28,231:INFO:device:run_command@274: Running command 
2022-08-26 22:56:28,231:INFO:jk485:get_full_command@97: Using protocol b'JK485' with 1 commands
2022-08-26 22:56:28,231:DEBUG:jkabstractprotocol:get_command_defn@106: get_command_defn for: getBalancerData
2022-08-26 22:56:28,232:DEBUG:abstractprotocol:get_command_defn@60: Processing command 'getBalancerData'
2022-08-26 22:56:28,232:DEBUG:abstractprotocol:get_command_defn@62: Found command getBalancerData in protocol b'JK485'
2022-08-26 22:56:28,232:DEBUG:jk485:get_full_command@111: cmd with header: bytearray(b'U\xaa\x00\x00\x00\x00\x00')
2022-08-26 22:56:28,232:DEBUG:jk485:get_full_command@114: cmd with header + slave address: bytearray(b'U\xaa\x01\x00\x00\x00\x00')
2022-08-26 22:56:28,232:DEBUG:jk485:get_full_command@119: cmd with command code and frame data: bytearray(b'U\xaa\x01\xff\x00\x00\x00')
2022-08-26 22:56:28,232:DEBUG:jk485:get_full_command@122: cmd with crc: bytearray(b'U\xaa\x01\xff\x00\x00\xff')
2022-08-26 22:56:28,232:INFO:device:run_command@303: full command bytearray(b'U\xaa\x01\xff\x00\x00\xff') for command getBalancerData
2022-08-26 22:56:28,232:DEBUG:jkabstractprotocol:get_command_defn@106: get_command_defn for: getBalancerData
2022-08-26 22:56:28,232:DEBUG:abstractprotocol:get_command_defn@60: Processing command 'getBalancerData'
2022-08-26 22:56:28,233:DEBUG:abstractprotocol:get_command_defn@62: Found command getBalancerData in protocol b'JK485'
2022-08-26 22:56:28,233:DEBUG:serialio:send_and_receive@19: port /dev/ttyUSB1, baudrate 2400
2022-08-26 22:56:28,237:DEBUG:serialio:send_and_receive@22: Executing command via serialio...
2022-08-26 22:56:29,340:DEBUG:serialio:send_and_receive@30: serial response was: b'U\xb5\xff\x80\x00\xff'
2022-08-26 22:56:29,343:DEBUG:device:run_command@322: Send and Receive Response b'U\xb5\xff\x80\x00\xff'
2022-08-26 22:56:29,343:INFO:abstractprotocol:decode@196: response passed to decode: b'U\xb5\xff\x80\x00\xff'
2022-08-26 22:56:29,343:DEBUG:jkabstractprotocol:get_command_defn@106: get_command_defn for: getBalancerData
2022-08-26 22:56:29,344:DEBUG:abstractprotocol:get_command_defn@60: Processing command 'getBalancerData'
2022-08-26 22:56:29,344:DEBUG:abstractprotocol:get_command_defn@62: Found command getBalancerData in protocol b'JK485'
2022-08-26 22:56:29,344:INFO:abstractprotocol:decode@236: Processing response of type POSITIONAL
2022-08-26 22:56:29,345:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['Hex2Str', 2, 'Header', '']
2022-08-26 22:56:29,345:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['Hex2Str', 1, 'Slave Address', '']
2022-08-26 22:56:29,345:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['Hex2Str', 1, 'Command Code', '']
2022-08-26 22:56:29,345:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/100', 2, 'Total Battery Voltage', 'V']
2022-08-26 22:56:29,346:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Average Cell Voltage', 'V']
2022-08-26 22:56:29,346:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['Hex2Int', 1, 'Number of Cells', '']
2022-08-26 22:56:29,346:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['Hex2Int', 1, 'Highest Cell', '']
2022-08-26 22:56:29,347:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['Hex2Int', 1, 'Lowest Cell', '']
2022-08-26 22:56:29,347:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['Hex2Str', 1, 'Charging / Discharging', '']
2022-08-26 22:56:29,347:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['Hex2Str', 1, 'Alarm - todo', '']
2022-08-26 22:56:29,347:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Difference', 'V']
2022-08-26 22:56:29,347:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Balance Current', 'A']
2022-08-26 22:56:29,348:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Balance Trigger Voltage', 'V']
2022-08-26 22:56:29,348:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Max Balance Current', 'A']
2022-08-26 22:56:29,348:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['Hex2Str', 1, 'Balance On / Off', '']
2022-08-26 22:56:29,348:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['Hex2Int', 1, 'Set Number of Cells', '']
2022-08-26 22:56:29,348:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell01', 'V']
2022-08-26 22:56:29,348:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell02', 'V']
2022-08-26 22:56:29,349:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell03', 'V']
2022-08-26 22:56:29,349:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell04', 'V']
2022-08-26 22:56:29,349:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell05', 'V']
2022-08-26 22:56:29,349:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell06', 'V']
2022-08-26 22:56:29,349:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell07', 'V']
2022-08-26 22:56:29,349:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell08', 'V']
2022-08-26 22:56:29,350:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell09', 'V']
2022-08-26 22:56:29,350:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell10', 'V']
2022-08-26 22:56:29,350:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell11', 'V']
2022-08-26 22:56:29,350:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell12', 'V']
2022-08-26 22:56:29,350:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell13', 'V']
2022-08-26 22:56:29,350:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell14', 'V']
2022-08-26 22:56:29,350:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell15', 'V']
2022-08-26 22:56:29,351:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell16', 'V']
2022-08-26 22:56:29,351:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell17', 'V']
2022-08-26 22:56:29,351:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell18', 'V']
2022-08-26 22:56:29,351:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell19', 'V']
2022-08-26 22:56:29,351:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell20', 'V']
2022-08-26 22:56:29,351:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell21', 'V']
2022-08-26 22:56:29,352:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell22', 'V']
2022-08-26 22:56:29,352:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell23', 'V']
2022-08-26 22:56:29,352:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short:r/1000', 2, 'Voltage Cell24', 'V']
2022-08-26 22:56:29,352:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['BigHex2Short', 2, 'Temperature', '°C']
2022-08-26 22:56:29,352:DEBUG:jkabstractprotocol:get_responses@131: Got defn: ['Hex2Str', 1, 'Checksum', '']
2022-08-26 22:56:29,352:DEBUG:abstractprotocol:decode@240: trimmed and split responses: [b'U\xb5', b'\xff', b'\x80', b'\x00\xff', 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'']
2022-08-26 22:56:29,353:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:29,353:DEBUG:abstractprotocol:decode@431: Got defn ['Hex2Str', 2, 'Header', '']
2022-08-26 22:56:29,353:DEBUG:abstractprotocol:process_response@103: Processing data_type: Hex2Str for data_name: Header, raw_value b'U\xb5'
2022-08-26 22:56:29,353:DEBUG:abstractprotocol:process_response@175: Processing format string Hex2Str(raw_value)
2022-08-26 22:56:29,353:DEBUG:protocol_helpers:Hex2Str@109: Hex b'U\xb5' decoded to 55b5
2022-08-26 22:56:29,354:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:29,354:DEBUG:abstractprotocol:decode@431: Got defn ['Hex2Str', 1, 'Slave Address', '']
2022-08-26 22:56:29,354:DEBUG:abstractprotocol:process_response@103: Processing data_type: Hex2Str for data_name: Slave Address, raw_value b'\xff'
2022-08-26 22:56:29,354:DEBUG:abstractprotocol:process_response@175: Processing format string Hex2Str(raw_value)
2022-08-26 22:56:29,354:DEBUG:protocol_helpers:Hex2Str@109: Hex b'\xff' decoded to ff
2022-08-26 22:56:29,355:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:29,355:DEBUG:abstractprotocol:decode@431: Got defn ['Hex2Str', 1, 'Command Code', '']
2022-08-26 22:56:29,355:DEBUG:abstractprotocol:process_response@103: Processing data_type: Hex2Str for data_name: Command Code, raw_value b'\x80'
2022-08-26 22:56:29,355:DEBUG:abstractprotocol:process_response@175: Processing format string Hex2Str(raw_value)
2022-08-26 22:56:29,355:DEBUG:protocol_helpers:Hex2Str@109: Hex b'\x80' decoded to 80
2022-08-26 22:56:29,355:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:29,356:DEBUG:abstractprotocol:decode@431: Got defn ['BigHex2Short:r/100', 2, 'Total Battery Voltage', 'V']
2022-08-26 22:56:29,356:DEBUG:abstractprotocol:process_response@102: Got template r/100 for Total Battery Voltage b'\x00\xff'
2022-08-26 22:56:29,356:DEBUG:abstractprotocol:process_response@103: Processing data_type: BigHex2Short for data_name: Total Battery Voltage, raw_value b'\x00\xff'
2022-08-26 22:56:29,356:DEBUG:abstractprotocol:process_response@175: Processing format string BigHex2Short(raw_value)
2022-08-26 22:56:29,356:DEBUG:protocol_helpers:BigHex2Short@151: Hex b'\x00\xff' 2 byte decoded to 255
2022-08-26 22:56:29,357:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:29,357:DEBUG:abstractprotocol:decode@431: Got defn ['BigHex2Short:r/1000', 2, 'Average Cell Voltage', 'V']
2022-08-26 22:56:29,357:DEBUG:abstractprotocol:process_response@102: Got template r/1000 for Average Cell Voltage b''
2022-08-26 22:56:29,357:DEBUG:abstractprotocol:process_response@103: Processing data_type: BigHex2Short for data_name: Average Cell Voltage, raw_value b''
2022-08-26 22:56:29,357:DEBUG:abstractprotocol:process_response@175: Processing format string BigHex2Short(raw_value)
2022-08-26 22:56:29,357:INFO:protocol_helpers:BigHex2Short@148: Hex encoded value must be 2 bytes long. Was 0 length
2022-08-26 22:56:29,358:DEBUG:abstractprotocol:decode@409: Processing POSITIONAL type responses
2022-08-26 22:56:29,358:DEBUG:abstractprotocol:decode@431: Got defn ['Hex2Int', 1, 'Number of Cells', '']
2022-08-26 22:56:29,358:DEBUG:abstractprotocol:process_response@103: Processing data_type: Hex2Int for data_name: Number of Cells, raw_value b''
2022-08-26 22:56:29,358:DEBUG:abstractprotocol:process_response@175: Processing format string Hex2Int(raw_value)
Traceback (most recent call last):
  File "/root/venv/mppsolar/bin/jkbms", line 8, in <module>
    sys.exit(main())
  File "/root/venv/mppsolar/lib/python3.8/site-packages/mppsolar/__init__.py", line 417, in main
    results = _device.run_command(command=_command)
  File "/root/venv/mppsolar/lib/python3.8/site-packages/mppsolar/devices/device.py", line 340, in run_command
    decoded_response = self._protocol.decode(raw_response, command)
  File "/root/venv/mppsolar/lib/python3.8/site-packages/mppsolar/protocols/abstractprotocol.py", line 460, in decode
    data_name, value, data_units = self.process_response(
  File "/root/venv/mppsolar/lib/python3.8/site-packages/mppsolar/protocols/abstractprotocol.py", line 177, in process_response
    r = eval(format_string)
  File "<string>", line 1, in <module>
  File "/root/venv/mppsolar/lib/python3.8/site-packages/mppsolar/protocols/protocol_helpers.py", line 95, in Hex2Int
    answer = hexString[0]
IndexError: index out of range

preussal avatar Aug 26 '22 16:08 preussal

any news about this. it is working with ftdi cable ??

meccip avatar Sep 14 '22 08:09 meccip

Hi Meccip,

I opened a new ticket for my problem. https://github.com/jblance/mpp-solar/issues/257 Since I have a defective BMS where TTL doesn't work. And a second where TTL works fine, but I don't get any data output.

With a TTL test script, I get data from the BMS.

With the TTL to RS485 adapters you have to be careful because there are two unsettling versions. Once with 9600 baud and once with 115200 baud. And this is not described on the RS485 adapters. And the 9600 only works for the older ones and the 115200.

The TTL variant with a TTL to USB seems best to me. Since the reading takes too long via Bluetooth and then the BMS also makes a PIEP sound when data is queried, and then the channel is also blocked for the app

preussal avatar Sep 15 '22 04:09 preussal

Hello, I have B2A24S15P Hard V10.XW Soft V10.08 made in 2022 09 10I use it with Bluetooth communication to get data to node red, but is very slow (slow, blocking the app, sometimes freeze and need bluetooth restart) I try some flow in node with no success. I use a FT232RL industrial adaptor and I use Arduino as serial ttl adapter. I measure between RX and TX and I have 1.3 Mohm How do you test to see if TTL is working ?What do you use ?Can you give an exemple ?

On Thursday, September 15, 2022 at 07:11:44 AM GMT+3, preussal ***@***.***> wrote:  

Hi Meccip,

I opened a new ticket for my problem. #257 Since I have a defective BMS where TTL doesn't work. And a second where TTL works fine, but I don't get any data output.

With a TTL test script, I get data from the BMS.

With the TTL to RS485 adapters you have to be careful because there are two unsettling versions. Once with 9600 baud and once with 115200 baud. And this is not described on the RS485 adapters. And the 9600 only works for the older ones and the 115200.

The TTL variant with a TTL to USB seems best to me. Since the reading takes too long via Bluetooth and then the BMS also makes a PIEP sound when data is queried, and then the channel is also blocked for the app

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>

meccip avatar Sep 15 '22 08:09 meccip

Hi Meccip,

i used the Script from here https://github.com/PurpleAlien/jk-bms_grafana

But my B2A24S15P BMS is not working. I measured around 2.5 megaohm. With my JK-B2A24S20P I have 60 kilo ohm and I get data with the script

https://github.com/PurpleAlien/jk-bms_grafana/issues/2#issuecomment-1236952947

preussal avatar Sep 16 '22 02:09 preussal

I do not think this is always a hardware issue. I have a B2A24S20P and the RS485 dongle plugged into the GPS port on the BMS (as shown on the SolarAssistant page). Works flawlessly with SolarAssistant and with the script from this project https://github.com/fah/jk-bms. Connection details are

bms = serial.Serial('/dev/ttyUSB1')
bms.baudrate = 115200
bms.timeout  = 0.2

but I get the same issues as you all with this project connecting on RS485

sw25481 avatar May 14 '23 20:05 sw25481