Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

doesn´t work in my setup #17

Closed
kr0815 opened this issue Mar 11, 2023 · 9 comments
Closed

doesn´t work in my setup #17

kr0815 opened this issue Mar 11, 2023 · 9 comments

Comments

@kr0815
Copy link

kr0815 commented Mar 11, 2023

I installed a second batter today

Both batteries are cinnected by Daly BMS, i see them both in dbus-serial

I don´t have any smartshunt or other speciel things, just the 2 Batteries with 2 daly BMS

I followed the installation instructions

Log Output:

`INFO:root:2023-03-11 19:01:31.740341: Starting AggregateBatteries.
INFO:root:registered ourselves on D-Bus as com.victronenergy.battery.aggregate
INFO:root:2023-03-11 19:01:31.756882: Initial Ah read from file: 555Ah
INFO:root:2023-03-11 19:01:31.772320: Starting battery monitor.
INFO:root:2023-03-11 19:01:31.774935: Connected to DBus, and switching over to GLib.MainLoop()
INFO:dbusmonitor:===== Search on dbus for services that we will monitor starting... =====
INFO:dbusmonitor:Found: com.victronenergy.battery.ttyUSB2, scanning and storing items
INFO:dbusmonitor: com.victronenergy.battery.ttyUSB2 has device instance 2
INFO:dbusmonitor:Found: com.victronenergy.vebus.ttyUSB1, scanning and storing items
INFO:dbusmonitor: com.victronenergy.vebus.ttyUSB1 has device instance 289
INFO:dbusmonitor:Found: com.victronenergy.battery.aggregate, scanning and storing items
INFO:dbusmonitor: com.victronenergy.battery.aggregate has device instance 0
INFO:dbusmonitor:Found: com.victronenergy.battery.ttyUSB0, scanning and storing items
INFO:dbusmonitor: com.victronenergy.battery.ttyUSB0 has device instance 1
INFO:dbusmonitor:===== Search on dbus for services that we will monitor finished =====
INFO:root:2023-03-11 19:01:36.775366: Searching batteries: Trial Nr. 1
INFO:root:2023-03-11 19:01:36.778223: SerialBattery(Daly) found.
INFO:root:2023-03-11 19:01:36.779065: SerialBattery(Daly) found.
INFO:root:2023-03-11 19:01:36.779652: 2 batteries found.
INFO:root:2023-03-11 19:01:37.781385: Searching Multi/Quatro VEbus: Trial Nr. 1
INFO:root:2023-03-11 19:01:37.784196: MultiPlus-II 24/3000/70-32 found.
ERROR:root:2023-03-11 19:01:38.787856: Error: '>' not supported between instances of 'NoneType' and 'float'. Read trial nr. 1
ERROR:root:2023-03-11 19:01:39.789709: Error: '>' not supported between instances of 'NoneType' and 'float'. Read trial nr. 2
ERROR:root:2023-03-11 19:01:40.789761: Error: '>' not supported between instances of 'NoneType' and 'float'. Read trial nr. 3
ERROR:root:2023-03-11 19:01:41.791843: Error: '>' not supported between instances of 'NoneType' and 'float'. Read trial nr. 4
ERROR:root:2023-03-11 19:01:42.792375: Error: '>' not supported between instances of 'NoneType' and 'float'. Read trial nr. 5
ERROR:root:2023-03-11 19:01:43.793803: Error: '>' not supported between instances of 'NoneType' and 'float'. Read trial nr. 6
ERROR:root:2023-03-11 19:01:44.793902: Error: '>' not supported between instances of 'NoneType' and 'float'. Read trial nr. 7
ERROR:root:2023-03-11 19:01:45.795035: Error: '>' not supported between instances of 'NoneType' and 'float'. Read trial nr. 8
ERROR:root:2023-03-11 19:01:46.795170: Error: '>' not supported between instances of 'NoneType' and 'float'. Read trial nr. 9
ERROR:root:2023-03-11 19:01:47.796144: Error: '>' not supported between instances of 'NoneType' and 'float'. Read trial nr. 10
ERROR:root:2023-03-11 19:01:48.796169: Error: '>' not supported between instances of 'NoneType' and 'float'. Read trial nr. 11
ERROR:root:2023-03-11 19:01:48.796979: DBus read failed. Exiting.

my config:

`# Version 2.1

NR_OF_BATTERIES = 2 # Nr. of physical batteries to be aggregated
NR_OF_MPPTS = 0 # Nr. of MPPTs

BATTERY_KEY_WORD = 'com.victronenergy.battery.tty' # Key world to identify services of physical Serial Batteries
BATTERY_NAME_KEY_WORD = 'SerialBattery' # Key world to identify the name of batteries (to exclude SmartShunt)
BATTERY_NAME_PATH = '/CustomName' # What defines the battery name
#BATTERY_NAME_PATH = '/HardwareVersion'

MULTI_KEY_WORD = 'com.victronenergy.vebus.tty' # Key world to identify service of Multis/Quattros (or cluster of them)
MPPT_KEY_WORD = 'com.victronenergy.solarcharger.tty' # Key world to identify services of solar chargers (RS not tested, only SmartSolar)
SMARTSHUNT_NAME_KEY_WORD = 'SmartShunt' # Key world to identify services of SmartShunt (not tested)

SEARCH_TRIALS = 10 # Trials to identify of all batteries before exit and restart
READ_TRIALS = 10 # Trials to get consistent data of all batteries before exit and restart

CURRENT_FROM_VICTRON = True # If True, the current measurement by Multis/Quattros and MPPTs is taken instead of BMS
DC_LOADS = False # If DC loads with Smart Shunt present, can be used for total current measurement
INVERT_SMARTSHUNT = False # False: Current subtracted, True: Current added
OWN_SOC = True # If True, the self calculated charge indicators are taken instead of BMS
CHARGE_SAVE_PRECISION = 0.0025 # Trade-off between save precision and file access frequency

OWN_CHARGE_PARAMETERS = True # Calculate own charge/discharge control parameters (True) from following settings
# or use them from battery driver (False)
CHARGE_VOLTAGE = 3.4 # Constant voltage charge = this value * nr. of cells
MAX_CELL_VOLTAGE = 3.43 # If reached by 1-st cell, the charger voltage is clamped to the measured value
DISCHARGE_VOLTAGE = 3.0 # If reached, discharge current set to zero
MIN_CELL_VOLTAGE = 2.9 # If reached, discharge current set to zero
VOLTAGE_SET_PRECISION = 0.03 # To be subtracted from the calculated max. charge voltage if MAX_CELL_VOLTAGE is exceeded

MAX_CHARGE_CURRENT = 200 # Max. charge current at normal conditions
MAX_DISCHARGE_CURRENT = 200 # Max. discharge current at normal conditions

settings limiting charge and discharge current if at least one cell gets full or empty

the lists may have any length, but the same length for voltage and current

linear interpolation is used for values between

CELL_FULL_LIMITING_VOLTAGE = [CHARGE_VOLTAGE - 0.1, CHARGE_VOLTAGE, MAX_CELL_VOLTAGE] # [min, .... ,max]
CELL_FULL_LIMITED_CURRENT = [1, 0.05, 0]
CELL_EMPTY_LIMITING_VOLTAGE = [DISCHARGE_VOLTAGE - 0.1, DISCHARGE_VOLTAGE, MIN_CELL_VOLTAGE] # [min, .... ,max]
CELL_EMPTY_LIMITED_CURRENT = [0, 0.05, 1]

LOGGING = 2 # 0: no logging, 1: print to console, 2: print to file
LOG_VOLTAGE_CHANGE = 0.1 # change of max. charge voltage to be logged
LOG_CURRENT_CHANGE = 5 # change of max. charge/discharge current to be logged`

`

@Dr-Gigavolt
Copy link
Owner

Hello, according the log both batteries and Multi are found. But some parameter read returns None. Please send me the DBus transmission of your batteries. Command dbus-spy in console.

@kr0815
Copy link
Author

kr0815 commented Mar 11, 2023

thanks for your fast reply

This is what i get after dbus-spy
image

@transistorgit
Copy link

I think this is the same Problem like in issue #15.

Some values are not on the bus, thus the error messages and bailing out.
I fixed the primary error by changing aggregatebatteries.py@367 to:
if (cellVoltage is not None and cellVoltage > MAX_CELL_VOLTAGE):
but the initial problem is that the serialbatteries are not up yet. you can add a sleep in rc.local or at begining of main() in aggregatebatteries.py as a work around as described in #15

@kr0815
Copy link
Author

kr0815 commented Mar 11, 2023

my problem is much bigger
I don´t know what i did , almost nothing, just installed the second battery

Now i get almost no messages from MQTT, looks like the same as keep_alive is 0 - very strange

@kr0815
Copy link
Author

kr0815 commented Mar 12, 2023

I found the fault - dbus-serialbattery has problems reading highest / lowest cell on a Daly BMS if connected by RS485
dbus-aggregate-batteries needs these values

I switched from RS485 to UART, now it´s working

@transistorgit
Copy link

yes, the RS485 handling is buggy. I opened a pull request for a solution there
Louisvdw/dbus-serialbattery#484

@Dr-Gigavolt
Copy link
Owner

thanks for your fast reply

This is what i get after dbus-spy image

You can navigate by arrows in dbus-spy and see the path values:
image

@Dr-Gigavolt
Copy link
Owner

I think this is the same Problem like in issue #15.

Some values are not on the bus, thus the error messages and bailing out. I fixed the primary error by changing aggregatebatteries.py@367 to: if (cellVoltage is not None and cellVoltage > MAX_CELL_VOLTAGE): but the initial problem is that the serialbatteries are not up yet. you can add a sleep in rc.local or at begining of main() in aggregatebatteries.py as a work around as described in #15

This is not safe. It is better to raise an exception than to keep program running with old and invalid values. The ESS could try to over/undercharge the batteries. It is not correct to allow the normally running program to rely on emergency brake of the BMS. This should be understood as the ultima ratio to avoid disaster.

The best solution would be to disable charging and discharging completely in such a case, but the parameters AllowToCharge and AllowToDischarge are just indicators and are ignored by ESS.

@Dr-Gigavolt
Copy link
Owner

I found the fault - dbus-serialbattery has problems reading highest / lowest cell on a Daly BMS if connected by RS485 dbus-aggregate-batteries needs these values

I switched from RS485 to UART, now it´s working

Excellent. Now we can close this issue :-)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants