From 7b5bcce901f43e3e2ef3fbcd292607cebf476614 Mon Sep 17 00:00:00 2001 From: andig Date: Sat, 29 Jun 2024 16:21:40 +0200 Subject: [PATCH] chore: hide phase powers if not used (#14509) --- core/site.go | 26 +++++++++++++------------- util/metering.go | 2 +- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/core/site.go b/core/site.go index a740ea7e3..5bde9e706 100644 --- a/core/site.go +++ b/core/site.go @@ -564,21 +564,21 @@ func (site *Site) updateGridMeter() error { return fmt.Errorf("grid meter: %v", err) } - // grid phase powers - var p1, p2, p3 float64 - if phaseMeter, ok := site.gridMeter.(api.PhasePowers); ok { - var err error // phases needed for signed currents - if p1, p2, p3, err = phaseMeter.Powers(); err == nil { - phases := []float64{p1, p2, p3} - site.log.DEBUG.Printf("grid powers: %.0fW", phases) - site.publish(keys.GridPowers, phases) - } else { - site.log.ERROR.Printf("grid powers: %v", err) - } - } - // grid phase currents (signed) if phaseMeter, ok := site.gridMeter.(api.PhaseCurrents); ok { + // grid phase powers + var p1, p2, p3 float64 + if phaseMeter, ok := site.gridMeter.(api.PhasePowers); ok { + var err error // phases needed for signed currents + if p1, p2, p3, err = phaseMeter.Powers(); err == nil { + phases := []float64{p1, p2, p3} + site.log.DEBUG.Printf("grid powers: %.0fW", phases) + site.publish(keys.GridPowers, phases) + } else { + site.log.ERROR.Printf("grid powers: %v", err) + } + } + if i1, i2, i3, err := phaseMeter.Currents(); err == nil { phases := []float64{util.SignFromPower(i1, p1), util.SignFromPower(i2, p2), util.SignFromPower(i3, p3)} site.log.DEBUG.Printf("grid currents: %.3gA", phases) diff --git a/util/metering.go b/util/metering.go index c054b86f0..f24d67c93 100644 --- a/util/metering.go +++ b/util/metering.go @@ -1,7 +1,7 @@ package util // SignFromPower is a helper function to create signed current from signed power bypassing already signed current -func SignFromPower(current float64, power float64) float64 { +func SignFromPower(current, power float64) float64 { if current > 0 && power < 0 { return -current }