Home Automation with openHAB – My Setup

openHAB is a great open source solution to home automation. It allows to integrate literally any connected device from any vendor and therefore enables all kinds of devices to speak to each other through the HAB (home automation bus).

In this post, I will present my openHAB setup, i.e. which hardware, software and which bindings I use. This article is the first of a series that guides you through my entire home automation solution. The next one will be about my rules for presence detection.

openHAB and Me

Many years ago, I started with home automation as a hobby using FHEM. At a fist glance, FHEM seems a lot simpler than openHAB but is also way more limited. As the number of home automation systems grow (Intertechno, Philips HUE, MAX!), FHEM wasn’t enough and so I started to try out openHAB.

Up to today, I am more than happy with this decision. openHAB is a great and extendable platform with many contributors that enhance and extend the platform from day to day. For almost every widespread (and not so widespread) home automation solution, there exists an extension (called a binding) in openHAB, that allows to integrate these devices.

As a consequence, it doesn’t matter from which vendor your devices are, you can integrate them with each other and have only one single app on your smartphone to control your entire home. Furthermore, openHAB has a great REST API which allows to control your home by scripts and so on. Therefore it is very easy to use Alfred on Mac to switch on and off lights or to let a light flash if a build has failed. Possibilities are endless.

My openHAB Setup

The core

My openHAB instance is running on a Raspberry Pi 3*. Two CULs, one for 433 MHz and one for 868 MHz are connected via USB. I bought them ready to use from the german company Busware.

The Pi is connected via ethernet to my local area network. Beside of openHAB, a homegear instance, an MQTT broker and a MySQL server are also running on the Raspberry.

The hardware extensions

The 433 MHz CUL allows to integrate very cheap Intertechno plugs* for approximately 10€ per plug. They only allow an one way communication i.e. there is no feedback whether a message was received or not. Hence, they are best used, when the effect of sending a message can be observed directly. I use these plugs for some standing lights where I can directly see whether switching has an effect or not. But in general, the plugs are very reliable. In openHAB, I use the Intertechno binding to integrate these devices.

The 868 MHz CUL is used in combination with the homegear instance and the homeatic binding for openHAB. It allows me to integrate MAX! window sensors*, radiators* and eco switches* into openHAB without the need for an expensive and bulky MAX! gateway.

Furthermore, I have a Philips Hue Bridge* and some bulbs that are integrated via the hue binding.

Other Bindings


The CalDAV binding is used to connect my HAB to a calendar server (I use owncloud) which stores the time schedule for heating automation. In the morning the bath room is heated up depending on an appointment in a special calendar.

FritzBox TR064 + MQTT + MQTTitude

These bindings in combination are great for presence detection, as I will explain in my next post. The FritzBox binding gives information about devices joining and leaving the wifi while the MQTT binding integrates the MQTT broker into openHAB which allows to get geofence information from apps such as OwnTracks*.

MySQL and MapDB

For persistence, I use bindings for MySQL and MapDB.

While the state of all hue and MAX! devices can be obtained from the devices themself, the cheaper Intertechno devices do not provide any state information and therefore their current state is persisted and restored after a reboot. This works well since their state is only changed through the HAB while the state of other devices, such as MAX! radiators and hue bulbs, may change outside, i.e. by rotating the radiator wheel.

Furthermore I have some virtual switches that do not represent any physical device. Their states are also stored in the database.

Persistence bindings are also great to store data sequences such as temperature curves to understand and optimize heating algorithms a bit.

What is next?

In my next post, I will explain my algorithm for detecting presence or absence and how this knowledge is integrated into other algorithms for heating control.

I will also explain my openHAB items in detail and present more of the rules as well as my openHAB sitemaps in future articles.

What about you? Do you use openHAB and what is your experience with it?

Leave a Reply