跳到主要内容

如何确保即使触发时设备离线,设备仍能收到参数更新?

如果业务需要在设备离线时仍能更新参数,有两种方案:

1. 启用 CONFIG_ESP_RMAKER_MQTT_PERSISTENT_SESSION — 如果节点在 1 小时内重新连接,将收到它错过的消息。该 1 小时窗口由 AWS IoT 定义,无法更改。请注意,只有在设备被判定为离线之前发送的消息才会被投递(判定依据为 keep-alive 逻辑)——之后发送的消息会被后端丢弃。这可能带来意外后果:如果设备在操作触发时已经断开,稍后重连时可能会在不合适的时间收到开关或其他操作。

2. 通过指令响应进行参数更新 — 该能力在 esp_rainmaker 组件 v1.7.3 中加入。你可以在日常操作中继续使用常规的 set-params,而将场景和定时服务交由指令响应处理。指令响应支持最长 30 天的超时时间,也可设为 -1 使指令永不过期。详情请参见指令响应使用指南。