[Smart Home] OpenHAB 3 Review | Intriguing core design. Niche platform for programmers.

Home Automation platform is my current technology focus; therefore, I’d like to investigate as many options as possible before committing to one. After my obsessive online research, I have decided to go with local dedicated home automation platform/hub for their performance, security and versatility. The main contenders for me are Home Assistant, HomeSeer, openHAB and Hubitat. This is my OpenHAB 3 review from the perspective of general home automation user. The specific version of testing is OpenHAB 3.1.0MS4 with OpenHABian installation.

Background

openHAB stands for open Home Automation Bus, which is an open source home automation platform written in JAVA. It has started in 2010. This platform has a very large, active community development team. According to the Black Duck Open Hub, OpenHAB is one of the most popular project (ref). The primary strength of this platform is relatively large lists of product support that is entirely free. The core system design is robust and limitation is essentially the users capability.

Home Assistant vs. OpenHAB (Black Duck Open Hub)

On December 2020, OpenHAB released its latest major version, version 3. One of the theme of this version sounds like simplification from the underlying architecture to user interface overhaul.

https://www.openhab.org/blog/2020-12-21-openhab-3-0-release.html

One good example for this effort seems official support of Blockly for developing automation logic.

https://www.openhab.org/blog/2020-12-21-openhab-3-0-release.html

I myself is new to OpenHAB and never seen or used Blockly before; however, it is readily apparent how such visual programing tool can aid development in Home Automation platform where relatively short, often distinct logic based programming can take the system into whole new dimension. This is a great example for user friendly interface yet providing a level of control that no traditional UI with drop down boxes can achieve. The competing platform like Home Assistant users has been requesting this feature (ref, ref).

Modular design and Semantic Modeling

As a new, general user perspective two aspects of the openHAB design stood out to me: modularity and semantic modeling. Both are what’s keeping me coming back to openHAB platform despite this has been by far the steepest learning curve platform amongst the other Home Automation I have tested so far: Home Assistant and HomeSeer.

Semantic modeling is a cool concept and one can read more detail on the official site. From the novice user point of view, think this as a “tag” organization system for various items within the openHAB. Items can be categorized as equipment and its subtypes e.g. switch, sensor etc. and also categorized based on the location e.g. bedroom, bathroom. They can be nested i.e. subcategorized. For example, my Unifi Doorbell camera is Camera subtype equipment under the First floor > entry location. Home automation platform users most likely have tons of devices and each devices having tons of properties/features; therefore, one can easily have 100’s to 1000’s of items. Therefore, being able to organize them in multiple ways are not only nice feature, it is a required feature.

openHAB design show “modularity” throughout the platform. Home Automation platform by default have modular element due to the fact the system at its core integrates various different vender platforms. Beyond this integration of different products, openHAB shows modular design even at User Interface level, the system has legacy/mobile app user interface, called sitemap. This is independent of current standard, Main UI, which will be accessed through web browsers and Semantic modeling organization will auto populate the main UI. There are other, more advanced UI options as well. For keeping track of the historical data of the item e.g. when was the light switched turned on/off, one will use Persistent add-on and there are different options for this.

You can skip to Review section if you’ve read any of my other Home Automation platform review as below are just introduction about home automation and why I choose local home automation system over cloud based system.

What’s home automation?

Let’s talk about Home Automation itself. Home Automation is an integration of various network connected so called, smart home devices to perform sequences of actions i.e. routine. Amazon’s Alexa, Google Assistant routines or Homekit’s automation function are the examples of home automation.

https://www.apple.com/ios/home/

For example, rather than voice control to just turn on the kitchen light, you can create automation such as when you say “good morning”, the blinds throughout home opens, multiple lights and TV in the kitchen turns on, coffee maker power turns on and unlock front door while turning off bedroom lights and living room fan.

Platform and cloud independence

If big 3 already supports home automation, why do you want home automation hub/controller unit like home assistant (OpenHAB)? There are several reasons but the biggest reason are two forms of independence, platform and cloud.

Platform independence

We live in Apple ecosystem; however, my security camera system is UniFi Protect. Unfortunately, they are not compatible with Homekit. I was able to make UniFi Protect to be Homekit compatible by using a software called, homebridge. This works really well and my Unifi Doorbell can make ring sounds to HomePod minis. If someone is looking for way to make a device Homekit compatible unofficially, my recommendation is try Homebridge first.

