API列表

注意

在专业版1.5.0中已经集成了swagger支持,打开/doc.html即可查看全部接口信息.

设备数据API

查询设备列表

请求方式: POST

URL: http(s)://localhost:8844/api/v1/device/_query

http body 请求参数:

公共查询参数:请参考公共查询参数

根据设备实例(DeviceInstanceEntity)条件查询,字段名和值分别对应查询参数Term中的column和value。
设备实例(DeviceInstanceEntity)参数如下:

名称类型是否必选示例值描述
idStringtest001设备实例ID
nameString温控设备001设备实例名称
describeString说明
productIdString1236859833832701952型号ID
productNameString智能温控型号名称
configurationMap<String,Object>其他配置
deriveMetadataString派生元数据,有的设备的属性,功能,事件可能会动态的添加
stateDeviceStateonline状态
creatorIdString1199596756811550720创建人ID
creatorNameString管理员创建人名称
createTimeLong1584586676863创建时间
registryTimeLongonline激活时间
orgIdStringdepartment机构ID
parentIdString父级设备ID

返回参数:

名称类型描述
resultPagerResult<DeviceInfo>分页结果
statusint状态码
codeString业务编码

PagerResult参数如下:

名称类型描述
pageIndexint页码
pageSizeint每页数量
totalint返回数据总数
dataList<DeviceInfo>返回数据集合

DeviceInfo参数如下:

名称类型描述
idString设备ID
nameString设备名称
productIdString型号ID
productNameString型号名称
stateDeviceState设备状态
registerTimelong注册时间
createTimelong创建时间
parentIdString父级设备ID

请求示例:

  1. //请求
  2. POST /api/v1/device/_query
  3. Content-Type: application/json
  4. X-Sign: f4823a*********e76eb1d
  5. X-Timestamp: 1586511766004
  6. X-Client-Id: kF**********HRZ
  7. {
  8. "pageSize": 25,
  9. "pageIndex": 0,
  10. "terms": [{
  11. "column": "productId",
  12. "value": "1236859833832701952"
  13. }]
  14. }
  15. //响应
  16. HTTP/1.1 200 OK
  17. X-Timestamp: 1574994269075
  18. X-Sign: c23fa********f25
  19. {
  20. "result": {
  21. "pageIndex": 0,
  22. "pageSize": 1000,
  23. "total": 3,
  24. "data": [{
  25. "id": "test0312",
  26. "name": "设备0312",
  27. "productId": "1236859833832701952",
  28. "productName": "智能温控",
  29. "state": {
  30. "text": "未激活",
  31. "value": "notActive"
  32. },
  33. "registerTime": 0,
  34. "createTime": 1583997946670
  35. }, {
  36. "id": "test001",
  37. "name": "温控设备0309",
  38. "productId": "1236859833832701952",
  39. "productName": "智能温控",
  40. "state": {
  41. "text": "离线",
  42. "value": "offline"
  43. },
  44. "registerTime": 1583805253659,
  45. "createTime": 1585809343175
  46. }, {
  47. "id": "MQTT_FX_Client",
  48. "name": "mqttfx",
  49. "productId": "1236859833832701952",
  50. "productName": "智能温控",
  51. "state": {
  52. "text": "离线",
  53. "value": "offline"
  54. },
  55. "registerTime": 1584330967254,
  56. "createTime": 1584330960918
  57. }]
  58. },
  59. "status": 200,
  60. "code": "success"
  61. }

说明:

X-Sign为签名,body+X-Timestamp+SecuryeKeyMD5加密
X-Timestamp为时间戳
X-Client-Id为平台openApi客户端id

获取设备详情

请求方式: GET

URL: http(s)://localhost:8844/api/v1/device/{deviceId}/_detail

说明:{deviceId}需要替换为设备实例的id。

返回参数:

名称类型描述
resultDeviceDetail返回值
statusint状态码
codeString业务编码

DeviceDetail参数如下:

名称类型描述
idString设备ID
nameString设备名称
protocolString消息协议标识
transportString通信协议
orgIdString所属机构ID
orgNameString所属机构名称
productIdString型号ID
productNameString型号名称
deviceTypeDeviceType设备类型
stateDeviceState设备状态
addressString客户端地址
onlineTimelong上线时间
offlineTimelong离线时间
registerTimelong注册时间
createTimelong创建时间
metadataString设备元数据(在设备型号功能定义中定义)
configurationMap<String,Object>设备配置信息
tagsList<DeviceTagEntity>标签

标签(DeviceTagEntity)参数说明:

名称类型描述
deviceIdString设备ID
keyString
nameString标签名
valueString
typeString标签类型
createTimeDate创建时间
descriptionString描述

请求示例:

  1. //请求
  2. GET /api/v1/device/1236859833832701952/_detail
  3. X-Sign: f4823a*********e76eb1d
  4. X-Timestamp: 1586511766004
  5. X-Client-Id: kF**********HRZ
  6. //响应
  7. HTTP/1.1 200 OK
  8. X-Timestamp: 1574994269075
  9. X-Sign: c23fa********f25
  10. {
  11. "result": {
  12. "id": "test001",
  13. "name": "温控设备0309",
  14. "protocol": "demo-v1",
  15. "transport": "MQTT",
  16. "productId": "1236859833832701952",
  17. "productName": "智能温控",
  18. "deviceType": {
  19. "text": "网关设备",
  20. "value": "gateway"
  21. },
  22. "state": {
  23. "text": "离线",
  24. "value": "offline"
  25. },
  26. "address": "/127.0.0.1:46360",
  27. "onlineTime": 1586422112901,
  28. "offlineTime": 1586424932209,
  29. "createTime": 1585809343175,
  30. "registerTime": 1583805253659,
  31. "metadata": "{\"events\":[{\"id\":\"fire_alarm\",\"name\":\"火警报警\",\"expands\":{\"eventType\":\"reportData\",\"level\":\"urgent\"},\"valueType\":{\"type\":\"object\",\"properties\":[{\"id\":\"a_name\",\"name\":\"区域名称\",\"valueType\":{\"type\":\"string\"}},{\"id\":\"b_name\",\"name\":\"建筑名称\",\"valueType\":{\"type\":\"string\"}},{\"id\":\"l_name\",\"name\":\"位置名称\",\"valueType\":{\"type\":\"string\"}}]}}],\"properties\":[{\"id\":\"temperature\",\"name\":\"温度\",\"valueType\":{\"type\":\"float\",\"min\":\"0\",\"max\":\"100\",\"step\":\"0.1\",\"unit\":\"celsiusDegrees\"},\"expands\":{\"readOnly\":\"true\"}}],\"functions\":[{\"id\":\"get-log\",\"name\":\"获取日志\",\"isAsync\":true,\"output\":{\"type\":\"string\",\"expands\":{\"maxLength\":\"2048\"}},\"inputs\":[{\"id\":\"start_date\",\"name\":\"开始日期\",\"valueType\":{\"type\":\"date\",\"dateFormat\":\"yyyy-MM-dd HH:mm:ss\"}},{\"id\":\"end_data\",\"name\":\"结束日期\",\"valueType\":{\"type\":\"date\",\"dateFormat\":\"yyyy-MM-dd HH:mm:ss\"}},{\"id\":\"time\",\"name\":\"分组\",\"valueType\":{\"type\":\"string\"}}]}]}",//在设备型号功能定义中定义
  32. "configuration": {
  33. "username": "test",
  34. "password": "test"
  35. },
  36. "tags": []
  37. },
  38. "status": 200,
  39. "code": "success"
  40. }

查询设备详情列表

请求方式: POST

URL: http(s)://localhost:8844/api/v1/device/_detail/_query

http body 请求参数:

公共查询参数:请参考公共查询参数

请求示例:

  1. //请求
  2. POST /api/v1/device/_detail/_query
  3. Content-Type: application/json
  4. X-Sign: f4823a*********e76eb1d
  5. X-Timestamp: 1586511766004
  6. X-Client-Id: kF**********HRZ
  7. {
  8. "pageSize": 25,
  9. "pageIndex": 0,
  10. "terms": [{
  11. "column": "productId",
  12. "value": "1236859833832701952"
  13. }]
  14. }
  15. //响应
  16. HTTP/1.1 200 OK
  17. X-Timestamp: 1574994269075
  18. X-Sign: c23fa********f25
  19. {
  20. "result": {
  21. "pageIndex": 0,
  22. "pageSize": 1000,
  23. "total": 3,
  24. "data": [
  25. {
  26. "id": "test001",
  27. "name": "温控设备0309",
  28. "protocol": "demo-v1",
  29. "transport": "MQTT",
  30. "productId": "1236859833832701952",
  31. "productName": "智能温控",
  32. "deviceType": {
  33. "text": "网关设备",
  34. "value": "gateway"
  35. },
  36. "state": {
  37. "text": "离线",
  38. "value": "offline"
  39. },
  40. "address": "/127.0.0.1:46360",
  41. "onlineTime": 1586422112901,
  42. "offlineTime": 1586424932209,
  43. "createTime": 1585809343175,
  44. "registerTime": 1583805253659,
  45. "metadata": "{\"events\":[{\"id\":\"fire_alarm\",\"name\":\"火警报警\",\"expands\":{\"eventType\":\"reportData\",\"level\":\"urgent\"},\"valueType\":{\"type\":\"object\",\"properties\":[{\"id\":\"a_name\",\"name\":\"区域名称\",\"valueType\":{\"type\":\"string\"}},{\"id\":\"b_name\",\"name\":\"建筑名称\",\"valueType\":{\"type\":\"string\"}},{\"id\":\"l_name\",\"name\":\"位置名称\",\"valueType\":{\"type\":\"string\"}}]}}],\"properties\":[{\"id\":\"temperature\",\"name\":\"温度\",\"valueType\":{\"type\":\"float\",\"min\":\"0\",\"max\":\"100\",\"step\":\"0.1\",\"unit\":\"celsiusDegrees\"},\"expands\":{\"readOnly\":\"true\"}}],\"functions\":[{\"id\":\"get-log\",\"name\":\"获取日志\",\"isAsync\":true,\"output\":{\"type\":\"string\",\"expands\":{\"maxLength\":\"2048\"}},\"inputs\":[{\"id\":\"start_date\",\"name\":\"开始日期\",\"valueType\":{\"type\":\"date\",\"dateFormat\":\"yyyy-MM-dd HH:mm:ss\"}},{\"id\":\"end_data\",\"name\":\"结束日期\",\"valueType\":{\"type\":\"date\",\"dateFormat\":\"yyyy-MM-dd HH:mm:ss\"}},{\"id\":\"time\",\"name\":\"分组\",\"valueType\":{\"type\":\"string\"}}]}]}",//在设备型号功能定义中定义
  46. "configuration": {
  47. "username": "test",
  48. "password": "test"
  49. },
  50. "tags": []
  51. }
  52. ]
  53. },
  54. "status": 200,
  55. "code": "success"
  56. }

批量保存设备

请求方式: POST

URL: http(s)://localhost:8844/api/v1/device

http body 请求参数为DeviceSaveDetail集合:

DeviceSaveDetail 参数如下:

名称类型是否必选示例值描述
idStringtest002设备实例ID
nameString温控设备002设备实例名称
productIdString1236859833832701952型号ID
productNameString智能温控型号名称
configurationMap<String,Object>设备配置信息,根据不同的协议配置不同,如果MQTT用户名密码等
creatorIdString1199596756811550720创建人ID
creatorNameString管理员创建人名称
tagsList<DeviceTagEntity>标签

标签(DeviceTagEntity)参数说明:

名称类型描述
deviceIdString设备ID
keyString
nameString标签名
valueString
typeString标签类型
createTimeDate创建时间
descriptionString描述

返回参数:

名称类型描述
resultint保存数量
statusint状态码
codeString业务编码

示例:

  1. // 请求
  2. POST /api/v1/device
  3. X-Sign: f4823a*********e76eb1d
  4. X-Timestamp: 1586511766004
  5. X-Client-Id: kF**********HRZ
  6. Content-Type: application/json
  7. [
  8. {
  9. "id": "test002",
  10. "name": "设备002",
  11. "productId": "1236859833832701952",
  12. "configuration": {
  13. "username": "test002",
  14. "password": "test002"
  15. },
  16. "tags": [{
  17. "deviceId": "test002",
  18. "key": "area",
  19. "name": "地区",
  20. "value": "chongqing"
  21. }]
  22. },
  23. {
  24. "id": "test003",
  25. "name": "设备名称",
  26. "productId": "1236859833832701952",
  27. "configuration": {}
  28. }
  29. ]
  30. // 响应
  31. HTTP/1.1 200 OK
  32. X-Timestamp: 1574994269075
  33. X-Sign: c23fa********f25
  34. {"result":3,"status":200,"code":"success"}

批量同步设备状态

请求方式: POST

URL: http://localhost:8844/api/v1/device/state/_sync

请求参数格式为动态查询参数

提示

此操作将同步设备真实状态,如果一次同步数量较大,推荐使用websocket方式同步,可实时获取同步结果.

请求示例:

  1. //请求
  2. POST /api/v1/device/state/_sync
  3. Content-Type: application/json
  4. X-Sign: f4823a*********e76eb1d
  5. X-Timestamp: 1586511766004
  6. X-Client-Id: kF**********HRZ
  7. {
  8. "pageSize":10
  9. }
  10. //响应
  11. HTTP/1.1 200 OK
  12. X-Timestamp: 1574994269075
  13. X-Sign: c23fa********f25
  14. {
  15. "status":200,
  16. "result":[
  17. {
  18. "deviceId":"设备ID",
  19. "state":{"value":"offline","text":"离线"}
  20. }
  21. ]
  22. }

批量激活设备

请求方式: POST

URL: http(s)://localhost:8844/api/v1/device/_deploy

http body 请求参数为设备id集合,List

返回参数:

名称类型描述
resultint激活数量
statusint状态码
codeString业务编码

请求示例:

  1. //请求
  2. POST /api/v1/device/_deploy
  3. Content-Type: application/json
  4. X-Sign: f4823a*********e76eb1d
  5. X-Timestamp: 1586511766004
  6. X-Client-Id: kF**********HRZ
  7. ["test002","test003", "test004"]
  8. //响应
  9. HTTP/1.1 200 OK
  10. X-Timestamp: 1574994269075
  11. X-Sign: c23fa********f25
  12. {"result":3,"status":200,"code":"success"}

批量注销设备

请求方式: POST

URL: http(s)://localhost:8844/api/v1/device/_unDeploy

http body 请求参数为设备id集合,List

返回参数:

名称类型描述
resultint注销成功数量
statusint状态码
codeString业务编码

请求示例:

  1. //请求
  2. POST /api/v1/device/_unDeploy
  3. Content-Type: application/json
  4. X-Sign: f4823a*********e76eb1d
  5. X-Timestamp: 1586511766004
  6. X-Client-Id: kF**********HRZ
  7. ["test002","test003", "test004"]
  8. //响应
  9. HTTP/1.1 200 OK
  10. X-Timestamp: 1574994269075
  11. X-Sign: c23fa********f25
  12. {"result":3,"status":200,"code":"success"}

