Skip to content

定时任务

定时任务用于让设备智能体保存未来执行的对话指令;在对话里说清任务、时间和目标设备即可创建,读取状态或下发命令时需确保目标设备已通过 MQTT、SDK 或模拟器在线,并让任务描述保持完整。

创建任务

在设备智能体工作区选中目标设备,然后输入自然语言请求:

text
1 分钟后把当前温控器的目标温度设为 24 度。

设备智能体会把请求保存为一次性、固定间隔或 cron 计划,并返回下一次运行时间。

任务类型示例
延迟执行1 分钟后把当前温控器的目标温度设为 24 度。
固定间隔每 5 分钟检查一次当前温度,超过 30 度就把目标温度设为 24 度。
每日执行每天早上 9 点把当前温控器切换到节能模式。

定时任务对话

查看执行结果

任务到期后,网关会以 cron:<timerId> 启动独立执行。测试时以 日志 中的 Timer 模块为准:

text
[14:27:17] [INFO ] [Timer] Scheduled task 8362d16a-e712-4f4d-9d08-caaa6a88f7eb fired {"timerId":"8362d16a-e712-4f4d-9d08-caaa6a88f7eb","scheduleKind":"once","scheduleExpr":"1m","status":"fired"}
[14:27:21] [INFO ] [Timer] Scheduled task 8362d16a-e712-4f4d-9d08-caaa6a88f7eb completed {"timerId":"8362d16a-e712-4f4d-9d08-caaa6a88f7eb","scheduleKind":"once","scheduleExpr":"1m","status":"complete"}

执行失败时,同一个 timerId 会出现 status:"error"。Web 控制台打开时也会显示开始、完成或失败通知;点击通知里的 查看日志 会带着 timerId 跳到日志页并直接筛选相关记录。

如果原会话还能接收回复,执行结果可能回到原会话;如果不能,网关会忽略这次会话回复。无论回复是否进入会话,Timer 日志都会记录触发和终态。

查询和取消任务

可以继续在对话里管理定时任务:

text
列出当前还在运行的定时任务。
text
刚才创建的目标温度任务还剩多久执行?
text
取消刚才创建的目标温度定时任务。

如果存在多个相似任务,先列出任务,再按任务 ID 或任务内容取消。取消后任务会被标记为已删除,不再触发。周期任务不再需要时应及时取消。

验证设备动作

定时任务只负责在指定时间唤起设备智能体。任务是否真正改变设备状态,还需要在设备状态、设备日志或 MQTT 消息中验证。设备控制动作仍然必须匹配设备规格中定义的命令。