I had some difficulties with the “vi setenv”, I wasn’t able to save the file after changing to port 8445.
So I copied it to the public folder, opened it with TextWrangler, changed the port and saved the changes. After that I deleted the original and copied my changed file back to the folder …/runtime/bin.
And boom, it worked, OpenHAB2 is running. Thank you very much.
Yeah, it is some other way to do that To be on the safe side please check the file owner. ssh to the Synology, go to /volume1/@appstore/openHAB2/runtime/bin folder and type ls -la. check the setenv file, the owner should be openhab2, group is users. If the owner is root, type “chown openhab2 setenv” to make it openhab2. In the meantime check from the Synology Control Panel-Users if openhab2 user is created automatically.
Dealing with openhab2 on Synology is twice as harder…
If I uninstall/reinstall, what files should I restore? Obviously all files in the /conf folder, but I also did some config in PaperUI. Is that config stored elsewhere?
Does nobody have an idea?
My 2.1 snapshot is already 1.5 month old (I don’t know where you can check a version number).
How do I upgrade without loosing all my config?
You have to also backup userdata folder and addons folder if you put any.jar files there. I am not so really sure about runtime folder. But the config files of paper ui resides in jsondb folder under userdata. Also do not update yet if you do not have serious problems, since distro package is 2.1.0. You do not want to install nightly development builds. For syno latest is 2.1.0.004
I have installed OpenHAB via package 2.1.0.004, but this is already more than a month ago (mid March). The package automatically downloads the latest successful build from Cloudbees.
Since then, a lot of new builds have been released (the last one 3 days ago), hence my upgrade question.
So if I get this right, the procedure (assuming you have installed via the 2.1.0.004 Synology package) is:
Stop the OpenHAB package in the Package center;
Backup the entire @appstore/OpenHAB2 folder;
Download the latest successful build from Cloudbees;
Unzip this in the @appstore/OpenHAB2 folder - overwriting existing files;
Restore the following folders: \addons, \conf, \userdata (overwriting existing files);
Start the OpenHAB package in the Package center;
This would restore all my settings (also the ones I configured in PaperUI) without disrupting my installation. Correct?
btw forget about the addons folder since new snapshot will download latest bindings. However, as i see you want to update stable version of openhab2 to development versions nightly snapshot. Please bear in mind that the nightly snapshots are development builds and might cause you some other problems, think of it as beta versions. Distro versions are the latest stable builds.
You can see the same question in How to upgrade a OH2 distro? and Whats your way to update OH2 with another nightly build?. and as you can see life with openhab on Synology is always harder to use since we do not have apt-get on Synology. Copying /conf always works bu copying /userdata not works so smoothly. What i reccommend is that you create everything on config files like rules, items, transformations and etc. except for things and bindings. What i did is to create some of the things in text file and some on Paper UI; like ntp, weather, printer, hue on text files but Zwave modules on Paper UI since Zwave node management is flawed on text file configurations on openHAB2. So if i update, i copy /conf folder, and recreate all bindings and zwave items in Paper UI and don’t bother with /userdata folder, since you have to delete some files from /userdata folder for openhab to recreate with the new snapshot.
So that means nearly delete and reinstall openhab2! I would personally reccommend that you go with distro editions since in Synology if you do not use the package version (https://github.com/openhab/openhab-syno-spk) openhab2 requires manual installation which i didnot dared to use.
In summary, you have to struggle a bit to do that on Synology. If you are brave enough please let us know how did it go
And also i realized 2.1.0 004 is a snapshot too I still prefer to go with the package scripts and wait for the next one until i fully understand the versioning and updating mechanisms…
So, Dries, following your ambition i also choose to update my snapshot. But this time i carried my openhab2 installation from package source to debian chroot environment on synology.
So i installed Debian chroot and oracle java, in which both had me some problems at first with apt-get update and java installation but handled at last. Then i installed openhab2 with apt-get. First installed all the bindings i needed, and then the things that do not rest in my config files, like Zwave controller and nodes. And then copied my /conf folder to it new location. Made some small changes in the rules regarding file location folders and tadaaa… Openhab2 in its new environment and easier to manage. Then i remembered that my MQTT transformations are not working since i didnot installed mosquitto on chroot environment. Did that, and made the changes for the Synology to restart openhab2 service in case of reboots and everything. Now it is a lot easier to handle than the package one since i can install anything i like with apt-get.
Thank you for both interesting posts.
I think I am going to follow your proposal and go the chroot-way on Synology.
I’ll post my findings here. I’m not sure I’ll be able to do it next week. I’m in the middle of integrating my alarm system with OpenHAB, and want to get that stable first. Also, I want to pick a moment when I’m alone in the house. In case the OpenHAB-install goes wrong, I can try to fix it before anyone notices.
I have problems with my configuration files.
First I made a map “conf” in public folder. After that I installed OH2 on synology.
I gave user “openhab2” read/write rights via “shared maps” in synology dsm.
But the conf map in public remains empty and can’t find my conf files.
When I login with WinSCP in volume1/@appstore/openHAB2, I find a shortcut to map public/conf.
How to set this up right?
I tried to manually put the standard map structure in the public/conf map, but that doesnt help either.
What do you mean by map? Normally openhab2 will not create any folders or configuration files under conf. You have to create these directories manually (like items, things, rules, services etc.) and put your .items file under items folder, .things file under things folder etc. So it will remain empty until you put your configuration files there. Paper UI or Habmin will not create any configuration files under conf.
After trying to get openHAB running in docker on my DS1815+ I switched to this packages. Docker had some limitations, e.g. exec not usable. Hope that will work with this here.
The installation worked as described but I have some additional questions/remarks. (maybe I can update the official Synology openHAB setup page afterwards?).
it’s not always possible to use the latest Java8 SE version because the package from PC-Loadletter is not up to date. And it happens that you download the wrong version. That should be mentioned. The PC-Loadletter package will show the needed version when started.
I struggled a lot with the config and logs folder at the beginning.
** I’m used to work with the shared folders and wanted to have my configuration there. One reason is that it is then accessible via web UI as well as a network share. Second reason is that HyperBackup can only access shared folders.
** I don’t wanted to have a public shared folder (I had the impression it will only work with a public folder)
** I wanted to have the config in another shared folder which is encrypted
So what I did after some research on this page (and others) is as someone suggested further up to create some symlinks. Here is what I did:
created a openHAB2 folder on my encrypted shared folder (appstorage) - it includes a conf and a logs folder
I copied the conf files from my local (windows) testsystem to this folder (you can also copy the generated folder from volume1/@appstore/openHAB2/conf)
I deleted the conf folder from volume1/@appstore/openHAB2/ and created a new symlink to my new conf folder destination (changed the owner too): sudo ln -s /volume1/appstorage/openHAB2/conf /volume1/@appstore/openHAB2/conf sudo chown -R openhab2:users /volume1/@appstore/openHAB2/conf
I deleted the logs folder from volume1/@appstore/openHAB2/userdata/ and created a symlink there too: sudo ln -s /volume1/appstorage/openHAB2/logs /volume1/@appstore/openHAB2/userdata/logs sudo chown -R openhab2:users /volume1/@appstore/openHAB2/userdata/logs
Currently everything starts and I can reach the openHAB instance on port 8080. My config is also available and the logs are created in my new log folder.
My question now is, if there is any drawback of this solution or does someone see a problem with that? I’m not a Linux expert so I’m not sure if I missed some important point.
Short update to my previous post. I’ve seen/realized that most of the configurable stuff done e.g. via paperUI is stored in userdata. Therefore I removed the link for the logs folder and added a symlink for the whole userdata and addons folder. I created a bash script for that:
#!/bin/bash
# remove standard folders
sudo rm -rf /volume1/@appstore/openHAB2/conf
sudo rm -rf /volume1/@appstore/openHAB2/userdata
sudo rm -rf /volume1/@appstore/openHAB2/addons
# create symlink to new folder destination
sudo ln -s /volume1/appstorage/openHAB2/conf /volume1/@appstore/openHAB2/conf
sudo ln -s /volume1/appstorage/openHAB2/userdata /volume1/@appstore/openHAB2/userdata
sudo ln -s /volume1/appstorage/openHAB2/addons /volume1/@appstore/openHAB2/addons
# set user/group for symlinks
sudo chown -R openhab2:users /volume1/@appstore/openHAB2/conf
sudo chown -R openhab2:users /volume1/@appstore/openHAB2/userdata
sudo chown -R openhab2:users /volume1/@appstore/openHAB2/addons
# make sure openhab2 user has r/w access to shared folder (appstorage)
It works as far as I’ve seen. Everything starts and files/folders are updated and changed. Only drawback is currently that I would like to move the logs, cache and tmp folder out of the userdata and just link them but I don’t know if HyperBackup would still back all the data which is linked anyway. Therefore I leave it as it is and just deselect this folders in HyperBackup (have to select newly created folders (e.g. from addons) in HyperBackup later).
Still the question is open if anyone sees a drawback in my way or has any other comment.
Erkan, you mentioned having problems with the Oracle Java installation. In my Synology DS213J (DSM 6.1.2-15132) I have OpenJDK java which I want to replace with Oracle java.
I’m following the instructions from here but getting errors in the Oracle java installation. I’m using the Debian chroot package. The error that I’m getting is:
/var/packages/debian-chroot/scripts/start-stop-status chroot
apt-get install oracle-java8-installer
...
Preparing to unpack .../oracle-java8-installer_8u131-1~webupd8~2_all.deb ...
readelf: Error: '/proc/self/exe': No such file
dpkg: error processing archive /var/cache/apt/archives/oracle-java8-installer_8u131-1~webupd8~2_all.deb (--unpack):
subprocess new pre-installation script returned error exit status 1
Errors were encountered while processing:
/var/cache/apt/archives/oracle-java8-installer_8u131-1~webupd8~2_all.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
Any one has an idea how to install Oracle java on Synology?
Thanks
UPDATE:
I installed Oracle java, using these instructions (section: Java (ARMv7 models, DSM 6.0 or later)). Now java shows the right version (I think, as it does not show OpenJDK anymore)
To make it accessible within the chroot, I added the following steps
Download the Oracle java package (Linux ARM 32 Hard Float ABI, jdk-8u131-linux-arm32-vfp-hflt-demos.tar.gz) from here
Copy the tar file into the chroot environment from outside chroot, as root