diff --git a/core/loadpoint_session.go b/core/loadpoint_session.go index 31e3214ad..0f0bb49a5 100644 --- a/core/loadpoint_session.go +++ b/core/loadpoint_session.go @@ -126,6 +126,9 @@ func (lp *Loadpoint) resetHeatingSession() { if cr, ok := lp.chargeRater.(wrapper.ChargeResetter); ok { cr.ResetCharge() } + if ct, ok := lp.chargeRater.(wrapper.ChargeResetter); ok { + ct.ResetCharge() + } lp.createSession() } diff --git a/core/wrapper/chargetimer.go b/core/wrapper/chargetimer.go index 8279fe88e..c9267e669 100644 --- a/core/wrapper/chargetimer.go +++ b/core/wrapper/chargetimer.go @@ -48,6 +48,16 @@ func (m *ChargeTimer) StopCharge() { m.duration += m.clck.Since(m.start) } +var _ ChargeResetter = (*ChargeTimer)(nil) + +// ChargeResetter resets the charging session +func (m *ChargeTimer) ResetCharge() { + m.Lock() + defer m.Unlock() + + m.duration = 0 +} + // ChargeDuration implements the api.ChargeTimer interface func (m *ChargeTimer) ChargeDuration() (time.Duration, error) { m.Lock()