SMA EM: use export register for energy (#23711)

This commit is contained in:
premultiply 2025-09-19 21:59:02 +02:00 • committed by GitHub
parent 4deb41ca42
commit 09d4d7aa9e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -109,6 +109,9 @@ var _ api.MeterEnergy = (*SMA)(nil)
// TotalEnergy implements the api.MeterEnergy interface
func (sm *SMA) TotalEnergy() (float64, error) {
values, err := sm.device.Values()
if sm.scale < 0 {
return sma.AsFloat(values[sunny.ActiveEnergyMinus]) / 3600000, err
}
return sma.AsFloat(values[sunny.ActiveEnergyPlus]) / 3600000, err
}
@ -130,7 +133,7 @@ func (sm *SMA) Currents() (float64, float64, float64, error) {
res[i] = util.SignFromPower(sma.AsFloat(values[id]), powers[i])
}
return res[0], res[1], res[2], err
return sm.scale * res[0], sm.scale * res[1], sm.scale * res[2], err
}
var _ api.PhaseVoltages = (*SMA)(nil)
@ -161,7 +164,7 @@ func (sm *SMA) Powers() (float64, float64, float64, error) {
res[i] -= sma.AsFloat(values[id])
}
return res[0], res[1], res[2], err
return sm.scale * res[0], sm.scale * res[1], sm.scale * res[2], err
}
// soc implements the api.Battery interface