Jason Baker's recent article on open source home automation tools landed in my RSS feed, and because I recently bought a new home, and am interested in automating some things—or lots of things, really—I read with great interest. In the process, I learned about openHAB, and I was hooked right away. I picked openHAB for my own experimentation because of my slight familiarity with Java. My fellow Opensource.com community moderators may rib me for not finding an alternative written in Perl, but the only one I could find did not have the feature-richness I needed; specifically, it did not have a module for a Nest thermostat.
OpenHAB is an open source automation platform designed to use a pluggable architecture, which means that new devices and protocols can be added easily. This pluggability extends also to the persistence layer, so your system can maintain its state information on your choice of platform
OpenHAB installation on a running Debian server was a snap, as the developers have set up a signed apt repository. Get the signature, make sure that you have Java (or install it to resolve that problem), install openHAB and the demo plugins, and start it up. Setup instructions are available for Linux/OS X, Windows, and FreeBSD-based systems. There's a web client built right in, which looks like a wide-screen mobile client, and clients are available for Android, iOS, and Windows phones, as well.
One thing that immediately impressed me with openHAB was the huge variety of bindings for different devices and services. Virtually every type of home automation hub and protocol is covered; if you have an Insteon-based hub already in place, for instance, openHAB can take over management of the system while using your hub as a communications portal to Insteon and older X-10 devices. Or, if you have a Nest thermostat, you can get information from the Nest and use it to configure roller blinds, attic fans, or other HVAC devices. You can even add a contact to a window (which doubles as a security contact) and when the window is open, flip the Nest into "Away" mode. Networkable UPS units, an Asterisk PBX, CalDAV, an assortment of projectors and other multimedia devices, Philips HUE, Wemo, Plex, Z-Wave devices, and a whole lot more—it's all modular. You set up the bindings and application integrations you want, and then you can have events on one thing trigger others. A few enterprising users have even used Amazon Alexa's Home Automation Bridge to add voice control with Amazon Echo and Echo Dot devices.
One of the interesting modules I found was the Bluetooth binding; it can watch for the presence of specific Bluetooth-enabled devices (your smartphone, and those of your children, for instance) and take action when that device arrives or leaves—lock or unlock doors, turn on lights, adjust your thermostat, turn off security modes, and so on. Add the Astro binding, or a photoelectric sensor, and when you come home at night, it'll turn lights on for you, but not bother during the daytime.
Or picture this: "Alexa, turn on movie mode." The lights dim, roller blinds close, the home theater screen rolls down, the Roku, sound system, and projector all turn on, and your Roku starts its Plex client. I can easily see how all that is possible with the openHAB system; it's modular, so you can add new elements and devices as you get them, without having to have a huge up-front outlay for hardware.
So dream big, and don't worry about having to replace too many of your existing devices. Odds are, unless the device has no electronic interface at all, you won't have to. I'm already plotting all the things I can automate with openHAB in my own home.