I have been working on a prototype home automation system which will run on a raspberry pi and be fed commands from Arduino sensors. I have started working on a new design and need feed back and ideas. Conceptually its very simple and made to be quite distributed and although I currently only plan to implement this as a C application I eventually want to provide language bindings to make configuration a breeze.<p>There will be 4 main components, Triggers, a listener and marshallers.
The triggers are things like temperature sensors, bluetooth scanners, etc.
A Listener converts Triggers into Actions.
A Marshaller tells the right device to preform an Action.<p>A typical use case would be a single RPi running a Listener Server with configured Marshallers, a bluetooth scanner on an Arduino board and a motor attached to the Paspborry Pi GPIO. A plugin which is capable of controlling the motor would register its type and UUID with the Marshaller on load and the commands it can receive (up, down).<p>The bluetooth scanner would tell all listeners on the network when it encounters a device which it has been paired by triggering a "bluetooth.device_found" event. This would then be converted into a "door.unlock" action by the listener and added to a queue (Redis or Darner seem like a good option). The marshaller would would then issue an "up" action to the plugin.<p>If you are keen on helping out let me know, all feedback is welcome as well!<p>I plan on using:
www.c-pluff.org
libev.schmorp.de
http://code.google.com/p/protobuf-c/
https://github.com/wavii/darner
I was thinking in buil a similar system... the rpi working as web server and "talking" with the arduino via USB connection. But i'm in trouble with the Rpi script/programation... the arduino side is quite easier for me. could you help me with your project and code?? (jorgefnarciso [at] hotmail.com)<p>Thanks