事件与规则控制动作
大约 2 分钟
事件与规则控制动作
动作类型
| 动作 | actionType | 说明 |
|---|---|---|
| ACTION_TRIGGER_EVENT | 21 | 触发设备事件 |
| ACTION_ENABLE_EXEC_RULE | 22 | 启用指定规则 |
| ACTION_DISABLE_EXEC_RULE | 23 | 禁用指定规则 |
配置示例
方式1:Web界面配置(推荐)
外设执行页面如下。事件动作配置时重点核对事件 ID、目标规则和是否会形成循环触发。
示例1:触发设备事件(链式联动)
场景:触发一个自定义事件,供其他规则订阅
配置步骤:
在外设执行管理页面编辑规则
点击 添加动作 按钮
填写动作配置:
字段 填写内容 说明 动作类型 选择 触发事件 触发设备事件 事件ID 填写 evt_alarm自定义事件ID 事件数据 填写 高温报警可选,事件携带的数据 点击 保存 按钮
💡 提示:
- 其他规则可通过事件触发器订阅此事件
- 启用“上报数据”后事件会通过MQTT DEVICE_EVENT主题上报
示例2:启用指定规则
场景:动态启用温控规则exec_temp_ctrl
配置步骤:
编辑规则,添加动作
填写:
- 动作类型:选择 启用规则
- 目标规则ID:填写
exec_temp_ctrl
点击 保存
💡 提示:targetPeriphId必须是已存在的规则ID(格式:exec_XXXXXXX)
示例3:禁用指定规则
场景:动态禁用指定规则
配置步骤:
编辑规则,添加动作
填写:
- 动作类型:选择 禁用规则
- 目标规则ID:填写要禁用的规则ID
点击 保存
💡 提示:enable/disable操作会持久化到periph_exec.json
应用场景
场景1:按键切换规则启用状态
步骤:
- 创建规则,名称:
按键切换温控 - 触发器:事件触发 →
button_click→ 目标btn1 - 动作:选择 启用规则 → 目标
exec_temp_ctrl - 保存
💡 提示:可创建两条规则,单击启用,双击禁用
场景2:链式联动(规则A→规则B)
步骤:
规则A配置:
- 动作1:执行主要逻辑
- 动作2:选择 触发事件 → 事件ID填写规则A自己的ID
规则B配置:
- 触发器:事件触发 → 事件ID填写规则A的ID
- 动作:执行后续逻辑
💡 提示:避免形成A→B→A的循环触发
方式2:JSON配置文件导入
注意事项
- 循环保护:避免 A启用B → B启用A 形成循环
- 事件去重:同一事件 500ms 内不会重复触发
- 规则ID:targetPeriphId 必须是已存在的规则 ID(格式:
exec_XXXXXXX) - 持久化:enable/disable 操作会持久化到 periph_exec.json
