Louisvdw / dbus-serialbattery

Battery Monitor driver for serial battery in VenusOS GX systems
MIT License
522 stars 164 forks source link

#8 Internal calculation error #1118

Closed iz3man closed 2 weeks ago

iz3man commented 2 weeks ago

Describe the bug

I swapped out the batteries connected to my JKBMS (from 100Ah to 280Ah), but systems 15s. I changed the maximum charge/discharge capavilities, and the total Ah in the BMS directly, and altered max charge/discharge in the config.ini. Afair this is all I changed. After connection to Victron all data that I changed showed up correctly. But after a short time, VRM showed "Battery Monitor - JKBMS [2] - Error: Internal calculation error". I thought this was due to new capacity and the battery maybe needs to fully charge/discharge once or twice. But after 2 weeks this error still pops up every now and then.

How to reproduce

Not sure. I don't know if the error will disappeas if I change back to 100Ah cells, as I don't have them anymore. Fact is, that it appeared after swapping the cells.

Expected behavior

No error appear

Driver version

1.3.20240705

Venus OS device type

Raspberry Pi 3

Venus OS version

v3.50~13

BMS type

JKBMS / Heltec BMS

Cell count

15

Battery count

1

Connection type

Serial USB adapter to TTL

Config file

[DEFAULT]

; --------- Battery Current limits ---------
MAX_BATTERY_CHARGE_CURRENT    = 200
MAX_BATTERY_DISCHARGE_CURRENT = 200

; --------- Cell Voltages ---------
; Description: Cell min/max voltages which are used to calculate the min/max battery voltage
; Example: 16 cells * 3.45V/cell = 55.2V max charge voltage. 16 cells * 2.90V = 46.4V min discharge voltage

MIN_CELL_VOLTAGE   = 2.80

; Max voltage (can seen as absorption voltage)

MAX_CELL_VOLTAGE   = 3.45

; Float voltage (can be seen as resting voltage)

FLOAT_CELL_VOLTAGE = 3.375

; Bulk voltage (may be needed to reset the SoC to 100% once in a while for some BMS)
; Has to be higher as the MAX_CELL_VOLTAGE

BULK_CELL_VOLTAGE  = 3.650

; Specify after how many days the bulk voltage should be reached again
; The timer is reset when the bulk voltage is reached
; Leave empty if you don't want to use this
; Example: Value is set to 15
; day 1: bulk reached once
; day 16: bulk reached twice
; day 31: bulk not reached since it's very cloudy
; day 34: bulk reached since the sun came out
; day 49: bulk reached again, since last time it took 3 days to reach bulk voltage

BULK_AFTER_DAYS = 14

; --------- Bluetooth BMS ---------
; Description: List the Bluetooth BMS here that you want to install
; -- Available Bluetooth BMS:
; Jkbms_Ble, LltJbd_Ble
; Example:
;     1 BMS: Jkbms_Ble C8:47:8C:00:00:00
;     3 BMS: Jkbms_Ble C8:47:8C:00:00:00, Jkbms_Ble C8:47:8C:00:00:11, Jkbms_Ble C8:47:8C:00:00:22
; BLUETOOTH_BMS = Jkbms_Ble C8:47:8C:xx.....

; --------- BMS disconnect behaviour ---------
; Description: Block charge and discharge when the communication to the BMS is lost. If you are removing the
;              BMS on purpose, then you have to restart the driver/system to reset the block.
; False: Charge and discharge is not blocked on BMS communication loss
; True: Charge and discharge is blocked on BMS communication loss, it's unblocked when connection is established
;       again or the driver/system is restarted

BLOCK_ON_DISCONNECT = False

; --------- Charge mode ---------
; Choose the mode for voltage / current limitations (True / False)
; False is a step mode: This is the default with limitations on hard boundary steps
; True is a linear mode:
;     For CCL and DCL the values between the steps are calculated for smoother values (by WaldemarFech)
;     For CVL max battery voltage is calculated dynamically in order that the max cell voltage is not exceeded

LINEAR_LIMITATION_ENABLE = True

; Specify in seconds how often the linear values should be recalculated

LINEAR_RECALCULATION_EVERY = 60

; Specify in percent when the linear values should be recalculated immediately
; Example: 5 for a immediate change, when the value changes by more than 5%

LINEAR_RECALCULATION_ON_PERC_CHANGE = 5

