Skip to content

定时触发(TIMER_TRIGGER) ​

triggerType=1 支持间隔和每日时间点两种模式;不支持 cron 表达式。

模式配置行为
间隔 timerMode=0intervalSec 为 1~86400 秒启动后的首次检查可立即准入,之后按上次成功准入时间检查
每日 timerMode=1timePoint 为有效 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 表示动作执行前延时。

蜂信物联 | fastbee.cn