什么是指令响应框架?它与 get/set 参数有何不同?
指令响应框架是向设备发送数据的另一种方案,用于替代 set-params 工作流,客户端可以是手机应用或 CLI。使用 get/set 参数时,指令通过 MQTT 实时投递——设备必须在线,并且没有内置方式查询请求状态,也无法在设备重新上线时排队执行指令。
主要区别:
| 特性 | Get/Set 参数 | 指令响应 |
|---|---|---|
| 投递方式 | 实时;设备必须在线 | 云端排队;设备上线后拉取 |
| 离线支持 | 设备离线则消息丢失 | 请求会被保存,设备连接后执行 |
| 请求状态 | 发出即忘,无明确状态 | 可查询状态(requested、in_progress、success、timed_out、failure) |
| 有效期 | 发送一次,投递成功或丢弃 | 可配置超时(例如最长 30 天或永不过期) |
| 访问控制 | 参数级别 | 感知用户角色(超级管理员、主要用户、次要用户) |
典型使用场景: 场景和定时服务(即使触发时设备离线也能执行)、断电后恢复设备状态(设备向云端查询最后一条指令),以及任何需要可靠投递或请求状态的流程。通过 CONFIG_ESP_RMAKER_CMD_RESP_ENABLE=y 启用。详情请参见指令响应和指令响应使用指南。