; --------- Charge Voltage limitation (affecting CVL) ---------
; Description: Limit max charging voltage (MAX_CELL_VOLTAGE * cell count), switch from max voltage to float
;              voltage (FLOAT_CELL_VOLTAGE * cell count) and back
;     False: Max charging voltage is always kept
;     True: Max charging voltage is reduced based on charge mode
;         Step mode: After max voltage is reached for MAX_VOLTAGE_TIME_SEC it switches to float voltage. After
;                    SoC is below SOC_LEVEL_TO_RESET_VOLTAGE_LIMIT it switches back to max voltage.
;         Linear mode: After max voltage is reachend and cell voltage difference is smaller or equal to
;                      CELL_VOLTAGE_DIFF_KEEP_MAX_VOLTAGE_UNTIL it switches to float voltage after 300 (fixed)
;                      additional seconds.
;                      After cell voltage difference is greater or equal to CELL_VOLTAGE_DIFF_TO_RESET_VOLTAGE_LIMIT
;                      OR
;                      SoC is below SOC_LEVEL_TO_RESET_VOLTAGE_LIMIT
;                      it switches back to max voltage.
; Example: The battery reached max voltage of 55.2V and hold it for 900 seconds, the the CVL is switched to
;          float voltage of 53.6V to don't stress the batteries. Allow max voltage of 55.2V again, if SoC is
;          once below 90%
;          OR
;          The battery reached max voltage of 55.2V and the max cell difference is 0.010V, then switch to float
;          voltage of 53.6V after 300 additional seconds to don't stress the batteries. Allow max voltage of
;          55.2V again if max cell difference is above 0.080V or SoC below 90%.
; Charge voltage control management enable (True/False).

CVCM_ENABLE = True

; -- CVL reset based on cell voltage diff (linear mode)
; Specify cell voltage diff where CVL limit is kept until diff is equal or lower

CELL_VOLTAGE_DIFF_KEEP_MAX_VOLTAGE_UNTIL = 0.010

; Specify cell voltage diff where CVL limit is reset to max voltage, if value get above
; the cells are considered as imbalanced, if the cell diff exceeds 5% of the nominal cell voltage
; e.g. 3.2 V * 5 / 100 = 0.160 V

CELL_VOLTAGE_DIFF_TO_RESET_VOLTAGE_LIMIT = 0.10

; -- CVL reset based on SoC option (step mode & linear mode)
; Specify how long the max voltage should be kept
;     Step mode: If reached then switch to float voltage
;     Linear mode: If cells are balanced keep max voltage for further MAX_VOLTAGE_TIME_SEC seconds

MAX_VOLTAGE_TIME_SEC = 900

; Specify SoC where CVL limit is reset to max voltage
;     Step mode: If SoC gets below
;     Linear mode: If cells are unbalanced or if SoC gets below
SOC_LEVEL_TO_RESET_VOLTAGE_LIMIT = 80

; --------- Cell Voltage Current limitation (affecting CCL/DCL) ---------
; Description: Maximal charge / discharge current will be in-/decreased depending on min and max cell voltages
; Example: 18 cells * 3.55V/cell = 63.9V max charge voltage
;          18 cells * 2.70V/cell = 48.6V min discharge voltage
;          But in reality not all cells reach the same voltage at the same time. The (dis)charge current
;          will be (in-/)decreased, if even ONE SINGLE BATTERY CELL reaches the limits

; Charge current control management referring to cell-voltage enable (True/False).

CCCM_CV_ENABLE = True

; Discharge current control management referring to cell-voltage enable (True/False).

DCCM_CV_ENABLE = True

; Set steps to reduce battery current
; The current will be changed linear between those steps if LINEAR_LIMITATION_ENABLE is set to True
; CELL_VOLTAGES_WHILE_CHARGING   = 3.55, 3.50, 3.45, 3.30
; MAX_CHARGE_CURRENT_CV_FRACTION =    0, 0.05,  0.5,    1

CELL_VOLTAGES_WHILE_CHARGING   = 3.55, 3.50, 3.45, 3.40, 3.35
MAX_CHARGE_CURRENT_CV_FRACTION =    0, 0.60, 0.80, 0.90,    1

CELL_VOLTAGES_WHILE_DISCHARGING   = 2.70, 2.80, 2.90, 3.10
MAX_DISCHARGE_CURRENT_CV_FRACTION =    0,  0.1,  0.5,    1

; --------- Temperature limitation (affecting CCL/DCL) ---------
; Description: Maximal charge / discharge current will be in-/decreased depending on temperature
; Example: The temperature limit will be monitored to control the currents. If there are two temperature senors,
;          then the worst case will be calculated and the more secure lower current will be set.
; Charge current control management referring to temperature enable (True/False).

CCCM_T_ENABLE = True

; Charge current control management referring to temperature enable (True/False).

DCCM_T_ENABLE = True

; Set steps to reduce battery current
; The current will be changed linear between those steps if LINEAR_LIMITATION_ENABLE is set to True

TEMPERATURE_LIMITS_WHILE_CHARGING =      0,   2,   5,  10,  15, 20, 35,  40, 55
MAX_CHARGE_CURRENT_T_FRACTION     =      0, 0.1, 0.2, 0.4, 0.5,  1,  1, 0.8,  0