批量删除设备

请求方式: POST

URL: http(s)://localhost:8844/api/v1/device/_delete

http body 请求参数为设备id集合,List

返回参数:

名称类型描述
resultint注销成功数量
statusint状态码
codeString业务编码

请求示例:

  1. //请求
  2. POST /api/v1/device/_delete
  3. Content-Type: application/json
  4. X-Sign: f4823a*********e76eb1d
  5. X-Timestamp: 1586511766004
  6. X-Client-Id: kF**********HRZ
  7. ["test002","test003", "test004"]
  8. //响应
  9. HTTP/1.1 200 OK
  10. X-Timestamp: 1574994269075
  11. X-Sign: c23fa********f25
  12. {"result":3,"status":200,"code":"success"}

根据设备ID查询设备日志

请求方式: POST

URL: http(s)://localhost:8844/api/v1/device/{deviceId}/log/_query

说明:{deviceId}需要替换为设备实例的id。

http body 请求参数:

公共查询参数:请参考公共查询参数

根据设备操作日志(DeviceOperationLogEntity)条件查询,字段名和值分别对应查询参数Term中的column和value。
设备操作日志(DeviceOperationLogEntity)参数如下:

名称类型是否必选示例值描述
idStringLoymU3EBCTcV5s5DbSn7设备实例ID
productIdString1236859833832701952型号ID
typeDeviceLogTypereadProperty类型
createTimeLong1584586676863创建时间
orgIdStringdepartment机构ID

返回参数:

名称类型描述
resultPagerResult<DeviceInfo>分页结果
statusint状态码
codeString业务编码

PagerResult参数如下:

名称类型描述
pageIndexint页码
pageSizeint每页数量
totalint返回数据总数
dataList<DeviceInfo>返回数据集合

DeviceInfo参数如下:

名称类型描述
idString设备ID
nameString设备名称
productIdString型号ID
productNameString型号名称
stateDeviceLogType设备状态
registerTimelong注册时间
createTimelong创建时间
parentIdString父级设备ID

请求示例:

  1. //请求
  2. POST /api/v1/device/test001/log/_query
  3. Content-Type: application/json
  4. X-Sign: f4823a*********e76eb1d
  5. X-Timestamp: 1586511766004
  6. X-Client-Id: kF**********HRZ
  7. {
  8. "pageSize": 25,
  9. "pageIndex": 0,
  10. "terms": [{
  11. "column": "createTime$btw",
  12. "value": "2020-01-01,2020-06-01"
  13. }]
  14. }
  15. //响应
  16. HTTP/1.1 200 OK
  17. X-Timestamp: 1574994269075
  18. X-Sign: c23fa********f25
  19. {
  20. "result": {
  21. "pageIndex": 0,
  22. "pageSize": 25,
  23. "total": 4,
  24. "data": [{
  25. "id": "fa1528090a464e3f0bf3839ce0c1315",
  26. "deviceId": "test001",
  27. "productId": "1236859833832701952",
  28. "type": {
  29. "text": "上线",
  30. "value": "online"
  31. },
  32. "createTime": 1586422112000,
  33. "content": "设备上线"
  34. }, {
  35. "id": "eb7d05c8dda18bc37434bf7f98799ba7",
  36. "deviceId": "test001",
  37. "productId": "1236859833832701952",
  38. "type": {
  39. "text": "离线",
  40. "value": "offline"
  41. },
  42. "createTime": 1586419084000,
  43. "content": "设备离线"
  44. }, {
  45. "id": "34a89eb7b89646bd98fc5ab6617b370e",
  46. "deviceId": "test001",
  47. "productId": "1236859833832701952",
  48. "type": {
  49. "text": "上线",
  50. "value": "online"
  51. },
  52. "createTime": 1586413536000,
  53. "content": "设备上线"
  54. }, {
  55. "id": "2f1aaa63865afb3cdcec4aa72771ab9",
  56. "deviceId": "test001",
  57. "productId": "1236859833832701952",
  58. "type": {
  59. "text": "读取属性回复",
  60. "value": "readPropertyReply"
  61. },
  62. "createTime": 1583809148000,
  63. "content": "{\"temperature\":\"50\"}"
  64. }]
  65. },
  66. "status": 200,
  67. "code": "success"
  68. }

查询设备属性

请求方式: POST

URL: http(s)://localhost:8844/api/v1/device/{deviceId}/properties/_query

说明:{deviceId}需要替换为设备实例的id。

http body 请求参数:

公共查询参数:请参考公共查询参数

根据设备属性(DevicePropertiesEntity)条件查询,字段名和值分别对应查询参数Term中的column和value。
设备属性(DevicePropertiesEntity)参数如下:

名称类型是否必选示例值描述
idString属性ID
productIdString1236859833832701952型号ID
propertyStringtemperature属性标识
propertyNameString温度属性名称
stringValueString字符串值
formatValueString格式化值
numberValueString数字值
geoValueGeoPoint坐标值
timestamplong时间戳
objectValueString结构体值
valueString
timeValueDate时间值
orgIdString机构ID

GeoPoint参数如下:

名称类型是否必选示例值描述
latdouble106.57经度
londouble29.52纬度

