509 lines
33 KiB
HTML
509 lines
33 KiB
HTML
<!doctype html>
|
||
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
|
||
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
|
||
<!--[if IE 8]> <html class="no-js lt-ie9"> <![endif]-->
|
||
<!--[if gt IE 8]><!--> <html> <!--<![endif]-->
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||
<title>Installation on Docker - Home Assistant</title>
|
||
<meta name="author" content="Home Assistant">
|
||
<meta name="description" content="Instructions to install Home Assistant on a Docker.">
|
||
<meta name="viewport" content="width=device-width">
|
||
<link rel="canonical" href="https://home-assistant.io/docs/installation/docker/">
|
||
<meta property="fb:app_id" content="338291289691179">
|
||
<meta property="og:title" content="Installation on Docker">
|
||
<meta property="og:site_name" content="Home Assistant">
|
||
<meta property="og:url" content="https://home-assistant.io/docs/installation/docker/">
|
||
<meta property="og:type" content="article">
|
||
<meta property="og:description" content="Instructions to install Home Assistant on a Docker.">
|
||
<meta property="og:image" content="https://home-assistant.io/images/default-social.png">
|
||
<meta name="twitter:card" content="summary_large_image">
|
||
<meta name="twitter:site" content="@home_assistant">
|
||
<meta name="twitter:title" content="Installation on Docker">
|
||
<meta name="twitter:description" content="Instructions to install Home Assistant on a Docker.">
|
||
<meta name="twitter:image" content="https://home-assistant.io/images/default-social.png">
|
||
<link href="/stylesheets/screen.css" media="screen, projection, print" rel="stylesheet">
|
||
<link href="/atom.xml" rel="alternate" title="Home Assistant" type="application/atom+xml">
|
||
<link rel='shortcut icon' href='/images/favicon.ico' />
|
||
<link rel='icon' type='image/png' href='/images/favicon-192x192.png' sizes='192x192' />
|
||
</head>
|
||
<body >
|
||
<header class='site-header'>
|
||
<div class="grid-wrapper">
|
||
<div class="grid">
|
||
<div class="grid__item three-tenths lap-two-sixths palm-one-whole ha-title">
|
||
<a href="/" class="site-title">
|
||
<img width='40' src='/demo/favicon-192x192.png'>
|
||
<span>Home Assistant</span>
|
||
</a>
|
||
</div>
|
||
<div class="grid__item seven-tenths lap-four-sixths palm-one-whole">
|
||
<nav>
|
||
<input type="checkbox" id="toggle">
|
||
<label for="toggle" class="toggle" data-open="Main Menu" data-close="Close Menu"></label>
|
||
<ul class="menu pull-right">
|
||
<li><a href="/getting-started/">Getting started</a></li>
|
||
<li><a href="/components/">Components</a></li>
|
||
<li><a href="/docs/">Docs</a></li>
|
||
<li><a href="/cookbook/">Examples</a></li>
|
||
<li><a href="/developers/">Developers</a></li>
|
||
<li><a href="/blog/">Blog</a></li>
|
||
<li><a href="/help/">Need help?</a></li>
|
||
<li><a href='#' class='show-search'><i class="icon-search"></i></a></li>
|
||
</ul>
|
||
</nav>
|
||
<div class='search-container' style='display: none'>
|
||
<div class='search'>
|
||
<i class="icon-search"></i>
|
||
<input id='search' placeholder='Search the docs…'>
|
||
<a href='#' class='close'><i class="icon-remove-sign"></i></a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</header>
|
||
<div class="grid-wrapper">
|
||
<div class="grid grid-center">
|
||
<div class="grid__item two-thirds lap-one-whole palm-one-whole">
|
||
<article class="page">
|
||
<div class='edit-github'><a href='https://github.com/home-assistant/home-assistant.github.io/tree/current/source/_docs/installation/docker.markdown'>Edit this page on GitHub</a></div>
|
||
<header>
|
||
<h1 class="title indent">
|
||
Installation on Docker
|
||
</h1>
|
||
</header>
|
||
<hr class="divider">
|
||
<p>Installation with Docker is straightforward. Adjust the following command so that <code class="highlighter-rouge">/path/to/your/config/</code> points at the folder where you want to store your config and run it:</p>
|
||
<h3><a class="title-link" name="linux" href="#linux"></a> Linux</h3>
|
||
<div class="language-bash highlighter-rouge"><pre class="highlight"><code><span class="gp">$ </span>docker run -d --name<span class="o">=</span><span class="s2">"home-assistant"</span> -v /path/to/your/config:/config -v /etc/localtime:/etc/localtime:ro --net<span class="o">=</span>host homeassistant/home-assistant
|
||
</code></pre>
|
||
</div>
|
||
<h3><a class="title-link" name="macos" href="#macos"></a> macOS</h3>
|
||
<p>When using <code class="highlighter-rouge">docker-ce</code> (or <code class="highlighter-rouge">boot2docker</code>) on macOS, you are unable to map the local timezone to your Docker container (<a href="https://github.com/docker/for-mac/issues/44">Docker issue</a>). Instead of <code class="highlighter-rouge">-v /etc/localtime:/etc/localtime:ro</code>, just pass in the timezone environment variable when you launch the container, ex: <code class="highlighter-rouge">-e "TZ=America/Los_Angeles"</code>. Replace “America/Los_Angeles” with <a href="http://en.wikipedia.org/wiki/List_of_tz_database_time_zones">your timezone</a>.</p>
|
||
<p>If you wish to browse directly to <code class="highlighter-rouge">http://localhost:8123</code> from your macOS host, meaning forward ports directly to the container, replace the <code class="highlighter-rouge">--net=host</code> switch with <code class="highlighter-rouge">-p 8123:8123</code>. More detail can be found in <a href="https://forums.docker.com/t/should-docker-run-net-host-work/14215/10">the docker forums</a>.</p>
|
||
<div class="language-bash highlighter-rouge"><pre class="highlight"><code><span class="gp">$ </span>docker run -d --name<span class="o">=</span><span class="s2">"home-assistant"</span> -v /path/to/your/config:/config -e <span class="s2">"TZ=America/Los_Angeles"</span> -p 8123:8123 homeassistant/home-assistant
|
||
</code></pre>
|
||
</div>
|
||
<p>Alternatively, <code class="highlighter-rouge">docker-compose</code> works with any recent release of <code class="highlighter-rouge">docker-ce</code> on macOS. Note that (further down this page) we provide an example <code class="highlighter-rouge">docker-compose.yml</code> however it differs from the <code class="highlighter-rouge">docker run</code> example above. To make the .yml directives match, you would need to make <em>two</em> changes: first add the equivalent <code class="highlighter-rouge">ports:</code> directive, then <em>remove</em> the <code class="highlighter-rouge">network_mode: host</code> section. This is because <code class="highlighter-rouge">Port mapping is incompatible with network_mode: host:</code>. More details can be found at [Docker networking docs] (https://docs.docker.com/engine/userguide/networking/#default-networks). Note also the <code class="highlighter-rouge">/dev/tty*</code> device name used by your Arduino etc. devices will differ from the Linux example, so the compose <code class="highlighter-rouge">mount:</code> may require updates.</p>
|
||
<h3><a class="title-link" name="windows" href="#windows"></a> Windows</h3>
|
||
<p>When running Home Assistant in Docker on Windows, you may have some difficulty getting ports to map for routing (since the <code class="highlighter-rouge">--net=host</code> switch actually applies to the hypervisor’s network interface). To get around this, you will need to add port proxy ipv4 rules to your local Windows machine, like so (Replacing ‘192.168.1.10’ with whatever your Windows IP is, and ‘10.0.50.2’ with whatever your Docker container’s IP is):</p>
|
||
<div class="highlighter-rouge"><pre class="highlight"><code>netsh interface portproxy add v4tov4 listenaddress=192.168.1.10 listenport=8123 connectaddress=10.0.50.2 connectport=8123
|
||
netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=8123 connectaddress=10.0.50.2 connectport=8123
|
||
</code></pre>
|
||
</div>
|
||
<p>This will let you access your Home Assistant portal from http://localhost:8123, and if you forward port 8123 on your router to your machine IP, the traffic will be forwarded on through to the docker container.</p>
|
||
<h3><a class="title-link" name="synology-nas" href="#synology-nas"></a> Synology NAS</h3>
|
||
<p>As Synology within DSM now supports Docker (with a neat UI), you can simply install Home Assistant using docker without the need for command-line. For details about the package (including compatibility-information, if your NAS is supported), see https://www.synology.com/en-us/dsm/app_packages/Docker</p>
|
||
<p>The steps would be:</p>
|
||
<ul>
|
||
<li>Install “Docker” package on your Synology NAS</li>
|
||
<li>Launch Docker-app and move to “Registry”-section</li>
|
||
<li>Find “homeassistant/home-assistant” with registry and click on “Download”</li>
|
||
<li>Wait for some time until your NAS has pulled the image</li>
|
||
<li>Move to the “Image”-section of the Docker-app</li>
|
||
<li>Click on “Launch”</li>
|
||
<li>Choose a container-name you want (e.g. “homeassistant”)</li>
|
||
<li>Click on “Advanced Settings”</li>
|
||
<li>Set “Enable auto-restart” if you like</li>
|
||
<li>Within “Volume” click on “Add Folder” and choose either an existing folder or add a new folder. The “mount point” has to be “/config”, so that Home Assistant will use it for the configs and logs.</li>
|
||
<li>Within “Network” select “Use same network as Docker Host”</li>
|
||
<li>To ensure that Home Assistant displays the correct timezone go to the “Environment” tab and click the plus sign then add <code class="highlighter-rouge">variable</code> = <code class="highlighter-rouge">TZ</code> & <code class="highlighter-rouge">value</code> = <code class="highlighter-rouge">Europe/London</code> choosing <a href="http://en.wikipedia.org/wiki/List_of_tz_database_time_zones">your correct timezone</a></li>
|
||
<li>Confirm the “Advanced Settings”</li>
|
||
<li>Click on “Next” and then “Apply”</li>
|
||
<li>Your Home Assistant within Docker should now run and will serve the web interface from port 8123 on your Docker host (this will be your Synology NAS IP address - for example <code class="highlighter-rouge">http://192.168.1.10:8123</code>)</li>
|
||
</ul>
|
||
<p>Remark: to update your Home Assistant on your Docker within Synology NAS, you just have to do the following:</p>
|
||
<ul>
|
||
<li>Go to the Docker-app and move to “Image”-section</li>
|
||
<li>Download the “homeassistant/home-assistant” image - don’t care, that it is already there</li>
|
||
<li>wait until the system-message/-notification comes up, that the download is finished (there is no progress bar)</li>
|
||
<li>Move to “Container”-section</li>
|
||
<li>Stop your container if it’s running</li>
|
||
<li>Right-click on it and select “Action”->”Clear”. You won’t lose any data, as all files are stored in your config-directory</li>
|
||
<li>Start the container again - it will then boot up with the new Home Assistant image</li>
|
||
</ul>
|
||
<p>Remark: to restart your Home Assistant within Synology NAS, you just have to do the following:</p>
|
||
<ul>
|
||
<li>Go to the Docker-app and move to “Container”-section</li>
|
||
<li>Right-click on it and select “Action”->”Restart”.</li>
|
||
</ul>
|
||
<p class="note">
|
||
If you want to use a USB Bluetooth adapter or Z-Wave USB Stick with Home Assistant on Synology Docker these instructions do not correctly configure the container to access the USB devices. To configure these devices on your Synology Docker Home Assistant you can follow the instructions provided <a href="https://philhawthorne.com/installing-home-assistant-io-on-a-synology-diskstation-nas/">here</a> by Phil Hawthorne.
|
||
</p>
|
||
<h3><a class="title-link" name="qnap-nas" href="#qnap-nas"></a> QNAP NAS</h3>
|
||
<p>As QNAP within QTS now supports Docker (with a neat UI), you can simply install Home Assistant using docker without the need for command-line. For details about the package (including compatability-information, if your NAS is supported), see https://www.qnap.com/solution/container_station/en/index.php</p>
|
||
<p>The steps would be:</p>
|
||
<ul>
|
||
<li>Install “Container Station” package on your Qnap NAS</li>
|
||
<li>Launch Container Station and move to “Create Container”-section</li>
|
||
<li>Search image “homeassistant/home-assistant” with
|
||
docker hub and click on “Install”</li>
|
||
<li>Choose “latest” version and click next</li>
|
||
<li>Choose a container-name you want (e.g.
|
||
“homeassistant”)</li>
|
||
<li>Click on “Advanced Settings”</li>
|
||
<li>Within “Shared Folders” click on “Volume from host” > “Add” and
|
||
choose either an existing folder or add a new folder. The “mount
|
||
point” has to be “/config”, so that Home Assistant will use it for
|
||
the configs and logs.</li>
|
||
<li>Within “Network” and select Network Mode to “Host”</li>
|
||
<li>To ensure that Home Assistant displays the correct
|
||
timezone go to the “Environment” tab and click the plus sign then add
|
||
<code class="highlighter-rouge">variable</code> = <code class="highlighter-rouge">TZ</code> & <code class="highlighter-rouge">value</code> = <code class="highlighter-rouge">Europe/London</code> choosing <a href="http://en.wikipedia.org/wiki/List_of_tz_database_time_zones">your correct timezone</a></li>
|
||
<li>Click on “Create”</li>
|
||
<li>Wait for some time until your NAS has created the container</li>
|
||
<li>Your Home Assistant within Docker should now run and will serve the web interface from port 8123 on your Docker host (this will be your Qnap NAS IP address - for example <code class="highlighter-rouge">http://192.xxx.xxx.xxx:8123</code>)</li>
|
||
</ul>
|
||
<p>Remark: to update your Home Assistant on your Docker within Qnap NAS, you just remove container and image and do steps again (Don’t remove “config” folder)</p>
|
||
<p>If you want to use a USB Bluetooth adapter or Z-Wave USB Stick with Home Assistant on Qnap Docker, Fallow this step:</p>
|
||
<p><strong>Z-wave:</strong></p>
|
||
<ul>
|
||
<li>Connect to your NAS over SSH</li>
|
||
<li>Load cdc-acm kernel module(when nas restart need to run this command)
|
||
<code class="highlighter-rouge">insmod /usr/local/modules/cdc-acm.ko</code></li>
|
||
<li>
|
||
<p>Find USB devices attached. Type command:
|
||
<code class="highlighter-rouge">ls /dev/tty*</code>
|
||
The above command should show you any USB devices plugged into your NAS. If you have more than one, you may get multiple items returned. Like : <code class="highlighter-rouge">ttyACM0</code></p>
|
||
</li>
|
||
<li>
|
||
<p>Run Docker command:
|
||
<code class="highlighter-rouge">docker run --name home-assistant --net=host --privileged -itd -v /share/CACHEDEV1_DATA/Public/homeassistant/config:/config -e variable=TZ -e value=Europe/London --device /dev/ttyACM0 homeassistant/home-assistant</code></p>
|
||
<p><code class="highlighter-rouge">-v</code> is your config path
|
||
<code class="highlighter-rouge">-e</code> is set timezone</p>
|
||
</li>
|
||
<li>Edit configuration.yaml</li>
|
||
</ul>
|
||
<div class="highlighter-rouge"><pre class="highlight"><code>zwave:
|
||
usb_path: /dev/ttyACM0
|
||
</code></pre>
|
||
</div>
|
||
<p>That will tell Home Assistant where to look for our Z-wave radio.</p>
|
||
<p><strong>Bluetooth:</strong></p>
|
||
<ul>
|
||
<li>Connect to your NAS over SSH</li>
|
||
<li>
|
||
<p>Run Docker command:
|
||
<code class="highlighter-rouge">docker run --name home-assistant --net=host --privileged -itd -v /share/CACHEDEV1_DATA/Public/homeassistant/config:/config -e variable=TZ -e value=Europe/London -v /dev/bus/usb:/dev/bus/usb -v /var/run/dbus:/var/run/dbus homeassistant/home-assistant</code></p>
|
||
<p>First <code class="highlighter-rouge">-v</code> is your config path
|
||
<code class="highlighter-rouge">-e</code> is set timezone</p>
|
||
</li>
|
||
<li>Edit configuration.yaml</li>
|
||
</ul>
|
||
<div class="highlighter-rouge"><pre class="highlight"><code>device_tracker:
|
||
- platform: bluetooth_tracker
|
||
</code></pre>
|
||
</div>
|
||
<h3><a class="title-link" name="restart" href="#restart"></a> Restart</h3>
|
||
<p>If you change the configuration you have to restart the server. To do that you have 2 options.</p>
|
||
<ol>
|
||
<li>You can go to the <img src="/images/screenshots/developer-tool-services-icon.png" alt="service developer tool icon" class="no-shadow" height="38" /> service developer tools, select the service <code class="highlighter-rouge">homeassistant/restart</code> and click “Call Service”.</li>
|
||
<li>Or you can restart it from a terminal by running <code class="highlighter-rouge">docker restart home-assistant</code></li>
|
||
</ol>
|
||
<h3><a class="title-link" name="docker-compose" href="#docker-compose"></a> Docker Compose</h3>
|
||
<p>As the docker command becomes more complex, switching to <code class="highlighter-rouge">docker-compose</code> can be preferable and support automatically restarting on failure or system restart. Create a <code class="highlighter-rouge">docker-compose.yml</code> file:</p>
|
||
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code> <span class="s">version</span><span class="pi">:</span> <span class="s1">'</span><span class="s">3'</span>
|
||
<span class="s">services</span><span class="pi">:</span>
|
||
<span class="s">homeassistant</span><span class="pi">:</span>
|
||
<span class="s">container_name</span><span class="pi">:</span> <span class="s">home-assistant</span>
|
||
<span class="s">image</span><span class="pi">:</span> <span class="s">homeassistant/home-assistant</span>
|
||
<span class="s">volumes</span><span class="pi">:</span>
|
||
<span class="pi">-</span> <span class="s">/path/to/your/config:/config</span>
|
||
<span class="pi">-</span> <span class="s">/etc/localtime:/etc/localtime:ro</span>
|
||
<span class="s">restart</span><span class="pi">:</span> <span class="s">always</span>
|
||
<span class="s">network_mode</span><span class="pi">:</span> <span class="s">host</span>
|
||
</code></pre>
|
||
</div>
|
||
<p>Then start the container with:</p>
|
||
<div class="language-bash highlighter-rouge"><pre class="highlight"><code><span class="gp">$ </span>docker-compose up -d
|
||
</code></pre>
|
||
</div>
|
||
<h3><a class="title-link" name="exposing-devices" href="#exposing-devices"></a> Exposing Devices</h3>
|
||
<p>In order to use z-wave, zigbee or other components that require access to devices, you need to map the appropriate device into the container. Ensure the user that is running the container has the correct privileges to access the <code class="highlighter-rouge">/dev/tty*</code> file, then add the device mapping to your docker command:</p>
|
||
<div class="language-bash highlighter-rouge"><pre class="highlight"><code><span class="gp">$ </span>docker run -d --name<span class="o">=</span><span class="s2">"home-assistant"</span> -v /path/to/your/config:/config -v /etc/localtime:/etc/localtime:ro --device /dev/ttyUSB0:/dev/ttyUSB0 --net<span class="o">=</span>host homeassistant/home-assistant
|
||
</code></pre>
|
||
</div>
|
||
<p>or in a <code class="highlighter-rouge">docker-compose.yml</code> file:</p>
|
||
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code> <span class="s">version</span><span class="pi">:</span> <span class="s1">'</span><span class="s">3'</span>
|
||
<span class="s">services</span><span class="pi">:</span>
|
||
<span class="s">homeassistant</span><span class="pi">:</span>
|
||
<span class="s">container_name</span><span class="pi">:</span> <span class="s">home-assistant</span>
|
||
<span class="s">image</span><span class="pi">:</span> <span class="s">homeassistant/home-assistant</span>
|
||
<span class="s">volumes</span><span class="pi">:</span>
|
||
<span class="pi">-</span> <span class="s">/path/to/your/config:/config</span>
|
||
<span class="pi">-</span> <span class="s">/etc/localtime:/etc/localtime:ro</span>
|
||
<span class="s">devices</span><span class="pi">:</span>
|
||
<span class="pi">-</span> <span class="s">/dev/ttyUSB0:/dev/ttyUSB0</span>
|
||
<span class="pi">-</span> <span class="s">/dev/ttyUSB1:/dev/ttyUSB1</span>
|
||
<span class="pi">-</span> <span class="s">/dev/ttyACM0:/dev/ttyACM0</span>
|
||
<span class="s">restart</span><span class="pi">:</span> <span class="s">always</span>
|
||
<span class="s">network_mode</span><span class="pi">:</span> <span class="s">host</span>
|
||
</code></pre>
|
||
</div>
|
||
</article>
|
||
</div>
|
||
<aside id="sidebar" class="grid__item one-third lap-one-whole palm-one-whole">
|
||
<div class="grid">
|
||
<section class="aside-module grid__item one-whole lap-one-half">
|
||
<div class='section'>
|
||
<h1 class="title delta">Topics</h1>
|
||
<ul class='divided sidebar-menu'>
|
||
<li>
|
||
<b><a href='/faq/'>FAQ </a></b> |
|
||
<b><a href='/docs/glossary/'>Glossary </a></b>
|
||
</li>
|
||
<li>
|
||
<b><a href='/docs/installation/'>Installation </a></b>
|
||
<ul>
|
||
<li><a href='/hassio/'>Hass.io </a></li>
|
||
<li><a href='/docs/installation/virtualenv/'>Python Virtual Env </a></li>
|
||
<li><a href='/docs/installation/hassbian/'>Hassbian </a></li>
|
||
<!--<li><a href='/docs/installation/raspberry-pi-all-in-one/'>Raspberry Pi All-in-One </a></li>-->
|
||
<li><a href='/docs/installation/updating/'>Updating </a></li>
|
||
<li><a href='/docs/installation/troubleshooting/'>Troubleshooting </a></li>
|
||
</ul>
|
||
</li>
|
||
<li>
|
||
<b><a href='/docs/configuration/'>Configuration </a></b>
|
||
<ul>
|
||
<li><a href='/docs/configuration/yaml/'>YAML </a></li>
|
||
<li><a href='/docs/configuration/basic/'>Basic information </a></li>
|
||
<li><a href='/docs/configuration/devices/'>Setting up devices </a></li>
|
||
<li><a href='/docs/configuration/entity-registry/'>Entity Registry </a></li>
|
||
<li><a href='/docs/configuration/customizing-devices/'>Customizing entities </a></li>
|
||
<li><a href='/docs/configuration/troubleshooting/'>Troubleshooting </a></li>
|
||
<li><a href='/docs/configuration/securing/'>Security Check Points </a></li>
|
||
</ul>
|
||
</li>
|
||
<li>
|
||
<b>Advanced Configuration</b>
|
||
<ul>
|
||
<li><a href='/docs/configuration/remote/'>Remote access </a></li>
|
||
<li><a href='/docs/configuration/packages/'>Packages </a></li>
|
||
<li><a href='/docs/configuration/splitting_configuration/'>Splitting up the configuration </a></li>
|
||
<li><a href='/docs/configuration/secrets/'>Storing Secrets </a></li>
|
||
<li><a href='/docs/configuration/templating/'>Templating </a></li>
|
||
<li><a href='/docs/configuration/group_visibility/'>Group Visibility </a></li>
|
||
<li><a href='/docs/configuration/platform_options/'>Entity component platform options </a></li>
|
||
</ul>
|
||
</li>
|
||
<li>
|
||
<b>Core objects</b>
|
||
<ul>
|
||
<li><a href='/docs/configuration/events/'>Events </a></li>
|
||
<li><a href='/docs/configuration/state_object/'>State Objects </a></li>
|
||
</ul>
|
||
</li>
|
||
<li>
|
||
<b><a href='/docs/automation/'>Automation </a></b>
|
||
<ul>
|
||
<li><a href='/docs/automation/examples/'>Examples </a></li>
|
||
<li><a href='/docs/automation/editor/'>Editor </a></li>
|
||
<li><a href='/docs/automation/trigger/'>Triggers </a></li>
|
||
<li><a href='/docs/automation/condition/'>Conditions </a></li>
|
||
<li><a href='/docs/automation/action/'>Actions </a></li>
|
||
<li><a href='/docs/automation/templating/'>Templates </a></li>
|
||
</ul>
|
||
</li>
|
||
<li>
|
||
<b><a href='/docs/frontend/'>Frontend </a></b>
|
||
<ul>
|
||
<li><a href='/docs/frontend/mobile/'>Android/iOS Homescreen </a></li>
|
||
<li><a href='/docs/frontend/webserver/'>Web server fingerprint </a></li>
|
||
<li><a href='/docs/frontend/browsers/'>Browser Compatibility List </a></li>
|
||
</ul>
|
||
</li>
|
||
<li>
|
||
<b><a href='/docs/backend/'>Backend </a></b>
|
||
<ul>
|
||
<li><a href='/docs/backend/database/'>Database </a></li>
|
||
<li><a href='/docs/backend/updater/'>Updater </a></li>
|
||
<li><a href='/developers/api/'>API </a></li>
|
||
</ul>
|
||
</li>
|
||
<li>
|
||
<b><a href='/docs/scripts/'>Scripts </a></b>
|
||
<ul>
|
||
<li><a href='/docs/scripts/service-calls/'>Service Calls </a></li>
|
||
<li><a href='/docs/scripts/conditions/'>Conditions </a></li>
|
||
<li><a href='/docs/scripts/editor/'>Editor </a></li>
|
||
</ul>
|
||
</li>
|
||
<li>
|
||
<b><a href='/docs/tools/'>Tools and Helpers </a></b>
|
||
<ul>
|
||
<li><a href='/docs/tools/dev-tools/'>Developer Tools </a></li>
|
||
<li><a href='/docs/tools/hass/'>hass </a></li>
|
||
<li><a href='/docs/tools/benchmark/'>benchmark </a></li>
|
||
<li><a href='/docs/tools/check_config/'>check_config </a></li>
|
||
<li><a href='/docs/tools/credstash/'>credstash </a></li>
|
||
<li><a href='/docs/tools/db_migrator/'>db_migrator </a></li>
|
||
<li><a href='/docs/tools/ensure_config/'>ensure_config </a></li>
|
||
<li><a href='/docs/tools/influxdb_import/'>influxdb_import </a></li>
|
||
<li><a href='/docs/tools/influxdb_migrator/'>influxdb_migrator </a></li>
|
||
<li><a href='/docs/tools/keyring/'>keyring </a></li>
|
||
</ul>
|
||
</li>
|
||
<li>
|
||
<b><a href='/docs/z-wave/'>Z-Wave </a></b>
|
||
<ul>
|
||
<li><a href='/docs/z-wave/installation/'>Configuring the Z-Wave component </a></li>
|
||
<li><a href='/docs/z-wave/adding/'>Adding devices </a></li>
|
||
<li><a href='/docs/z-wave/control-panel/'>The Z-Wave control panel </a></li>
|
||
<li><a href='/docs/z-wave/controllers/'>Controllers </a></li>
|
||
<li><a href='/docs/z-wave/devices/'>Devices </a> and <a href='/docs/z-wave/entities/'>Entities </a></li>
|
||
<li><a href='/docs/z-wave/query-stage/'>Query Stages </a> for devices</li>
|
||
<li><a href='/docs/z-wave/device-specific/'>Device Specific </a> configuration</li>
|
||
<li><a href='/docs/z-wave/events/'>Events </a> and <a href='/docs/z-wave/services/'>Services </a></li>
|
||
</ul>
|
||
</li>
|
||
<li>
|
||
<b><a href='/docs/mqtt/'>MQTT </a></b>
|
||
<ul>
|
||
<li><a href='/docs/mqtt/broker/'>Broker </a></li>
|
||
<li><a href='/docs/mqtt/certificate/'>Certificate </a></li>
|
||
<li><a href='/docs/mqtt/discovery/'>Discovery </a></li>
|
||
<li><a href='/docs/mqtt/service/'>Publish service </a></li>
|
||
<li><a href='/docs/mqtt/birth_will/'>Birth and last will messages </a></li>
|
||
<li><a href='/docs/mqtt/testing/'>Testing your setup </a></li>
|
||
<li><a href='/docs/mqtt/logging/'>Logging </a></li>
|
||
<li><a href='/docs/mqtt/processing_json/'>Processing JSON </a></li>
|
||
</ul>
|
||
</li>
|
||
<li>
|
||
<b><a href='/docs/ecosystem/ios/'>iOS </a></b>
|
||
<ul>
|
||
<li><a href='/docs/ecosystem/ios/notifications/basic/'>Basic notifications </a></li>
|
||
<ul>
|
||
<li><a href='/docs/ecosystem/ios/notifications/sounds/'>Sounds </a></li>
|
||
<li><a href='/docs/ecosystem/ios/notifications/architecture/'>Architecture </a></li>
|
||
<li><a href='/docs/ecosystem/ios/notifications/privacy_security_rate_limits/'>Privacy, rate limiting and security </a></li>
|
||
</ul>
|
||
<li>Advanced notifications</li>
|
||
<ul>
|
||
<li><a href='/docs/ecosystem/ios/notifications/attachments/'>Attachments </a></li>
|
||
<li><a href='/docs/ecosystem/ios/notifications/content_extensions/'>Dynamic content </a></li>
|
||
<li><a href='/docs/ecosystem/ios/notifications/actions/'>Actionable notifications </a></li>
|
||
<li><a href='/docs/ecosystem/ios/notifications/requesting_location_updates/'>Requesting location updates </a></li>
|
||
</ul>
|
||
<li><a href='/docs/ecosystem/ios/location/'>Location Tracking </a></li>
|
||
<li><a href='/docs/ecosystem/ios/integration/'>Integration with other apps </a></li>
|
||
</ul>
|
||
</li>
|
||
<li>
|
||
<a href='/docs/ecosystem/'>Ecosystem </a>
|
||
<ul>
|
||
<li>
|
||
<a href='/docs/autostart/'>Autostart </a>
|
||
<ul>
|
||
<li><a href='/docs/autostart/systemd/'>systemd (Linux) </a></li>
|
||
<li><a href='/docs/autostart/upstart/'>Upstart (Linux) </a></li>
|
||
<li><a href='/docs/autostart/init.d/'>init.d (Linux) </a></li>
|
||
<li><a href='/docs/autostart/macos/'>macOS </a></li>
|
||
<li><a href='/docs/autostart/synology/'>Synology NAS </a></li>
|
||
</ul>
|
||
</li>
|
||
<li>
|
||
<a href='/docs/ecosystem/appdaemon/'>AppDaemon </a>
|
||
</li>
|
||
<li>
|
||
<a href='/docs/ecosystem/hadashboard/'>HADashboard </a>
|
||
</li>
|
||
<li>
|
||
<a href='/docs/ecosystem/notebooks/'>Notebooks </a>
|
||
<ul>
|
||
<li><a href='/docs/ecosystem/notebooks/'>Introduction </a></li>
|
||
<li><a href='/docs/ecosystem/notebooks/installation/'>Installation </a></li>
|
||
<li><a href='/docs/ecosystem/notebooks/graph/'>Graph </a></li>
|
||
<li><a href='/docs/ecosystem/notebooks/api/'>Home Assistant API </a></li>
|
||
<li><a href='/docs/ecosystem/notebooks/database/'>Database </a></li>
|
||
<li><a href='/docs/ecosystem/notebooks/stats/'>Statistics </a></li>
|
||
</ul>
|
||
</li>
|
||
<li>
|
||
Remote access
|
||
<ul>
|
||
<li><a href='/docs/ecosystem/apache/'>Apache </a></li>
|
||
<li><a href='/docs/ecosystem/caddy/'>Caddy Server </a></li>
|
||
<li><a href='/docs/ecosystem/nginx/'>NGINX </a></li>
|
||
<li><a href='/docs/ecosystem/nginx_subdomain/'>NGINX with subdomain</a></li>
|
||
<li><a href='/docs/ecosystem/tor/'>Tor Onion Service </a></li>
|
||
</ul>
|
||
</li>
|
||
<li>
|
||
<a href='/docs/ecosystem/certificates/'>Certificates </a>
|
||
<ul>
|
||
<li><a href='/docs/ecosystem/certificates/tls_self_signed_certificate/'>Self-signed certificate </a></li>
|
||
<li><a href='/docs/ecosystem/certificates/tls_domain_certificate/'>Certificate domain owners </a></li>
|
||
<li><a href='/docs/ecosystem/certificates/lets_encrypt/'>Let's Encrypt (detailed) </a></li>
|
||
</ul>
|
||
</li>
|
||
<li>
|
||
Backup
|
||
<ul>
|
||
<li><a href='/docs/ecosystem/backup/backup_github/'>Backup to GitHub </a></li>
|
||
<li><a href='/docs/ecosystem/backup/backup_dropbox/'>Backup to Dropbox </a></li>
|
||
<li><a href='/docs/ecosystem/backup/backup_usb/'>Backup to USB device </a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href='/docs/ecosystem/scenegen/'>scenegen </a></li>
|
||
<li><a href='/docs/ecosystem/synology/'>Synology </a></li>
|
||
<li><a href='/docs/ecosystem/hass-configurator/'>HASS Configurator </a></li>
|
||
</ul>
|
||
</ul>
|
||
</div>
|
||
</section>
|
||
</div>
|
||
</aside>
|
||
</div>
|
||
</div>
|
||
<footer>
|
||
<div class="grid-wrapper">
|
||
<div class="grid">
|
||
<div class="grid__item">
|
||
<div class="copyright">
|
||
<a rel="me" href='https://twitter.com/home_assistant'><i class="icon-twitter"></i></a>
|
||
<a rel="me" href='https://facebook.com/homeassistantio'><i class="icon-facebook"></i></a>
|
||
<a rel="me" href='https://plus.google.com/110560654828510104551'><i class="icon-google-plus"></i></a>
|
||
<a rel="me" href='https://github.com/home-assistant/home-assistant'><i class="icon-github"></i></a>
|
||
<div class="credit">
|
||
Contact us at <a href='mailto:hello@home-assistant.io'>hello@home-assistant.io</a> (no support!).<br>
|
||
Website powered by <a href='http://jekyllrb.com/'>Jekyll</a> and the <a href='https://github.com/coogie/oscailte'>Oscalite theme</a>.<br />
|
||
Hosted by <a href='https://pages.github.com/'>GitHub</a> and served by <a href='https://cloudflare.com'>CloudFlare</a>.
|
||
</div>
|
||
<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png" /></a><br /><span xmlns:dct="http://purl.org/dc/terms/" property="dct:title">home-assistant.io</span> is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/">Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License</a>.
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</footer>
|
||
<script>
|
||
var _gaq=[['_setAccount','UA-57927901-1'],['_trackPageview']];
|
||
(function(d,t){var g=d.createElement(t),s=d.getElementsByTagName(t)[0];
|
||
g.src=('https:'==location.protocol?'//ssl':'//www')+'.google-analytics.com/ga.js';
|
||
s.parentNode.insertBefore(g,s)}(document,'script'));
|
||
</script>
|
||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.css" />
|
||
<script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script>
|
||
<script type="text/javascript">
|
||
docsearch({
|
||
apiKey: 'ae96d94b201c5444c8a443093edf3efb',
|
||
indexName: 'home-assistant',
|
||
inputSelector: '#search',
|
||
debug: false // Set debug to true if you want to inspect the dropdown
|
||
});
|
||
document.querySelector('.search .close').addEventListener('click', function(ev) {
|
||
ev.preventDefault();
|
||
document.querySelector('.search-container').style.display = 'none';
|
||
});
|
||
document.querySelector('.show-search').addEventListener('click', function(ev) {
|
||
ev.preventDefault();
|
||
document.querySelector('.search-container').style.display = 'block';
|
||
document.getElementById('toggle').checked = false;
|
||
document.querySelector('.search-container input').focus();
|
||
});
|
||
</script>
|
||
</body>
|
||
</html>
|