Добавить сторонний датчик температуры Modbus

Приобрел датчик температуры и влажности MW-RS485-RS30
Пытаюсь его добавить в WB7
Подключил на второй порт Rs485
По умолчанию датчик работает на скорости 4800, соответственно надо переключить на скорость 9600
пробовал делать по инструкции:

  1. сперва остановил драйвер
    systemctl stop wb-mqtt-serial
  2. потом попробовал прочитать устройство
    modbus_client --debug -mrtu -b4800 -pnone -s2 /dev/ttyRS485-2 -a1 -t0x03 -r0000
    в ответ получил

Opening /dev/ttyRS485-2 at 4800 bauds (N, 8, 2)
[01][03][00][00][00][01][84][0A]
Waiting for a confirmation…
<01><03><02><01><31><78><00>
SUCCESS: read 1 of elements:
Data: 0x0131
т.е. устройство на шине есть

Но вот далее не получается изменить на нем скорость
Из описания устройства (Sensor Temperatura Humedad MW-RS485-RS30 RS485 Modbus - yorobotics) известно, что адрес регистра устанавливающего скорость 07D1, значение 0 соответствует скорости 2400, значение 1 соответствует скорость 4800, значение 2 соответствует скорости 9600

Пытаюсь прочитать текущий параметр:
modbus_client --debug -mrtu -b4800 -pnone -s2 /dev/ttyRS485-2 -a1 -t0x03 -r07D1

Получаю ответ

Opening /dev/ttyRS485-2 at 4800 bauds (N, 8, 2)
[01][03][00][07][00][01][35][CB]
Waiting for a confirmation…
<01><03><02><00><00><44>
SUCCESS: read 1 of elements:
Data: 0x0000
Т.е. якобы скорость устройства 2400

Пытаюсь записать новый параметр скорости (значение 2 )
modbus_client --debug -mrtu -b4800 -pnone -s2 /dev/ttyRS485-2 -a1 -t0x06 -r07D1 2

Получаю ответ:
Data to write: 0x2
Opening /dev/ttyRS485-2 at 4800 bauds (N, 8, 2)
[01][06][00][07][00][02][B9][CA]
Waiting for a confirmation…
<01><09><02><91>
Message length not corresponding to the computed length (5 != 8)
ERROR occured!

Собственно вопрос: подскажите, что я делаю не так, и как сделать правильно
Спасибо

Добрый день.

По факту здесь вы пытаетесь прочитать регистр 7. Это видно по запросу: [01][03][00][07][00][01][35][CB]
Чтобы посмотреть установленную текущую скорость обмена вам нужно формировать запрос так:

modbus_client --debug -mrtu -b4800 -pnone -s2 /dev/ttyRS485-2 -a1 -t0x03 -r0x07D1

или так:

modbus_client --debug -mrtu -b4800 -pnone -s2 /dev/ttyRS485-2 -a1 -t0x03 -r2001

Рекомендую ознакомиться с документацией у нас в вики:
https://wirenboard.com/wiki/Modbus
https://wirenboard.com/wiki/index.php/Modbus-client
https://wirenboard.com/wiki/Connecting_Third_Party_Devices_to_Wiren_Board

Спасибо. Проверил
вот так я пробовал
modbus_client --debug -mrtu -b4800 -pnone -s2 /dev/ttyRS485-2 -a1 -t0x03 -r0x07D1
Ответ выдается
Opening /dev/ttyRS485-2 at 4800 bauds (N, 8, 2)
[01][03][07][D1][00][01][D5][47]
Waiting for a confirmation…
<01><03><02><00><00><44>
SUCCESS: read 1 of elements:
Data: 0x0000
Может таблица регистров не верная в описании датчика ?

И пытаюсь поменять вот так значение:
modbus_client --debug -mrtu -b4800 -pnone -s2 /dev/ttyRS485-2 -a1 -t0x06 -r0x07D1 0x02

выдает ошибку
Data to write: 0x2
Opening /dev/ttyRS485-2 at 4800 bauds (N, 8, 2)
[01][06][07][D1][00][02][59][46]
Waiting for a confirmation…
<01><09><02><91>
Message length not corresponding to the computed length (5 != 8)
ERROR occured!

p.s.: wiki читал, но вопросы остались

Тут больше толку будет если спросить непосредственно у производителя датчика, считаю.