TEMPERATURE_LIMITS_WHILE_DISCHARGING = -20,   0,   5,  10, 15, 45, 55
MAX_DISCHARGE_CURRENT_T_FRACTION     =   0, 0.2, 0.5, 0.4,  1,  1,  0

; --------- SOC limitation (affecting CCL/DCL) ---------
; Description: Maximal charge / discharge current will be increased / decreased depending on State of Charge,
;              see CC_SOC_LIMIT1 etc.
; Example: The SoC limit will be monitored to control the currents.
; Charge current control management enable (True/False).

CCCM_SOC_ENABLE = False

; Discharge current control management enable (True/False).

DCCM_SOC_ENABLE = True

; Charge current SoC limits

CC_SOC_LIMIT1 = 98
CC_SOC_LIMIT2 = 95
CC_SOC_LIMIT3 = 91

; Charge current limits

CC_CURRENT_LIMIT1_FRACTION = 0.1
CC_CURRENT_LIMIT2_FRACTION = 0.3
CC_CURRENT_LIMIT3_FRACTION = 0.5

; Discharge current SoC limits

DC_SOC_LIMIT1 = 10
DC_SOC_LIMIT2 = 20
DC_SOC_LIMIT3 = 30

; Discharge current limits

DC_CURRENT_LIMIT1_FRACTION = 0.1
DC_CURRENT_LIMIT2_FRACTION = 0.3
DC_CURRENT_LIMIT3_FRACTION = 0.5

; --------- Time-To-Go ---------
; Description: Calculates the time to go shown in the GUI
;              Recalculation is done based on TIME_TO_SOC_RECALCULATE_EVERY

TIME_TO_GO_ENABLE = True

; --------- Time-To-Soc ---------
; Description: Calculates the time to a specific SoC
; Example: TIME_TO_SOC_POINTS = 50, 25, 15, 0
;          6h 24m remaining until 50% SoC
;          17h 36m remaining until 25% SoC
;          22h 5m remaining until 15% SoC
;          28h 48m remaining until 0% SoC
; Set of SoC percentages to report on dbus and MQTT. The more you specify the more it will impact system performance.
; [Valid values 0-100, comma separated list. More that 20 intervals are not recommended]
; Example: TIME_TO_SOC_POINTS = 100, 95, 90, 85, 75, 50, 25, 20, 10, 0
; Leave empty to disable

TIME_TO_SOC_POINTS =

; Specify TimeToSoc value type [Valid values 1, 2, 3]
; 1 Seconds
; 2 Time string <days>d <hours>h <minutes>m <seconds>s
; 3 Both seconds and time string "<seconds> [<days>d <hours>h <minutes>m <seconds>s]"

TIME_TO_SOC_VALUE_TYPE = 1

; Specify in seconds how often the TimeToSoc should be recalculated
; Minimum are 5 seconds to prevent CPU overload

TIME_TO_SOC_RECALCULATE_EVERY = 60

; Include TimeToSoC points when moving away from the SoC point [Valid values True, False]
; These will be as negative time. Disabling this improves performance slightly

TIME_TO_SOC_INC_FROM = False

; --------- Additional settings ---------
; Specify one or more BMS types to load else leave empty to try to load all available
; -- Available BMS:
; Daly, Ecs, HeltecModbus, HLPdataBMS4S, Jkbms, Lifepower, LltJbd, Renogy, Seplos
; -- Available BMS, but disabled by default (just enter one or more below and it will be enabled):
; ANT, MNB, Sinowealth

BMS_TYPE = Jkbms

; Exclude this serial devices from the driver startup
; Example: /dev/ttyUSB2, /dev/ttyUSB4
; EXCLUDED_DEVICES = /dev/ttyUSB1

; Enter custom battery names here or change it over the GUI
; Example:
;     /dev/ttyUSB0:My first battery
;     /dev/ttyUSB0:My first battery,/dev/ttyUSB1:My second battery

CUSTOM_BATTERY_NAMES = /dev/ttyUSB0:JKBMS

; Auto reset SoC
; If on, then SoC is reset to 100%, if the value switches from absorption to float voltage
; Currently only working for Daly BMS

AUTO_RESET_SOC = True

; Publish the config settings to the dbus path "/Info/Config/"

PUBLISH_CONFIG_VALUES = 1

; Select the format of cell data presented on dbus [Valid values 0,1,2,3]
; 0 Do not publish all the cells (only the min/max cell data as used by the default GX)
; 1 Format: /Voltages/Cell (also available for display on Remote Console)
; 2 Format: /Cell/#/Volts
; 3 Both formats 1 and 2

BATTERY_CELL_DATA_FORMAT = 1

; Simulate Midpoint graph (True/False).

MIDPOINT_ENABLE = False

; Battery temperature
; Specify how the battery temperature is assembled
; 0 Get mean of temperature sensor 1 to sensor 4
; 1 Get only temperature from temperature sensor 1
; 2 Get only temperature from temperature sensor 2
; 3 Get only temperature from temperature sensor 3
; 4 Get only temperature from temperature sensor 4
TEMP_BATTERY = 0

