- I have a custom device configuration text field that is set to default value "0".
- In getDeviceConfigUiValues() , I check to see if the value is the default value.
- If it's the default value, I populate it with a value from the server (in this case, lat/long).
- The next time I open the config dialog and edit the text field, changes to these fields aren't saved (but changes to other fields are saved properly).
Although the textfield established the control as a string, when the valuesDict (changed in getDeviceConfigUiValues) was returned, the prop type was set to real. When trying to change the prop later via the config dialog, changes to lat/long wouldn't take because the new value was a string. Once I changed my code to write the lat/long values to valuesDict in string form, I got the behavior I expected. By inadvertently saving the data to valuesDict as floats, I pretty much locked down that field from future changes. Chased my tail for a while on that one.