Ages ago, I wrote that the choice of controller was the crucial thing in a HA system, possibly more important than the choice of protocol. This is still true, despite all the talk of interoperability; manufactures are still launching products that come with their own ‘app’ but little in the way of open API’s or developer documentation.
This is hardly surprising, according to Gartner Home Automation (and the amount of money spent on it) is only going to grow, so everybody is pitching in and trying to grab their own little corner of the market; and not everybody is opening up their platforms to developers.
So when I originally chose a controller I was looking for something that would work straight away and not require lots of setting up, but would allow for a wide range of protocols to be used. Micasa Vera Lite (now known as just Vera Lite) fitted the bill perfectly, and I’d still recommend it as an easy to use device. But over time, I wanted to get into the guts of the system and start writing my own plugins (note – this is perfectly possible with Vera, however their plugin system is based around LUA, which I don’t have a lot of experience in).
So I’ve moved over to OpenHAB, a Java based software project, based at http://www.openhab.org. This is an OSGi application, which means that it allows you to expand the core functionality with a series of plugins. In OpenHAB terminology, a plugin that allows you to talk to hardware is a ‘binding’.
If you have a look at the OpenHAB website, you will see that there are two versions of the project. Version 1 (the current stable version), is unashamedly for the techies amongst us. Although it provides UI’s to use the system, all configuration is done via editing files and configuring things by hand. Version 2 will address this issue, by providing the web based controls to setup a complete system and easily editing the automation rules.
The other change happening with version 2, is that the core engine will be Eclipse’s SmartHome project (in fact it would be more accurate to say that Eclipse’s SmartHome project is the core of OpenHAB). The advantage of doing this is that if any other supplier uses the same engine, then the plugins and protocol bindings could be re-used across projects. Whether this actually works in practice remains to be seen, but the theory is good.
The current advice, for people wanting to deploy a new system, and getting it working with different bindings is to use version 1, personally, I don’t expect version 2 to be usable until 2016 (at the earliest); although the latest build looks good, there is still a lot of work to be done converting all the plugins and bindings to the new model.
Setting up a simple system is easy, unpack the zipfile, configure your environment, then run the server (instructions are available here).
Coming next, installing plugins.