; Temperature sensor 1 name
TEMP_1_NAME = Temp 1

; Temperature sensor 2 name
TEMP_2_NAME = Temp 2

; Temperature sensor 2 name
TEMP_3_NAME = Temp 3

; Temperature sensor 2 name
TEMP_4_NAME = Temp 4

; --------- BMS specific settings ---------

; -- LltJbd settings
; SoC low levels
; NOTE: SOC_LOW_WARNING is also used to calculate the Time-To-Go even if you are not using a LltJbd BMS
SOC_LOW_WARNING = 20
SOC_LOW_ALARM   = 10

; -- Daly settings
; Battery capacity (amps), if the BMS does not support reading it

BATTERY_CAPACITY = 300

; Invert Battery Current. Default non-inverted. Set to -1 to invert

INVERT_CURRENT_MEASUREMENT = 1

; -- ESC GreenMeter and Lipro device settings
GREENMETER_ADDRESS  = 1
LIPRO_START_ADDRESS = 2
LIPRO_END_ADDRESS   = 4
LIPRO_CELL_COUNT = 15

; -- HeltecModbus (Heltec SmartBMS/YYBMS) settings
; Set the Modbus addresses from the adapters
; Separate each address to check by a comma like: 1, 2, 3, ...
; factory default address will be 1
HELTEC_MODBUS_ADDR = 1

; --------- Battery monitor specific settings ---------
; If you are using a SmartShunt or something else as a battery monitor, the battery voltage reported
; from the BMS and SmartShunt could differ. This causes, that the driver never goapplies the float voltage,
; since max voltage is never reached.
; Example:
;     cell count: 16
;     MAX_CELL_VOLTAGE = 3.45
;     max voltage calculated = 16 * 3.45 = 55.20
;     CVL is set to 55.20 and the battery is now charged until the SmartShunt measures 55.20 V. The BMS
;     now measures 55.05 V since there is a voltage drop of 0.15 V. Since the dbus-serialbattery measures
;     55.05 V the max voltage is never reached for the driver and max voltage is kept forever.
;     Set VOLTAGE_DROP to 0.15
VOLTAGE_DROP = 0.00

Relevant log output

@4000000066bb3ed20c392874 INFO: loading config file /data/conf/serial-starter.d/dbus-serialbattery.conf
@4000000066bb3f3818e41bc4 INFO: Create daemontools service dbus-serialbattery.ttyUSB0
@4000000066bb3f3e1cd8be24 INFO: Start service dbus-serialbattery.ttyUSB0 once
@4000000066bb6d1313191f3c INFO: Start service dbus-serialbattery.ttyUSB0 once
@4000000066bb6d4506f1d30c INFO: Start service dbus-serialbattery.ttyUSB0 once
@4000000066bc5cb92e5c280c INFO: loading config file /data/conf/serial-starter.d/dbus-serialbattery.conf
@4000000066bc5ccb14478164 INFO: Create daemontools service dbus-serialbattery.ttyUSB0
@4000000066bc5cd123d74cf4 INFO: Start service dbus-serialbattery.ttyUSB0 once
@4000000066bc5d322426054c INFO: Start service dbus-serialbattery.ttyUSB0 once
@4000000066bf6c863a6bbdec INFO: loading config file /data/conf/serial-starter.d/dbus-serialbattery.conf
@4000000066bf6c973b43bae4 ERROR: no service template for dbus-serialbattery
@4000000066bf6cd00385c584 INFO: loading config file /data/conf/serial-starter.d/dbus-serialbattery.conf
@4000000066bf6d09154f585c INFO: Create daemontools service dbus-serialbattery.ttyUSB0
@4000000066bf6d0f182a5cfc INFO: Start service dbus-serialbattery.ttyUSB0 once

