The system can be broken down into several large sections, which are described below.
The central server talks with the nodes either over Wi-Fi or, for the simpler nodes, over simple RF. Most of the core software runs here. It contains:
A web interface
Speech recognition using SAPI and some microphones hidden behind the couch
The ghetto router (an Arduino that reads wireless packets from the light switches and writes to the light controllers)
Additionally, the server doubles as a media center and gaming PC, with a touchscreen, mouse, keyboard, and wireless XBox controller receiver.
The mobile interface is implemented in Unity, and inspired by the interfaces used by Flynn in Tron Legacy.
Light switches are integrated with the system in two ways. Most of the light switches will be left as they are (we rent), but their associated outlets will be read, and their states will be sent to the server. Some of them need a bit more functionality (mostly IR input, which will be explained later), and the prototype switch works, but I'll be saving those for when we have a place we can actually modify.
The system communicates with our Fitbits over the API (for getting sleep data, health data, and other user vitals). This data is collated on a custom dashboard and sent to the TV in the bedroom via the Chromecast in the morning (to show sleep data) and at night (to show activity data). The TV is turned on and off by an Arduino-controlled RF blaster at specified times.
Lights are controlled by standard wireless outlet switches. I couldn't be bothered to reverse-engineer the protocol, so I just used the more brute-force method of wiring the remote control directly into the Arduino.
The coffee maker is on the road to a light brain transplant, and the microcontroller will take wireless input from the server and make coffee as requested from the buttons on the front, the mobile app, or the web interface. This will not be in revision 1, because I'm scared of breaking the poor thing, but it's worth mentioning because it works with the idea of a truly smart house.
The sonic screwdriver talks to the server via the various RF detectors hidden around the house, and has both context-sensitive (depending on where the screwdriver is pointed) and global (all lights, etc) effects based on the gesture used.
The monitor mount is a sheet of thin whiteboard that I curved and bolted to the top of my cheap IKEA desk. The curve is held at the bottom by angle brackets, and at the top by an old piece of wire. It has held all six monitors securely in place
The bedside lamp is just a collection of old CCFLs from my case modding days that are tied together and wired to a wall wart concealed in the base. One of the blues is switched off to create a warmer light.