Louisvdw / dbus-serialbattery

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

Serialnumber at device is double #985

Closed mactoolz closed 7 months ago

mactoolz commented 8 months ago

Describe the problem

Hello,

i use the seplos BMS at my Victron system. At each seplos BMS i have configured the parameter to see which is the right storage at the driver, i configured the capacity parameter with different value.

But the driver shows me two serialnumber twice the same seralnumber. I checked all my storages and there are different capacities values.

how can i correct the results at the driver.

Thank you

Driver version

1.1.20240121

Venus OS device type

Cerbo GX

Venus OS version

3.21

BMS type

Seplos

Cell count

16

Battery count

5

Connection type

Serial USB adapter to RS485

Config file

[DEFAULT]

; --------- Set logging level ---------
; ERROR: Only errors are logged
; WARNING: Errors and warnings are logged
; INFO: Errors, warnings and info messages are logged
; DEBUG: Errors, warnings, info and debug messages are logged
LOGGING = DEBUG

; --------- Battery Current limits ---------
MAX_BATTERY_CHARGE_CURRENT    = 80.0
MAX_BATTERY_DISCHARGE_CURRENT = 100.0

; --------- 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.900
; Max voltage (can seen as absorption voltage)
MAX_CELL_VOLTAGE   = 3.4
; Float voltage (can be seen as resting voltage)
FLOAT_CELL_VOLTAGE = 3.375

; --------- SOC reset voltage ---------
; Description: May be needed to reset the SoC to 100% once in a while for some BMS, because of SoC drift.
;              Specify the cell voltage where the SoC should be reset to 100% by the BMS.
;                - JKBMS: SoC is reset to 100% if one cell reaches OVP (over voltage protection) voltage
;              As you have to adopt this value to your system, I reccomend to start with
;              OVP voltage - 0.030 (see Example).
;                - Try to increase (add) by 0.005 in steps, if the system does not switch to float mode, even if
;                  the target voltage SOC_RESET_VOLTAGE * CELL_COUNT is reached.
;                - Try to decrease (lower) by 0.005 in steps, if the system hits the OVP too fast, before all
;                  cells could be balanced and the system goes into protection mode multiple times.
; Example: If OVP is 3.650, then start with 3.620 and increase/decrease by 0.005
; Note: The value has to be higher as the MAX_CELL_VOLTAGE
SOC_RESET_VOLTAGE = 3.4
; Specify after how many days the soc reset voltage should be reached again
; The timer is reset when the soc reset voltage is reached
; Leave empty if you don't want to use this
; Example: Value is set to 15
; day 1: soc reset reached once
; day 16: soc reset reached twice
; day 31: soc reset not reached since it's very cloudy
; day 34: soc reset reached since the sun came out
; day 49: soc reset reached again, since last time it took 3 days to reach soc reset voltage
SOC_RESET_AFTER_DAYS = 15

; --------- Bluetooth BMS ---------
; Description: Specify the Bluetooth BMS and it's MAC address that you want to install. Leave emty to disable
; -- Available Bluetooth BMS:
; Jkbms_Ble, LltJbd_Ble
; Example for one BMS:
; BLUETOOTH_BMS = Jkbms_Ble C8:47:8C:00:00:00
; Example for multiple BMS:
; BLUETOOTH_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 =

; --------- Bluetooth use USB ---------
; Description:  Some users reported issues to the built in bluetooth module, you can try to fix it with an USB
;               module. After a change you have to run reinstall-local.sh and to manual reboot the device!
;               The usb bluetooth module must have BLE support (bluetooth version >= 4.0)
;               Other bluetooth devices such as Ruuvi tags not tested yet.
; False: Use the built in bluetooth module
; True: Disable built in bluetooth module and try to use USB module
BLUETOOTH_USE_USB = False

; --------- CAN BMS ---------
; Description: Specify the CAN port(s) where the BMS is connected to. Leave empty to disable
; -- Available CAN BMS:
; Daly_Can, Jkbms_Can
; Example for one CAN port:
; CAN_PORT = can0
; Example for multiple CAN ports:
; CAN_PORT = can0, can8, can9
CAN_PORT =

; --------- 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 for 20 minutes, if cell voltages are between 3.25 V and 3.35 V. Else the driver block charge and discharge after 60 seconds.
; True: Charge and discharge is blocked on BMS communication loss, it's unblocked when connection is established
;       again or the driver/system is restarted. This is the Victron Energy default behaviour.
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 = 15
; 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 = 2

