Some objects have settings that can be altered by the user.  For example, a motion sensor has a light_level sensor that can be set so that motion is only triggered when it is darker than a defined value.  These settings are rarely used and generally directly affect how the object functions.

The above "settings" are different than the sub-object elements that I have previously discussed.  Sub-object elements include things like heat and cool setpoints that are more frequently accessed by the user.  These elements also generally have distinct functions from the parent object.

The sub-object element discussion is ongoing, and many good ideas have been proposed.

My question today is, what interface do we provide for altering the rarely used settings?  Currently, I know of the following:

- Subroutines Exposed for Use in User Code - MY COMPLAINT: This is not very user friendly, it is annoying to track down the code and to insert single use code into your user code.

- Voice Commands - MY COMPLAINT: This only works with binary settings.  It also seems to pollute the voice command list.

- Read Table A Definitions - MY COMPLAINT: This works ok when there are only a few settings.  Multiple settings quickly becomes unworkable.

So what can we do?  Is there a system that I am not aware of?  

I was thinking that some common function could be created in generic_item.  Specific modules can then add "settings" to this common repository.  Any changes in the repository would cause a common update routine to be run.  With this code in place, we could then add a web interface.