Event Trigger
Event Trigger
Synchronized Device Documentation
This page corresponds to the synchronized Chinese source. Commands, JSON examples, API paths, field names, and screenshots are kept aligned with the Chinese device-side source documentation.
What This Page Covers
- Event Trigger context and expected reader workflow.
- Configuration, verification, and release-readiness details.
- Source-aligned implementation notes, screenshots, and troubleshooting references.
Source Reference
The detailed operational source is preserved below so implementation details stay exact while the English navigation, titles, and reading path remain available.
事件触发 (EVENT_TRIGGER)
概述
事件触发适合已经由按键状态机、传感器缓存、系统状态或其他规则产生的事件。它不负责主动采集数据,而是在事件出现时做条件判断和动作执行。
事件触发(triggerType = 4)用于响应系统内部事件。当指定事件发生时自动执行规则。支持系统事件(WiFi/MQTT/NTP/按键等)和自定义事件(外设执行完成/设备事件)。
配置事件触发时,先确认事件源已经产生明确的 eventId,再配置 triggerPeriphId 和动作;如果规则没有触发,优先查日志中的事件名称。
字段说明
| 字段 | 类型 | 说明 |
|---|---|---|
| triggerType | 4 | 事件触发 |
| eventId | String | 事件 ID(匹配 STATIC_EVENTS 或动态规则 ID) |
| triggerPeriphId | String | 事件源外设 ID(按键事件时指定具体按键,为空则匹配任意) |
可用系统事件列表
WiFi 事件
| eventId | 说明 |
|---|---|
| wifi_connected | WiFi 连接成功 |
| wifi_disconnected | WiFi 断开连接 |
| wifi_conn_failed | WiFi 连接失败 |
MQTT 事件
| eventId | 说明 |
|---|---|
| mqtt_connected | MQTT 连接成功 |
| mqtt_disconnected | MQTT 断开连接 |
| mqtt_conn_failed | MQTT 连接失败 |
| mqtt_enabled | MQTT 协议启用 |
系统事件
| eventId | 说明 |
|---|---|
| ntp_synced | NTP 时间同步完成 |
| ota_start | OTA 升级开始 |
| ota_success | OTA 升级成功 |
| ota_failed | OTA 升级失败 |
| system_boot | 系统启动 |
| system_ready | 系统就绪 |
按键事件
| eventId | 说明 |
|---|---|
| button_click | 按键单击 |
| button_double_click | 按键双击 |
| button_long_press_2s | 按键长按 2 秒 |
| button_long_press_5s | 按键长按 5 秒 |
| button_long_press_10s | 按键长按 10 秒 |
| button_press | 按键按下 |
| button_release | 按键释放 |
数据事件
| eventId | 说明 |
|---|---|
| data_receive | 数据接收(协议数据到达) |
| data_report | 数据上报(协议数据发送) |
外设执行事件
| eventId | 说明 |
|---|---|
| periph_exec_completed | 外设执行规则完成 |
| (规则ID) | 指定规则执行完成(用于链式联动) |
配置示例
方式1:Web界面配置(推荐)
外设执行页面如下。事件触发配置时重点核对事件 ID、比较条件和数据源是否已经由外设动作产生。
示例1:WiFi 连接成功时触发
场景:WiFi连接成功后执行某些动作
配置步骤:
点击左侧菜单 外设配置 → 切换到 外设执行管理 标签
点击 新增规则 按钮
填写基础配置:
- 规则名称:
WiFi连接后执行 - 上报数据:根据需求启用
- 启用:✅ 启用
- 规则名称:
配置触发器:
- 触发类型:选择 事件触发
- 事件ID:选择
wifi_connected(WiFi连接成功)
配置动作:添加需要执行的动作
点击 保存 按钮
示例2:按键单击触发(指定按键)
场景:指定按键btn1单击时触发
配置步骤:
创建规则,名称:
按键单击动作触发器配置:
- 触发类型:选择 事件触发
- 事件ID:选择
button_click(按键单击) - 目标外设ID:填写
btn1(指定按键)
配置动作
点击 保存
💡 提示:指定triggerPeriphId后,只有该按键才会触发
示例3:按键单击触发(任意按键)
场景:任意按键单击都触发
配置步骤:
创建规则,名称:
任意按键单击触发器配置:
- 触发类型:选择 事件触发
- 事件ID:选择
button_click - 目标外设ID:留空(匹配任意按键)
配置动作
点击 保存
示例4:链式联动(规则A完成后触发规则B)
场景:规则A执行完成后自动触发规则B
配置步骤:
创建规则B,名称:
规则B-链式触发触发器配置:
- 触发类型:选择 事件触发
- 事件ID:填写规则A的ID(如
exec_1234567) - 说明:在规则A的ID输入框中复制
配置动作
点击 保存
💡 提示:
- 规则ID格式为
exec_XXXXXXX- 避免形成A→B→A的循环触发
- 可在规则列表中查看规则ID
方式2:JSON配置文件导入
注意事项
- 去重间隔:同一事件最小触发间隔 1 秒,防止快速重复触发
- 按键外设ID:
triggerPeriphId为空时匹配任意按键事件,指定时仅该按键触发 - NTP 前提:部分事件(如 ntp_synced)仅在特定条件下触发
- 链式循环:避免规则 A→B→A 形成无限循环
- 启动顺序:system_boot 在 PeriphExecManager 初始化完成后触发
