ThingsIoT 平台 API 接口文档
1、登录接口
- URL
http://things-api.iotddc.com/edge-user/user/apiLogin - 请求方式
post - 请求参数
| 参数名 | 参数类型 | 是否必填 | 提交方式 | 默认值 | 说明 |
|---|---|---|---|---|---|
| username | String | Y | query | 无 | test |
| password | String | Y | query | 无 | 123456 |
- 返回参数
| 参数名 | 参数类型 | 参数名 | 说明 |
|---|---|---|---|
| code | Int | 错误码 | |
| message | String | 错误消息 | |
| data | JSONObject | token | 令牌 |
| roleId | 账户类型(1-主账号,2子账号) | ||
| projectId | 项目id roleId为2,返回所属项目id roleId为1,则通过项目列表选取 |
- 主账号登录示例

- 子账号登录示例

2、获取项目列表
- URL
http://things-api.iotddc.com/edge-user/project/list - 请求方式
post - 请求参数
| 参数名 | 参数类型 | 是否必填 | 提交方式 | 默认值 | 说明 |
|---|---|---|---|---|---|
| token | String | Y | header | 无 | 令牌 |
| page | Int | Y | query | 1 | 当前页 |
| size | Int | Y | query | 10 | 每页数量 |
- 返回参数
| 参数名 | 参数类型 | 参数名 | 说明 |
|---|---|---|---|
| code | Int | 错误码 | |
| message | String | 错误消息 | |
| data | JSONObject | list | 项目列表 |
| totalPage | 总页数 | ||
| totalRow | 总条数 | ||
| pageNumber | 当前页 | ||
| pageSize | 每页数量 |
- 主账号获取项目列表示例

3、获取数据点
列表方式获取数据点
- URL
http://things-api.iotddc.com/edge-data/data/tags - 请求方式
post - 请求参数
| 参数名 | 参数类型 | 是否必填 | 提交方式 | 默认值 | 说明 |
|---|---|---|---|---|---|
| token | String | Y | header | 无 | 令牌 |
| projectId | int | Y | query | 无 | 项目id |
| page | int | Y | query | 1 | 当前页 |
| size | int | Y | query | 10 | 每页数量 |
| sn | String | N | query | 无 | 网关SN |
| real | Boolean | N | query | 无 | 是否展示实时数据 |
- 返回参数
| 参数名 | 参数类型 | 参数名 | 说明 |
|---|---|---|---|
| code | Int | 错误码 | |
| message | String | 错误消息 | |
| data | JSONObject | list | 数据点列表 |
| totalPage | 总页数 | ||
| totalRow | 总条数 | ||
| pageNumber | 当前页 | ||
| pageSize | 每页数量 |
- 查询参数说明:sn、real分别为查询筛选条件,非必填项
- 请求示例

树形方式获取数据点
根据项目查询
- URL
http://things-api.iotddc.com/edge-data/data/getTagsTree - 请求方式
post - 请求参数
| 参数名 | 参数类型 | 是否必填 | 提交方式 | 默认值 | 说明 |
|---|---|---|---|---|---|
| token | String | Y | header | 无 | 令牌 |
| projectId | raw.json | Y | body | 无 | 项目id |
- 返回参数
| 参数名 | 参数类型 | 参数名 | 说明 |
|---|---|---|---|
| code | Int | 错误码 | |
| message | String | 错误消息 | |
| data | JSONObject | 数据节点树 | |
| name | 当前节点名称 根节点网关 | ||
| children | 子节点 第二层节点为设备 叶子节点为数据点 |
- 请求示例

