Fix creating RS485 meters as Sunspec when RTU is not enabled (#977)

This commit is contained in:
andig 2021-05-08 20:55:35 +02:00 • committed by GitHub
parent 36ae214ac2
commit 502f25f017
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 7 additions and 4 deletions

View file

@ -38,6 +38,9 @@ func NewModbusFromConfig(other map[string]interface{}) (api.Meter, error) {
Timeout time.Duration
}{
Power: "Power",
Settings: modbus.Settings{
ID: 1,
},
}
if err := util.DecodeOther(other, &cc); err != nil {
@ -65,7 +68,7 @@ func NewModbusFromConfig(other map[string]interface{}) (api.Meter, error) {
conn.Logger(log.TRACE)
// prepare device
device, err := modbus.NewDevice(cc.Model, cc.SubDevice, *cc.RTU)
device, err := modbus.NewDevice(cc.Model, cc.SubDevice)
if err == nil {
err = device.Initialize(conn)

View file

@ -75,7 +75,7 @@ func NewModbusFromConfig(other map[string]interface{}) (IntProvider, error) {
// no registered configured - need device
if cc.Register.Decode == "" {
device, err = modbus.NewDevice(cc.Model, cc.SubDevice, *cc.RTU)
device, err = modbus.NewDevice(cc.Model, cc.SubDevice)
// prepare device
if err == nil {

View file

@ -177,8 +177,8 @@ func NewConnection(uri, device, comset string, baudrate int, rtu bool, slaveID u
}
// NewDevice creates physical modbus device from config
func NewDevice(model string, subdevice int, isRS485 bool) (device meters.Device, err error) {
if isRS485 {
func NewDevice(model string, subdevice int) (device meters.Device, err error) {
if IsRS485(model) {
device, err = rs485.NewDevice(strings.ToUpper(model))
} else {
device = sunspec.NewDevice(strings.ToUpper(model), subdevice)