From da4af01d736503b77901648d8a03f45516a99591 Mon Sep 17 00:00:00 2001 From: andig Date: Tue, 30 Apr 2024 09:24:30 +0200 Subject: [PATCH] Innogy: add api.MeterEnergy --- charger/innogy.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/charger/innogy.go b/charger/innogy.go index 7ef73a68b..dcbe429c0 100644 --- a/charger/innogy.go +++ b/charger/innogy.go @@ -35,6 +35,7 @@ const ( igyRegManufacturer = 100 // Input igyRegFirmware = 200 // Input igyRegStatus = 275 // Input + igyRegEnergy = 307 // Input igyRegCurrents = 1006 // current readings per phase ) @@ -163,6 +164,18 @@ func (wb *Innogy) CurrentPower() (float64, error) { return 230 * (l1 + l2 + l3), err } +var _ api.MeterEnergy = (*Innogy)(nil) + +// TotalEnergy implements the api.MeterEnergy interface +func (wb *Innogy) TotalEnergy() (float64, error) { + b, err := wb.conn.ReadInputRegisters(igyRegEnergy, 2) + if err != nil { + return 0, err + } + + return float64(math.Float32frombits(binary.BigEndian.Uint32(b))), nil +} + var _ api.PhaseCurrents = (*Innogy)(nil) // Currents implements the api.PhaseCurrents interface