返回参数:

名称类型描述
resultPagerResult<DevicePropertiesEntity>分页结果
statusint状态码
codeString业务编码

PagerResult参数如下:

名称类型描述
pageIndexint页码
pageSizeint每页数量
totalint返回数据总数
dataList<DevicePropertiesEntity>返回数据集合

DeviceInfo参数如下:

名称类型描述
idString属性ID
productIdString型号ID
propertyString属性标识
propertyNameString属性名称
stringValueString字符串值
formatValueString格式化值
numberValueString数字值
geoValueGeoPoint坐标值
timestamplong否 时间戳
objectValueString结构体值
valueString
timeValueDate时间值
orgIdString机构ID

请求示例:

  1. //请求
  2. POST /api/v1/device/test001/properties/_query
  3. Content-Type: application/json
  4. X-Sign: f4823a*********e76eb1d
  5. X-Timestamp: 1586511766004
  6. X-Client-Id: kF**********HRZ
  7. {
  8. "pageSize": 25,
  9. "pageIndex": 0,
  10. "terms": [{
  11. "column": "property",
  12. "value": "temperature"
  13. }]
  14. }
  15. //响应
  16. HTTP/1.1 200 OK
  17. X-Timestamp: 1574994269075
  18. X-Sign: c23fa********f25
  19. {
  20. "result": {
  21. "pageIndex": 0,
  22. "pageSize": 25,
  23. "total": 3,
  24. "data": [{
  25. "id": "amugXXEBQZKUd4flBbDN",
  26. "deviceId": "test001",
  27. "property": "temperature",
  28. "propertyName": "温度",
  29. "formatValue": "50.00℃",
  30. "numberValue": 50.0,
  31. "timestamp": 1583809148000,
  32. "value": "50",
  33. "productId": "1236859833832701952"
  34. }]
  35. },
  36. "status": 200,
  37. "code": "success"
  38. }

获取设备最新的全部属性

请求方式: GET

URL: http(s)://localhost:8844/api/v1/device/{deviceId}/properties/_latest

说明:{deviceId}需要替换为设备实例的id。

返回参数:

名称类型描述
resultDevicePropertiesEntity返回值
statusint状态码
codeString业务编码

DevicePropertiesEntity参数如下:

名称类型描述
idString
productIdString
propertyString
propertyNameString
stringValueString
formatValueString
numberValueString
geoValueGeoPoint
timestamplong
objectValueString
valueString
timeValueDate
orgIdString
deviceIdString
typeString

请求示例:

  1. //请求
  2. POST /api/v1/device/test001/properties/_latest
  3. Content-Type: application/json
  4. X-Sign: f4823a*********e76eb1d
  5. X-Timestamp: 1586511766004
  6. X-Client-Id: kF**********HRZ
  7. //响应
  8. HTTP/1.1 200 OK
  9. X-Timestamp: 1574994269075
  10. X-Sign: c23fa********f25
  11. {
  12. "result": [{
  13. "id": "amugXXEBQZKUd4flBbDN",
  14. "deviceId": "test001",
  15. "property": "temperature",
  16. "propertyName": "温度",
  17. "formatValue": "50.00℃",
  18. "numberValue": 50.0,
  19. "timestamp": 1583809148000,
  20. "value": "50",
  21. "productId": "1236859833832701952"
  22. }],
  23. "status": 200,
  24. "code": "success"
  25. }

聚合查询设备属性

请求方式: GET

URL: http(s)://localhost:8844/api/v1/device/{deviceId}/agg/{agg}/{property}/_query

说明:{deviceId}需要替换为设备实例的id,
{agg}需要替换为聚合类型,包含:MIN, MAX, AVG, SUM, COUNT, NONE
{property}需要替换为设备属性。

返回参数:

名称类型描述
resultList<Map<String, Object>>返回值
statusint状态码
codeString业务编码

