Restore persistence of limit soc and energy (#10979)

This commit is contained in:
andig 2023-12-08 17:28:54 +01:00 • committed by GitHub
parent 219dacdb06
commit ff38abffd8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 10 additions and 8 deletions

View file

@ -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

View file

@ -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

View file

@ -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{}

View file

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