dbus-serialbattery: Wrong SOC Charge Limitation

Describe the bug

Battery SOC = 98.0 % but CCL=35A (Charge Limitation SoC); CCL of 15A is expected.

How to reproduce

nothing special

Expected behavior

CCL of 15A

Driver version

1.0.20240102beta

Venus OS device type

Raspberry Pi 3

Venus OS version

v3.20~35

BMS type

Seplos

Cell count

16

Connection type

Serial USB adapter to RS485

Config file

MAX_BATTERY_CHARGE_CURRENT = 100.0
MAX_BATTERY_DISCHARGE_CURRENT = 100.0

MIN_CELL_VOLTAGE   = 2.900
MAX_CELL_VOLTAGE   = 3.450
FLOAT_CELL_VOLTAGE = 3.375

CVL_ICONTROLLER_MODE = True
LINEAR_LIMITATION_ENABLE = True
CVCM_ENABLE = True                                                                                

BMS_TYPE = Seplos

EXCLUDED_DEVICES = /dev/ttyUSB0

CC_SOC_LIMIT1 = 98
CC_SOC_LIMIT2 = 95
CC_SOC_LIMIT3 = 91

CC_CURRENT_LIMIT1_FRACTION = 0.15
CC_CURRENT_LIMIT2_FRACTION = 0.35
CC_CURRENT_LIMIT3_FRACTION = 0.50

Relevant log output

