diff --git a/util/modbus/log.go b/util/modbus/log.go index 589c2615a..08043e7cd 100644 --- a/util/modbus/log.go +++ b/util/modbus/log.go @@ -2,6 +2,7 @@ package modbus import ( "sync" + "time" "github.com/grid-x/modbus" "github.com/volkszaehler/mbmd/meters" @@ -16,7 +17,12 @@ func (l *logger) WithLogger(logger modbus.Logger, fun func() ([]byte, error)) ([ l.mu.Lock() defer l.mu.Unlock() - l.logger = logger + if l.logger != logger { + // small delay when switching logger/ slave id to mimic mbmd behavior + time.Sleep(10 * time.Millisecond) + l.logger = logger + } + return fun() }