OpenHAB Upgrade (to HomeAssistant!)

OpenHAB 3.0 was released in December, time to upgrade from my 2.5 installation; so I had intended.

At Christmas, a major update to OpenHAB was released and so I thought it was a good time to take a look and see what new and exciting things might await, and whether it might remove some of the pain points of working with the current 2.5x series I was running. I didn’t want to upgrade in place since the developers were recommending a clean install, and I didn’t want to do a clean install over my current installation and then risk being without control for some days if it took a while to get everything set up and running properly. A perfect excuse to buy (yet another, my 9th in total) RasPi - opting for the newer model 4b with 4G RAM since the 8G would be overkill for openhab.

The Pi and the SD card duly arrived from Amazon, I downloaded the latest image for OpenHABian 3.0 and transferred it to the card. The pi boots from the card and a couple of minutes later I’m able to see the OpenHAB interface in my browser. One of the major changes in 3.0 is to consolidate the various user interfaces (Paper, Basic, HABPanel) into a single UI just called “Main”. This is a good thing for simplification as the other UI strategy was a bit confusing, especially for new users. It looked like new users were potentially the focus of this release, because the other immediately obvious change was the distancing of the text/code based config for Things and Items. It seemed you could still do this, but it felt from the docs (at least the ones that HAD been updated to reflect the 3.0 release - a large number of pages had clearly not been) that there was an increasingly strong recommendation not to and to simply configure everything through the UI. I was a little sceptical of this as one of the major benefits, I thought, of the OpenHAB model was the ability to configure your devices in code and manage that code as a git repo.. but I continued on.

After adding bindings for a two of my main devices, the Hue Hub and my Kasa smart plugs, the Things were easily discovered and added to my inventory from the Inbox. But as I started to configure the light bulbs it quickly became really obvious that my initial scepticism about the configuration in a UI was well founded. There’s no way to short cut the repetitive nature of setting up each bulb (like copy/paste/edit or search/replace the code with a good editor) you just have to do each one manually and tediously. What’s worse is that openhab seems to make no guesses about config values for things even when it would be trivial to do so. Example: for each bulb I configure, openhab already knows it’s a light bulb.. it’s identified as such through the Hue bridge. So why do I need to tell openhab that it is of type “Lightbulb”? And then subsequently tell it to use a SemanticClass of Lightbulb instead of the default “Equipment”. And then ALSO have to choose a lightbulb icon for it even though it now already has 3 pieces of data telling it that it’s a bloody lightbulb?? Then repeat 17 times for each bulb. The other oddity here of course, is that you assume they want people to use the UI and not code to make it more accessible to noobs - ok - but then those noobs are expected to figure out all of the above with little in the way of useful docs explaining why..?

I persevered for a little longer - I thought the config is a one off, you don’t have to do much after it’s done and I did want to have a play with the significantly better looking (c/w 2.5) front-end and try some of the flexible layouts and new widgets on offer. But unfortunately the experience was not terribly different. The layouts are not simple to configure and the choice of monikers and naming in the editors is as confusing as the Thing and Item configs. You clearly can create some really nice layouts if you work through it, but I didn’t want to do something that irritating. The final straw was that the UI elements still felt clunky and slow to use - just that fractional delay in response when you click or drag something and you have that brief moment of wondering if it actually registered your intent. Often a sign of badly optimised or written JS code. I think the whole idea of modeling the equipment makes sense, but the execution and the tooling feels short of the mark.

So at this juncture, I took a back up of my config, transferred it to another machine and then shut the pi down, took the SD card out and proceeded to download and install HomeAssistant. I’ll post separately about the install and my experiences with the initial configuration.

Discuss