本地定时

更新时间:2023-12-19 08:47:29下载pdf

本地定时 是把定时任务下载到设备本地执行,检查定时是否到期的工作由设备完成。此方式无需设备一直处于连云状态,即使拉到定时任务后设备离线了,该定时任务也能正常被执行。

定时分类

根据定时任务的更新方式,可分为:

  • Wi-Fi 和有线定时

    如果设备广域网在线,定时任务有更新时,设备会向云端发起请求,主动获取 定时器信息。

  • 蓝牙定时

    双模设备广域网离线,蓝牙在线时,设备无法直接从云端获取定时任务,而是通过 App 将定时任务发给设备的方式获取。也就是说,在用户增删改定时器时,App 通过蓝牙链路将定时信息发送给设备。在该方式里,设备是 被动通知 定时信息。

功能描述

  • 支持 30 条定时任务
  • 定时任务支持周循环
  • 支持设备离线时执行定时任务

工作原理

设备App云端启动查询定时任务的定时器增加/删除/修改定时任务通知定时任务有更新拉取新的定时任务opt[Wi-Fi/有线定时]增加/删除/修改定时任务增加/删除/修改定时任务opt[蓝牙定时]检查是否到了执行定时任务的时间框架通知应用(同 DP 回调),由应用执行对应动作alt[定时任务时间到了]loop设备App云端

开发指导

运行环境

由于每个模组上的资源不一样,并不会打开所有功能,您需要检查 tuya_iot_config.h 并确认如下宏定义是否已经定义:

联网单品框架都支持 Wi-Fi 和有线定时。

#define ENABLE_BT_TIMER 1   // 蓝牙定时

关联头文件

  • tuya_cloud_com_defs.h

使用方法

  1. 如需启用该功能,前往 涂鸦 IoT 开发平台 创建产品,进入产品开发界面。在 功能定义 > 高级功能 处为产品开启 面板定时功能 的高级能力。

    如果您在高级能力中没有找到 面板定时功能 能力,是因为该产品方案并未绑定该高级能力。如果您有需求,请联系您的涂鸦客户经理,或者 提交工单 申请绑定该高级能力。

    本地定时
  2. 设备初始化 时,应用注册 Obj 类 DP 处理回调Raw 类 DP 处理回调,在回调函数中处理指令。

  3. 定时任务初始化、增加、删除或者修改,TuyaOS 框架都会自行处理,应用无感知。

  4. 到了执行定时任务的时间后,框架会通过 DP 指令回调函数来通知应用。接收 DP 数据结构体 中指令来源 cmd_tpDP_CMD_TIMER

常见问题

为什么定时任务没有准点执行、有延迟?

  • 每次设备定时设置会有 15 秒的延迟,目的是避免设备对 Flash 的频繁写操作。
  • 软件定时器 中有任务占用了太长时间,导致本地定时任务执行延时。

设备离线时本地定时可以执行吗?

可以,只要定时任务信息已拉取到设备本地。

本地定时支持夏令时吗?

支持,定时执行时,会判断设备当前是否在夏令时时间区间。如果在区间内,则会根据夏令时时区执行定时。

设备定时最多支持多少条?

本地定时最大支持 30 条。