Franck Nijhof c464056402
Making our website faster, cleaner and prettier (#9853)
* 🔥 Removes octopress.js

* 🔥 Removes use of root_url var

* 🔥 Removes Octopress generator reference from feed

* 🔥 Removes delicious support

* 🔥 Removes support for Pinboard

* 🔥 Removes support for Disqus

* 🔥 Removes support for Google Plus

* ↩️ Migrate custom after_footer to default template

* ↩️ Migrate custom footer to default template

* ↩️ Migrate custom header to default template

* 🔥 Removes unused template files

* 🚀 Places time to read directly in post template

* 🚀 Removes unneeded capture from archive_post.html template

* 🔥 🚀 Removes unused, but heaving sorting call in component page

* 🚀 Merged javascripts into a single file

* 🔥 Removes more uses of root_url

* 🚀 Removal of unneeded captures from head

* 🔥 🚀 Removal of expensive liquid HTML compressor

* 🔥 Removes unneeded templates

* 🚀 Replaces kramdown with GitHub's CommonMark 🚀

* 💄 Adds Prism code syntax highlighting

*  Adds support for redirect in Netlify

* ↩️ 🔥 Let Netlify handle all developer doc redirects

* ✏️ Fixes typo in redirects file: Netify -> Netlify

* 🔥 Removes unused .themes folder

* 🔥 Removes unused aside.html template

* 🔥 Removes Disqus config leftover

* 🔥 Removes rouge highlighter config

* 🔥 Removes Octopress 🎉

* 💄 Adjust code block font size and adds soft wraps

* 💄 Adds styling for inline code blocks

* 💄 Improve styling of note/warning/info boxes + div support

* 🔨 Rewrites all note/warning/info boxes
2019-07-15 22:17:54 +02:00

5.4 KiB

title, description, redirect_from
title description redirect_from
Installation on a Synology NAS Instructions to install Home Assistant on a Synology NAS. /getting-started/installation-synology/

Synology only provide Python 3.5.1, which is not compatible with Home Assistant 0.65.0 or later. Until Synology offer an updated version of Python, Home Assistant 0.64 is the most recent version that will be able to be installed. You can manually specify the version of Home Assistant to install, for example to install version 0.64.3 you would do ./python3 -m pip install homeassistant==0.64.3

There are 2 alternatives, when using Home Assistant on Synology NAS:

  1. using Docker
  2. directly running on DSM

Option 1 is described on the Docker installation page, whereas Option 2 is described below.

The following configuration has been tested on Synology 413j running DSM 6.0-7321 Update 1.

Running these commands will:

Using the Synology webadmin:

  • Install python3 using the Synology Package Center
  • Create homeassistant user and add to the "users" group

SSH onto your synology & login as admin or root

  • Log in with your own administrator account
  • Switch to root using:
$ sudo -i

Check the path to python3 (assumed to be /volume1/@appstore/py3k/usr/local/bin)

# cd /volume1/@appstore/py3k/usr/local/bin

Install PIP (Python's package management system)

# ./python3 -m ensurepip

Use PIP to install Homeassistant package 0.64.3

# ./python3 -m pip install homeassistant==0.64.3

Create homeassistant config directory & switch to it

# mkdir /volume1/homeassistant
# chown homeassistant /volume1/homeassistant 
# chmod 755 /volume1/homeassistant
# cd /volume1/homeassistant

Hint: alternatively you can also create a "Shared Folder" via Synology WebUI (e.g., via "File Station") - this has the advantage that the folder is visible via "File Station".

Create hass-daemon file using the following code (edit the variables in uppercase if necessary)

#!/bin/sh

# Package
PACKAGE="homeassistant"
DNAME="Home Assistant"

# Others
USER="homeassistant"
PYTHON_DIR="/volume1/@appstore/py3k/usr/local/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 ()
{
    sudo -u ${USER} /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:

# ln -s /volume1/@appstore/py3k/usr/local/bin/python3 python3
# ln -s /volume1/@appstore/py3k/usr/local/lib/python3.5/site-packages/homeassistant homeassistant

Set the owner and permissions on your config folder

# chown -R homeassistant:users /volume1/homeassistant
# chmod -R 664 /volume1/homeassistant

Make the daemon file executable:

# chmod 755 /volume1/homeassistant/hass-daemon

Update your firewall (if it is turned on the Synology device):

  • Go to your Synology control panel
  • Go to security
  • Go to firewall
  • Go to Edit Rules
  • Click Create
  • Select Custom: Destination port "TCP"
  • Type "8123" in port
  • Click on OK
  • Click on OK again

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:
$ sudo /volume1/homeassistant/hass-daemon start
  • Stop Home Assistant:
$ sudo /volume1/homeassistant/hass-daemon stop
  • Restart Home Assistant:
$ sudo /volume1/homeassistant/hass-daemon restart
  • Upgrade Home Assistant::
$  /volume1/@appstore/py3k/usr/local/bin/python3 -m pip install --upgrade homeassistant