forked from Dr-Gigavolt/dbus-aggregate-batteries
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathconfig.default.ini
More file actions
283 lines (233 loc) · 13.1 KB
/
Copy pathconfig.default.ini
File metadata and controls
283 lines (233 loc) · 13.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
[DEFAULT]
; ----- Needed hardware settings -----
; This settings have default values for LFP batteries, but are disabled by default
;
; This settings are mandatory for correct operation of this driver
; Number of real batteries you want to combine
; The program checks this number against the batteries it finds to avoid mistakes
NR_OF_BATTERIES = -1
; Number of cells per battery
NR_OF_CELLS_PER_BATTERY = -1
; Nr. of MPPTs
NR_OF_MPPTS = -1
; ----- Optional settings -----
; You can leave these settings at default values if you don't have special requirements
; Per default all additional features are disabled and the driver only aggregates the batteries
; without any modifications
; ----- DBus settings -----
; Keyword to identify services of physical Serial Batteries (and SmartShunts set to Battery Mode if available)
; You don't need to change it
BATTERY_SERVICE_NAME = com.victronenergy.battery
; Keyword to identify DC Load services (for SmartShunts set to DC Metering). You don't need to change it
DCLOAD_SERVICE_NAME = com.victronenergy.dcload
; Path of Battery Product Name. You don't need to change it
BATTERY_PRODUCT_NAME_PATH = /ProductName
; Keyword to identify the batteries (to exclude SmartShunt). If the BATTERY_PRODUCT_NAME_PATH,
; e.g. SerialBattery(Jkbms), contains this keyword, the device will be identified and included into the battery list
; NOTE: Case sensitive
BATTERY_PRODUCT_NAME = SerialBattery
; The name stored in the here selected BATTERY_INSTANCE_NAME_PATH will be taken as the name of the battery in the list
; Each battery instance should have an unique name. If not, a number will be added. You can choose: /CustomName
; (set up in the serial battery driver and is lost on restart of the serial battery driver) or /Serial
; (set up in the BMS and therefore not volatile)
BATTERY_INSTANCE_NAME_PATH = /Serial
; Keyword to identify service of Multis/Quattros (or cluster of them). You don't need to change it
; Can be set to an empty string, to not use Multi/Quattro current measurements
MULTI_KEYWORD = com.victronenergy.vebus
; Keyword to identify services of solar chargers. You don't need to change it
MPPT_KEYWORD = com.victronenergy.solarcharger
; Keyword to identify services of SmartShunt, if you use it for current into DC loads. You don't need to change it
; NOTE: Case sensitive
SMARTSHUNT_NAME_KEYWORD = SmartShunt
; When explicitly naming multiple SmartShunts (MULTIPLE_SMARTSHUNTS option below), use the names from this source
; A good default is /CustomName, it does not need to be changed
SMARTSHUNT_INSTANCE_NAME_PATH = /CustomName
; Trials to identify of all batteries before exit and restart
SEARCH_TRIALS = 10
; Trials to get consistent data of all batteries before exit and restart
READ_TRIALS = 10
; Search new devices every UPDATE_INTERVAL_FIND_DEVICES seconds
; If the CPU usage is too high, increase this value
UPDATE_INTERVAL_FIND_DEVICES = 1
; Update the aggregated values every UPDATE_INTERVAL_DATA seconds
; If the CPU usage is too high, increase this value
UPDATE_INTERVAL_DATA = 1
; In case of exception the program exits and restarts after TIME_BEFORE_RESTART in seconds
TIME_BEFORE_RESTART = 15
; ----- Options -----
; If True, the battery current measurement by Multis/Quattros, MPPTs, and/or SmartShunts is taken instead of BMS
; Necessary for JK BMS due to poor current measurement precision
; The Victron current measurement is very precise
CURRENT_FROM_VICTRON = False
; Use SmartShunts for total current measurement and control which ones to use:
; - False or an empty list means not to use any SmartShunts
; - True uses all available SmartShunts
; - a list of VRM instance numbers allows using only certain SmartShunts, e.g. [278, 279] would chose VRM
; instances 278 and 279 (the VRM instance numbers of the respective SmartShunts can be found in their "Device" page)
; - a list of unique Smart Shunt names (custom name entry by default, specified with SMARTSHUNT_INSTANCE_NAME_PATH),
; e.g. ["FrontShunt", "MiddleShunt", "RearShunt"] would select the respective shunts to be included in the DC current
; calculation
;
; SmartShunts set to "Battery Monitor" in VictronConnect will be added to the total current while
; SmartShunts set to "DC Energy Meter" will be subtracted; this can be inverted with INVERT_SMARTSHUNTS below set
; to True
;
; For this option to have an effect, CURRENT_FROM_VICTRON needs to be set to True (which is the default)
;
; By default, if during operation one of the SmartShunts being monitored becomes unavailable an error is raised and
; a restart occurs (after READ_TRIALS trials):
; - In the case of using all available SmartShunts with True this means one less SmartShunt will be in the list
; monitored after restart. If one wants to add this particular SmartShunt again, a restart of the battery aggregator
; will be needed
; - If a list of specific SmartShunts was specified then a missing SmartShunt will lead to repeated trials until it is
; present again and the aggregator works again
; - This behavior can be controlled with IGNORE_SMARTSHUNT_ABSENCE below
;
; Note that this is an advanced option that strongly depends on a given system topology and the directions current is
; flowing at each individual device used to add up to the current present at the system's batteries aggregated
; Here are two hopefully common examples:
; 1. Multi/Quattro, MPPT, and SmartShunt:
; [MPPT] Batteries: I_A = I_{Multi} + I_{MPPT} - I_{SmartShunt}
; | +-- [1]
; [Multi/Quattro] --------+--------+
; | +-- [2]
; [SmartShunt #278]
; |
; [DC Load]
;
; Settings: NR_OF_MPPTS = 1
; MULTI_KEYWORD = com.victronenergy.vebus
; USE_SMARTSHUNTS = True or [278]
; INVERT_SMARTSHUNTS = False (SmartShunt set to "DC energy meter")
; *or*
; INVERT_SMARTSHUNTS = True (SmartShunt set to "Battery monitor")
;
; 2. Same as above, but with a SmartShunt for each battery:
; [MPPT] Batteries: I_A = I_{#279} + I_{#280}:
; | +-- [SmartShunt #279] -- [1]
; [Multi/Quattro] --------+--------+
; | +-- [SmartShunt #280] -- [2]
; [SmartShunt #278]
; |
; [DC Load]
;
; Settings: NR_OF_MPPTS = 0
; MULTI_KEYWORD =
; USE_SMARTSHUNTS = [279, 280]
; INVERT_SMARTSHUNTS = False (#279 & #280 set to "Battery monitor")
; *or*
; INVERT_SMARTSHUNTS = True (#279 & #280 set to "DC energy meter")
; Alternatively, one could also use I_A = I_{Multi} + I_{MPPT} - I_{#278}
; (settings from 1. with USE_SMARTSHUNTS = [278]), but as each measurement has an error, using three
; devices is going to have a larger error bar compared to two
USE_SMARTSHUNTS = False
; Invert current accumulation for all SmartShunts used (True: battery ones subtract, DC meters add)
INVERT_SMARTSHUNTS = False
; Controls what happens when a monitored SmartShunt is absent:
; False (default): a restart occurs after READ_TRIALS consecutive read errors:
; - In the case of using all available SmartShunts with True this means one less SmartShunt will be in the
; list monitored after restart. If one wants to add this particular SmartShunt again, a restart of the
; battery aggregator will be needed
; - If a list of specific SmartShunts was specified then a missing SmartShunt will lead to repeated trials
; until it is present again and the aggregator works again
; True: the BMS current reading will be used until the absent SmartShunt becomes available again
IGNORE_SMARTSHUNT_ABSENCE = False
; If True, the program's own charge counter is used instead of the BMS counters
; Necessary for JK BMS due to poor current measurement precision
; and not implemented 100% and 0% reset except of case of MOSFET disconnection
OWN_SOC = False
; Allow zeroing program's own charge counter at MIN_CELL_VOLTAGE. At full battery it is always set to 100%
ZERO_SOC = False
; SoC resetting values if OWN_SOC = True and OWN_CHARGE_PARAMETERS = False
MAX_CELL_VOLTAGE_SOC_FULL = 3.45
MIN_CELL_VOLTAGE_SOC_EMPTY = 2.90
; When the battery charge changes more than CHARGE_SAVE_PRECISION, the charge file is updated
; It is a trade-off between resolution and file access frequency. The value is relative
; The charge file is read on start of this program
CHARGE_SAVE_PRECISION = 0.0025
; ----- Charge/Discharge parameters -----
; Please note: Victron ESS disables CCL (Charge Curent Limit) if DC-coupled PV feed-in is active
; This program disables the DC-coupled PV feed-in when necessary to protect batteries
; (dynamic CVL - Charge Volgage Limit is activated) and re-enables again in safe condition
; If True, the charge/discharge control parameters (CVL - Charge Voltage Limit, CCL - Charge Current Limit,
; DCL - Discharge Current Limit) are calculated by this program
; If False, the parameters from Serial Battery instances are taken and aggregated
OWN_CHARGE_PARAMETERS = False
; This voltage per cell will be set periodically, once BALANCING_REPETITION days and kept until balancing
; goal is reached (cell voltage difference <= CELL_DIFF_MAX) and the next charge cycle begins
; In case of heavy disbalance this condition can last several days
BALANCING_VOLTAGE = 3.40
BALANCING_REPETITION = 10
; Set up how full the battery has to be charged in given month. Set lower values in summer
; to prolong battery life and higher values in winter to have more energy available
CHARGE_VOLTAGE_LIST =
3.55, ; January
3.50, ; February
3.50, ; March
3.45, ; April
3.40, ; May
3.40, ; June
3.40, ; July
3.40, ; August
3.45, ; September
3.50, ; October
3.50, ; November
3.55 ; December
; This is a cell-full protection feature. If MAX_CELL_VOLTAGE is reached by at least one cell,
; the CVL is dynamically limited to avoid over-charging and triggering the BMS disconnection
; DC-coupled PV feed-in will be disabled to enable the CCL
MAX_CELL_VOLTAGE = 3.45
; This is a cell-empty protection feature. If reached, discharge current is set to zero
MIN_CELL_VOLTAGE = 2.90
; Allows discharge again above MIN_CELL_VOLTAGE + MIN_CELL_HYSTERESIS
MIN_CELL_HYSTERESIS = 0.1
; Cell balancing (with BALANCING_VOLTAGE) goal in volts. When reached, the charging voltage limit per cell is
; reduced from BALANCING_VOLTAGE down to CHARGE_VOLTAGE from the CHARGE_VOLTAGE_LIST. If due to heavy disbalance
; the dynamic CVL was activated and DC-coupled PV feed-in was de-activated, these measures are finished when the
; balancing goal is reached
CELL_DIFF_MAX = 0.025
; Charge fed into batteries is multiplied by efficiency in order to consider losses and enhance SoC counter precision
BATTERY_EFFICIENCY = 0.98
; Max. total charge current at normal conditions
MAX_CHARGE_CURRENT = 200
; Max. total discharge current at normal conditions
MAX_DISCHARGE_CURRENT = 200
; Settings limiting charge current when at least one cell is getting full or empty. The lists may have any length,
; but the length must be same for voltage and current. Linear interpolation is used for values between
; The charge current limitation of empty cell reduces inverter power in case when the battery has to be charged
; from grid
; [min, ... ,max]; low voltage: limiting current from grid
; NOTE: only numbers are allowed
; Example:
; CELL_CHARGE_LIMITING_VOLTAGE = 2.90, 2.95, 3.30, 3.40, 3.45
; Leave empty to use MIN_CELL_VOLTAGE, BALANCING_VOLTAGE and MAX_CELL_VOLTAGE to
; automatically calculate these values
CELL_CHARGE_LIMITING_VOLTAGE =
; [min, ... ,max]
CELL_CHARGE_LIMITED_CURRENT = 0.2, 1, 1, 0.1, 0
; Settings limiting discharge current if at least one cell is getting empty. The lists may have any length,
; but the same length for voltage and current. Linear interpolation is used for values between
; NOTE: only numbers are allowed
; Example:
; CELL_DISCHARGE_LIMITING_VOLTAGE = 2.90, 3.00, 3.10
; Leave empty to use MIN_CELL_VOLTAGE to automatically calculate these values
CELL_DISCHARGE_LIMITING_VOLTAGE =
; [min, ... ,max]
CELL_DISCHARGE_LIMITED_CURRENT = 0, 0.05, 1
; --------- if OWN_CHARGE_PARAMETERS = False ---------
; If False, the transmitted CVL is always the minimum of all batteries
; If True, the transmitted CVL is the maximum of all batteries until all are in float,
; than the minimum of all is taken. Attention: By using this function you rely on the functionality
; and correct settings of the SerialBattery driver. Set True only if you know exactly
; what you are doing. If not sure, keep it at False
KEEP_MAX_CVL = False
; --------- Logging and reporting ---------
; 0: Disable Cell Info on dbus, 1: Format: /Cell/BatteryName_Cell<ID>
SEND_CELL_VOLTAGES = 0
; 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 = INFO
; Logging period in seconds. If 0, periodic logging is disabled
LOG_PERIOD = 300