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"); }); });