DSMR: allow selectively returning consumption or delivery (#11774)
This commit is contained in:
parent
872bc32279
commit
02214bcdea
1 changed files with 7 additions and 5 deletions
|
|
@ -250,14 +250,16 @@ func (m *Dsmr) get(id string) (float64, error) {
|
|||
|
||||
// CurrentPower implements the api.Meter interface
|
||||
func (m *Dsmr) CurrentPower() (float64, error) {
|
||||
bezug, err := m.get("1-0:1.7.0")
|
||||
bezug, err1 := m.get("1-0:1.7.0")
|
||||
lief, err2 := m.get("1-0:2.7.0")
|
||||
|
||||
var lief float64
|
||||
if err == nil {
|
||||
lief, err = m.get("1-0:2.7.0")
|
||||
// allow one value to be missing
|
||||
if err1 == nil && errors.Is(err2, api.ErrNotAvailable) || err2 == nil && errors.Is(err1, api.ErrNotAvailable) {
|
||||
err1 = nil
|
||||
err2 = nil
|
||||
}
|
||||
|
||||
return (bezug - lief) * 1e3, err
|
||||
return (bezug - lief) * 1e3, errors.Join(err1, err2)
|
||||
}
|
||||
|
||||
// totalEnergy implements the api.MeterEnergy interface
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue