Add configuration for Synology NAS

This commit is contained in:
Nick Waring 2016-02-15 08:06:20 +00:00
parent 133692cf7e
commit d8d60e8ffe
2 changed files with 211 additions and 0 deletions

View File

@ -13,9 +13,11 @@ footer: true
<input name='advanced-installs' type='radio' id='upstart-install' checked>
<input name='advanced-installs' type='radio' id='systemd-install'>
<input name='advanced-installs' type='radio' id='osx-install'>
<input name='advanced-installs' type='radio' id='synology-install'>
<label class='menu-selector upstart' for='upstart-install'>Upstart Daemon</label>
<label class='menu-selector systemd' for='systemd-install'>Systemd Daemon</label>
<label class='menu-selector osx' for='osx-install'>OS X</label>
<label class='menu-selector synology' for='synology-install'>Synology NAS</label>
<div class='advanced-installs upstart' markdown='1'>
Many linux distributions use the Upstart system (or similar) for managing daemons. Typically, systems based on Debian 7 or previous use Upstart. This includes Ubuntu releases before 15.04 and all current Raspian releases. If you are unsure if your system is using Upstart, you may check with the following command:
@ -130,6 +132,39 @@ Home Assistant has been uninstalled.
```
</div> <!-- OSX -->
<div class='advanced-installs synology' markdown='1'>
To get Home Assistant to automatically start when you boot your Synology NAS:
SSH onto your synology & login as admin or root
```bash
$ cd /volume1/homeassistant
```
Create "homeassistnat.conf" file using the following code
```bash
# only start this service after the httpd user process has started
start on started httpd-user
# stop the service gracefully if the runlevel changes to 'reboot'
stop on runlevel [06]
# run the scripts as the 'http' user. Running as root (the default) is a bad ide
#setuid admin
# exec the process. Use fully formed path names so that there is no reliance on
# the 'www' file is a node.js script which starts the foobar application.
exec /bin/sh /volume1/homeassistant/hass-daemon start
```
Register the autostart
```bash
$ ln -s homeassistant-conf /etc/init/homeassistant-conf
```
Make the relevant files executable:
```bash
$ chmod -r 777 /etc/init/homeassistant-conf
```
That's it - reboot your NAS and homeassistant should automatically start
</div> <!-- SYNOLOGY -->
</div>
### [&laquo; Back to Getting Started](/getting-started/)

View File

@ -74,6 +74,182 @@ Running these commands will:
- Launch Home Assistant and serve the web interface on [http://localhost:8123](http://localhost:8123)
</div> <!-- INSTALL-INSTRUCTIONS RASPBERRY -->
<div class='install-instructions synology' markdown='1'>
The following configuration has been tested on a Synology 415+ running DSM 5.2-5644 Update 3
Running these commands will:
- Install Home Assistant
- Ebable Home Assistant to be launched on [http://localhost:8123](http://localhost:8123)
Using the Synology webadmin:
- Install python3 using the Synology package centre
- Create homeassistant user and add to the "users" group
SSH onto your synology & login as admin or root
Check the path to python3 (assumed to be /usr/local/python3/bin)
```bash
$ cd /usr/local/python3/bin
```
Use PIP to install Homeassistant package
```bash
$ pip3 install homeassistant
```
Create homeassistant config directory & switch to it
```bash
$ mkdir /volume1/homeassistant
$ cd /volume1/homeassistant
```
Create hass-daemon file using the following code (edit the variables in uppercase if necessary)
```bash
#!/bin/sh
# Package
PACKAGE="homeassistant"
DNAME="Home Assistant"
# Others
USER="homeassistant"
PYTHON_DIR="/usr/local/python3/bin"
PYTHON="$PYTHON_DIR/python3"
HASS="$PYTHON_DIR/hass"
INSTALL_DIR="/volume1/homeassistant"
PID_FILE="$INSTALL_DIR/home-assistant.pid"
FLAGS="-v --config $INSTALL_DIR --pid-file $PID_FILE --daemon"
REDIRECT="> $INSTALL_DIR/home-assistant.log 2>&1"
start_daemon ()
{
su ${USER} -s /bin/sh -c "$PYTHON $HASS $FLAGS $REDIRECT;"
}
stop_daemon ()
{
kill `cat ${PID_FILE}`
wait_for_status 1 20 || kill -9 `cat ${PID_FILE}`
rm -f ${PID_FILE}
}
daemon_status ()
{
if [ -f ${PID_FILE} ] && kill -0 `cat ${PID_FILE}` > /dev/null 2>&1; then
return
fi
rm -f ${PID_FILE}
return 1
}
wait_for_status ()
{
counter=$2
while [ ${counter} -gt 0 ]; do
daemon_status
[ $? -eq $1 ] && return
let counter=counter-1
sleep 1
done
return 1
}
case $1 in
start)
if daemon_status; then
echo ${DNAME} is already running
exit 0
else
echo Starting ${DNAME} ...
start_daemon
exit $?
fi
;;
stop)
if daemon_status; then
echo Stopping ${DNAME} ...
stop_daemon
exit $?
else
echo ${DNAME} is not running
exit 0
fi
;;
restart)
if daemon_status; then
echo Stopping ${DNAME} ...
stop_daemon
echo Starting ${DNAME} ...
start_daemon
exit $?
else
echo ${DNAME} is not running
echo Starting ${DNAME} ...
start_daemon
exit $?
fi
;;
status)
if daemon_status; then
echo ${DNAME} is running
exit 0
else
echo ${DNAME} is not running
exit 1
fi
;;
log)
echo ${LOG_FILE}
exit 0
;;
*)
exit 1
;;
esac
```
Create links to python folders to make things easier in the future:
```bash
$ ln -s /usr/local/python3/bin python3
$ ln -s /usr/local/python3/lib/python3.4/site-packages/homeassistant
```
Set the owner and permissions on your config folder
```bash
$ chown -r homeassistant:users /volume1/homeassistant
$ chmod -r 660 /volume1/homeassistant
```
Make the daemon file executable:
```bash
$ chmod -r 777 /volume1/homeassistant/hass-daemon
```
Copy your configuration.yaml file into the config folder
That's it... you're all set to go
Here are some useful commands:
- Start Home Assistant:
```bash
$ sh hass-daemon start
```
- Stop Home Assistant:
```bash
$ sh hass-daemon stop
```
- Restart Home Assistant:
```bash
$ sh hass-daemon restart
```
- Upgrade Home Assistant::
```bash
$ python3/pip3 install --upgrade homeassistant
```
Execute the following code in a console:
```bash
$ sudo pip3 install homeassistant
$ hass
```
</div> <!-- INSTALL-INSTRUCTIONS SYNOLOGY -->
</div>
### {% linkable_title Troubleshooting %}