From f0b9ac408e7bf4038d013ae5c195062c73c303fb Mon Sep 17 00:00:00 2001 From: Trefor Southwell <48591903+springfall2008@users.noreply.github.com> Date: Sat, 27 Jan 2024 13:47:13 +0000 Subject: [PATCH 1/2] Low power charging, more accurate setting and some debug https://github.com/springfall2008/batpred/issues/650 --- apps/predbat/predbat.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/apps/predbat/predbat.py b/apps/predbat/predbat.py index b06dca5a3..4ee7e5d11 100644 --- a/apps/predbat/predbat.py +++ b/apps/predbat/predbat.py @@ -8529,7 +8529,7 @@ def balance_inverters(self): self.log("BALANCE: Completed this run") - def find_charge_rate(self, minutes_now, soc, window, target_soc, max_rate): + def find_charge_rate(self, minutes_now, soc, window, target_soc, max_rate, quiet=True): """ Find the lowest charge rate that fits the charge slow """ @@ -8571,8 +8571,9 @@ def find_charge_rate(self, minutes_now, soc, window, target_soc, max_rate): if charge_now >= target_soc: best_rate = rate break - rate_w -= 200.0 - # self.log("Find charge rate now {} soc {} window {} target_soc {} max_rate {} min_rate {} returns {}".format(minutes_now, soc, window, target_soc, int(max_rate * 60.0 * 1000.0), int(min_rate * 60.0 * 1000.0), int(best_rate * 60.0 * 1000.0))) + rate_w -= 125.0 + if not quiet: + self.log("Find charge rate now {} soc {} window {} target_soc {} max_rate {} min_rate {} returns {}".format(minutes_now, soc, window, target_soc, int(max_rate * 60.0 * 1000.0), int(min_rate * 60.0 * 1000.0), int(best_rate * 60.0 * 1000.0))) return best_rate else: return max_rate @@ -8965,7 +8966,7 @@ def execute_plan(self): # Are we actually charging? if self.minutes_now >= minutes_start and self.minutes_now < minutes_end: charge_rate = self.find_charge_rate( - self.minutes_now, inverter.soc_kw, window, self.charge_limit_percent_best[0] * inverter.soc_max / 100.0, inverter.battery_rate_max_charge + self.minutes_now, inverter.soc_kw, window, self.charge_limit_percent_best[0] * inverter.soc_max / 100.0, inverter.battery_rate_max_charge, quiet=False ) inverter.adjust_charge_rate(int(charge_rate * 60.0 * 1000.0)) @@ -11000,4 +11001,4 @@ def run_time_loop_balance(self, cb_args): except Exception as e: self.log("ERROR: Exception raised {}".format(e)) self.record_status("ERROR: Exception raised {}".format(e)) - raise + raise \ No newline at end of file From c7123347e2f574d576844f66b3c3d70c9ca86f6d Mon Sep 17 00:00:00 2001 From: "pre-commit-ci-lite[bot]" <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Date: Sat, 27 Jan 2024 13:48:48 +0000 Subject: [PATCH 2/2] [pre-commit.ci lite] apply automatic fixes --- apps/predbat/predbat.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/apps/predbat/predbat.py b/apps/predbat/predbat.py index 4ee7e5d11..58260644c 100644 --- a/apps/predbat/predbat.py +++ b/apps/predbat/predbat.py @@ -8573,7 +8573,11 @@ def find_charge_rate(self, minutes_now, soc, window, target_soc, max_rate, quiet break rate_w -= 125.0 if not quiet: - self.log("Find charge rate now {} soc {} window {} target_soc {} max_rate {} min_rate {} returns {}".format(minutes_now, soc, window, target_soc, int(max_rate * 60.0 * 1000.0), int(min_rate * 60.0 * 1000.0), int(best_rate * 60.0 * 1000.0))) + self.log( + "Find charge rate now {} soc {} window {} target_soc {} max_rate {} min_rate {} returns {}".format( + minutes_now, soc, window, target_soc, int(max_rate * 60.0 * 1000.0), int(min_rate * 60.0 * 1000.0), int(best_rate * 60.0 * 1000.0) + ) + ) return best_rate else: return max_rate @@ -11001,4 +11005,4 @@ def run_time_loop_balance(self, cb_args): except Exception as e: self.log("ERROR: Exception raised {}".format(e)) self.record_status("ERROR: Exception raised {}".format(e)) - raise \ No newline at end of file + raise