However, in my case we have other areas in home with Sonos speakers and not able to hear doorbell ring. So the real automation I like to do is UniFi Protect Doorbell push to announce “someone is at the door” on all my Sonos speakers throughout home.

This is where dedicated home automation hub like OpenHAB plays a role. OpenHAB acts as home automation controller/brain unit and ties otherwise completely independent products from different venders to integrates together and make an automation.

Cloud independence

Cloud independence means home automation runs independent of internet connection. Both Alexa and Google Assistant always use internet connection as that’s where brain of the automation located. Local operation of home automation provide 3 primary benefits.

  1. Reliability: Home automation will continue operating even while internet service is down.
  2. Improved speed/low latency operation.
  3. Security/Privacy: No information sent across internet; therefore, much reduced risk for privacy breech.

Therefore, I am personally only interested in local home automation systems at this time.

Review

When reviewing local home automation hub/platform/system, I look at following 5 elements:

  1. Performance
  2. Integration
  3. Simplicity
  4. Support
  5. Cost

Performance

The performance includes speed, stability and reliability. This is extremely important for home automation. Imagine the situation where you have a motion sensor to turn on stairmlight. If this is unreliable or takes several seconds, it is essentially same as doing nothing and you might as well push physical button.

When it comes to speed, the primary question is how fast local execution work. Needless to say, if any original component uses cloud access, even local home automation system won’t make that run in local. Basically, Alexa integration of the local home automation platform won’t make Alexa to run on your local network.

Gold Standard Matching Latency Performance

Here I have tested both input and output latency using Lutron RadioRA2 switch. Gold standard here is Lutron iOS app as it is the official app from the vender. openHAB instance either on Rasberry Pi 3B or Virtual Machine running on Intel NUC10i7 with 2CPU and 8GB RAM performed at the gold standard matching speed.

Compatible top speed

OpenHab video streaming support is via its own binding using direct feed from UniFi Protect device’s RTSP and anonymous snapshots. Setting these up was quite a bit more challenge than Home Assistant or HomeSeer, especially first finding out I had to use separate binding. Once figuring it out, the performance itself was matching to the Home Assistant.

Doorbell to Sonos TTS latency test | Reliable and fast

The previous tests were a single step and not a true reflection of home automation. So this time, I used simple but multi-step home automation. The input/trigger action in this case is UniFi Protect Doorbell push. The output is target device doorbell ring event notification. For this test, I used Sonos Roam (wirelessly connected) speaker to say “Someone is at the door” in Japanese.

This worked well and fairly fast. However, relatively speaking when Doorbell ring announcement are set on both Home Assistant and OpenHab, Home Assistant response were always ahead even though both platforms are running on the Virtual Machine with same resource allocations on the same hardware unit. This was true even when OpenHab used built in sound play (mp3) rather than TTS. It is of uncertain this subtle speed difference is from the fact openHAB plugin is rather more immature when compared to the Homebridge or Home Assistant versions.

Borderline stability

This is where I would take off points for openHAB 3 from this section. When it comes to reliability, openHAB 3 came a bit short. I have encountered several occasions of sudden/unexpected disconnecting devices including UniFi camera, Lutron individual switch, and main controller. Whenever this happens I have checked Home Assistant for the same entities and they were always available. When the disconnect happens, most of the time all I had to do is stop and restart the affected THING so the fix is not difficult but certainly annoying. Sometimes, I know the exact reason e.g. manual rebooting of Lutron main controller for configuration update but Home Assistant recovered quickly within a couple minutes at most. In contrast, openHAB never comes back from the disconnect status.

Buggy software

It is hard to completely separate out whether the software itself is buggy vs. presentation giving pseudo-bug feel. Nonetheless, almost every parts of setup I went through, I have encountered some type of issue. For example, setting up remote access using myopenHAB (official) approach kept giving me errors. One of the issue was as simple as extra “/” at the end was causing problem. This was addressed on the official community forum in the past, but persisted on the latest stable version I installed.

Another example is log viewer broken link. This supposed to aid debugging so not having this functionality was a bit of major issue. I eventually discovered one of configuration file, only accessible through command line input where it had hard-coded log viewer URL based on my original installation.

Integrations

Analogous to computer, tablet and smart phone application catalogues, home automation platform usability comes down to whether the platform supports smart home devices you own or not. Here the way to connect physical devices to openHAB is called “bindings”. This was called integrations in Home Assistant and plugins in HomeSeer. Below are summary of compatibility spreadsheet I created for my personal smart home devices.

