Awesome Open Source
Awesome Open Source

openHAB Synology DiskStation Install Package

This project build a Synology DiskStation SPK install package for openHAB (Home Automation Server).

Comments, suggestions and contributions are welcome!

Installation script behaviour

The Current version of installer 3.0.0 checks most stable recent version of OpenHAB and installs it during the installation procedure.

You need Java 11 to be able to run openHAB >= 3.0.0, so please download AdoptOpenJDK for arm32 because Oracle is not offering 32bit compatible package. Prepare a directory for your package like: /var/packages/Java11 Edit /etc/profile to update JAVA_HOME properly

#PATH=$PATH:/var/packages/Java8/target/j2sdk-image/bin # Synology Java runtime enviroment
PATH=$PATH:/var/packages/Java11/bin # Synology Java runtime enviroment
JAVA_HOME=/var/packages/Java11 # Synology Java runtime enviroment
CLASSPATH=.:/var/packages/Java11/lib # Synology Java runtime enviroment

Reboot your device or invoke following command . /etc/profile and restart OpenHAB

Enjoy your OpenHAB3


Download SPK package from Github Releases Github All Releases


The openHAB log files can be found here: /volume1/@appstore/openHAB/userdata/logs/.

From Version openHAB- the SPK generates two log files located at /var/log/.

The first log file openHAB-install.log will be generated during the installation. If you can't install the openHAB SPK, please have a look inside the file.

The second log openHAB-start-stop.log will be generated by starting and stopping openHAB inside the Package Manager.


Installation und Prerequisite Install Java Documentation: Official openHAB Usage Manual

For usage of serial devices you need to check if openhab user has the appropriate rights to access the device in /dev and to create lock files in /run/lock

To do so the installer tries to add the openhab user to the groups dialout and uucp. But these groups are not present on all synology diskstations.

/run/lock for instance is created as this on a ds214play:

drwxr-xr-x 5 root root 160 Dec 9 20:11 lock

and /dev/ttyUSB0 is per default also created for root only:

crw------- 1 root root 188, 0 Dec 4 12:55 /dev/ttyUSB0

The result in nrjavaserial / RXTX to access this port would be a no port found exception.

To correct this you need three steps (login as admin on diskstations ssh login):

a) create a group and assign openhab user to it

sudo synogroup --add uucp openhab

b) setup udev rule so that access rights in /dev/ are permanent and reload udev rules

example for pl2303 usb to serial converter:

sudo echo 'SUBSYSTEM=="tty", ATTRS{idVendor}=="067b", ATTRS{idProduct}=="2303", GROUP="uucp", MODE="0660"' >>/usr/lib/udev/rules.d/50-yourrules

example for general ttyUSB rule:

sudo echo 'KERNEL=="ttyUSB*", ACTION=="add", MODE="0660", GROUP="uucp"' >>/usr/lib/udev/rules.d/50-yourrules

reload rules now:

sudo udevadm control --reload

c) enable access for openhab user for lock file creation

chmod 0775 /run/lock

chown root.uucp /run/lock

edit /etc/init/root-file-system.conf to persist this change.

sudo vi /etc/init/root-file-system.conf

change line

/bin/mkdir -p /run/lock || true


/bin/mkdir -m 0775 -p /run/lock || true

chown root.uucp /run/lock || true

If you want you can Install a Script for Z-Wave and Devices that use dev/ttyACM0 or dev/ttyACM1 at install a script is copy to /usr/local/etc/rc.d that will execute on install and at booting the Synology. This exec on the Port´s chmod 777. And load some USB Kernelmodules.

Also if you want you can Install a TMPFS-Filesystem, that stores the Logs and Peristance. This allow the HDD´s to hibernate. The TMPFS could found in the same Path you chose on Installation for the Configs. The TMPFS will backup on shutdown to folder saved and restore on boot to TMPFS and make some Links. To make these able, is a script copy on Install to /usr/local/etc/rc.d this will run by setup and on shutdown or boot the synology. A Logfile for TMPFS is on the openHAB Config-Path you chosed on Install.

For these two options you have to check a Checkbox on Installation. If you let it empty is nothing changed. When you want it to change later you must run a update.

To Keep Peristance Running (it stops when TMPFS is full) you can install the EXEC-Binding and make a Thing with follow command find "path to Config Dir you chosed on Install"/openHAB/userdata/logs/*.log1 -type f -delete and run it periodly. This will delete old logs.

If you want to Backup the TMPFS periodly you can use the EXEC-Binding too. Create one Thing with follow command cp -a -r -f /volume1/public/openHAB/tmpfs/userdata /volume1/public/openHAB/saved/. You can add it to a rule, that will run the command every Day.


Official community: Github Releases


Discussion chat: Join the chat at


Travis build state: Build state


GitHub issues Issue Stats GitHub forks Issue Stats GitHub stars

Contribution guidelines


When not explicitly set, files are placed under GitHub license.

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
shell (10,538
synology (30
openhab (24