root@raspberrypi2:~# tail -F -n 100 /data/log/dbus-serialbattery.ttyUSB0/current | tai64nlocal
2024-08-14 07:30:06.230527500 INFO:SerialBattery:> CCCM CV:  True  | DCCM CV:  True
2024-08-14 07:30:06.231112500 INFO:SerialBattery:> CCCM T:   True  | DCCM T:   True
2024-08-14 07:30:06.231641500 INFO:SerialBattery:> CCCM SOC: False | DCCM SOC: True
2024-08-14 07:30:06.232130500 INFO:SerialBattery:> CHARGE FET: True | DISCHARGE FET: True | BALANCE FET: True
2024-08-14 07:30:06.232626500 INFO:SerialBattery:Serial Number/Unique Identifier: JK-BD6A20S10
2024-08-14 07:30:27.591418500 ERROR:SerialBattery:>>> ERROR: No reply - returning [len:115/4011]
2024-08-14 07:30:33.662060500 ERROR:SerialBattery:CRC checksum mismatch: Expected 0x5986, Got 0x58e1
2024-08-14 07:30:59.622691500 ERROR:SerialBattery:>>> ERROR: No reply - returning [len:281/287]
2024-08-16 15:12:59.288343500 *** CCGX booted (0) ***
2024-08-16 15:13:57.346331500 *** CCGX booted (0) ***
2024-08-16 15:15:14.999901500 INFO:SerialBattery:
2024-08-16 15:15:15.000430500 INFO:SerialBattery:Starting dbus-serialbattery
2024-08-16 15:15:15.009558500 INFO:SerialBattery:Venus OS v3.50~13
2024-08-16 15:15:15.009564500 INFO:SerialBattery:dbus-serialbattery v1.3.20240705
2024-08-16 15:15:31.020297500 INFO:SerialBattery:-- Testing BMS: 1 of 3 rounds
2024-08-16 15:15:31.020856500 INFO:SerialBattery:Testing Jkbms
2024-08-16 15:15:31.075524500 INFO:SerialBattery:Connection established to Jkbms
2024-08-16 15:15:31.083679500 WARNING:root:USING OUTDATED REGISTRATION METHOD!
2024-08-16 15:15:31.084137500 WARNING:root:Please set register=False, then call the register method after adding all mandatory paths. See https://github.com/victronenergy/venus/wiki/dbus-api
2024-08-16 15:15:31.532918500 INFO:SerialBattery:Found existing battery with DeviceInstance = 2
2024-08-16 15:15:31.838498500 INFO:SerialBattery:DeviceInstance = 2
2024-08-16 15:15:31.839910500 INFO:SerialBattery:PID file created successfully: /var/tmp/dbus-serialbattery_2.pid
2024-08-16 15:15:31.840854500 INFO:SerialBattery:Used DeviceInstances = ['1', '2']
2024-08-16 15:15:31.841480500 INFO:SerialBattery:com.victronenergy.battery.ttyUSB0
2024-08-16 15:15:31.882618500 INFO:SerialBattery:publish config values = False
2024-08-16 15:15:31.884281500 INFO:SerialBattery:Battery JKBMS connected to dbus from /dev/ttyUSB0
2024-08-16 15:15:31.884764500 INFO:SerialBattery:========== Settings ==========
2024-08-16 15:15:31.885403500 INFO:SerialBattery:> Connection voltage: 51.2 V | Current: 14.6 A | SoC: 99%
2024-08-16 15:15:31.885849500 INFO:SerialBattery:> Cell count: 15 | Cells populated: 15
2024-08-16 15:15:31.887143500 INFO:SerialBattery:> LINEAR LIMITATION ENABLE: True
2024-08-16 15:15:31.887819500 INFO:SerialBattery:> MIN CELL VOLTAGE: 2.800 V | MAX CELL VOLTAGE: 3.450 V| FLOAT CELL VOLTAGE: 3.375 V
2024-08-16 15:15:31.888415500 INFO:SerialBattery:> MAX BATTERY CHARGE CURRENT: 200.0 A | MAX BATTERY DISCHARGE CURRENT: 200.0 A
2024-08-16 15:15:31.889039500 INFO:SerialBattery:> MAX BATTERY CHARGE CURRENT: 70.0 A | MAX BATTERY DISCHARGE CURRENT: 80.0 A (read from BMS)
2024-08-16 15:15:31.889646500 INFO:SerialBattery:> CVCM:     True
2024-08-16 15:15:31.890175500 INFO:SerialBattery:> CCCM CV:  True  | DCCM CV:  True
2024-08-16 15:15:31.890789500 INFO:SerialBattery:> CCCM T:   True  | DCCM T:   True
2024-08-16 15:15:31.891292500 INFO:SerialBattery:> CCCM SOC: False | DCCM SOC: True
2024-08-16 15:15:31.891859500 INFO:SerialBattery:> CHARGE FET: True | DISCHARGE FET: True | BALANCE FET: True
2024-08-16 15:15:31.892345500 INFO:SerialBattery:Serial Number/Unique Identifier: JK-BD6A20S10
2024-08-26 14:28:50.942541500 ERROR:SerialBattery:CRC checksum mismatch: Expected 0x4e7b, Got 0x4e83
2024-08-27 12:24:12.670591500 ERROR:SerialBattery:CRC checksum mismatch: Expected 0x4e66, Got 0x4ee6
2024-08-27 12:27:58.116983500 ERROR:SerialBattery:CRC checksum mismatch: Expected 0x4d94, Got 0x4dba
2024-08-27 12:35:22.771420500 ERROR:SerialBattery:CRC checksum mismatch: Expected 0x4eb2, Got 0x4ed2
2024-08-27 12:35:56.810903500 ERROR:SerialBattery:CRC checksum mismatch: Expected 0x4e9e, Got 0x4ebe
2024-08-27 12:37:05.993835500 ERROR:SerialBattery:CRC checksum mismatch: Expected 0x4df5, Got 0x4e75
2024-08-27 12:40:09.280846500 ERROR:SerialBattery:CRC checksum mismatch: Expected 0x4e1a, Got 0x4e9a
2024-08-28 07:30:34.622984500 *** CCGX booted (0) ***
2024-08-28 07:31:07.284296500 INFO:SerialBattery:
2024-08-28 07:31:07.285034500 INFO:SerialBattery:Starting dbus-serialbattery
2024-08-28 07:31:07.286700500 INFO:SerialBattery:Venus OS v3.50~13
2024-08-28 07:31:07.287598500 INFO:SerialBattery:dbus-serialbattery v1.3.20240705
2024-08-28 07:31:29.482789500 INFO:SerialBattery:
2024-08-28 07:31:29.483697500 INFO:SerialBattery:Starting dbus-serialbattery
2024-08-28 07:31:29.488977500 INFO:SerialBattery:Venus OS v3.50~13
2024-08-28 07:31:29.489764500 INFO:SerialBattery:dbus-serialbattery v1.3.20240705
2024-08-28 07:31:45.507398500 INFO:SerialBattery:-- Testing BMS: 1 of 3 rounds
2024-08-28 07:31:45.507419500 INFO:SerialBattery:Testing Jkbms
2024-08-28 07:31:45.802375500 ERROR:SerialBattery:>>> ERROR: No reply - returning
2024-08-28 07:31:46.303433500 INFO:SerialBattery:-- Testing BMS: 2 of 3 rounds
2024-08-28 07:31:46.303934500 INFO:SerialBattery:Testing Jkbms
2024-08-28 07:31:46.587389500 ERROR:SerialBattery:>>> ERROR: No reply - returning
2024-08-28 07:31:47.089766500 INFO:SerialBattery:-- Testing BMS: 3 of 3 rounds
2024-08-28 07:31:47.090426500 INFO:SerialBattery:Testing Jkbms
2024-08-28 07:31:47.153237500 INFO:SerialBattery:Connection established to Jkbms
2024-08-28 07:31:47.161843500 WARNING:root:USING OUTDATED REGISTRATION METHOD!
2024-08-28 07:31:47.164879500 WARNING:root:Please set register=False, then call the register method after adding all mandatory paths. See https://github.com/victronenergy/venus/wiki/dbus-api
2024-08-28 07:31:47.656949500 INFO:SerialBattery:Found existing battery with DeviceInstance = 2
2024-08-28 07:31:47.903268500 INFO:SerialBattery:DeviceInstance = 2
2024-08-28 07:31:47.904461500 INFO:SerialBattery:PID file created successfully: /var/tmp/dbus-serialbattery_2.pid
2024-08-28 07:31:47.904952500 INFO:SerialBattery:Used DeviceInstances = ['1', '2']
2024-08-28 07:31:47.905424500 INFO:SerialBattery:com.victronenergy.battery.ttyUSB0
2024-08-28 07:31:47.946630500 INFO:SerialBattery:publish config values = False
2024-08-28 07:31:47.948176500 INFO:SerialBattery:Battery JKBMS connected to dbus from /dev/ttyUSB0
2024-08-28 07:31:47.948908500 INFO:SerialBattery:========== Settings ==========
2024-08-28 07:31:47.949249500 INFO:SerialBattery:> Connection voltage: 50.11 V | Current: 32.57 A | SoC: 49%
2024-08-28 07:31:47.951020500 INFO:SerialBattery:> Cell count: 15 | Cells populated: 15
2024-08-28 07:31:47.951577500 INFO:SerialBattery:> LINEAR LIMITATION ENABLE: True
2024-08-28 07:31:47.952135500 INFO:SerialBattery:> MIN CELL VOLTAGE: 2.800 V | MAX CELL VOLTAGE: 3.450 V| FLOAT CELL VOLTAGE: 3.375 V
2024-08-28 07:31:47.956307500 INFO:SerialBattery:> MAX BATTERY CHARGE CURRENT: 200.0 A | MAX BATTERY DISCHARGE CURRENT: 200.0 A
2024-08-28 07:31:47.956919500 INFO:SerialBattery:> MAX BATTERY CHARGE CURRENT: 70.0 A | MAX BATTERY DISCHARGE CURRENT: 80.0 A (read from BMS)
2024-08-28 07:31:47.957504500 INFO:SerialBattery:> CVCM:     True
2024-08-28 07:31:47.957934500 INFO:SerialBattery:> CCCM CV:  True  | DCCM CV:  True
2024-08-28 07:31:47.959335500 INFO:SerialBattery:> CCCM T:   True  | DCCM T:   True
2024-08-28 07:31:47.959936500 INFO:SerialBattery:> CCCM SOC: False | DCCM SOC: True
2024-08-28 07:31:47.960397500 INFO:SerialBattery:> CHARGE FET: True | DISCHARGE FET: True | BALANCE FET: True
2024-08-28 07:31:47.960846500 INFO:SerialBattery:Serial Number/Unique Identifier: JK-BD6A20S10
2024-08-28 07:32:11.966745500 ERROR:SerialBattery:>>> ERROR: No reply - returning [len:96/2738]
2024-08-28 07:32:18.031757500 ERROR:SerialBattery:CRC checksum mismatch: Expected 0x49c3, Got 0x491e
2024-08-28 07:32:29.048820500 ERROR:SerialBattery:CRC checksum mismatch: Expected 0x494d, Got 0x4889
2024-08-28 08:59:46.483630500 INFO:SerialBattery:
2024-08-28 08:59:46.484105500 INFO:SerialBattery:Starting dbus-serialbattery
2024-08-28 08:59:46.488481500 INFO:SerialBattery:Venus OS v3.50~13
2024-08-28 08:59:46.489034500 INFO:SerialBattery:dbus-serialbattery v1.3.20240705
2024-08-28 09:00:02.496545500 INFO:SerialBattery:-- Testing BMS: 1 of 3 rounds
2024-08-28 09:00:02.497075500 INFO:SerialBattery:Testing Jkbms
2024-08-28 09:00:13.496760500 INFO:SerialBattery:
2024-08-28 09:00:13.497235500 INFO:SerialBattery:Starting dbus-serialbattery
2024-08-28 09:00:13.505774500 INFO:SerialBattery:Venus OS v3.50~13
2024-08-28 09:00:13.505782500 INFO:SerialBattery:dbus-serialbattery v1.4.20240826dev
2024-08-28 09:00:26.512930500 *** CCGX booted (0) ***

