My parameter updates are not reflecting in the phone app. Why?
Common causes:
-
Not reporting updates — After changing a parameter locally, you must call
esp_rmaker_param_update_and_report(param, &val)(or Arduinoparam.updateAndReport(val)). If you only update an internal variable, the cloud and app won't see the change. -
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. -
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. -
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. -
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.
-
Invalid device name — Avoid dots (
.) in device names; they can cause backend parsing issues. -
App caching — Refresh the device list or restart the app; some bugs were fixed in newer app versions.