; --------- 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 80%
;          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 80%.
; 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 MAX_VOLTAGE_TIME_SEC restarts if diff is bigger
CELL_VOLTAGE_DIFF_KEEP_MAX_VOLTAGE_TIME_RESTART = 0.013
; 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.080

; -- 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 = 240
; 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

; --------- SOC calculation ---------
; Description: Calculate the SOC in the driver. Do not use the SOC reported by the BMS
; SOC_CALCULATION:
;     True: Calc SOC in the driver, do not use SOC reported from BMS
;         - The SOC is calculated by integration of the current reported by the BMS
;         - The current reported from the BMS can be corrected by
;           the map (SOC_CALC_CURRENT_REPORTED_BY_BMS, SOC_CALC_CURRENT_MEASURED_BY_USER)
;         - The SOC is set to 100% if the following conditions apply for at least SOC_RESET_TIME seconds:
;             * Current is lower than SOC_RESET_CURRENT amps
;             * Sum of cell voltages >= self.max_battery_voltage - VOLTAGE_DROP
;         - The calculated SOC is stored in dbus to persist a driver restart
;     False: Use SOC reported from BMS (none of the other parameters apply)
; More info: https://github.com/Louisvdw/dbus-serialbattery/pull/868
SOC_CALCULATION = False
SOC_RESET_CURRENT = 7
SOC_RESET_TIME = 60
SOC_CALC_CURRENT_REPORTED_BY_BMS  = -300, 300
SOC_CALC_CURRENT_MEASURED_BY_USER = -300, 300
; Example to set small currents to zero
; SOC_CALC_CURRENT_REPORTED_BY_BMS  = -300, -0.5, 0.5, 300
; SOC_CALC_CURRENT_MEASURED_BY_USER = -300,    0,   0, 300

; --------- 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.4, 3.37, 3.33, 3.30
MAX_CHARGE_CURRENT_CV_FRACTION =    0, 0.04,  0.7,    1

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

; --------- Cell Voltage limitation (affecting CVL) ---------
; This function prevents a bad balanced battery to overcharge the cell with the highest voltage and the bms to
; switch off because of overvoltage of this cell.
;
; Example:
; 15 cells are at 3.4v, 1 cell is at 3.6v. Total voltage of battery is 54.6v and the Victron System sees no reason to
; lower the charging current as the control_voltage (Absorbtion Voltage) ist 55.2v
; In this case the Cell Voltage limitation kicks in and lowers the control_voltage to keep it close to the MAX_CELL_VOLTAGE.
;
; In theory this can also be done with CCL, but doing it with CVL has 2 advantages:
;   - In a well balanced system the current can be kept quite high till the end of charge by using MAX_CELL_VOLTAGE for charging.
;   - In systems with MPPTs and DC-feed-in activated the victron systems do not respect CCL, so CVL is the only way to prevent the
;     highest cell in a bad balanced system from overcharging.
;
; There are 2 methods implemented to calculate CVL:
;   1. penalty_sum-Method (CVL_ICONTROLLER_MODE = False)
;      The voltage-overshoot of all cells that exceed MAX_CELL_VOLTAGE is summed up and the control voltage is lowered by this "penalty_sum".
;      This is calculated every LINEAR_RECALCULATION_EVERY seconds.
;      In fact, this is a P-Controller.
;   2. I-Controller (CVL_ICONTROLLER_MODE = True)
;      An I-Controller tries to control the voltage of the highest cell to MAX_CELL_VOLTAGE + CELL_VOLTAGE_DIFF_KEEP_MAX_VOLTAGE_UNTIL.
;      (for example 3.45V+0.01V =3.46V). If the voltage of the highest cell is above this level, CVL is reduced. If the voltage is below, CVL is
;      increased until cellcount*MAX_CELL_VOLTAGE.
;      An I-Part of 0.2 V/Vs (CVL_ICONTROLLER_FACTOR) has proved to be a stable and fast controlling-behaviour.
;      This method is not as fast as the penalty_sum-Method but usually smoother and more stable against toggeling and has no stationary deviation.
; More info: https://github.com/Louisvdw/dbus-serialbattery/pull/882
CVL_ICONTROLLER_MODE = False
CVL_ICONTROLLER_FACTOR = 0.2

; --------- 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.8,  1,  1, 0.4,  0

TEMPERATURE_LIMITS_WHILE_DISCHARGING = -20,   0,   5,  10, 15, 45, 55
MAX_DISCHARGE_CURRENT_T_FRACTION     =   0, 0.2, 0.3, 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 = True
; Discharge current control management enable (True/False).
DCCM_SOC_ENABLE = True

