Спасибо за ответ! Что-то я уже запутался в поиске информации(
Есть выключатель, который имеет нестандартную для модбас длину запроса и ответа
Мигать подсветкой научился через правила, вроде сложного ничего нет. Использую команду
runShellCommand(“/usr/bin/printf ‘\x02\x06\x10\x41\x00\x00\xDD\x2D\xAA’ > /dev/ttyRS485-2”).
Но не могу получить информацию о нажатых кнопках на выключателе.
Перепробовал несколько вариантов:
1. modbus_client_rpc как я понял использует стандартный модбас запрос и ответа от устройства никакого нет ( ‘msg’ - неправильно формируется)
modbus_client_rpc --debug -mrtu -pnone /dev/ttyRS485-2 -a2 -t6 -r0x1021 1
2023-11-13 12:47:28,210 [DEBUG] Data to write: 0x01
2023-11-13 12:47:28,211 [DEBUG] [02][06][10][21][00][01][1c][f3]
2023-11-13 12:47:28,214 [DEBUG] Connecting to broker unix:///var/run/mosquitto/mosquitto.sock
2023-11-13 12:47:28,217 [DEBUG] RPC Client → {‘path’: ‘/dev/ttyRS485-2’, ‘baud_rate’: 9600, ‘parity’: ‘N’, ‘data_bits’: 8, ‘stop_bits’: 1, ‘response_size’: 8, ‘format’: ‘HEX’, ‘msg’: ‘0206102100011cf3’, ‘total_timeout’: 1000} (1000 timeout ms)
2023-11-13 12:47:28,794 [DEBUG] Options: {‘debug’: True, ‘mode’: ‘rtu’, ‘slave_addr’: 2, ‘read_count’: 1, ‘start_addr’: 4129, ‘func_type’: 6, ‘timeout’: 1000, ‘address_decrement’: False, ‘baudrate’: 9600, ‘data_bits’: 8, ‘stop_bits’: 1, ‘parity_port’: ‘N’, ‘mqtt_broker’: ‘unix:///var/run/mosquitto/mosquitto.sock’, ‘serialport_host’: ‘/dev/ttyRS485-2’, ‘write_data’: [1]}
ERROR occurred
2023-11-13 12:47:29,796 [DEBUG] Error message: Server error
2023-11-13 12:47:29,797 [DEBUG] Error code: -32000
2023-11-13 12:47:29,798 [DEBUG] Error data: Port IO error: Serial protocol error: request timed out
2. runShellCommand(“/usr/bin/printf ‘\x02\x06\x10\x41\x00\x00\xDD\x2D\xAA’ > /dev/ttyRS485-2”, {
captureOutput: true,
exitCallback: function (exitCode, capturedOutput) {
log.info("cmd output: " + capturedOutput);
}
});
в ответе ничего нет(
3. runShellCommand(“cat < /dev/ttyRS485-2”) тоже ничего путного нет
Не подскажете, какую команду применить, чтобы от устройства получить HEX ответ и, разобрав его побайтно, выполнять последующие действия
Спасибо