openHAB - The Product Vision
In this series of blog posts we introduce you to the openHAB project. This first blog is about openHAB from a product perspective. We will for instance discuss the goal for which openHAB was created and in what context it operates. In the second post we dive into openHAB’s architecture. We discuss the software quality and evolution of code in the third blog, before we end the series with our final and fourth post where we learn more about the OSGi framework and how openHAB makes use of it.
Table of Contents
Automatically turning off the lights and heating when you leave the house, getting a notification if you forgot to lock the door, and pause your movie when the doorbell rings. These are some ideas to make your house smarter. Home automation is a trend, which is reflected by the enormous amount of Internet of Things (IoT) devices available. One can choose to use Philips Hue in combination with Amazon Echo to control the lights through speech or use Somfy devices to open the blinds automatically in the morning. Since the options are endless, there is the need to keep an overview with a single interface and connect the devices with one another.
The openHAB (open Home Automation Bus) open-source software enables integration and automation of different technologies and systems to enhance existing solutions and improve the user experience. The openHAB project started in 2010 by Kai Kreuzer and has been an ongoing project ever since. The modular design of openHAB’s architecture enables the community to extend support for different IoT devices easily. The current numbers are 325 add-ons and 2591 devices with more being added every month1.
Home automation can be split into two views. The first and most apparent is the
physical view which consists of the actual devices, connections, and operations it can perform. For example, Philips Hue2 offers lights controlled via a central hub using a Zigbee or Bluetooth protocol, while some other smart lamps can operate independently through WiFi.
The (end) user can interact with the
physical view using the
functional view. Here, the system’s physical elements can be controlled through a user interface so that the user can control the devices, set routines, etc. The
functional view translates the user’s actions to the
physical view to affect the software associated with the physical devices.
openHAB tries to take as many physical systems as possible and creates a
functional view that can control all these physical devices through a single interface.
openHAB tries to achieve a unification of systems through the use of an event bus that other applications can be connected to and controlled by it. The openHAB system is built to accomplish the ability to integrate other devices and systems used for home automation into a single solution. openHAB also tries to achieve a uniform user interface and allows the user to easily add new systems and devices to the platform with a common approach. Most importantly, the main objective of openHAB is to allow any kind of home automation to be possible on its platform.
The name openHAB provides a hint as to the context in which it operates.
open for being an open-source project and
HAB, which is the abbreviation of Home Automation Bus. First, we will get into the
Due to the rise in popularity of (low-cost) internet-connected devices, many new vendors have created devices that follow different standards. Although on their own they usually function well, these devices are often hard to combine. This issue is what openHAB tries to solve.
By utilizing the open-source community to develop interfaces between thousands of IoT devices, openHAB can support many more devices than any privately developed system can.
Scope and Responsibilities
The open-source aspect of this project help us define the following scope and responsibilities:
- Provide openHAB software which has..
- Interfaces for displaying and controlling devices
- Generic and easily extensible APIs to provide support for all hardware
- A rule engine for defining automated tasks based on time, events, or sensor data
- Support for a multitude of different platforms with pre-built binaries
- Provide documentation for..
- Installing the openHAB on different platforms
- Configuring openHAB
- Writing support for hardware and new features
- Educate the public on.. (through the openHAB Foundation)
- Free and open smart home solutions
- Their vision on creating system-wide, multi-vendor interoperability
- Free software in general
Since openHAB has become one of the industry-leading home automation suites, it has gathered the interest of people even outside the do-it-yourself community. Although the software has become far more comfortable to use since its inception, it is still far from a plug-and-play solution, which means many end-users will not be able to configure it themselves.
When asked if it was possible for a company to sell the service of configuring openHAB to end-users, openHAB founder Kai Kreuzer said the following3:
openHAB is done by and for the community and in contrast to any commercial solution, it is positioned to be free and totally open. There are definitely no plans to commercialise openHAB in any way.
He later acknowledged that configuring openHAB was “tedious” and could result in “swearing a lot”, but his vision for the solution did not include selling the service of configuring. His vision was more along the lines of selling ready-made kits to provide a jump start for tinkerers.
Funding and the openHAB Foundation
Although openHAB is free and open-source and unpaid developers are developing it, it is not free to run servers, organize events, pay for publishing apps on various platforms, and more without any commercial intent. For this purpose, they have started the openHAB Foundation e.V.
The openHAB Foundation e.V. is a non-profit organization registered in Germany with the “mission to educate the public about the possibilities and benefits of free and open smart home solutions”4. This foundation receives donations through their websites which are used to provide the following services:
- Infrastructure and Marketing
- Reference documentation
- Online demo
- Reference apps and plugins
- Organizing events
The intention of these efforts is to promote free and open-source software use and to inform the public about the benefits of such software. Unfortunately, they do not transparently provide information about the number of donations received, which goes against the software’s open nature.
The stakeholders that we identify are listed in the table below.
|Acquirers||Eclipse Foundation||Acquirers oversee the procurement of openHAB. OpenHAB is part of the Eclipse Foundation.|
|Assessors||GitHub Community and Bots||There is no clear assessor for the openHAB, although there is a clear approach to ensure legal regulations. Every contributer has to sign a Contributer License before contribution and sign off every commit.|
|Developers/Maintainers||GitHub Community||A developer of the system is anyone who contributes (let it be code reviews, commits, etc.) to one of the repositories on GitHub. As the project is open source, theoretically anyone is able to be a contributor.|
|Testers||GitHub Community||openHAB let’s contributors test their software, but enthusiastic users can try out beta versions.|
|Translators||Crowdin||Crowdin is a localization management platform where products can be translated using crowdsourcing.|
|Support Staff||openHAB Community Platform members||On the openHAB Community Platform people can ask for and provide support.|
|Suppliers||Java, Github, Jenkins||openHAB uses quite some suppliers to assist with the development, maintenance and testing, Java, Github and Jenkins are only a few of them|
|Users||People with an interest in automating their homes||The users of openHAB are people who are enthusiastic about home automation, use multiple systems, and have the knowledge to set everything up. Due to the latter, many of the users have a technical background.|
|Sponsors||openHAB foundation||Through the openHAB foundation, anyone can donate to the project.|
|Competitors||Home Assistant, Google Home, Apple Home Kit||Another popular open source home automation software is the in 2013 launched Home Assistant. Google Home and Apple Home Kit are platforms.|
Begining of openHAB
The openHAB project launched in 2010 with version 1. In 2013, openHAB became an official project of the Eclipse Foundation5.
Release of version 2
In 2017 the second release op openHAB arrived, with the main goals to support low-end embedded hardware and to have a simpler setup process. The second release was more modular and had compatibility with version 16.
Release of version 3
In December 2019, a new version of openHAB came into production. The compatibility layer with version 1 was removed for simplification, and a large amount of refactoring was done to keep it modern, maintainable, and future-proof7.
With the recent release of openHAB 3, the developers are working on multiple initiatives. The main projects are the removal of the Eclipse trademark, the new default UI, and the switch to Java 11. Besides these initiatives, maintainers are continuously working on new add-ons and bindings 8. A long-term roadmap is not worked on due to the current structure being a collaboration of individuals9.
Many concerns are raised about the privacy and security of home automation. openHAB 2 has been judged on its default configurations in the past5. These configurations did not require credentials in order to receive access. Now openHAB has a strict policy to clarifying these concerns and being completely transparent. On their website they provide an overview of the securing access to openHAB10. openHAB 3 does have authentication in place, but not multi-factor authentication yet. One of the maintainers does express plans for the future11. We think this is definitely something that should be more on the radar.