Session: don't use meter totals for overriding session energy (#7460)
This commit is contained in:
parent
c7c75b4dfe
commit
c49d9bb25d
3 changed files with 4 additions and 10 deletions
|
|
@ -1274,7 +1274,7 @@ func (lp *Loadpoint) publishChargeProgress() {
|
|||
if f, err := lp.chargeRater.ChargedEnergy(); err == nil {
|
||||
// workaround for Go-E resetting during disconnect, see
|
||||
// https://github.com/evcc-io/evcc/issues/5092
|
||||
if f > 0 {
|
||||
if f > lp.chargedAtStartup {
|
||||
lp.setChargedEnergy(1e3 * (f - lp.chargedAtStartup)) // convert to Wh
|
||||
}
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -58,12 +58,7 @@ func (lp *Loadpoint) stopSession() {
|
|||
lp.session.Finished = lp.clock.Now()
|
||||
lp.session.MeterStop = lp.chargeMeterTotal()
|
||||
|
||||
chargedEnergy := lp.getChargedEnergy() / 1e3
|
||||
if delta := lp.session.MeterStop - lp.session.MeterStart; delta < chargedEnergy && lp.session.MeterStart*lp.session.MeterStop > 0 {
|
||||
chargedEnergy = delta
|
||||
}
|
||||
|
||||
if chargedEnergy > lp.session.ChargedEnergy {
|
||||
if chargedEnergy := lp.getChargedEnergy() / 1e3; chargedEnergy > lp.session.ChargedEnergy {
|
||||
lp.session.ChargedEnergy = chargedEnergy
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -70,7 +70,7 @@ func TestSession(t *testing.T) {
|
|||
s, err := db.Sessions()
|
||||
assert.NoError(t, err)
|
||||
assert.Len(t, s, 1)
|
||||
t.Log(s)
|
||||
t.Logf("session: %+v", s)
|
||||
|
||||
// stop charging - 2nd leg
|
||||
clock.Add(time.Hour)
|
||||
|
|
@ -79,11 +79,10 @@ func TestSession(t *testing.T) {
|
|||
|
||||
lp.stopSession()
|
||||
assert.NotNil(t, lp.session)
|
||||
assert.Equal(t, 3.0-1.0, lp.session.ChargedEnergy) // expect actual meter energy delta
|
||||
assert.Equal(t, clock.Now(), lp.session.Finished)
|
||||
|
||||
s, err = db.Sessions()
|
||||
assert.NoError(t, err)
|
||||
assert.Len(t, s, 1)
|
||||
t.Log(s)
|
||||
t.Logf("session: %+v", s)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue