定时触发(TIMER_TRIGGER)
triggerType=1 支持间隔和每日时间点两种模式;不支持 cron 表达式。
| 模式 | 配置 | 行为 |
|---|---|---|
间隔 timerMode=0 | intervalSec 为 1~86400 秒 | 启动后的首次检查可立即准入,之后按上次成功准入时间检查 |
每日 timerMode=1 | timePoint 为有效 HH:MM | 在系统本地日历到达该分钟时准入 |
间隔规则使用单调毫秒计时,支持计数器回绕,不依赖 NTP 校时。资源或队列拒绝时保持到期状态,等待后续检查;准入不等于动作最终完成,也不补发每个积压周期。
每日时间点要求有效系统日历及正确时区。NTP、受支持的 RTC 或时间输入可能提供时间,不能仅凭联网推断日历有效。系统仅检查当前分钟,错过时间点不会事后补执行。同一次启动中保存已准入的最大日历日期,时间倒拨到旧日期不重新执行;这项去重状态不持久化,不能宣称跨重启每天恰好一次。
每分钟采集温度
json
{
"id": "exec_timer_temperature",
"name": "exec_timer_temperature",
"enabled": false,
"execMode": 0,
"triggers": [
{
"triggerType": 1,
"timerMode": 0,
"intervalSec": 60
}
],
"actions": [
{
"targetPeriphId": "dht_room",
"actionType": 19,
"actionValue": "{\"periphId\":\"dht_room\",\"sensorCategory\":\"dht22\",\"channelField\":\"temperature\",\"dataField\":\"temperature\",\"unit\":\"°C\"}",
"syncDelayMs": 0,
"execMode": 0
}
],
"reportAfterExec": false,
"allowPanelControl": false,
"recordHistory": false
}把 reportAfterExec 改为 true 可请求 MQTT 上报;仍需 MQTT 实例、发布主题和有界队列可用。
每天 08:30 显示提示
json
{
"id": "exec_daily_display",
"name": "exec_daily_display",
"enabled": false,
"execMode": 0,
"triggers": [
{
"triggerType": 1,
"timerMode": 1,
"timePoint": "08:30"
}
],
"actions": [
{
"actionType": 27,
"targetPeriphId": "oled_ctrl",
"actionValue": "# 提示\\n08:30"
}
],
"reportAfterExec": false,
"allowPanelControl": false,
"recordHistory": false
}规则先保持停用,确认时区、外设和显示参数后再启用。不要用时间点规则承诺跨停机补偿、动作完成或物理确认。含延时与耗时读取时优先使用现有异步调度;syncDelayMs 表示动作执行前延时。

