diff --git a/charger/easee.go b/charger/easee.go index 3933bbc6c..b518666fa 100644 --- a/charger/easee.go +++ b/charger/easee.go @@ -228,7 +228,7 @@ func (c *Easee) chargerSite(charger string) (easee.Site, error) { // connect creates an HTTP connection to the signalR hub func (c *Easee) connect(ts oauth2.TokenSource) func() (signalr.Connection, error) { - bo := backoff.NewExponentialBackOff(backoff.WithMaxInterval(time.Minute)) + bo := backoff.NewExponentialBackOff(backoff.WithMaxInterval(time.Minute), backoff.WithMaxElapsedTime(0)) return func() (conn signalr.Connection, err error) { defer func() { diff --git a/charger/hardybarth-salia.go b/charger/hardybarth-salia.go index bd062d12a..73dfb5b4c 100644 --- a/charger/hardybarth-salia.go +++ b/charger/hardybarth-salia.go @@ -163,7 +163,8 @@ func NewSalia(ctx context.Context, uri, user, password string, cache time.Durati func (wb *Salia) heartbeat(ctx context.Context) { bo := backoff.NewExponentialBackOff( backoff.WithInitialInterval(5*time.Second), - backoff.WithMaxInterval(time.Minute)) + backoff.WithMaxInterval(time.Minute), + backoff.WithMaxElapsedTime(0)) for tick := time.Tick(30 * time.Second); ; { select { diff --git a/meter/dsmr.go b/meter/dsmr.go index 8e0e65853..18b78ac64 100644 --- a/meter/dsmr.go +++ b/meter/dsmr.go @@ -139,7 +139,7 @@ func NewDsmr(uri, energy string, timeout time.Duration) (api.Meter, error) { // based on https://github.com/basvdlei/gotsmart/blob/master/gotsmart.go func (m *Dsmr) run(conn net.Conn, done chan struct{}) { log := util.NewLogger("dsmr") - bo := backoff.NewExponentialBackOff(backoff.WithMaxInterval(5 * time.Minute)) + bo := backoff.NewExponentialBackOff(backoff.WithMaxInterval(5*time.Minute), backoff.WithMaxElapsedTime(0)) handle := func(op string, err error) { log.ERROR.Printf("%s: %v", op, err)