Добрый день!
Пока пытаемся понять, что происходит, но мы стали сталкиваться со следующей проблемой.
Подключаем WB-MIR v2 и видим, что все топики этого девайса помечены error, кроме напряжения и внутренней температуры. Вроде как, отключить ИК, подождать какое-то время и подключить заново, помогает. Но это не точно.
Никто не сталкивался с подобным? Как отлаживать?
Стоит посмотреть на сообщения в /var/log/messages, чтобы понять, что именно за ошибки.
Вызвал grep “:53:” /var/log/messages
Результат:
Apr 14 10:37:00 IQ165000 user.notice serial: ModbusRTU::ReadRegisterRange(): failed to read 32 input(s) @ 5400 of device modbus:53: Serial protocol error: illegal data value
Apr 14 10:37:00 IQ165000 user.notice serial: ModbusRTU::ReadRegisterRange(): failed to read 32 coil(s) @ 5100 of device modbus:53: Serial protocol error: illegal data address
Apr 14 10:37:00 IQ165000 user.notice serial: ModbusRTU::ReadRegisterRange(): failed to read 32 coil(s) @ 5200 of device modbus:53: Serial protocol error: illegal data address
Apr 14 10:37:00 IQ165000 user.notice serial: ModbusRTU::ReadRegisterRange(): failed to read 32 coil(s) @ 5300 of device modbus:53: Serial protocol error: illegal data address
Apr 14 10:37:03 IQ165000 user.notice serial: ModbusRTU::ReadRegisterRange(): failed to read 32 input(s) @ 5400 of device modbus:53: Serial protocol error: illegal data value
Apr 14 10:37:03 IQ165000 user.notice serial: ModbusRTU::ReadRegisterRange(): failed to read 32 coil(s) @ 5100 of device modbus:53: Serial protocol error: illegal data address
Apr 14 10:37:03 IQ165000 user.notice serial: ModbusRTU::ReadRegisterRange(): failed to read 32 coil(s) @ 5200 of device modbus:53: Serial protocol error: illegal data address
Apr 14 10:37:03 IQ165000 user.notice serial: ModbusRTU::ReadRegisterRange(): failed to read 32 coil(s) @ 5300 of device modbus:53: Serial protocol error: illegal data address
Apr 14 10:37:07 IQ165000 user.notice serial: ModbusRTU::ReadRegisterRange(): failed to read 32 input(s) @ 5400 of device modbus:53: Serial protocol error: illegal data value
Apr 14 10:37:07 IQ165000 user.notice serial: ModbusRTU::ReadRegisterRange(): failed to read 32 coil(s) @ 5100 of device modbus:53: Serial protocol error: illegal data address
Apr 14 10:37:07 IQ165000 user.notice serial: ModbusRTU::ReadRegisterRange(): failed to read 32 coil(s) @ 5200 of device modbus:53: Serial protocol error: illegal data address
Apr 14 10:37:07 IQ165000 user.notice serial: ModbusRTU::ReadRegisterRange(): failed to read 32 coil(s) @ 5300 of device modbus:53: Serial protocol error: illegal data address
Apr 14 10:37:12 IQ165000 user.notice serial: ModbusRTU::ReadRegisterRange(): failed to read 32 input(s) @ 5400 of device modbus:53: Serial protocol error: illegal data value
Apr 14 10:37:13 IQ165000 user.notice serial: ModbusRTU::ReadRegisterRange(): failed to read 32 coil(s) @ 5100 of device modbus:53: Serial protocol error: illegal data address
Apr 14 10:37:13 IQ165000 user.notice serial: ModbusRTU::ReadRegisterRange(): failed to read 32 coil(s) @ 5200 of device modbus:53: Serial protocol error: illegal data address
Apr 14 10:37:13 IQ165000 user.notice serial: ModbusRTU::ReadRegisterRange(): failed to read 32 coil(s) @ 5300 of device modbus:53: Serial protocol error: illegal data address
HW: 1.7
FW: 3.7.2
SN: 4266449931
у меня подозрение, что вы обращаетесь на самом деле к другому устройству, не к WB-MIR. Не могли бы вы останоисть wb-mqtt-serial и считать из устройства вручную (через modbus_client) его серйиный номер или название модели? Примеры есть в документации, можно найти по запросу modbus_client
Серийник вроде совпадает:
modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-2 -a53 -t0x04 -r270 -c 2
Data: 0xfe4c 0xdc0b
Ага, я понял: это очень старая прошивка WB-MIR. Там было сжатие команд и хитрая система хранения, но работало это так погано, что мы, в итоге, от всей этой функциональности избавились. Обновление прошивки там возможно, но будет доступно только 7 штук ИК-команд. Если это вас не устроит, то мы поменяем эти на новые WB-MIR по гарантии.