根据网关查询
- URL
http://things-api.iotddc.com/edge-data/data/getTagsTreeByGateway - 请求方式
post - 请求参数
| 参数名 | 参数类型 | 是否必填 | 提交方式 | 默认值 | 说明 |
|---|---|---|---|---|---|
| token | String | Y | header | 无 | 令牌 |
| gatewayId | raw.json | Y | body | 无 | 网关SN或网关ID |
- 返回参数
| 参数名 | 参数类型 | 参数名 | 说明 |
|---|---|---|---|
| code | Int | 错误码 | |
| message | String | 错误消息 | |
| data | JSONObject | 数据节点树 | |
| name | 当前节点名称 根节点网关 | ||
| children | 子节点 第二层节点为设备 叶子节点为数据点 |
4、订阅实时数据
- 实时数据采用websocket方式订阅和推送
websocket 连接
- url
ws://things-api.iotddc.com/edge-data/ws/scada/sub - 示例
const url = "ws://things-api.iotddc.com/edge-data/ws/real/sub"
let socket = new WebSocket(url)
socket.onopen = function() {
console.log("ws open")
}
发送要订阅的数据点
- 在ws连接成功之后
socket.onopen = function () {
console.log("ws open")
// TODO 发送订阅请求 格式如下,数据点可以多个,也可以订阅所有
data = {
"type": "read",
"projectId": "44", // 项目id
"ids": [
"240117502.Device2.tag0001", // 数据点id ".*" 代表订阅项目下所有 或者只订阅如 "240117502." 或者 "240117502.Device2."
"240117502.Device2.tag0002"
]
}
}
接收实时数据
- 代码示例
socket.onmessage = function (evnet) {
console.log(evnet.data)
}
- 返回数据示例
{
"code": 200,
"data": [
{
"val": 37,
"id": "240117502.Device2.tag0001",
"timestamp": 1714286290,
"status": "Good"
},
{
"val": 71,
"id": "240117502.Device2.tag0002",
"timestamp": 1714286290,
"status": "Good"
}
],
"message": "success"
}
5、查询历史数据
原始数据查询
- URL
http://things-api.iotddc.com/edge-data/data/history - 请求方式
post - 请求参数
| 参数名 | 参数类型 | 是否必填 | 提交方式 | 默认值 | 说明 |
|---|---|---|---|---|---|
| token | String | Y | header | 无 | 令牌 |
| projectId | Int | Y | body(raw.json) | 无 | 项目id |
| id | String | Y | body(raw.json) | 无 | 数据点id |
| startTime | String | Y | body(raw.json) | 无 | 开始时间 yyyy-MM-dd HH:mm:ss |
| endTime | String | Y | body(raw.json) | 无 | 结束时间 yyyy-MM-dd HH:mm:ss |
| page | Int | Y | body(raw.json) | 1 | 当前页 |
| size | Int | Y | body(raw.json) | 10 | 每页数量 |
- 返回参数
| 参数名 | 参数类型 | 参数名 | 说明 |
|---|---|---|---|
| code | Int | 错误码 | |
| message | String | 错误消息 | |
| data | JSONObject | list | 数据列表 |
| totalPage | 总页数 | ||
| totalRow | 总条数 | ||
| pageNumber | 当前页 | ||
| pageSize | 每页数量 |
- 原始数据查询示例

聚合数据查询
- URL
http://things-api.iotddc.com/edge-data/data/aggQueryHistory - 请求方式
post - 请求参数
| 参数名 | 参数类型 | 是否必填 | 提交方式 | 默认值 | 说明 |
|---|---|---|---|---|---|
| token | String | Y | header | 无 | 令牌 |
| projectId | Int | Y | body(raw.json) | 无 | 项目id |
| ids | List | Y | body(raw.json) | 无 | 数据点id列表 |
| startTime | String | Y | body(raw.json) | 无 | 开始时间 yyyy-MM-dd HH:mm:ss |
| endTime | String | Y | body(raw.json) | 无 | 结束时间 yyyy-MM-dd HH:mm:ss |
| count | Int | Y | body(raw.json) | 1 | 聚合周期 |
| aggType | String | Y | body(raw.json) | 10 | 聚合方式 |
- 聚合说明
用于缩减采样数量
最小时间窗口为1m
聚合方式 目前支持 在时间窗口内的 first,last,min,max, sum, mean(平均数), median(中位数) - 返回参数
| 参数名 | 参数类型 | 参数名 | 说明 |
|---|---|---|---|
| code | Int | 错误码 | |
| message | String | 错误消息 | |
| data | JSONObject | list | 数据列表 |
| totalPage | 总页数 | ||
| totalRow | 总条数 | ||
| pageNumber | 当前页 | ||
| pageSize | 每页数量 |
- 聚合数据查询示例

6、查询首页数据
- URL
http://things-api.iotddc.com/edge-data/data/ - 请求方式
post - 请求参数
| 参数名 | 参数类型 | 是否必填 | 提交方式 | 默认值 | 说明 |
|---|---|---|---|---|---|
| token | String | Y | header | 无 | 令牌 |
| projectId | Int | Y | body | 无 | 项目id |
| day | Int | Y | body | 7 | 查询时间范围 |
- 查询时间范围说明
该参数仅用于限定日统计类型消息的时间范围 - 返回参数
| 参数名 | 参数类型 | 参数名 | 说明 |
|---|---|---|---|
| code | Int | 错误码 | |
| message | String | 错误消息 | |
| data | JSONObject | gateway | 网关数量 |
| device | 设备数量 | ||
| tag | 数据点数量 | ||
| alarm | 告警数量 | ||
| writeLog | 下发数量 | ||
| message | 消息量日统计 | ||
| alertCount | 告警数日统计 | ||
| log | 下发量日统计 |
- 首页数据查询示例

7、控制下发
- URL
http://things-api.iotddc.com/edge-data/data/writeTag - 请求方式
post - 请求参数
| 参数名 | 参数类型 | 是否必填 | 提交方式 | 默认值 | 说明 |
|---|---|---|---|---|---|
| token | String | Y | header | 无 | 令牌 |
| tagId | Int | Y | body | 无 | 可写点id |
| value | Int | Y | body | 写入值 |
- 参数说明
tagId只允许可写点下发命令,value为十进制值
- 返回参数
| 参数名 | 参数类型 | 参数名 | 说明 |
|---|---|---|---|
| code | Int | 错误码 | |
| message | String | 错误消息 |