参数更新没有反映在手机应用中,为什么?
常见原因:
-
未上报更新 — 在本地更改参数后,必须调用
esp_rmaker_param_update_and_report(param, &val)(或 Arduino 的param.updateAndReport(val))。如果只更新了内部变量,云端和应用不会看到该更改。 -
错误使用写入回调 — 写入回调在应用/用户写入值时运行。对于传感器参数(例如温度),应从循环中使用
esp_rmaker_param_update_and_report()更新,而不是从写入回调中更新。 -
参数名称不正确 — 传给
updateAndReportParam()的名称必须与设备上的参数完全一致。对于标准设备,请检查标准名称宏(例如ESP_RMAKER_DEF_TEMPERATURE_NAME)。 -
节点配置已更改但未上报 — 如果在运行时添加/删除参数或更改选项,请调用
esp_rmaker_report_node_details(),以便应用看到新的布局。 -
更新频率过高 — 避免超过大约每 5 秒 1 条消息;MQTT 消息配额机制可能会丢弃更新。对于时间序列参数(每次 2 条消息),两次更新间隔应保持在约 20 秒以上。
-
设备名称无效 — 避免在设备名称中使用点号(
.),这可能导致后端解析问题。 -
应用缓存 — 刷新设备列表或重启应用;部分问题已在较新的应用版本中修复。

