# 融合网关功能接口文档-规则引擎
## 请求地址说明
融合网关所有功能接口请求地址均为`/edge/operations/{deviceId}/{functionId}/invoke`。
其中`deviceId`为边缘设备网关设备Id `functionId`为功能标识。
**注意:当在网关本地调用以下接口时,`deviceId`参数值固定为当前网关deviceId**
## 一、规则实例
### 1. 保存规则实例
**请求方式:** POST
**请求地址:** `/edge/operations/{deviceId}/rule-instance-save/invoke`
**功能标识:** `rule-instance-save`
**请求参数说明**
| 参数 |类型|是否必传| 描述|默认值|
| ------- | ------- | ------- | ------- | ------- |
| id | string | 是 | id|
| name | string | 是 | 名称 |
| description | string | 否 | 描述 |
**返回参数示例**
该接口无返回值
### 2. 获取规则实例列表
**请求方式:** POST
**请求地址:** `/edge/operations/{deviceId}/rule-instance-list/invoke`
**功能标识:** `rule-instance-list`
**请求参数说明**
| 参数 |类型|是否必传| 描述|示例值|
| ------- | ------- | ------- | ------- | ------- |
| where | string | 否 | where条件表达式,与terms参数不能共存.语法: name = 张三 and age > 16 | |
| orderBy | string | 否 | orderBy条件表达式,与sorts参数不能共存.语法: age asc,createTime desc | |
| total | string | 否 | 设置了此值后将不重复执行count查询总数 | |
| paging | string | 否 | 是否分页 | |
| firstPageIndex | string | 否 | 第一页索引 | |
| pageSize | 对象 | 否 | 每页数量 | |
**返回参数示例**
```json
{
"pageIndex":0,
"pageSize":8,
"total":1,
"data":[
{
"id":"111",
"modelId":"111",
"name":"111",
"description":"111",
"modelType":"node-red",
"modelMeta":"{"rev":"51e38394e0590da94e73864208a5799d","flows":[{"disabled":false,"id":"111","label":"111","type":"tab","info":"111"}]}",
"modelVersion":1,
"createTime":1616725735700,
"state":{
"text":"已停止",
"value":"stopped"
}
}
]
}
```
### 3. 获取规则实例信息
**请求方式:** POST
**请求地址:** `/edge/operations/{deviceId}/rule-instance-info/invoke`
**功能标识:** `rule-instance-info`
**请求参数说明**
| 参数 |类型|是否必传| 描述|默认值|
| ------- | ------- | ------- | ------- | ------- |
| ruleInstanceId | string | 是 | 规则实例id | |
**返回参数示例**
```json
{
"id":"111",
"modelId":"111",
"name":"111",
"description":"111",
"modelType":"node-red",
"modelMeta":"{"rev":"51e38394e0590da94e73864208a5799d","flows":[{"disabled":false,"id":"111","label":"111","type":"tab","info":"111"}]}",
"modelVersion":1,
"createTime":1616725735700,
"state":{
"text":"已停止",
"value":"stopped"
}
}
```
### 4. 启动规则实例
**请求方式:** POST
**请求地址:** `/edge/operations/{deviceId}/rule-instance-start/invoke`
**功能标识:** `rule-instance-start`
**请求参数说明**
| 参数 |类型|是否必传| 描述|默认值|
| ------- | ------- | ------- | ------- | ------- |
| ruleInstanceId | string | 是 | 规则实例id | |
**返回参数示例**
```json
{
"result": "true"
}
```
### 5. 停止规则实例
**请求方式:** POST
**请求地址:** `/edge/operations/{deviceId}/rule-instance-stop/invoke`
**功能标识:** `rule-instance-stop`
**请求参数说明**
| 参数 |类型|是否必传| 描述|默认值|
| ------- | ------- | ------- | ------- | ------- |
| ruleInstanceId | string | 是 | 规则实例id | |
**返回参数示例**
```json
{
"result": "true"
}
```
### 6. 删除规则实例
**请求方式:** POST
**请求地址:** `/edge/operations/{deviceId}/rule-instance-delete/invoke`
**功能标识:** `rule-instance-delete`
**请求参数说明**
| 参数 |类型|是否必传| 描述|默认值|
| ------- | ------- | ------- | ------- | ------- |
| ruleInstanceId | string | 是 | 规则实例id | |
**返回参数示例**
该接口无返回值
### 7. 复制规则实例
**请求方式:** POST
**请求地址:** `/edge/operations/{deviceId}/rule-instance-save/invoke`
**功能标识:** `rule-instance-save`
**请求参数说明**
| 参数 |类型|是否必传| 描述|默认值|
| ------- | ------- | ------- | ------- | ------- |
| id | string | 是 | id|
| name | string | 是 | 名称 |
| modelMeta | string | 是 | 规则模型配置 |
| modelType | string | 是 | 规则类型 |
| description | string | 否 | 描述 |
## 执行规则
### 1. 执行任务
**请求方式:** POST
**请求地址:** `/edge/operations/{deviceId}/rule-task-execute/invoke`
**功能标识:** `rule-task-execute`
**请求参数说明**
| 参数 |类型|是否必传| 描述|默认值|
| ------- | ------- | ------- | ------- | ------- |
| ruleInstanceId | string | 是 | 规则实例id | |
| taskId | string | 是 | 任务Id | |
| ruleData | 对象 | 是 | {
"id":"节点Id",
"contextId":"上下文Id",
"data":{//数据},
"headers":{//节点头部信息}
} | |
**返回参数示例**
该接口无返回值
### 2. 获取规则引擎执行事件
**请求方式:** POST
**请求地址:** `/edge/operations/{deviceId}/rule-engine-execute-events/invoke`
**功能标识:** `rule-engine-execute-events`
**请求参数说明**
| 参数 |类型|是否必传| 描述|默认值|
| ------- | ------- | ------- | ------- | ------- |
| ruleInstanceId | string | 是 | 规则实例id | |
| where | string | 否 | where条件表达式,与terms参数不能共存.语法: name = 张三 and age > 16 | |
| orderBy | string | 否 | orderBy条件表达式,与sorts参数不能共存.语法: age asc,createTime desc | |
| total | string | 否 | 设置了此值后将不重复执行count查询总数 | |
| paging | string | 否 | 是否分页 | |
| firstPageIndex | string | 否 | 第一页索引 | |
| pageSize | 对象 | 否 | 每页数量 | |
**返回参数示例**
```json
{
"result":{
"pageIndex":0,
"pageSize":10,
"total":1,
"data":[
{
"id":"26dae0a4-5346-4748-bb62-6771895ceb74",
"event":"error",
"createTime":1616737500013,
"instanceId":"test",
"nodeId":"54c10747.e54cc8",
"ruleData":"{}",
"contextId":"8d69f6c9-681d-47be-bb0c-4e0ce187fd9e"
}
]
},
"status":200,
"code":"success"
}
```
### 3. 获取规则引擎执行日志
**请求方式:** POST
**请求地址:** `/edge/operations/{deviceId}/rule-engine-execute-logs/invoke`
**功能标识:** `rule-engine-execute-logs`
**请求参数说明**
| 参数 |类型|是否必传| 描述|默认值|
| ------- | ------- | ------- | ------- | ------- |
| ruleInstanceId | string | 是 | 规则实例id | |
| where | string | 否 | where条件表达式,与terms参数不能共存.语法: name = 张三 and age > 16 | |
| orderBy | string | 否 | orderBy条件表达式,与sorts参数不能共存.语法: age asc,createTime desc | |
| total | string | 否 | 设置了此值后将不重复执行count查询总数 | |
| paging | string | 否 | 是否分页 | |
| firstPageIndex | string | 否 | 第一页索引 | |
| pageSize | 对象 | 否 | 每页数量 | |
**返回参数示例**
```json
{
"result":{
"pageIndex":0,
"pageSize":10,
"total":1,
"data":[
{
"id":"26dae0a4-5346-4748-bb62-6771895ceb74",
"instanceId":"test",
"nodeId":"节点Id",
"level":"日志级别",
"message":"内容",
"createTime":"1616737500013",
"timestamp":"日志时间",
"context":"上下文数据"
}
]
},
"status":200,
"code":"success"
}
```
## 场景规则
### 1. 保存场景规则
**请求方式:** POST
**请求地址:** `/edge/operations/{deviceId}/rule-engine-scene-save/invoke`
**功能标识:** `rule-engine-scene-save`
**请求参数说明**
| 参数 |类型|是否必传| 描述|默认值|
| ------- | ------- | ------- | ------- | ------- |
| id | string | 是 | 场景Id | |
| name | string | 是 | 场景名称 | |
| actions | 数组对象 | 是 | 执行动作 | |
| parallel | string | 是 | 是否并行执行动作 | |
| triggers | 数组对象 | 否 | 触发条件 | |
**返回参数示例**
该接口无返回值
### 2. 获取场景规则分页列表
**请求方式:** POST
**请求地址:** `/edge/operations/{deviceId}/rule-engine-scene-page-list/invoke`
**功能标识:** `rule-engine-scene-page-list`
**请求参数说明**
| 参数 |类型|是否必传| 描述|默认值|
| ------- | ------- | ------- | ------- | ------- |
| ruleInstanceId | string | 是 | 规则实例id | |
| where | string | 否 | where条件表达式,与terms参数不能共存.语法: name = 张三 and age > 16 | |
| orderBy | string | 否 | orderBy条件表达式,与sorts参数不能共存.语法: age asc,createTime desc | |
| total | string | 否 | 设置了此值后将不重复执行count查询总数 | |
| paging | string | 否 | 是否分页 | |
| firstPageIndex | string | 否 | 第一页索引 | |
| pageSize | 对象 | 否 | 每页数量 | |
**返回参数示例**
```json
{
"pageIndex":0,
"pageSize":8,
"total":1,
"data":[
{
"id":"test-ld",
"name":"测试场景联动",
"triggers":[
{
"trigger":"timer",
"cron":"1213123"
}
],
"parallel":false,
"actions":[
{
"executor":"device-message-sender",
"configuration":{
"notifyType":"dingTalk",
"productId":"edge-gateway-product",
"message":{
"messageType":"WRITE_PROPERTY",
"properties":{
"cpuTemp":"121"
}
},
"deviceId":"edge-gateway-device-001"
}
}
],
"state":{
"text":"已停止",
"value":"stopped"
}
}
]
}
```
### 3. 获取场景规则列表
**请求方式:** POST
**请求地址:** `/edge/operations/{deviceId}/rule-engine-scene-list/invoke`
**功能标识:** `rule-engine-scene-list`
**请求参数说明**
| 参数 |类型|是否必传| 描述|默认值|
| ------- | ------- | ------- | ------- | ------- |
| ruleInstanceId | string | 是 | 规则实例id | |
| where | string | 否 | where条件表达式,与terms参数不能共存.语法: name = 张三 and age > 16 | |
| orderBy | string | 否 | orderBy条件表达式,与sorts参数不能共存.语法: age asc,createTime desc | |
| total | string | 否 | 设置了此值后将不重复执行count查询总数 | |
| paging | string | 否 | 是否分页 | |
| firstPageIndex | string | 否 | 第一页索引 | |
| pageSize | 对象 | 否 | 每页数量 | |
**返回参数示例**
```json
[
{
"id":"test-ld",
"name":"测试场景联动",
"triggers":[
{
"trigger":"timer",
"cron":"1213123"
}
],
"parallel":false,
"actions":[
{
"executor":"device-message-sender",
"configuration":{
"notifyType":"dingTalk",
"productId":"edge-gateway-product",
"message":{
"messageType":"WRITE_PROPERTY",
"properties":{
"cpuTemp":"121"
}
},
"deviceId":"edge-gateway-device-001"
}
}
],
"state":{
"text":"已停止",
"value":"stopped"
}
}
]
```
### 4. 执行场景规则
**请求方式:** POST
**请求地址:** `/edge/operations/{deviceId}/rule-engine-scene-execute/invoke`
**功能标识:** `rule-engine-scene-execute`
**请求参数说明**
| 参数 |类型|是否必传| 描述|默认值|
| ------- | ------- | ------- | ------- | ------- |
| id | string | 是 | 场景Id | |
| args | 对象 | 否 | 执行参数 | |
**返回参数示例**
该接口无返回值
### 5. 删除场景规则
**请求方式:** POST
**请求地址:** `/edge/operations/{deviceId}/rule-engine-scene-delete/invoke`
**功能标识:** `rule-engine-scene-delete`
**请求参数说明**
| 参数 |类型|是否必传| 描述|默认值|
| ------- | ------- | ------- | ------- | ------- |
| id | string | 是 | 场景Id | |
**返回参数示例**
该接口无返回值
### 6. 启动场景规则
**请求方式:** POST
**请求地址:** `/edge/operations/{deviceId}/rule-engine-scene-start/invoke`
**功能标识:** `rule-engine-scene-start`
**请求参数说明**
| 参数 |类型|是否必传| 描述|默认值|
| ------- | ------- | ------- | ------- | ------- |
| id | string | 是 | 场景Id | |
**返回参数示例**
该接口无返回值
### 7. 停止场景规则
**请求方式:** POST
**请求地址:** `/edge/operations/{deviceId}/rule-engine-scene-stop/invoke`
**功能标识:** `rule-engine-scene-stop`
**请求参数说明**
| 参数 |类型|是否必传| 描述|默认值|
| ------- | ------- | ------- | ------- | ------- |
| id | string | 是 | 场景Id | |
**返回参数示例**
该接口无返回值
### 8. 获取场景规则信息
**请求方式:** POST
**请求地址:** `/edge/operations/{deviceId}/rule-engine-scene-info/invoke`
**功能标识:** `rule-engine-scene-info`
**请求参数说明**
| 参数 |类型|是否必传| 描述|默认值|
| ------- | ------- | ------- | ------- | ------- |
| id | string | 是 | 场景Id | |
**返回参数示例**
```json
{
"id":"test-ld",
"name":"测试场景联动",
"triggers":[
{
"trigger":"timer",
"cron":"1213123"
}
],
"parallel":false,
"actions":[
{
"executor":"device-message-sender",
"configuration":{
"notifyType":"dingTalk",
"productId":"edge-gateway-product",
"message":{
"messageType":"WRITE_PROPERTY",
"properties":{
"cpuTemp":"121"
}
},
"deviceId":"edge-gateway-device-001"
}
}
],
"state":{
"text":"已停止",
"value":"stopped"
}
}
```
## 告警配置
### 1. 保存告警配置
**请求方式:** POST
**请求地址:** `/edge/operations/{deviceId}/rule-engine-alarm-save/invoke`
**功能标识:** `rule-engine-alarm-save`
**请求参数说明**
| 参数 |类型|是否必传| 描述|默认值|
| ------- | ------- | ------- | ------- | ------- |
| id | string | 是 | Id | |
| name | string | 是 | 名称 | |
| description | string | 否 | 说明 | |
| target | string | 是 | device或者product | |
| targetId | string | 是 | deviceId或者productId | |
| alarmRule | 对象 | 是 | 规则配置 | |
**返回参数示例**
该接口无返回值
### 2. 获取告警配置规则分页列表
**请求方式:** POST
**请求地址:** `/edge/operations/{deviceId}/rule-engine-alarm-page-list/invoke`
**功能标识:** `rule-engine-alarm-page-list`
**请求参数说明**
| 参数 |类型|是否必传| 描述|默认值|
| ------- | ------- | ------- | ------- | ------- |
| where | string | 否 | where条件表达式,与terms参数不能共存.语法: name = 张三 and age > 16 | |
| orderBy | string | 否 | orderBy条件表达式,与sorts参数不能共存.语法: age asc,createTime desc | |
| total | string | 否 | 设置了此值后将不重复执行count查询总数 | |
| paging | string | 否 | 是否分页 | |
| firstPageIndex | string | 否 | 第一页索引 | |
| pageSize | 对象 | 否 | 每页数量 | |
**返回参数示例**
```json
{
"pageIndex":0,
"pageSize":8,
"total":1,
"data":[
{
"id":"test-ld",
"name":"测试场景联动",
"description":"说明",
"target":"device",
"targetId":"deviceId",
"alarmRule": {
}
,
"state":{
"text":"已停止",
"value":"stopped"
}
}
]
}
```
### 3. 获取告警配置规则列表
**请求方式:** POST
**请求地址:** `/edge/operations/{deviceId}/rule-engine-alarm-list/invoke`
**功能标识:** `rule-engine-alarm-list`
**请求参数说明**
| 参数 |类型|是否必传| 描述|默认值|
| ------- | ------- | ------- | ------- | ------- |
| where | string | 否 | where条件表达式,与terms参数不能共存.语法: name = 张三 and age > 16 | |
| orderBy | string | 否 | orderBy条件表达式,与sorts参数不能共存.语法: age asc,createTime desc | |
| total | string | 否 | 设置了此值后将不重复执行count查询总数 | |
| paging | string | 否 | 是否分页 | |
| firstPageIndex | string | 否 | 第一页索引 | |
| pageSize | 对象 | 否 | 每页数量 | |
**返回参数示例**
```json
[
{
"id":"test-ld",
"name":"测试场景联动",
"description":"说明",
"target":"device",
"targetId":"deviceId",
"alarmRule": {
}
,
"state":{
"text":"已停止",
"value":"stopped"
}
}
]
```
### 4. 启动告警配置规则
**请求方式:** POST
**请求地址:** `/edge/operations/{deviceId}/rule-engine-alarm-start/invoke`
**功能标识:** `rule-engine-alarm-start`
**请求参数说明**
| 参数 |类型|是否必传| 描述|默认值|
| ------- | ------- | ------- | ------- | ------- |
| id | string | 是 | 场景Id | |
| args | 对象 | 否 | 执行参数 | |
**返回参数示例**
该接口无返回值
### 5. 删除告警配置规则
**请求方式:** POST
**请求地址:** `/edge/operations/{deviceId}/rule-engine-alarm-delete/invoke`
**功能标识:** `rule-engine-alarm-delete`
**请求参数说明**
| 参数 |类型|是否必传| 描述|默认值|
| ------- | ------- | ------- | ------- | ------- |
| id | string | 是 | 场景Id | |
**返回参数示例**
该接口无返回值
### 6. 停止告警配置规则
**请求方式:** POST
**请求地址:** `/edge/operations/{deviceId}/rule-engine-alarm-stop/invoke`
**功能标识:** `rule-engine-alarm-stop`
**请求参数说明**
| 参数 |类型|是否必传| 描述|默认值|
| ------- | ------- | ------- | ------- | ------- |
| id | string | 是 | 场景Id | |
**返回参数示例**
该接口无返回值
### 7. 获取告警配置规则信息
**请求方式:** POST
**请求地址:** `/edge/operations/{deviceId}/rule-engine-alarm-info/invoke`
**功能标识:** `rule-engine-alarm-info`
**请求参数说明**
| 参数 |类型|是否必传| 描述|默认值|
| ------- | ------- | ------- | ------- | ------- |
| target | string | 是 | device或product | |
| targetId | string | 是 | deviceId或productId | |
**返回参数示例**
```json
{
"id":"test-ld",
"name":"测试场景联动",
"description":"说明",
"target":"device",
"targetId":"deviceId",
"alarmRule": {
}
,
"state":{
"text":"已停止",
"value":"stopped"
}
}
```
## 告警记录
### 1. 获取告警记录规则分页列表
**请求方式:** POST
**请求地址:** `/edge/operations/{deviceId}/rule-engine-alarm-history-page-list/invoke`
**功能标识:** `rule-engine-alarm-history-page-list`
**请求参数说明**
| 参数 |类型|是否必传| 描述|默认值|
| ------- | ------- | ------- | ------- | ------- |
| where | string | 否 | where条件表达式,与terms参数不能共存.语法: name = 张三 and age > 16 | |
| orderBy | string | 否 | orderBy条件表达式,与sorts参数不能共存.语法: age asc,createTime desc | |
| total | string | 否 | 设置了此值后将不重复执行count查询总数 | |
| paging | string | 否 | 是否分页 | |
| firstPageIndex | string | 否 | 第一页索引 | |
| pageSize | 对象 | 否 | 每页数量 | |
**返回参数示例**
```json
{
"pageIndex":0,
"pageSize":8,
"total":1,
"data":[
{
"id":"test-ld",
"productId":"产品Id",
"productName":"产品名称",
"deviceId":"设备ID",
"deviceName":"设备名称",
"alarmId":"告警ID",
"alarmName":"告警名称",
"alarmTime":"告警时间",
"updateTime":"修改时间",
"description":"说明",
"alarmData": {
}
,
"state":"状态"
}
]
}
```
### 2. 删除告警记录规则
**请求方式:** POST
**请求地址:** `/edge/operations/{deviceId}/rule-engine-alarm-history-delete/invoke`
**功能标识:** `rule-engine-alarm-history-delete`
**请求参数说明**
| 参数 |类型|是否必传| 描述|默认值|
| ------- | ------- | ------- | ------- | ------- |
| id | string | 是 | Id | |
**返回参数示例**
该接口无返回值
### 3. 修改告警记录
**请求方式:** POST
**请求地址:** `/edge/operations/{deviceId}/rule-engine-alarm-history-update/invoke`
**功能标识:** `rule-engine-alarm-history-update`
**请求参数说明**
| 参数 |类型|是否必传| 描述|默认值|
| ------- | ------- | ------- | ------- | ------- |
| id | string | 是 | Id | |
| state | string | 是 | 状态 | |
| descriptionMono | string | 否 | 备注 | |
**返回参数示例**
该接口无返回值
### 4. 告警记录信息
**请求方式:** POST
**请求地址:** `/edge/operations/{deviceId}/rule-engine-alarm-history-info/invoke`
**功能标识:** `rule-engine-alarm-history-info`
**请求参数说明**
| 参数 |类型|是否必传| 描述|默认值|
| ------- | ------- | ------- | ------- | ------- |
| id | string | 是 | 告警id | |
**返回参数示例**
```json
{
"id":"test-ld",
"productId":"产品Id",
"productName":"产品名称",
"deviceId":"设备ID",
"deviceName":"设备名称",
"alarmId":"告警ID",
"alarmName":"告警名称",
"alarmTime":"告警时间",
"updateTime":"修改时间",
"description":"说明",
"alarmData": {
}
,
"state":"状态"
}
```