Get Asset Raw Data by Time Range

Get the original data of specified measurement points of specified devices within a certain period (covering AI, AI Normalized, DI, PI, and Generic data types) and perform application development.

Operation Permissions

Required Authorization Required Operation Permission
Asset Read

For more information about resources and required permission, see Policies, Roles and Permissions>>

Request Format

POST https://{apigw-address}/tsdb-service/v2.1/raw

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>>

Request Parameters (Body)

Name Mandatory/Optional Data Type Description
modelId Optional 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>>
pointIds Mandatory String The measurement point ID. Supports the query of multiple measurement point IDs, separated by commas. How to get measurement point ID>>
startTime Mandatory String

The start time of the sampling data, where both UTC and local time formats are supported.

  • For UTC time format, the application will query all the asset data by the unified start timestamp and end timestamp. Timezone information is required for the UTC time format: 2019-06-01T00:00:00+08:00.
  • For local time format, the application will query the asset data by the local time of where the device is located. Its format is: YYYY-MM-DD HH:MM:SS.
endTime Mandatory String The end time of the sampling data. Its format must be consistent with startTime.
pageSize Optional Integer The upper limit of the returned records in a single page for a single measurement point of a single device, which is 1,000 by default.
orderBy Optional String

Specify whether to sort the response result according to a certain field. Only the field timestamp is supported for now.

  • timestamp asc (default): Sort result by ascending order
  • timestamp desc: Sort result by descending order.
withQuality Optional Boolean
  • true = the quality indicator is included in the response
  • false = the quality indicator is not included in the response
localTimeAccuracy Optional Boolean
  • true = query returns data with millisecond time stamp
  • false (default) = query returns data without millisecond time stamp
localTimeFormat Optional Integer Specify whether the local time value includes time zone information of devices. 0 (default): without time zone information; 1: with time zone information.
itemFormat Optional Integer Specify the displaying format of the returned device data. Available options are 0, 1, and 2. For the example of each displaying format, see Item Format Example>>
boundaryType Optional String Specify the type/scope of data to be queried if data is stored after compression. Available options are: inside (query compressed raw data only, default), outside (query compressed raw data and data records before the specified start time and after the end time), interpolated (query compressed raw data and interpolated data records at the specified start time and end time), and sample (return interpolated data records by specified time interval and algorithm within the specified start time and end time). The interpolated data can be used for making data in TSDB complete based on business needs.
interval Optional Integer For boundaryType=sample, specify the time interval for generating the interpolated data records. The default value is 60, in seconds.
interpolation Optional String For boundaryType=sample, specify the algorithm for generating the interpolated data records. Available options are: linear (linear interpolation, default), previous (previous value interpolation), near (near value interpolation), after (next value interpolation). For detailed information about the algorithm, see Data Interpolation Algorithm>>
type Optional String Specify the TSDB storage type to query data from. Available options are: ai (query AI Raw Data only), ai_normalized (query AI Normalized Data only), di (query DI Data only), pi (query PI Data only), and generic (query Generic Data only). If not specified, query measurement point data from the AI Raw, DI, PI, and Generic storage by default.

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 time stamp in ascending order. For more information, see items>> <get_asset_raw_data_by_time_range.html#items>.__

items

Sample

{
        "assetId": "yourAssetId",
        "timestamp": 1560249312446,
        "yourPointId": 1.1236,
        "localtime": "2019-06-11 18:35:12",
        "quality": null
}

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.
localtime String The data timestamp in local time format (accurate to the second). The value of the localTimeFormat parameter determines whether the local time value includes the time zone information.
quality Integer The quality indicator.

Error Codes

For description of error codes, see Common Error Codes.

Sample 1

Request Sample

Local time format:

url: https://{apigw-address}/tsdb-service/v2.1/raw?orgId=yourOrgId

method: POST

Content-Type: application/json

requestBody:
{
  "assetIds": "yourAssetId",
  "pointIds": "yourPointId1,yourPointId2",
  "startTime": "2020-04-20 00:00:00",
  "endTime": "2020-04-21 00:00:00",
  "pageSize": 10,
  "withQuality": false,
  "localTimeAccuracy": false,
  "localTimeFormat": 1,
  "itemFormat": 0
}

Response Sample

{
  "code": 0,
  "msg": "OK",
  "submsg": null,
  "data": {
    "items": [
      {
        "assetId": "yourAssetId",
        "timestamp": 1587312000000,
        "yourPointId1": 1.1236,
        "localtime": "2020-04-20T00:00:00+08:00"
      },
      {
        "assetId": "yourAssetId",
        "timestamp": 1587312000000,
        "yourPointId2": 578,
        "localtime": "2020-04-20T00:00:00+08:00"
      }
    ]
  }
}

Sample 2

Request Sample

UTC time format:

url: https://{apigw-address}/tsdb-service/v2.1/raw?orgId=yourOrgId

