Skip to content

Commit

Permalink
DSMR: allow selectively returning consumption or delivery (#11774)
Browse files Browse the repository at this point in the history
  • Loading branch information
andig committed Jan 20, 2024
1 parent 872bc32 commit 02214bc
Showing 1 changed file with 7 additions and 5 deletions.
12 changes: 7 additions & 5 deletions meter/dsmr.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit 02214bc

Please sign in to comment.