; Charge current SoC limits
CC_SOC_LIMIT1 = 98
CC_SOC_LIMIT2 = 96
CC_SOC_LIMIT3 = 94

; 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 = 30
; 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 = Seplos

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

; 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:AkkuPack1,/dev/ttyUSB1:AkkuPack2,/dev/ttyUSB2:AkkuPack3,/dev/ttyUSB3:AkkuPack4
;CUSTOM_BATTERY_NAMES =

; 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 and JKBMS BLE
AUTO_RESET_SOC = True

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

; 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 = 10
SOC_LOW_ALARM   = 2

; -- Daly settings
; Battery capacity (amps), if the BMS does not support reading it
BATTERY_CAPACITY = 50
; 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

; --------- Voltage drop ---------
; If you have a voltage drop between the BMS and the charger because of wire size or length
; then you can specify the voltage drop here. The driver will then add the voltage drop
; to the calculated CVL to compensate.
; Example:
;     cell count: 16
;     MAX_CELL_VOLTAGE = 3.45
;     max voltage calculated = 16 * 3.45 = 55.20
;     CVL is set to 55.20 V and the battery is now charged until the charger reaches 55.20 V.
;     The BMS now measures 55.05 V since there is a voltage drop of 0.15 V on the cable.
;     Since the dbus-serialbattery reads the voltage of 55.05 V from the BMS the max voltage
;     of 55.20 V is never reached and max voltage is kept forever.
;     By setting the VOLTAGE_DROP to 0.15 V the voltage on the charger is increased and the
;     target voltage on the BMS is reached.
VOLTAGE_DROP = 0.00

Relevant log output

@4000000065da21c213a3f634 *** starting serial-starter ***
@4000000065da21c22c0e6394 serstart starting
@4000000065da21c22d445b24 INFO: loading config file /etc/venus/serial-starter.conf
@4000000065da21c3264d03fc INFO: loading config file /data/conf/serial-starter.d/dbus-serialbattery.conf
@4000000065da21c6024de5ac INFO: Create daemontools service mk2-dbus.ttyS4
@4000000065da21c72492ffbc INFO: Create daemontools service vedirect-interface.ttyS5
@4000000065da21c90a8824e4 INFO: Create daemontools service vedirect-interface.ttyS6
@4000000065da21ca28e36264 INFO: Create daemontools service vedirect-interface.ttyS7
@4000000065da21cc1222e414 INFO: Start service mk2-dbus.ttyS4
@4000000065da21cd30c4b3fc INFO: Start service vedirect-interface.ttyS5
@4000000065da21cf18170bac INFO: Start service vedirect-interface.ttyS6
@4000000065da21d0354b8054 INFO: Start service vedirect-interface.ttyS7
@4000000065da295c0f5d190c INFO: Create daemontools service dbus-serialbattery.ttyUSB0
@4000000065da2962119a8204 INFO: Start service dbus-serialbattery.ttyUSB0 once
@4000000065da296f26011294 INFO: Create daemontools service dbus-serialbattery.ttyUSB1
@4000000065da29752899c2bc INFO: Start service dbus-serialbattery.ttyUSB1 once
@4000000065da29810ee4f724 INFO: Create daemontools service dbus-serialbattery.ttyUSB2
@4000000065da298715b27f2c INFO: Start service dbus-serialbattery.ttyUSB2 once
@4000000065da299322e12554 INFO: Create daemontools service dbus-serialbattery.ttyUSB3
@4000000065da2999261f21e4 INFO: Start service dbus-serialbattery.ttyUSB3 once
@4000000065da29a50f75d514 INFO: Create daemontools service dbus-serialbattery.ttyUSB4
@4000000065da29ab125a9db4 INFO: Start service dbus-serialbattery.ttyUSB4 once
@4000000065da2a5221af870c INFO: Create daemontools service gps-dbus.ttyUSB0
@4000000065da2a532b20468c INFO: Create daemontools service gps-dbus.ttyUSB1
@4000000065da2a5439d4b5dc INFO: Create daemontools service gps-dbus.ttyUSB2
@4000000065da2a580a9071e4 INFO: Create daemontools service gps-dbus.ttyUSB3
@4000000065da2a5825d6264c INFO: Start service gps-dbus.ttyUSB0 once
@4000000065da2a59189c684c INFO: Create daemontools service gps-dbus.ttyUSB4
@4000000065da2a592dd9d8ac INFO: Start service gps-dbus.ttyUSB1 once
@4000000065da2a5b018adbfc INFO: Start service gps-dbus.ttyUSB2 once
@4000000065da2a5e0cfd91b4 INFO: Start service gps-dbus.ttyUSB3 once
@4000000065da2a5f1e944904 INFO: Start service gps-dbus.ttyUSB4 once
@4000000065da2a6231a7c4e4 INFO: Create daemontools service vedirect-interface.ttyUSB0
@4000000065da2a640001462c INFO: Create daemontools service vedirect-interface.ttyUSB1
@4000000065da2a650d8f0be4 INFO: Create daemontools service vedirect-interface.ttyUSB2
@4000000065da2a681dca2ad4 INFO: Create daemontools service vedirect-interface.ttyUSB3
@4000000065da2a68343c3eec INFO: Start service vedirect-interface.ttyUSB0 once
@4000000065da2a6928ccd8dc INFO: Create daemontools service vedirect-interface.ttyUSB4
@4000000065da2a6a027a1244 INFO: Start service vedirect-interface.ttyUSB1 once
@4000000065da2a6b1173b46c INFO: Start service vedirect-interface.ttyUSB2 once
@4000000065da2a6c381d0b2c INFO: Start service dbus-serialbattery.ttyUSB0 once
@4000000065da2a6e23cd5a14 INFO: Start service vedirect-interface.ttyUSB3 once
@4000000065da2a6e3143fa04 INFO: Start service dbus-serialbattery.ttyUSB1 once
@4000000065da2a6f2d87e434 INFO: Start service vedirect-interface.ttyUSB4 once
@4000000065da2a701ed3c304 INFO: Start service dbus-serialbattery.ttyUSB2 once
@4000000065da2a7400125d2c INFO: Start service dbus-serialbattery.ttyUSB3 once
@4000000065da2a751f30851c INFO: Start service dbus-serialbattery.ttyUSB4 once

Any other information that may be helpful

No response

mr-manuel commented 8 months ago

Please read all carefully, which logs we need and how you get them: https://louisvdw.github.io/dbus-serialbattery/troubleshoot/#driver-log-files

There are a few thing missing, we need.

mactoolz commented 8 months ago

which logs will you see, i have 5 battery packs ?

mactoolz commented 8 months ago

again my problem, all packs are working fine, but the problem is that the serial number for identifying a pack is created based on the capacity, e.g. for PAck1 = 281Ah.

Under the device in the Victron you can see the Serial number = SeplosBMS16cells_281_0Ah This serial number does not change even if I change the capacity in the Seplos BMS, even to one that no longer exists.

mactoolz commented 8 months ago

root@einstein:~# ls -l /dev/ttyUSB* crw-rw---- 1 root dialout 188, 0 Feb 25 09:11 /dev/ttyUSB0 crw-rw---- 1 root dialout 188, 1 Feb 25 09:11 /dev/ttyUSB1 crw-rw---- 1 root dialout 188, 2 Feb 25 09:11 /dev/ttyUSB2 crw-rw---- 1 root dialout 188, 3 Feb 25 09:11 /dev/ttyUSB3 crw-rw---- 1 root dialout 188, 4 Feb 25 09:11 /dev/ttyUSB4

root@einstein:~# head /data/var/lib/serial-starter/* ==> /data/var/lib/serial-starter/ttyS4 <== mkx

==> /data/var/lib/serial-starter/ttyS5 <== vedirect

==> /data/var/lib/serial-starter/ttyS6 <== vedirect

==> /data/var/lib/serial-starter/ttyS7 <== vedirect

==> /data/var/lib/serial-starter/ttyUSB0 <== sbattery

==> /data/var/lib/serial-starter/ttyUSB1 <== sbattery

==> /data/var/lib/serial-starter/ttyUSB2 <== sbattery

==> /data/var/lib/serial-starter/ttyUSB3 <== sbattery

==> /data/var/lib/serial-starter/ttyUSB4 <== sbattery

mr-manuel commented 8 months ago

All logs described in the link above.

tail -F -n 100 /data/log/serial-starter/current | grep dbus-serialbattery | tai64nlocal

tail -F -n 100 /data/log/dbus-serialbattery.tty*/current | tai64nlocal
mr-manuel commented 8 months ago

Also install driver v1.2.20240227dev or newer.

mr-manuel commented 8 months ago

@mactoolz any update?