2024-01-04 11:50:40.244993500 INFO:SerialBattery:
2024-01-04 11:50:40.245810500 INFO:SerialBattery:Starting dbus-serialbattery
2024-01-04 11:50:40.247946500 INFO:SerialBattery:dbus-serialbattery v1.0.20240102beta
2024-01-04 11:50:56.260849500 INFO:SerialBattery:-- Testing BMS: 1 of 3 rounds
2024-01-04 11:50:56.261732500 INFO:SerialBattery:Testing Seplos
2024-01-04 11:50:56.306998500 ERROR:SerialBattery:Unexpected err=SerialException('read failed: device reports readiness to read but returned no data (device disconnected or multiple access on port?)'), type(err)=<class 'serial.serialutil.SerialException'>
2024-01-04 11:50:56.307846500 ERROR:SerialBattery:>>> ERROR: No reply - returning
2024-01-04 11:50:56.809798500 INFO:SerialBattery:-- Testing BMS: 2 of 3 rounds
2024-01-04 11:50:56.810703500 INFO:SerialBattery:Testing Seplos
2024-01-04 11:50:56.848911500 ERROR:SerialBattery:Unexpected err=SerialException('read failed: device reports readiness to read but returned no data (device disconnected or multiple access on port?)'), type(err)=<class 'serial.serialutil.SerialException'>
2024-01-04 11:50:56.850198500 ERROR:SerialBattery:>>> ERROR: No reply - returning
2024-01-04 11:50:57.352454500 INFO:SerialBattery:-- Testing BMS: 3 of 3 rounds
2024-01-04 11:50:57.353297500 INFO:SerialBattery:Testing Seplos
2024-01-04 11:50:58.477716500 INFO:SerialBattery:Connection established to Seplos
2024-01-04 11:50:58.478469500 INFO:SerialBattery:Battery Seplos connected to dbus from /dev/ttyUSB1
2024-01-04 11:50:58.479179500 INFO:SerialBattery:========== Settings ==========
2024-01-04 11:50:58.480003500 INFO:SerialBattery:> Connection voltage: 54.96V | Current: 0.0A | SoC: None%
2024-01-04 11:50:58.480798500 INFO:SerialBattery:> Cell count: 16 | Cells populated: 0
2024-01-04 11:50:58.481500500 INFO:SerialBattery:> LINEAR LIMITATION ENABLE: True
2024-01-04 11:50:58.482127500 INFO:SerialBattery:> MAX BATTERY CHARGE CURRENT: 100.0A | MAX BATTERY DISCHARGE CURRENT: 100.0A
2024-01-04 11:50:58.482801500 INFO:SerialBattery:> CVCM:     True
2024-01-04 11:50:58.483419500 INFO:SerialBattery:> MIN CELL VOLTAGE: 2.9V | MAX CELL VOLTAGE: 3.45V
2024-01-04 11:50:58.484092500 INFO:SerialBattery:> CCCM CV:  True  | DCCM CV:  True
2024-01-04 11:50:58.484683500 INFO:SerialBattery:> CCCM T:   True  | DCCM T:   True
2024-01-04 11:50:58.485346500 INFO:SerialBattery:> CCCM SOC: True  | DCCM SOC: True
2024-01-04 11:50:58.486061500 INFO:SerialBattery:Serial Number/Unique Identifier: SeplosBMS16cells_280.0Ah
2024-01-04 11:50:59.065995500 INFO:SerialBattery:Found existing battery with DeviceInstance = 1
2024-01-04 11:50:59.405520500 INFO:SerialBattery:DeviceInstance = 1
2024-01-04 11:50:59.406302500 INFO:SerialBattery:Used device instances: ['1']
2024-01-04 11:50:59.407181500 INFO:SerialBattery:com.victronenergy.battery.ttyUSB1
2024-01-04 11:50:59.455917500 INFO:SerialBattery:publish config values = True
2024-01-04 11:51:06.099182500 Traceback (most recent call last):
2024-01-04 11:51:06.099193500   File "/opt/victronenergy/dbus-serialbattery/dbushelper.py", line 626, in publish_battery
2024-01-04 11:51:06.099200500     result = self.battery.refresh_data()
2024-01-04 11:51:06.099203500   File "/opt/victronenergy/dbus-serialbattery/bms/seplos.py", line 117, in refresh_data
2024-01-04 11:51:06.099209500     result_status = self.read_status_data()
2024-01-04 11:51:06.099213500   File "/opt/victronenergy/dbus-serialbattery/bms/seplos.py", line 199, in read_status_data
2024-01-04 11:51:06.099410500     data = self.read_serial_data_seplos(
2024-01-04 11:51:06.099415500   File "/opt/victronenergy/dbus-serialbattery/bms/seplos.py", line 302, in read_serial_data_seplos
2024-01-04 11:51:06.099421500     if not Seplos.is_valid_frame(data):
2024-01-04 11:51:06.099425500   File "/opt/victronenergy/dbus-serialbattery/bms/seplos.py", line 276, in is_valid_frame
2024-01-04 11:51:06.099431500     if chksum != Seplos.int_from_2byte_hex_ascii(data, -5):
2024-01-04 11:51:06.099479500   File "/opt/victronenergy/dbus-serialbattery/bms/seplos.py", line 32, in int_from_2byte_hex_ascii
2024-01-04 11:51:06.099486500     bytes.fromhex(data[offset : offset + 4].decode("ascii")),
2024-01-04 11:51:06.099491500 UnicodeDecodeError: 'ascii' codec can't decode byte 0xa7 in position 1: ordinal not in range(128)
2024-01-04 11:51:06.099497500 Setted setting /Settings/Devices/serialbattery_SeplosBMS16cells_280_0Ah/LastSeen to 1704369059
2024-01-04 11:51:08.408147500 INFO:SerialBattery:
2024-01-04 11:51:08.408966500 INFO:SerialBattery:Starting dbus-serialbattery
2024-01-04 11:51:08.410663500 INFO:SerialBattery:dbus-serialbattery v1.0.20240102beta
2024-01-04 11:51:24.421150500 INFO:SerialBattery:-- Testing BMS: 1 of 3 rounds
2024-01-04 11:51:24.422139500 INFO:SerialBattery:Testing Seplos
2024-01-04 11:51:25.549821500 INFO:SerialBattery:Connection established to Seplos
2024-01-04 11:51:25.550738500 INFO:SerialBattery:Battery Seplos connected to dbus from /dev/ttyUSB1
2024-01-04 11:51:25.551423500 INFO:SerialBattery:========== Settings ==========
2024-01-04 11:51:25.552141500 INFO:SerialBattery:> Connection voltage: 54.94V | Current: 0.0A | SoC: None%
2024-01-04 11:51:25.552941500 INFO:SerialBattery:> Cell count: 16 | Cells populated: 0
2024-01-04 11:51:25.553567500 INFO:SerialBattery:> LINEAR LIMITATION ENABLE: True
2024-01-04 11:51:25.554343500 INFO:SerialBattery:> MAX BATTERY CHARGE CURRENT: 100.0A | MAX BATTERY DISCHARGE CURRENT: 100.0A
2024-01-04 11:51:25.554987500 INFO:SerialBattery:> CVCM:     True
2024-01-04 11:51:25.555710500 INFO:SerialBattery:> MIN CELL VOLTAGE: 2.9V | MAX CELL VOLTAGE: 3.45V
2024-01-04 11:51:25.556401500 INFO:SerialBattery:> CCCM CV:  True  | DCCM CV:  True
2024-01-04 11:51:25.557056500 INFO:SerialBattery:> CCCM T:   True  | DCCM T:   True
2024-01-04 11:51:25.558954500 INFO:SerialBattery:> CCCM SOC: True  | DCCM SOC: True
2024-01-04 11:51:25.560073500 INFO:SerialBattery:Serial Number/Unique Identifier: SeplosBMS16cells_280.0Ah
2024-01-04 11:51:26.021156500 INFO:SerialBattery:Found existing battery with DeviceInstance = 1
2024-01-04 11:51:26.274935500 INFO:SerialBattery:DeviceInstance = 1
2024-01-04 11:51:26.275704500 INFO:SerialBattery:Used device instances: ['1']
2024-01-04 11:51:26.276404500 INFO:SerialBattery:com.victronenergy.battery.ttyUSB1
2024-01-04 11:51:26.311663500 INFO:SerialBattery:publish config values = True
2024-01-04 11:51:31.393721500 Traceback (most recent call last):
2024-01-04 11:51:31.393731500   File "/usr/lib/python3.8/site-packages/serial/serialposix.py", line 500, in read
2024-01-04 11:51:31.393737500     raise SerialException(
2024-01-04 11:51:31.393740500 serial.serialutil.SerialException: device reports readiness to read but returned no data (device disconnected or multiple access on port?)
2024-01-04 11:51:31.393748500
2024-01-04 11:51:31.393749500 During handling of the above exception, another exception occurred:
2024-01-04 11:51:31.393757500
2024-01-04 11:51:31.393943500 Traceback (most recent call last):
2024-01-04 11:51:31.393947500   File "/opt/victronenergy/dbus-serialbattery/dbushelper.py", line 626, in publish_battery
2024-01-04 11:51:31.393953500     result = self.battery.refresh_data()
2024-01-04 11:51:31.393957500   File "/opt/victronenergy/dbus-serialbattery/bms/seplos.py", line 117, in refresh_data
2024-01-04 11:51:31.393963500     result_status = self.read_status_data()
2024-01-04 11:51:31.393966500   File "/opt/victronenergy/dbus-serialbattery/bms/seplos.py", line 199, in read_status_data
2024-01-04 11:51:31.394020500     data = self.read_serial_data_seplos(
2024-01-04 11:51:31.394025500   File "/opt/victronenergy/dbus-serialbattery/bms/seplos.py", line 300, in read_serial_data_seplos
2024-01-04 11:51:31.394031500     data = ser.readline()
2024-01-04 11:51:31.394034500   File "/usr/lib/python3.8/site-packages/serial/serialposix.py", line 509, in read
2024-01-04 11:51:31.394040500     raise SerialException('read failed: {}'.format(e))
2024-01-04 11:51:31.394123500 serial.serialutil.SerialException: read failed: device reports readiness to read but returned no data (device disconnected or multiple access on port?)
2024-01-04 11:51:31.394135500 Setted setting /Settings/Devices/serialbattery_SeplosBMS16cells_280_0Ah/LastSeen to 1704369086
2024-01-04 11:51:49.350347500 INFO:SerialBattery:
2024-01-04 11:51:49.351066500 INFO:SerialBattery:Starting dbus-serialbattery
2024-01-04 11:51:49.352587500 INFO:SerialBattery:dbus-serialbattery v1.0.20240102beta
2024-01-04 11:52:05.364040500 INFO:SerialBattery:-- Testing BMS: 1 of 3 rounds
2024-01-04 11:52:05.365059500 INFO:SerialBattery:Testing Seplos
2024-01-04 11:52:06.492455500 INFO:SerialBattery:Connection established to Seplos
2024-01-04 11:52:06.493148500 INFO:SerialBattery:Battery Seplos connected to dbus from /dev/ttyUSB1
2024-01-04 11:52:06.493853500 INFO:SerialBattery:========== Settings ==========
2024-01-04 11:52:06.494517500 INFO:SerialBattery:> Connection voltage: 54.89V | Current: 0.54A | SoC: None%
2024-01-04 11:52:06.495200500 INFO:SerialBattery:> Cell count: 16 | Cells populated: 0
2024-01-04 11:52:06.495794500 INFO:SerialBattery:> LINEAR LIMITATION ENABLE: True
2024-01-04 11:52:06.496553500 INFO:SerialBattery:> MAX BATTERY CHARGE CURRENT: 100.0A | MAX BATTERY DISCHARGE CURRENT: 100.0A
2024-01-04 11:52:06.497154500 INFO:SerialBattery:> CVCM:     True
2024-01-04 11:52:06.497829500 INFO:SerialBattery:> MIN CELL VOLTAGE: 2.9V | MAX CELL VOLTAGE: 3.45V
2024-01-04 11:52:06.498439500 INFO:SerialBattery:> CCCM CV:  True  | DCCM CV:  True
2024-01-04 11:52:06.499182500 INFO:SerialBattery:> CCCM T:   True  | DCCM T:   True
2024-01-04 11:52:06.500033500 INFO:SerialBattery:> CCCM SOC: True  | DCCM SOC: True
2024-01-04 11:52:06.500819500 INFO:SerialBattery:Serial Number/Unique Identifier: SeplosBMS16cells_280.0Ah
2024-01-04 11:52:06.981223500 INFO:SerialBattery:Found existing battery with DeviceInstance = 1
2024-01-04 11:52:07.238327500 INFO:SerialBattery:DeviceInstance = 1
2024-01-04 11:52:07.239097500 INFO:SerialBattery:Used device instances: ['1']
2024-01-04 11:52:07.240032500 INFO:SerialBattery:com.victronenergy.battery.ttyUSB1
2024-01-04 11:52:07.279239500 INFO:SerialBattery:publish config values = True

Any other information that may be helpful

2024-01-04 11:52:06.494517500 INFO:SerialBattery:> Connection voltage: 54.89V | Current: 0.54A | SoC: None%

SoC: None% could be a hint, but in venusOS the correct SOC is displayed without problems.

About this issue

  • Original URL
  • State: closed
  • Created 6 months ago
  • Comments: 31

Most upvoted comments

Problem is solved for me now! đŸ˜‰ Thxs!

thxs! I will check the CCL with your latest beta after we get some sunshine…

SOC_WHILE_CHARGING                 =  100,   98,   95,   90,   85
MAX_CHARGE_CURRENT_SOC_FRACTION    = 0.00, 0.15, 0.30, 0.45, 1.00

any news?

Unfortunately not. I have to wait for days with more sun and try to reproduce the issue.

You only have to be patient that we can check this. It will take some time.