跳到主要内容

My parameter updates are not reflecting in the phone app. Why?

Common causes:

  1. Not reporting updates — After changing a parameter locally, you must call esp_rmaker_param_update_and_report(param, &val) (or Arduino param.updateAndReport(val)). If you only update an internal variable, the cloud and app won't see the change.

  2. Wrong use of write callback — Write callbacks run when the app/user writes a value. For sensor params (e.g., temperature), update from your loop using esp_rmaker_param_update_and_report(), not from the write callback.

  3. Wrong parameter name — The name passed to updateAndReportParam() must exactly match the parameter on the device. Check standard name macros (e.g., ESP_RMAKER_DEF_TEMPERATURE_NAME) for standard devices.

  4. Node config changed but not reported — If you add/remove params or change options at runtime, call esp_rmaker_report_node_details() so the app sees the new layout.

  5. Update rate too high — Avoid exceeding ~1 message per 5 seconds; MQTT budgeting can drop updates. For time-series params (2 messages each), stay under ~20 seconds between updates.

  6. Invalid device name — Avoid dots (.) in device names; they can cause backend parsing issues.

  7. App caching — Refresh the device list or restart the app; some bugs were fixed in newer app versions.