Any other information that may be helpful

VRM online portal shows: "Status: ALARM", even though everything is working perfectly fine To me it SEEMS the consumed Ah exceed what the system assumes is correct (was 90Ah before), and that's why it's throwing an error. Maybe there still is some config error in my config.ini or in the BMS settings directly?!

mr-manuel commented 2 weeks ago

Unfortunately you did not read the instructions carefully. Please try again.

In your case:

🚨 IMPORTANT 🚨

iz3man commented 2 weeks ago

updated initial post

mr-manuel commented 2 weeks ago

Now we are a bit closer, you read 2 of 3. You are still not using the nightly build.

iz3man commented 2 weeks ago

Now we are a bit closer, you read 2 of 3. You are still not using the nightly build.

one step after the other EDIT: updated to nightly. No change in behaviour

mr-manuel commented 2 weeks ago

There are no fresh logs of the nightly build.

iz3man commented 2 weeks ago
2024-08-28 08:59:46.484105500 INFO:SerialBattery:Starting dbus-serialbattery
2024-08-28 08:59:46.488481500 INFO:SerialBattery:Venus OS v3.50~13
2024-08-28 08:59:46.489034500 INFO:SerialBattery:dbus-serialbattery v1.3.20240705
2024-08-28 09:00:02.496545500 INFO:SerialBattery:-- Testing BMS: 1 of 3 rounds
2024-08-28 09:00:02.497075500 INFO:SerialBattery:Testing Jkbms
2024-08-28 09:00:13.496760500 INFO:SerialBattery:
2024-08-28 09:00:13.497235500 INFO:SerialBattery:Starting dbus-serialbattery
2024-08-28 09:00:13.505774500 INFO:SerialBattery:Venus OS v3.50~13
2024-08-28 09:00:13.505782500 INFO:SerialBattery:dbus-serialbattery v1.4.20240826dev
2024-08-28 09:00:26.512930500 *** CCGX booted (0) ***