请求示例:
查询过去30分钟设备test001的温度属性每分钟的平均温度。

  1. //请求
  2. POST /api/v1/device/test001/agg/AVG/temperature/_query
  3. Content-Type: application/json
  4. X-Sign: f4823a*********e76eb1d
  5. X-Timestamp: 1598579554299
  6. X-Client-Id: kF**********HRZ
  7. {
  8. "interval": "1h",//时间间隔,单位为英文时间单位首字母,如小时h、天d等
  9. "format": "yyyy-MM-dd HH:mm:ss",//时间格式
  10. "from": "now-24h",//起始时间
  11. "to": "now",//终止时间
  12. "query": {
  13. "pageSize": 25//指定返回数据条数,默认25
  14. }
  15. }
  16. //响应
  17. HTTP/1.1 200 OK
  18. X-Timestamp: 1574994269075
  19. X-Sign: c23fa********f25
  20. {
  21. "result": [{
  22. "temperature": 32.8235294117647,
  23. "time": "2020-08-28 09:52:00"
  24. }, {
  25. "temperature": 32.13333333333333,
  26. "time": "2020-08-28 09:51:00"
  27. }, {
  28. "temperature": 34.11666666666667,
  29. "time": "2020-08-28 09:50:00"
  30. }, {
  31. "temperature": 33.9,
  32. "time": "2020-08-28 09:49:00"
  33. }, {
  34. "temperature": 33.85,
  35. "time": "2020-08-28 09:48:00"
  36. }, {
  37. "temperature": 34.45,
  38. "time": "2020-08-28 09:47:00"
  39. }, {
  40. "temperature": 32.75,
  41. "time": "2020-08-28 09:46:00"
  42. }, {
  43. "temperature": 35.6,
  44. "time": "2020-08-28 09:45:00"
  45. }, {
  46. "temperature": 35.06666666666667,
  47. "time": "2020-08-28 09:44:00"
  48. }, {
  49. "temperature": 34.15,
  50. "time": "2020-08-28 09:43:00"
  51. }, {
  52. "temperature": 37.629629629629626,
  53. "time": "2020-08-28 09:42:00"
  54. }, {
  55. "temperature": 33.8,
  56. "time": "2020-08-28 09:41:00"
  57. }, {
  58. "temperature": 33.42857142857143,
  59. "time": "2020-08-28 09:40:00"
  60. }, {
  61. "temperature": 0.0,
  62. "time": "2020-08-28 09:39:00"
  63. }, {
  64. "temperature": 0.0,
  65. "time": "2020-08-28 09:38:00"
  66. }, {
  67. "temperature": 0.0,
  68. "time": "2020-08-28 09:37:00"
  69. }, {
  70. "temperature": 0.0,
  71. "time": "2020-08-28 09:36:00"
  72. }, {
  73. "temperature": 0.0,
  74. "time": "2020-08-28 09:35:00"
  75. }, {
  76. "temperature": 0.0,
  77. "time": "2020-08-28 09:34:00"
  78. }, {
  79. "temperature": 0.0,
  80. "time": "2020-08-28 09:33:00"
  81. }, {
  82. "temperature": 0.0,
  83. "time": "2020-08-28 09:32:00"
  84. }, {
  85. "temperature": 0.0,
  86. "time": "2020-08-28 09:31:00"
  87. }, {
  88. "temperature": 0.0,
  89. "time": "2020-08-28 09:30:00"
  90. }, {
  91. "temperature": 0.0,
  92. "time": "2020-08-28 09:29:00"
  93. }, {
  94. "temperature": 0.0,
  95. "time": "2020-08-28 09:28:00"
  96. }],
  97. "code": "success",
  98. "status": 200
  99. }

查询设备事件

请求方式: POST

URL: http(s)://localhost:8844/api/v1/device/{deviceId}/event/{eventId}/_query

说明:{deviceId}需要替换为设备实例的id,{eventId}需替换为设备型号中事件标识。

http body 请求参数:

公共查询参数:请参考公共查询参数

注意

此处的参数中Term为设备型号功能定义中的事件内容

返回参数:

名称类型描述
resultPagerResult<Map<String,Object>>分页结果
statusint状态码
codeString业务编码

PagerResult>参数如下:

名称类型描述
pageIndexint页码
pageSizeint每页数量
totalint返回数据总数
dataList<Map<String,Object>>返回数据集合

请求示例:

  1. //请求
  2. POST /api/v1/device/test001/event/fire_alarm/_query
  3. Content-Type: application/json
  4. X-Sign: f4823a*********e76eb1d
  5. X-Timestamp: 1586511766004
  6. X-Client-Id: kF**********HRZ
  7. {
  8. "pageSize": 25,
  9. "pageIndex": 0,
  10. "terms": [{
  11. "column": "a_name",//型号事件定义中的结构体的属性
  12. "value": "南岸区"
  13. }]
  14. }
  15. //响应
  16. HTTP/1.1 200 OK
  17. X-Timestamp: 1574994269075
  18. X-Sign: c23fa********f25
  19. {
  20. "result": {
  21. "pageIndex": 0,
  22. "pageSize": 25,
  23. "total": 1,
  24. "data": [{
  25. "b_name": "C2 栋",
  26. "productId": "1236859833832701952",
  27. "pname": "智能温控",
  28. "event_count": 1,
  29. "l_name": "12-05-201",
  30. "alarm_describe": "火灾报警",
  31. "deviceId": "test001",
  32. "event_id": 1,
  33. "alarm_type": 1,
  34. "createTime": 1586701932647,
  35. "id": "Pn_ObnEBbNs2V4rRJb4F",
  36. "aid": 105,
  37. "a_name": "南岸区",
  38. "timestamp": 1586701932647
  39. }]
  40. },
  41. "status": 200,
  42. "code": "success"
  43. }

设备操作API

获取设备属性

此操作将发送指令ReadPropertyMessage到设备.并获取设备返回数据ReadPropertyMessageReply.

请求方式: GET

