Search OTA Task¶
Search for OTA tasks based on the search criteria.
Operation Permissions¶
Required Authorization |
Required Operation Permission |
---|---|
Device Management |
Read |
Request Format¶
POST https://{apigw-address}/connect-service/v2.1/ota-jobs?action=searchTask
Request Parameters (URI)¶
Name |
Location (Path/Query) |
Mandatory/Optional |
Data Type |
Description |
---|---|---|---|---|
orgId |
Query |
Mandatory |
String |
The organization ID which the asset belongs to. How to get orgId>> |
Request Parameters (Body)¶
Name |
Location (Path/Query) |
Mandatory/Optional |
Data Type |
---|---|---|---|
expression |
Optional |
String |
The query expression, which supports sql-like query. The fields that are supported for query include: |
pagination |
Optional |
Pagination Request Struct |
Lists the paging requirements in a request. When not specified, 10 records are displayed per page by default. The maximum records per page is 200 but for optimal performance, it is recommended to have not more than 50 records per page. |
Response Parameters¶
Name |
Data Type |
Description |
---|---|---|
data |
Array of TaskInfo Structs |
The list of OTA tasks. For more details, see TaskInfo Struct>> |
TaskInfo Struct ¶
Name |
Data Type |
Description |
---|---|---|
taskId |
String |
The task ID. When the same OTA job is executed on different devices, a task ID will be used to uniquely identify the task flow when the OTA job is executed on this device. |
orgId |
String |
The organization ID. |
assetId |
String |
The asset ID. |
productKey |
String |
The product key. |
deviceKey |
String |
The device key. |
jobId |
String |
The OTA job ID. |
fromVersion |
String |
The firmware version to be upgraded in this task. |
toVersion |
String |
The firmware version to be upgrade from in this task. |
progress |
Integer |
The progress of the task. 0 - 100 is used to indicated the percentage of the progress. If it is a negative number, it means the task failed. |
desc |
String |
The device upgrade status description. Content can include the reason for the upgrade failure, or customized content specified by the user when developing the OTA capability on the device side. |
status |
String |
The status of the task.
|
updateTime |
Long |
The last firmware updated time. |
Error Codes¶
For the description of error codes, see Common Error Codes.
Samples¶
Request Sample¶
url: https://{apigw-address}/connect-service/v2.1/ota-jobs?action=searchTask&orgId=yourOrgId
method: POST
requestBody:
{
"expression":"productKey='yourProductKey'",
"pagination":{
"pageNo":1,
"pageSize":5
}
}
Return Sample¶
{
"code":0,
"msg":"OK",
"requestId":"6b88c1ba-3388-4888-9429-6d332d4dbe2b",
"data":[
{
"taskId":"5ed0de47646542001b3d1146",
"orgId":"o15475466766371",
"assetId":"FOrco0Hu",
"productKey":"BXwU4kMk",
"deviceKey":"ota-device1",
"jobId":"5ed0de47646542001b3d1145",
"fromVersion":"1.0",
"toVersion":"2.0",
"progress":null,
"desc":"user cancel",
"status":"failed",
"updateTime":1590746699719
}
],
"pagination":{
"sortedBy":null,
"pageNo":1,
"pageSize":10,
"totalSize":1
}
}
Java SDK Sample¶
package com.envisioniot.enos.connect_service.ota.job;
import com.envision.apim.poseidon.config.PConfig;
import com.envision.apim.poseidon.core.Poseidon;
import com.envisioniot.enos.api.common.constant.request.Pagination;
import com.envisioniot.enos.connect_service.v2_1.ota.job.task.SearchTaskRequest;
import com.envisioniot.enos.connect_service.v2_1.ota.job.task.SearchTaskResponse;
public class SearchTask {
public static void main(String[] args) {
final String appKey = "yourAppKey";
final String appSecret = "yourAppSecret";
String serverUrl = "yourServerUrl";
String orgId = "yourOrgId";
SearchTaskRequest request = new SearchTaskRequest();
request.setOrgId(orgId);
request.setExpression("jobId='yourJobId'");
Pagination pagination = new Pagination();
pagination.setPageNo(1);
pagination.setPageSize(10);
request.setPagination(pagination);
SearchTaskResponse response = Poseidon
.config(PConfig.init().appKey(appKey).appSecret(appSecret).debug())
.url(serverUrl)
.getResponse(request, SearchTaskResponse.class);
}
}