Topic: Design flaw in "configure.swf" functionality?

I've noticed something counter-intuitive in regards to the "configure.swf" and chumby parameters.

When changing a value in a configuration swf, it changes the value for ALL widgets of the same type no matter which device they are running on.  This issue is really only noticeable when you have multiple chumbies running the same widget.

This creates a variety of issues.  In the case of the Subsonic widget, you become limited to only connecting to one server address across all instances, as well as the bitrate setting being locked to one value for all devices.  The smaller chumbies run a bit better using a lower bitrate, but I can't set this individually per device using chumby parameters.  I also can't store device specific settings.  Any setting change appears to update "globally" across devices, which seems strange.

Why is the config set up like this?  It seems it would make more sense for each config setting be specific for the instance of the widget on that specific device.  I assume the only option is to have the user create a separate channel for each device, so they end up with "subsonic1", "subsonic2", etc.  I have a feeling that most users don't set up like that.

-dev

Re: Design flaw in "configure.swf" functionality?

Some nomenclature used by the server:

1) widget - a swf fie uploaded by the author
2) widget parameters - a collection of name/value pairs
2) widget instance - a pairing of a widget and widget parameters, added to a profile
3) profile - a collection of widget instances, publicly called a channel

The configuration swf modifies the widget parameters for a given widget instance.  All devices running the same profile get the same widget parameters for any given widget instance.

That's why I can configure the weather widget's zipcode on one device, then add another device and point it to the same channel, it's already configured.

There is no mechanism to store data on the server tied to a particular device, unless you do that yourself. You could, for instance, use parameter names that incorporate the device identifier.  However, if someone removes that device for the system, or switches it to a different channel, the data will remain with the widget instance.