Customer Configuration and noodles

I am working on an Imp-based device that has a bank of I/O. A schedule for the outputs will be configured by a dedicated iPhone app that will communicate with the Imp. Once the Imp has the schedule, it will run on its own, without the iPhone app and without any of my own server support. The Imp may at times vary the schedule based on various factors (weather, stock price, local inputs, or whatever).

I would like the customer to be able to add a second device, which will operate seamlessly with the first device to add another bank of outputs. I would like the second device to act as a slave to the first–just like the light switch example. Because they all run under a unified schedule, which may be dynamically varied, it would be difficult to distribute the scheduling between the first and second devices–I want the first device to do the scheduling.

There may be more than two devices. Each new device will receive commands from the most recently added device.

To do this, noodles need to be added between the two devices–whenever a particular customer provisions a device, it will need noodles from the most recently commissioned device.

All devices can run the same program–the first device sends a command to the second (through a noodle) to tell it that it is a slave.

So the only thing I’m not sure of is how I will be able to dynamically create the noodles. Will I be able to create them with the iPhone app when it notices it is provisioning a second device? Will there be a server-side tool that will automatically create them? Can an Imp be programmed to create its own noodles to another Imp? Will there be a virtual planner or Imp “space” in which multiple Imps of a single “installation” reside?

I understand that not all of this may be worked out yet–basically just looking for reassurance that it will be possible in some way.

The production interface doesn’t use noodles at all; you get a paired agent that works with the imp to provide the internet I/O.

Using agents, you can definitely do what you want if you use your server to hold the “master” node information for the first device; this would only be accessed when a new slave device was configured and needed to know how to find the master. Doing this without an outside server is currently not possible in any neat way I can think of.

Thanks! When can I start playing with agents?

We’re starting private beta soon; when everything is up (and documented) we’ll open it up to general users. It’s a big shift but really addresses many of the issues people have with hooking the imp up to web services/phones/etc.

Short answer: likely a few weeks.