This project build a Synology DiskStation SPK install package for openHAB (Home Automation Server).
Comments, suggestions and contributions are welcome!
The openHAB log files can be found here:
/volume1/@appstore/openHAB/userdata/logs/
.
From Version openHAB-2.2.0.006 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
to
/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.