Those ARE the latest logs. It shows Aug26 dev. Anything else you're missing? I have no idea where the 1.3 debug info comes from. Should I manually deinstall it?

iz3man commented 2 weeks ago

I manually did uninstall the old driver, rebooted and reinstalled the nightly:

2024-08-28 09:00:26.512930500 *** CCGX booted (0) ***
2024-08-28 09:02:16.624240500 INFO:SerialBattery:
2024-08-28 09:02:16.624931500 INFO:SerialBattery:Starting dbus-serialbattery
2024-08-28 09:02:16.626599500 INFO:SerialBattery:Venus OS v3.50~13
2024-08-28 09:02:16.627177500 INFO:SerialBattery:dbus-serialbattery v1.4.20240826dev
2024-08-28 09:02:32.639488500 INFO:SerialBattery:-- Testing BMS: 1 of 3 rounds
2024-08-28 09:02:32.639495500 INFO:SerialBattery:Testing Jkbms
2024-08-28 09:02:32.928960500 ERROR:SerialBattery:>>> ERROR: No reply - returning
2024-08-28 09:02:33.431006500 INFO:SerialBattery:-- Testing BMS: 2 of 3 rounds
2024-08-28 09:02:33.431454500 INFO:SerialBattery:Testing Jkbms
2024-08-28 09:02:33.486127500 INFO:SerialBattery:Connection established to Jkbms
2024-08-28 09:02:33.995916500 INFO:SerialBattery:Found existing battery with DeviceInstance = 2
2024-08-28 09:02:34.300497500 INFO:SerialBattery:DeviceInstance = 2
2024-08-28 09:02:34.301916500 INFO:SerialBattery:PID file created successfully: /var/tmp/dbus-serialbattery_2.pid
2024-08-28 09:02:34.302538500 INFO:SerialBattery:Used DeviceInstances = ['1', '2']
2024-08-28 09:02:34.303037500 INFO:SerialBattery:com.victronenergy.battery.ttyUSB0__0
2024-08-28 09:02:34.341548500 INFO:SerialBattery:publish config values = False
2024-08-28 09:02:34.353216500 INFO:SerialBattery:Polling data every 1.000 s
2024-08-28 09:02:34.354699500 INFO:SerialBattery:Battery JKBMS connected to dbus from /dev/ttyUSB0
2024-08-28 09:02:34.355190500 INFO:SerialBattery:========== Settings ==========
2024-08-28 09:02:34.355795500 INFO:SerialBattery:> Connection voltage: 50.13 V | Current: -2.62 A | SoC: 63%
2024-08-28 09:02:34.356230500 INFO:SerialBattery:> Cell count: 15 | Cells populated: 15
2024-08-28 09:02:34.356697500 INFO:SerialBattery:> LINEAR LIMITATION ENABLE: True
2024-08-28 09:02:34.357222500 INFO:SerialBattery:> MIN CELL VOLTAGE: 2.800 V | MAX CELL VOLTAGE: 3.450 V| FLOAT CELL VOLTAGE: 3.375 V
2024-08-28 09:02:34.357721500 INFO:SerialBattery:> MAX BATTERY CHARGE CURRENT: 200.0 A | MAX BATTERY DISCHARGE CURRENT: 200.0 A
2024-08-28 09:02:34.364186500 INFO:SerialBattery:> MAX BATTERY CHARGE CURRENT: 70.0 A | MAX BATTERY DISCHARGE CURRENT: 80.0 A (read from BMS)
2024-08-28 09:02:34.364196500 INFO:SerialBattery:> CVCM:     True
2024-08-28 09:02:34.364199500 INFO:SerialBattery:> CCCM CV:  True  | DCCM CV:  True
2024-08-28 09:02:34.364203500 INFO:SerialBattery:> CCCM T:   True  | DCCM T:   True
2024-08-28 09:02:34.364206500 INFO:SerialBattery:> CCCM SOC: False | DCCM SOC: True
2024-08-28 09:02:34.364210500 INFO:SerialBattery:> CHARGE FET: True | DISCHARGE FET: True | BALANCE FET: True
2024-08-28 09:02:34.364339500 INFO:SerialBattery:Serial Number/Unique Identifier: JK-BD6A20S10
2024-08-28 09:39:47.985590500 *** CCGX booted (0) ***
mr-manuel commented 2 weeks ago

