ESP Rainmaker App reverts to old param values
ESP Rainmaker App reverts to old param values
Has anyone experienced an issue with the Rainmaker app reverting to showing incorrect values for parameters?
For example if I change my Hue slider my device updates its color correctly, but then the slider in the app moves back to its previous position after a couple seconds.
Reposting because I'm not sure if my forum posts are going through at all.
For example if I change my Hue slider my device updates its color correctly, but then the slider in the app moves back to its previous position after a couple seconds.
Reposting because I'm not sure if my forum posts are going through at all.
-
- Posts: 309
- Joined: Wed Feb 20, 2019 7:02 am
Re: ESP Rainmaker App reverts to old param values
Hello,
All your posts are indeed getting posted and now I see 3 of them . Will delete 2 later.
I just checked with some older firmware as well as the latest firmware and latest Android app. I was not able to reproduce this issue.
Note that the phone app queries periodically for the param values so that the UI is in sync with the actual values. The issue you mentioned can occur only if the parameter update message sent by device to cloud has failed for some reason or is not formatted correctly, thereby causing the new value to not reflect correctly. Can you check the prints on the device side and see what message it is sending after param updated successfully?
Regards,
Piyush
All your posts are indeed getting posted and now I see 3 of them . Will delete 2 later.
I just checked with some older firmware as well as the latest firmware and latest Android app. I was not able to reproduce this issue.
Note that the phone app queries periodically for the param values so that the UI is in sync with the actual values. The issue you mentioned can occur only if the parameter update message sent by device to cloud has failed for some reason or is not formatted correctly, thereby causing the new value to not reflect correctly. Can you check the prints on the device side and see what message it is sending after param updated successfully?
Regards,
Piyush
Re: ESP Rainmaker App reverts to old param values
Yeah, sorry for the spam
I forgot to mention I've been doing my testing on iOS up to this point. Doing a test on Android now to see if error persists.
Yes, the Android phone app also reverts its values. I am using this line of code to periodically check the stored value:
ESP_LOGI(TAG, "current rmaker color value = %d", esp_rmaker_param_get_val(esp_rmaker_device_get_param_by_name(light_device, "Color"))->val.i);
Here is what log of the ESP IDF monitor when it receives a message from the app to change color from 292 to 100:
I (14521) app_main: current rmaker color value = 292
I (15021) app_main: current rmaker color value = 292
I (15471) esp_rmaker_param: Received params: {"Mididesign.io Logo Light":{"Color":100}}
I (15481) app_main: Received write request via : Cloud
I (15481) app_main: Received value = 100 for Mididesign.io Logo Light - Color
I (15491) esp_rmaker_param: Reporting params: {"Mididesign.io Logo Light":{"Color":100}}
I (15521) app_main: current rmaker color value = 100
The value returned by esp_rmaker_param_get_val changes correctly and does not revert. However the value displayed in the app slider always eventually moves back to the position it was in when the device powered on.
I forgot to mention I've been doing my testing on iOS up to this point. Doing a test on Android now to see if error persists.
Yes, the Android phone app also reverts its values. I am using this line of code to periodically check the stored value:
ESP_LOGI(TAG, "current rmaker color value = %d", esp_rmaker_param_get_val(esp_rmaker_device_get_param_by_name(light_device, "Color"))->val.i);
Here is what log of the ESP IDF monitor when it receives a message from the app to change color from 292 to 100:
I (14521) app_main: current rmaker color value = 292
I (15021) app_main: current rmaker color value = 292
I (15471) esp_rmaker_param: Received params: {"Mididesign.io Logo Light":{"Color":100}}
I (15481) app_main: Received write request via : Cloud
I (15481) app_main: Received value = 100 for Mididesign.io Logo Light - Color
I (15491) esp_rmaker_param: Reporting params: {"Mididesign.io Logo Light":{"Color":100}}
I (15521) app_main: current rmaker color value = 100
The value returned by esp_rmaker_param_get_val changes correctly and does not revert. However the value displayed in the app slider always eventually moves back to the position it was in when the device powered on.
Re: ESP Rainmaker App reverts to old param values
In my previous reply I had not yet noticed the Rainmaker tab in the explorer that displays the current values.
I can confirm that the values in Rainmaker Cloud do NOT update at all - this is clearly why the app values are reverting. However I am not sure how to fix this. I was under the impression that the line:
in my Rainmaker callback function would properly update the Cloud parameter.
My calls to esp_rmaker_param_update_and_report return ESP_OK so there isn't an error there.
This issue is applying to all parameters including power, meaning none of my updates are properly making it to the cloud. So all the parameters in the app revert back to whatever they were initialized to in esp_rmaker_param_create.
Another point of interest is that if I go to https://dashboard.rainmaker.espressif.com/home/nodes and sign in as the same account that I am signed into Rainmaker on in VSCode, I don't see any devices or nodes at all. I'm not sure if I should be able to though.
I can confirm that the values in Rainmaker Cloud do NOT update at all - this is clearly why the app values are reverting. However I am not sure how to fix this. I was under the impression that the line:
Code: Select all
esp_rmaker_param_update_and_report(param, val);
My calls to esp_rmaker_param_update_and_report return ESP_OK so there isn't an error there.
This issue is applying to all parameters including power, meaning none of my updates are properly making it to the cloud. So all the parameters in the app revert back to whatever they were initialized to in esp_rmaker_param_create.
Another point of interest is that if I go to https://dashboard.rainmaker.espressif.com/home/nodes and sign in as the same account that I am signed into Rainmaker on in VSCode, I don't see any devices or nodes at all. I'm not sure if I should be able to though.
Last edited by mdesigner on Tue Nov 23, 2021 1:42 pm, edited 1 time in total.
Re: ESP Rainmaker App reverts to old param values
Reply 3/3 (Please approve them all so I dont look crazy)
I have fixed the issue by adding after in my callback function.
However, the documentation says not to use in this manner and I have no idea why param_update_and_report fails to update the cloud but report_node_details does. Any idea why this would be happening? Both functions return ESP_OK.
I have fixed the issue by adding
Code: Select all
esp_rmaker_report_node_details()
Code: Select all
esp_rmaker_param_update_and_report(param, val)
However, the documentation says not to use
Code: Select all
esp_rmaker_report_node_details()
-
- Posts: 16
- Joined: Mon Oct 25, 2021 4:15 am
Re: ESP Rainmaker App reverts to old param values
From my understanding, App basically send messages directly to the Node(via cloud or local control). The Node would then have to process the param itself and update the cloud with the new values.
Phone --(write)--> Node --(write)--> Cloud ---(read)---> Phone
If you use the app to update a param then that value is sent to the Node. At this point you should assign a "write callback" that handles that new param value(hue slider). Before returning from the callback make sure to update the param from the node by using function.
Correct me If I'm wrong
Phone --(write)--> Node --(write)--> Cloud ---(read)---> Phone
If you use the app to update a param then that value is sent to the Node. At this point you should assign a "write callback" that handles that new param value(hue slider). Before returning from the callback make sure to update the param from the node by using
- esp_rmaker_param_update_and_report()
Correct me If I'm wrong
-
- Posts: 309
- Joined: Wed Feb 20, 2019 7:02 am
Re: ESP Rainmaker App reverts to old param values
Hello,
Thanks for sharing the logs. Seems that the "." in the device name is the culprit in this case. The parameter update handling logic treats the dot as a special delimiter and so the update fails in the cloud backend. For the time being, an easier solution would be to not use dots in the device name. We will find a solution for this and fix in the backend soon.
Note that this name and the user visible name in the apps or Alexa/GVA need not be the same, since the user visible editable name is a separate parameter of type esp.param.name.
Thanks for sharing the logs. Seems that the "." in the device name is the culprit in this case. The parameter update handling logic treats the dot as a special delimiter and so the update fails in the cloud backend. For the time being, an easier solution would be to not use dots in the device name. We will find a solution for this and fix in the backend soon.
Note that this name and the user visible name in the apps or Alexa/GVA need not be the same, since the user visible editable name is a separate parameter of type esp.param.name.
Re: ESP Rainmaker App reverts to old param values
Amazing. Thanks Piyush, I would not have figured that out. Will be easy to remove the offending ".".
Re: ESP Rainmaker App reverts to old param values
There is a way to get the UI name ? I want to use it to alerts.ESP_Piyush wrote: ↑Tue Nov 23, 2021 4:50 pmHello,
Thanks for sharing the logs. Seems that the "." in the device name is the culprit in this case. The parameter update handling logic treats the dot as a special delimiter and so the update fails in the cloud backend. For the time being, an easier solution would be to not use dots in the device name. We will find a solution for this and fix in the backend soon.
Note that this name and the user visible name in the apps or Alexa/GVA need not be the same, since the user visible editable name is a separate parameter of type esp.param.name.
-
- Posts: 309
- Joined: Wed Feb 20, 2019 7:02 am
Re: ESP Rainmaker App reverts to old param values
If you use `esp_rmaker_param_update_and_notify()` to raise a notification, the phone app indeed reads the corresponding custom name to show in the notification.
Who is online
Users browsing this forum: No registered users and 6 guests