Filter Asset Latest Data¶
Filter and query the latest data of a single measurement point for multiple devices.
Operation Permissions¶
Required Authorization | Required Operation Permission |
---|---|
Asset | Read |
For more information about resources and required permission, see Policies, Roles and Permissions>>
Using GET Method¶
Request Format¶
GET https://{apigw-address}/tsdb-service/v2.0/latest/filter
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 organization ID>> |
modelId | Query | Mandatory | String | The model ID. How to get model ID>> |
assetIds | Query | Mandatory | String | The asset ID. Supports the query of multiple asset IDs, separated by commas. How to get asset ID>> |
measurepoint | Query | Mandatory | String | The measurement point ID. How to get measurement point ID>> |
operator | Query | Mandatory | String | The query operator. It supports:
|
valueFilter | Query | Mandatory | String | The value to filter for. It must be used along with the operator. The operators “eq”, “nq”, “gt”, “ge”, “lt”, and “le” correspond to a single value; “between” corresponds to 2 values; “in” corresponds to multiple values. Multiple values must be separated by commas, and the data types must be consistent with those of the measurement points. For example: “operator=betwteen&valueFilter=a, b” refers to filtering out the values between a and b. |
timeWindow | Query | Optional | Integer | Specify the time window for filtering the latest data (by minutes). The minimum value is 0. If not specified, no constrain is applied. |
accessKey | Query | Optional | String | The service account for authentication purposes. How to get the accessKey>> |
ifWithLocalTime | Query | Optional | Boolean |
|
localTimeAccuracy | Query | Optional | Boolean |
|
Response Parameters ¶
Name | Data Type | Description |
---|---|---|
data | List<JSONObject> | The list of asset data. The data returned for a single point of a single device is sorted by the data timestamp in ascending order. For more information, see items |
items¶
Sample¶
{
"assetId": "yourAssetId",
"yourPointId": 1.5,
"timestamp": 1559570160000
}
Parameters¶
Name | Data Type | Description |
---|---|---|
assetId | String | The asset ID. |
timestamp | Long | The data timestamp (UNIX time, accurate to the second). |
pointId | Double | This parameter is a variable, representing the identifier and data of the measurement point. |
Error Codes¶
For description of error codes, see Common Error Codes.
Samples (GET Method)¶
Request Sample¶
url: https://{apigw-address}/tsdb-service/v2.0/latest/filter?orgId=yourOrgId&assetIds=yourAssetIds&modelId=yourModelId&measurepoint=yourPointId&timeWindow=&operator=le&valueFilter=55673.9&accessKey=accessKeyOfYourAPP
method: GET
In the above example, the request sample will filter out the pointId
value of the model opentsdb_model
, which is less than or equals to 55673.9.
Return Sample¶
{
"status": 0,
"requestId": null,
"msg": "success",
"submsg": null,
"data": {
"items": [
{
"assetId": "yourAssetId",
"yourPointId": 1.5,
"timestamp": 1559570160000
}
]
}
}
Java SDK Sample¶
import com.alibaba.fastjson.JSONObject;
import com.envision.apim.poseidon.config.PConfig;
import com.envision.apim.poseidon.core.Poseidon;
import com.envision.apim.poseidon.request.PoseidonRequest;
public class GetMethod {
private static class Request extends PoseidonRequest {
public void setQueryParam(String key, Object value){
queryEncodeParams().put(key, value);
}
public void setMethod(String method) {
this.method = method;
}
private String method;
@Override
public String baseUri() {
return "";
}
@Override
public String method() {
return method;
}
}
public static void main(String[] args){
//1. Click Application Registration in the left navigation of the EnOS Management Console.
//2. Click the application that needs to call the API, and click Basic Information. accessKey and secretKey correspond to AccessKey and SecretKey in EnOS.
String accessKey = "AccessKey of your APP";
String secretKey = "SecretKey of your APP";
//Create a request and pass the required parameters into the map that exists in the query. The key is the parameter name and the value is the parameter value.
Request request = new Request();
request.setQueryParam("orgId", "yourOrgId");
request.setQueryParam("timeWindow", 10);
request.setQueryParam("operator", "le");
request.setQueryParam("modelId", "yourModelId");
request.setQueryParam("valueFilter", 666.6);
request.setQueryParam("assetIds","yourAssetIds");
request.setQueryParam("measurepoint", "yourPointId");
request.setMethod("GET");
try {
JSONObject response = Poseidon.config(PConfig.init().appKey(accessKey).appSecret(secretKey).debug())
.url("https://{apigw-address}/tsdb-service/v2.0/latest/filter")
.getResponse(request, JSONObject.class);
System.out.println(response);
} catch (Exception e) {
e.printStackTrace();
}
}
}
Using POST Method¶
Request Format¶
POST https://{apigw-address}/tsdb-service/v2.0/latest/filter
Request Parameters (Body)¶
Name | Mandatory/Optional | Data Type | Description |
---|---|---|---|
orgId | Mandatory | String | The organization ID which the asset belongs to. How to get organization ID>> |
modelId | Mandatory | String | The model ID. How to get model ID>> |
assetIds | Mandatory | String | The asset ID. Supports the query of multiple asset IDs, separated by commas. How to get asset ID>> |
measurepoint | Mandatory | String | The measurement point ID. How to get measurement point ID>> |
operator | Mandatory | String | The query operator. It supports:
|
valueFilter | Mandatory | String | The value to filter for. It must be used along with the operator. The operators “eq”, “nq”, “gt”, “ge”, “lt”, and “le” correspond to a single value; “between” corresponds to 2 values; “in” corresponds to multiple values. Multiple values must be separated by commas, and the data types must be consistent with those of the measurement points. For example: “operator=betwteen&valueFilter=a, b” refers to filtering out the values between a and b. |
timeWindow | Optional | String | Specify the time window for filtering the latest data (by minutes). The minimum value is 0. If not specified, no constrain is applied. For example: when timeWindow=n, the data within n minutes from the current time is returned. When timeWindow=0, if the latest data timestamp is later than the current time, the data of the latest timestamp will be returned. |
accessKey | Optional | String | The service account for authentication purposes. How to get the accessKey>> |
ifWithLocalTime | Optional | String |
|
localTimeAccuracy | Optional | String |
|
Response Parameters¶
Refer to the description in Response Parameters of the Using GET Method section.
Error Codes¶
For the description of error codes, see Common Error Codes.
Samples (POST Method)¶
Request Sample¶
url: https://{apigw-address}/tsdb-service/v2.0/latest/filter
method: POST
Content-Type: multipart/form-data;charset=UTF-8
requestBody:
{
"orgId": "yourOrgId",
"modelId": "yourModelId",
"assetIds": "yourAssetIds",
"pointId": "yourPointId",
"operator": "le",
"valueFilter": "55673.9",
"accessKey": "accessKey of your APP"
}
Where, operator=le&valueFilter=55673.9
means that: The following sample will filter out the pointId
value of the model opentsdb_model
, which is less than or equal to 55673.9.
Return Sample¶
{
"status": 0,
"requestId": null,
"msg": "success",
"submsg": null,
"data": {
"items": [
{
"assetId": "yourAssetId",
"yourPointId": 1.5,
"timestamp": 1559570160000
}
]
}
}
Java SDK Sample¶
import com.alibaba.fastjson.JSONObject;
import com.envision.apim.poseidon.config.PConfig;
import com.envision.apim.poseidon.core.Poseidon;
import com.envision.apim.poseidon.request.PoseidonRequest;
public class PostMethod {
private static class Request extends PoseidonRequest {
public void setFormParam(String key, String value){
formParams().put(key, value);
}
public void setMethod(String method) {
this.method = method;
}
private String method;
@Override
public String baseUri() {
return "";
}
@Override
public String method() {
return method;
}
}
public static void main(String[] args){
//1. Click Application Registration in the left navigation of the EnOS Management Console.
//2. Click the application that needs to call the API, and click Basic Information. accessKey and secretKey correspond to AccessKey and SecretKey in EnOS.
String accessKey = "AccessKey of your APP";
String secretKey = "SecretKey of your APP";
//Create a request and pass the required parameters into the map that exists in the form. The key is the parameter name and the value is the parameter value.
Request request = new Request();
request.setFormParam("orgId", "yourOrgId");
request.setFormParam("timeWindow", "10");
request.setFormParam("operator", "le");
request.setFormParam("modelId", "yourModelId");
request.setFormParam("valueFilter", "666.6");
request.setFormParam("assetIds","yourAssetIds");
request.setFormParam("measurepoint", "yourPointId");
request.setMethod("POST");
try {
JSONObject response = Poseidon.config(PConfig.init().appKey(accessKey).appSecret(secretKey).debug())
.url("https://{apigw-address}/tsdb-service/v2.0/latest/filter")
.getResponse(request, JSONObject.class);
System.out.println(response);
} catch (Exception e) {
e.printStackTrace();
}
}
}