历史服务接口
版本记录
版本号 | 日期 | 修改内容 |
---|
v0.14.2 | 2024-08-30 | 修复已知问题 |
历史服务
1、多测点历史原始值查询 :id=one
请求方法
POST /v1/history/findAll
请求参数
参数名称 | 参数类型 | 是否必须 | 描述 |
---|
req | HistoryOriginalReq | 是 | 测点历史数据查询请求 |
endTime | string | 是 | 结束时间(格式:yyyy-MM-dd HH:mm:ss 或毫秒值字符串) |
namespace | string | 否 | 点域 |
pageable | PageReq | 否 | 分页信息 |
page | integer | 否 | 当前页 |
pageSize | integer | 否 | 每页数量 |
startTime | string | 是 | 开始时间(格式:yyyy-MM-dd HH:mm:ss 或毫秒值字符串)不能为空 |
nodeIds | array | 是 | 测点项(格式:数据库单元+’:’ +模型+’.’+测点+’.’+点项) |
Authorization | string | 否 | 令牌 |
响应参数
参数名称 | 参数类型 | 参数说明 |
---|
data | array | 响应数据 |
data | array | 测点数据 |
q | integer | 质量位 |
t | integer | 时间戳 |
v | object | 值 |
nodeId | string | 点项 |
total | integer(int64) | 总数量 |
message | string | 响应消息 |
code | integer(int32) | 响应码,0 成功,其他失败 |
timestamp | integer(int64) | 响应时间戳 |
异常处理
请求示例
POST/v1/history/findAll
{
"startTime": "2023-03-14 13:40:30",
"endTime": "2023-03-14 15:15:30",
"nodeIds": [
"100:EQ_001.AI_002.PV"
],
"pageable":{
"page":1,
"pagesize":500
}
}
响应示例
{
"data": [
{
"data": [
{
"q": 0,
"t": 0,
"v": {}
}
],
"nodeId": "",
"total": 0
}
],
"message": "",
"code": 0,
"timestamp": 0
}
2、测点多点项聚合查询 :id=two
请求方法
POST /v1/history/findAggregate
请求参数
参数名称 | 参数类型 | 是否必须 | 参数说明 |
---|
req | HistoryAggregateReq | 是 | 测点历史汇聚查询请求 |
endTime | string | 是 | 结束时间(格式:yyyy-MM-dd HH:mm:ss 或毫秒值字符串) |
func | string | 是 | 汇聚函数,可用值:min,max,avg,sum,count,stddev,increment,decrement |
nodeIds | array | 是 | 测点项(格式:数据库单元+’:’ +模型+’.’+测点+’.’+点项) |
startTime | string | 是 | 开始时间(格式:yyyy-MM-dd HH:mm:ss 或毫秒值字符串)不能为空 |
Authorization | string | 否 | 查询过滤器令牌 |
响应参数
参数名称 | 参数类型 | 描述 |
---|
code | int | 响应码,0 成功,其他失败 |
message | string | 返回信息描述 |
data | object | |
timestamp | int | 响应时间戳 |
异常处理
请求示例
POST /v1/history/findAggregate
{
"startTime": "2023-04-03 15:22:30",
"endTime": "2023-04-03 15:27:30",
"func": "decrement",
"nodeIds": [
"100:model0.AI_TAG0.AV","100:model0.AI_TAG1.AV"
]
}
响应示例
{
"code": 0,
"message": "操作成功",
"data": {
"100:model0.AI_TAG0.AV": 1.24937445,
"100:model0.AI_TAG1.AV": 1.24937445
},
"timestamp": 1680831764398
}
3、历史趋势数据查询 :id=three
请求方法
POST /v1/history/findAllSection
请求参数
参数名称 | 参数类型 | 是否必须 | 参数说明 |
---|
req | HistoryRangeSectionReq | 是 | 测点历史数据查询请求 |
complementFunc | integer(int32) | 否 | 曲线拟合方法(现支持:0 表示原始值算法 1 表示多项式算法,2 表示贝塞尔曲线算法)—目前只支持原始值 |
endTime | string | 是 | 结束时间(格式:yyyy-MM-dd HH:mm:ss 或毫秒值字符串) |
includeBounds | boolean | 是 | 是否包含时间开始和结束的时间点 |
interval | integer(int64) | 是 | 分段间隔(单位:毫秒) |
nodeIds | array | 是 | 测点项(格式:数据库单元+’:’ +模型+’.’+测点+’.’+点项) |
startTime | string | 是 | 开始时间(格式:yyyy-MM-dd HH:mm:ss 或毫秒值字符串)不能为空 |
Authorization | string | 否 | 令牌 |
响应参数
参数名称 | 参数类型 | 描述 |
---|
code | integer(int32) | 响应码,0 成功,其他失败 |
message | string | 响应消息 |
data | array | 响应数据 |
data | array | 测点数据 |
q | integer | 质量位 |
t | integer | 时间戳 |
v | object | 值 |
nodeId | string | 点项 |
total | integer(int64) | 总数量 |
timestamp | integer(int64) | 响应时间戳 |
异常处理
请求示例
POST/v1/history/findAllSection
{
"complementFunc": 0,
"startTime": "2023-04-03 15:22:30",
"endTime": "2023-04-03 15:27:30",
"includeBounds": true,
"interval": 3000,
"nodeIds": [
"100:model0.AI_TAG0.AV","100:model0.AI_TAG1.AV"
]
}
响应示例
{
"code": 0,
"message": "",
"data": [
{
"data": [
{
"q": 0,
"st": 0,
"t": 0,
"v": {}
}
],
"nodeId": "",
"total": 0
}
],
"timestamp": 0
}
4、指定时间范围内的历史回放数据查询 :id=four
请求方法
POST /v1/history/findDataBySection
请求参数
参数名称 | 参数类型 | 是否必须 | 参数说明 |
---|
req | HistoryRangeSectionReq | 是 | 测点历史数据查询请求 |
complementFunc | integer(int32) | 否 | 曲线拟合方法(现支持:0 表示原始值算法 1 表示多项式算法,2 表示贝塞尔曲线算法)—目前只支持原始值 |
endTime | string | 是 | 结束时间(格式:yyyy-MM-dd HH:mm:ss 或毫秒值字符串) |
includeBounds | boolean | 是 | 是否包含时间开始和结束的时间点 |
interval | integer(int64) | 是 | 分段间隔(单位:毫秒) |
nodeIds | array | 是 | 测点项(格式:数据库单元+’:’ +模型+’.’+测点+’.’+点项) |
startTime | string | 是 | 开始时间(格式:yyyy-MM-dd HH:mm:ss 或毫秒值字符串)不能为空 |
Authorization | string | 否 | 令牌 |
响应参数
参数名称 | 参数类型 | 描述 |
---|
code | integer(int32) | 响应码,0 成功,其他失败 |
message | string | 响应消息 |
data | array | 响应数据 |
data | array | 测点数据 |
q | integer | 质量位 |
t | integer | 时间戳 |
v | object | 值 |
nodeId | string | 点项 |
total | integer(int64) | 总数量 |
timestamp | integer(int64) | 响应时间戳 |
异常处理
请求示例
POST/v1/history/findDataBySection
{
"complementFunc": 0,
"startTime": "2023-04-03 15:22:30",
"endTime": "2023-04-03 15:27:30",
"includeBounds": true,
"interval": 1000,
"nodeIds": [
"100:model0.AI_TAG0.AV"
]
}
响应示例
{
"code": 0,
"message": "操作成功",
"data": [
{
"data": [
{
"q": 0,
"t": 0,
"v": 0.34202015
}
],
"nodeId": "100:model0.AI_TAG0.AV",
"total": 16
}
],
"timestamp": 1680833438495
}
5、多测点分段历史聚合查询 :id=five
请求方法
POST /v1/history/findAggregateSection
请求参数
参数名称 | 参数类型 | 是否必须 | 参数说明 |
---|
req | HistoryAggregateSectionReq | 是 | 节点标识历史汇聚查询请求 |
complementFunc | integer(int32) | 否 | 补数方法(现支持:0 表示前项算法,1 表示多项式算法),补数现只支持:最大,最小,平均。 |
endTime | string | 是 | 结束时间(格式:yyyy-MM-dd HH:mm:ss 或毫秒值字符串) |
func | string | 是 | 汇聚函数,可用值:min,max,avg,sum,count |
includeBounds | boolean | 是 | 是否包含时间右边界 |
interval | integer(int64) | 是 | 分段间隔(单位:毫秒) |
nodeIds | array | 是 | 节点标识(格式:数据库单元+’:’ +模型+’.’+测点+’.’+点项) |
startTime | string | 是 | 开始时间(格式:yyyy-MM-dd HH:mm:ss 或毫秒值字符串)不能为空 |
Authorization | string | 否 | 令牌 |
响应参数
参数名称 | 参数类型 | 描述 |
---|
code | integer(int32) | 状态码 |
message | string | 响应消息 |
data | HistoryValueResp | |
q | integer(int32) | 质量位 |
st | integer(int64) | 原始时间戳 |
t | integer(int64) | 时间戳 |
v | object | 值 |
timestamp | integer(int64) | 响应时间戳 |
异常处理
请求示例
POST/v1/audit/log/find
{
"startTime": "2023-05-10 09:07:00",
"endTime": "2023-05-10 09:09:00",
"func": "min",
"includeBounds": true,
"interval": 3000,
"complementFunc":0,
"nodeIds": [
"100:model0.AI_TAG0.AV"
]
}
响应示例
{
"code": 0,
"message": "操作成功",
"data": {
"100:model0.AI_TAG0.AV": [
{
"q": 0,
"t": 1683680820000,
"v": 0.017452406
},
{
"q": 0,
"t": 1683680823000,
"v": 0.017452406
}
]
},
"timestamp": 1684120106219
}
6、曲线拟合历史查询 :id=six
请求方法
POST /v1/history/findDegreeOfFitting
请求参数
参数名称 | 参数类型 | 是否必须 | 参数说明 |
---|
req | HistoryRangeSectionReq | 是 | 测点历史数据查询请求 |
complementFunc | integer(int32) | 否 | 曲线拟合方法(现支持:0 表示原始值算法(默认算法) |
endTime | string | 是 | 结束时间(格式:yyyy-MM-dd HH:mm:ss 或毫秒值字符串) |
includeBounds | boolean | 是 | 是否包含时间开始和结束的时间点 |
interval | integer(int64) | 是 | 分段间隔(单位:毫秒) |
nodeIds | array | 是 | 节点标识(格式:数据库单元+’:’ +模型+’.’+测点+’.’+点项) |
startTime | string | 是 | 开始时间(格式:yyyy-MM-dd HH:mm:ss 或毫秒值字符串)不能为空 |
Authorization | string | 否 | 令牌 |
响应参数
参数名称 | 参数类型 | 描述 |
---|
code | integer(int32) | 状态码 |
message | string | 响应消息 |
data | HistoryValueResp | |
q | integer(int32) | 质量位 |
st | integer(int64) | 原始时间戳 |
t | integer(int64) | 时间戳 |
v | object | 值 |
timestamp | integer(int64) | 响应时间戳 |
异常处理
请求示例
POST /v1/history/findDegreeOfFitting
{
"endTime": "2023-06-28 10:05:00",
"startTime": "2023-06-28 10:00:00",
"includeBounds": true,
"interval": 1000,
"complementFunc":0
"nodeIds": [
"100:model0.AI_TAG0.AV"
]
}
响应示例
{
"code": 0,
"message": "操作成功",
"data": {
"100:model0.AI_TAG0.AV": [
{
"q": 0,
"t": 1687917600000,
"v": -0.40257028519174054
},
{
"q": 0,
"t": 1687917601000,
"v": -0.39073113
}
]
},
"timestamp": 1687921609097
}
7、计算点项的某个值在指定时间范围内所占时长 :id=seven
请求方法
POST /v1/history/statisticsDataTime
请求参数
参数名称 | 参数类型 | 是否必须 | 参数说明 |
---|
req | HistoryStatisticsReq | 是 | 需要统计的值 |
endTime | string | 是 | 结束时间(格式:yyyy-MM-dd HH:mm:ss 或毫秒值字符串) |
nodeIds | array | 是 | 节点标识(格式:数据库单元+’:’ +模型+’.’+测点+’.’+点项) |
startTime | string | 是 | 开始时间(格式:yyyy-MM-dd HH:mm:ss 或毫秒值字符串)不能为空 |
value | object | 是 | 需要统计的值 |
Authorization | string | 否 | 令牌 |
响应参数
参数名称 | 参数类型 | 描述 |
---|
code | integer(int32) | 响应码,0 成功,其他失败 |
message | string | 响应消息 |
data | array | 响应数据 |
nodeId | string | 点项 |
totalTime | integer(int64) | 点项所占时间长度,单位 s |
timestamp | integer(int64) | 响应时间戳 |
异常处理
请求示例
POST/v1/history/statisticsDataTime
{
"startTime": "2023-07-19 17:30:00",
"endTime": "2023-07-19 17:35:00",
"nodeIds": [
"998:model0.AI_TAG0.AV",
"998:model0.AI_TAG1.AV"
],
"value":777
}
响应示例
{
"code": 0,
"message": "操作成功",
"data": [
{
"nodeId": "998:model0.AI_TAG0.AV",
"totalTime": 229
},
{
"nodeId": "998:model0.AI_TAG1.AV",
"totalTime": 232
}
],
"timestamp": 1690251845980
}
8、多测点历史 string 类型原始值查询 :id=eight
请求方法
POST /v1/history/findAllString
请求参数
参数名称 | 参数类型 | 是否必须 | 参数说明 |
---|
req | HistoryOriginalReq | 是 | 节点标识历史数据查询请求 |
endTime | string | 是 | 结束时间(格式:yyyy-MM-dd HH:mm:ss 或毫秒值字符串) |
nodeIds | array | 是 | 节点标识(格式:数据库单元+’:’ +模型+’.’+测点+’.’+点项) |
pageable | PageReq | 否 | 分页信息 |
page | integer | 否 | 当前页 |
pageSize | integer | 否 | 每页数量 |
startTime | string | 是 | 开始时间(格式:yyyy-MM-dd HH:mm:ss 或毫秒值字符串)不能为空 |
Authorization | string | 否 | 令牌 |
响应参数
参数名称 | 参数类型描述 | 描述 |
---|
code | integer(int32) | 响应码,0 成功,其他失败 |
message | string | 响应信息描述 |
data | array | 响应数据 |
data | array | 测点数据 |
q | integer | 质量位 |
st | integer | 原始时间戳 |
t | integer | 时间戳 |
v | object | 值 |
nodeId | string | 点项 |
total | integer(int64) | 总数量 |
timestamp | integer(int64) | 响应时间戳 |
异常处理
请求示例
POST/v1/history/findAllString
{
"startTime": "2023-03-14 13:40:30",
"endTime": "2023-03-14 15:15:30",
"nodeIds": [
"100:EQ_001.AI_002.PV"
],
"pageable":{
"page":1,
"pagesize":500
}
}
响应示例
{
"code": 0,
"message": "操作成功",
"data": [
{
"data": [
{
"q": 0,
"t": 1689672029363,
"v": "0.034899496"
},
{
"q": 0,
"t": 1689672031479,
"v": "0.052335955"
}
],
"nodeId": "100:EQ_001.AI_002.PV",
"total": 25
}
],
"timestamp": 1690252915316
}
9、多测点历史时刻点查询 :id=nine
请求方法
POST /v1/history/findTimes
请求参数
参数名称 | 参数类型 | 是否必须 | 参数说明 |
---|
req | HistoryTimeReq | 是 | 历史时刻数据请求 |
dateTimes | array | 是 | 历史时刻点集合(格式:毫秒值时间戳字符串) |
nodeIds | array | 是 | 节点标识(格式:数据库单元+’:’ +模型+’.’+测点+’.’+点项) |
Authorization | string | 否 | 令牌 |
响应参数
参数名称 | 参数类型 | 描述 |
---|
code | integer(int32) | 响应码,0 成功,其他失败 |
message | string | 响应消息 |
data | array | 响应数据 |
data | array | 测点数据 |
q | integer | 质量位 |
st | integer | 原始时间戳 |
t | integer | 时间戳 |
v | object | 值 |
nodeId | string | 点项 |
total | integer(int64) | 总数量 |
timestamp | integer(int64) | 响应时间戳 |
异常处理
请求示例
POST/v1/history/findTimes
{
"dateTimes": [
"1695696145665",
"1695696219000",
"1695712706584"
],
"nodeIds": [
"999:model0.AI_TAG0.AV",
"999:model0.AI_TAG1.AV",
"200:model0.AI_TAG0.AV",
"200:model0.AI_TAG1.AV"
]
}
响应示例
示例如下
{
"code": 0,
"message": "操作成功",
"data": [
{
"data": [
{
"q": 0,
"t": 1695696145334,
"v": 777.0
}
],
"nodeId": "999:model0.AI_TAG1.AV",
"total": 1
},
{
"data": [
{
"q": 0,
"t": 1695696145334,
"v": 777.0
}
],
"nodeId": "999:model0.AI_TAG0.AV",
"total": 1
},
{
"data": [
{
"q": 0,
"t": 1695712706947,
"v": 0.052335955
}
],
"nodeId": "200:model0.AI_TAG0.AV",
"total": 1
}
],
"timestamp": 1695712759542
}
10、历史最近 n 条记录查询 :id=ten
请求方法
POST /v1/history/ findLatest
请求参数
参数名称 | 参数类型 | 是否必须 | 参数说明 |
---|
req | HistoryTimeReq | 是 | 历史时刻数据请求 |
dateTime | string | 是 | 历史时刻点(格式:毫秒值时间戳字符串) |
forward | Boolean | 是 | true 表示查过去(向前查)。false 表示查未来(向后查) |
size | | | 历史最近条数 |
nodeIds | array | 是 | 节点标识(格式:数据库单元+’:’ +模型+’.’+测点+’.’+点项) |
Authorization | string | 否 | 令牌 |
响应参数
参数名称 | 参数类型 | 参数说明 |
---|
code | integer(int32) | 响应码,0 成功,其他失败 |
message | string | 响应消息 |
data | array | 响应数据 |
data | array | 测点数据 |
q | integer | 质量位 |
st | integer | 原始时间戳 |
t | integer | 时间戳 |
v | object | 值 |
nodeId | string | 点项 |
total | integer(int64) | 总数量 |
timestamp | integer(int64) | 响应时间戳 |
异常处理
请求示例
POST /v1/history/ findLatest
{
"dateTime": "2023-11-02 15:30:00",
"forward": true,
"size": 20,
"nodeIds": [
"125:model0.AI_TAG0.AV",
"125:model0.AI_TAG1.AV"
]
}
响应示例
{
"code": 0,
"message": "操作成功",
"data": {
"125:model0.AI_TAG0.AV": [
{
"q": 0,
"t": 1698909396822,
"v": 0.98162717
}
],
"125:model0.AI_TAG1.AV": [
{
"q": 0,
"t": 1698909398840,
"v": 0.9848077
}
]
},
"timestamp": 1698909667204
}
11、历史时序数据写入 :id=eleven
请求方法
POST /v1/history/write
请求参数
参数名称 | 参数类型 | 是否必须 | 描述 |
---|
req | HistoryReq | 是 | req |
datas | array | 是 | |
q | integer | 是 | 质量位 |
st | Long | 是 | 源时间戳 |
t | Long | 是 | 时间戳 |
nodeId | string | 是 | 测点名 |
v | object | 是 | 值 |
namespace | string | 是 | 点域 |
Authorization | string | 否 | 令牌 |
响应参数
参数名称 | 参数类型 | 描述 |
---|
code | int | 返回码,0 成功,其他失败 |
message | string | 返回信息描述 |
timestamp | int | 响应时间戳 |
data | boolean | 响应结果 |
异常处理
请求示例
POST /v1/history/write
{
"namespace":"hsmos3",
"datas": [
{
"nodeId": "model1.model11.COUNTER13_1.AV",
"t": 1678167000000,
"v": 0.484453105688888888,
"q": 0,
"st": 1678167000000
},
{
"nodeId": "model1.model11.COUNTER13_2.AV",
"t": 1678167000000,
"v": 0.484453105688888888,
"q": 0,
"st": 1678167000000
}
]
}
响应示例
{
"code": 0,
"message": "写入成功",
"timestamp": 1701308327721,
"data": true
}