OpenHAB coming to Eclipse as Eclipse SmartHome
Yesterday at EclipseCon, Kai Kreuzer gave a presentation (slides) of OpenHAB, which is a server component for integrating in smart appliances and devices in a home setting and providing a general control mechanism which can be driven from mobile devices, web applications, or scripting systems.
Although OpenHAB was an open-source project initially licensed under the GPL, it has been re-licensed under EPL in preparation for its Move to Eclipse SmartHome. The project provides a Java-based server (which was shown running on a Raspberry Pi at EclipseCon) and which binds to over 40 different bindings, including ModBus, Asterisk, Philips hue, Samsung and many more.
SmartHome is aimed to provide a simple drop-in server where components can be connected and driven from a user interface, whilst allowing a general mechanism to control all components. Although many of these devices may have their own mobile applications, controlling each one of them requires opening a mobile application and they cannot be integrated together. Using SmartHome as the main hub, the devices can all be controlled with one mobile application or website, and scripts can be set up to drive individual components.
The runtime is based on Eclipse Equinox, and the components are represented as OSGi services, which makes it trivial to both extend and script support. they all communicate over an Event Bus, which means that anyone can plug in scripts or bundles that can listen to changes in the environment and modify its data. A persistent item state map builds up a view of the world which changes as the system evolves, which can be used to query the current state of the system instead of just dealing with event-based triggers.
Finally, the Eclipse SmartHome Designer is an Eclipse RCP based application which can provide drag-and-drop configuration of the smart home, along with rules to build the scripts to turn devices on and off.
There is a demo available, and the Eclipse SmartHome review is scheduled for the end of next week.