From da5e482a364c99fe3f633420dac4db9af2d5f3bc Mon Sep 17 00:00:00 2001 From: andig Date: Sat, 14 Aug 2021 14:19:45 +0200 Subject: [PATCH] Reduce duplicate logging --- core/loadpoint.go | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/core/loadpoint.go b/core/loadpoint.go index 389dfa67b..670960098 100644 --- a/core/loadpoint.go +++ b/core/loadpoint.go @@ -2,6 +2,7 @@ package core import ( "errors" + "fmt" "math" "regexp" "strings" @@ -488,19 +489,23 @@ func (lp *LoadPoint) setLimit(chargeCurrent float64, force bool) (err error) { // set current if chargeCurrent != lp.chargeCurrent && chargeCurrent >= lp.GetMinCurrent() { if charger, ok := lp.charger.(api.ChargerEx); ok { - lp.log.DEBUG.Printf("max charge current: %.2g", chargeCurrent) - err = charger.MaxCurrentMillis(chargeCurrent) + if err = charger.MaxCurrentMillis(chargeCurrent); err == nil { + lp.log.DEBUG.Printf("max charge current: %.2g", chargeCurrent) + } else { + err = fmt.Errorf("max charge current %.2g: %w", chargeCurrent, err) + } } else { chargeCurrent = math.Trunc(chargeCurrent) - lp.log.DEBUG.Printf("max charge current: %d", int64(chargeCurrent)) - err = lp.charger.MaxCurrent(int64(chargeCurrent)) + if err = lp.charger.MaxCurrent(int64(chargeCurrent)); err == nil { + lp.log.DEBUG.Printf("max charge current: %d", int64(chargeCurrent)) + } else { + err = fmt.Errorf("max charge current %d: %w", int64(chargeCurrent), err) + } } if err == nil { lp.chargeCurrent = chargeCurrent lp.bus.Publish(evChargeCurrent, chargeCurrent) - } else { - lp.log.ERROR.Printf("max charge current %.2g: %v", chargeCurrent, err) } } @@ -513,6 +518,7 @@ func (lp *LoadPoint) setLimit(chargeCurrent float64, force bool) (err error) { // sleep vehicle if car, ok := lp.vehicle.(api.VehicleStopCharge); !enabled && ok { + // log but don't propagate if err := car.StopCharge(); err != nil { lp.log.ERROR.Printf("vehicle remote charge stop: %v", err) } @@ -527,12 +533,13 @@ func (lp *LoadPoint) setLimit(chargeCurrent float64, force bool) (err error) { // wake up vehicle if car, ok := lp.vehicle.(api.VehicleStartCharge); enabled && ok { + // log but don't propagate if err := car.StartCharge(); err != nil { lp.log.ERROR.Printf("vehicle remote charge start: %v", err) } } } else { - lp.log.ERROR.Printf("charger %s: %v", status[enabled], err) + err = fmt.Errorf("charger %s: %w", status[enabled], err) } }