There's a lot in my house that has been modified. Starting outside, one of the very first things I did was link an irrigation system to a software environment. I noticed that the local hardware store was selling electronic timer taps for about $20, and essentially an electronic timer tap takes care of all the mechanical side of things, its got a little bit of electronics in there that turns it on or off and I thought surely I could modify that. So I bought one, opened it up, had a look at the circuits and it turned out to be remarkably easy to modify. All I did was override the circuit entirely so that I could control the tap and simply turn it on or off by sending it an on or off signal from any device. The way I set it up was that if you shorted out two terminals that would put it in the on position, and if you unshort them it turns it off, it was very easy. Once I had it at that point it was a simple matter of connecting it to a relay that you control from a computer, and then you've got yourself an irrigation system that you can control from a software environment.
What else in your home can you control via software?
Pretty much anything! It's such a pain walking to the letterbox to see if you've got mail, so I've setup a system with a simple magnetic switch that detects when the door has been opened which then triggers an event so you can be notified by email to say you've got physical mail. And if you really want to take it too far, which I've actually done just to prove a point, is have the system trigger an event which fires an email into an object in Second Life which creates a virtual representation of an email of a mail.
What kind of software controlled modifications are you planning on for the future?
Most of what I've done so far has been fairly stand alone, just little scripts hacked together. Just recently I started putting together a more centralized control interface for it using a Web interface, and this partly came about because of seeing the iPod Touch from Apple. It's basically a small device, very slim with a large display and a built-in Web browser. And it has wireless connectivity so you can connect to a standard Wi-Fi network which I thought was perfect, because what that means is all I have to do is create a Web interface to trigger these software events and I can have virtual buttons that I could control from anything with a Web browser.
Sign up for Computerworld eNewsletters.