Despite openHAB being older than the Home Assistant and reportedly have more active developer community, openHAB’s binding supports are lagging behind the Home Assistant. For example, UniFi Protect binding do not support direct video streaming so it required me to use separate binding after installation of FFMPEG. MyQ binding was only available if we choose milestone version. Rachio 3 has no easy binding even on openHAB 3 Milestone version at the time of this writing. I could not find Bryant Evolution binding information at all.

Simplicity

The purpose of home automation is to simplify our life. While achieving this goal, many of us are willing to spend time and effort. However, the question is how much of the effort and time? It comes down to ease of setup and use of Home Automation system. My impression about OpenHAB 3 here is a negative side.

OpenHAB Setup

openHAB is written in JAVA and similar to Home Assistant and HomeSeer, it can run on various configuration hardware and OS. openHAB has a specific, starter friendly version called openHABian. openHABian auto-configures to the system during installation and comes in with handy add-ons like Samba share and log viewer. I see this as Home Assistant OS equivalent. Though the difference between openHAB vs. openHABian is far less apparent than the Home Assistant Core to Home Assistant OS.

openHABian is a self-configuring Linux system setup to meet the needs of every openHAB user. It provides:

  • Complete SD-card images pre-configured with openHAB for the Raspberry Pi line of SBCs
  • The openHABian configuration tool to set up and configure openHAB and many related things on any Debian based system

Source: https://www.openhab.org/docs/installation/openhabian.html

openHABian is developed primarily to run on Rasberry Pi platform but it can run on any Debian based Linux. So the latter is the option for those wanting the hardware unrestricted performance version. The overall installation process of the openHABian itself is not much different from the other platforms i.e good documentation, easy to follow.

Device Registration: GUI does not always equal simpler

The default system design for openHAB is that user manually approve each end point items. This decision itself is not a bad thing considering default inclusion/registration of all devices and their corresponding properties i.e. items in openHAB will exponentially grow in number and one can quickly get hundreds and thousands of items.

However, this design decision make user needing to intervene and approve each items. In fact, by default after installing the binding (linking physical device to openHAB), one has to then decide which THING (virtual device representation) to create. After which point, it asks users to create Equipment (Grouping item), assign Location (Grouping item) for each individual property/feature of the THINGS (end-point item). Even though all these steps are supported through UI, it requires many potentially avoidable clicks if proper UI design were in place. As a new user to openHAB3, I felt the overall flow were very unintuitive and unnecessary complicated for this basic functionality.

As a new user to openHAB3, I felt the overall flow were very unintuitive and unnecessary complicated for this basic functionality.

For example, in the typical apps I would have expected setting up of new binding will initiate series of step by step guided screens. Another example lacking of practical GUI functionality is modeling page. Semantic modeling is core design emphasis of the openHAB. This is a way to organize “items” and using this date, openHAB3 autogenerate UI. So setting this up should be as easy as possible. I would have expected simple drag and drag for location/equipment setting.

Another example of lack of flow, I have experienced is on the video streaming setup. One would expect to be able to look stream video immediately when camera entity is registered, but it turned out this is not the case with openHAB3. The UniFi Protect binding did not support it so I was almost ready to give up. But after some time spending, I was able to find that there is an official binding called IPCamera.

