diff --git a/charger/dadapower.go b/charger/dadapower.go index e4d3a00bf..29b274832 100644 --- a/charger/dadapower.go +++ b/charger/dadapower.go @@ -37,6 +37,7 @@ const ( dadapowerRegChargingAllowed = 1000 dadapowerRegChargeCurrentLimit = 1001 dadapowerRegActivePhases = 1002 + dadapowerRegVolts = 1003 dadapowerRegCurrents = 1006 dadapowerRegActiveEnergy = 1009 dadapowerRegChargingPortState = 1015 @@ -242,6 +243,21 @@ func (wb *Dadapower) Currents() (float64, float64, float64, error) { return res[0], res[1], res[2], nil } +// Voltages implements the api.PhaseVoltages interface +func (wb *Dadapower) Voltages() (float64, float64, float64, error) { + b, err := wb.conn.ReadInputRegisters(dadapowerRegVolts+wb.regOffset, 3) + if err != nil { + return 0, 0, 0, err + } + + var res [3]float64 + for i := range res { + res[i] = float64(binary.BigEndian.Uint16(b[2*i:])) / 100 + } + + return res[0], res[1], res[2], nil +} + var _ api.PhaseSwitcher = (*Dadapower)(nil) // Phases1p3p implements the api.PhaseSwitcher interface