URL: `http(s)😕/localhost:8844/api/v1/device/{deviceId}/property/{propertyId}

说明:{deviceId}需要替换为设备实例的id,{propertyId}需要替换成属性标识。

返回参数:

名称类型描述
resultMap<String, Object>返回值
statusint状态码
codeString业务编码

请求示例:

  1. //请求
  2. GET /api/v1/device/test001/property/temperature
  3. Content-Type: application/json
  4. X-Sign: f4823a*********e76eb1d
  5. X-Timestamp: 1586511766004
  6. X-Client-Id: kF**********HRZ
  7. //响应
  8. HTTP/1.1 200 OK
  9. X-Timestamp: 1574994269075
  10. X-Sign: c23fa********f25
  11. {
  12. "result": {
  13. "temperature": "50"
  14. },
  15. "status": 200,
  16. "code": "success"
  17. }

设置设备属性

此操作将发送指令WritePropertyMessage到设备.并获取设备返回数据WritePropertyMessageReply.

请求方式: POST

URL: http(s)://localhost:8844/api/v1/device/{deviceId}/properties

说明:{deviceId}需要替换为设备实例的id。

http body 请求参数: 此处的参数为设备型号功能定义中的属性,如:

  1. {"temperature": 50.0}//temperature为属性标识

返回参数:

名称类型描述
resultMap<String, Object>返回数据
statusint状态码
codeString业务编码

请求示例:

  1. //请求
  2. POST /api/v1/device/test001/property/temperature
  3. Content-Type: application/json
  4. X-Sign: f4823a*********e76eb1d
  5. X-Timestamp: 1586511766004
  6. X-Client-Id: kF**********HRZ
  7. {"temperature": 50.0}
  8. //响应
  9. HTTP/1.1 200 OK
  10. X-Timestamp: 1574994269075
  11. X-Sign: c23fa********f25
  12. {
  13. "result": {
  14. "temperature": "50"
  15. },
  16. "status": 200,
  17. "code": "success"
  18. }

设备功能调用

此操作将发送指令FunctionInvokeMessage到设备,并等待返回FunctionInvokeMessageReply.

请求方式: POST

URL: http(s)://localhost:8844/api/v1/device/{deviceId}/function/{functionId}

说明:{deviceId}需要替换为设备实例的id,{functionId}需要替换为设备型号中功能定义的功能标识。

请求示例:

  1. //请求
  2. POST /api/v1/device/test001/function/play_voice
  3. Content-Type: application/json
  4. X-Sign: f4823a*********e76eb1d
  5. X-Timestamp: 1586511766004
  6. X-Client-Id: kF**********HRZ
  7. {
  8. "text": "你好" //与物模型中定义到参数一致
  9. }
  10. //响应
  11. HTTP/1.1 200 OK
  12. X-Timestamp: 1574994269075
  13. X-Sign: c23fa********f25
  14. {
  15. "result": ['ok'], //注意是集合.因为可能返回多条结果
  16. "status": 200,
  17. "code": "success"
  18. }

地理信息管理

根据geojson保存数据

请求方式: POST

URL: http(s)://localhost:8844/api/v1/geo/object/geo.json

http body 请求参数:

GeoJson(参考GeoJSONAPI列表 - 图1) 参数如下:

名称类型是否必选示例值描述
typeStringFeatureCollection类型,固定为FeatureCollection
featuresList<GeoJsonFeature>geo集合

GeoJsonFeature 参数如下:

名称类型是否必选示例值描述
typeStringFeature类型,固定为Feature
propertiesMap<String,Object>拓展属性
geometryGeoShape图形

properties 参数如下:

名称类型是否必选示例值描述
objectIdStringchongqing
idStringchongqing
objectTypeStringcity

GeoShape 参数如下:

名称类型是否必选示例值描述
typeTypePolygon类型
coordinatesList<Object>坐标集合

返回参数:

名称类型描述
statusint状态码
codeString业务编码

请求示例:

  1. //请求
  2. POST /api/v1/geo/object/geo.json
  3. Content-Type: application/json
  4. X-Sign: f4823a*********e76eb1d
  5. X-Timestamp: 1586511766004
  6. X-Client-Id: kF**********HRZ
  7. {
  8. "type": "FeatureCollection",
  9. "features": [{
  10. "type": "Feature",
  11. "properties": {//拓展属性
  12. //必须的配置
  13. "id": "500242",
  14. "objectId": "youyang",
  15. "objectType": "city",
  16. //其他配置,将设置到 GeoObject.tags中,在查询时可通过filter进行搜索
  17. "name": "酉阳土家族苗族自治县",
  18. "group": "china"
  19. },
  20. "geometry": {
  21. "type": "Polygon",
  22. "coordinates": [//坐标列表
  23. [
  24. [108.3142, 28.9984],
  25. [108.3252, 29.0039],
  26. [108.3252, 28.96],
  27. [108.3142, 28.9984]
  28. ]
  29. ]
  30. }
  31. }]
  32. }
  33. //响应
  34. HTTP/1.1 200 OK
  35. X-Timestamp: 1574994269075
  36. X-Sign: c23fa********f25
  37. {"status":200,"code":"success"}

注意:

可使用 http://geojson.io/#map=4/32.18/105.38API列表 - 图2 生成json. 或者获取行政区划geojsonAPI列表 - 图3/

查询geo对象

请求方式: POST

URL: http(s)://localhost:8844/api/v1/geo/object/_search

http body 请求参数:

名称类型是否必选示例值描述
shapeObject图形,如重庆市行政区域边界(扩展属性objectId为该边界的标识)
filterQueryParamEntity可根据GeoObject.tags中的属性进行查询

返回参数:

名称类型描述
resultGeoObject返回数据
statusint状态码
codeString业务编码

GeoObject 参数如下:

名称类型描述
idString唯一标识
objectTypeString类型
shapeTypeString图形类型
objectIdString图形唯一标识
propertyString属性标识
pointGeoPoint坐标
shapeGeoShape图形
tagsString拓展信息
timestamplong时间戳: 数据更新的时间

GeoPoint 参数如下:

名称类型描述
londouble经度
latdouble纬度

GeoShape 参数如下:

名称类型是否必选示例值描述
typeTypePolygon类型
coordinatesList<Object>坐标集合度

请求示例:
RequestUrl: http://localhost:8844/api/v1/geo/object/\_search

RequestMethod: POST

RequestHeader:
X-Sign: 7d825f4************5724949
X-Timestamp: 1587460645733
X-Client-Id: kF**********HRZ
Content-Type: application/json

说明:

X-Sign为签名,body+X-Timestamp+SecuryeKeyMD5加密
X-Timestamp为时间戳
X-Client-Id为平台openApi客户端id

RequestBody:

  1. 使用shape中的objectId查询:

    1. {
    2. "shape":{
    3. "objectId":"youyang" //查询objectId为youyang的所有geo信息
    4. },
    5. "filter":{
    6. }
    7. }

    注意:

    objectId为平台对geojson进行拓展的属性,为geo对象的唯一标识,如:设备id,区域id等。
    当物模型里面配置了地理位置,objectId则为该设备id,可通过objectId查询该设备的地理位置信息。

  2. 使用shape的多边形的坐标集进行查询

    1. {
    2. "shape": {
    3. "type": "Polygon",//请参考Type
    4. "coordinates": [
    5. [
    6. [108.3142, 28.9984],
    7. [108.3252, 29.0039],
    8. [108.3252, 28.96],
    9. [108.3142, 28.9984]
    10. ]
    11. ]
    12. },
    13. "filter": {
    14. }
    15. }

    注意:

    shape中的type请参考Type

  3. filter的使用

    1. {
    2. "shape": {
    3. "objectId": "youyang"
    4. },
    5. "filter": {
    6. "where": "tags.name=酉阳土家族苗族自治县 and tags.group=china"
    7. }
    8. }

    注意:

    filter查询的条件来自于根据geojson保存数据接口提交的数据中properties中设置到GeoObject.tags的属性,如:name、group;
    filter可以单独进行查询,不需要传入shape

HttpResponse:

  1. {
  2. "result": [{
  3. "id": "youyang",
  4. "objectType": "city",
  5. "shapeType": "Polygon",
  6. "objectId": "youyang",
  7. "shape": {
  8. "type": "Polygon",
  9. "coordinates": [
  10. [
  11. [108.3142, 28.9984],
  12. [108.3252, 29.0039],
  13. [108.3252, 28.96],
  14. [108.3142, 28.9984]
  15. ]
  16. ]
  17. },
  18. "tags": {
  19. "name": "酉阳土家族苗族自治县",
  20. "group": "china"
  21. },
  22. "timestamp": 0
  23. }],
  24. "status": 200,
  25. "code": "success"
  26. }

查询geo对象并转为geoJson

请求方式: POST

URL: http(s)://localhost:8844/api/v1/geo/object/_search/geo.json

http body 请求参数:

名称类型是否必选示例值描述
shapeObject图形,如重庆市行政区域边界(扩展属性objectId为该边界的标识)
filterQueryParamEntity可根据GeoObject.tags中的属性进行查询

返回参数:

名称类型描述
resultGeoJson返回数据,请参考GeoJson标准
statusint状态码
codeString业务编码

请求示例:
RequestUrl: http://localhost:8844/api/v1/geo/object/\_search

RequestMethod: POST

RequestHeader:
X-Sign: f9f297a****************acf288a
X-Timestamp: 1587542185752
X-Client-Id: kF**********HRZ
Content-Type: application/json

说明:

X-Sign为签名,body+X-Timestamp+SecuryeKeyMD5加密
X-Timestamp为时间戳
X-Client-Id为平台openApi客户端id

RequestBody:
查询参数请参考查询geo对象接口

  1. {
  2. "shape":{
  3. "objectId":"youyang" //查询objectId为youyang geo对象内的所有geo信息
  4. },
  5. "filter":{
  6. }
  7. }

HttpResponse:

  1. {
  2. "result": {
  3. "type": "FeatureCollection",
  4. "features": [{
  5. "type": "Feature",
  6. "properties": {
  7. "name": "酉阳土家族苗族自治县",
  8. "id": "youyang",
  9. "objectId": "youyang",
  10. "group": "china",
  11. "objectType": "city"
  12. },
  13. "geometry": {
  14. "type": "Polygon",
  15. "coordinates": [
  16. [
  17. [108.3142, 28.9984],
  18. [108.3252, 29.0039],
  19. [108.3252, 28.96],
  20. [108.3142, 28.9984]
  21. ]
  22. ]
  23. }
  24. }]
  25. },
  26. "status": 200,
  27. "code": "success"
  28. }