diff --git a/core/helper.go b/core/helper.go index c24bfa904..d8c2a31a2 100644 --- a/core/helper.go +++ b/core/helper.go @@ -18,7 +18,7 @@ var ( // bo returns an exponential backoff for reading meter power quickly func bo() *backoff.ExponentialBackOff { - return backoff.NewExponentialBackOff(backoff.WithInitialInterval(20*time.Millisecond), backoff.WithMaxElapsedTime(time.Second)) + return backoff.NewExponentialBackOff(backoff.WithInitialInterval(20*time.Millisecond), backoff.WithMaxElapsedTime(2*time.Second)) } // powerToCurrent is a helper function to convert power to per-phase current diff --git a/core/site.go b/core/site.go index 0297c9ff6..4948766b6 100644 --- a/core/site.go +++ b/core/site.go @@ -486,11 +486,12 @@ func (site *Site) collectMeters(key string, meters []config.Device[api.Meter]) [ // power var b bytes.Buffer - start := time.Now() power, err := backoff.RetryWithData(func() (float64, error) { + start := time.Now() f, err := meter.CurrentPower() if err != nil { - fmt.Fprintf(&b, "%v !! %v\n", time.Now(), err) + d := time.Since(start) + fmt.Fprintf(&b, "%v !! %3dms %v\n", start, d.Milliseconds(), err) } return f, err }, bo()) @@ -498,8 +499,7 @@ func (site *Site) collectMeters(key string, meters []config.Device[api.Meter]) [ site.log.DEBUG.Printf("%s %d power: %.0fW", key, i+1, power) } else { if b.Len() > 0 { - site.log.ERROR.Println(start, "!!") - site.log.ERROR.Println(b.String()) + site.log.ERROR.Println("\n" + b.String()) } site.log.ERROR.Printf("%s %d power: %v", key, i+1, err) }