method: POST

Content-Type: application/json

requestBody:
{
  "assetIds": "yourAssetId1,yourAssetId2",
  "pointIds": "yourPointId1,yourPointId2",
  "startTime": "2020-04-20T00:00:00+08:00",
  "endTime": "2020-04-21T00:00:00+08:00",
  "pageSize": 10,
  "withQuality": false,
  "localTimeAccuracy": true,
  "localTimeFormat": 1,
  "itemFormat": 0
}

Return Sample

{
  "code": 0,
  "msg": "OK",
  "submsg": null,
  "data": {
    "items": [
      {
        "assetId": "yourAssetID1",
        "timestamp": 1587312000000,
        "yourPointId1": 1.1236,
        "localtime": "2020-04-20T00:00:00+08:00"
      },
      {
        "assetId": "yourAssetId1",
        "timestamp": 1587312000000,
        "yourPointId2": 578,
        "localtime": "2020-04-20T00:00:00+08:00"
      }
    ]
  }
}

Sample 3

Request Sample

Request with quality indicator:

url: https://{apigw-address}/tsdb-service/v2.1/raw?orgId=yourOrgId

method: POST

Content-Type: application/json

requestBody:
{
  "assetIds": "yourAssetIds",
  "pointIds": "yourPointId1,yourPointId2",
  "startTime": "2020-04-20T00:00:00+08:00",
  "endTime": "2020-04-21T00:00:00+08:00",
  "pageSize": 10,
  "withQuality": true,
  "localTimeAccuracy": false,
  "localTimeFormat": 1,
  "itemFormat": 0
}

Return Sample

{
  "code": 0,
  "msg": "OK",
  "submsg": null,
  "data": {
    "items": [
      {
        "assetId": "yourAssetId",
        "timestamp": 1587312000000,
        "yourPointId1": 1.1236,
        "localtime": "2020-04-20T00:00:00+08:00",
        "quality": 0
      },
      {
        "assetId": "yourAssetId",
        "timestamp": 1587312000000,
        "yourPointId2": 578,
        "localtime": "2020-04-20T00:00:00+08:00",
        "quality": 0
      }
    ]
  }
}

Sample 4

Request Sample

Query compressed raw data and data records before the specified start time and after the specified end time.

url: https://{apigw-address}/tsdb-service/v2.1/raw?orgId=yourOrgId

method: POST

Content-Type: application/json

requestBody:
{
  "assetIds": "yourAssetIds",
  "pointIds": "yourPointIds",
  "startTime": "2020-08-28T11:33:00+08:00",
  "endTime": "2020-08-28T11:35:00+08:00",
  "boundaryType", "outside"
}

Return Sample

{
  "code": 0,
  "msg": "OK",
  "submsg": null,
  "data": {
    "items": [
      {
        "assetId": "yourAssetId",
        "timestamp": 1598585576906,
        "yourPointId": 0.8807087,
        "localtime": "2020-08-28 11:32:56"
      },
      {
        "assetId": "yourAssetId",
        "timestamp": 1598585587039,
        "yourPointId": 0.26798052,
        "localtime": "2020-08-28 11:33:07"
      },
      {
        "assetId": "yourAssetId",
        "timestamp": 1598585597125,
        "yourPointId": 0.65514636,
        "localtime": "2020-08-28 11:33:17"
      },
      {
        "assetId": "yourAssetId",
        "timestamp": 1598585708013,
        "yourPointId": 0.342161,
        "localtime": "2020-08-28 11:35:08"
      }
    ]
  }
}

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 GetAssetRawDataByTimeRange {
     private static final String API_Gateway_URL = "https://{apigw-address}";

     private static class Request extends PoseidonRequest {

          public void setBodyParams(String key, Object value) {
               bodyParams().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.
          Poseidon poseidon = Poseidon.config(
                  PConfig.init()
                          .appKey("AccessKey of your APP")
                          .appSecret("SecretKey of your APP")
          ).method("POST").header("Content-Type", "application/json");

          Request request = new Request();
          request.setBodyParams("assetIds", "yourAssetIds");
          request.setBodyParams("pointIds", "yourPointId1,yourPointId2");
          request.setBodyParams("startTime", "2020-04-20 00:00:00");
          request.setBodyParams("endTime", "2020-04-21 00:00:00");
          request.setBodyParams("pageSize", 10);
          request.setBodyParams("withQuality", true);
          request.setBodyParams("localTimeAccuracy", false);
          request.setBodyParams("localTimeFormat", 1);
          request.setBodyParams("itemFormat", 0);
          request.setBodyParams("boundaryType", "inside");
          request.setBodyParams("type", "ai");

          JSONObject response = poseidon
                  .url(API_Gateway_URL + "/tsdb-service/v2.1/raw")
                  .queryParam("orgId", "yourOrgId")
                  .getResponse(request, JSONObject.class);
          System.out.println(response);
     }
}