RS485 Transceive
Use device.operation.execute to send raw RS485 data and wait for a slave response. The service does not interpret Modbus fields; the caller builds the request, handles CRC, and parses the response.
Permission
device:controlRequest
{
"type": "request",
"requestId": "req_rs485_001",
"topic": "device.operation.execute",
"data": {
"deviceId": "abc123456789",
"idempotencyKey": "idem_rs485_001",
"operation": {
"name": "device.rs485.transceive",
"params": {
"requestHex": "02060034000109F7"
}
}
}
}requestHex is a continuous hexadecimal string containing 1 to 30 bytes, without spaces, a 0x prefix, or separators.
Reply
{
"type": "reply",
"requestId": "req_rs485_001",
"code": "COMMAND_ACCEPTED",
"message": "Command accepted.",
"data": {
"command": {
"id": "cmd_01HY...",
"deviceId": "abc123456789",
"operation": "device.rs485.transceive",
"status": "SUCCESS",
"params": {
"requestHex": "02060034000109F7"
},
"result": {
"responseHex": "02060034000109F7"
},
"createdAt": "2026-07-15T08:30:00Z"
}
}
}SUCCESS: the matching RS485 response arrived within the wait window.TIMEOUT: no response arrived in the wait window.resultis omitted and the operation is not confirmed successful.SENT: the original command for the same idempotency key is still pending.FAILED: the platform confirmed that the command did not complete.
After TIMEOUT, reusing the original idempotencyKey returns the same command without sending the RS485 data again. Generate a new key only after deciding that another physical transceive operation is safe.
RS485 data matched to this request is returned as command.result.responseHex and is not duplicated as an event. Unmatched data, including late or unsolicited device data, is sent as a device.rs485.received event.
Possible errors include INVALID_REQUEST, AUTH_SCOPE_DENIED, DEVICE_NOT_FOUND, DEVICE_BUSY, DEVICE_OFFLINE, IDEMPOTENCY_CONFLICT, COMMAND_REJECTED, RATE_LIMITED, GATEWAY_UNAVAILABLE, and INTERNAL_ERROR.
REST equivalent: RS485 Transceive Command.
