跳到主要内容

参数更新没有反映在手机应用中,为什么?

常见原因:

  1. 未上报更新 — 在本地更改参数后,必须调用 esp_rmaker_param_update_and_report(param, &val)(或 Arduino 的 param.updateAndReport(val))。如果只更新了内部变量,云端和应用不会看到该更改。

  2. 错误使用写入回调 — 写入回调在应用/用户写入值时运行。对于传感器参数(例如温度),应从循环中使用 esp_rmaker_param_update_and_report() 更新,而不是从写入回调中更新。

  3. 参数名称不正确 — 传给 updateAndReportParam() 的名称必须与设备上的参数完全一致。对于标准设备,请检查标准名称宏(例如 ESP_RMAKER_DEF_TEMPERATURE_NAME)。

  4. 节点配置已更改但未上报 — 如果在运行时添加/删除参数或更改选项,请调用 esp_rmaker_report_node_details(),以便应用看到新的布局。

  5. 更新频率过高 — 避免超过大约每 5 秒 1 条消息;MQTT 消息配额机制可能会丢弃更新。对于时间序列参数(每次 2 条消息),两次更新间隔应保持在约 20 秒以上。

  6. 设备名称无效 — 避免在设备名称中使用点号(.),这可能导致后端解析问题。

  7. 应用缓存 — 刷新设备列表或重启应用;部分问题已在较新的应用版本中修复。