跳到主要内容

什么是指令响应框架?它与 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 启用。详情请参见指令响应和指令响应使用指南。