From ff38abffd89ac789b8d1af5d17bc2363f6050f65 Mon Sep 17 00:00:00 2001 From: andig Date: Fri, 8 Dec 2023 17:28:54 +0100 Subject: [PATCH] Restore persistence of limit soc and energy (#10979) --- core/loadpoint.go | 6 ++++++ core/loadpoint_api.go | 2 ++ core/loadpoint_vehicle.go | 6 ------ tests/limits.spec.js | 4 ++-- 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/core/loadpoint.go b/core/loadpoint.go index e27aea841..9b5627156 100644 --- a/core/loadpoint.go +++ b/core/loadpoint.go @@ -309,6 +309,12 @@ func (lp *Loadpoint) restoreSettings() { if v, err := lp.settings.Float(keys.PlanEnergy); err == nil { lp.planEnergy = v } + if v, err := lp.settings.Int(keys.LimitSoc); err == nil { + lp.limitSoc = int(v) + } + if v, err := lp.settings.Float(keys.LimitEnergy); err == nil { + lp.limitEnergy = v + } } // requestUpdate requests site to update this loadpoint diff --git a/core/loadpoint_api.go b/core/loadpoint_api.go index c7e0ab680..66edaee15 100644 --- a/core/loadpoint_api.go +++ b/core/loadpoint_api.go @@ -136,6 +136,7 @@ func (lp *Loadpoint) GetLimitSoc() int { func (lp *Loadpoint) setLimitSoc(soc int) { lp.limitSoc = soc lp.publish(keys.LimitSoc, soc) + lp.settings.SetInt(keys.LimitSoc, int64(soc)) } // SetLimitSoc sets the session soc limit @@ -163,6 +164,7 @@ func (lp *Loadpoint) GetLimitEnergy() float64 { func (lp *Loadpoint) setLimitEnergy(energy float64) { lp.limitEnergy = energy lp.publish(keys.LimitEnergy, energy) + lp.settings.SetFloat(keys.LimitEnergy, energy) } // SetLimitEnergy sets the session energy limit diff --git a/core/loadpoint_vehicle.go b/core/loadpoint_vehicle.go index 28c036363..83d076dc5 100644 --- a/core/loadpoint_vehicle.go +++ b/core/loadpoint_vehicle.go @@ -121,12 +121,6 @@ func (lp *Loadpoint) setActiveVehicle(v api.Vehicle) { lp.log.INFO.Printf("vehicle updated: %s -> %s", from, to) } - // reset session values - lp.Lock() - lp.setLimitSoc(0) - lp.setLimitEnergy(0) - lp.Unlock() - if v != nil { lp.socUpdated = time.Time{} diff --git a/tests/limits.spec.js b/tests/limits.spec.js index 60585710a..3786c2f58 100644 --- a/tests/limits.spec.js +++ b/tests/limits.spec.js @@ -98,7 +98,7 @@ test.describe("limitEnergy", async () => { await page.reload(); await expect(page.getByTestId("limit-energy-value")).toHaveText("10 kWh"); }); - test("should be reset on vehicle change", async ({ page }) => { + test("should not be reset on vehicle change", async ({ page }) => { await page.goto("/"); await page.getByRole("button", { name: "blauer e-Golf" }).click(); @@ -107,6 +107,6 @@ test.describe("limitEnergy", async () => { await page.getByRole("button", { name: "grĂ¼ner Honda e" }).click(); await page.getByRole("button", { name: "Guest vehicle" }).click(); - await expect(page.getByTestId("limit-energy-value")).toHaveText("none"); + await expect(page.getByTestId("limit-energy-value")).toHaveText("10 kWh"); }); });