Values are not updated on the screen in a timely fashion, especially slow on Android.
I use an array of text editor controls to configure the profile for one day/one room of a heating system. There are 8 rows and two columns for time and temperature. I use discrete attributes (16 in total) called progTime0,progTemp0, . . . . . . . .progTime7, progTemp7
I edit a value in the text editor. The mqtt plugin picks up the new value against the attribute name eg progTemp1. the text editor continues to show the value I just typed in which may not be formatted consistently. (eg I may type 20 instead of 20.0C)
Code in the plugin triggered by the change parses the info, formats it correctly ( eg 1 decimal place for temperatures) rebuilds the info, sorts the time slots into order and then updates all the 16 attributes with the new values.
The problem I have is the table of text editors takes a variable amount of time to refresh with the new parsed and sorted values. The values always do update eventually - but can take a long while to do so.
The home remote designer simulator is generally better and mostly has instant refreshes. The android app usually takes up to 10 seconds to refresh.
I have tried:
app refresh. That tends to scramble the screen and leave most text editor fields as blank so don’t understand whats happening there.
in onRefresh() in the mqtt plugin I find if I add the line device[attribute] = value I find this helps but doesn’t fix the issue. (This line isn’t actually needed functionally as code that runs subsequently will overwrite the device[attribute] with the correctly sorted and parsed value. Adding it does seem to make the delay go away sometimes.)
In my parsing and sorting code in the plugin I try setting the attributes to zero length strings and then overwriting with the final values. this also helps a bit bit doesn’t fix the android app delays