Fix SMA reporting negativ 0 value (#126)

This commit is contained in:
Andreas Linde 2020-05-12 11:23:06 +02:00 • committed by GitHub
parent bb0a7e6964
commit a44f4242fa
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 11 additions and 2 deletions

View file

@ -109,7 +109,10 @@ func (sm *SMA) receive() {
sm.updated = time.Now()
}
} else if power, ok := msg.Values[sma.ExportPower]; ok {
sm.power = -power
sm.power = 0
if power > 0 {
sm.power = -power
}
sm.updated = time.Now()
} else if power, ok := msg.Values[sma.ImportPower]; ok {
sm.power = power

View file

@ -157,6 +157,8 @@ func (l *Listener) processMessage(src *net.UDPAddr, b []byte) (Telegram, error)
Values: obisValues,
}
// l.log.TRACE.Printf("recv %v", msg.Values)
return msg, nil
}

View file

@ -4,6 +4,8 @@ import (
"net"
"reflect"
"testing"
"github.com/andig/evcc/util"
)
func TestListenerProcessMessage(t *testing.T) {
@ -186,7 +188,9 @@ func TestListenerProcessMessage(t *testing.T) {
}
for _, tc := range tests {
t.Run(tc.name, func(t *testing.T) {
l := &Listener{}
l := &Listener{
log: util.NewLogger("sma "),
}
buffer := tc.response
read := len(buffer)