Skip to content

Commit 1261592

Browse files
Enable cap on battery charging rate from solar
1 parent bf02278 commit 1261592

1 file changed

Lines changed: 16 additions & 2 deletions

File tree

predbat.py

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,19 @@ def run_prediction(self, now, charge_limit, load_minutes, pv_forecast_minute, sa
223223
# Apply battery loss to charging from PV
224224
if diff < 0:
225225
diff *= self.battery_loss
226-
226+
227+
# Max charge rate, export over the cap
228+
if diff < -self.charge_rate:
229+
soc -= self.charge_rate
230+
if record:
231+
energy = -(diff + self.charge_rate)
232+
export_kwh += energy
233+
if minute_absolute in self.rate_export:
234+
metric -= self.rate_export[minute_absolute] * energy
235+
else:
236+
metric -= self.metric_export * energy
237+
238+
# Max discharge rate, draw from grid over the cap
227239
if diff > self.discharge_rate:
228240
soc -= self.discharge_rate
229241
if record:
@@ -244,7 +256,8 @@ def run_prediction(self, now, charge_limit, load_minutes, pv_forecast_minute, sa
244256
metric += self.metric_house * energy
245257
else:
246258
soc -= diff
247-
259+
260+
# Flat battery, draw from grid over the cap
248261
if soc < self.reserve:
249262
if record:
250263
energy = self.reserve - soc
@@ -256,6 +269,7 @@ def run_prediction(self, now, charge_limit, load_minutes, pv_forecast_minute, sa
256269
metric += self.metric_house * energy
257270
soc = self.reserve
258271

272+
# Full battery, export over the cap
259273
if soc > self.soc_max:
260274
if record:
261275
energy = soc - self.soc_max

0 commit comments

Comments
 (0)