Take a guess how the above setup page works. If you can figure out exactly which fields to fill for the first time, kudos to you. In this case, it turned out the third from the bottom, FFmpeg was the key field for RTSP camera stream feeding like UniFi Protect. This component uses the stream video input to produce Snapshot, MJPEG, and HLS converted video stream links. Those links uses the format of [IP address of OpenHAB]:[Specified server port #]. The latter part is what you are filling manually on the middle of screen.

In better designed system, this would have been step by step UI guidance. For example, the first page asks if user has RTSP vs. HTTP camera. Then next screen ask to fill in the RTSP link, and randomly suggest un-used port #. Oh and did I mention that FFmpeg does not come standard even on the openHAbian that supposed to be version coming with the helpful tools.

openHAB taught me just having graphical user interface does not always equates to simpler more user friendly experience. The presentation matters.

openHAB taught me just having graphical user interface does not always equates to simpler more user friendly experience.

Ready to be confused

Every step of openHAB had some point of confusion. To name a few, I was not clear why I had to create a THING and then Equipment, which turned out simply a Group item that itself not necessary have direct function. Why I could not discover any device (turned out I had to install bridge device first). Why I cannot display any live video on my mobile app. It turned out, mobile app interface is specific (technically legacy) UI that is separate from Main UI that one access from web browser. I was looking for historical status of my switch for debugging purpose, but I couldn’t find it anywhere. It turned out, I had to install/setup PERSISTENCE. Sadly, the official community are a bit more for experienced users and I certainly didn’t feel comfortable posting much questions there.

Another example is one can relatively easily set background of cards (UI pieces), but who had guessed this is hard-coded URL. In another word, if don’t have internet access the card background fails to load unless you have locally accessible files. I would expect most reasonably matured product will given UPLOAD file option as default since one of main reason people use these platforms for the power of local, cloud independence.

Limited GUI support of Automation Creation

There is no doubt, openHAB can provide very powerful, flexible automation creation for those who are familiar with programming. However, the GUI based automation creation, called Rules in openHAB, is extremely limited at the time of this writing (3.1.0MS4).

For example, if one wants to create a simple automation like when my garage door is open for 1 hour, then announce “Garage door is open” on openHAB, one needs to write a code where you start timer.

Limited Remote Access

openHAB provides free remote access option using myopenhab with apparent, relatively easy setup. Having said, this I myself suffered a little here issue here until I got it up and running. However, the major disappointment here was the remote access do not support video streaming. At the end, I ended up creating VPN, and of course all worked smoothly and expected, but at this point myopenhab setup seemed irrelevant. In contrast, Home Assistant had $5/mo service which was real easy setup that allowed video streaming.

Support

openHAB is undoubtedly most confusing home automation platform I have tested so far. This may be partly due to the current status of openHAB 3, major revision introduced in December 2020. But also, the platform has verstatile and robust conceptual design that require understandable user learning curve. To aid this steep learning curve, the strong developer/community support becomes essential for general public users.

Unfortunately, overall support of openHAB community I have seen during my testing period of about 2-3 weeks, it is the least new user friendly environment. The official forum have several replying comments to new users by simply telling people to read documents. Honestly, I do not recommend new user to post much there unless you suffer/spend/waste hours/days your own and prove that to the community and only then you may perhaps find out there is no simple solution on the openHAB platform. Local home automation is a niche of its own, but within it I felt openHAB community are isolating themselves from general public users. openHAB is the platform, user must adjust to it rather than platform evolves to adjust to users need. I do not expect this to change in near feature based on what I have seen on community forum, GitHub developer responses that lacks community size to overcome the trend.

openHAB is the platform, user must adjust to it rather than platform evolves to adjust to users need.

Relatively small community

I have personally found, a Reddit Community could have more new user friendly people. However, there isn’t much activity for openHAB there.

https://frontpagemetrics.com/r/openhab
# of reddit community members in March 2021

As for my personal experience, I posted a few comments to openHAB official community forum. I have tried to suggest/request some potential (basic) missing features from the new/general user perspective but I was only told “no time” and “do it yourself”.

As for a reference, my posts on the Home Assistant community and integration, one I got immediate response from developer and now under two months since original post, the requested feature is on its way with next version. The other, perhaps could be just coincidental but partly introduced on the latest version again in just over a month of my original posts.

Sadly, I have to say the support of openHAB community is the weakest I have experienced. This is indeed the major reason why I cannot recommend this platform to general users and I myself cannot commit to it.

Cost: FREE

OpenHAB 3 do not cost anything. In fact, they do not even have option of pre-installed hardware nor subscription. The cost you pay is your own time. Anything I try to do, which are very basic, I can do much faster with any of the other automation platforms I have tested.

Conclusion

As of May 2021 with openHAB 3.1.0MS version, my personal recommendation for openHAB is try it if you are have programming experience and willing to spend extra-time and if you are someone enjoy steep learning curve while hunting bugs. This is the platform the user must adjust rather than platform evolves to adjust to users need. Do not get me wrong here. The platform itself has intriguing core design and have a lots of potential. I have spent far more time on this than HomeSeer 4 despite I encountered many more bugs/confusions because I like modular design and semantic modeling concepts. Lagging integrations with marginal reliability and sadly the least general/new user friendly community make openHAB at the best hobby platform.

openHAB 3 (openHABian)

$0
7.4

Performance

7.5/10

Bindings

8.0/10

Simplicity

6.0/10

Support

5.5/10

Cost

10.0/10

Pros

  • Intriguing Core design

Cons

  • Steep learning curve
  • No new user friendly support
  • Limited UI functionality
  • Buggy