全部产品
云市场

设备数据对接指引

更新时间:2019-11-22 13:16:50

1、接口说明

设备通过物模型对接后,可以通过以下接口获取当前项目中的各类设备数据。

接口名称 接口描述
getAppThing 获取物的基本信息
getAppThingServiceData 获取物的服务记录
getAppThingStatus 获取物的连接状态
getAppThingTopo 获取物的拓扑关系
getAppThingProp 获取物的标签列表
getAppThingEventTimeline 获取物的事件timeline数据
invokeAppThingService 触发物的服务
getAppThingPropertyTimeline 获取物的属性timeline数据
batchGetAppThingStatus 批量获取物的状态
queryAppThingList 查询应用物的列表
getAppThingProperties 获取物的属性
setAppThingProperties 设置物的属性

2、接入指南

通过queryAppThingList接口作为接入范例,通过productKey可以获取到其下所有的设备列表、设备状态与设备类型等信息。

Path 版本 是否登录
/app/thing/list 1.0.0

入参:

参数名 数据类型 是否必须 参数描述
productKeyList String Y 请在物联网平台->设备管理中获取
pageSize Integer N 分页大小
pageNo Integer N 当前页索引
categoryKeyList String N 品类列表
tagList String N 标签列表

出参:

参数名 数据类型 参数描述
activeTime String 设备激活时间
productKey String 设备的Key
nodeType Integer 节点类型
deviceName String 设备名称
utcCreateTime Datetime 创建时间(UTC格式)
productName String 产品名称
utcActiveTime Datetime 设备激活时间(UTC格式)
utcLastOnlineTime Datetime 设备最后在线时间(UTC格式)
createTime Datetime 创建时间
lastOnlineTime Datetime 设备最后在线时间
status String 设备状态,OFFLINE:离线,ONLINE:在线

示例

入参示例**

  1. {
  2. "request": {
  3. "apiVer": "1.0.0"
  4. },
  5. "id": "bfd7388e-b6ec-4abd-8832-e6a4ea5b2cbd",
  6. "params": {
  7. "productKeyList": ["xxxx"],
  8. "pageSize": 20,
  9. "pageNo": 1,
  10. "categoryKeyList": [],
  11. "tagList": []
  12. },
  13. "version": "1.0"
  14. }

出参示例

  1. {
  2. "code": 200,
  3. "data": {
  4. "total": 1,
  5. "data": [{
  6. "activeTime": "2019-10-15 13:11:49",
  7. "productKey": "xxxxxx",
  8. "nodeType": 0,
  9. "deviceName": "ColdRiver01",
  10. "utcCreateTime": "2019-10-15T03:45:36.000Z",
  11. "productName": "xxxxx",
  12. "utcActiveTime": "2019-10-15T05:11:49.658Z",
  13. "utcLastOnlineTime": "2019-10-16T03:27:46.604Z",
  14. "createTime": "2019-10-15 11:45:36",
  15. "lastOnlineTime": "2019-10-16 11:27:46",
  16. "status": "OFFLINE"
  17. }],
  18. "pageNo": 1,
  19. "pageSize": 20
  20. },
  21. "id": "18b32d34-0808-4ebd-b61b-79572a484535"
  22. }

3、API调用方式

SDK依赖

本例通过java版本的sdk进行描述,更多语言SDK详情请查看API调用对接指引

  1. <dependency>
  2. <groupId>com.aliyun.api.gateway</groupId>
  3. <artifactId>sdk-core-java</artifactId>
  4. <version>1.1.0</version>
  5. </dependency>
  6. <dependency>
  7. <groupId>com.aliyun.iotx</groupId>
  8. <artifactId>iotx-api-gateway-client</artifactId>
  9. <version>1.0.3</version>
  10. </dependency>

3.2 示例代码

  1. public void propertiesTimeline() throws UnsupportedEncodingException{
  2. IoTApiClientBuilderParams ioTApiClientBuilderParams =
  3. new IoTApiClientBuilderParams();
  4. // 填写应用的appkey信息
  5. ioTApiClientBuilderParams.setAppKey("appKey");
  6. ioTApiClientBuilderParams.setAppSecret("appSecrect");
  7. SyncApiClient syncClient = new SyncApiClient(ioTApiClientBuilderParams);
  8. IoTApiRequest request = new IoTApiRequest();
  9. //设置api的版本
  10. request.setApiVer("1.0.0");
  11. // 接口参数
  12. request.putParam("productKey","xxxxxx");
  13. request.putParam("deviceName","xxxxxx");
  14. request.putParam("identifier","OilQuantity");
  15. request.putParam("pageSize",20);
  16. //start与end是查询的时间范围,时间戳格式,精确到毫秒
  17. request.putParam("start","1571022916629");
  18. request.putParam("end","1571162916629");
  19. request.putParam("ordered",false);
  20. request.setVersion("1.0");// 请求协议版本
  21. ApiResponse response = syncClient.postBody("api.link.aliyun.com",
  22. "/app/thing/property/timeline/get", request, true);
  23. System.out.println("response code = " + response.getCode()
  24. + " response = " + new String(response.getBody(), "UTF-8"));
  25. }