跳到主要内容

定时服务使用指南

概述

通过 ESP RainMaker 定时服务,设备可以在特定时间执行操作,既可以是绝对时间(例如,下午 6:30),也可以是相对时间(例如,从现在起 3 小时后)。定时服务支持一次性事件、在每年特定日期重复事件,并能够处理时区和夏令时变化。该功能在节点端实现,云端仅作为通信中介,并可以通过 API 和移动应用轻松访问。

  • 要了解更多关于定时服务的内容,请参阅此文档
  • 关于手机应用中跨节点定时的注意事项,请参阅此文档
警告

定时服务与时间服务密切相关。因此,必须设置和配置时间服务。否则不会触发定时


使用指南

启用定时服务

ESP RainMaker 提供了以下 API 来启用定时服务:

esp_err_t esp_rmaker_schedule_enable(void);
重要

该 API 应在 esp_rmaker_node_init() 之后、esp_rmaker_start() 之前调用。

  • 支持的最大定时服务数量可以通过配置项进行设置:CONFIG_ESP_RMAKER_SCHEDULING_MAX_SCHEDULES
  • 可以在 idf.py menuconfig 中找到此配置项。具体步骤如下:
提示

由于定时服务的有效负载大小会随着定时服务数增加而变大,您可能还需增大 CONFIG_ESP_RMAKER_MAX_PARAM_DATA_SIZE,以支持更多的定时服务。

提醒

在使用定时服务前,建议首先设置时区。关于时区的信息,请参阅此文档。最简单的方法是设置 CONFIG_ESP_RMAKER_DEF_TIMEZONE 选项,例如 CONFIG_ESP_RMAKER_DEF_TIMEZONE="Asia/Shanghai"

可以在 idf.py menuconfig 中找到此选项,具体步骤如下:


日光定时配置 (v1.7.1 版本起可用)

日光定时功能通过天文计算日出日落时间,从而实现自动化定时。此功能需要额外配置。

启用日光定时功能

需配置以下两个选项来启用日光定时:

  1. 启用 ESP 定时模块日光支持

    • 设置 CONFIG_ESP_SCHEDULE_ENABLE_DAYLIGHT=y
    • 配置路径:idf.py menuconfigComponent configESP ScheduleEnable Daylight Support
  2. 启用 ESP RainMaker 日光支持

    • 设置 CONFIG_ESP_RMAKER_SCHEDULE_ENABLE_DAYLIGHT=y
    • 配置路径:idf.py menuconfigESP RainMaker ConfigESP RainMaker SchedulingEnable Daylight Schedules

配置影响说明

  • flash 占用:启用日光作息功能将增加约 15 KB 的固件体积
  • 功能依赖:需要正确配置时间服务以确保计算准确性
  • 位置数据:作息调度需要经纬度坐标进行天文计算

服务属性说明

启用日光定时功能后,调度服务将包含值为 "yes"daylight_support 属性,客户端应用可自动检测此功能特性。

重要提示

日光定时功能需要地理坐标(经纬度)来计算日出日落时间。必须在每个日光定时触发条件中提供这些坐标信息。

On this page