openHAB

Last modified by Normann P. Nielsen on 2025/12/12 15:15

Success

openHAB is an alternative to Home Assistant, and somewhat easier to configure. Where Home Assistant is Python/Yaml based, openHAB is Java.

Both systems has great capabilities, and differs a lot in the approach, I You like UIs for config - this is a little "better" and the UI configuration is nice.

One of the parameters for choosing, can be the amount or specific support for devices, its seems to me that Home Assistant has quite a lot more that openHAB, but also that several of them lacks functionality and are difficult to actually configure/use; I never understood the "media_player" stuff in Home Assistant. Visit the Showcase and How-tos site.

OpenHAB 2 supports the new Eclipse SmartHome APIs for bindings, and additional bindings can be found at GitHub

For the HAPanel in OpenHAB, theres a wide varity of widgets

I do use Home Assistant now a days - I has a more rapid release cycle and getting a lot of UI improvements...

Topics

Screenshots

Docker

https://www.openhab.org/docs/installation/docker.html

Very easy to start and configure.

docker run \
       --name openhab \
       --net=host \
       -v /etc/localtime:/etc/localtime:ro \
       -v /etc/timezone:/etc/timezone:ro \
       -v /opt/openhab/conf:/openhab/conf \
       -v /opt/openhab/userdata:/openhab/userdata \
       -v /opt/openhab/addons:/openhab/addons \
       -d \
       -e USER_ID=1003 \
       -e GROUP_ID=9001 \
       --restart=always \
       openhab/openhab

Backup

The easiest way is the make a cron job for backup, information on backup and restore are at https://www.openhab.org/docs/installation/linux.html#backup-and-restore
SuccessAlso, do review the latter openHAB Backup

sudo apt-get install zip
sudo vi /etc/crontab

0 22 * * * /opt/openhab/bin/backup

If You run the backup job manually one time, the location of the backup file(s) are shown:

root@homeassist:/opt/openhab/bin# ./backup

#########################################
      openHAB 2.x.x backup script
#########################################

Using '/etc/openhab2' as conf folder...
Using '/var/lib/openhab2' as userdata folder...
Using '/usr/share/openhab2/runtime' as runtime folder...
Using '/var/lib/openhab2/backups' as backup folder...
Writing to '/var/lib/openhab2/backups/openhab2-backup-18_12_22-11_44_32.zip'...
Making Temporary Directory if it is not already there
Using /tmp/openhab2/backup as TempDir
Copying configuration to temporary folder...
Removing unnecessary files...
Backup Directory is inside userdata, not including in this backup!
Zipping folder...
Removing temporary files...
Success! Backup made in /var/lib/openhab2/backups/openhab2-backup-18_12_22-11_44_32.zip

root@homeassist:/usr/share/openhab2/runtime/bin#

Error

A test - moving from one server to a new showed me that the backup is not "complete", as 2 things went wrong:

  •  The camera binding that I manually added in the "addon" folder was not in the backup
  • Things binded to the camera binding was broken (after the jar file was added, bindings were fine again)
  •  A Thing that was disabled was not disabled after the restore (It actually seems that Disabled is "stateless" and does not survive an openHAB Restart)

Security

Notice that OpenHAB has no security, and You need to install it in front of openHAB. Do read Securing Communication and access to openHAB

Link for setting username password: Ngix and Apache

Things on Tabs

For each Thing, there is a Location field, that represents (at least) a Tab in the Paper UI:

Screenshot 2018-12-22 at 11.51.49.png . Screenshot 2018-12-22 at 11.52.03.png

Camera Binding

I use https://github.com/Skinah/IpCamera for my HIKVisions, but only with images currently. It works okay.

zip

MQTT Server

Install the MQTT Service - this in an Internal MQTT Broker (Server)

Screenshot 2019-01-04 at 17.49.10.png

Configure the broker.

MQTT Bindings and Channels

Install the MQTT Binding

Screenshot 2019-01-04 at 17.48.47.png

Then Create Things and Channels:

Screenshot 2019-01-04 at 17.50.40.png

The Thing is the "physical" device, like a light Switch, and the Channel(s) is the properties the Light switch has - now, a switch has only On/Off, but other Things may have several properties, an engine can have On/Off, Temperature, Rounds Per Minute etc.

Pressing "+" for adding a channel gives the options.

Define the Channel - typically where to send the command, and where to read the state:

Screenshot 2019-01-04 at 17.54.16.png
SuccessNotice The Homie convention, when deciding MQTT Topics

For HABPanel, the Channel can be used instantly, for a Sitemap in the Basic UI, You need to link the Channel to an Item in an items file (Notice the Channel name from the screenshot above):

Switch mqtt_test "Test switch" {channel="mqtt:topic:61a4bec6:mqtt_test"}

Now we have an item that can be used on a  Sitemap

MQTT Demo Video

This shows the above configuration in action - the Basic UI in upper left, the HABPanel in lower left, an external MQTT Client in upper right and the logging in the Event logfile in lower right.

Notice that the Sitemap does not alway update instantly, no clue why currently.

Links

Great tutorial

https://mysmarthomeweb.wordpress.com/

Examples of configs for HAPanel

https://community.openhab.org/t/examples-of-habpanel-solutions/15557/39

Matrix theme

https://community.openhab.org/t/matrix-theme-for-habpanel/31100

Hacking Basic UI

https://community.openhab.org/t/hacking-basicui-my-current-theme-oh2-setup-update-with-repo/45850

Eclipse IoT Marketplace

https://www.openhab.org/docs/configuration/eclipseiotmarket.html

OpenHAB with Wavin Gulvarme 

https://www.lav-det-selv.dk/forum/aft/210932

Things to do with your network-connected Denon/Marantz receiver

http://techblog.vindvejr.dk/?cat=13

Controlling IKEA Trådfri Lights from your Pi

https://learn.pimoroni.com/tutorial/sandyj/controlling-ikea-tradfri-lights-from-your-pi

My smarthome with openHAB2

https://mysmarthomeweb.wordpress.com/

The Homie convention

https://homieiot.github.io/