open Home Automation Bus (openHAB) is an open source
home automation
Home automation or domotics is building automation for a home. A home automation system will monitor and/or control home attributes such as lighting, climate, entertainment systems, and appliances. It may also include home security such ...
software written in
Java
Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
. It is deployed on premises and connects to devices and services from different vendors. As of 2019, close to 300 bindings are available as
OSGi
OSGi is an open specification and open source project under the Eclipse Foundation.
It is a continuation of the work done by the OSGi Alliance (formerly known as the Open Services Gateway initiative), which was an open standards organization fo ...
modules. Actions, such as switching on lights, are triggered by rules, voice commands, or controls on the openHAB user interface.
The openHAB project started in 2010. In 2013, the core functionality became an official project of the
Eclipse Foundation
The Eclipse Foundation AISBL is an independent, Europe-based not-for-profit organization that acts as a steward of the Eclipse open source software development community, with legal jurisdiction in the European Union. It is an organization supp ...
under the name Eclipse SmartHome. openHAB is based on Eclipse SmartHome and remains the project for the development of bindings.
According to
Black Duck Open Hub
Open Hub or Black Duck Open Hub (formerly Ohloh) is a website which provides a web services suite and online community platform that aims to index the open-source software development community. It was founded by former Microsoft managers Jason ...
, it is developed by one of the largest open-source teams in the world. It also has an active user community.
Features
Installation and runtime
OpenHAB requires a
JVM
A Java virtual machine (JVM) is a virtual machine that enables a computer to run Java programs as well as programs written in other languages that are also compiled to Java bytecode. The JVM is detailed by a specification that formally descri ...
and can be deployed on servers running various operating systems, a dedicated
Raspberry Pi
Raspberry Pi ( ) is a series of small single-board computers (SBCs) developed in the United Kingdom by the Raspberry Pi Foundation in collaboration with Broadcom Inc., Broadcom. To commercialize the product and support its growing demand, the ...
instance, or some
network-attached storage
Network-attached storage (NAS) is a file-level computer data storage server connected to a computer network providing data access to a Heterogeneous computing, heterogeneous group of clients. In this context, the term "NAS" can refer to both th ...
systems. The required bindings can be added at runtime via OSGi. OpenHAB supports a number of persistence backends for storing and querying the smart home data, including
relational and
time series
In mathematics, a time series is a series of data points indexed (or listed or graphed) in time order. Most commonly, a time series is a sequence taken at successive equally spaced points in time. Thus it is a sequence of discrete-time data. ...
databases. By default openHAB uses rrd4j for persistence.
Discovery and configuration
After installation, openHAB scans the local network and discovers devices that can be included in the smart home solution. Users can provide credentials and meaningful device names via an administration user interface.
Things and Items
Since major version 2 of openHAB the connections to physical devices is split in 2 levels. "Things" are the interface elements to a specific physical device (e.g. an interface to a home automation network like
KNX,
Z-Wave
Z-Wave is a wireless communications protocol used primarily for residential and commercial building automation. It is a mesh network using low-energy radio waves to communicate from device to device, allowing for wireless control of smart home d ...
or
Zigbee
Zigbee is an IEEE 802.15.4-based specification for a suite of high-level communication protocols used to create personal area networks with small, low-power digital radios, such as for home automation, medical device data collection, and oth ...
). Within these things, one or more "Items" can then be defined or discovered. These "Items" correspond to one specific component like a relay controlling a light, the desired temperature of a heating system or a dimmer percentage.
Sitemaps
Sitemaps allow the user to determine how the devices in the smart home are arranged. A sitemap groups devices by floor and room and determines how they are visualized and controlled. The following example illustrates what a typical sitemap definition might look like:
sitemap demo label="My home automation"
User interface
Once the system is configured, openHAB users can view data and perform actions using a number of user interfaces. These include a browser based interface as well as apps for
Android,
Windows 10
Windows 10 is a major release of Microsoft's Windows NT operating system. The successor to Windows 8.1, it was Software release cycle#Release to manufacturing (RTM), released to manufacturing on July 15, 2015, and later to retail on July 2 ...
, and
iOS
Ios, Io or Nio (, ; ; locally Nios, Νιός) is a Greek island in the Cyclades group in the Aegean Sea. Ios is a hilly island with cliffs down to the sea on most sides. It is situated halfway between Naxos and Santorini. It is about long an ...
. All of these UIs are defined by the sitemap mechanism.
Rules
An
event, condition, action rule-based system is used to automate the smart home. The following example turns off a light once the sun rises at the configured location.
rule "Start wake up light on sunrise"
when
Channel "astro:sun:home:rise#event" triggered
then
switch(receivedEvent.getEvent())
end
openHAB Cloud
OpenHAB Cloud is a companion cloud service and backend for openHAB. It provides secure remote access and enables openHAB users to remotely monitor, control and steer their homes through the internet. The openHAB foundation provides a demo system without SLA guarantees.
Version 3 improvements
In 2020, the code was forked for a major rework, separating to 2.5 version from the upcoming 3.0 branch. Apart from some technical code changes (e.g. use of
Java 11
The Java (programming language), Java language has undergone several changes since Java Development Kit, JDK 1.0 as well as numerous additions of class (computer science), classes and packages to the standard library (computer science), libr ...
), several functional improvements are foreseen:
* the UI is unified, and pages (previously managed in sitemaps) are now managed in the openHAB designer.
* User and group management will be available to control who can use specific parts of the UI.
* Rules and scripts are extended and can be edited directly in the openHAB designer.
The main drawback is that backward compatibility to openHAB add-ons for version 1 is dropped.
Version 3.0 has been released as of 21 December 2020.
Security
Many security and privacy concerns have been raised with home automation and
IoT in general. OpenHAB's on-premises engine and open source character are answers to these concerns.
However, it was criticized for its use of default configurations.
Reception
OpenHAB won the IoT Challenge 2013 and the
JavaOne
__NOTOC__
JavaOne is an annual conference first organized in 1996 by Sun Microsystems to discuss Java technologies, primarily among Java developers. It was held in San Francisco, California, typically running from a Monday to Thursday in summer m ...
Duke's Choice Award 2013. It was nominated for the JAX Innovation Award 2014 and was the People's Choice Winner at the Postscapes IoT Awards 2014/15.
See also
*
Home Assistant
Home Assistant is free and open-source software used for home automation. It serves as an integration platform and smart home hub, allowing users to control smart home devices. The software emphasizes local control and privacy and is designed ...
, another popular open source home automation software
*
List of home automation software
References
External links
*
* {{GitHub, openhab
Home automation
Internet of things
Smart home hubs