Automate and monitor the physical systems in your home
What We Learned
We just built this system, so we don't have a lot of interesting stories to tell (yet), but we do have some hardware concerns. In the past, we've seen well-tested systems from other manufacturers burn out during electrical storms. One hopes this system is insulated well enough, and the Ruggeduinos should help. Additionally, we don't know how the Pis will hold up over time. We've run Pis without reboots or crashes for days and months, and one Pi for more than a year, but that's not much testing. We hope the Pis will run for many years.
Surprisingly, defining and testing the system was easy. Working at an abstraction level that uses just devices, wires, and signals was very natural, and it made defining and setting up the system a smooth process. Most of our time and skills were spent solving problems we wanted to solve, not fighting with tools.
By far, the hardest part of building the system was selecting the right physical components and installing the finished units. The web is a great resource, but it takes a long time to find the right parts when you are not exactly sure what is out there, who makes them, or what to call them. Maybe someone can make a good Pi application for doing this – I'd be interested.
When defining the system, we always asked ourselves, "What if this wire broke or the Arduino or Pi went down?" These sorts of questions are hard to answer because they take you into areas in which you don't have all the answers. Even if we couldn't say exactly what would happen, we always tried to be sure we could answer an easier question: "Would something annoying happen? Or something disastrous?"
Whenever we introduced a relay, we always made sure that if the relay stuck, the house would still be OK. If you can shut down a cooling pump, make sure the device being cooled will shut itself down safely if it overheats. If you can shut off your water supply, make sure nothing that depends on it will break. Also, even if something just has the potential to be really annoying (and not disastrous), consider adding a bypass switch, so you can easily get your system up and running (albeit in a manual mode). It's no fun being miserable.
Wiring in the Future
Big changes may be coming to the wiring industry. Perhaps future wiring will go something like this: Install an embedded Linux controller (a Pi?) in the utility closet. Let the controller monitor every wall switch. Let the controller control every light.
All the control and monitoring could be done over cheap twisted pair wiring. Even better, instead of using wires to monitor light switches, make every light switch a self-powered radio, and stick switches onto a wall whenever and wherever you want, in seconds . Also, let every light bulb have wireless switching and dimming built in.
Wiring lights and switches becomes almost cookie cutter simple. All that needs doing is getting power to your lights. Next, stick your switches wherever you want them, sit down at your computer, and define which switches do what. If you want to add timers or make switches smarter (e.g., one touch is one light, two touches is the other light, and three touches is both lights), you can do that, too. Internet control and monitoring of your system comes free.
With these systems, you can save money on the physical wiring (easier for the electrician, fewer questions, no expensive wires going between light switches and lights), and you can easily expand the system (just slap a switch on a wall or tie a light into a power line) into something that has all the capabilities of today's systems along with many more.
- Catalina Computing: http://catalinacomputing.com
- Virtual Wiring: http://catalinacomputing.com/download
- Virtual Wiring documentation: http://catalinacomputing.com/docs/Documentation
- Ruggeduino: http://www.ruggedcircuits.com
- Firmata: http://playground.arduino.cc/Interfacing/Firmata
- Arduino software download: http://arduino.cc/en/Main/Software
- Aussie Shield: http://www.ruggedcircuits.com/breakout-boards/aussie-shield
- PiGlow boards: http://shop.pimoroni.com/products/piglow
- State machines: http://www.catalinacomputing.com/docs/Devices/VirtualDevices/StateMachines/StateMachinesDevice
- Device documentation: http://www.catalinacomputing.com/docs/Devices/Devices
- EnOcean: http://www.enocean.com