openHAB 2 has arrived
In this post, Kai Kreuzer, founder of openHAB.org and Project Lead of Eclipse SmartHome, announces the release of openHAB 2.0, the first openHAB release based on Eclipse SmartHome, and reveals what’s under its hood.
This release replaces openHAB 1.8 as the officially recommended runtime, only the openHAB 1 compatible add-ons will be further maintained. They are now available in version 1.9.0 and can be used on existing openHAB 1.8 installations. We have reached far more than 200 add-ons in this package by now and most of them can also be used in conjunction with openHAB 2 (see below).
Back in 2014, our goals for openHAB 2 were the following:
- Better support for low-end embedded hardware
- Simpler setup and configuration possibilities for “regular” i.e. not tech-savvy users
So what have we achieved?
With respect to embedded systems, the evolution of hardware was quicker than us, which made our goal almost obsolete. While in 2014 many users were using a Raspberry Pi 1 which was not ideal for openHAB regarding system performance. Now in 2017, almost everyone has upgraded to more powerful boards like the Raspberry Pi 2/3 or the PINE64, where CPU power is no longer a problem. As a matter of fact, openHAB 2 runs very decently on such boards, even for large installations.
Constrained hardware resources are therefore merely still an issue for commercial platforms. Besides the free openHAB, there are other solutions being built on Eclipse SmartHome, like e.g. QIVICON of Deutsche Telekom. The shrunken core framework of Eclipse SmartHome proves its worth on such solutions. As a demonstrator, there is a sample solution packaging available, which uses Eclipse Concierge as a low-footprint OSGi framework and only has an overall size of only 20MB and which requires less than 128MB Java heap.
Usability has been addressed on many different levels and version 2.0 only marks the beginning of these efforts, upcoming versions 2.x will continue on this path.
Setup through a user interface
All newly introduced APIs and features are designed in a way that they enable setup and configuration through user interfaces.
- After a first start, the user can choose an initial installation package to start with. These packages define common sets of functionality for different user types. Additional add-ons can be installed at any time through the UI by a single click.
- A major feature of all newly introduced bindings is the device discovery, i.e. the bindings will scan themselves the network/system for supported devices and offer them to the user. This heavily simplifies the integration of devices in openHAB.
- A new rule engine has been created, which allows building simple rules through a UI, similar to IFTTT, but with the big difference that no cloud connection is required as everything is executed locally.
- A new UI called HABPanel has been introduced, which provides flexible dashboards for tablets, which can be created and modified fully UI-driven. HABPanel is specifically well-suited for wall-mounted displays.
These features together allow for the first time a purely UI-driven setup of openHAB – but it must be said that this only covers a small fraction of the capabilities of openHAB. A core strength of openHAB is its flexibility and the possibility to cover all kinds of special – sometimes really weird – individual use cases. To do so, the textual configuration, as known from openHAB 1, is still required and recommended.
While these new features for beginners have been introduced, a focus has also been to have as little disruption for existing openHAB users as possible and to keep and even extend the textual configuration options. No one is forced to use UIs in future, they should be merely seen as an optional alternative. Most functionality of openHAB 1 has, therefore, be retained and only minor changes need to be done to the personal configurations and rules. Specifically, most openHAB 1.9 add-ons can be used as openHAB 2 as it has a built-in compatibility layer.
A major obstacle in the past for many users was also the required setup around openHAB, e.g. installing Linux on the Raspberry Pi, configuring users, shares, ssh, etc. This is all much simpler now through openHABian – a self-configuring Raspberry Pi setup, which starts off with a minimal SD card image. It automatically installs Java, openHAB, Samba and more and optionally even KNXd, Homegear, Mosquitto and others. This is definitely the best choice for Raspberry Pi users!
So what is new in general in openHAB 2? Let me give you a rough overview:
openHAB 2 comes with 130 bindings for different devices, technologies or protocols. 57 of them are using the new 2.0 APIs, so that they support discovery and graphical configuration. The rest are bindings from openHAB 1, which are included in the 2.0 distribution.
Many of these bindings support technologies, which are not supported by openHAB 1. There are e.g. bindings for AllPlay, [email protected], Minecraft, Russound, Z-Way and even Tesla, just to name a few.
Many other are currently under development or queued for review, so we can expect to reach 200 bindings by the end of this year.
- The visually outdated Classic UI (which is still available as an option) has been replaced by the much more modern Basic UI.
- While being an external project for openHAB 1, HABmin has meanwhile become an official part of the project and is a very powerful administration tool, especially suited for Z-Wave users.
- The new Paper UI is the main interface for doing UI-driven setup and configuration.
- HABPanel is another new web UI, which specifically focuses on nifty dashboards on tablets.
- Besides Android and iOS, there is now a native client for Windows 10 (Mobile) available in the official Microsoft App Store.
Besides the bindings, which integrate external system in openHAB, the opposite is possible as well: To include openHAB in an external system:
- A very simple integration in Amazon Echo is possible through the Hue emulation add-on. This mimics a Philips Hue bridge and can also fool some other 3rd party apps that exist for Philips Hue.
- The HomeKit add-on makes openHAB appear in iOS as a not-certified device that, once added, allow the use of any hardware from within HomeKit/iOS.
- IFTTT integration is now offered through the new myopenHAB service that is operated by the openHAB Foundation.
- Text-to-Speech and other audio playback can now be directed to remote devices (such as connected speakers). Already supported are e.g. Sonos speakers, Onkyo receivers, Chromecast and the Kodi media center.
Besides the classic zip archives as well as the APT packages for Linux, there are by now many further alternatives how to get hold of openHAB. (Please note that only openHABian is available from today on, the other types of packaging of the final 2.0 version will follow in the next days):
- openHABian: A hassle-free setup for the Raspberry Pi, starting off a minimal SD card image.
- PINE64 image: A pre-installed openHAB setup as an SD card image.
- Docker: A Docker container, available for both x86 and ARM architectures.
- Synology-NAS: Packages for the popular Synology Diskstations
- QNAP-NAS: Likewise, there are installation packages available for QNAP.
- Ubuntu Core Snap: Snaps for the new Ubuntu Core
Overall, openHAB 2.0 is a huge step forward and I would like to thank all the new contributors and maintainers that have joined the project recently, as without them none of this would have been possible. Today’s release 2.0 is just a first step and many more things are to be introduced with upcoming 2.x releases – so stay tuned!
This post was originally published on Kai Kreuzer’s personal website.