*** CCGX booted (0) *** indicates a GX device reboot. After there are no new logs. Maybe the serial port changed.

From your new logs I so no more errors.

iz3man commented 2 weeks ago

*** CCGX booted (0) *** indicates a GX device reboot. After there are no new logs. Maybe the serial port changed.

You're right. Sorry. Didn't note that. I was just looking to see the new driver version mentioned.

iz3man commented 2 weeks ago

image

This is from just now. I have no idea which log file would show this error message.

EDIT: hmmm. Maybe it's just a dummy error. And this is an OLD error that needed to be cleared manually. I thought clicking the X in the upper right corner would take care of it. I now manually deleted the error.

Sorry for the stupidity. I will observe this for some time now and see if it will still pop up ... :(

EDIT2: I really shouldn't do that next to my business work: You're correct, that there's no connection to the battery at all for the last 55min now. I can't see the battery in VRM portal, and start-serialbattery.sh shows no connection, just "could not open port /dev/ ....". I will need to look for error when back home at the system.

Gavsv8 commented 2 weeks ago

Hi, I have 4 Daly BMS in parrallel and am using the 232 ports on the interface board. I also used to get the internal calculation error and loss of a bms comms link sometimes when under load charging or discharging. Since going to the nightly build a couple of days ago so far so good. Thanks for all the hard work. I'll let you know if anything changes.

iz3man commented 2 weeks ago

Yep. Seems the nightly code was the solution. No more "internal calculation error" since yesterday afternoon. I will observe some more days and will report here if it comes back, but otherwise the ticket can be closed from me side. Thanks for the support!