Site updated at 2017-07-15 06:02:59 UTC

This commit is contained in:
Travis CI 2017-07-15 06:02:59 +00:00
parent 7c26528c2c
commit 7710094925
121 changed files with 4360 additions and 2316 deletions

View file

@ -8,7 +8,7 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Bluetooth BCM43xx - Home Assistant</title> <title>Bluetooth BCM43xx - Home Assistant</title>
<meta name="author" content="Home Assistant"> <meta name="author" content="Home Assistant">
<meta name="description" content="Activate bluetooth for bcm43xx"> <meta name="description" content="Activate the BCM43xx Bluetooth chipset on a Raspberry Pi 3.">
<meta name="viewport" content="width=device-width"> <meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/addons/bluetooth_bcm43xx/"> <link rel="canonical" href="https://home-assistant.io/addons/bluetooth_bcm43xx/">
<meta property="fb:app_id" content="338291289691179"> <meta property="fb:app_id" content="338291289691179">
@ -16,12 +16,12 @@
<meta property="og:site_name" content="Home Assistant"> <meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/addons/bluetooth_bcm43xx/"> <meta property="og:url" content="https://home-assistant.io/addons/bluetooth_bcm43xx/">
<meta property="og:type" content="article"> <meta property="og:type" content="article">
<meta property="og:description" content="Activate bluetooth for bcm43xx"> <meta property="og:description" content="Activate the BCM43xx Bluetooth chipset on a Raspberry Pi 3.">
<meta property="og:image" content="https://home-assistant.io/images/default-social.png"> <meta property="og:image" content="https://home-assistant.io/images/default-social.png">
<meta name="twitter:card" content="summary_large_image"> <meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@home_assistant"> <meta name="twitter:site" content="@home_assistant">
<meta name="twitter:title" content="Bluetooth BCM43xx"> <meta name="twitter:title" content="Bluetooth BCM43xx">
<meta name="twitter:description" content="Activate bluetooth for bcm43xx"> <meta name="twitter:description" content="Activate the BCM43xx Bluetooth chipset on a Raspberry Pi 3.">
<meta name="twitter:image" content="https://home-assistant.io/images/default-social.png"> <meta name="twitter:image" content="https://home-assistant.io/images/default-social.png">
<link href="/stylesheets/screen.css" media="screen, projection" rel="stylesheet"> <link href="/stylesheets/screen.css" media="screen, projection" rel="stylesheet">
<link href="/atom.xml" rel="alternate" title="Home Assistant" type="application/atom+xml"> <link href="/atom.xml" rel="alternate" title="Home Assistant" type="application/atom+xml">
@ -75,7 +75,8 @@
</h1> </h1>
</header> </header>
<hr class="divider"> <hr class="divider">
<p>Start Bluetooth for BCM43xx chipset on startup. Like Raspberry Pi3</p> <p>Start this add-on to activate the BCM43xx Bluetooth chipset.</p>
<p>Supported platforms: Raspberry Pi 3.</p>
</article> </article>
</div> </div>
<aside id="sidebar" class="grid__item one-third lap-one-whole palm-one-whole"> <aside id="sidebar" class="grid__item one-third lap-one-whole palm-one-whole">
@ -90,24 +91,21 @@
<li><a href='/hassio/installation/'>Installation </a></li> <li><a href='/hassio/installation/'>Installation </a></li>
<li><a href='/addons/'>Available add-ons </a></li> <li><a href='/addons/'>Available add-ons </a></li>
<li><a href='/hassio/installing_third_party_addons/'>Installing third-party add-ons </a></li> <li><a href='/hassio/installing_third_party_addons/'>Installing third-party add-ons </a></li>
<li><a href='/hassio/external_storage/'>External storage </a></li>
<li><a href='/hassio/run_local/'>Execute local things </a></li>
<li><a href='/hassio/architecture/'>Architecture </a></li>
</ul> </ul>
</li> </li>
</ul> </ul>
<ul class='divided sidebar-menu'> <ul class='divided sidebar-menu'>
<li> <li>
<a href='/hassio/addon_development/'>Add-on Development </a> Advanced
<ul> <ul>
<li><a href='/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li> <li><a href='/hassio/zwave/'>Z-Wave </a></li>
<li><a href='/hassio/addon_config/'>Configuration </a></li> <li><a href='/hassio/external_storage/'>External storage </a></li>
<li><a href='/hassio/addon_testing/'>Local Testing </a></li> <li><a href='/hassio/run_local/'>Execute local things </a></li>
<li><a href='/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/hassio/addon_repository/'>Repositories </a></li>
</ul> </ul>
</li> </li>
<li><a href='/hassio/debugging/'>Debugging Hass.io </a></li> </ul>
<ul class='divided sidebar-menu'>
<li><a href='/developers/hassio/addon_development/'>Looking to create an add-on?</a></li>
</ul> </ul>
</div> </div>
</section> </section>

View file

@ -8,7 +8,7 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Check Home Assistant configuration - Home Assistant</title> <title>Check Home Assistant configuration - Home Assistant</title>
<meta name="author" content="Home Assistant"> <meta name="author" content="Home Assistant">
<meta name="description" content="Check Home Assistant configuration against a new version"> <meta name="description" content="Check your current Home Assistant configuration against a new version">
<meta name="viewport" content="width=device-width"> <meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/addons/check_config/"> <link rel="canonical" href="https://home-assistant.io/addons/check_config/">
<meta property="fb:app_id" content="338291289691179"> <meta property="fb:app_id" content="338291289691179">
@ -16,12 +16,12 @@
<meta property="og:site_name" content="Home Assistant"> <meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/addons/check_config/"> <meta property="og:url" content="https://home-assistant.io/addons/check_config/">
<meta property="og:type" content="article"> <meta property="og:type" content="article">
<meta property="og:description" content="Check Home Assistant configuration against a new version"> <meta property="og:description" content="Check your current Home Assistant configuration against a new version">
<meta property="og:image" content="https://home-assistant.io/images/default-social.png"> <meta property="og:image" content="https://home-assistant.io/images/default-social.png">
<meta name="twitter:card" content="summary_large_image"> <meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@home_assistant"> <meta name="twitter:site" content="@home_assistant">
<meta name="twitter:title" content="Check Home Assistant configuration"> <meta name="twitter:title" content="Check Home Assistant configuration">
<meta name="twitter:description" content="Check Home Assistant configuration against a new version"> <meta name="twitter:description" content="Check your current Home Assistant configuration against a new version">
<meta name="twitter:image" content="https://home-assistant.io/images/default-social.png"> <meta name="twitter:image" content="https://home-assistant.io/images/default-social.png">
<link href="/stylesheets/screen.css" media="screen, projection" rel="stylesheet"> <link href="/stylesheets/screen.css" media="screen, projection" rel="stylesheet">
<link href="/atom.xml" rel="alternate" title="Home Assistant" type="application/atom+xml"> <link href="/atom.xml" rel="alternate" title="Home Assistant" type="application/atom+xml">
@ -99,24 +99,21 @@
<li><a href='/hassio/installation/'>Installation </a></li> <li><a href='/hassio/installation/'>Installation </a></li>
<li><a href='/addons/'>Available add-ons </a></li> <li><a href='/addons/'>Available add-ons </a></li>
<li><a href='/hassio/installing_third_party_addons/'>Installing third-party add-ons </a></li> <li><a href='/hassio/installing_third_party_addons/'>Installing third-party add-ons </a></li>
<li><a href='/hassio/external_storage/'>External storage </a></li>
<li><a href='/hassio/run_local/'>Execute local things </a></li>
<li><a href='/hassio/architecture/'>Architecture </a></li>
</ul> </ul>
</li> </li>
</ul> </ul>
<ul class='divided sidebar-menu'> <ul class='divided sidebar-menu'>
<li> <li>
<a href='/hassio/addon_development/'>Add-on Development </a> Advanced
<ul> <ul>
<li><a href='/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li> <li><a href='/hassio/zwave/'>Z-Wave </a></li>
<li><a href='/hassio/addon_config/'>Configuration </a></li> <li><a href='/hassio/external_storage/'>External storage </a></li>
<li><a href='/hassio/addon_testing/'>Local Testing </a></li> <li><a href='/hassio/run_local/'>Execute local things </a></li>
<li><a href='/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/hassio/addon_repository/'>Repositories </a></li>
</ul> </ul>
</li> </li>
<li><a href='/hassio/debugging/'>Debugging Hass.io </a></li> </ul>
<ul class='divided sidebar-menu'>
<li><a href='/developers/hassio/addon_development/'>Looking to create an add-on?</a></li>
</ul> </ul>
</div> </div>
</section> </section>

View file

@ -8,7 +8,7 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>DHCP server - Home Assistant</title> <title>DHCP server - Home Assistant</title>
<meta name="author" content="Home Assistant"> <meta name="author" content="Home Assistant">
<meta name="description" content="A simple dhcp server"> <meta name="description" content="A simple DHCP server.">
<meta name="viewport" content="width=device-width"> <meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/addons/dhcp_server/"> <link rel="canonical" href="https://home-assistant.io/addons/dhcp_server/">
<meta property="fb:app_id" content="338291289691179"> <meta property="fb:app_id" content="338291289691179">
@ -16,12 +16,12 @@
<meta property="og:site_name" content="Home Assistant"> <meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/addons/dhcp_server/"> <meta property="og:url" content="https://home-assistant.io/addons/dhcp_server/">
<meta property="og:type" content="article"> <meta property="og:type" content="article">
<meta property="og:description" content="A simple dhcp server"> <meta property="og:description" content="A simple DHCP server.">
<meta property="og:image" content="https://home-assistant.io/images/default-social.png"> <meta property="og:image" content="https://home-assistant.io/images/default-social.png">
<meta name="twitter:card" content="summary_large_image"> <meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@home_assistant"> <meta name="twitter:site" content="@home_assistant">
<meta name="twitter:title" content="DHCP server"> <meta name="twitter:title" content="DHCP server">
<meta name="twitter:description" content="A simple dhcp server"> <meta name="twitter:description" content="A simple DHCP server.">
<meta name="twitter:image" content="https://home-assistant.io/images/default-social.png"> <meta name="twitter:image" content="https://home-assistant.io/images/default-social.png">
<link href="/stylesheets/screen.css" media="screen, projection" rel="stylesheet"> <link href="/stylesheets/screen.css" media="screen, projection" rel="stylesheet">
<link href="/atom.xml" rel="alternate" title="Home Assistant" type="application/atom+xml"> <link href="/atom.xml" rel="alternate" title="Home Assistant" type="application/atom+xml">
@ -75,7 +75,7 @@
</h1> </h1>
</header> </header>
<hr class="divider"> <hr class="divider">
<p>Create a simple DHCP server for your network and allow set fix ip for some devices.</p> <p>Create a simple DHCP server for your network and allow setting fixed IPs for devices.</p>
<div class="language-json highlighter-rouge"><pre class="highlight"><code><span class="p">{</span><span class="w"> <div class="language-json highlighter-rouge"><pre class="highlight"><code><span class="p">{</span><span class="w">
</span><span class="nt">"domain"</span><span class="p">:</span><span class="w"> </span><span class="s2">"mynetwork.local"</span><span class="p">,</span><span class="w"> </span><span class="nt">"domain"</span><span class="p">:</span><span class="w"> </span><span class="s2">"mynetwork.local"</span><span class="p">,</span><span class="w">
</span><span class="nt">"dns"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s2">"8.8.8.8"</span><span class="p">,</span><span class="w"> </span><span class="s2">"8.8.4.4"</span><span class="p">],</span><span class="w"> </span><span class="nt">"dns"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s2">"8.8.8.8"</span><span class="p">,</span><span class="w"> </span><span class="s2">"8.8.4.4"</span><span class="p">],</span><span class="w">
@ -137,24 +137,21 @@
<li><a href='/hassio/installation/'>Installation </a></li> <li><a href='/hassio/installation/'>Installation </a></li>
<li><a href='/addons/'>Available add-ons </a></li> <li><a href='/addons/'>Available add-ons </a></li>
<li><a href='/hassio/installing_third_party_addons/'>Installing third-party add-ons </a></li> <li><a href='/hassio/installing_third_party_addons/'>Installing third-party add-ons </a></li>
<li><a href='/hassio/external_storage/'>External storage </a></li>
<li><a href='/hassio/run_local/'>Execute local things </a></li>
<li><a href='/hassio/architecture/'>Architecture </a></li>
</ul> </ul>
</li> </li>
</ul> </ul>
<ul class='divided sidebar-menu'> <ul class='divided sidebar-menu'>
<li> <li>
<a href='/hassio/addon_development/'>Add-on Development </a> Advanced
<ul> <ul>
<li><a href='/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li> <li><a href='/hassio/zwave/'>Z-Wave </a></li>
<li><a href='/hassio/addon_config/'>Configuration </a></li> <li><a href='/hassio/external_storage/'>External storage </a></li>
<li><a href='/hassio/addon_testing/'>Local Testing </a></li> <li><a href='/hassio/run_local/'>Execute local things </a></li>
<li><a href='/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/hassio/addon_repository/'>Repositories </a></li>
</ul> </ul>
</li> </li>
<li><a href='/hassio/debugging/'>Debugging Hass.io </a></li> </ul>
<ul class='divided sidebar-menu'>
<li><a href='/developers/hassio/addon_development/'>Looking to create an add-on?</a></li>
</ul> </ul>
</div> </div>
</section> </section>

View file

@ -8,7 +8,7 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Dnsmasq - Home Assistant</title> <title>Dnsmasq - Home Assistant</title>
<meta name="author" content="Home Assistant"> <meta name="author" content="Home Assistant">
<meta name="description" content="A simple dns server with benefits."> <meta name="description" content="A simple DNS server.">
<meta name="viewport" content="width=device-width"> <meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/addons/dnsmasq/"> <link rel="canonical" href="https://home-assistant.io/addons/dnsmasq/">
<meta property="fb:app_id" content="338291289691179"> <meta property="fb:app_id" content="338291289691179">
@ -16,12 +16,12 @@
<meta property="og:site_name" content="Home Assistant"> <meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/addons/dnsmasq/"> <meta property="og:url" content="https://home-assistant.io/addons/dnsmasq/">
<meta property="og:type" content="article"> <meta property="og:type" content="article">
<meta property="og:description" content="A simple dns server with benefits."> <meta property="og:description" content="A simple DNS server.">
<meta property="og:image" content="https://home-assistant.io/images/default-social.png"> <meta property="og:image" content="https://home-assistant.io/images/default-social.png">
<meta name="twitter:card" content="summary_large_image"> <meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@home_assistant"> <meta name="twitter:site" content="@home_assistant">
<meta name="twitter:title" content="Dnsmasq"> <meta name="twitter:title" content="Dnsmasq">
<meta name="twitter:description" content="A simple dns server with benefits."> <meta name="twitter:description" content="A simple DNS server.">
<meta name="twitter:image" content="https://home-assistant.io/images/default-social.png"> <meta name="twitter:image" content="https://home-assistant.io/images/default-social.png">
<link href="/stylesheets/screen.css" media="screen, projection" rel="stylesheet"> <link href="/stylesheets/screen.css" media="screen, projection" rel="stylesheet">
<link href="/atom.xml" rel="alternate" title="Home Assistant" type="application/atom+xml"> <link href="/atom.xml" rel="alternate" title="Home Assistant" type="application/atom+xml">
@ -75,7 +75,7 @@
</h1> </h1>
</header> </header>
<hr class="divider"> <hr class="divider">
<p>Setup and manage a <a href="http://thekelleys.org.uk/dnsmasq/doc.html">Dnsmasq</a> dns server. This allow your to manipulate some dns requests. I.e. that inside your network, your homeassistant domain will resolve with a internal address.</p> <p>Setup and manage a <a href="http://thekelleys.org.uk/dnsmasq/doc.html">Dnsmasq</a> DNS server. This allows you to manipulate DNS requests. For example, you can have your Home Assistant domain resolve with an internal address inside your network.</p>
<p class="note info"> <p class="note info">
<code class="highlighter-rouge">interface</code> options are for resinos based installation. On other system you can set it to <code class="highlighter-rouge">""</code>, for listen on every interface. <code class="highlighter-rouge">interface</code> options are for resinos based installation. On other system you can set it to <code class="highlighter-rouge">""</code>, for listen on every interface.
</p> </p>
@ -112,24 +112,21 @@
<li><a href='/hassio/installation/'>Installation </a></li> <li><a href='/hassio/installation/'>Installation </a></li>
<li><a href='/addons/'>Available add-ons </a></li> <li><a href='/addons/'>Available add-ons </a></li>
<li><a href='/hassio/installing_third_party_addons/'>Installing third-party add-ons </a></li> <li><a href='/hassio/installing_third_party_addons/'>Installing third-party add-ons </a></li>
<li><a href='/hassio/external_storage/'>External storage </a></li>
<li><a href='/hassio/run_local/'>Execute local things </a></li>
<li><a href='/hassio/architecture/'>Architecture </a></li>
</ul> </ul>
</li> </li>
</ul> </ul>
<ul class='divided sidebar-menu'> <ul class='divided sidebar-menu'>
<li> <li>
<a href='/hassio/addon_development/'>Add-on Development </a> Advanced
<ul> <ul>
<li><a href='/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li> <li><a href='/hassio/zwave/'>Z-Wave </a></li>
<li><a href='/hassio/addon_config/'>Configuration </a></li> <li><a href='/hassio/external_storage/'>External storage </a></li>
<li><a href='/hassio/addon_testing/'>Local Testing </a></li> <li><a href='/hassio/run_local/'>Execute local things </a></li>
<li><a href='/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/hassio/addon_repository/'>Repositories </a></li>
</ul> </ul>
</li> </li>
<li><a href='/hassio/debugging/'>Debugging Hass.io </a></li> </ul>
<ul class='divided sidebar-menu'>
<li><a href='/developers/hassio/addon_development/'>Looking to create an add-on?</a></li>
</ul> </ul>
</div> </div>
</section> </section>

View file

@ -102,24 +102,21 @@
<li><a href='/hassio/installation/'>Installation </a></li> <li><a href='/hassio/installation/'>Installation </a></li>
<li><a href='/addons/'>Available add-ons </a></li> <li><a href='/addons/'>Available add-ons </a></li>
<li><a href='/hassio/installing_third_party_addons/'>Installing third-party add-ons </a></li> <li><a href='/hassio/installing_third_party_addons/'>Installing third-party add-ons </a></li>
<li><a href='/hassio/external_storage/'>External storage </a></li>
<li><a href='/hassio/run_local/'>Execute local things </a></li>
<li><a href='/hassio/architecture/'>Architecture </a></li>
</ul> </ul>
</li> </li>
</ul> </ul>
<ul class='divided sidebar-menu'> <ul class='divided sidebar-menu'>
<li> <li>
<a href='/hassio/addon_development/'>Add-on Development </a> Advanced
<ul> <ul>
<li><a href='/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li> <li><a href='/hassio/zwave/'>Z-Wave </a></li>
<li><a href='/hassio/addon_config/'>Configuration </a></li> <li><a href='/hassio/external_storage/'>External storage </a></li>
<li><a href='/hassio/addon_testing/'>Local Testing </a></li> <li><a href='/hassio/run_local/'>Execute local things </a></li>
<li><a href='/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/hassio/addon_repository/'>Repositories </a></li>
</ul> </ul>
</li> </li>
<li><a href='/hassio/debugging/'>Debugging Hass.io </a></li> </ul>
<ul class='divided sidebar-menu'>
<li><a href='/developers/hassio/addon_development/'>Looking to create an add-on?</a></li>
</ul> </ul>
</div> </div>
</section> </section>

View file

@ -77,18 +77,58 @@
<hr class="divider"> <hr class="divider">
<p>Add-ons for Hass.io allows the user to extend the functionality around Home Assistant. This can be running an application that Home Assistant can integrate with (like an MQTT broker) or to share the configuration via Samba for easy editing from other computers. Add-ons can be configured via the Hass.io panel in Home Assistant.</p> <p>Add-ons for Hass.io allows the user to extend the functionality around Home Assistant. This can be running an application that Home Assistant can integrate with (like an MQTT broker) or to share the configuration via Samba for easy editing from other computers. Add-ons can be configured via the Hass.io panel in Home Assistant.</p>
<ul> <ul>
<li><a href='/addons/bluetooth_bcm43xx/'>Bluetooth BCM43xx</a></li> <li>
<li><a href='/addons/check_config/'>Check Home Assistant configuration</a></li> <a href='/addons/bluetooth_bcm43xx/'>Bluetooth BCM43xx</a><br>
<li><a href='/addons/dhcp_server/'>DHCP server</a></li> Activate the BCM43xx Bluetooth chipset on a Raspberry Pi 3.
<li><a href='/addons/dnsmasq/'>Dnsmasq</a></li> </li>
<li><a href='/addons/duckdns/'>Duck DNS</a></li> <li>
<li><a href='/addons/lets_encrypt/'>Let's Encrypt</a></li> <a href='/addons/check_config/'>Check Home Assistant configuration</a><br>
<li><a href='/addons/mariadb/'>MariaDB</a></li> Check your current Home Assistant configuration against a new version
<li><a href='/addons/mosquitto/'>Mosquitto MQTT broker</a></li> </li>
<li><a href='/addons/nginx_proxy/'>Nginx SSL proxy</a></li> <li>
<li><a href='/addons/ssh/'>SSH Server</a></li> <a href='/addons/dhcp_server/'>DHCP server</a><br>
<li><a href='/addons/samba/'>Samba</a></li> A simple DHCP server.
</li>
<li>
<a href='/addons/dnsmasq/'>Dnsmasq</a><br>
A simple DNS server.
</li>
<li>
<a href='/addons/duckdns/'>Duck DNS</a><br>
Automatically update your Duck DNS IP address.
</li>
<li>
<a href='/addons/lets_encrypt/'>Let's Encrypt</a><br>
Automatically manage your SSL certificate using Let's Encrypt.
</li>
<li>
<a href='/addons/mariadb/'>MariaDB</a><br>
MariaDB Server is one of the most popular database servers in the world.
</li>
<li>
<a href='/addons/mosquitto/'>Mosquitto MQTT broker</a><br>
Fast and reliable MQTT broker.
</li>
<li>
<a href='/addons/nginx_proxy/'>Nginx SSL proxy</a><br>
Nginx Home Assistant SSL proxy
</li>
<li>
<a href='/addons/ssh/'>SSH Server</a><br>
Allow logging in remotely to Hass.io using SSH.
</li>
<li>
<a href='/addons/samba/'>Samba</a><br>
Manage your Home Assistant and custom addons over Samba.
</li>
<li>
<a href='/addons/snips/'>Snips.ai</a><br>
Enhance your Hass.io installation with a local voice assistant.
</li>
</ul> </ul>
<p>
Check the Hass.io forums for <a href='https://community.home-assistant.io/tags/hassio-repository'>add-on repositories managed by the community</a>.
</p>
</article> </article>
</div> </div>
<aside id="sidebar" class="grid__item one-third lap-one-whole palm-one-whole"> <aside id="sidebar" class="grid__item one-third lap-one-whole palm-one-whole">
@ -103,24 +143,21 @@
<li><a href='/hassio/installation/'>Installation </a></li> <li><a href='/hassio/installation/'>Installation </a></li>
<li><a class='active' href='/addons/'>Available add-ons </a></li> <li><a class='active' href='/addons/'>Available add-ons </a></li>
<li><a href='/hassio/installing_third_party_addons/'>Installing third-party add-ons </a></li> <li><a href='/hassio/installing_third_party_addons/'>Installing third-party add-ons </a></li>
<li><a href='/hassio/external_storage/'>External storage </a></li>
<li><a href='/hassio/run_local/'>Execute local things </a></li>
<li><a href='/hassio/architecture/'>Architecture </a></li>
</ul> </ul>
</li> </li>
</ul> </ul>
<ul class='divided sidebar-menu'> <ul class='divided sidebar-menu'>
<li> <li>
<a href='/hassio/addon_development/'>Add-on Development </a> Advanced
<ul> <ul>
<li><a href='/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li> <li><a href='/hassio/zwave/'>Z-Wave </a></li>
<li><a href='/hassio/addon_config/'>Configuration </a></li> <li><a href='/hassio/external_storage/'>External storage </a></li>
<li><a href='/hassio/addon_testing/'>Local Testing </a></li> <li><a href='/hassio/run_local/'>Execute local things </a></li>
<li><a href='/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/hassio/addon_repository/'>Repositories </a></li>
</ul> </ul>
</li> </li>
<li><a href='/hassio/debugging/'>Debugging Hass.io </a></li> </ul>
<ul class='divided sidebar-menu'>
<li><a href='/developers/hassio/addon_development/'>Looking to create an add-on?</a></li>
</ul> </ul>
</div> </div>
</section> </section>

View file

@ -113,24 +113,21 @@ This add-on need port 80/443 to verify the certificate request, please stop all
<li><a href='/hassio/installation/'>Installation </a></li> <li><a href='/hassio/installation/'>Installation </a></li>
<li><a href='/addons/'>Available add-ons </a></li> <li><a href='/addons/'>Available add-ons </a></li>
<li><a href='/hassio/installing_third_party_addons/'>Installing third-party add-ons </a></li> <li><a href='/hassio/installing_third_party_addons/'>Installing third-party add-ons </a></li>
<li><a href='/hassio/external_storage/'>External storage </a></li>
<li><a href='/hassio/run_local/'>Execute local things </a></li>
<li><a href='/hassio/architecture/'>Architecture </a></li>
</ul> </ul>
</li> </li>
</ul> </ul>
<ul class='divided sidebar-menu'> <ul class='divided sidebar-menu'>
<li> <li>
<a href='/hassio/addon_development/'>Add-on Development </a> Advanced
<ul> <ul>
<li><a href='/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li> <li><a href='/hassio/zwave/'>Z-Wave </a></li>
<li><a href='/hassio/addon_config/'>Configuration </a></li> <li><a href='/hassio/external_storage/'>External storage </a></li>
<li><a href='/hassio/addon_testing/'>Local Testing </a></li> <li><a href='/hassio/run_local/'>Execute local things </a></li>
<li><a href='/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/hassio/addon_repository/'>Repositories </a></li>
</ul> </ul>
</li> </li>
<li><a href='/hassio/debugging/'>Debugging Hass.io </a></li> </ul>
<ul class='divided sidebar-menu'>
<li><a href='/developers/hassio/addon_development/'>Looking to create an add-on?</a></li>
</ul> </ul>
</div> </div>
</section> </section>

View file

@ -135,24 +135,21 @@
<li><a href='/hassio/installation/'>Installation </a></li> <li><a href='/hassio/installation/'>Installation </a></li>
<li><a href='/addons/'>Available add-ons </a></li> <li><a href='/addons/'>Available add-ons </a></li>
<li><a href='/hassio/installing_third_party_addons/'>Installing third-party add-ons </a></li> <li><a href='/hassio/installing_third_party_addons/'>Installing third-party add-ons </a></li>
<li><a href='/hassio/external_storage/'>External storage </a></li>
<li><a href='/hassio/run_local/'>Execute local things </a></li>
<li><a href='/hassio/architecture/'>Architecture </a></li>
</ul> </ul>
</li> </li>
</ul> </ul>
<ul class='divided sidebar-menu'> <ul class='divided sidebar-menu'>
<li> <li>
<a href='/hassio/addon_development/'>Add-on Development </a> Advanced
<ul> <ul>
<li><a href='/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li> <li><a href='/hassio/zwave/'>Z-Wave </a></li>
<li><a href='/hassio/addon_config/'>Configuration </a></li> <li><a href='/hassio/external_storage/'>External storage </a></li>
<li><a href='/hassio/addon_testing/'>Local Testing </a></li> <li><a href='/hassio/run_local/'>Execute local things </a></li>
<li><a href='/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/hassio/addon_repository/'>Repositories </a></li>
</ul> </ul>
</li> </li>
<li><a href='/hassio/debugging/'>Debugging Hass.io </a></li> </ul>
<ul class='divided sidebar-menu'>
<li><a href='/developers/hassio/addon_development/'>Looking to create an add-on?</a></li>
</ul> </ul>
</div> </div>
</section> </section>

View file

@ -86,6 +86,7 @@
</span><span class="p">}</span><span class="w"> </span><span class="p">}</span><span class="w">
</span></code></pre> </span></code></pre>
</div> </div>
<p class="note">Make sure you use logins and disable anonymous access if you want to secure the system.</p>
<p>Configuration variables:</p> <p>Configuration variables:</p>
<ul> <ul>
<li><strong>plain</strong> (<em>Optional</em>): Listen to broker on port 1883 without SSL/TLS. Defaults to <code class="highlighter-rouge">true</code>.</li> <li><strong>plain</strong> (<em>Optional</em>): Listen to broker on port 1883 without SSL/TLS. Defaults to <code class="highlighter-rouge">true</code>.</li>
@ -93,6 +94,12 @@
<li><strong>anonymous</strong> (<em>Optional</em>): Allow anonymous connection. If <em>logins</em> is set, anonymous user can only read data. Defaults to <code class="highlighter-rouge">true</code>.</li> <li><strong>anonymous</strong> (<em>Optional</em>): Allow anonymous connection. If <em>logins</em> is set, anonymous user can only read data. Defaults to <code class="highlighter-rouge">true</code>.</li>
<li><strong>logins</strong> (<em>Optional</em>): A list of user that will be created with <em>username</em> and <em>password</em>.</li> <li><strong>logins</strong> (<em>Optional</em>): A list of user that will be created with <em>username</em> and <em>password</em>.</li>
</ul> </ul>
<h3><a class="title-link" name="home-assistant-configuration" href="#home-assistant-configuration"></a> Home Assistant configuration</h3>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">mqtt</span><span class="pi">:</span>
<span class="s">broker</span><span class="pi">:</span> <span class="s">172.17.0.1</span>
</code></pre>
</div>
</article> </article>
</div> </div>
<aside id="sidebar" class="grid__item one-third lap-one-whole palm-one-whole"> <aside id="sidebar" class="grid__item one-third lap-one-whole palm-one-whole">
@ -107,24 +114,21 @@
<li><a href='/hassio/installation/'>Installation </a></li> <li><a href='/hassio/installation/'>Installation </a></li>
<li><a href='/addons/'>Available add-ons </a></li> <li><a href='/addons/'>Available add-ons </a></li>
<li><a href='/hassio/installing_third_party_addons/'>Installing third-party add-ons </a></li> <li><a href='/hassio/installing_third_party_addons/'>Installing third-party add-ons </a></li>
<li><a href='/hassio/external_storage/'>External storage </a></li>
<li><a href='/hassio/run_local/'>Execute local things </a></li>
<li><a href='/hassio/architecture/'>Architecture </a></li>
</ul> </ul>
</li> </li>
</ul> </ul>
<ul class='divided sidebar-menu'> <ul class='divided sidebar-menu'>
<li> <li>
<a href='/hassio/addon_development/'>Add-on Development </a> Advanced
<ul> <ul>
<li><a href='/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li> <li><a href='/hassio/zwave/'>Z-Wave </a></li>
<li><a href='/hassio/addon_config/'>Configuration </a></li> <li><a href='/hassio/external_storage/'>External storage </a></li>
<li><a href='/hassio/addon_testing/'>Local Testing </a></li> <li><a href='/hassio/run_local/'>Execute local things </a></li>
<li><a href='/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/hassio/addon_repository/'>Repositories </a></li>
</ul> </ul>
</li> </li>
<li><a href='/hassio/debugging/'>Debugging Hass.io </a></li> </ul>
<ul class='divided sidebar-menu'>
<li><a href='/developers/hassio/addon_development/'>Looking to create an add-on?</a></li>
</ul> </ul>
</div> </div>
</section> </section>

View file

@ -8,7 +8,7 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Nginx SSL proxy - Home Assistant</title> <title>Nginx SSL proxy - Home Assistant</title>
<meta name="author" content="Home Assistant"> <meta name="author" content="Home Assistant">
<meta name="description" content="Nginx HomeAssistant SSL proxy"> <meta name="description" content="Nginx Home Assistant SSL proxy">
<meta name="viewport" content="width=device-width"> <meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/addons/nginx_proxy/"> <link rel="canonical" href="https://home-assistant.io/addons/nginx_proxy/">
<meta property="fb:app_id" content="338291289691179"> <meta property="fb:app_id" content="338291289691179">
@ -16,12 +16,12 @@
<meta property="og:site_name" content="Home Assistant"> <meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/addons/nginx_proxy/"> <meta property="og:url" content="https://home-assistant.io/addons/nginx_proxy/">
<meta property="og:type" content="article"> <meta property="og:type" content="article">
<meta property="og:description" content="Nginx HomeAssistant SSL proxy"> <meta property="og:description" content="Nginx Home Assistant SSL proxy">
<meta property="og:image" content="https://home-assistant.io/images/default-social.png"> <meta property="og:image" content="https://home-assistant.io/images/default-social.png">
<meta name="twitter:card" content="summary_large_image"> <meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@home_assistant"> <meta name="twitter:site" content="@home_assistant">
<meta name="twitter:title" content="Nginx SSL proxy"> <meta name="twitter:title" content="Nginx SSL proxy">
<meta name="twitter:description" content="Nginx HomeAssistant SSL proxy"> <meta name="twitter:description" content="Nginx Home Assistant SSL proxy">
<meta name="twitter:image" content="https://home-assistant.io/images/default-social.png"> <meta name="twitter:image" content="https://home-assistant.io/images/default-social.png">
<link href="/stylesheets/screen.css" media="screen, projection" rel="stylesheet"> <link href="/stylesheets/screen.css" media="screen, projection" rel="stylesheet">
<link href="/atom.xml" rel="alternate" title="Home Assistant" type="application/atom+xml"> <link href="/atom.xml" rel="alternate" title="Home Assistant" type="application/atom+xml">
@ -103,24 +103,21 @@ It is possible to deactive port 80 if you need this for things like <code class=
<li><a href='/hassio/installation/'>Installation </a></li> <li><a href='/hassio/installation/'>Installation </a></li>
<li><a href='/addons/'>Available add-ons </a></li> <li><a href='/addons/'>Available add-ons </a></li>
<li><a href='/hassio/installing_third_party_addons/'>Installing third-party add-ons </a></li> <li><a href='/hassio/installing_third_party_addons/'>Installing third-party add-ons </a></li>
<li><a href='/hassio/external_storage/'>External storage </a></li>
<li><a href='/hassio/run_local/'>Execute local things </a></li>
<li><a href='/hassio/architecture/'>Architecture </a></li>
</ul> </ul>
</li> </li>
</ul> </ul>
<ul class='divided sidebar-menu'> <ul class='divided sidebar-menu'>
<li> <li>
<a href='/hassio/addon_development/'>Add-on Development </a> Advanced
<ul> <ul>
<li><a href='/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li> <li><a href='/hassio/zwave/'>Z-Wave </a></li>
<li><a href='/hassio/addon_config/'>Configuration </a></li> <li><a href='/hassio/external_storage/'>External storage </a></li>
<li><a href='/hassio/addon_testing/'>Local Testing </a></li> <li><a href='/hassio/run_local/'>Execute local things </a></li>
<li><a href='/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/hassio/addon_repository/'>Repositories </a></li>
</ul> </ul>
</li> </li>
<li><a href='/hassio/debugging/'>Debugging Hass.io </a></li> </ul>
<ul class='divided sidebar-menu'>
<li><a href='/developers/hassio/addon_development/'>Looking to create an add-on?</a></li>
</ul> </ul>
</div> </div>
</section> </section>

View file

@ -113,24 +113,21 @@
<li><a href='/hassio/installation/'>Installation </a></li> <li><a href='/hassio/installation/'>Installation </a></li>
<li><a href='/addons/'>Available add-ons </a></li> <li><a href='/addons/'>Available add-ons </a></li>
<li><a href='/hassio/installing_third_party_addons/'>Installing third-party add-ons </a></li> <li><a href='/hassio/installing_third_party_addons/'>Installing third-party add-ons </a></li>
<li><a href='/hassio/external_storage/'>External storage </a></li>
<li><a href='/hassio/run_local/'>Execute local things </a></li>
<li><a href='/hassio/architecture/'>Architecture </a></li>
</ul> </ul>
</li> </li>
</ul> </ul>
<ul class='divided sidebar-menu'> <ul class='divided sidebar-menu'>
<li> <li>
<a href='/hassio/addon_development/'>Add-on Development </a> Advanced
<ul> <ul>
<li><a href='/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li> <li><a href='/hassio/zwave/'>Z-Wave </a></li>
<li><a href='/hassio/addon_config/'>Configuration </a></li> <li><a href='/hassio/external_storage/'>External storage </a></li>
<li><a href='/hassio/addon_testing/'>Local Testing </a></li> <li><a href='/hassio/run_local/'>Execute local things </a></li>
<li><a href='/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/hassio/addon_repository/'>Repositories </a></li>
</ul> </ul>
</li> </li>
<li><a href='/hassio/debugging/'>Debugging Hass.io </a></li> </ul>
<ul class='divided sidebar-menu'>
<li><a href='/developers/hassio/addon_development/'>Looking to create an add-on?</a></li>
</ul> </ul>
</div> </div>
</section> </section>

206
addons/snips/index.html Normal file
View file

@ -0,0 +1,206 @@
<!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>Snips.ai - Home Assistant</title>
<meta name="author" content="Home Assistant">
<meta name="description" content="Enhance your Hass.io installation with a local voice assistant.">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/addons/snips/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="Snips.ai">
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/addons/snips/">
<meta property="og:type" content="article">
<meta property="og:description" content="Enhance your Hass.io installation with a local voice assistant.">
<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="Snips.ai">
<meta name="twitter:description" content="Enhance your Hass.io installation with a local voice assistant.">
<meta name="twitter:image" content="https://home-assistant.io/images/default-social.png">
<link href="/stylesheets/screen.css" media="screen, projection" 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/_addons/snips.markdown'>Edit this page on GitHub</a></div>
<header>
<h1 class="title indent">
Snips.ai
</h1>
</header>
<hr class="divider">
<p><a href="https://snips.ai/">Snips.ai</a> is an AI-powered voice assistant that runs on the Raspberry Pi 3 and x86 platforms. It runs on-device and is Private by Design.</p>
<p>To get started, follow <a href="https://github.com/snipsco/snips-platform-documentation/wiki/2.-Running-your-first-end-to-end-assistant">their tutorial</a> to create an assistant and download the training data.</p>
<p>Now install and activate the <a href="/addons/samba/">Samba</a> add-on so you can upload your training data. Connect to the “share” Samba share and copy your training data over. Name the file <code class="highlighter-rouge">assistant.zip</code>.</p>
<p>Now its time to start Snips for the first time. When the Snips add-on starts, it will output your audio devices:</p><pre><code class="language-plain">**** List of PLAYBACK Hardware Devices ****
card 0: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA]
Subdevices: 8/8
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
Subdevice #3: subdevice #3
Subdevice #4: subdevice #4
Subdevice #5: subdevice #5
Subdevice #6: subdevice #6
Subdevice #7: subdevice #7
card 0: ALSA [bcm2835 ALSA], device 1: bcm2835 ALSA [bcm2835 IEC958/HDMI]
Subdevices: 1/1
Subdevice #0: subdevice #0
</code></pre>
<p>You need to use this information to configure the <code class="highlighter-rouge">mic</code> and <code class="highlighter-rouge">speaker</code> configuration options. The format is <code class="highlighter-rouge">&lt;card #&gt;,&lt;device #&gt;</code>. On a Raspberry Pi 3, <code class="highlighter-rouge">0,0</code> is the built-in headset port, <code class="highlighter-rouge">0,1</code> is the HDMI port.</p>
<p>Now that youve found the microphone and speaker addresses, its time to configure Snips and restart the add-on.</p>
<h3>Add-On configuration</h3>
<div class="language-json highlighter-rouge"><pre class="highlight"><code><span class="p">{</span><span class="w">
</span><span class="nt">"mic"</span><span class="p">:</span><span class="w"> </span><span class="s2">"1,0"</span><span class="p">,</span><span class="w">
</span><span class="nt">"speaker"</span><span class="p">:</span><span class="w"> </span><span class="s2">"1,0"</span><span class="p">,</span><span class="w">
</span><span class="nt">"assistant"</span><span class="p">:</span><span class="w"> </span><span class="s2">"assistant.zip"</span><span class="p">,</span><span class="w">
</span><span class="nt">"mqtt_bridge"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
</span><span class="nt">"active"</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span><span class="w">
</span><span class="nt">"host"</span><span class="p">:</span><span class="w"> </span><span class="s2">"172.17.0.1"</span><span class="p">,</span><span class="w">
</span><span class="nt">"port"</span><span class="p">:</span><span class="w"> </span><span class="mi">1883</span><span class="p">,</span><span class="w">
</span><span class="nt">"user"</span><span class="p">:</span><span class="w"> </span><span class="s2">""</span><span class="p">,</span><span class="w">
</span><span class="nt">"password"</span><span class="p">:</span><span class="w"> </span><span class="s2">""</span><span class="w">
</span><span class="p">},</span><span class="w">
</span><span class="err">}</span><span class="w">
</span></code></pre>
</div>
<p>Configuration variables:</p>
<ul>
<li><strong>mqtt_bridge</strong> (<em>Optional</em>): Snips uses MQTT to communicate and defaults to their own broker. Use this config option to bridge their broker to your own.</li>
<li><strong>mic</strong>: This is the hardware address of your microphone. Look at the Snips</li>
</ul>
<h3><a class="title-link" name="home-assistant-configuration" href="#home-assistant-configuration"></a> Home Assistant configuration</h3>
<p>Use the Home Assistant <a href="/components/snips/">Snips.ai component</a> to integrate the add-on into Home Assistant.</p>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="s">snips</span><span class="pi">:</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>
<a href='/hassio/'>Hass.io </a>
<ul>
<li><a href='/hassio/installation/'>Installation </a></li>
<li><a href='/addons/'>Available add-ons </a></li>
<li><a href='/hassio/installing_third_party_addons/'>Installing third-party add-ons </a></li>
</ul>
</li>
</ul>
<ul class='divided sidebar-menu'>
<li>
Advanced
<ul>
<li><a href='/hassio/zwave/'>Z-Wave </a></li>
<li><a href='/hassio/external_storage/'>External storage </a></li>
<li><a href='/hassio/run_local/'>Execute local things </a></li>
</ul>
</li>
</ul>
<ul class='divided sidebar-menu'>
<li><a href='/developers/hassio/addon_development/'>Looking to create an add-on?</a></li>
</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>

View file

@ -8,7 +8,7 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>SSH Server - Home Assistant</title> <title>SSH Server - Home Assistant</title>
<meta name="author" content="Home Assistant"> <meta name="author" content="Home Assistant">
<meta name="description" content="Allow logging in remotely to your server using SSH."> <meta name="description" content="Allow logging in remotely to Hass.io using SSH.">
<meta name="viewport" content="width=device-width"> <meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/addons/ssh/"> <link rel="canonical" href="https://home-assistant.io/addons/ssh/">
<meta property="fb:app_id" content="338291289691179"> <meta property="fb:app_id" content="338291289691179">
@ -16,12 +16,12 @@
<meta property="og:site_name" content="Home Assistant"> <meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/addons/ssh/"> <meta property="og:url" content="https://home-assistant.io/addons/ssh/">
<meta property="og:type" content="article"> <meta property="og:type" content="article">
<meta property="og:description" content="Allow logging in remotely to your server using SSH."> <meta property="og:description" content="Allow logging in remotely to Hass.io using SSH.">
<meta property="og:image" content="https://home-assistant.io/images/default-social.png"> <meta property="og:image" content="https://home-assistant.io/images/default-social.png">
<meta name="twitter:card" content="summary_large_image"> <meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@home_assistant"> <meta name="twitter:site" content="@home_assistant">
<meta name="twitter:title" content="SSH Server"> <meta name="twitter:title" content="SSH Server">
<meta name="twitter:description" content="Allow logging in remotely to your server using SSH."> <meta name="twitter:description" content="Allow logging in remotely to Hass.io using SSH.">
<meta name="twitter:image" content="https://home-assistant.io/images/default-social.png"> <meta name="twitter:image" content="https://home-assistant.io/images/default-social.png">
<link href="/stylesheets/screen.css" media="screen, projection" rel="stylesheet"> <link href="/stylesheets/screen.css" media="screen, projection" rel="stylesheet">
<link href="/atom.xml" rel="alternate" title="Home Assistant" type="application/atom+xml"> <link href="/atom.xml" rel="alternate" title="Home Assistant" type="application/atom+xml">
@ -75,7 +75,9 @@
</h1> </h1>
</header> </header>
<hr class="divider"> <hr class="divider">
<p>Setting up an <a href="https://openssh.org/">SSH</a> server allows access to your Hass.io folders with any SSH client. To use this add-on, you must have a private/public key to log in. To generate them, follow the <a href="https://www.digitalocean.com/community/tutorials/how-to-create-ssh-keys-with-putty-to-connect-to-a-vps">instructions for Windows</a> and <a href="https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/">these for other platforms</a>.</p> <p>Setting up an <a href="https://openssh.org/">SSH</a> server allows access to your Hass.io folders with any SSH client.</p>
<p class="note">This add-on will not enable you to install packages or do anything as root. This is not allowed with Hass.io.</p>
<p>To use this add-on, you must have a private/public key to log in. To generate them, follow the <a href="https://www.digitalocean.com/community/tutorials/how-to-create-ssh-keys-with-putty-to-connect-to-a-vps">instructions for Windows</a> and <a href="https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/">these for other platforms</a>.</p>
<div class="language-json highlighter-rouge"><pre class="highlight"><code><span class="p">{</span><span class="w"> <div class="language-json highlighter-rouge"><pre class="highlight"><code><span class="p">{</span><span class="w">
</span><span class="nt">"authorized_keys"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="nt">"authorized_keys"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
</span><span class="s2">"ssh-rsa AKDJD3839...== my-key"</span><span class="w"> </span><span class="s2">"ssh-rsa AKDJD3839...== my-key"</span><span class="w">
@ -87,20 +89,7 @@
<ul> <ul>
<li><strong>authorized_keys</strong> (<em>Required</em>): Your public-keys for authorized keyfile. Every element will be a line inside that file.</li> <li><strong>authorized_keys</strong> (<em>Required</em>): Your public-keys for authorized keyfile. Every element will be a line inside that file.</li>
</ul> </ul>
<p class="note"> <p class="note">This add-on is not compatible when you installed Hass.io via the generic Linux installer.</p>
This add-on is not compatible when you installed Hass.io via the generic Linux installer.
If youre coming from Rasbian or similar, use <code class="highlighter-rouge">root</code> rather than <code class="highlighter-rouge">pi</code> when connecting via ssh or else you will get this error.
<code class="highlighter-rouge">bash
Permission denied (publickey,keyboard-interactive)
</code>
</p>
<p class="note">
If you install this addon you can use <code class="highlighter-rouge">sshfs</code> as well to access files from a remote system where you have git and your favourite editing tools installed.
<code class="highlighter-rouge">bash
$ mkdir ~/ha_config
$ sshfs -o allow_other,defer_permissions root@h[your_hassio_ip]:/config ~/ha_config
</code>
</p>
</article> </article>
</div> </div>
<aside id="sidebar" class="grid__item one-third lap-one-whole palm-one-whole"> <aside id="sidebar" class="grid__item one-third lap-one-whole palm-one-whole">
@ -115,24 +104,21 @@ $ sshfs -o allow_other,defer_permissions root@h[your_hassio_ip]:/config ~/ha_con
<li><a href='/hassio/installation/'>Installation </a></li> <li><a href='/hassio/installation/'>Installation </a></li>
<li><a href='/addons/'>Available add-ons </a></li> <li><a href='/addons/'>Available add-ons </a></li>
<li><a href='/hassio/installing_third_party_addons/'>Installing third-party add-ons </a></li> <li><a href='/hassio/installing_third_party_addons/'>Installing third-party add-ons </a></li>
<li><a href='/hassio/external_storage/'>External storage </a></li>
<li><a href='/hassio/run_local/'>Execute local things </a></li>
<li><a href='/hassio/architecture/'>Architecture </a></li>
</ul> </ul>
</li> </li>
</ul> </ul>
<ul class='divided sidebar-menu'> <ul class='divided sidebar-menu'>
<li> <li>
<a href='/hassio/addon_development/'>Add-on Development </a> Advanced
<ul> <ul>
<li><a href='/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li> <li><a href='/hassio/zwave/'>Z-Wave </a></li>
<li><a href='/hassio/addon_config/'>Configuration </a></li> <li><a href='/hassio/external_storage/'>External storage </a></li>
<li><a href='/hassio/addon_testing/'>Local Testing </a></li> <li><a href='/hassio/run_local/'>Execute local things </a></li>
<li><a href='/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/hassio/addon_repository/'>Repositories </a></li>
</ul> </ul>
</li> </li>
<li><a href='/hassio/debugging/'>Debugging Hass.io </a></li> </ul>
<ul class='divided sidebar-menu'>
<li><a href='/developers/hassio/addon_development/'>Looking to create an add-on?</a></li>
</ul> </ul>
</div> </div>
</section> </section>

View file

@ -4,7 +4,7 @@
<title><![CDATA[Home Assistant]]></title> <title><![CDATA[Home Assistant]]></title>
<link href="https://home-assistant.io/atom.xml" rel="self"/> <link href="https://home-assistant.io/atom.xml" rel="self"/>
<link href="https://home-assistant.io/"/> <link href="https://home-assistant.io/"/>
<updated>2017-07-14T23:38:45+00:00</updated> <updated>2017-07-15T05:58:10+00:00</updated>
<id>https://home-assistant.io/</id> <id>https://home-assistant.io/</id>
<author> <author>
<name><![CDATA[Home Assistant]]></name> <name><![CDATA[Home Assistant]]></name>

View file

@ -4,7 +4,7 @@
<title><![CDATA[Category: Announcements | Home Assistant]]></title> <title><![CDATA[Category: Announcements | Home Assistant]]></title>
<link href="https://home-assistant.io/blog/categories/announcements/atom.xml" rel="self"/> <link href="https://home-assistant.io/blog/categories/announcements/atom.xml" rel="self"/>
<link href="https://home-assistant.io/"/> <link href="https://home-assistant.io/"/>
<updated>2017-07-14T23:38:45+00:00</updated> <updated>2017-07-15T05:58:10+00:00</updated>
<id>https://home-assistant.io/</id> <id>https://home-assistant.io/</id>
<author> <author>
<name><![CDATA[Home Assistant]]></name> <name><![CDATA[Home Assistant]]></name>

View file

@ -4,7 +4,7 @@
<title><![CDATA[Category: Community | Home Assistant]]></title> <title><![CDATA[Category: Community | Home Assistant]]></title>
<link href="https://home-assistant.io/blog/categories/community/atom.xml" rel="self"/> <link href="https://home-assistant.io/blog/categories/community/atom.xml" rel="self"/>
<link href="https://home-assistant.io/"/> <link href="https://home-assistant.io/"/>
<updated>2017-07-14T23:38:45+00:00</updated> <updated>2017-07-15T05:58:10+00:00</updated>
<id>https://home-assistant.io/</id> <id>https://home-assistant.io/</id>
<author> <author>
<name><![CDATA[Home Assistant]]></name> <name><![CDATA[Home Assistant]]></name>

View file

@ -4,7 +4,7 @@
<title><![CDATA[Category: Device-Tracking | Home Assistant]]></title> <title><![CDATA[Category: Device-Tracking | Home Assistant]]></title>
<link href="https://home-assistant.io/blog/categories/device-tracking/atom.xml" rel="self"/> <link href="https://home-assistant.io/blog/categories/device-tracking/atom.xml" rel="self"/>
<link href="https://home-assistant.io/"/> <link href="https://home-assistant.io/"/>
<updated>2017-07-14T23:38:45+00:00</updated> <updated>2017-07-15T05:58:10+00:00</updated>
<id>https://home-assistant.io/</id> <id>https://home-assistant.io/</id>
<author> <author>
<name><![CDATA[Home Assistant]]></name> <name><![CDATA[Home Assistant]]></name>

View file

@ -4,7 +4,7 @@
<title><![CDATA[Category: ESP8266 | Home Assistant]]></title> <title><![CDATA[Category: ESP8266 | Home Assistant]]></title>
<link href="https://home-assistant.io/blog/categories/esp8266/atom.xml" rel="self"/> <link href="https://home-assistant.io/blog/categories/esp8266/atom.xml" rel="self"/>
<link href="https://home-assistant.io/"/> <link href="https://home-assistant.io/"/>
<updated>2017-07-14T23:38:45+00:00</updated> <updated>2017-07-15T05:58:10+00:00</updated>
<id>https://home-assistant.io/</id> <id>https://home-assistant.io/</id>
<author> <author>
<name><![CDATA[Home Assistant]]></name> <name><![CDATA[Home Assistant]]></name>

View file

@ -4,7 +4,7 @@
<title><![CDATA[Category: How-To | Home Assistant]]></title> <title><![CDATA[Category: How-To | Home Assistant]]></title>
<link href="https://home-assistant.io/blog/categories/how-to/atom.xml" rel="self"/> <link href="https://home-assistant.io/blog/categories/how-to/atom.xml" rel="self"/>
<link href="https://home-assistant.io/"/> <link href="https://home-assistant.io/"/>
<updated>2017-07-14T23:38:45+00:00</updated> <updated>2017-07-15T05:58:10+00:00</updated>
<id>https://home-assistant.io/</id> <id>https://home-assistant.io/</id>
<author> <author>
<name><![CDATA[Home Assistant]]></name> <name><![CDATA[Home Assistant]]></name>

View file

@ -4,7 +4,7 @@
<title><![CDATA[Category: iBeacons | Home Assistant]]></title> <title><![CDATA[Category: iBeacons | Home Assistant]]></title>
<link href="https://home-assistant.io/blog/categories/ibeacons/atom.xml" rel="self"/> <link href="https://home-assistant.io/blog/categories/ibeacons/atom.xml" rel="self"/>
<link href="https://home-assistant.io/"/> <link href="https://home-assistant.io/"/>
<updated>2017-07-14T23:38:45+00:00</updated> <updated>2017-07-15T05:58:10+00:00</updated>
<id>https://home-assistant.io/</id> <id>https://home-assistant.io/</id>
<author> <author>
<name><![CDATA[Home Assistant]]></name> <name><![CDATA[Home Assistant]]></name>

View file

@ -4,7 +4,7 @@
<title><![CDATA[Category: Internet-of-Things | Home Assistant]]></title> <title><![CDATA[Category: Internet-of-Things | Home Assistant]]></title>
<link href="https://home-assistant.io/blog/categories/internet-of-things/atom.xml" rel="self"/> <link href="https://home-assistant.io/blog/categories/internet-of-things/atom.xml" rel="self"/>
<link href="https://home-assistant.io/"/> <link href="https://home-assistant.io/"/>
<updated>2017-07-14T23:38:45+00:00</updated> <updated>2017-07-15T05:58:10+00:00</updated>
<id>https://home-assistant.io/</id> <id>https://home-assistant.io/</id>
<author> <author>
<name><![CDATA[Home Assistant]]></name> <name><![CDATA[Home Assistant]]></name>

View file

@ -4,7 +4,7 @@
<title><![CDATA[Category: IoT-Data | Home Assistant]]></title> <title><![CDATA[Category: IoT-Data | Home Assistant]]></title>
<link href="https://home-assistant.io/blog/categories/iot-data/atom.xml" rel="self"/> <link href="https://home-assistant.io/blog/categories/iot-data/atom.xml" rel="self"/>
<link href="https://home-assistant.io/"/> <link href="https://home-assistant.io/"/>
<updated>2017-07-14T23:38:45+00:00</updated> <updated>2017-07-15T05:58:10+00:00</updated>
<id>https://home-assistant.io/</id> <id>https://home-assistant.io/</id>
<author> <author>
<name><![CDATA[Home Assistant]]></name> <name><![CDATA[Home Assistant]]></name>

View file

@ -4,7 +4,7 @@
<title><![CDATA[Category: Media | Home Assistant]]></title> <title><![CDATA[Category: Media | Home Assistant]]></title>
<link href="https://home-assistant.io/blog/categories/media/atom.xml" rel="self"/> <link href="https://home-assistant.io/blog/categories/media/atom.xml" rel="self"/>
<link href="https://home-assistant.io/"/> <link href="https://home-assistant.io/"/>
<updated>2017-07-14T23:38:45+00:00</updated> <updated>2017-07-15T05:58:10+00:00</updated>
<id>https://home-assistant.io/</id> <id>https://home-assistant.io/</id>
<author> <author>
<name><![CDATA[Home Assistant]]></name> <name><![CDATA[Home Assistant]]></name>

View file

@ -4,7 +4,7 @@
<title><![CDATA[Category: Merchandise | Home Assistant]]></title> <title><![CDATA[Category: Merchandise | Home Assistant]]></title>
<link href="https://home-assistant.io/blog/categories/merchandise/atom.xml" rel="self"/> <link href="https://home-assistant.io/blog/categories/merchandise/atom.xml" rel="self"/>
<link href="https://home-assistant.io/"/> <link href="https://home-assistant.io/"/>
<updated>2017-07-14T23:38:45+00:00</updated> <updated>2017-07-15T05:58:10+00:00</updated>
<id>https://home-assistant.io/</id> <id>https://home-assistant.io/</id>
<author> <author>
<name><![CDATA[Home Assistant]]></name> <name><![CDATA[Home Assistant]]></name>

View file

@ -4,7 +4,7 @@
<title><![CDATA[Category: Micropython | Home Assistant]]></title> <title><![CDATA[Category: Micropython | Home Assistant]]></title>
<link href="https://home-assistant.io/blog/categories/micropython/atom.xml" rel="self"/> <link href="https://home-assistant.io/blog/categories/micropython/atom.xml" rel="self"/>
<link href="https://home-assistant.io/"/> <link href="https://home-assistant.io/"/>
<updated>2017-07-14T23:38:45+00:00</updated> <updated>2017-07-15T05:58:10+00:00</updated>
<id>https://home-assistant.io/</id> <id>https://home-assistant.io/</id>
<author> <author>
<name><![CDATA[Home Assistant]]></name> <name><![CDATA[Home Assistant]]></name>

View file

@ -4,7 +4,7 @@
<title><![CDATA[Category: MQTT | Home Assistant]]></title> <title><![CDATA[Category: MQTT | Home Assistant]]></title>
<link href="https://home-assistant.io/blog/categories/mqtt/atom.xml" rel="self"/> <link href="https://home-assistant.io/blog/categories/mqtt/atom.xml" rel="self"/>
<link href="https://home-assistant.io/"/> <link href="https://home-assistant.io/"/>
<updated>2017-07-14T23:38:45+00:00</updated> <updated>2017-07-15T05:58:10+00:00</updated>
<id>https://home-assistant.io/</id> <id>https://home-assistant.io/</id>
<author> <author>
<name><![CDATA[Home Assistant]]></name> <name><![CDATA[Home Assistant]]></name>

View file

@ -4,7 +4,7 @@
<title><![CDATA[Category: Organisation | Home Assistant]]></title> <title><![CDATA[Category: Organisation | Home Assistant]]></title>
<link href="https://home-assistant.io/blog/categories/organisation/atom.xml" rel="self"/> <link href="https://home-assistant.io/blog/categories/organisation/atom.xml" rel="self"/>
<link href="https://home-assistant.io/"/> <link href="https://home-assistant.io/"/>
<updated>2017-07-14T23:38:45+00:00</updated> <updated>2017-07-15T05:58:10+00:00</updated>
<id>https://home-assistant.io/</id> <id>https://home-assistant.io/</id>
<author> <author>
<name><![CDATA[Home Assistant]]></name> <name><![CDATA[Home Assistant]]></name>

View file

@ -4,7 +4,7 @@
<title><![CDATA[Category: OwnTracks | Home Assistant]]></title> <title><![CDATA[Category: OwnTracks | Home Assistant]]></title>
<link href="https://home-assistant.io/blog/categories/owntracks/atom.xml" rel="self"/> <link href="https://home-assistant.io/blog/categories/owntracks/atom.xml" rel="self"/>
<link href="https://home-assistant.io/"/> <link href="https://home-assistant.io/"/>
<updated>2017-07-14T23:38:45+00:00</updated> <updated>2017-07-15T05:58:10+00:00</updated>
<id>https://home-assistant.io/</id> <id>https://home-assistant.io/</id>
<author> <author>
<name><![CDATA[Home Assistant]]></name> <name><![CDATA[Home Assistant]]></name>

View file

@ -4,7 +4,7 @@
<title><![CDATA[Category: Presence-Detection | Home Assistant]]></title> <title><![CDATA[Category: Presence-Detection | Home Assistant]]></title>
<link href="https://home-assistant.io/blog/categories/presence-detection/atom.xml" rel="self"/> <link href="https://home-assistant.io/blog/categories/presence-detection/atom.xml" rel="self"/>
<link href="https://home-assistant.io/"/> <link href="https://home-assistant.io/"/>
<updated>2017-07-14T23:38:45+00:00</updated> <updated>2017-07-15T05:58:10+00:00</updated>
<id>https://home-assistant.io/</id> <id>https://home-assistant.io/</id>
<author> <author>
<name><![CDATA[Home Assistant]]></name> <name><![CDATA[Home Assistant]]></name>

View file

@ -4,7 +4,7 @@
<title><![CDATA[Category: Public-Service-Announcement | Home Assistant]]></title> <title><![CDATA[Category: Public-Service-Announcement | Home Assistant]]></title>
<link href="https://home-assistant.io/blog/categories/public-service-announcement/atom.xml" rel="self"/> <link href="https://home-assistant.io/blog/categories/public-service-announcement/atom.xml" rel="self"/>
<link href="https://home-assistant.io/"/> <link href="https://home-assistant.io/"/>
<updated>2017-07-14T23:38:45+00:00</updated> <updated>2017-07-15T05:58:10+00:00</updated>
<id>https://home-assistant.io/</id> <id>https://home-assistant.io/</id>
<author> <author>
<name><![CDATA[Home Assistant]]></name> <name><![CDATA[Home Assistant]]></name>

View file

@ -4,7 +4,7 @@
<title><![CDATA[Category: Release-Notes | Home Assistant]]></title> <title><![CDATA[Category: Release-Notes | Home Assistant]]></title>
<link href="https://home-assistant.io/blog/categories/release-notes/atom.xml" rel="self"/> <link href="https://home-assistant.io/blog/categories/release-notes/atom.xml" rel="self"/>
<link href="https://home-assistant.io/"/> <link href="https://home-assistant.io/"/>
<updated>2017-07-14T23:38:45+00:00</updated> <updated>2017-07-15T05:58:10+00:00</updated>
<id>https://home-assistant.io/</id> <id>https://home-assistant.io/</id>
<author> <author>
<name><![CDATA[Home Assistant]]></name> <name><![CDATA[Home Assistant]]></name>

View file

@ -4,7 +4,7 @@
<title><![CDATA[Category: Survey | Home Assistant]]></title> <title><![CDATA[Category: Survey | Home Assistant]]></title>
<link href="https://home-assistant.io/blog/categories/survey/atom.xml" rel="self"/> <link href="https://home-assistant.io/blog/categories/survey/atom.xml" rel="self"/>
<link href="https://home-assistant.io/"/> <link href="https://home-assistant.io/"/>
<updated>2017-07-14T23:38:45+00:00</updated> <updated>2017-07-15T05:58:10+00:00</updated>
<id>https://home-assistant.io/</id> <id>https://home-assistant.io/</id>
<author> <author>
<name><![CDATA[Home Assistant]]></name> <name><![CDATA[Home Assistant]]></name>

View file

@ -4,7 +4,7 @@
<title><![CDATA[Category: Talks | Home Assistant]]></title> <title><![CDATA[Category: Talks | Home Assistant]]></title>
<link href="https://home-assistant.io/blog/categories/talks/atom.xml" rel="self"/> <link href="https://home-assistant.io/blog/categories/talks/atom.xml" rel="self"/>
<link href="https://home-assistant.io/"/> <link href="https://home-assistant.io/"/>
<updated>2017-07-14T23:38:45+00:00</updated> <updated>2017-07-15T05:58:10+00:00</updated>
<id>https://home-assistant.io/</id> <id>https://home-assistant.io/</id>
<author> <author>
<name><![CDATA[Home Assistant]]></name> <name><![CDATA[Home Assistant]]></name>

View file

@ -4,7 +4,7 @@
<title><![CDATA[Category: Technology | Home Assistant]]></title> <title><![CDATA[Category: Technology | Home Assistant]]></title>
<link href="https://home-assistant.io/blog/categories/technology/atom.xml" rel="self"/> <link href="https://home-assistant.io/blog/categories/technology/atom.xml" rel="self"/>
<link href="https://home-assistant.io/"/> <link href="https://home-assistant.io/"/>
<updated>2017-07-14T23:38:45+00:00</updated> <updated>2017-07-15T05:58:10+00:00</updated>
<id>https://home-assistant.io/</id> <id>https://home-assistant.io/</id>
<author> <author>
<name><![CDATA[Home Assistant]]></name> <name><![CDATA[Home Assistant]]></name>

View file

@ -4,7 +4,7 @@
<title><![CDATA[Category: User-Stories | Home Assistant]]></title> <title><![CDATA[Category: User-Stories | Home Assistant]]></title>
<link href="https://home-assistant.io/blog/categories/user-stories/atom.xml" rel="self"/> <link href="https://home-assistant.io/blog/categories/user-stories/atom.xml" rel="self"/>
<link href="https://home-assistant.io/"/> <link href="https://home-assistant.io/"/>
<updated>2017-07-14T23:38:45+00:00</updated> <updated>2017-07-15T05:58:10+00:00</updated>
<id>https://home-assistant.io/</id> <id>https://home-assistant.io/</id>
<author> <author>
<name><![CDATA[Home Assistant]]></name> <name><![CDATA[Home Assistant]]></name>

View file

@ -4,7 +4,7 @@
<title><![CDATA[Category: Video | Home Assistant]]></title> <title><![CDATA[Category: Video | Home Assistant]]></title>
<link href="https://home-assistant.io/blog/categories/video/atom.xml" rel="self"/> <link href="https://home-assistant.io/blog/categories/video/atom.xml" rel="self"/>
<link href="https://home-assistant.io/"/> <link href="https://home-assistant.io/"/>
<updated>2017-07-14T23:38:45+00:00</updated> <updated>2017-07-15T05:58:10+00:00</updated>
<id>https://home-assistant.io/</id> <id>https://home-assistant.io/</id>
<author> <author>
<name><![CDATA[Home Assistant]]></name> <name><![CDATA[Home Assistant]]></name>

View file

@ -4,7 +4,7 @@
<title><![CDATA[Category: Website | Home Assistant]]></title> <title><![CDATA[Category: Website | Home Assistant]]></title>
<link href="https://home-assistant.io/blog/categories/website/atom.xml" rel="self"/> <link href="https://home-assistant.io/blog/categories/website/atom.xml" rel="self"/>
<link href="https://home-assistant.io/"/> <link href="https://home-assistant.io/"/>
<updated>2017-07-14T23:38:45+00:00</updated> <updated>2017-07-15T05:58:10+00:00</updated>
<id>https://home-assistant.io/</id> <id>https://home-assistant.io/</id>
<author> <author>
<name><![CDATA[Home Assistant]]></name> <name><![CDATA[Home Assistant]]></name>

View file

@ -129,7 +129,7 @@
</ul> </ul>
</li> </li>
<li> <li>
<a class='active' href='/developers/add_new_platform/'>Support a new device (as a platform) </a> <a class='active' href='/developers/add_new_platform/'>Creating a new platform (to support a new device) </a>
<ul> <ul>
<li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li> <li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li>
<li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li> <li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li>
@ -167,13 +167,29 @@
<li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li> <li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li>
</ul> </ul>
</li> </li>
<li>
<a href='/developers/hassio/architecture/'>Hass.io architecture </a>
<ul>
<li><a href='/developers/hassio/debugging/'>Debugging Hass.io </a></li>
</ul>
</li>
<li>
<a href='/developers/hassio/addon_development/'>Hass.io Add-on Development </a>
<ul>
<li><a href='/developers/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li>
<li><a href='/developers/hassio/addon_config/'>Configuration </a></li>
<li><a href='/developers/hassio/addon_testing/'>Local Testing </a></li>
<li><a href='/developers/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/developers/hassio/addon_repository/'>Repositories </a></li>
</ul>
</li>
<li> <li>
<a href='/developers/api/'>API </a> <a href='/developers/api/'>API </a>
<ul> <ul>
<li><a href='https://dev-docs.home-assistant.io/en/dev/'>Home Assistant API </a></li> <li><a href='https://dev-docs.home-assistant.io/en/dev/'>Python API </a></li>
<li><a href='/developers/websocket_api/'>Websocket API </a></li> <li><a href='/developers/websocket_api/'>Websocket API </a></li>
<li><a href='/developers/rest_api/'>RESTful API </a></li> <li><a href='/developers/rest_api/'>REST API </a></li>
<li><a href='/developers/python_api/'>Python API </a></li> <li><a href='/developers/python_api/'>Python REST API </a></li>
<li><a href='/developers/server_sent_events/'>Server-sent events </a></li> <li><a href='/developers/server_sent_events/'>Server-sent events </a></li>
</ul> </ul>
</li> </li>

View file

@ -76,9 +76,10 @@
<hr class="divider"> <hr class="divider">
<p>Home Assistant provides various APIs. For detail please refer to <a href="https://dev-docs.home-assistant.io/en/dev/">Home Assistant API</a> documentation.</p> <p>Home Assistant provides various APIs. For detail please refer to <a href="https://dev-docs.home-assistant.io/en/dev/">Home Assistant API</a> documentation.</p>
<ul> <ul>
<li><a href="https://dev-docs.home-assistant.io/">Python API</a></li>
<li><a href="/developers/websocket_api/">Websocket API</a></li> <li><a href="/developers/websocket_api/">Websocket API</a></li>
<li><a href="/developers/rest_api/">RESTful API</a></li> <li><a href="/developers/rest_api/">REST API</a></li>
<li><a href="/developers/python_api/">Python API</a></li> <li><a href="/developers/python_api/">Python REST API</a></li>
<li><a href="/developers/server_sent_events/">Server-sent events</a></li> <li><a href="/developers/server_sent_events/">Server-sent events</a></li>
</ul> </ul>
</article> </article>
@ -120,7 +121,7 @@
</ul> </ul>
</li> </li>
<li> <li>
<a href='/developers/add_new_platform/'>Support a new device (as a platform) </a> <a href='/developers/add_new_platform/'>Creating a new platform (to support a new device) </a>
<ul> <ul>
<li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li> <li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li>
<li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li> <li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li>
@ -158,13 +159,29 @@
<li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li> <li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li>
</ul> </ul>
</li> </li>
<li>
<a href='/developers/hassio/architecture/'>Hass.io architecture </a>
<ul>
<li><a href='/developers/hassio/debugging/'>Debugging Hass.io </a></li>
</ul>
</li>
<li>
<a href='/developers/hassio/addon_development/'>Hass.io Add-on Development </a>
<ul>
<li><a href='/developers/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li>
<li><a href='/developers/hassio/addon_config/'>Configuration </a></li>
<li><a href='/developers/hassio/addon_testing/'>Local Testing </a></li>
<li><a href='/developers/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/developers/hassio/addon_repository/'>Repositories </a></li>
</ul>
</li>
<li> <li>
<a class='active' href='/developers/api/'>API </a> <a class='active' href='/developers/api/'>API </a>
<ul> <ul>
<li><a href='https://dev-docs.home-assistant.io/en/dev/'>Home Assistant API </a></li> <li><a href='https://dev-docs.home-assistant.io/en/dev/'>Python API </a></li>
<li><a href='/developers/websocket_api/'>Websocket API </a></li> <li><a href='/developers/websocket_api/'>Websocket API </a></li>
<li><a href='/developers/rest_api/'>RESTful API </a></li> <li><a href='/developers/rest_api/'>REST API </a></li>
<li><a href='/developers/python_api/'>Python API </a></li> <li><a href='/developers/python_api/'>Python REST API </a></li>
<li><a href='/developers/server_sent_events/'>Server-sent events </a></li> <li><a href='/developers/server_sent_events/'>Server-sent events </a></li>
</ul> </ul>
</li> </li>

View file

@ -139,7 +139,7 @@
</ul> </ul>
</li> </li>
<li> <li>
<a href='/developers/add_new_platform/'>Support a new device (as a platform) </a> <a href='/developers/add_new_platform/'>Creating a new platform (to support a new device) </a>
<ul> <ul>
<li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li> <li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li>
<li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li> <li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li>
@ -177,13 +177,29 @@
<li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li> <li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li>
</ul> </ul>
</li> </li>
<li>
<a href='/developers/hassio/architecture/'>Hass.io architecture </a>
<ul>
<li><a href='/developers/hassio/debugging/'>Debugging Hass.io </a></li>
</ul>
</li>
<li>
<a href='/developers/hassio/addon_development/'>Hass.io Add-on Development </a>
<ul>
<li><a href='/developers/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li>
<li><a href='/developers/hassio/addon_config/'>Configuration </a></li>
<li><a href='/developers/hassio/addon_testing/'>Local Testing </a></li>
<li><a href='/developers/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/developers/hassio/addon_repository/'>Repositories </a></li>
</ul>
</li>
<li> <li>
<a href='/developers/api/'>API </a> <a href='/developers/api/'>API </a>
<ul> <ul>
<li><a href='https://dev-docs.home-assistant.io/en/dev/'>Home Assistant API </a></li> <li><a href='https://dev-docs.home-assistant.io/en/dev/'>Python API </a></li>
<li><a href='/developers/websocket_api/'>Websocket API </a></li> <li><a href='/developers/websocket_api/'>Websocket API </a></li>
<li><a href='/developers/rest_api/'>RESTful API </a></li> <li><a href='/developers/rest_api/'>REST API </a></li>
<li><a href='/developers/python_api/'>Python API </a></li> <li><a href='/developers/python_api/'>Python REST API </a></li>
<li><a href='/developers/server_sent_events/'>Server-sent events </a></li> <li><a href='/developers/server_sent_events/'>Server-sent events </a></li>
</ul> </ul>
</li> </li>

View file

@ -86,16 +86,22 @@ Diagram showing interaction between components and the Home Assistant core
<p>If you want to add support for a new platform, check out the <a href="/developers/add_new_platform/">add new platform section</a>.</p> <p>If you want to add support for a new platform, check out the <a href="/developers/add_new_platform/">add new platform section</a>.</p>
<h4><a class="title-link" name="components-that-respond-to-events-that-happen-within-home-assistant" href="#components-that-respond-to-events-that-happen-within-home-assistant"></a> Components that respond to events that happen within Home Assistant</h4> <h4><a class="title-link" name="components-that-respond-to-events-that-happen-within-home-assistant" href="#components-that-respond-to-events-that-happen-within-home-assistant"></a> Components that respond to events that happen within Home Assistant</h4>
<p>These components provide small pieces of home automation logic or involve services that do common tasks within your house.</p> <p>These components provide small pieces of home automation logic or involve services that do common tasks within your house.</p>
<p>For example, the <a href="/components/device_sun_light_trigger/"><code class="highlighter-rouge">device_sun_light_trigger</code> component</a> tracks the state of devices and the sun to make sure that the lights are turned on when it gets dark and people are home. The component uses logic like this:</p><pre><code class="language-plain"> In the event that device 'Paulus Nexus 5' changes to the 'Home' state: <p>For example, the <a href="/components/device_sun_light_trigger/"><code class="highlighter-rouge">device_sun_light_trigger</code> component</a> tracks the state of devices and the sun to make sure that the lights are turned on when it gets dark and people are home. The component uses logic like this:</p>
If the sun has set and the lights are not on: <div class="language-text highlighter-rouge"><pre class="highlight"><code>In the event that device 'Paulus Nexus 5' changes to the 'Home' state:
Turn on the lights If the sun has set and the lights are not on:
</code></pre><pre><code class="language-plain"> In the event that the combined state of all tracked devices changes to 'Not Home': Turn on the lights
If the lights are on:
Turn off the lights
</code></pre><pre><code class="language-plain"> In the event of the sun setting:
If the lights are off and the combined state of all tracked device equals 'Home':
Turn on the lights
</code></pre> </code></pre>
</div>
<div class="language-text highlighter-rouge"><pre class="highlight"><code>In the event that the combined state of all tracked devices changes to 'Not Home':
If the lights are on:
Turn off the lights
</code></pre>
</div>
<div class="language-text highlighter-rouge"><pre class="highlight"><code>In the event of the sun setting:
If the lights are off and the combined state of all tracked device equals 'Home':
Turn on the lights
</code></pre>
</div>
<p>Look <a href="https://github.com/home-assistant/home-assistant/blob/master/config/custom_components/example.py">here</a> for a comprehensive example of a home automation component.</p> <p>Look <a href="https://github.com/home-assistant/home-assistant/blob/master/config/custom_components/example.py">here</a> for a comprehensive example of a home automation component.</p>
<h3><a class="title-link" name="the-full-picture" href="#the-full-picture"></a> The full picture</h3> <h3><a class="title-link" name="the-full-picture" href="#the-full-picture"></a> The full picture</h3>
<p>When we put all the different pieces of Home Assistant together, its a close match for the initial home automation overview sketch. The smart home AI has not been implemented yet, so its not included in this picture.</p> <p>When we put all the different pieces of Home Assistant together, its a close match for the initial home automation overview sketch. The smart home AI has not been implemented yet, so its not included in this picture.</p>
@ -145,7 +151,7 @@ Diagram showing interaction between components and the Home Assistant core
</ul> </ul>
</li> </li>
<li> <li>
<a href='/developers/add_new_platform/'>Support a new device (as a platform) </a> <a href='/developers/add_new_platform/'>Creating a new platform (to support a new device) </a>
<ul> <ul>
<li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li> <li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li>
<li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li> <li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li>
@ -183,13 +189,29 @@ Diagram showing interaction between components and the Home Assistant core
<li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li> <li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li>
</ul> </ul>
</li> </li>
<li>
<a href='/developers/hassio/architecture/'>Hass.io architecture </a>
<ul>
<li><a href='/developers/hassio/debugging/'>Debugging Hass.io </a></li>
</ul>
</li>
<li>
<a href='/developers/hassio/addon_development/'>Hass.io Add-on Development </a>
<ul>
<li><a href='/developers/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li>
<li><a href='/developers/hassio/addon_config/'>Configuration </a></li>
<li><a href='/developers/hassio/addon_testing/'>Local Testing </a></li>
<li><a href='/developers/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/developers/hassio/addon_repository/'>Repositories </a></li>
</ul>
</li>
<li> <li>
<a href='/developers/api/'>API </a> <a href='/developers/api/'>API </a>
<ul> <ul>
<li><a href='https://dev-docs.home-assistant.io/en/dev/'>Home Assistant API </a></li> <li><a href='https://dev-docs.home-assistant.io/en/dev/'>Python API </a></li>
<li><a href='/developers/websocket_api/'>Websocket API </a></li> <li><a href='/developers/websocket_api/'>Websocket API </a></li>
<li><a href='/developers/rest_api/'>RESTful API </a></li> <li><a href='/developers/rest_api/'>REST API </a></li>
<li><a href='/developers/python_api/'>Python API </a></li> <li><a href='/developers/python_api/'>Python REST API </a></li>
<li><a href='/developers/server_sent_events/'>Server-sent events </a></li> <li><a href='/developers/server_sent_events/'>Server-sent events </a></li>
</ul> </ul>
</li> </li>

View file

@ -120,7 +120,7 @@
</ul> </ul>
</li> </li>
<li> <li>
<a href='/developers/add_new_platform/'>Support a new device (as a platform) </a> <a href='/developers/add_new_platform/'>Creating a new platform (to support a new device) </a>
<ul> <ul>
<li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li> <li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li>
<li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li> <li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li>
@ -158,13 +158,29 @@
<li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li> <li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li>
</ul> </ul>
</li> </li>
<li>
<a href='/developers/hassio/architecture/'>Hass.io architecture </a>
<ul>
<li><a href='/developers/hassio/debugging/'>Debugging Hass.io </a></li>
</ul>
</li>
<li>
<a href='/developers/hassio/addon_development/'>Hass.io Add-on Development </a>
<ul>
<li><a href='/developers/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li>
<li><a href='/developers/hassio/addon_config/'>Configuration </a></li>
<li><a href='/developers/hassio/addon_testing/'>Local Testing </a></li>
<li><a href='/developers/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/developers/hassio/addon_repository/'>Repositories </a></li>
</ul>
</li>
<li> <li>
<a href='/developers/api/'>API </a> <a href='/developers/api/'>API </a>
<ul> <ul>
<li><a href='https://dev-docs.home-assistant.io/en/dev/'>Home Assistant API </a></li> <li><a href='https://dev-docs.home-assistant.io/en/dev/'>Python API </a></li>
<li><a href='/developers/websocket_api/'>Websocket API </a></li> <li><a href='/developers/websocket_api/'>Websocket API </a></li>
<li><a href='/developers/rest_api/'>RESTful API </a></li> <li><a href='/developers/rest_api/'>REST API </a></li>
<li><a href='/developers/python_api/'>Python API </a></li> <li><a href='/developers/python_api/'>Python REST API </a></li>
<li><a href='/developers/server_sent_events/'>Server-sent events </a></li> <li><a href='/developers/server_sent_events/'>Server-sent events </a></li>
</ul> </ul>
</li> </li>

View file

@ -118,7 +118,7 @@
</ul> </ul>
</li> </li>
<li> <li>
<a href='/developers/add_new_platform/'>Support a new device (as a platform) </a> <a href='/developers/add_new_platform/'>Creating a new platform (to support a new device) </a>
<ul> <ul>
<li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li> <li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li>
<li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li> <li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li>
@ -156,13 +156,29 @@
<li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li> <li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li>
</ul> </ul>
</li> </li>
<li>
<a href='/developers/hassio/architecture/'>Hass.io architecture </a>
<ul>
<li><a href='/developers/hassio/debugging/'>Debugging Hass.io </a></li>
</ul>
</li>
<li>
<a href='/developers/hassio/addon_development/'>Hass.io Add-on Development </a>
<ul>
<li><a href='/developers/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li>
<li><a href='/developers/hassio/addon_config/'>Configuration </a></li>
<li><a href='/developers/hassio/addon_testing/'>Local Testing </a></li>
<li><a href='/developers/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/developers/hassio/addon_repository/'>Repositories </a></li>
</ul>
</li>
<li> <li>
<a href='/developers/api/'>API </a> <a href='/developers/api/'>API </a>
<ul> <ul>
<li><a href='https://dev-docs.home-assistant.io/en/dev/'>Home Assistant API </a></li> <li><a href='https://dev-docs.home-assistant.io/en/dev/'>Python API </a></li>
<li><a href='/developers/websocket_api/'>Websocket API </a></li> <li><a href='/developers/websocket_api/'>Websocket API </a></li>
<li><a href='/developers/rest_api/'>RESTful API </a></li> <li><a href='/developers/rest_api/'>REST API </a></li>
<li><a href='/developers/python_api/'>Python API </a></li> <li><a href='/developers/python_api/'>Python REST API </a></li>
<li><a href='/developers/server_sent_events/'>Server-sent events </a></li> <li><a href='/developers/server_sent_events/'>Server-sent events </a></li>
</ul> </ul>
</li> </li>

View file

@ -157,7 +157,7 @@
</ul> </ul>
</li> </li>
<li> <li>
<a href='/developers/add_new_platform/'>Support a new device (as a platform) </a> <a href='/developers/add_new_platform/'>Creating a new platform (to support a new device) </a>
<ul> <ul>
<li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li> <li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li>
<li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li> <li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li>
@ -195,13 +195,29 @@
<li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li> <li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li>
</ul> </ul>
</li> </li>
<li>
<a href='/developers/hassio/architecture/'>Hass.io architecture </a>
<ul>
<li><a href='/developers/hassio/debugging/'>Debugging Hass.io </a></li>
</ul>
</li>
<li>
<a href='/developers/hassio/addon_development/'>Hass.io Add-on Development </a>
<ul>
<li><a href='/developers/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li>
<li><a href='/developers/hassio/addon_config/'>Configuration </a></li>
<li><a href='/developers/hassio/addon_testing/'>Local Testing </a></li>
<li><a href='/developers/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/developers/hassio/addon_repository/'>Repositories </a></li>
</ul>
</li>
<li> <li>
<a href='/developers/api/'>API </a> <a href='/developers/api/'>API </a>
<ul> <ul>
<li><a href='https://dev-docs.home-assistant.io/en/dev/'>Home Assistant API </a></li> <li><a href='https://dev-docs.home-assistant.io/en/dev/'>Python API </a></li>
<li><a href='/developers/websocket_api/'>Websocket API </a></li> <li><a href='/developers/websocket_api/'>Websocket API </a></li>
<li><a href='/developers/rest_api/'>RESTful API </a></li> <li><a href='/developers/rest_api/'>REST API </a></li>
<li><a href='/developers/python_api/'>Python API </a></li> <li><a href='/developers/python_api/'>Python REST API </a></li>
<li><a href='/developers/server_sent_events/'>Server-sent events </a></li> <li><a href='/developers/server_sent_events/'>Server-sent events </a></li>
</ul> </ul>
</li> </li>

View file

@ -118,7 +118,7 @@
</ul> </ul>
</li> </li>
<li> <li>
<a href='/developers/add_new_platform/'>Support a new device (as a platform) </a> <a href='/developers/add_new_platform/'>Creating a new platform (to support a new device) </a>
<ul> <ul>
<li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li> <li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li>
<li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li> <li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li>
@ -156,13 +156,29 @@
<li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li> <li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li>
</ul> </ul>
</li> </li>
<li>
<a href='/developers/hassio/architecture/'>Hass.io architecture </a>
<ul>
<li><a href='/developers/hassio/debugging/'>Debugging Hass.io </a></li>
</ul>
</li>
<li>
<a href='/developers/hassio/addon_development/'>Hass.io Add-on Development </a>
<ul>
<li><a href='/developers/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li>
<li><a href='/developers/hassio/addon_config/'>Configuration </a></li>
<li><a href='/developers/hassio/addon_testing/'>Local Testing </a></li>
<li><a href='/developers/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/developers/hassio/addon_repository/'>Repositories </a></li>
</ul>
</li>
<li> <li>
<a href='/developers/api/'>API </a> <a href='/developers/api/'>API </a>
<ul> <ul>
<li><a href='https://dev-docs.home-assistant.io/en/dev/'>Home Assistant API </a></li> <li><a href='https://dev-docs.home-assistant.io/en/dev/'>Python API </a></li>
<li><a href='/developers/websocket_api/'>Websocket API </a></li> <li><a href='/developers/websocket_api/'>Websocket API </a></li>
<li><a href='/developers/rest_api/'>RESTful API </a></li> <li><a href='/developers/rest_api/'>REST API </a></li>
<li><a href='/developers/python_api/'>Python API </a></li> <li><a href='/developers/python_api/'>Python REST API </a></li>
<li><a href='/developers/server_sent_events/'>Server-sent events </a></li> <li><a href='/developers/server_sent_events/'>Server-sent events </a></li>
</ul> </ul>
</li> </li>

View file

@ -219,7 +219,7 @@
</ul> </ul>
</li> </li>
<li> <li>
<a href='/developers/add_new_platform/'>Support a new device (as a platform) </a> <a href='/developers/add_new_platform/'>Creating a new platform (to support a new device) </a>
<ul> <ul>
<li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li> <li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li>
<li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li> <li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li>
@ -257,13 +257,29 @@
<li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li> <li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li>
</ul> </ul>
</li> </li>
<li>
<a href='/developers/hassio/architecture/'>Hass.io architecture </a>
<ul>
<li><a href='/developers/hassio/debugging/'>Debugging Hass.io </a></li>
</ul>
</li>
<li>
<a href='/developers/hassio/addon_development/'>Hass.io Add-on Development </a>
<ul>
<li><a href='/developers/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li>
<li><a href='/developers/hassio/addon_config/'>Configuration </a></li>
<li><a href='/developers/hassio/addon_testing/'>Local Testing </a></li>
<li><a href='/developers/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/developers/hassio/addon_repository/'>Repositories </a></li>
</ul>
</li>
<li> <li>
<a href='/developers/api/'>API </a> <a href='/developers/api/'>API </a>
<ul> <ul>
<li><a href='https://dev-docs.home-assistant.io/en/dev/'>Home Assistant API </a></li> <li><a href='https://dev-docs.home-assistant.io/en/dev/'>Python API </a></li>
<li><a href='/developers/websocket_api/'>Websocket API </a></li> <li><a href='/developers/websocket_api/'>Websocket API </a></li>
<li><a href='/developers/rest_api/'>RESTful API </a></li> <li><a href='/developers/rest_api/'>REST API </a></li>
<li><a href='/developers/python_api/'>Python API </a></li> <li><a href='/developers/python_api/'>Python REST API </a></li>
<li><a href='/developers/server_sent_events/'>Server-sent events </a></li> <li><a href='/developers/server_sent_events/'>Server-sent events </a></li>
</ul> </ul>
</li> </li>

View file

@ -143,7 +143,7 @@ and not mention sign-off.</p>
</ul> </ul>
</li> </li>
<li> <li>
<a href='/developers/add_new_platform/'>Support a new device (as a platform) </a> <a href='/developers/add_new_platform/'>Creating a new platform (to support a new device) </a>
<ul> <ul>
<li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li> <li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li>
<li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li> <li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li>
@ -181,13 +181,29 @@ and not mention sign-off.</p>
<li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li> <li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li>
</ul> </ul>
</li> </li>
<li>
<a href='/developers/hassio/architecture/'>Hass.io architecture </a>
<ul>
<li><a href='/developers/hassio/debugging/'>Debugging Hass.io </a></li>
</ul>
</li>
<li>
<a href='/developers/hassio/addon_development/'>Hass.io Add-on Development </a>
<ul>
<li><a href='/developers/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li>
<li><a href='/developers/hassio/addon_config/'>Configuration </a></li>
<li><a href='/developers/hassio/addon_testing/'>Local Testing </a></li>
<li><a href='/developers/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/developers/hassio/addon_repository/'>Repositories </a></li>
</ul>
</li>
<li> <li>
<a href='/developers/api/'>API </a> <a href='/developers/api/'>API </a>
<ul> <ul>
<li><a href='https://dev-docs.home-assistant.io/en/dev/'>Home Assistant API </a></li> <li><a href='https://dev-docs.home-assistant.io/en/dev/'>Python API </a></li>
<li><a href='/developers/websocket_api/'>Websocket API </a></li> <li><a href='/developers/websocket_api/'>Websocket API </a></li>
<li><a href='/developers/rest_api/'>RESTful API </a></li> <li><a href='/developers/rest_api/'>REST API </a></li>
<li><a href='/developers/python_api/'>Python API </a></li> <li><a href='/developers/python_api/'>Python REST API </a></li>
<li><a href='/developers/server_sent_events/'>Server-sent events </a></li> <li><a href='/developers/server_sent_events/'>Server-sent events </a></li>
</ul> </ul>
</li> </li>

View file

@ -577,7 +577,7 @@
</ul> </ul>
</li> </li>
<li> <li>
<a href='/developers/add_new_platform/'>Support a new device (as a platform) </a> <a href='/developers/add_new_platform/'>Creating a new platform (to support a new device) </a>
<ul> <ul>
<li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li> <li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li>
<li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li> <li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li>
@ -615,13 +615,29 @@
<li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li> <li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li>
</ul> </ul>
</li> </li>
<li>
<a href='/developers/hassio/architecture/'>Hass.io architecture </a>
<ul>
<li><a href='/developers/hassio/debugging/'>Debugging Hass.io </a></li>
</ul>
</li>
<li>
<a href='/developers/hassio/addon_development/'>Hass.io Add-on Development </a>
<ul>
<li><a href='/developers/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li>
<li><a href='/developers/hassio/addon_config/'>Configuration </a></li>
<li><a href='/developers/hassio/addon_testing/'>Local Testing </a></li>
<li><a href='/developers/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/developers/hassio/addon_repository/'>Repositories </a></li>
</ul>
</li>
<li> <li>
<a href='/developers/api/'>API </a> <a href='/developers/api/'>API </a>
<ul> <ul>
<li><a href='https://dev-docs.home-assistant.io/en/dev/'>Home Assistant API </a></li> <li><a href='https://dev-docs.home-assistant.io/en/dev/'>Python API </a></li>
<li><a href='/developers/websocket_api/'>Websocket API </a></li> <li><a href='/developers/websocket_api/'>Websocket API </a></li>
<li><a href='/developers/rest_api/'>RESTful API </a></li> <li><a href='/developers/rest_api/'>REST API </a></li>
<li><a href='/developers/python_api/'>Python API </a></li> <li><a href='/developers/python_api/'>Python REST API </a></li>
<li><a href='/developers/server_sent_events/'>Server-sent events </a></li> <li><a href='/developers/server_sent_events/'>Server-sent events </a></li>
</ul> </ul>
</li> </li>

View file

@ -128,7 +128,7 @@ $(document).ready(function(){
</ul> </ul>
</li> </li>
<li> <li>
<a href='/developers/add_new_platform/'>Support a new device (as a platform) </a> <a href='/developers/add_new_platform/'>Creating a new platform (to support a new device) </a>
<ul> <ul>
<li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li> <li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li>
<li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li> <li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li>
@ -166,13 +166,29 @@ $(document).ready(function(){
<li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li> <li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li>
</ul> </ul>
</li> </li>
<li>
<a href='/developers/hassio/architecture/'>Hass.io architecture </a>
<ul>
<li><a href='/developers/hassio/debugging/'>Debugging Hass.io </a></li>
</ul>
</li>
<li>
<a href='/developers/hassio/addon_development/'>Hass.io Add-on Development </a>
<ul>
<li><a href='/developers/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li>
<li><a href='/developers/hassio/addon_config/'>Configuration </a></li>
<li><a href='/developers/hassio/addon_testing/'>Local Testing </a></li>
<li><a href='/developers/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/developers/hassio/addon_repository/'>Repositories </a></li>
</ul>
</li>
<li> <li>
<a href='/developers/api/'>API </a> <a href='/developers/api/'>API </a>
<ul> <ul>
<li><a href='https://dev-docs.home-assistant.io/en/dev/'>Home Assistant API </a></li> <li><a href='https://dev-docs.home-assistant.io/en/dev/'>Python API </a></li>
<li><a href='/developers/websocket_api/'>Websocket API </a></li> <li><a href='/developers/websocket_api/'>Websocket API </a></li>
<li><a href='/developers/rest_api/'>RESTful API </a></li> <li><a href='/developers/rest_api/'>REST API </a></li>
<li><a href='/developers/python_api/'>Python API </a></li> <li><a href='/developers/python_api/'>Python REST API </a></li>
<li><a href='/developers/server_sent_events/'>Server-sent events </a></li> <li><a href='/developers/server_sent_events/'>Server-sent events </a></li>
</ul> </ul>
</li> </li>

View file

@ -172,7 +172,7 @@ available <a href="http://contributor-covenant.org/version/1/4/">here</a>.</p>
</ul> </ul>
</li> </li>
<li> <li>
<a href='/developers/add_new_platform/'>Support a new device (as a platform) </a> <a href='/developers/add_new_platform/'>Creating a new platform (to support a new device) </a>
<ul> <ul>
<li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li> <li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li>
<li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li> <li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li>
@ -210,13 +210,29 @@ available <a href="http://contributor-covenant.org/version/1/4/">here</a>.</p>
<li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li> <li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li>
</ul> </ul>
</li> </li>
<li>
<a href='/developers/hassio/architecture/'>Hass.io architecture </a>
<ul>
<li><a href='/developers/hassio/debugging/'>Debugging Hass.io </a></li>
</ul>
</li>
<li>
<a href='/developers/hassio/addon_development/'>Hass.io Add-on Development </a>
<ul>
<li><a href='/developers/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li>
<li><a href='/developers/hassio/addon_config/'>Configuration </a></li>
<li><a href='/developers/hassio/addon_testing/'>Local Testing </a></li>
<li><a href='/developers/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/developers/hassio/addon_repository/'>Repositories </a></li>
</ul>
</li>
<li> <li>
<a href='/developers/api/'>API </a> <a href='/developers/api/'>API </a>
<ul> <ul>
<li><a href='https://dev-docs.home-assistant.io/en/dev/'>Home Assistant API </a></li> <li><a href='https://dev-docs.home-assistant.io/en/dev/'>Python API </a></li>
<li><a href='/developers/websocket_api/'>Websocket API </a></li> <li><a href='/developers/websocket_api/'>Websocket API </a></li>
<li><a href='/developers/rest_api/'>RESTful API </a></li> <li><a href='/developers/rest_api/'>REST API </a></li>
<li><a href='/developers/python_api/'>Python API </a></li> <li><a href='/developers/python_api/'>Python REST API </a></li>
<li><a href='/developers/server_sent_events/'>Server-sent events </a></li> <li><a href='/developers/server_sent_events/'>Server-sent events </a></li>
</ul> </ul>
</li> </li>

View file

@ -143,7 +143,7 @@
</ul> </ul>
</li> </li>
<li> <li>
<a href='/developers/add_new_platform/'>Support a new device (as a platform) </a> <a href='/developers/add_new_platform/'>Creating a new platform (to support a new device) </a>
<ul> <ul>
<li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li> <li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li>
<li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li> <li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li>
@ -181,13 +181,29 @@
<li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li> <li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li>
</ul> </ul>
</li> </li>
<li>
<a href='/developers/hassio/architecture/'>Hass.io architecture </a>
<ul>
<li><a href='/developers/hassio/debugging/'>Debugging Hass.io </a></li>
</ul>
</li>
<li>
<a href='/developers/hassio/addon_development/'>Hass.io Add-on Development </a>
<ul>
<li><a href='/developers/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li>
<li><a href='/developers/hassio/addon_config/'>Configuration </a></li>
<li><a href='/developers/hassio/addon_testing/'>Local Testing </a></li>
<li><a href='/developers/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/developers/hassio/addon_repository/'>Repositories </a></li>
</ul>
</li>
<li> <li>
<a href='/developers/api/'>API </a> <a href='/developers/api/'>API </a>
<ul> <ul>
<li><a href='https://dev-docs.home-assistant.io/en/dev/'>Home Assistant API </a></li> <li><a href='https://dev-docs.home-assistant.io/en/dev/'>Python API </a></li>
<li><a href='/developers/websocket_api/'>Websocket API </a></li> <li><a href='/developers/websocket_api/'>Websocket API </a></li>
<li><a href='/developers/rest_api/'>RESTful API </a></li> <li><a href='/developers/rest_api/'>REST API </a></li>
<li><a href='/developers/python_api/'>Python API </a></li> <li><a href='/developers/python_api/'>Python REST API </a></li>
<li><a href='/developers/server_sent_events/'>Server-sent events </a></li> <li><a href='/developers/server_sent_events/'>Server-sent events </a></li>
</ul> </ul>
</li> </li>

View file

@ -170,7 +170,7 @@
</ul> </ul>
</li> </li>
<li> <li>
<a href='/developers/add_new_platform/'>Support a new device (as a platform) </a> <a href='/developers/add_new_platform/'>Creating a new platform (to support a new device) </a>
<ul> <ul>
<li><a class='active' href='/developers/code_review_platform/'>Checklist creating a platform </a></li> <li><a class='active' href='/developers/code_review_platform/'>Checklist creating a platform </a></li>
<li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li> <li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li>
@ -208,13 +208,29 @@
<li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li> <li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li>
</ul> </ul>
</li> </li>
<li>
<a href='/developers/hassio/architecture/'>Hass.io architecture </a>
<ul>
<li><a href='/developers/hassio/debugging/'>Debugging Hass.io </a></li>
</ul>
</li>
<li>
<a href='/developers/hassio/addon_development/'>Hass.io Add-on Development </a>
<ul>
<li><a href='/developers/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li>
<li><a href='/developers/hassio/addon_config/'>Configuration </a></li>
<li><a href='/developers/hassio/addon_testing/'>Local Testing </a></li>
<li><a href='/developers/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/developers/hassio/addon_repository/'>Repositories </a></li>
</ul>
</li>
<li> <li>
<a href='/developers/api/'>API </a> <a href='/developers/api/'>API </a>
<ul> <ul>
<li><a href='https://dev-docs.home-assistant.io/en/dev/'>Home Assistant API </a></li> <li><a href='https://dev-docs.home-assistant.io/en/dev/'>Python API </a></li>
<li><a href='/developers/websocket_api/'>Websocket API </a></li> <li><a href='/developers/websocket_api/'>Websocket API </a></li>
<li><a href='/developers/rest_api/'>RESTful API </a></li> <li><a href='/developers/rest_api/'>REST API </a></li>
<li><a href='/developers/python_api/'>Python API </a></li> <li><a href='/developers/python_api/'>Python REST API </a></li>
<li><a href='/developers/server_sent_events/'>Server-sent events </a></li> <li><a href='/developers/server_sent_events/'>Server-sent events </a></li>
</ul> </ul>
</li> </li>

View file

@ -137,7 +137,7 @@
</ul> </ul>
</li> </li>
<li> <li>
<a href='/developers/add_new_platform/'>Support a new device (as a platform) </a> <a href='/developers/add_new_platform/'>Creating a new platform (to support a new device) </a>
<ul> <ul>
<li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li> <li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li>
<li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li> <li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li>
@ -175,13 +175,29 @@
<li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li> <li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li>
</ul> </ul>
</li> </li>
<li>
<a href='/developers/hassio/architecture/'>Hass.io architecture </a>
<ul>
<li><a href='/developers/hassio/debugging/'>Debugging Hass.io </a></li>
</ul>
</li>
<li>
<a href='/developers/hassio/addon_development/'>Hass.io Add-on Development </a>
<ul>
<li><a href='/developers/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li>
<li><a href='/developers/hassio/addon_config/'>Configuration </a></li>
<li><a href='/developers/hassio/addon_testing/'>Local Testing </a></li>
<li><a href='/developers/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/developers/hassio/addon_repository/'>Repositories </a></li>
</ul>
</li>
<li> <li>
<a href='/developers/api/'>API </a> <a href='/developers/api/'>API </a>
<ul> <ul>
<li><a href='https://dev-docs.home-assistant.io/en/dev/'>Home Assistant API </a></li> <li><a href='https://dev-docs.home-assistant.io/en/dev/'>Python API </a></li>
<li><a href='/developers/websocket_api/'>Websocket API </a></li> <li><a href='/developers/websocket_api/'>Websocket API </a></li>
<li><a href='/developers/rest_api/'>RESTful API </a></li> <li><a href='/developers/rest_api/'>REST API </a></li>
<li><a href='/developers/python_api/'>Python API </a></li> <li><a href='/developers/python_api/'>Python REST API </a></li>
<li><a href='/developers/server_sent_events/'>Server-sent events </a></li> <li><a href='/developers/server_sent_events/'>Server-sent events </a></li>
</ul> </ul>
</li> </li>

View file

@ -137,7 +137,7 @@ This option is only available for built-in components.
</ul> </ul>
</li> </li>
<li> <li>
<a href='/developers/add_new_platform/'>Support a new device (as a platform) </a> <a href='/developers/add_new_platform/'>Creating a new platform (to support a new device) </a>
<ul> <ul>
<li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li> <li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li>
<li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li> <li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li>
@ -175,13 +175,29 @@ This option is only available for built-in components.
<li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li> <li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li>
</ul> </ul>
</li> </li>
<li>
<a href='/developers/hassio/architecture/'>Hass.io architecture </a>
<ul>
<li><a href='/developers/hassio/debugging/'>Debugging Hass.io </a></li>
</ul>
</li>
<li>
<a href='/developers/hassio/addon_development/'>Hass.io Add-on Development </a>
<ul>
<li><a href='/developers/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li>
<li><a href='/developers/hassio/addon_config/'>Configuration </a></li>
<li><a href='/developers/hassio/addon_testing/'>Local Testing </a></li>
<li><a href='/developers/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/developers/hassio/addon_repository/'>Repositories </a></li>
</ul>
</li>
<li> <li>
<a href='/developers/api/'>API </a> <a href='/developers/api/'>API </a>
<ul> <ul>
<li><a href='https://dev-docs.home-assistant.io/en/dev/'>Home Assistant API </a></li> <li><a href='https://dev-docs.home-assistant.io/en/dev/'>Python API </a></li>
<li><a href='/developers/websocket_api/'>Websocket API </a></li> <li><a href='/developers/websocket_api/'>Websocket API </a></li>
<li><a href='/developers/rest_api/'>RESTful API </a></li> <li><a href='/developers/rest_api/'>REST API </a></li>
<li><a href='/developers/python_api/'>Python API </a></li> <li><a href='/developers/python_api/'>Python REST API </a></li>
<li><a href='/developers/server_sent_events/'>Server-sent events </a></li> <li><a href='/developers/server_sent_events/'>Server-sent events </a></li>
</ul> </ul>
</li> </li>

View file

@ -114,7 +114,7 @@
</ul> </ul>
</li> </li>
<li> <li>
<a href='/developers/add_new_platform/'>Support a new device (as a platform) </a> <a href='/developers/add_new_platform/'>Creating a new platform (to support a new device) </a>
<ul> <ul>
<li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li> <li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li>
<li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li> <li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li>
@ -152,13 +152,29 @@
<li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li> <li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li>
</ul> </ul>
</li> </li>
<li>
<a href='/developers/hassio/architecture/'>Hass.io architecture </a>
<ul>
<li><a href='/developers/hassio/debugging/'>Debugging Hass.io </a></li>
</ul>
</li>
<li>
<a href='/developers/hassio/addon_development/'>Hass.io Add-on Development </a>
<ul>
<li><a href='/developers/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li>
<li><a href='/developers/hassio/addon_config/'>Configuration </a></li>
<li><a href='/developers/hassio/addon_testing/'>Local Testing </a></li>
<li><a href='/developers/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/developers/hassio/addon_repository/'>Repositories </a></li>
</ul>
</li>
<li> <li>
<a href='/developers/api/'>API </a> <a href='/developers/api/'>API </a>
<ul> <ul>
<li><a href='https://dev-docs.home-assistant.io/en/dev/'>Home Assistant API </a></li> <li><a href='https://dev-docs.home-assistant.io/en/dev/'>Python API </a></li>
<li><a href='/developers/websocket_api/'>Websocket API </a></li> <li><a href='/developers/websocket_api/'>Websocket API </a></li>
<li><a href='/developers/rest_api/'>RESTful API </a></li> <li><a href='/developers/rest_api/'>REST API </a></li>
<li><a href='/developers/python_api/'>Python API </a></li> <li><a href='/developers/python_api/'>Python REST API </a></li>
<li><a href='/developers/server_sent_events/'>Server-sent events </a></li> <li><a href='/developers/server_sent_events/'>Server-sent events </a></li>
</ul> </ul>
</li> </li>

View file

@ -164,7 +164,7 @@ This can be achieved using the <code class="highlighter-rouge">load_platform</co
</ul> </ul>
</li> </li>
<li> <li>
<a href='/developers/add_new_platform/'>Support a new device (as a platform) </a> <a href='/developers/add_new_platform/'>Creating a new platform (to support a new device) </a>
<ul> <ul>
<li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li> <li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li>
<li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li> <li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li>
@ -202,13 +202,29 @@ This can be achieved using the <code class="highlighter-rouge">load_platform</co
<li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li> <li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li>
</ul> </ul>
</li> </li>
<li>
<a href='/developers/hassio/architecture/'>Hass.io architecture </a>
<ul>
<li><a href='/developers/hassio/debugging/'>Debugging Hass.io </a></li>
</ul>
</li>
<li>
<a href='/developers/hassio/addon_development/'>Hass.io Add-on Development </a>
<ul>
<li><a href='/developers/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li>
<li><a href='/developers/hassio/addon_config/'>Configuration </a></li>
<li><a href='/developers/hassio/addon_testing/'>Local Testing </a></li>
<li><a href='/developers/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/developers/hassio/addon_repository/'>Repositories </a></li>
</ul>
</li>
<li> <li>
<a href='/developers/api/'>API </a> <a href='/developers/api/'>API </a>
<ul> <ul>
<li><a href='https://dev-docs.home-assistant.io/en/dev/'>Home Assistant API </a></li> <li><a href='https://dev-docs.home-assistant.io/en/dev/'>Python API </a></li>
<li><a href='/developers/websocket_api/'>Websocket API </a></li> <li><a href='/developers/websocket_api/'>Websocket API </a></li>
<li><a href='/developers/rest_api/'>RESTful API </a></li> <li><a href='/developers/rest_api/'>REST API </a></li>
<li><a href='/developers/python_api/'>Python API </a></li> <li><a href='/developers/python_api/'>Python REST API </a></li>
<li><a href='/developers/server_sent_events/'>Server-sent events </a></li> <li><a href='/developers/server_sent_events/'>Server-sent events </a></li>
</ul> </ul>
</li> </li>

View file

@ -125,7 +125,7 @@ Home Assistant will use the directory that contains your config file as the dire
</ul> </ul>
</li> </li>
<li> <li>
<a href='/developers/add_new_platform/'>Support a new device (as a platform) </a> <a href='/developers/add_new_platform/'>Creating a new platform (to support a new device) </a>
<ul> <ul>
<li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li> <li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li>
<li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li> <li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li>
@ -163,13 +163,29 @@ Home Assistant will use the directory that contains your config file as the dire
<li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li> <li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li>
</ul> </ul>
</li> </li>
<li>
<a href='/developers/hassio/architecture/'>Hass.io architecture </a>
<ul>
<li><a href='/developers/hassio/debugging/'>Debugging Hass.io </a></li>
</ul>
</li>
<li>
<a href='/developers/hassio/addon_development/'>Hass.io Add-on Development </a>
<ul>
<li><a href='/developers/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li>
<li><a href='/developers/hassio/addon_config/'>Configuration </a></li>
<li><a href='/developers/hassio/addon_testing/'>Local Testing </a></li>
<li><a href='/developers/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/developers/hassio/addon_repository/'>Repositories </a></li>
</ul>
</li>
<li> <li>
<a href='/developers/api/'>API </a> <a href='/developers/api/'>API </a>
<ul> <ul>
<li><a href='https://dev-docs.home-assistant.io/en/dev/'>Home Assistant API </a></li> <li><a href='https://dev-docs.home-assistant.io/en/dev/'>Python API </a></li>
<li><a href='/developers/websocket_api/'>Websocket API </a></li> <li><a href='/developers/websocket_api/'>Websocket API </a></li>
<li><a href='/developers/rest_api/'>RESTful API </a></li> <li><a href='/developers/rest_api/'>REST API </a></li>
<li><a href='/developers/python_api/'>Python API </a></li> <li><a href='/developers/python_api/'>Python REST API </a></li>
<li><a href='/developers/server_sent_events/'>Server-sent events </a></li> <li><a href='/developers/server_sent_events/'>Server-sent events </a></li>
</ul> </ul>
</li> </li>

View file

@ -122,7 +122,7 @@
</ul> </ul>
</li> </li>
<li> <li>
<a href='/developers/add_new_platform/'>Support a new device (as a platform) </a> <a href='/developers/add_new_platform/'>Creating a new platform (to support a new device) </a>
<ul> <ul>
<li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li> <li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li>
<li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li> <li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li>
@ -160,13 +160,29 @@
<li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li> <li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li>
</ul> </ul>
</li> </li>
<li>
<a href='/developers/hassio/architecture/'>Hass.io architecture </a>
<ul>
<li><a href='/developers/hassio/debugging/'>Debugging Hass.io </a></li>
</ul>
</li>
<li>
<a href='/developers/hassio/addon_development/'>Hass.io Add-on Development </a>
<ul>
<li><a href='/developers/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li>
<li><a href='/developers/hassio/addon_config/'>Configuration </a></li>
<li><a href='/developers/hassio/addon_testing/'>Local Testing </a></li>
<li><a href='/developers/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/developers/hassio/addon_repository/'>Repositories </a></li>
</ul>
</li>
<li> <li>
<a href='/developers/api/'>API </a> <a href='/developers/api/'>API </a>
<ul> <ul>
<li><a href='https://dev-docs.home-assistant.io/en/dev/'>Home Assistant API </a></li> <li><a href='https://dev-docs.home-assistant.io/en/dev/'>Python API </a></li>
<li><a href='/developers/websocket_api/'>Websocket API </a></li> <li><a href='/developers/websocket_api/'>Websocket API </a></li>
<li><a href='/developers/rest_api/'>RESTful API </a></li> <li><a href='/developers/rest_api/'>REST API </a></li>
<li><a href='/developers/python_api/'>Python API </a></li> <li><a href='/developers/python_api/'>Python REST API </a></li>
<li><a href='/developers/server_sent_events/'>Server-sent events </a></li> <li><a href='/developers/server_sent_events/'>Server-sent events </a></li>
</ul> </ul>
</li> </li>

View file

@ -120,7 +120,7 @@ You can set a suggestion for your entitys visibility by setting the <code cla
</ul> </ul>
</li> </li>
<li> <li>
<a href='/developers/add_new_platform/'>Support a new device (as a platform) </a> <a href='/developers/add_new_platform/'>Creating a new platform (to support a new device) </a>
<ul> <ul>
<li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li> <li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li>
<li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li> <li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li>
@ -158,13 +158,29 @@ You can set a suggestion for your entitys visibility by setting the <code cla
<li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li> <li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li>
</ul> </ul>
</li> </li>
<li>
<a href='/developers/hassio/architecture/'>Hass.io architecture </a>
<ul>
<li><a href='/developers/hassio/debugging/'>Debugging Hass.io </a></li>
</ul>
</li>
<li>
<a href='/developers/hassio/addon_development/'>Hass.io Add-on Development </a>
<ul>
<li><a href='/developers/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li>
<li><a href='/developers/hassio/addon_config/'>Configuration </a></li>
<li><a href='/developers/hassio/addon_testing/'>Local Testing </a></li>
<li><a href='/developers/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/developers/hassio/addon_repository/'>Repositories </a></li>
</ul>
</li>
<li> <li>
<a href='/developers/api/'>API </a> <a href='/developers/api/'>API </a>
<ul> <ul>
<li><a href='https://dev-docs.home-assistant.io/en/dev/'>Home Assistant API </a></li> <li><a href='https://dev-docs.home-assistant.io/en/dev/'>Python API </a></li>
<li><a href='/developers/websocket_api/'>Websocket API </a></li> <li><a href='/developers/websocket_api/'>Websocket API </a></li>
<li><a href='/developers/rest_api/'>RESTful API </a></li> <li><a href='/developers/rest_api/'>REST API </a></li>
<li><a href='/developers/python_api/'>Python API </a></li> <li><a href='/developers/python_api/'>Python REST API </a></li>
<li><a href='/developers/server_sent_events/'>Server-sent events </a></li> <li><a href='/developers/server_sent_events/'>Server-sent events </a></li>
</ul> </ul>
</li> </li>

View file

@ -125,7 +125,7 @@
</ul> </ul>
</li> </li>
<li> <li>
<a href='/developers/add_new_platform/'>Support a new device (as a platform) </a> <a href='/developers/add_new_platform/'>Creating a new platform (to support a new device) </a>
<ul> <ul>
<li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li> <li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li>
<li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li> <li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li>
@ -163,13 +163,29 @@
<li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li> <li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li>
</ul> </ul>
</li> </li>
<li>
<a href='/developers/hassio/architecture/'>Hass.io architecture </a>
<ul>
<li><a href='/developers/hassio/debugging/'>Debugging Hass.io </a></li>
</ul>
</li>
<li>
<a href='/developers/hassio/addon_development/'>Hass.io Add-on Development </a>
<ul>
<li><a href='/developers/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li>
<li><a href='/developers/hassio/addon_config/'>Configuration </a></li>
<li><a href='/developers/hassio/addon_testing/'>Local Testing </a></li>
<li><a href='/developers/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/developers/hassio/addon_repository/'>Repositories </a></li>
</ul>
</li>
<li> <li>
<a href='/developers/api/'>API </a> <a href='/developers/api/'>API </a>
<ul> <ul>
<li><a href='https://dev-docs.home-assistant.io/en/dev/'>Home Assistant API </a></li> <li><a href='https://dev-docs.home-assistant.io/en/dev/'>Python API </a></li>
<li><a href='/developers/websocket_api/'>Websocket API </a></li> <li><a href='/developers/websocket_api/'>Websocket API </a></li>
<li><a href='/developers/rest_api/'>RESTful API </a></li> <li><a href='/developers/rest_api/'>REST API </a></li>
<li><a href='/developers/python_api/'>Python API </a></li> <li><a href='/developers/python_api/'>Python REST API </a></li>
<li><a href='/developers/server_sent_events/'>Server-sent events </a></li> <li><a href='/developers/server_sent_events/'>Server-sent events </a></li>
</ul> </ul>
</li> </li>

View file

@ -900,7 +900,7 @@
</ul> </ul>
</li> </li>
<li> <li>
<a href='/developers/add_new_platform/'>Support a new device (as a platform) </a> <a href='/developers/add_new_platform/'>Creating a new platform (to support a new device) </a>
<ul> <ul>
<li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li> <li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li>
<li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li> <li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li>
@ -938,13 +938,29 @@
<li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li> <li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li>
</ul> </ul>
</li> </li>
<li>
<a href='/developers/hassio/architecture/'>Hass.io architecture </a>
<ul>
<li><a href='/developers/hassio/debugging/'>Debugging Hass.io </a></li>
</ul>
</li>
<li>
<a href='/developers/hassio/addon_development/'>Hass.io Add-on Development </a>
<ul>
<li><a href='/developers/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li>
<li><a href='/developers/hassio/addon_config/'>Configuration </a></li>
<li><a href='/developers/hassio/addon_testing/'>Local Testing </a></li>
<li><a href='/developers/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/developers/hassio/addon_repository/'>Repositories </a></li>
</ul>
</li>
<li> <li>
<a href='/developers/api/'>API </a> <a href='/developers/api/'>API </a>
<ul> <ul>
<li><a href='https://dev-docs.home-assistant.io/en/dev/'>Home Assistant API </a></li> <li><a href='https://dev-docs.home-assistant.io/en/dev/'>Python API </a></li>
<li><a href='/developers/websocket_api/'>Websocket API </a></li> <li><a href='/developers/websocket_api/'>Websocket API </a></li>
<li><a href='/developers/rest_api/'>RESTful API </a></li> <li><a href='/developers/rest_api/'>REST API </a></li>
<li><a href='/developers/python_api/'>Python API </a></li> <li><a href='/developers/python_api/'>Python REST API </a></li>
<li><a href='/developers/server_sent_events/'>Server-sent events </a></li> <li><a href='/developers/server_sent_events/'>Server-sent events </a></li>
</ul> </ul>
</li> </li>

View file

@ -134,7 +134,7 @@
</ul> </ul>
</li> </li>
<li> <li>
<a href='/developers/add_new_platform/'>Support a new device (as a platform) </a> <a href='/developers/add_new_platform/'>Creating a new platform (to support a new device) </a>
<ul> <ul>
<li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li> <li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li>
<li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li> <li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li>
@ -172,13 +172,29 @@
<li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li> <li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li>
</ul> </ul>
</li> </li>
<li>
<a href='/developers/hassio/architecture/'>Hass.io architecture </a>
<ul>
<li><a href='/developers/hassio/debugging/'>Debugging Hass.io </a></li>
</ul>
</li>
<li>
<a href='/developers/hassio/addon_development/'>Hass.io Add-on Development </a>
<ul>
<li><a href='/developers/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li>
<li><a href='/developers/hassio/addon_config/'>Configuration </a></li>
<li><a href='/developers/hassio/addon_testing/'>Local Testing </a></li>
<li><a href='/developers/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/developers/hassio/addon_repository/'>Repositories </a></li>
</ul>
</li>
<li> <li>
<a href='/developers/api/'>API </a> <a href='/developers/api/'>API </a>
<ul> <ul>
<li><a href='https://dev-docs.home-assistant.io/en/dev/'>Home Assistant API </a></li> <li><a href='https://dev-docs.home-assistant.io/en/dev/'>Python API </a></li>
<li><a href='/developers/websocket_api/'>Websocket API </a></li> <li><a href='/developers/websocket_api/'>Websocket API </a></li>
<li><a href='/developers/rest_api/'>RESTful API </a></li> <li><a href='/developers/rest_api/'>REST API </a></li>
<li><a href='/developers/python_api/'>Python API </a></li> <li><a href='/developers/python_api/'>Python REST API </a></li>
<li><a href='/developers/server_sent_events/'>Server-sent events </a></li> <li><a href='/developers/server_sent_events/'>Server-sent events </a></li>
</ul> </ul>
</li> </li>

View file

@ -133,7 +133,7 @@ The Home Assistant API has two variants: a synchronous and an asynchronous versi
</ul> </ul>
</li> </li>
<li> <li>
<a href='/developers/add_new_platform/'>Support a new device (as a platform) </a> <a href='/developers/add_new_platform/'>Creating a new platform (to support a new device) </a>
<ul> <ul>
<li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li> <li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li>
<li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li> <li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li>
@ -171,13 +171,29 @@ The Home Assistant API has two variants: a synchronous and an asynchronous versi
<li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li> <li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li>
</ul> </ul>
</li> </li>
<li>
<a href='/developers/hassio/architecture/'>Hass.io architecture </a>
<ul>
<li><a href='/developers/hassio/debugging/'>Debugging Hass.io </a></li>
</ul>
</li>
<li>
<a href='/developers/hassio/addon_development/'>Hass.io Add-on Development </a>
<ul>
<li><a href='/developers/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li>
<li><a href='/developers/hassio/addon_config/'>Configuration </a></li>
<li><a href='/developers/hassio/addon_testing/'>Local Testing </a></li>
<li><a href='/developers/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/developers/hassio/addon_repository/'>Repositories </a></li>
</ul>
</li>
<li> <li>
<a href='/developers/api/'>API </a> <a href='/developers/api/'>API </a>
<ul> <ul>
<li><a href='https://dev-docs.home-assistant.io/en/dev/'>Home Assistant API </a></li> <li><a href='https://dev-docs.home-assistant.io/en/dev/'>Python API </a></li>
<li><a href='/developers/websocket_api/'>Websocket API </a></li> <li><a href='/developers/websocket_api/'>Websocket API </a></li>
<li><a href='/developers/rest_api/'>RESTful API </a></li> <li><a href='/developers/rest_api/'>REST API </a></li>
<li><a href='/developers/python_api/'>Python API </a></li> <li><a href='/developers/python_api/'>Python REST API </a></li>
<li><a href='/developers/server_sent_events/'>Server-sent events </a></li> <li><a href='/developers/server_sent_events/'>Server-sent events </a></li>
</ul> </ul>
</li> </li>

View file

@ -131,7 +131,7 @@
</ul> </ul>
</li> </li>
<li> <li>
<a href='/developers/add_new_platform/'>Support a new device (as a platform) </a> <a href='/developers/add_new_platform/'>Creating a new platform (to support a new device) </a>
<ul> <ul>
<li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li> <li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li>
<li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li> <li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li>
@ -169,13 +169,29 @@
<li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li> <li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li>
</ul> </ul>
</li> </li>
<li>
<a href='/developers/hassio/architecture/'>Hass.io architecture </a>
<ul>
<li><a href='/developers/hassio/debugging/'>Debugging Hass.io </a></li>
</ul>
</li>
<li>
<a href='/developers/hassio/addon_development/'>Hass.io Add-on Development </a>
<ul>
<li><a href='/developers/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li>
<li><a href='/developers/hassio/addon_config/'>Configuration </a></li>
<li><a href='/developers/hassio/addon_testing/'>Local Testing </a></li>
<li><a href='/developers/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/developers/hassio/addon_repository/'>Repositories </a></li>
</ul>
</li>
<li> <li>
<a href='/developers/api/'>API </a> <a href='/developers/api/'>API </a>
<ul> <ul>
<li><a href='https://dev-docs.home-assistant.io/en/dev/'>Home Assistant API </a></li> <li><a href='https://dev-docs.home-assistant.io/en/dev/'>Python API </a></li>
<li><a href='/developers/websocket_api/'>Websocket API </a></li> <li><a href='/developers/websocket_api/'>Websocket API </a></li>
<li><a href='/developers/rest_api/'>RESTful API </a></li> <li><a href='/developers/rest_api/'>REST API </a></li>
<li><a href='/developers/python_api/'>Python API </a></li> <li><a href='/developers/python_api/'>Python REST API </a></li>
<li><a href='/developers/server_sent_events/'>Server-sent events </a></li> <li><a href='/developers/server_sent_events/'>Server-sent events </a></li>
</ul> </ul>
</li> </li>

View file

@ -124,7 +124,7 @@
</ul> </ul>
</li> </li>
<li> <li>
<a href='/developers/add_new_platform/'>Support a new device (as a platform) </a> <a href='/developers/add_new_platform/'>Creating a new platform (to support a new device) </a>
<ul> <ul>
<li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li> <li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li>
<li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li> <li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li>
@ -162,13 +162,29 @@
<li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li> <li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li>
</ul> </ul>
</li> </li>
<li>
<a href='/developers/hassio/architecture/'>Hass.io architecture </a>
<ul>
<li><a href='/developers/hassio/debugging/'>Debugging Hass.io </a></li>
</ul>
</li>
<li>
<a href='/developers/hassio/addon_development/'>Hass.io Add-on Development </a>
<ul>
<li><a href='/developers/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li>
<li><a href='/developers/hassio/addon_config/'>Configuration </a></li>
<li><a href='/developers/hassio/addon_testing/'>Local Testing </a></li>
<li><a href='/developers/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/developers/hassio/addon_repository/'>Repositories </a></li>
</ul>
</li>
<li> <li>
<a href='/developers/api/'>API </a> <a href='/developers/api/'>API </a>
<ul> <ul>
<li><a href='https://dev-docs.home-assistant.io/en/dev/'>Home Assistant API </a></li> <li><a href='https://dev-docs.home-assistant.io/en/dev/'>Python API </a></li>
<li><a href='/developers/websocket_api/'>Websocket API </a></li> <li><a href='/developers/websocket_api/'>Websocket API </a></li>
<li><a href='/developers/rest_api/'>RESTful API </a></li> <li><a href='/developers/rest_api/'>REST API </a></li>
<li><a href='/developers/python_api/'>Python API </a></li> <li><a href='/developers/python_api/'>Python REST API </a></li>
<li><a href='/developers/server_sent_events/'>Server-sent events </a></li> <li><a href='/developers/server_sent_events/'>Server-sent events </a></li>
</ul> </ul>
</li> </li>

View file

@ -127,7 +127,7 @@
</ul> </ul>
</li> </li>
<li> <li>
<a href='/developers/add_new_platform/'>Support a new device (as a platform) </a> <a href='/developers/add_new_platform/'>Creating a new platform (to support a new device) </a>
<ul> <ul>
<li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li> <li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li>
<li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li> <li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li>
@ -165,13 +165,29 @@
<li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li> <li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li>
</ul> </ul>
</li> </li>
<li>
<a href='/developers/hassio/architecture/'>Hass.io architecture </a>
<ul>
<li><a href='/developers/hassio/debugging/'>Debugging Hass.io </a></li>
</ul>
</li>
<li>
<a href='/developers/hassio/addon_development/'>Hass.io Add-on Development </a>
<ul>
<li><a href='/developers/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li>
<li><a href='/developers/hassio/addon_config/'>Configuration </a></li>
<li><a href='/developers/hassio/addon_testing/'>Local Testing </a></li>
<li><a href='/developers/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/developers/hassio/addon_repository/'>Repositories </a></li>
</ul>
</li>
<li> <li>
<a href='/developers/api/'>API </a> <a href='/developers/api/'>API </a>
<ul> <ul>
<li><a href='https://dev-docs.home-assistant.io/en/dev/'>Home Assistant API </a></li> <li><a href='https://dev-docs.home-assistant.io/en/dev/'>Python API </a></li>
<li><a href='/developers/websocket_api/'>Websocket API </a></li> <li><a href='/developers/websocket_api/'>Websocket API </a></li>
<li><a href='/developers/rest_api/'>RESTful API </a></li> <li><a href='/developers/rest_api/'>REST API </a></li>
<li><a href='/developers/python_api/'>Python API </a></li> <li><a href='/developers/python_api/'>Python REST API </a></li>
<li><a href='/developers/server_sent_events/'>Server-sent events </a></li> <li><a href='/developers/server_sent_events/'>Server-sent events </a></li>
</ul> </ul>
</li> </li>

View file

@ -167,7 +167,7 @@ logging to DEBUG to see even more details about what is going on.</p>
</ul> </ul>
</li> </li>
<li> <li>
<a href='/developers/add_new_platform/'>Support a new device (as a platform) </a> <a href='/developers/add_new_platform/'>Creating a new platform (to support a new device) </a>
<ul> <ul>
<li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li> <li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li>
<li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li> <li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li>
@ -205,13 +205,29 @@ logging to DEBUG to see even more details about what is going on.</p>
<li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li> <li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li>
</ul> </ul>
</li> </li>
<li>
<a href='/developers/hassio/architecture/'>Hass.io architecture </a>
<ul>
<li><a href='/developers/hassio/debugging/'>Debugging Hass.io </a></li>
</ul>
</li>
<li>
<a href='/developers/hassio/addon_development/'>Hass.io Add-on Development </a>
<ul>
<li><a href='/developers/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li>
<li><a href='/developers/hassio/addon_config/'>Configuration </a></li>
<li><a href='/developers/hassio/addon_testing/'>Local Testing </a></li>
<li><a href='/developers/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/developers/hassio/addon_repository/'>Repositories </a></li>
</ul>
</li>
<li> <li>
<a href='/developers/api/'>API </a> <a href='/developers/api/'>API </a>
<ul> <ul>
<li><a href='https://dev-docs.home-assistant.io/en/dev/'>Home Assistant API </a></li> <li><a href='https://dev-docs.home-assistant.io/en/dev/'>Python API </a></li>
<li><a href='/developers/websocket_api/'>Websocket API </a></li> <li><a href='/developers/websocket_api/'>Websocket API </a></li>
<li><a href='/developers/rest_api/'>RESTful API </a></li> <li><a href='/developers/rest_api/'>REST API </a></li>
<li><a href='/developers/python_api/'>Python API </a></li> <li><a href='/developers/python_api/'>Python REST API </a></li>
<li><a href='/developers/server_sent_events/'>Server-sent events </a></li> <li><a href='/developers/server_sent_events/'>Server-sent events </a></li>
</ul> </ul>
</li> </li>

View file

@ -149,7 +149,7 @@
</ul> </ul>
</li> </li>
<li> <li>
<a href='/developers/add_new_platform/'>Support a new device (as a platform) </a> <a href='/developers/add_new_platform/'>Creating a new platform (to support a new device) </a>
<ul> <ul>
<li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li> <li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li>
<li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li> <li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li>
@ -187,13 +187,29 @@
<li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li> <li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li>
</ul> </ul>
</li> </li>
<li>
<a href='/developers/hassio/architecture/'>Hass.io architecture </a>
<ul>
<li><a href='/developers/hassio/debugging/'>Debugging Hass.io </a></li>
</ul>
</li>
<li>
<a href='/developers/hassio/addon_development/'>Hass.io Add-on Development </a>
<ul>
<li><a href='/developers/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li>
<li><a href='/developers/hassio/addon_config/'>Configuration </a></li>
<li><a href='/developers/hassio/addon_testing/'>Local Testing </a></li>
<li><a href='/developers/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/developers/hassio/addon_repository/'>Repositories </a></li>
</ul>
</li>
<li> <li>
<a href='/developers/api/'>API </a> <a href='/developers/api/'>API </a>
<ul> <ul>
<li><a href='https://dev-docs.home-assistant.io/en/dev/'>Home Assistant API </a></li> <li><a href='https://dev-docs.home-assistant.io/en/dev/'>Python API </a></li>
<li><a href='/developers/websocket_api/'>Websocket API </a></li> <li><a href='/developers/websocket_api/'>Websocket API </a></li>
<li><a href='/developers/rest_api/'>RESTful API </a></li> <li><a href='/developers/rest_api/'>REST API </a></li>
<li><a href='/developers/python_api/'>Python API </a></li> <li><a href='/developers/python_api/'>Python REST API </a></li>
<li><a href='/developers/server_sent_events/'>Server-sent events </a></li> <li><a href='/developers/server_sent_events/'>Server-sent events </a></li>
</ul> </ul>
</li> </li>

View file

@ -164,7 +164,7 @@ https://home-assistant.io/components/light.mqtt/
</ul> </ul>
</li> </li>
<li> <li>
<a href='/developers/add_new_platform/'>Support a new device (as a platform) </a> <a href='/developers/add_new_platform/'>Creating a new platform (to support a new device) </a>
<ul> <ul>
<li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li> <li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li>
<li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li> <li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li>
@ -202,13 +202,29 @@ https://home-assistant.io/components/light.mqtt/
<li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li> <li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li>
</ul> </ul>
</li> </li>
<li>
<a href='/developers/hassio/architecture/'>Hass.io architecture </a>
<ul>
<li><a href='/developers/hassio/debugging/'>Debugging Hass.io </a></li>
</ul>
</li>
<li>
<a href='/developers/hassio/addon_development/'>Hass.io Add-on Development </a>
<ul>
<li><a href='/developers/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li>
<li><a href='/developers/hassio/addon_config/'>Configuration </a></li>
<li><a href='/developers/hassio/addon_testing/'>Local Testing </a></li>
<li><a href='/developers/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/developers/hassio/addon_repository/'>Repositories </a></li>
</ul>
</li>
<li> <li>
<a href='/developers/api/'>API </a> <a href='/developers/api/'>API </a>
<ul> <ul>
<li><a href='https://dev-docs.home-assistant.io/en/dev/'>Home Assistant API </a></li> <li><a href='https://dev-docs.home-assistant.io/en/dev/'>Python API </a></li>
<li><a href='/developers/websocket_api/'>Websocket API </a></li> <li><a href='/developers/websocket_api/'>Websocket API </a></li>
<li><a href='/developers/rest_api/'>RESTful API </a></li> <li><a href='/developers/rest_api/'>REST API </a></li>
<li><a href='/developers/python_api/'>Python API </a></li> <li><a href='/developers/python_api/'>Python REST API </a></li>
<li><a href='/developers/server_sent_events/'>Server-sent events </a></li> <li><a href='/developers/server_sent_events/'>Server-sent events </a></li>
</ul> </ul>
</li> </li>

View file

@ -154,7 +154,7 @@ Available as <code class="highlighter-rouge">self.hass</code> once the entity ha
</ul> </ul>
</li> </li>
<li> <li>
<a href='/developers/add_new_platform/'>Support a new device (as a platform) </a> <a href='/developers/add_new_platform/'>Creating a new platform (to support a new device) </a>
<ul> <ul>
<li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li> <li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li>
<li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li> <li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li>
@ -192,13 +192,29 @@ Available as <code class="highlighter-rouge">self.hass</code> once the entity ha
<li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li> <li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li>
</ul> </ul>
</li> </li>
<li>
<a href='/developers/hassio/architecture/'>Hass.io architecture </a>
<ul>
<li><a href='/developers/hassio/debugging/'>Debugging Hass.io </a></li>
</ul>
</li>
<li>
<a href='/developers/hassio/addon_development/'>Hass.io Add-on Development </a>
<ul>
<li><a href='/developers/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li>
<li><a href='/developers/hassio/addon_config/'>Configuration </a></li>
<li><a href='/developers/hassio/addon_testing/'>Local Testing </a></li>
<li><a href='/developers/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/developers/hassio/addon_repository/'>Repositories </a></li>
</ul>
</li>
<li> <li>
<a href='/developers/api/'>API </a> <a href='/developers/api/'>API </a>
<ul> <ul>
<li><a href='https://dev-docs.home-assistant.io/en/dev/'>Home Assistant API </a></li> <li><a href='https://dev-docs.home-assistant.io/en/dev/'>Python API </a></li>
<li><a href='/developers/websocket_api/'>Websocket API </a></li> <li><a href='/developers/websocket_api/'>Websocket API </a></li>
<li><a href='/developers/rest_api/'>RESTful API </a></li> <li><a href='/developers/rest_api/'>REST API </a></li>
<li><a href='/developers/python_api/'>Python API </a></li> <li><a href='/developers/python_api/'>Python REST API </a></li>
<li><a href='/developers/server_sent_events/'>Server-sent events </a></li> <li><a href='/developers/server_sent_events/'>Server-sent events </a></li>
</ul> </ul>
</li> </li>

View file

@ -149,7 +149,7 @@
</ul> </ul>
</li> </li>
<li> <li>
<a href='/developers/add_new_platform/'>Support a new device (as a platform) </a> <a href='/developers/add_new_platform/'>Creating a new platform (to support a new device) </a>
<ul> <ul>
<li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li> <li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li>
<li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li> <li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li>
@ -187,13 +187,29 @@
<li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li> <li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li>
</ul> </ul>
</li> </li>
<li>
<a href='/developers/hassio/architecture/'>Hass.io architecture </a>
<ul>
<li><a href='/developers/hassio/debugging/'>Debugging Hass.io </a></li>
</ul>
</li>
<li>
<a href='/developers/hassio/addon_development/'>Hass.io Add-on Development </a>
<ul>
<li><a href='/developers/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li>
<li><a href='/developers/hassio/addon_config/'>Configuration </a></li>
<li><a href='/developers/hassio/addon_testing/'>Local Testing </a></li>
<li><a href='/developers/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/developers/hassio/addon_repository/'>Repositories </a></li>
</ul>
</li>
<li> <li>
<a href='/developers/api/'>API </a> <a href='/developers/api/'>API </a>
<ul> <ul>
<li><a href='https://dev-docs.home-assistant.io/en/dev/'>Home Assistant API </a></li> <li><a href='https://dev-docs.home-assistant.io/en/dev/'>Python API </a></li>
<li><a href='/developers/websocket_api/'>Websocket API </a></li> <li><a href='/developers/websocket_api/'>Websocket API </a></li>
<li><a href='/developers/rest_api/'>RESTful API </a></li> <li><a href='/developers/rest_api/'>REST API </a></li>
<li><a href='/developers/python_api/'>Python API </a></li> <li><a href='/developers/python_api/'>Python REST API </a></li>
<li><a href='/developers/server_sent_events/'>Server-sent events </a></li> <li><a href='/developers/server_sent_events/'>Server-sent events </a></li>
</ul> </ul>
</li> </li>

View file

@ -221,7 +221,7 @@ The component will only write a log message. Keep in mind for later that you hav
</ul> </ul>
</li> </li>
<li> <li>
<a href='/developers/add_new_platform/'>Support a new device (as a platform) </a> <a href='/developers/add_new_platform/'>Creating a new platform (to support a new device) </a>
<ul> <ul>
<li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li> <li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li>
<li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li> <li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li>
@ -259,13 +259,29 @@ The component will only write a log message. Keep in mind for later that you hav
<li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li> <li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li>
</ul> </ul>
</li> </li>
<li>
<a href='/developers/hassio/architecture/'>Hass.io architecture </a>
<ul>
<li><a href='/developers/hassio/debugging/'>Debugging Hass.io </a></li>
</ul>
</li>
<li>
<a href='/developers/hassio/addon_development/'>Hass.io Add-on Development </a>
<ul>
<li><a href='/developers/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li>
<li><a href='/developers/hassio/addon_config/'>Configuration </a></li>
<li><a href='/developers/hassio/addon_testing/'>Local Testing </a></li>
<li><a href='/developers/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/developers/hassio/addon_repository/'>Repositories </a></li>
</ul>
</li>
<li> <li>
<a href='/developers/api/'>API </a> <a href='/developers/api/'>API </a>
<ul> <ul>
<li><a href='https://dev-docs.home-assistant.io/en/dev/'>Home Assistant API </a></li> <li><a href='https://dev-docs.home-assistant.io/en/dev/'>Python API </a></li>
<li><a href='/developers/websocket_api/'>Websocket API </a></li> <li><a href='/developers/websocket_api/'>Websocket API </a></li>
<li><a href='/developers/rest_api/'>RESTful API </a></li> <li><a href='/developers/rest_api/'>REST API </a></li>
<li><a href='/developers/python_api/'>Python API </a></li> <li><a href='/developers/python_api/'>Python REST API </a></li>
<li><a href='/developers/server_sent_events/'>Server-sent events </a></li> <li><a href='/developers/server_sent_events/'>Server-sent events </a></li>
</ul> </ul>
</li> </li>

View file

@ -144,7 +144,7 @@
</ul> </ul>
</li> </li>
<li> <li>
<a href='/developers/add_new_platform/'>Support a new device (as a platform) </a> <a href='/developers/add_new_platform/'>Creating a new platform (to support a new device) </a>
<ul> <ul>
<li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li> <li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li>
<li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li> <li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li>
@ -182,13 +182,29 @@
<li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li> <li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li>
</ul> </ul>
</li> </li>
<li>
<a href='/developers/hassio/architecture/'>Hass.io architecture </a>
<ul>
<li><a href='/developers/hassio/debugging/'>Debugging Hass.io </a></li>
</ul>
</li>
<li>
<a href='/developers/hassio/addon_development/'>Hass.io Add-on Development </a>
<ul>
<li><a href='/developers/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li>
<li><a href='/developers/hassio/addon_config/'>Configuration </a></li>
<li><a href='/developers/hassio/addon_testing/'>Local Testing </a></li>
<li><a href='/developers/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/developers/hassio/addon_repository/'>Repositories </a></li>
</ul>
</li>
<li> <li>
<a href='/developers/api/'>API </a> <a href='/developers/api/'>API </a>
<ul> <ul>
<li><a href='https://dev-docs.home-assistant.io/en/dev/'>Home Assistant API </a></li> <li><a href='https://dev-docs.home-assistant.io/en/dev/'>Python API </a></li>
<li><a href='/developers/websocket_api/'>Websocket API </a></li> <li><a href='/developers/websocket_api/'>Websocket API </a></li>
<li><a href='/developers/rest_api/'>RESTful API </a></li> <li><a href='/developers/rest_api/'>REST API </a></li>
<li><a href='/developers/python_api/'>Python API </a></li> <li><a href='/developers/python_api/'>Python REST API </a></li>
<li><a href='/developers/server_sent_events/'>Server-sent events </a></li> <li><a href='/developers/server_sent_events/'>Server-sent events </a></li>
</ul> </ul>
</li> </li>

View file

@ -158,7 +158,7 @@
</ul> </ul>
</li> </li>
<li> <li>
<a href='/developers/add_new_platform/'>Support a new device (as a platform) </a> <a href='/developers/add_new_platform/'>Creating a new platform (to support a new device) </a>
<ul> <ul>
<li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li> <li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li>
<li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li> <li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li>
@ -196,13 +196,29 @@
<li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li> <li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li>
</ul> </ul>
</li> </li>
<li>
<a href='/developers/hassio/architecture/'>Hass.io architecture </a>
<ul>
<li><a href='/developers/hassio/debugging/'>Debugging Hass.io </a></li>
</ul>
</li>
<li>
<a href='/developers/hassio/addon_development/'>Hass.io Add-on Development </a>
<ul>
<li><a href='/developers/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li>
<li><a href='/developers/hassio/addon_config/'>Configuration </a></li>
<li><a href='/developers/hassio/addon_testing/'>Local Testing </a></li>
<li><a href='/developers/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/developers/hassio/addon_repository/'>Repositories </a></li>
</ul>
</li>
<li> <li>
<a href='/developers/api/'>API </a> <a href='/developers/api/'>API </a>
<ul> <ul>
<li><a href='https://dev-docs.home-assistant.io/en/dev/'>Home Assistant API </a></li> <li><a href='https://dev-docs.home-assistant.io/en/dev/'>Python API </a></li>
<li><a href='/developers/websocket_api/'>Websocket API </a></li> <li><a href='/developers/websocket_api/'>Websocket API </a></li>
<li><a href='/developers/rest_api/'>RESTful API </a></li> <li><a href='/developers/rest_api/'>REST API </a></li>
<li><a href='/developers/python_api/'>Python API </a></li> <li><a href='/developers/python_api/'>Python REST API </a></li>
<li><a href='/developers/server_sent_events/'>Server-sent events </a></li> <li><a href='/developers/server_sent_events/'>Server-sent events </a></li>
</ul> </ul>
</li> </li>

View file

@ -172,7 +172,7 @@
</ul> </ul>
</li> </li>
<li> <li>
<a href='/developers/add_new_platform/'>Support a new device (as a platform) </a> <a href='/developers/add_new_platform/'>Creating a new platform (to support a new device) </a>
<ul> <ul>
<li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li> <li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li>
<li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li> <li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li>
@ -210,13 +210,29 @@
<li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li> <li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li>
</ul> </ul>
</li> </li>
<li>
<a href='/developers/hassio/architecture/'>Hass.io architecture </a>
<ul>
<li><a href='/developers/hassio/debugging/'>Debugging Hass.io </a></li>
</ul>
</li>
<li>
<a href='/developers/hassio/addon_development/'>Hass.io Add-on Development </a>
<ul>
<li><a href='/developers/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li>
<li><a href='/developers/hassio/addon_config/'>Configuration </a></li>
<li><a href='/developers/hassio/addon_testing/'>Local Testing </a></li>
<li><a href='/developers/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/developers/hassio/addon_repository/'>Repositories </a></li>
</ul>
</li>
<li> <li>
<a href='/developers/api/'>API </a> <a href='/developers/api/'>API </a>
<ul> <ul>
<li><a href='https://dev-docs.home-assistant.io/en/dev/'>Home Assistant API </a></li> <li><a href='https://dev-docs.home-assistant.io/en/dev/'>Python API </a></li>
<li><a href='/developers/websocket_api/'>Websocket API </a></li> <li><a href='/developers/websocket_api/'>Websocket API </a></li>
<li><a href='/developers/rest_api/'>RESTful API </a></li> <li><a href='/developers/rest_api/'>REST API </a></li>
<li><a href='/developers/python_api/'>Python API </a></li> <li><a href='/developers/python_api/'>Python REST API </a></li>
<li><a href='/developers/server_sent_events/'>Server-sent events </a></li> <li><a href='/developers/server_sent_events/'>Server-sent events </a></li>
</ul> </ul>
</li> </li>

View file

@ -172,7 +172,7 @@ Do not use development mode in production. Home Assistant uses aggressive cachin
</ul> </ul>
</li> </li>
<li> <li>
<a href='/developers/add_new_platform/'>Support a new device (as a platform) </a> <a href='/developers/add_new_platform/'>Creating a new platform (to support a new device) </a>
<ul> <ul>
<li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li> <li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li>
<li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li> <li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li>
@ -210,13 +210,29 @@ Do not use development mode in production. Home Assistant uses aggressive cachin
<li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li> <li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li>
</ul> </ul>
</li> </li>
<li>
<a href='/developers/hassio/architecture/'>Hass.io architecture </a>
<ul>
<li><a href='/developers/hassio/debugging/'>Debugging Hass.io </a></li>
</ul>
</li>
<li>
<a href='/developers/hassio/addon_development/'>Hass.io Add-on Development </a>
<ul>
<li><a href='/developers/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li>
<li><a href='/developers/hassio/addon_config/'>Configuration </a></li>
<li><a href='/developers/hassio/addon_testing/'>Local Testing </a></li>
<li><a href='/developers/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/developers/hassio/addon_repository/'>Repositories </a></li>
</ul>
</li>
<li> <li>
<a href='/developers/api/'>API </a> <a href='/developers/api/'>API </a>
<ul> <ul>
<li><a href='https://dev-docs.home-assistant.io/en/dev/'>Home Assistant API </a></li> <li><a href='https://dev-docs.home-assistant.io/en/dev/'>Python API </a></li>
<li><a href='/developers/websocket_api/'>Websocket API </a></li> <li><a href='/developers/websocket_api/'>Websocket API </a></li>
<li><a href='/developers/rest_api/'>RESTful API </a></li> <li><a href='/developers/rest_api/'>REST API </a></li>
<li><a href='/developers/python_api/'>Python API </a></li> <li><a href='/developers/python_api/'>Python REST API </a></li>
<li><a href='/developers/server_sent_events/'>Server-sent events </a></li> <li><a href='/developers/server_sent_events/'>Server-sent events </a></li>
</ul> </ul>
</li> </li>

View file

@ -125,7 +125,7 @@
</ul> </ul>
</li> </li>
<li> <li>
<a href='/developers/add_new_platform/'>Support a new device (as a platform) </a> <a href='/developers/add_new_platform/'>Creating a new platform (to support a new device) </a>
<ul> <ul>
<li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li> <li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li>
<li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li> <li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li>
@ -163,13 +163,29 @@
<li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li> <li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li>
</ul> </ul>
</li> </li>
<li>
<a href='/developers/hassio/architecture/'>Hass.io architecture </a>
<ul>
<li><a href='/developers/hassio/debugging/'>Debugging Hass.io </a></li>
</ul>
</li>
<li>
<a href='/developers/hassio/addon_development/'>Hass.io Add-on Development </a>
<ul>
<li><a href='/developers/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li>
<li><a href='/developers/hassio/addon_config/'>Configuration </a></li>
<li><a href='/developers/hassio/addon_testing/'>Local Testing </a></li>
<li><a href='/developers/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/developers/hassio/addon_repository/'>Repositories </a></li>
</ul>
</li>
<li> <li>
<a href='/developers/api/'>API </a> <a href='/developers/api/'>API </a>
<ul> <ul>
<li><a href='https://dev-docs.home-assistant.io/en/dev/'>Home Assistant API </a></li> <li><a href='https://dev-docs.home-assistant.io/en/dev/'>Python API </a></li>
<li><a href='/developers/websocket_api/'>Websocket API </a></li> <li><a href='/developers/websocket_api/'>Websocket API </a></li>
<li><a href='/developers/rest_api/'>RESTful API </a></li> <li><a href='/developers/rest_api/'>REST API </a></li>
<li><a href='/developers/python_api/'>Python API </a></li> <li><a href='/developers/python_api/'>Python REST API </a></li>
<li><a href='/developers/server_sent_events/'>Server-sent events </a></li> <li><a href='/developers/server_sent_events/'>Server-sent events </a></li>
</ul> </ul>
</li> </li>

View file

@ -124,7 +124,7 @@
</ul> </ul>
</li> </li>
<li> <li>
<a href='/developers/add_new_platform/'>Support a new device (as a platform) </a> <a href='/developers/add_new_platform/'>Creating a new platform (to support a new device) </a>
<ul> <ul>
<li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li> <li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li>
<li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li> <li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li>
@ -162,13 +162,29 @@
<li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li> <li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li>
</ul> </ul>
</li> </li>
<li>
<a href='/developers/hassio/architecture/'>Hass.io architecture </a>
<ul>
<li><a href='/developers/hassio/debugging/'>Debugging Hass.io </a></li>
</ul>
</li>
<li>
<a href='/developers/hassio/addon_development/'>Hass.io Add-on Development </a>
<ul>
<li><a href='/developers/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li>
<li><a href='/developers/hassio/addon_config/'>Configuration </a></li>
<li><a href='/developers/hassio/addon_testing/'>Local Testing </a></li>
<li><a href='/developers/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/developers/hassio/addon_repository/'>Repositories </a></li>
</ul>
</li>
<li> <li>
<a href='/developers/api/'>API </a> <a href='/developers/api/'>API </a>
<ul> <ul>
<li><a href='https://dev-docs.home-assistant.io/en/dev/'>Home Assistant API </a></li> <li><a href='https://dev-docs.home-assistant.io/en/dev/'>Python API </a></li>
<li><a href='/developers/websocket_api/'>Websocket API </a></li> <li><a href='/developers/websocket_api/'>Websocket API </a></li>
<li><a href='/developers/rest_api/'>RESTful API </a></li> <li><a href='/developers/rest_api/'>REST API </a></li>
<li><a href='/developers/python_api/'>Python API </a></li> <li><a href='/developers/python_api/'>Python REST API </a></li>
<li><a href='/developers/server_sent_events/'>Server-sent events </a></li> <li><a href='/developers/server_sent_events/'>Server-sent events </a></li>
</ul> </ul>
</li> </li>

View file

@ -172,7 +172,7 @@
</ul> </ul>
</li> </li>
<li> <li>
<a href='/developers/add_new_platform/'>Support a new device (as a platform) </a> <a href='/developers/add_new_platform/'>Creating a new platform (to support a new device) </a>
<ul> <ul>
<li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li> <li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li>
<li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li> <li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li>
@ -210,13 +210,29 @@
<li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li> <li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li>
</ul> </ul>
</li> </li>
<li>
<a href='/developers/hassio/architecture/'>Hass.io architecture </a>
<ul>
<li><a href='/developers/hassio/debugging/'>Debugging Hass.io </a></li>
</ul>
</li>
<li>
<a href='/developers/hassio/addon_development/'>Hass.io Add-on Development </a>
<ul>
<li><a href='/developers/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li>
<li><a href='/developers/hassio/addon_config/'>Configuration </a></li>
<li><a href='/developers/hassio/addon_testing/'>Local Testing </a></li>
<li><a href='/developers/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/developers/hassio/addon_repository/'>Repositories </a></li>
</ul>
</li>
<li> <li>
<a href='/developers/api/'>API </a> <a href='/developers/api/'>API </a>
<ul> <ul>
<li><a href='https://dev-docs.home-assistant.io/en/dev/'>Home Assistant API </a></li> <li><a href='https://dev-docs.home-assistant.io/en/dev/'>Python API </a></li>
<li><a href='/developers/websocket_api/'>Websocket API </a></li> <li><a href='/developers/websocket_api/'>Websocket API </a></li>
<li><a href='/developers/rest_api/'>RESTful API </a></li> <li><a href='/developers/rest_api/'>REST API </a></li>
<li><a href='/developers/python_api/'>Python API </a></li> <li><a href='/developers/python_api/'>Python REST API </a></li>
<li><a href='/developers/server_sent_events/'>Server-sent events </a></li> <li><a href='/developers/server_sent_events/'>Server-sent events </a></li>
</ul> </ul>
</li> </li>

View file

@ -133,7 +133,7 @@ Importing those will work in <code class="highlighter-rouge">development: 1</cod
</ul> </ul>
</li> </li>
<li> <li>
<a href='/developers/add_new_platform/'>Support a new device (as a platform) </a> <a href='/developers/add_new_platform/'>Creating a new platform (to support a new device) </a>
<ul> <ul>
<li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li> <li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li>
<li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li> <li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li>
@ -171,13 +171,29 @@ Importing those will work in <code class="highlighter-rouge">development: 1</cod
<li><a class='active' href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li> <li><a class='active' href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li>
</ul> </ul>
</li> </li>
<li>
<a href='/developers/hassio/architecture/'>Hass.io architecture </a>
<ul>
<li><a href='/developers/hassio/debugging/'>Debugging Hass.io </a></li>
</ul>
</li>
<li>
<a href='/developers/hassio/addon_development/'>Hass.io Add-on Development </a>
<ul>
<li><a href='/developers/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li>
<li><a href='/developers/hassio/addon_config/'>Configuration </a></li>
<li><a href='/developers/hassio/addon_testing/'>Local Testing </a></li>
<li><a href='/developers/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/developers/hassio/addon_repository/'>Repositories </a></li>
</ul>
</li>
<li> <li>
<a href='/developers/api/'>API </a> <a href='/developers/api/'>API </a>
<ul> <ul>
<li><a href='https://dev-docs.home-assistant.io/en/dev/'>Home Assistant API </a></li> <li><a href='https://dev-docs.home-assistant.io/en/dev/'>Python API </a></li>
<li><a href='/developers/websocket_api/'>Websocket API </a></li> <li><a href='/developers/websocket_api/'>Websocket API </a></li>
<li><a href='/developers/rest_api/'>RESTful API </a></li> <li><a href='/developers/rest_api/'>REST API </a></li>
<li><a href='/developers/python_api/'>Python API </a></li> <li><a href='/developers/python_api/'>Python REST API </a></li>
<li><a href='/developers/server_sent_events/'>Server-sent events </a></li> <li><a href='/developers/server_sent_events/'>Server-sent events </a></li>
</ul> </ul>
</li> </li>

View file

@ -0,0 +1,452 @@
<!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>Add-On Configuration - Home Assistant</title>
<meta name="author" content="Home Assistant">
<meta name="description" content="Steps on how-to create an add-on for Hass.io.">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/developers/hassio/addon_config/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="Add-On Configuration">
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/developers/hassio/addon_config/">
<meta property="og:type" content="website">
<meta property="og:description" content="Steps on how-to create an add-on for Hass.io.">
<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="Add-On Configuration">
<meta name="twitter:description" content="Steps on how-to create an add-on for Hass.io.">
<meta name="twitter:image" content="https://home-assistant.io/images/default-social.png">
<link href="/stylesheets/screen.css" media="screen, projection" 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">
<header>
<h1 class="title indent">
Add-On Configuration
</h1>
</header>
<hr class="divider">
<p>Each add-on is stored in a folder. The file structure looks like this:</p>
<div class="highlighter-rouge"><pre class="highlight"><code>addon_name/
Dockerfile
config.json
run.sh
</code></pre>
</div>
<h2><a class="title-link" name="add-on-script" href="#add-on-script"></a> Add-on script</h2>
<p>As with every Docker container, you will need a script to run when the container is started. A user might run many add-ons, so it is encouraged to try to stick to Bash scripts if youre doing simple things.</p>
<p>When developing your script:</p>
<ul>
<li><code class="highlighter-rouge">/data</code> is a volume for persistent storage.</li>
<li><code class="highlighter-rouge">/data/options.json</code> contains the user configuration. You can use <code class="highlighter-rouge">jq</code> inside your shell script to parse this data.</li>
</ul>
<div class="language-bash highlighter-rouge"><pre class="highlight"><code><span class="nb">echo</span> <span class="s1">'{ "target": "beer" }'</span> | jq -r <span class="s2">".target"</span>
</code></pre>
</div>
<h2><a class="title-link" name="add-on-docker-file" href="#add-on-docker-file"></a> Add-on Docker file</h2>
<p>All add-ons are based on Alpine Linux 3.6. Hass.io will automatically substitute the right base image based on the machine architecture. Add <code class="highlighter-rouge">tzdata</code> if you need run in correct timezone, but that is already add in our base images.</p>
<div class="highlighter-rouge"><pre class="highlight"><code>FROM %%BASE_IMAGE%%
ENV LANG C.UTF-8
# Install requirements for add-on
RUN apk add --no-cache jq
# Copy data for add-on
COPY run.sh /
RUN chmod a+x /run.sh
CMD [ "/run.sh" ]
</code></pre>
</div>
<p>If you dont use local build on device or our build script, make sure that the Dockerfile have also a set of labels include:</p>
<div class="highlighter-rouge"><pre class="highlight"><code>LABEL io.hass.version="VERSION" io.hass.type="addon" io.hass.arch="armhf|aarch64|i386|amd64"
</code></pre>
</div>
<p>It is possible to use own base image with follow schema:</p>
<div class="highlighter-rouge"><pre class="highlight"><code>#amd64:FROM...
#i386:FROM...
#armhf:FROM...
#aarch64:FROM...
</code></pre>
</div>
<h2><a class="title-link" name="add-on-config" href="#add-on-config"></a> Add-on config</h2>
<p>The config for an add-on is stored in <code class="highlighter-rouge">config.json</code>.</p>
<div class="language-json highlighter-rouge"><pre class="highlight"><code><span class="p">{</span><span class="w">
</span><span class="nt">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"xy"</span><span class="p">,</span><span class="w">
</span><span class="nt">"version"</span><span class="p">:</span><span class="w"> </span><span class="s2">"1.2"</span><span class="p">,</span><span class="w">
</span><span class="nt">"slug"</span><span class="p">:</span><span class="w"> </span><span class="s2">"folder"</span><span class="p">,</span><span class="w">
</span><span class="nt">"description"</span><span class="p">:</span><span class="w"> </span><span class="s2">"long descripton"</span><span class="p">,</span><span class="w">
</span><span class="nt">"arch"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s2">"amd64"</span><span class="p">],</span><span class="w">
</span><span class="nt">"url"</span><span class="p">:</span><span class="w"> </span><span class="s2">"website with more information about add-on (ie a forum thread for support)"</span><span class="p">,</span><span class="w">
</span><span class="nt">"startup"</span><span class="p">:</span><span class="w"> </span><span class="s2">"before"</span><span class="p">,</span><span class="w">
</span><span class="nt">"boot"</span><span class="p">:</span><span class="w"> </span><span class="s2">"auto"</span><span class="p">,</span><span class="w">
</span><span class="nt">"ports"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
</span><span class="nt">"123/tcp"</span><span class="p">:</span><span class="w"> </span><span class="mi">123</span><span class="w">
</span><span class="p">},</span><span class="w">
</span><span class="nt">"map"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s2">"config:rw"</span><span class="p">,</span><span class="w"> </span><span class="s2">"ssl"</span><span class="p">],</span><span class="w">
</span><span class="nt">"options"</span><span class="p">:</span><span class="w"> </span><span class="p">{},</span><span class="w">
</span><span class="nt">"schema"</span><span class="p">:</span><span class="w"> </span><span class="p">{},</span><span class="w">
</span><span class="nt">"image"</span><span class="p">:</span><span class="w"> </span><span class="s2">"repo/{arch}-my-custom-addon"</span><span class="w">
</span><span class="p">}</span><span class="w">
</span></code></pre>
</div>
<table>
<thead>
<tr>
<th>Key</th>
<th>Required</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>name</td>
<td>yes</td>
<td>Name of the add-on</td>
</tr>
<tr>
<td>version</td>
<td>yes</td>
<td>Version of the add-on</td>
</tr>
<tr>
<td>slug</td>
<td>yes</td>
<td>Slug of the add-on</td>
</tr>
<tr>
<td>description</td>
<td>yes</td>
<td>Description of the add-on</td>
</tr>
<tr>
<td>arch</td>
<td>no</td>
<td>List of supported arch: <code class="highlighter-rouge">armhf</code>, <code class="highlighter-rouge">aarch64</code>, <code class="highlighter-rouge">amd64</code>, <code class="highlighter-rouge">i386</code>. Default all.</td>
</tr>
<tr>
<td>url</td>
<td>no</td>
<td>Homepage of the addon. Here you can explain the add-ons and options.</td>
</tr>
<tr>
<td>startup</td>
<td>yes</td>
<td><code class="highlighter-rouge">initialize</code> will start addon on setup of hassio. <code class="highlighter-rouge">system</code> is for things like database and base not on other things. <code class="highlighter-rouge">services</code> will start before homeassistant. <code class="highlighter-rouge">application</code> is after homeassistant will start or <code class="highlighter-rouge">once</code> for application they dont run as deamon.</td>
</tr>
<tr>
<td>boot</td>
<td>yes</td>
<td><code class="highlighter-rouge">auto</code> by system and manual or only <code class="highlighter-rouge">manual</code></td>
</tr>
<tr>
<td>ports</td>
<td>no</td>
<td>Network ports to expose from the container. Format is <code class="highlighter-rouge">"container-port/type": host-port</code>.</td>
</tr>
<tr>
<td>host_network</td>
<td>no</td>
<td>If that is True, the add-on run on host network.</td>
</tr>
<tr>
<td>devices</td>
<td>no</td>
<td>Device list to map into add-on. Format is: <code class="highlighter-rouge">&lt;path_on_host&gt;:&lt;path_in_container&gt;:&lt;cgroup_permissions&gt;</code>. i.e. <code class="highlighter-rouge">/dev/ttyAMA0:/dev/ttyAMA0:rwm</code></td>
</tr>
<tr>
<td>privileged</td>
<td>no</td>
<td>Privilege for access to hardware/system. Available access: <code class="highlighter-rouge">NET_ADMIN</code></td>
</tr>
<tr>
<td>map</td>
<td>no</td>
<td>List of maps for additional hass.io folders. Possible values: <code class="highlighter-rouge">config</code>, <code class="highlighter-rouge">ssl</code>, <code class="highlighter-rouge">addons</code>, <code class="highlighter-rouge">backup</code>, <code class="highlighter-rouge">share</code>. Default it map it <code class="highlighter-rouge">ro</code>, you can change that if you add a “:rw” at the end of name.</td>
</tr>
<tr>
<td>environment</td>
<td>no</td>
<td>A dict of environment variable to run add-on.</td>
</tr>
<tr>
<td>options</td>
<td>yes</td>
<td>Default options value of the add-on</td>
</tr>
<tr>
<td>schema</td>
<td>yes</td>
<td>Schema for options value of the add-on. It can be <code class="highlighter-rouge">False</code> to disable schema validation and use custom options.</td>
</tr>
<tr>
<td>image</td>
<td>no</td>
<td>For use dockerhub.</td>
</tr>
<tr>
<td>timeout</td>
<td>no</td>
<td>Default 10 (second). The timeout to wait until the docker is done or will be killed.</td>
</tr>
<tr>
<td>tmpfs</td>
<td>no</td>
<td>Mount a tmpfs file system in <code class="highlighter-rouge">/tmpfs</code>. Valide format for this option is : <code class="highlighter-rouge">size=XXXu,uid=N,rw</code>. Size is mandatory, valid units (<code class="highlighter-rouge">u</code>) are <code class="highlighter-rouge">k</code>, <code class="highlighter-rouge">m</code> and <code class="highlighter-rouge">g</code> and <code class="highlighter-rouge">XXX</code> has to be replaced by a number. <code class="highlighter-rouge">uid=N</code> (with <code class="highlighter-rouge">N</code> the uid number) and <code class="highlighter-rouge">rw</code> are optional.</td>
</tr>
</tbody>
</table>
<h3><a class="title-link" name="options--schema" href="#options--schema"></a> Options / Schema</h3>
<p>The <code class="highlighter-rouge">options</code> dict contains all available options and their default value. Set the default value to <code class="highlighter-rouge">null</code> if the value is required to be given by the user before the add-on can start. Only non-nested arrays and dictorys are supported.</p>
<div class="language-json highlighter-rouge"><pre class="highlight"><code><span class="p">{</span><span class="w">
</span><span class="nt">"message"</span><span class="p">:</span><span class="w"> </span><span class="s2">"custom things"</span><span class="p">,</span><span class="w">
</span><span class="nt">"logins"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
</span><span class="p">{</span><span class="w"> </span><span class="nt">"username"</span><span class="p">:</span><span class="w"> </span><span class="s2">"beer"</span><span class="p">,</span><span class="w"> </span><span class="nt">"password"</span><span class="p">:</span><span class="w"> </span><span class="s2">"123456"</span><span class="w"> </span><span class="p">},</span><span class="w">
</span><span class="p">{</span><span class="w"> </span><span class="nt">"username"</span><span class="p">:</span><span class="w"> </span><span class="s2">"cheep"</span><span class="p">,</span><span class="w"> </span><span class="nt">"password"</span><span class="p">:</span><span class="w"> </span><span class="s2">"654321"</span><span class="w"> </span><span class="p">}</span><span class="w">
</span><span class="p">],</span><span class="w">
</span><span class="nt">"random"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s2">"haha"</span><span class="p">,</span><span class="w"> </span><span class="s2">"hihi"</span><span class="p">,</span><span class="w"> </span><span class="s2">"huhu"</span><span class="p">,</span><span class="w"> </span><span class="s2">"hghg"</span><span class="p">],</span><span class="w">
</span><span class="nt">"link"</span><span class="p">:</span><span class="w"> </span><span class="s2">"http://blebla.com/"</span><span class="w">
</span><span class="p">}</span><span class="w">
</span></code></pre>
</div>
<p>The <code class="highlighter-rouge">schema</code> looks like <code class="highlighter-rouge">options</code> but describes how we should validate the user input. For example:</p>
<div class="language-json highlighter-rouge"><pre class="highlight"><code><span class="p">{</span><span class="w">
</span><span class="nt">"message"</span><span class="p">:</span><span class="w"> </span><span class="s2">"str"</span><span class="p">,</span><span class="w">
</span><span class="nt">"logins"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
</span><span class="p">{</span><span class="w"> </span><span class="nt">"username"</span><span class="p">:</span><span class="w"> </span><span class="s2">"str"</span><span class="p">,</span><span class="w"> </span><span class="nt">"password"</span><span class="p">:</span><span class="w"> </span><span class="s2">"str"</span><span class="w"> </span><span class="p">}</span><span class="w">
</span><span class="p">],</span><span class="w">
</span><span class="nt">"random"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s2">"str"</span><span class="p">],</span><span class="w">
</span><span class="nt">"link"</span><span class="p">:</span><span class="w"> </span><span class="s2">"url"</span><span class="w">
</span><span class="p">}</span><span class="w">
</span></code></pre>
</div>
<p>We support:</p>
<ul>
<li>str</li>
<li>bool</li>
<li>int</li>
<li>float</li>
<li>email</li>
<li>url</li>
<li>port</li>
</ul>
</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='edit-github'><a href='https://github.com/home-assistant/home-assistant.github.io/tree/current/source/developers/hassio/addon_config.markdown'>Edit this page on GitHub</a></div>
<div class='section'>
<h1 class="title delta">Development Guide</h1>
<ul class='divided sidebar-menu'>
<li>
<a href='/developers/'>Introduction </a>
<ul>
<li><a href='/developers/architecture/'>Architecture </a></li>
<li><a href='/developers/architecture_components/'>Components </a></li>
</ul>
</li>
<li>
<a href='/developers/development/'>Starting with Development </a>
<ul>
<li><a href='/developers/development_environment/'>Setting up Environment </a></li>
<li><a href='/developers/development_submitting/'>Submit your Work </a></li>
<li><a href='/developers/development_checklist/'>Checklist </a></li>
<li><a href='/developers/development_guidelines/'>Style guidelines </a></li>
<li><a href='/developers/development_testing/'>Testing </a></li>
<li><a href='/developers/development_catching_up/'>Catching up with Reality </a></li>
<li><a href='/developers/development_validation/'>Validation </a></li>
</ul>
</li>
<li>
<a href='/developers/development_101/'>Development 101 </a>
<ul>
<li><a href='/developers/development_hass_object/'>Hass object </a></li>
<li><a href='/developers/development_events/'>Events </a></li>
<li><a href='/developers/development_states/'>States </a></li>
<li><a href='/developers/development_services/'>Services </a></li>
<li><a href='/developers/development_config/'>Config </a></li>
</ul>
</li>
<li>
<a href='/developers/add_new_platform/'>Creating a new platform (to support a new device) </a>
<ul>
<li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li>
<li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li>
<li><a href='/developers/platform_example_light/'>Example light platform </a></li>
</ul>
</li>
<li>
<a href='/developers/creating_components/'>Adding a new component </a>
<ul>
<li><a href='/developers/code_review_component/'>Checklist creating a component </a></li>
<li><a href='/developers/component_loading/'>Loading components </a></li>
<li><a href='/developers/component_deps_and_reqs/'>Requirements & Dependencies </a></li>
<li><a href='/developers/component_events/'>Handling events </a></li>
<li><a href='/developers/component_states/'>States </a></li>
<li><a href='/developers/component_visibility/'>Visibility </a></li>
<li><a href='/developers/component_generic_discovery/'>Loading Platforms </a></li>
<li><a href='/developers/component_discovery/'>Component Discovery </a></li>
</ul>
</li>
<li>
<a href='/developers/asyncio/'>Asynchronous Programming </a>
<ul>
<li><a href='/developers/asyncio_101/'>Introduction to asyncio </a></li>
<li><a href='/developers/asyncio_categorizing_functions/'>Categorizing Functions </a></li>
<li><a href='/developers/asyncio_working_with_async/'>Working with Async </a></li>
<li><a href='/developers/asyncio_misc/'>Miscellaneous </a></li>
</ul>
</li>
<li>
<a href='/developers/frontend/'>Frontend Development </a>
<ul>
<li><a href='/developers/frontend_add_card/'>Add State Card </a></li>
<li><a href='/developers/frontend_add_more_info/'>Add More Info Dialog </a></li>
<li><a href='/developers/frontend_creating_custom_panels/'>Add Custom Panels </a></li>
<li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li>
</ul>
</li>
<li>
<a href='/developers/hassio/architecture/'>Hass.io architecture </a>
<ul>
<li><a href='/developers/hassio/debugging/'>Debugging Hass.io </a></li>
</ul>
</li>
<li>
<a href='/developers/hassio/addon_development/'>Hass.io Add-on Development </a>
<ul>
<li><a href='/developers/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li>
<li><a class='active' href='/developers/hassio/addon_config/'>Configuration </a></li>
<li><a href='/developers/hassio/addon_testing/'>Local Testing </a></li>
<li><a href='/developers/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/developers/hassio/addon_repository/'>Repositories </a></li>
</ul>
</li>
<li>
<a href='/developers/api/'>API </a>
<ul>
<li><a href='https://dev-docs.home-assistant.io/en/dev/'>Python API </a></li>
<li><a href='/developers/websocket_api/'>Websocket API </a></li>
<li><a href='/developers/rest_api/'>REST API </a></li>
<li><a href='/developers/python_api/'>Python REST API </a></li>
<li><a href='/developers/server_sent_events/'>Server-sent events </a></li>
</ul>
</li>
<li><a href='/developers/helpers/'>Online helpers </a></li>
<li><a href='/developers/website/'>Home-Assistant.io </a></li>
<li><a href='/developers/releasing/'>Releasing </a></li>
<li><a href='/developers/maintenance/'>Maintenance </a></li>
<li>
Governance
<ul>
<li><a href='/developers/cla/'>Contributor License Agreement </a></li>
<li><a href='/developers/code_of_conduct/'>Code of Conduct </a></li>
<li><a href='/developers/credits/'>Credits </a></li>
<li><a href='/developers/license/'>License </a></li>
</ul>
</li>
</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>

View file

@ -0,0 +1,256 @@
<!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>Developing an add-on - Home Assistant</title>
<meta name="author" content="Home Assistant">
<meta name="description" content="Steps on how-to create an add-on for Hass.io.">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/developers/hassio/addon_development/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="Developing an add-on">
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/developers/hassio/addon_development/">
<meta property="og:type" content="website">
<meta property="og:description" content="Steps on how-to create an add-on for Hass.io.">
<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="Developing an add-on">
<meta name="twitter:description" content="Steps on how-to create an add-on for Hass.io.">
<meta name="twitter:image" content="https://home-assistant.io/images/default-social.png">
<link href="/stylesheets/screen.css" media="screen, projection" 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">
<header>
<h1 class="title indent">
Developing an Add-on
</h1>
</header>
<hr class="divider">
<p>Add-ons for Hass.io allows the user to extend the functionality around Home Assistant. This can be running an application that Home Assistant can integrate with (like an MQTT broker) or to share the configuration via Samba for easy editing from other computers. Add-ons can be configured via the Hass.io panel in Home Assistant.</p>
<p>Under the hood, add-ons are Docker images published in <a href="https://hub.docker.com/">Docker Hub</a>. Developers can create <a href="https://github.com">GitHub</a> repositories that contain multiple references to add-ons for easy sharing with the community.</p>
<ol>
<li><a href="/developers/hassio/addon_tutorial/">Tutorial: Making your first add-on</a></li>
<li><a href="/developers/hassio/addon_config/">Configuration</a></li>
<li><a href="/developers/hassio/addon_testing/">Local Testing</a></li>
<li><a href="/developers/hassio/addon_publishing/">Publishing</a></li>
<li><a href="/developers/hassio/addon_repository/">Repositories</a></li>
</ol>
</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='edit-github'><a href='https://github.com/home-assistant/home-assistant.github.io/tree/current/source/developers/hassio/addon_development.markdown'>Edit this page on GitHub</a></div>
<div class='section'>
<h1 class="title delta">Development Guide</h1>
<ul class='divided sidebar-menu'>
<li>
<a href='/developers/'>Introduction </a>
<ul>
<li><a href='/developers/architecture/'>Architecture </a></li>
<li><a href='/developers/architecture_components/'>Components </a></li>
</ul>
</li>
<li>
<a href='/developers/development/'>Starting with Development </a>
<ul>
<li><a href='/developers/development_environment/'>Setting up Environment </a></li>
<li><a href='/developers/development_submitting/'>Submit your Work </a></li>
<li><a href='/developers/development_checklist/'>Checklist </a></li>
<li><a href='/developers/development_guidelines/'>Style guidelines </a></li>
<li><a href='/developers/development_testing/'>Testing </a></li>
<li><a href='/developers/development_catching_up/'>Catching up with Reality </a></li>
<li><a href='/developers/development_validation/'>Validation </a></li>
</ul>
</li>
<li>
<a href='/developers/development_101/'>Development 101 </a>
<ul>
<li><a href='/developers/development_hass_object/'>Hass object </a></li>
<li><a href='/developers/development_events/'>Events </a></li>
<li><a href='/developers/development_states/'>States </a></li>
<li><a href='/developers/development_services/'>Services </a></li>
<li><a href='/developers/development_config/'>Config </a></li>
</ul>
</li>
<li>
<a href='/developers/add_new_platform/'>Creating a new platform (to support a new device) </a>
<ul>
<li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li>
<li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li>
<li><a href='/developers/platform_example_light/'>Example light platform </a></li>
</ul>
</li>
<li>
<a href='/developers/creating_components/'>Adding a new component </a>
<ul>
<li><a href='/developers/code_review_component/'>Checklist creating a component </a></li>
<li><a href='/developers/component_loading/'>Loading components </a></li>
<li><a href='/developers/component_deps_and_reqs/'>Requirements & Dependencies </a></li>
<li><a href='/developers/component_events/'>Handling events </a></li>
<li><a href='/developers/component_states/'>States </a></li>
<li><a href='/developers/component_visibility/'>Visibility </a></li>
<li><a href='/developers/component_generic_discovery/'>Loading Platforms </a></li>
<li><a href='/developers/component_discovery/'>Component Discovery </a></li>
</ul>
</li>
<li>
<a href='/developers/asyncio/'>Asynchronous Programming </a>
<ul>
<li><a href='/developers/asyncio_101/'>Introduction to asyncio </a></li>
<li><a href='/developers/asyncio_categorizing_functions/'>Categorizing Functions </a></li>
<li><a href='/developers/asyncio_working_with_async/'>Working with Async </a></li>
<li><a href='/developers/asyncio_misc/'>Miscellaneous </a></li>
</ul>
</li>
<li>
<a href='/developers/frontend/'>Frontend Development </a>
<ul>
<li><a href='/developers/frontend_add_card/'>Add State Card </a></li>
<li><a href='/developers/frontend_add_more_info/'>Add More Info Dialog </a></li>
<li><a href='/developers/frontend_creating_custom_panels/'>Add Custom Panels </a></li>
<li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li>
</ul>
</li>
<li>
<a href='/developers/hassio/architecture/'>Hass.io architecture </a>
<ul>
<li><a href='/developers/hassio/debugging/'>Debugging Hass.io </a></li>
</ul>
</li>
<li>
<a class='active' href='/developers/hassio/addon_development/'>Hass.io Add-on Development </a>
<ul>
<li><a href='/developers/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li>
<li><a href='/developers/hassio/addon_config/'>Configuration </a></li>
<li><a href='/developers/hassio/addon_testing/'>Local Testing </a></li>
<li><a href='/developers/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/developers/hassio/addon_repository/'>Repositories </a></li>
</ul>
</li>
<li>
<a href='/developers/api/'>API </a>
<ul>
<li><a href='https://dev-docs.home-assistant.io/en/dev/'>Python API </a></li>
<li><a href='/developers/websocket_api/'>Websocket API </a></li>
<li><a href='/developers/rest_api/'>REST API </a></li>
<li><a href='/developers/python_api/'>Python REST API </a></li>
<li><a href='/developers/server_sent_events/'>Server-sent events </a></li>
</ul>
</li>
<li><a href='/developers/helpers/'>Online helpers </a></li>
<li><a href='/developers/website/'>Home-Assistant.io </a></li>
<li><a href='/developers/releasing/'>Releasing </a></li>
<li><a href='/developers/maintenance/'>Maintenance </a></li>
<li>
Governance
<ul>
<li><a href='/developers/cla/'>Contributor License Agreement </a></li>
<li><a href='/developers/code_of_conduct/'>Code of Conduct </a></li>
<li><a href='/developers/credits/'>Credits </a></li>
<li><a href='/developers/license/'>License </a></li>
</ul>
</li>
</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>

View file

@ -0,0 +1,288 @@
<!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>Publishing your add-on - Home Assistant</title>
<meta name="author" content="Home Assistant">
<meta name="description" content="Steps on how-to create an add-on for Hass.io.">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/developers/hassio/addon_publishing/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="Publishing your add-on">
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/developers/hassio/addon_publishing/">
<meta property="og:type" content="website">
<meta property="og:description" content="Steps on how-to create an add-on for Hass.io.">
<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="Publishing your add-on">
<meta name="twitter:description" content="Steps on how-to create an add-on for Hass.io.">
<meta name="twitter:image" content="https://home-assistant.io/images/default-social.png">
<link href="/stylesheets/screen.css" media="screen, projection" 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">
<header>
<h1 class="title indent">
Publishing Your Add-on
</h1>
</header>
<hr class="divider">
<p>There are two different ways of publishing add-ons. One is to publish pre-build containers to Docker Hub and the other option is to have users build the containers locally on their Hass.io instance.</p>
<h4><a class="title-link" name="pre-build-containers" href="#pre-build-containers"></a> Pre-build containers</h4>
<p>With pre-build containers, the developer is responsible for building the images for each architecture on their machine and push the results out to Docker Hub. This has a lot of advantages for the user. As a user it will only have to download the final container and be up and running once the download finishes. This makes the installation process fast and almost no chance of failure. This is the preferred method.</p>
<p>We have automated the process of building and publishing add-ons. See below for the instructions.</p>
<h4><a class="title-link" name="locally-build-containers" href="#locally-build-containers"></a> Locally build containers</h4>
<p>Starting Hass.io 0.26, it is possible to distribute add-ons that will be built on the users machine. The advantage is that as a developer it is easy to test an idea and see if people are interested in your add-ons. This method includes installing and potentially compiling code. This means that installing such an add-on is slow and adds more wear and tear to users SD card/hard drive than the above mentioned pre-build solution. It also has a higher chance of failure if one of the dependencies of the container has changed or is no longer available.</p>
<p>Use this option when you are playing with add-ons and seeing if someone is interested in your work. Once youre an established repository, please migrate to pushing builds to Docker Hub as it greatly improves the user experience. In the future we will mark locally built add-ons in the add-on store to warn users.</p>
<h2><a class="title-link" name="build-scripts-to-publish-add-ons-to-docker-hub" href="#build-scripts-to-publish-add-ons-to-docker-hub"></a> Build scripts to publish add-ons to Docker Hub</h2>
<p>All add-ons are simple docker containers. Inside your add-on <code class="highlighter-rouge">config.json</code> you specify the Docker image that will be installed for your add-on:</p>
<div class="language-json highlighter-rouge"><pre class="highlight"><code><span class="p">{</span><span class="w">
</span><span class="err"></span><span class="w">
</span><span class="nt">"image"</span><span class="p">:</span><span class="w"> </span><span class="s2">"myhub/image-{arch}-addon-name"</span><span class="p">,</span><span class="w">
</span><span class="err"></span><span class="w">
</span><span class="err">}</span><span class="w">
</span></code></pre>
</div>
<p>You can use <code class="highlighter-rouge"><span class="p">{</span><span class="err">arch</span><span class="p">}</span></code> inside the image name to support multiple architectures with 1 configuration file. It will be replaced with the architecture of the user when we load the image.</p>
<p>Hass.io assumes that the <code class="highlighter-rouge">master</code> branch of your add-on repository matches the latest tag on Docker Hub. When youre building a new version, its suggested that you use another branch, ie <code class="highlighter-rouge">build</code>. After you push the add-on to <a href="https://hub.docker.com/">Docker Hub</a>, you can merge this branch to master.</p>
<h2><a class="title-link" name="custom-add-ons" href="#custom-add-ons"></a> Custom Add-ons</h2>
<p>You need a Docker Hub account to make your own add-ons. Download our <a href="https://github.com/home-assistant/hassio-build/tree/master/build-scripts/addons">build script</a> and run one of the following commands.</p>
<p>For a git repository:</p>
<div class="language-bash highlighter-rouge"><pre class="highlight"><code><span class="c"># Test only:</span>
./create_hassio_addon.sh -a amd64 -s addon-slug -r https://github.com/xy/addons -b branchname
<span class="c"># push to docker hub:</span>
./create_hassio_addon.sh -a amd64 -s addon-slug -r https://github.com/xy/addons -b branchname -p
<span class="c"># create for all supported arch:</span>
./create_addon_all.sh -s addon-slug -r https://github.com/xy/addons -b branchname -p
</code></pre>
</div>
<p>For a local repository:</p>
<div class="language-bash highlighter-rouge"><pre class="highlight"><code><span class="c"># Test only:</span>
./create_hassio_addon.sh -a amd64 -s addon-slug -l /home/xy/my_local_repo
<span class="c"># push to docker hub:</span>
./create_hassio_addon.sh -a amd64 -s addon-slug -l /home/xy/my_local_repo -p
</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='edit-github'><a href='https://github.com/home-assistant/home-assistant.github.io/tree/current/source/developers/hassio/addon_publishing.markdown'>Edit this page on GitHub</a></div>
<div class='section'>
<h1 class="title delta">Development Guide</h1>
<ul class='divided sidebar-menu'>
<li>
<a href='/developers/'>Introduction </a>
<ul>
<li><a href='/developers/architecture/'>Architecture </a></li>
<li><a href='/developers/architecture_components/'>Components </a></li>
</ul>
</li>
<li>
<a href='/developers/development/'>Starting with Development </a>
<ul>
<li><a href='/developers/development_environment/'>Setting up Environment </a></li>
<li><a href='/developers/development_submitting/'>Submit your Work </a></li>
<li><a href='/developers/development_checklist/'>Checklist </a></li>
<li><a href='/developers/development_guidelines/'>Style guidelines </a></li>
<li><a href='/developers/development_testing/'>Testing </a></li>
<li><a href='/developers/development_catching_up/'>Catching up with Reality </a></li>
<li><a href='/developers/development_validation/'>Validation </a></li>
</ul>
</li>
<li>
<a href='/developers/development_101/'>Development 101 </a>
<ul>
<li><a href='/developers/development_hass_object/'>Hass object </a></li>
<li><a href='/developers/development_events/'>Events </a></li>
<li><a href='/developers/development_states/'>States </a></li>
<li><a href='/developers/development_services/'>Services </a></li>
<li><a href='/developers/development_config/'>Config </a></li>
</ul>
</li>
<li>
<a href='/developers/add_new_platform/'>Creating a new platform (to support a new device) </a>
<ul>
<li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li>
<li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li>
<li><a href='/developers/platform_example_light/'>Example light platform </a></li>
</ul>
</li>
<li>
<a href='/developers/creating_components/'>Adding a new component </a>
<ul>
<li><a href='/developers/code_review_component/'>Checklist creating a component </a></li>
<li><a href='/developers/component_loading/'>Loading components </a></li>
<li><a href='/developers/component_deps_and_reqs/'>Requirements & Dependencies </a></li>
<li><a href='/developers/component_events/'>Handling events </a></li>
<li><a href='/developers/component_states/'>States </a></li>
<li><a href='/developers/component_visibility/'>Visibility </a></li>
<li><a href='/developers/component_generic_discovery/'>Loading Platforms </a></li>
<li><a href='/developers/component_discovery/'>Component Discovery </a></li>
</ul>
</li>
<li>
<a href='/developers/asyncio/'>Asynchronous Programming </a>
<ul>
<li><a href='/developers/asyncio_101/'>Introduction to asyncio </a></li>
<li><a href='/developers/asyncio_categorizing_functions/'>Categorizing Functions </a></li>
<li><a href='/developers/asyncio_working_with_async/'>Working with Async </a></li>
<li><a href='/developers/asyncio_misc/'>Miscellaneous </a></li>
</ul>
</li>
<li>
<a href='/developers/frontend/'>Frontend Development </a>
<ul>
<li><a href='/developers/frontend_add_card/'>Add State Card </a></li>
<li><a href='/developers/frontend_add_more_info/'>Add More Info Dialog </a></li>
<li><a href='/developers/frontend_creating_custom_panels/'>Add Custom Panels </a></li>
<li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li>
</ul>
</li>
<li>
<a href='/developers/hassio/architecture/'>Hass.io architecture </a>
<ul>
<li><a href='/developers/hassio/debugging/'>Debugging Hass.io </a></li>
</ul>
</li>
<li>
<a href='/developers/hassio/addon_development/'>Hass.io Add-on Development </a>
<ul>
<li><a href='/developers/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li>
<li><a href='/developers/hassio/addon_config/'>Configuration </a></li>
<li><a href='/developers/hassio/addon_testing/'>Local Testing </a></li>
<li><a class='active' href='/developers/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/developers/hassio/addon_repository/'>Repositories </a></li>
</ul>
</li>
<li>
<a href='/developers/api/'>API </a>
<ul>
<li><a href='https://dev-docs.home-assistant.io/en/dev/'>Python API </a></li>
<li><a href='/developers/websocket_api/'>Websocket API </a></li>
<li><a href='/developers/rest_api/'>REST API </a></li>
<li><a href='/developers/python_api/'>Python REST API </a></li>
<li><a href='/developers/server_sent_events/'>Server-sent events </a></li>
</ul>
</li>
<li><a href='/developers/helpers/'>Online helpers </a></li>
<li><a href='/developers/website/'>Home-Assistant.io </a></li>
<li><a href='/developers/releasing/'>Releasing </a></li>
<li><a href='/developers/maintenance/'>Maintenance </a></li>
<li>
Governance
<ul>
<li><a href='/developers/cla/'>Contributor License Agreement </a></li>
<li><a href='/developers/code_of_conduct/'>Code of Conduct </a></li>
<li><a href='/developers/credits/'>Credits </a></li>
<li><a href='/developers/license/'>License </a></li>
</ul>
</li>
</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>

View file

@ -0,0 +1,286 @@
<!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>Create an add-on repository - Home Assistant</title>
<meta name="author" content="Home Assistant">
<meta name="description" content="Add-ons repositories.">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/developers/hassio/addon_repository/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="Create an add-on repository">
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/developers/hassio/addon_repository/">
<meta property="og:type" content="website">
<meta property="og:description" content="Add-ons repositories.">
<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="Create an add-on repository">
<meta name="twitter:description" content="Add-ons repositories.">
<meta name="twitter:image" content="https://home-assistant.io/images/default-social.png">
<link href="/stylesheets/screen.css" media="screen, projection" 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">
<header>
<h1 class="title indent">
Create an Add-on Repository
</h1>
</header>
<hr class="divider">
<p>Add-ons repository can contain one or more add-ons. Each add-on is stored in its own unique folder. For it to be indentified as a repository, a repository contains a configuration file.</p>
<p><a href="https://github.com/home-assistant/hassio-addons-example">Example add-on repository</a>.</p>
<h2>Installing a repository</h2>
<p>A user can add a repository by going to the Hass.io panel in Home Assistant, clicking on the store icon in the top right, copy/paste the URL of your repostory into the repository textarea and click on “Save”.</p>
<h2>Repository configuration</h2>
<p>Each repository is required to contain <code class="highlighter-rouge">repository.json</code> at the root of the Git repository.</p>
<div class="language-json highlighter-rouge"><pre class="highlight"><code><span class="p">{</span><span class="w">
</span><span class="nt">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Name of repository"</span><span class="p">,</span><span class="w">
</span><span class="nt">"url"</span><span class="p">:</span><span class="w"> </span><span class="s2">"http://www.example/addons"</span><span class="p">,</span><span class="w">
</span><span class="nt">"maintainer"</span><span class="p">:</span><span class="w"> </span><span class="s2">"HomeAssistant Team &lt;info@home-assistant.io&gt;"</span><span class="w">
</span><span class="p">}</span><span class="w">
</span></code></pre>
</div>
<table>
<thead>
<tr>
<th>Key</th>
<th>Required</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>name</td>
<td>yes</td>
<td>Name of the repository</td>
</tr>
<tr>
<td>url</td>
<td>no</td>
<td>Homepage of the repository. Here you can explain the various add-ons.</td>
</tr>
<tr>
<td>maintainer</td>
<td>no</td>
<td>Contact info of the maintainer.</td>
</tr>
</tbody>
</table>
</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='edit-github'><a href='https://github.com/home-assistant/home-assistant.github.io/tree/current/source/developers/hassio/addon_repository.markdown'>Edit this page on GitHub</a></div>
<div class='section'>
<h1 class="title delta">Development Guide</h1>
<ul class='divided sidebar-menu'>
<li>
<a href='/developers/'>Introduction </a>
<ul>
<li><a href='/developers/architecture/'>Architecture </a></li>
<li><a href='/developers/architecture_components/'>Components </a></li>
</ul>
</li>
<li>
<a href='/developers/development/'>Starting with Development </a>
<ul>
<li><a href='/developers/development_environment/'>Setting up Environment </a></li>
<li><a href='/developers/development_submitting/'>Submit your Work </a></li>
<li><a href='/developers/development_checklist/'>Checklist </a></li>
<li><a href='/developers/development_guidelines/'>Style guidelines </a></li>
<li><a href='/developers/development_testing/'>Testing </a></li>
<li><a href='/developers/development_catching_up/'>Catching up with Reality </a></li>
<li><a href='/developers/development_validation/'>Validation </a></li>
</ul>
</li>
<li>
<a href='/developers/development_101/'>Development 101 </a>
<ul>
<li><a href='/developers/development_hass_object/'>Hass object </a></li>
<li><a href='/developers/development_events/'>Events </a></li>
<li><a href='/developers/development_states/'>States </a></li>
<li><a href='/developers/development_services/'>Services </a></li>
<li><a href='/developers/development_config/'>Config </a></li>
</ul>
</li>
<li>
<a href='/developers/add_new_platform/'>Creating a new platform (to support a new device) </a>
<ul>
<li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li>
<li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li>
<li><a href='/developers/platform_example_light/'>Example light platform </a></li>
</ul>
</li>
<li>
<a href='/developers/creating_components/'>Adding a new component </a>
<ul>
<li><a href='/developers/code_review_component/'>Checklist creating a component </a></li>
<li><a href='/developers/component_loading/'>Loading components </a></li>
<li><a href='/developers/component_deps_and_reqs/'>Requirements & Dependencies </a></li>
<li><a href='/developers/component_events/'>Handling events </a></li>
<li><a href='/developers/component_states/'>States </a></li>
<li><a href='/developers/component_visibility/'>Visibility </a></li>
<li><a href='/developers/component_generic_discovery/'>Loading Platforms </a></li>
<li><a href='/developers/component_discovery/'>Component Discovery </a></li>
</ul>
</li>
<li>
<a href='/developers/asyncio/'>Asynchronous Programming </a>
<ul>
<li><a href='/developers/asyncio_101/'>Introduction to asyncio </a></li>
<li><a href='/developers/asyncio_categorizing_functions/'>Categorizing Functions </a></li>
<li><a href='/developers/asyncio_working_with_async/'>Working with Async </a></li>
<li><a href='/developers/asyncio_misc/'>Miscellaneous </a></li>
</ul>
</li>
<li>
<a href='/developers/frontend/'>Frontend Development </a>
<ul>
<li><a href='/developers/frontend_add_card/'>Add State Card </a></li>
<li><a href='/developers/frontend_add_more_info/'>Add More Info Dialog </a></li>
<li><a href='/developers/frontend_creating_custom_panels/'>Add Custom Panels </a></li>
<li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li>
</ul>
</li>
<li>
<a href='/developers/hassio/architecture/'>Hass.io architecture </a>
<ul>
<li><a href='/developers/hassio/debugging/'>Debugging Hass.io </a></li>
</ul>
</li>
<li>
<a href='/developers/hassio/addon_development/'>Hass.io Add-on Development </a>
<ul>
<li><a href='/developers/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li>
<li><a href='/developers/hassio/addon_config/'>Configuration </a></li>
<li><a href='/developers/hassio/addon_testing/'>Local Testing </a></li>
<li><a href='/developers/hassio/addon_publishing/'>Publishing </a></li>
<li><a class='active' href='/developers/hassio/addon_repository/'>Repositories </a></li>
</ul>
</li>
<li>
<a href='/developers/api/'>API </a>
<ul>
<li><a href='https://dev-docs.home-assistant.io/en/dev/'>Python API </a></li>
<li><a href='/developers/websocket_api/'>Websocket API </a></li>
<li><a href='/developers/rest_api/'>REST API </a></li>
<li><a href='/developers/python_api/'>Python REST API </a></li>
<li><a href='/developers/server_sent_events/'>Server-sent events </a></li>
</ul>
</li>
<li><a href='/developers/helpers/'>Online helpers </a></li>
<li><a href='/developers/website/'>Home-Assistant.io </a></li>
<li><a href='/developers/releasing/'>Releasing </a></li>
<li><a href='/developers/maintenance/'>Maintenance </a></li>
<li>
Governance
<ul>
<li><a href='/developers/cla/'>Contributor License Agreement </a></li>
<li><a href='/developers/code_of_conduct/'>Code of Conduct </a></li>
<li><a href='/developers/credits/'>Credits </a></li>
<li><a href='/developers/license/'>License </a></li>
</ul>
</li>
</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>

View file

@ -0,0 +1,262 @@
<!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>Local add-on testing - Home Assistant</title>
<meta name="author" content="Home Assistant">
<meta name="description" content="Instructions how to test your add-on locally.">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/developers/hassio/addon_testing/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="Local add-on testing">
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/developers/hassio/addon_testing/">
<meta property="og:type" content="website">
<meta property="og:description" content="Instructions how to test your add-on locally.">
<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="Local add-on testing">
<meta name="twitter:description" content="Instructions how to test your add-on locally.">
<meta name="twitter:image" content="https://home-assistant.io/images/default-social.png">
<link href="/stylesheets/screen.css" media="screen, projection" 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">
<header>
<h1 class="title indent">
Local Add-on Testing
</h1>
</header>
<hr class="divider">
<p>The fastest way to develop add-ons is by adding them to your local add-on repository. To access your local add-on repository, install either the <a href="/addons/samba/">Samba add-on</a> or <a href="/addons/ssh/">SSH add-on</a>.</p>
<p>Right now add-ons will work with images that are stored on Docker Hub (using <code class="highlighter-rouge">image</code> from add-on config). Without <code class="highlighter-rouge">image</code> inside local add-ons repository it to be built on the device.</p>
<h2><a class="title-link" name="local-run" href="#local-run"></a> Local run</h2>
<p>You can build an try the addon on your developer machine also. Move all addon stuff into a temp folder. Replace in the Dockerfile <code class="highlighter-rouge">%%BASE_IMAGE%%</code> with:</p>
<ul>
<li>armhf: <code class="highlighter-rouge">homeassistant/armhf-base:latest</code></li>
<li>aarch64: <code class="highlighter-rouge">homeassistant/aarch64-base:latest</code></li>
<li>amd64: <code class="highlighter-rouge">homeassistant/amd64-base:latest</code></li>
<li>i386: <code class="highlighter-rouge">homeassistant/i386-base:latest</code></li>
</ul>
<p>Add also a <code class="highlighter-rouge">LABEL io.hass.version="xy"</code> into your dockerfile.
Use <code class="highlighter-rouge">docker</code> to build the test addon: <code class="highlighter-rouge">docker build -t local/my-test-addon .</code></p>
<p>Create a new folder for data and add a test <em>options.json</em> file. After that you can run your add-on with: <code class="highlighter-rouge">docker run --rm -v /tmp/my_test_data:/data -p PORT_STUFF_IF_NEEDED local/my-test-addon</code></p>
<h2><a class="title-link" name="logs" href="#logs"></a> Logs</h2>
<p>All stdout and stderr is redirected to the Docker logs. The logs can be fetched from the add-on page inside the Hass.io panel in Home Assistant.</p>
</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='edit-github'><a href='https://github.com/home-assistant/home-assistant.github.io/tree/current/source/developers/hassio/addon_testing.markdown'>Edit this page on GitHub</a></div>
<div class='section'>
<h1 class="title delta">Development Guide</h1>
<ul class='divided sidebar-menu'>
<li>
<a href='/developers/'>Introduction </a>
<ul>
<li><a href='/developers/architecture/'>Architecture </a></li>
<li><a href='/developers/architecture_components/'>Components </a></li>
</ul>
</li>
<li>
<a href='/developers/development/'>Starting with Development </a>
<ul>
<li><a href='/developers/development_environment/'>Setting up Environment </a></li>
<li><a href='/developers/development_submitting/'>Submit your Work </a></li>
<li><a href='/developers/development_checklist/'>Checklist </a></li>
<li><a href='/developers/development_guidelines/'>Style guidelines </a></li>
<li><a href='/developers/development_testing/'>Testing </a></li>
<li><a href='/developers/development_catching_up/'>Catching up with Reality </a></li>
<li><a href='/developers/development_validation/'>Validation </a></li>
</ul>
</li>
<li>
<a href='/developers/development_101/'>Development 101 </a>
<ul>
<li><a href='/developers/development_hass_object/'>Hass object </a></li>
<li><a href='/developers/development_events/'>Events </a></li>
<li><a href='/developers/development_states/'>States </a></li>
<li><a href='/developers/development_services/'>Services </a></li>
<li><a href='/developers/development_config/'>Config </a></li>
</ul>
</li>
<li>
<a href='/developers/add_new_platform/'>Creating a new platform (to support a new device) </a>
<ul>
<li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li>
<li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li>
<li><a href='/developers/platform_example_light/'>Example light platform </a></li>
</ul>
</li>
<li>
<a href='/developers/creating_components/'>Adding a new component </a>
<ul>
<li><a href='/developers/code_review_component/'>Checklist creating a component </a></li>
<li><a href='/developers/component_loading/'>Loading components </a></li>
<li><a href='/developers/component_deps_and_reqs/'>Requirements & Dependencies </a></li>
<li><a href='/developers/component_events/'>Handling events </a></li>
<li><a href='/developers/component_states/'>States </a></li>
<li><a href='/developers/component_visibility/'>Visibility </a></li>
<li><a href='/developers/component_generic_discovery/'>Loading Platforms </a></li>
<li><a href='/developers/component_discovery/'>Component Discovery </a></li>
</ul>
</li>
<li>
<a href='/developers/asyncio/'>Asynchronous Programming </a>
<ul>
<li><a href='/developers/asyncio_101/'>Introduction to asyncio </a></li>
<li><a href='/developers/asyncio_categorizing_functions/'>Categorizing Functions </a></li>
<li><a href='/developers/asyncio_working_with_async/'>Working with Async </a></li>
<li><a href='/developers/asyncio_misc/'>Miscellaneous </a></li>
</ul>
</li>
<li>
<a href='/developers/frontend/'>Frontend Development </a>
<ul>
<li><a href='/developers/frontend_add_card/'>Add State Card </a></li>
<li><a href='/developers/frontend_add_more_info/'>Add More Info Dialog </a></li>
<li><a href='/developers/frontend_creating_custom_panels/'>Add Custom Panels </a></li>
<li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li>
</ul>
</li>
<li>
<a href='/developers/hassio/architecture/'>Hass.io architecture </a>
<ul>
<li><a href='/developers/hassio/debugging/'>Debugging Hass.io </a></li>
</ul>
</li>
<li>
<a href='/developers/hassio/addon_development/'>Hass.io Add-on Development </a>
<ul>
<li><a href='/developers/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li>
<li><a href='/developers/hassio/addon_config/'>Configuration </a></li>
<li><a class='active' href='/developers/hassio/addon_testing/'>Local Testing </a></li>
<li><a href='/developers/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/developers/hassio/addon_repository/'>Repositories </a></li>
</ul>
</li>
<li>
<a href='/developers/api/'>API </a>
<ul>
<li><a href='https://dev-docs.home-assistant.io/en/dev/'>Python API </a></li>
<li><a href='/developers/websocket_api/'>Websocket API </a></li>
<li><a href='/developers/rest_api/'>REST API </a></li>
<li><a href='/developers/python_api/'>Python REST API </a></li>
<li><a href='/developers/server_sent_events/'>Server-sent events </a></li>
</ul>
</li>
<li><a href='/developers/helpers/'>Online helpers </a></li>
<li><a href='/developers/website/'>Home-Assistant.io </a></li>
<li><a href='/developers/releasing/'>Releasing </a></li>
<li><a href='/developers/maintenance/'>Maintenance </a></li>
<li>
Governance
<ul>
<li><a href='/developers/cla/'>Contributor License Agreement </a></li>
<li><a href='/developers/code_of_conduct/'>Code of Conduct </a></li>
<li><a href='/developers/credits/'>Credits </a></li>
<li><a href='/developers/license/'>License </a></li>
</ul>
</li>
</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>

View file

@ -0,0 +1,405 @@
<!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>Tutorial: Making your first add-on - Home Assistant</title>
<meta name="author" content="Home Assistant">
<meta name="description" content="Easy tutorial to get started making your first add-on.">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/developers/hassio/addon_tutorial/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="Tutorial: Making your first add-on">
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/developers/hassio/addon_tutorial/">
<meta property="og:type" content="website">
<meta property="og:description" content="Easy tutorial to get started making your first add-on.">
<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="Tutorial: Making your first add-on">
<meta name="twitter:description" content="Easy tutorial to get started making your first add-on.">
<meta name="twitter:image" content="https://home-assistant.io/images/default-social.png">
<link href="/stylesheets/screen.css" media="screen, projection" 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">
<header>
<h1 class="title indent">
Tutorial: Making Your First Add-on
</h1>
</header>
<hr class="divider">
<p>So youve got Home Assistant going and youve been enjoying the built-in add-ons but youre missing this one application. Time to make your own add-on! In Hass.io 0.24 we introduced the option to have local add-ons be build on your device. This is great for developing new add-ons locally.</p>
<p>To get started with developing add-ons, we first need access to where Hass.io looks for local add-ons. For this you can use the Samba add-on or the SSH add-on.</p>
<p>For Samba, once you have enabled and started it, your Hass.io instance will show up in your local network tab and share a folder called “addons”. This is the folder to store your custom add-ons.</p>
<p>If you are on macOS and the folder is not showing up automatically, go to Finder and press CMD+K then enter smb://hassio.local</p>
<p class="img">
<img src="/images/hassio/tutorial/samba.png" />
With Samba add-on enabled, you can browse to your Hass.io server over the local network. It will contain an addons folder to store your local add-ons.
</p>
<p>For SSH, you will have to install it. Before you can start it, you will have to have a private/public key pair and store your public key in the add-on config (<a href="/addons/ssh/">see docs for more info</a>). Once started, you can SSH to Hass.io and store your custom add-ons in “/addons”.</p>
<p class="img">
<img src="/images/hassio/tutorial/ssh.png" />
Once you SSH into your Hass.io box, you have access to your add-ons in “/addons”.
</p>
<p>Once you have located your add-on directory, its time to get started!</p>
<h2><a class="title-link" name="step-1-the-basics" href="#step-1-the-basics"></a> Step 1: The basics</h2>
<ul>
<li>Create a new directory called <code class="highlighter-rouge">hello_world</code></li>
<li>Inside that directory create three files.</li>
</ul>
<p><code class="highlighter-rouge">Dockerfile</code>:</p>
<div class="highlighter-rouge"><pre class="highlight"><code>FROM %%BASE_IMAGE%%
ENV LANG C.UTF-8
# Copy data for add-on
COPY run.sh /
RUN chmod a+x /run.sh
CMD [ "/run.sh" ]
</code></pre>
</div>
<p><code class="highlighter-rouge">config.json</code>:</p>
<div class="language-json highlighter-rouge"><pre class="highlight"><code><span class="p">{</span><span class="w">
</span><span class="nt">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Hello world"</span><span class="p">,</span><span class="w">
</span><span class="nt">"version"</span><span class="p">:</span><span class="w"> </span><span class="s2">"1"</span><span class="p">,</span><span class="w">
</span><span class="nt">"slug"</span><span class="p">:</span><span class="w"> </span><span class="s2">"hello_world"</span><span class="p">,</span><span class="w">
</span><span class="nt">"description"</span><span class="p">:</span><span class="w"> </span><span class="s2">"My first real add-on!"</span><span class="p">,</span><span class="w">
</span><span class="nt">"startup"</span><span class="p">:</span><span class="w"> </span><span class="s2">"before"</span><span class="p">,</span><span class="w">
</span><span class="nt">"boot"</span><span class="p">:</span><span class="w"> </span><span class="s2">"auto"</span><span class="p">,</span><span class="w">
</span><span class="nt">"options"</span><span class="p">:</span><span class="w"> </span><span class="p">{},</span><span class="w">
</span><span class="nt">"schema"</span><span class="p">:</span><span class="w"> </span><span class="p">{}</span><span class="w">
</span><span class="p">}</span><span class="w">
</span></code></pre>
</div>
<p><code class="highlighter-rouge">run.sh</code>:</p>
<div class="language-bash highlighter-rouge"><pre class="highlight"><code><span class="nb">echo </span>Hello world!
</code></pre>
</div>
<h2><a class="title-link" name="step-2-installing-and-testing-your-add-on" href="#step-2-installing-and-testing-your-add-on"></a> Step 2: Installing and testing your add-on</h2>
<p>Now comes the fun part, time to open the Hass.io UI and install and run your add-on.</p>
<ul>
<li>Open the Home Assistant frontend</li>
<li>Go to the Hass.io panel</li>
<li>On the top right click the shopping basket to go to the add-on store.</li>
</ul>
<p class="img">
<img src="/images/hassio/screenshots/main_panel_store_icon.png" />
From the Hass.io main panel open the add-on store.
</p>
<ul>
<li>On the top right click the refresh button</li>
<li>You should now see a new card called “Local” that lists your add-on!</li>
</ul>
<p class="img">
<img src="/images/hassio/screenshots/local_repository.png" />
The Hass.io add-on store will list all available local add-ons.
</p>
<ul>
<li>Click on your add-on to go to the add-on details page.</li>
<li>Install your add-on</li>
<li>Start your add-on</li>
<li>Refresh the logs of your add-on, you should now see “Hello world!” in your logs.</li>
</ul>
<p class="img">
<img src="/images/hassio/tutorial/addon_hello_world_logs.png" />
The add-on will print Hello world to the logs and then quit.
</p>
<h3><a class="title-link" name="i-dont-see-my-add-on" href="#i-dont-see-my-add-on"></a> I dont see my add-on?!</h3>
<p>Oops! You clicked refresh in the store and your add-on didnt show up. Or maybe you just updated an option, clicked refresh and saw your add-on disappear.</p>
<p>When this happens, it means that your <code class="highlighter-rouge">config.json</code> is invalid. Its either invalid JSON or one of the specified options is incorrect. To see what went wrong, go to the Hass.io panel and in the supervisor card click on “View logs”. This should bring you to a page with the logs of the supervisor. Scroll to the bottom and you should be able to find the validation error.</p>
<p>Once you fixed the error, go to the add-on store and click refresh again.</p>
<h2><a class="title-link" name="step-3-hosting-a-server" href="#step-3-hosting-a-server"></a> Step 3: Hosting a server</h2>
<p>Until now weve been able to do some basic stuff, but its not very useful yet. So lets take it one step further and host a server that we expose on a port. For this were going to use the built-in HTTP server that comes with Python 3.</p>
<p>To do this, we will need to update our files as follows:</p>
<ul>
<li><code class="highlighter-rouge">Dockerfile</code>: Install Python 3</li>
<li><code class="highlighter-rouge">config.json</code>: Make the port from the container available on the host</li>
<li><code class="highlighter-rouge">run.sh</code>: Run the Python 3 command to start the HTTP server</li>
</ul>
<p>Add to your <code class="highlighter-rouge">Dockerfile</code> before <code class="highlighter-rouge">RUN</code>:</p>
<div class="highlighter-rouge"><pre class="highlight"><code># Install requirements for add-on
RUN apk add --no-cache python3
# Python 3 HTTP Server serves the current working dir
# So let's set it to our add-on persistent data directory.
WORKDIR /data
</code></pre>
</div>
<p>Add “ports” to <code class="highlighter-rouge">config.json</code>. This will make TCP on port 8000 inside the container available on the host on port 8000.</p>
<div class="language-json highlighter-rouge"><pre class="highlight"><code><span class="p">{</span><span class="w">
</span><span class="nt">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Hello world"</span><span class="p">,</span><span class="w">
</span><span class="nt">"version"</span><span class="p">:</span><span class="w"> </span><span class="s2">"0.2"</span><span class="p">,</span><span class="w">
</span><span class="nt">"slug"</span><span class="p">:</span><span class="w"> </span><span class="s2">"hello_world"</span><span class="p">,</span><span class="w">
</span><span class="nt">"description"</span><span class="p">:</span><span class="w"> </span><span class="s2">"My first real add-on!"</span><span class="p">,</span><span class="w">
</span><span class="nt">"startup"</span><span class="p">:</span><span class="w"> </span><span class="s2">"before"</span><span class="p">,</span><span class="w">
</span><span class="nt">"boot"</span><span class="p">:</span><span class="w"> </span><span class="s2">"auto"</span><span class="p">,</span><span class="w">
</span><span class="nt">"options"</span><span class="p">:</span><span class="w"> </span><span class="p">{},</span><span class="w">
</span><span class="nt">"schema"</span><span class="p">:</span><span class="w"> </span><span class="p">{},</span><span class="w">
</span><span class="nt">"ports"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
</span><span class="nt">"8000/tcp"</span><span class="p">:</span><span class="w"> </span><span class="mi">8000</span><span class="w">
</span><span class="p">}</span><span class="w">
</span><span class="p">}</span><span class="w">
</span></code></pre>
</div>
<p>Update <code class="highlighter-rouge">run.sh</code> to start the Python 3 server:</p>
<div class="highlighter-rouge"><pre class="highlight"><code>python3 -m http.server
</code></pre>
</div>
<h2><a class="title-link" name="step-4-installing-the-update" href="#step-4-installing-the-update"></a> Step 4: Installing the update</h2>
<p>Since we updated the version number in our <code class="highlighter-rouge">config.json</code>, Home Assistant will show an update button when looking at the add-on details. You might have to refresh your browser or click the refresh button in the add-on store for it to show up. If you did not update the version number, you can also uninstall and install the add-on again. After installing the add-on again, make sure you start it.</p>
<p>Now navigate to <a href="http://hassio.local:8000">http://hassio.local:8000</a> to see our server in action!</p>
<p class="img">
<img src="/images/hassio/tutorial/python3-http-server.png" />
The Python 3 server will allow you to browse the /data folder.
</p>
<h2><a class="title-link" name="bonus-working-with-add-on-options" href="#bonus-working-with-add-on-options"></a> Bonus: Working with add-on options</h2>
<p>In the screenshot youve probably seen that our server only served up 1 file: <code class="highlighter-rouge">options.json</code>. This file contains the user configuration for this add-on. Because we specified an empty “config” and “schema” in our <code class="highlighter-rouge">config.json</code>, the file is currently empty.</p>
<p>Lets see if we can get some data into that file!</p>
<p>To do this, we need to specify the default options and a schema for the user to change the options.</p>
<p>Change the options and schema entries in your <code class="highlighter-rouge">config.json</code> with the following:</p>
<div class="language-json highlighter-rouge"><pre class="highlight"><code><span class="p">{</span><span class="w">
</span><span class="err"></span><span class="w">
</span><span class="nt">"options"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
</span><span class="nt">"beer"</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span><span class="w">
</span><span class="nt">"wine"</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span><span class="w">
</span><span class="nt">"liquor"</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span><span class="w">
</span><span class="nt">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"world"</span><span class="p">,</span><span class="w">
</span><span class="nt">"year"</span><span class="p">:</span><span class="w"> </span><span class="mi">2017</span><span class="w">
</span><span class="p">},</span><span class="w">
</span><span class="nt">"schema"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
</span><span class="nt">"beer"</span><span class="p">:</span><span class="w"> </span><span class="s2">"bool"</span><span class="p">,</span><span class="w">
</span><span class="nt">"wine"</span><span class="p">:</span><span class="w"> </span><span class="s2">"bool"</span><span class="p">,</span><span class="w">
</span><span class="nt">"liquor"</span><span class="p">:</span><span class="w"> </span><span class="s2">"bool"</span><span class="p">,</span><span class="w">
</span><span class="nt">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"str"</span><span class="p">,</span><span class="w">
</span><span class="nt">"year"</span><span class="p">:</span><span class="w"> </span><span class="s2">"int"</span><span class="w">
</span><span class="p">},</span><span class="w">
</span><span class="err"></span><span class="w">
</span><span class="err">}</span><span class="w">
</span></code></pre>
</div>
<p>Refresh the add-on store and re-install your add-on. You will now see the options available in the add-on config screen. When you now go back to our Python 3 server and download <code class="highlighter-rouge">options.json</code>, youll see the options you set.</p>
<ul>
<li><a href="/hassio/addon_config/#options--schema">Learn more about the available schema options.</a></li>
<li><a href="https://github.com/home-assistant/hassio-addons/blob/master/mosquitto/run.sh#L4-L6">See how options.json can be used inside <code class="highlighter-rouge">run.sh</code></a></li>
</ul>
<h3><a href="/developers/hassio/addon_config/">Next step: Add-on config reference »</a></h3>
</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='edit-github'><a href='https://github.com/home-assistant/home-assistant.github.io/tree/current/source/developers/hassio/addon_tutorial.markdown'>Edit this page on GitHub</a></div>
<div class='section'>
<h1 class="title delta">Development Guide</h1>
<ul class='divided sidebar-menu'>
<li>
<a href='/developers/'>Introduction </a>
<ul>
<li><a href='/developers/architecture/'>Architecture </a></li>
<li><a href='/developers/architecture_components/'>Components </a></li>
</ul>
</li>
<li>
<a href='/developers/development/'>Starting with Development </a>
<ul>
<li><a href='/developers/development_environment/'>Setting up Environment </a></li>
<li><a href='/developers/development_submitting/'>Submit your Work </a></li>
<li><a href='/developers/development_checklist/'>Checklist </a></li>
<li><a href='/developers/development_guidelines/'>Style guidelines </a></li>
<li><a href='/developers/development_testing/'>Testing </a></li>
<li><a href='/developers/development_catching_up/'>Catching up with Reality </a></li>
<li><a href='/developers/development_validation/'>Validation </a></li>
</ul>
</li>
<li>
<a href='/developers/development_101/'>Development 101 </a>
<ul>
<li><a href='/developers/development_hass_object/'>Hass object </a></li>
<li><a href='/developers/development_events/'>Events </a></li>
<li><a href='/developers/development_states/'>States </a></li>
<li><a href='/developers/development_services/'>Services </a></li>
<li><a href='/developers/development_config/'>Config </a></li>
</ul>
</li>
<li>
<a href='/developers/add_new_platform/'>Creating a new platform (to support a new device) </a>
<ul>
<li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li>
<li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li>
<li><a href='/developers/platform_example_light/'>Example light platform </a></li>
</ul>
</li>
<li>
<a href='/developers/creating_components/'>Adding a new component </a>
<ul>
<li><a href='/developers/code_review_component/'>Checklist creating a component </a></li>
<li><a href='/developers/component_loading/'>Loading components </a></li>
<li><a href='/developers/component_deps_and_reqs/'>Requirements & Dependencies </a></li>
<li><a href='/developers/component_events/'>Handling events </a></li>
<li><a href='/developers/component_states/'>States </a></li>
<li><a href='/developers/component_visibility/'>Visibility </a></li>
<li><a href='/developers/component_generic_discovery/'>Loading Platforms </a></li>
<li><a href='/developers/component_discovery/'>Component Discovery </a></li>
</ul>
</li>
<li>
<a href='/developers/asyncio/'>Asynchronous Programming </a>
<ul>
<li><a href='/developers/asyncio_101/'>Introduction to asyncio </a></li>
<li><a href='/developers/asyncio_categorizing_functions/'>Categorizing Functions </a></li>
<li><a href='/developers/asyncio_working_with_async/'>Working with Async </a></li>
<li><a href='/developers/asyncio_misc/'>Miscellaneous </a></li>
</ul>
</li>
<li>
<a href='/developers/frontend/'>Frontend Development </a>
<ul>
<li><a href='/developers/frontend_add_card/'>Add State Card </a></li>
<li><a href='/developers/frontend_add_more_info/'>Add More Info Dialog </a></li>
<li><a href='/developers/frontend_creating_custom_panels/'>Add Custom Panels </a></li>
<li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li>
</ul>
</li>
<li>
<a href='/developers/hassio/architecture/'>Hass.io architecture </a>
<ul>
<li><a href='/developers/hassio/debugging/'>Debugging Hass.io </a></li>
</ul>
</li>
<li>
<a href='/developers/hassio/addon_development/'>Hass.io Add-on Development </a>
<ul>
<li><a class='active' href='/developers/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li>
<li><a href='/developers/hassio/addon_config/'>Configuration </a></li>
<li><a href='/developers/hassio/addon_testing/'>Local Testing </a></li>
<li><a href='/developers/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/developers/hassio/addon_repository/'>Repositories </a></li>
</ul>
</li>
<li>
<a href='/developers/api/'>API </a>
<ul>
<li><a href='https://dev-docs.home-assistant.io/en/dev/'>Python API </a></li>
<li><a href='/developers/websocket_api/'>Websocket API </a></li>
<li><a href='/developers/rest_api/'>REST API </a></li>
<li><a href='/developers/python_api/'>Python REST API </a></li>
<li><a href='/developers/server_sent_events/'>Server-sent events </a></li>
</ul>
</li>
<li><a href='/developers/helpers/'>Online helpers </a></li>
<li><a href='/developers/website/'>Home-Assistant.io </a></li>
<li><a href='/developers/releasing/'>Releasing </a></li>
<li><a href='/developers/maintenance/'>Maintenance </a></li>
<li>
Governance
<ul>
<li><a href='/developers/cla/'>Contributor License Agreement </a></li>
<li><a href='/developers/code_of_conduct/'>Code of Conduct </a></li>
<li><a href='/developers/credits/'>Credits </a></li>
<li><a href='/developers/license/'>License </a></li>
</ul>
</li>
</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>

View file

@ -0,0 +1,264 @@
<!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>Hass.io Architecture - Home Assistant</title>
<meta name="author" content="Home Assistant">
<meta name="description" content="The architecture of Hass.io.">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/developers/hassio/architecture/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="Hass.io Architecture">
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/developers/hassio/architecture/">
<meta property="og:type" content="website">
<meta property="og:description" content="The architecture of Hass.io.">
<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="Hass.io Architecture">
<meta name="twitter:description" content="The architecture of Hass.io.">
<meta name="twitter:image" content="https://home-assistant.io/images/default-social.png">
<link href="/stylesheets/screen.css" media="screen, projection" 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">
<header>
<h1 class="title indent">
Hass.io Architecture
</h1>
</header>
<hr class="divider">
<p class="img">
<a href="/images/hassio/architecture.png"><img src="/images/hassio/architecture.png" alt="Architecture overview of Hass.io" /></a>
Architecture overview of Hass.io
</p>
<h3><a class="title-link" name="host-control-hc" href="#host-control-hc"></a> Host Control (HC)</h3>
<p>This is a daemon running on the host machine that allows the supervisor to control certain aspects of the host OS:</p>
<ul>
<li>Power cycle (restart, turn off)</li>
<li>Manage network settings</li>
<li>Local updates</li>
</ul>
<h3><a class="title-link" name="host" href="#host"></a> Host</h3>
<p>Our pre-build images are based on <a href="https://resinos.io/">ResinOS</a>. Any Linux machine can be turned into a Hass.io host by running <a href="/hassio/installation/#alternative-install-on-generic-linux-server">the installer</a>.</p>
<h3><a class="title-link" name="supervisor" href="#supervisor"></a> Supervisor</h3>
<p>The supervisor offers an API to manage the host and running the Docker containers.</p>
<h3><a class="title-link" name="configuration-panel" href="#configuration-panel"></a> Configuration panel</h3>
<p>The configuration panel lives inside the supervisor but is accessible via the Home Assistant user interface. The configuration panel allows the user to manage the installation.</p>
</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='edit-github'><a href='https://github.com/home-assistant/home-assistant.github.io/tree/current/source/developers/hassio/architecture.markdown'>Edit this page on GitHub</a></div>
<div class='section'>
<h1 class="title delta">Development Guide</h1>
<ul class='divided sidebar-menu'>
<li>
<a href='/developers/'>Introduction </a>
<ul>
<li><a href='/developers/architecture/'>Architecture </a></li>
<li><a href='/developers/architecture_components/'>Components </a></li>
</ul>
</li>
<li>
<a href='/developers/development/'>Starting with Development </a>
<ul>
<li><a href='/developers/development_environment/'>Setting up Environment </a></li>
<li><a href='/developers/development_submitting/'>Submit your Work </a></li>
<li><a href='/developers/development_checklist/'>Checklist </a></li>
<li><a href='/developers/development_guidelines/'>Style guidelines </a></li>
<li><a href='/developers/development_testing/'>Testing </a></li>
<li><a href='/developers/development_catching_up/'>Catching up with Reality </a></li>
<li><a href='/developers/development_validation/'>Validation </a></li>
</ul>
</li>
<li>
<a href='/developers/development_101/'>Development 101 </a>
<ul>
<li><a href='/developers/development_hass_object/'>Hass object </a></li>
<li><a href='/developers/development_events/'>Events </a></li>
<li><a href='/developers/development_states/'>States </a></li>
<li><a href='/developers/development_services/'>Services </a></li>
<li><a href='/developers/development_config/'>Config </a></li>
</ul>
</li>
<li>
<a href='/developers/add_new_platform/'>Creating a new platform (to support a new device) </a>
<ul>
<li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li>
<li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li>
<li><a href='/developers/platform_example_light/'>Example light platform </a></li>
</ul>
</li>
<li>
<a href='/developers/creating_components/'>Adding a new component </a>
<ul>
<li><a href='/developers/code_review_component/'>Checklist creating a component </a></li>
<li><a href='/developers/component_loading/'>Loading components </a></li>
<li><a href='/developers/component_deps_and_reqs/'>Requirements & Dependencies </a></li>
<li><a href='/developers/component_events/'>Handling events </a></li>
<li><a href='/developers/component_states/'>States </a></li>
<li><a href='/developers/component_visibility/'>Visibility </a></li>
<li><a href='/developers/component_generic_discovery/'>Loading Platforms </a></li>
<li><a href='/developers/component_discovery/'>Component Discovery </a></li>
</ul>
</li>
<li>
<a href='/developers/asyncio/'>Asynchronous Programming </a>
<ul>
<li><a href='/developers/asyncio_101/'>Introduction to asyncio </a></li>
<li><a href='/developers/asyncio_categorizing_functions/'>Categorizing Functions </a></li>
<li><a href='/developers/asyncio_working_with_async/'>Working with Async </a></li>
<li><a href='/developers/asyncio_misc/'>Miscellaneous </a></li>
</ul>
</li>
<li>
<a href='/developers/frontend/'>Frontend Development </a>
<ul>
<li><a href='/developers/frontend_add_card/'>Add State Card </a></li>
<li><a href='/developers/frontend_add_more_info/'>Add More Info Dialog </a></li>
<li><a href='/developers/frontend_creating_custom_panels/'>Add Custom Panels </a></li>
<li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li>
</ul>
</li>
<li>
<a class='active' href='/developers/hassio/architecture/'>Hass.io architecture </a>
<ul>
<li><a href='/developers/hassio/debugging/'>Debugging Hass.io </a></li>
</ul>
</li>
<li>
<a href='/developers/hassio/addon_development/'>Hass.io Add-on Development </a>
<ul>
<li><a href='/developers/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li>
<li><a href='/developers/hassio/addon_config/'>Configuration </a></li>
<li><a href='/developers/hassio/addon_testing/'>Local Testing </a></li>
<li><a href='/developers/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/developers/hassio/addon_repository/'>Repositories </a></li>
</ul>
</li>
<li>
<a href='/developers/api/'>API </a>
<ul>
<li><a href='https://dev-docs.home-assistant.io/en/dev/'>Python API </a></li>
<li><a href='/developers/websocket_api/'>Websocket API </a></li>
<li><a href='/developers/rest_api/'>REST API </a></li>
<li><a href='/developers/python_api/'>Python REST API </a></li>
<li><a href='/developers/server_sent_events/'>Server-sent events </a></li>
</ul>
</li>
<li><a href='/developers/helpers/'>Online helpers </a></li>
<li><a href='/developers/website/'>Home-Assistant.io </a></li>
<li><a href='/developers/releasing/'>Releasing </a></li>
<li><a href='/developers/maintenance/'>Maintenance </a></li>
<li>
Governance
<ul>
<li><a href='/developers/cla/'>Contributor License Agreement </a></li>
<li><a href='/developers/code_of_conduct/'>Code of Conduct </a></li>
<li><a href='/developers/credits/'>Credits </a></li>
<li><a href='/developers/license/'>License </a></li>
</ul>
</li>
</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>

View file

@ -0,0 +1,271 @@
<!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>Debugging Hass.io - Home Assistant</title>
<meta name="author" content="Home Assistant">
<meta name="description" content="Tips and tricks for when things go wrong.">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/developers/hassio/debugging/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="Debugging Hass.io">
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/developers/hassio/debugging/">
<meta property="og:type" content="website">
<meta property="og:description" content="Tips and tricks for when things go wrong.">
<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="Debugging Hass.io">
<meta name="twitter:description" content="Tips and tricks for when things go wrong.">
<meta name="twitter:image" content="https://home-assistant.io/images/default-social.png">
<link href="/stylesheets/screen.css" media="screen, projection" 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">
<header>
<h1 class="title indent">
Debugging Hass.io
</h1>
</header>
<hr class="divider">
<p class="note warning">
This section is not for users. Use the <a href="/addons/ssh/">SSH add-on</a> to SSH into Hass.io. This is for <b>developers</b> of Hass.io. Do not ask for support if you are using these options.
</p>
<p>The following debug tips and tricks are for people who are running the Hass.io image and are working on the base image. If you use the generic Linux installer script, you should be able to access your host and logs as per your host.</p>
<h2><a class="title-link" name="ssh-access-to-the-host" href="#ssh-access-to-the-host"></a> SSH access to the host</h2>
<p>Create an <code class="highlighter-rouge">authorized_keys</code> file in the root of your SD card with your public key. Once the device is booted, you can access your device as root over SSH on port 22222.</p>
<p>Windows instructions how to generate and use private/public keys with Putty are <a href="https://www.digitalocean.com/community/tutorials/how-to-use-ssh-keys-with-putty-on-digitalocean-droplets-windows-users">here</a>. Instead of the droplet instructions, add the public key as per above instructions.</p>
<p>Alternative instructions, for Mac, Windows and Linux can be found <a href="https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/#platform-mac">here</a>.</p>
<p>Follow steps 1-4 under Generating a new SSH key (The other sections are not applicable to Hass.io and can be ignored.)</p>
<p>Step 3 in the link above, shows the path to the private key file <code class="highlighter-rouge">id_rsa</code> for your chosen operating system. Your public key, <code class="highlighter-rouge">id_rsa.pub</code>, is saved in the same folder. Next, copy your public key file to the root of your SD card.</p>
<p class="note">
Make sure when you are copying the public key to the root of the SD card that you rename the file correctly with no <code class="highlighter-rouge">.pub</code> file extension.
</p>
<h2><a class="title-link" name="checking-the-logs" href="#checking-the-logs"></a> Checking the logs</h2>
<div class="language-bash highlighter-rouge"><pre class="highlight"><code><span class="c"># Logs from the supervisor service on the Host OS</span>
journalctl -f -u resin-supervisor.service
<span class="c"># Hass.io supervisor logs</span>
docker logs hassio_supervisor
<span class="c"># Home Assistant logs</span>
docker logs homeassistant
</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='edit-github'><a href='https://github.com/home-assistant/home-assistant.github.io/tree/current/source/developers/hassio/debugging.markdown'>Edit this page on GitHub</a></div>
<div class='section'>
<h1 class="title delta">Development Guide</h1>
<ul class='divided sidebar-menu'>
<li>
<a href='/developers/'>Introduction </a>
<ul>
<li><a href='/developers/architecture/'>Architecture </a></li>
<li><a href='/developers/architecture_components/'>Components </a></li>
</ul>
</li>
<li>
<a href='/developers/development/'>Starting with Development </a>
<ul>
<li><a href='/developers/development_environment/'>Setting up Environment </a></li>
<li><a href='/developers/development_submitting/'>Submit your Work </a></li>
<li><a href='/developers/development_checklist/'>Checklist </a></li>
<li><a href='/developers/development_guidelines/'>Style guidelines </a></li>
<li><a href='/developers/development_testing/'>Testing </a></li>
<li><a href='/developers/development_catching_up/'>Catching up with Reality </a></li>
<li><a href='/developers/development_validation/'>Validation </a></li>
</ul>
</li>
<li>
<a href='/developers/development_101/'>Development 101 </a>
<ul>
<li><a href='/developers/development_hass_object/'>Hass object </a></li>
<li><a href='/developers/development_events/'>Events </a></li>
<li><a href='/developers/development_states/'>States </a></li>
<li><a href='/developers/development_services/'>Services </a></li>
<li><a href='/developers/development_config/'>Config </a></li>
</ul>
</li>
<li>
<a href='/developers/add_new_platform/'>Creating a new platform (to support a new device) </a>
<ul>
<li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li>
<li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li>
<li><a href='/developers/platform_example_light/'>Example light platform </a></li>
</ul>
</li>
<li>
<a href='/developers/creating_components/'>Adding a new component </a>
<ul>
<li><a href='/developers/code_review_component/'>Checklist creating a component </a></li>
<li><a href='/developers/component_loading/'>Loading components </a></li>
<li><a href='/developers/component_deps_and_reqs/'>Requirements & Dependencies </a></li>
<li><a href='/developers/component_events/'>Handling events </a></li>
<li><a href='/developers/component_states/'>States </a></li>
<li><a href='/developers/component_visibility/'>Visibility </a></li>
<li><a href='/developers/component_generic_discovery/'>Loading Platforms </a></li>
<li><a href='/developers/component_discovery/'>Component Discovery </a></li>
</ul>
</li>
<li>
<a href='/developers/asyncio/'>Asynchronous Programming </a>
<ul>
<li><a href='/developers/asyncio_101/'>Introduction to asyncio </a></li>
<li><a href='/developers/asyncio_categorizing_functions/'>Categorizing Functions </a></li>
<li><a href='/developers/asyncio_working_with_async/'>Working with Async </a></li>
<li><a href='/developers/asyncio_misc/'>Miscellaneous </a></li>
</ul>
</li>
<li>
<a href='/developers/frontend/'>Frontend Development </a>
<ul>
<li><a href='/developers/frontend_add_card/'>Add State Card </a></li>
<li><a href='/developers/frontend_add_more_info/'>Add More Info Dialog </a></li>
<li><a href='/developers/frontend_creating_custom_panels/'>Add Custom Panels </a></li>
<li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li>
</ul>
</li>
<li>
<a href='/developers/hassio/architecture/'>Hass.io architecture </a>
<ul>
<li><a class='active' href='/developers/hassio/debugging/'>Debugging Hass.io </a></li>
</ul>
</li>
<li>
<a href='/developers/hassio/addon_development/'>Hass.io Add-on Development </a>
<ul>
<li><a href='/developers/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li>
<li><a href='/developers/hassio/addon_config/'>Configuration </a></li>
<li><a href='/developers/hassio/addon_testing/'>Local Testing </a></li>
<li><a href='/developers/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/developers/hassio/addon_repository/'>Repositories </a></li>
</ul>
</li>
<li>
<a href='/developers/api/'>API </a>
<ul>
<li><a href='https://dev-docs.home-assistant.io/en/dev/'>Python API </a></li>
<li><a href='/developers/websocket_api/'>Websocket API </a></li>
<li><a href='/developers/rest_api/'>REST API </a></li>
<li><a href='/developers/python_api/'>Python REST API </a></li>
<li><a href='/developers/server_sent_events/'>Server-sent events </a></li>
</ul>
</li>
<li><a href='/developers/helpers/'>Online helpers </a></li>
<li><a href='/developers/website/'>Home-Assistant.io </a></li>
<li><a href='/developers/releasing/'>Releasing </a></li>
<li><a href='/developers/maintenance/'>Maintenance </a></li>
<li>
Governance
<ul>
<li><a href='/developers/cla/'>Contributor License Agreement </a></li>
<li><a href='/developers/code_of_conduct/'>Code of Conduct </a></li>
<li><a href='/developers/credits/'>Credits </a></li>
<li><a href='/developers/license/'>License </a></li>
</ul>
</li>
</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>

View file

@ -121,7 +121,7 @@
</ul> </ul>
</li> </li>
<li> <li>
<a href='/developers/add_new_platform/'>Support a new device (as a platform) </a> <a href='/developers/add_new_platform/'>Creating a new platform (to support a new device) </a>
<ul> <ul>
<li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li> <li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li>
<li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li> <li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li>
@ -159,13 +159,29 @@
<li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li> <li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li>
</ul> </ul>
</li> </li>
<li>
<a href='/developers/hassio/architecture/'>Hass.io architecture </a>
<ul>
<li><a href='/developers/hassio/debugging/'>Debugging Hass.io </a></li>
</ul>
</li>
<li>
<a href='/developers/hassio/addon_development/'>Hass.io Add-on Development </a>
<ul>
<li><a href='/developers/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li>
<li><a href='/developers/hassio/addon_config/'>Configuration </a></li>
<li><a href='/developers/hassio/addon_testing/'>Local Testing </a></li>
<li><a href='/developers/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/developers/hassio/addon_repository/'>Repositories </a></li>
</ul>
</li>
<li> <li>
<a href='/developers/api/'>API </a> <a href='/developers/api/'>API </a>
<ul> <ul>
<li><a href='https://dev-docs.home-assistant.io/en/dev/'>Home Assistant API </a></li> <li><a href='https://dev-docs.home-assistant.io/en/dev/'>Python API </a></li>
<li><a href='/developers/websocket_api/'>Websocket API </a></li> <li><a href='/developers/websocket_api/'>Websocket API </a></li>
<li><a href='/developers/rest_api/'>RESTful API </a></li> <li><a href='/developers/rest_api/'>REST API </a></li>
<li><a href='/developers/python_api/'>Python API </a></li> <li><a href='/developers/python_api/'>Python REST API </a></li>
<li><a href='/developers/server_sent_events/'>Server-sent events </a></li> <li><a href='/developers/server_sent_events/'>Server-sent events </a></li>
</ul> </ul>
</li> </li>

View file

@ -122,7 +122,7 @@ Diagram showing interaction between components and the Home Assistant core.
</ul> </ul>
</li> </li>
<li> <li>
<a href='/developers/add_new_platform/'>Support a new device (as a platform) </a> <a href='/developers/add_new_platform/'>Creating a new platform (to support a new device) </a>
<ul> <ul>
<li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li> <li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li>
<li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li> <li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li>
@ -160,13 +160,29 @@ Diagram showing interaction between components and the Home Assistant core.
<li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li> <li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li>
</ul> </ul>
</li> </li>
<li>
<a href='/developers/hassio/architecture/'>Hass.io architecture </a>
<ul>
<li><a href='/developers/hassio/debugging/'>Debugging Hass.io </a></li>
</ul>
</li>
<li>
<a href='/developers/hassio/addon_development/'>Hass.io Add-on Development </a>
<ul>
<li><a href='/developers/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li>
<li><a href='/developers/hassio/addon_config/'>Configuration </a></li>
<li><a href='/developers/hassio/addon_testing/'>Local Testing </a></li>
<li><a href='/developers/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/developers/hassio/addon_repository/'>Repositories </a></li>
</ul>
</li>
<li> <li>
<a href='/developers/api/'>API </a> <a href='/developers/api/'>API </a>
<ul> <ul>
<li><a href='https://dev-docs.home-assistant.io/en/dev/'>Home Assistant API </a></li> <li><a href='https://dev-docs.home-assistant.io/en/dev/'>Python API </a></li>
<li><a href='/developers/websocket_api/'>Websocket API </a></li> <li><a href='/developers/websocket_api/'>Websocket API </a></li>
<li><a href='/developers/rest_api/'>RESTful API </a></li> <li><a href='/developers/rest_api/'>REST API </a></li>
<li><a href='/developers/python_api/'>Python API </a></li> <li><a href='/developers/python_api/'>Python REST API </a></li>
<li><a href='/developers/server_sent_events/'>Server-sent events </a></li> <li><a href='/developers/server_sent_events/'>Server-sent events </a></li>
</ul> </ul>
</li> </li>

View file

@ -317,7 +317,7 @@
</ul> </ul>
</li> </li>
<li> <li>
<a href='/developers/add_new_platform/'>Support a new device (as a platform) </a> <a href='/developers/add_new_platform/'>Creating a new platform (to support a new device) </a>
<ul> <ul>
<li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li> <li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li>
<li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li> <li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li>
@ -355,13 +355,29 @@
<li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li> <li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li>
</ul> </ul>
</li> </li>
<li>
<a href='/developers/hassio/architecture/'>Hass.io architecture </a>
<ul>
<li><a href='/developers/hassio/debugging/'>Debugging Hass.io </a></li>
</ul>
</li>
<li>
<a href='/developers/hassio/addon_development/'>Hass.io Add-on Development </a>
<ul>
<li><a href='/developers/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li>
<li><a href='/developers/hassio/addon_config/'>Configuration </a></li>
<li><a href='/developers/hassio/addon_testing/'>Local Testing </a></li>
<li><a href='/developers/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/developers/hassio/addon_repository/'>Repositories </a></li>
</ul>
</li>
<li> <li>
<a href='/developers/api/'>API </a> <a href='/developers/api/'>API </a>
<ul> <ul>
<li><a href='https://dev-docs.home-assistant.io/en/dev/'>Home Assistant API </a></li> <li><a href='https://dev-docs.home-assistant.io/en/dev/'>Python API </a></li>
<li><a href='/developers/websocket_api/'>Websocket API </a></li> <li><a href='/developers/websocket_api/'>Websocket API </a></li>
<li><a href='/developers/rest_api/'>RESTful API </a></li> <li><a href='/developers/rest_api/'>REST API </a></li>
<li><a href='/developers/python_api/'>Python API </a></li> <li><a href='/developers/python_api/'>Python REST API </a></li>
<li><a href='/developers/server_sent_events/'>Server-sent events </a></li> <li><a href='/developers/server_sent_events/'>Server-sent events </a></li>
</ul> </ul>
</li> </li>

View file

@ -131,7 +131,7 @@
</ul> </ul>
</li> </li>
<li> <li>
<a href='/developers/add_new_platform/'>Support a new device (as a platform) </a> <a href='/developers/add_new_platform/'>Creating a new platform (to support a new device) </a>
<ul> <ul>
<li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li> <li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li>
<li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li> <li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li>
@ -169,13 +169,29 @@
<li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li> <li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li>
</ul> </ul>
</li> </li>
<li>
<a href='/developers/hassio/architecture/'>Hass.io architecture </a>
<ul>
<li><a href='/developers/hassio/debugging/'>Debugging Hass.io </a></li>
</ul>
</li>
<li>
<a href='/developers/hassio/addon_development/'>Hass.io Add-on Development </a>
<ul>
<li><a href='/developers/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li>
<li><a href='/developers/hassio/addon_config/'>Configuration </a></li>
<li><a href='/developers/hassio/addon_testing/'>Local Testing </a></li>
<li><a href='/developers/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/developers/hassio/addon_repository/'>Repositories </a></li>
</ul>
</li>
<li> <li>
<a href='/developers/api/'>API </a> <a href='/developers/api/'>API </a>
<ul> <ul>
<li><a href='https://dev-docs.home-assistant.io/en/dev/'>Home Assistant API </a></li> <li><a href='https://dev-docs.home-assistant.io/en/dev/'>Python API </a></li>
<li><a href='/developers/websocket_api/'>Websocket API </a></li> <li><a href='/developers/websocket_api/'>Websocket API </a></li>
<li><a href='/developers/rest_api/'>RESTful API </a></li> <li><a href='/developers/rest_api/'>REST API </a></li>
<li><a href='/developers/python_api/'>Python API </a></li> <li><a href='/developers/python_api/'>Python REST API </a></li>
<li><a href='/developers/server_sent_events/'>Server-sent events </a></li> <li><a href='/developers/server_sent_events/'>Server-sent events </a></li>
</ul> </ul>
</li> </li>

View file

@ -142,7 +142,7 @@ Because each slave maintains its own Service Registry it is possible to have mul
</ul> </ul>
</li> </li>
<li> <li>
<a href='/developers/add_new_platform/'>Support a new device (as a platform) </a> <a href='/developers/add_new_platform/'>Creating a new platform (to support a new device) </a>
<ul> <ul>
<li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li> <li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li>
<li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li> <li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li>
@ -180,13 +180,29 @@ Because each slave maintains its own Service Registry it is possible to have mul
<li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li> <li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li>
</ul> </ul>
</li> </li>
<li>
<a href='/developers/hassio/architecture/'>Hass.io architecture </a>
<ul>
<li><a href='/developers/hassio/debugging/'>Debugging Hass.io </a></li>
</ul>
</li>
<li>
<a href='/developers/hassio/addon_development/'>Hass.io Add-on Development </a>
<ul>
<li><a href='/developers/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li>
<li><a href='/developers/hassio/addon_config/'>Configuration </a></li>
<li><a href='/developers/hassio/addon_testing/'>Local Testing </a></li>
<li><a href='/developers/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/developers/hassio/addon_repository/'>Repositories </a></li>
</ul>
</li>
<li> <li>
<a href='/developers/api/'>API </a> <a href='/developers/api/'>API </a>
<ul> <ul>
<li><a href='https://dev-docs.home-assistant.io/en/dev/'>Home Assistant API </a></li> <li><a href='https://dev-docs.home-assistant.io/en/dev/'>Python API </a></li>
<li><a href='/developers/websocket_api/'>Websocket API </a></li> <li><a href='/developers/websocket_api/'>Websocket API </a></li>
<li><a href='/developers/rest_api/'>RESTful API </a></li> <li><a href='/developers/rest_api/'>REST API </a></li>
<li><a href='/developers/python_api/'>Python API </a></li> <li><a href='/developers/python_api/'>Python REST API </a></li>
<li><a href='/developers/server_sent_events/'>Server-sent events </a></li> <li><a href='/developers/server_sent_events/'>Server-sent events </a></li>
</ul> </ul>
</li> </li>

View file

@ -221,7 +221,7 @@
</ul> </ul>
</li> </li>
<li> <li>
<a href='/developers/add_new_platform/'>Support a new device (as a platform) </a> <a href='/developers/add_new_platform/'>Creating a new platform (to support a new device) </a>
<ul> <ul>
<li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li> <li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li>
<li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li> <li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li>
@ -259,13 +259,29 @@
<li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li> <li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li>
</ul> </ul>
</li> </li>
<li>
<a href='/developers/hassio/architecture/'>Hass.io architecture </a>
<ul>
<li><a href='/developers/hassio/debugging/'>Debugging Hass.io </a></li>
</ul>
</li>
<li>
<a href='/developers/hassio/addon_development/'>Hass.io Add-on Development </a>
<ul>
<li><a href='/developers/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li>
<li><a href='/developers/hassio/addon_config/'>Configuration </a></li>
<li><a href='/developers/hassio/addon_testing/'>Local Testing </a></li>
<li><a href='/developers/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/developers/hassio/addon_repository/'>Repositories </a></li>
</ul>
</li>
<li> <li>
<a href='/developers/api/'>API </a> <a href='/developers/api/'>API </a>
<ul> <ul>
<li><a href='https://dev-docs.home-assistant.io/en/dev/'>Home Assistant API </a></li> <li><a href='https://dev-docs.home-assistant.io/en/dev/'>Python API </a></li>
<li><a href='/developers/websocket_api/'>Websocket API </a></li> <li><a href='/developers/websocket_api/'>Websocket API </a></li>
<li><a href='/developers/rest_api/'>RESTful API </a></li> <li><a href='/developers/rest_api/'>REST API </a></li>
<li><a href='/developers/python_api/'>Python API </a></li> <li><a href='/developers/python_api/'>Python REST API </a></li>
<li><a href='/developers/server_sent_events/'>Server-sent events </a></li> <li><a href='/developers/server_sent_events/'>Server-sent events </a></li>
</ul> </ul>
</li> </li>

View file

@ -162,7 +162,7 @@
</ul> </ul>
</li> </li>
<li> <li>
<a href='/developers/add_new_platform/'>Support a new device (as a platform) </a> <a href='/developers/add_new_platform/'>Creating a new platform (to support a new device) </a>
<ul> <ul>
<li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li> <li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li>
<li><a class='active' href='/developers/platform_example_sensor/'>Example sensor platform </a></li> <li><a class='active' href='/developers/platform_example_sensor/'>Example sensor platform </a></li>
@ -200,13 +200,29 @@
<li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li> <li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li>
</ul> </ul>
</li> </li>
<li>
<a href='/developers/hassio/architecture/'>Hass.io architecture </a>
<ul>
<li><a href='/developers/hassio/debugging/'>Debugging Hass.io </a></li>
</ul>
</li>
<li>
<a href='/developers/hassio/addon_development/'>Hass.io Add-on Development </a>
<ul>
<li><a href='/developers/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li>
<li><a href='/developers/hassio/addon_config/'>Configuration </a></li>
<li><a href='/developers/hassio/addon_testing/'>Local Testing </a></li>
<li><a href='/developers/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/developers/hassio/addon_repository/'>Repositories </a></li>
</ul>
</li>
<li> <li>
<a href='/developers/api/'>API </a> <a href='/developers/api/'>API </a>
<ul> <ul>
<li><a href='https://dev-docs.home-assistant.io/en/dev/'>Home Assistant API </a></li> <li><a href='https://dev-docs.home-assistant.io/en/dev/'>Python API </a></li>
<li><a href='/developers/websocket_api/'>Websocket API </a></li> <li><a href='/developers/websocket_api/'>Websocket API </a></li>
<li><a href='/developers/rest_api/'>RESTful API </a></li> <li><a href='/developers/rest_api/'>REST API </a></li>
<li><a href='/developers/python_api/'>Python API </a></li> <li><a href='/developers/python_api/'>Python REST API </a></li>
<li><a href='/developers/server_sent_events/'>Server-sent events </a></li> <li><a href='/developers/server_sent_events/'>Server-sent events </a></li>
</ul> </ul>
</li> </li>

View file

@ -252,7 +252,7 @@ longer timeout.</p>
</ul> </ul>
</li> </li>
<li> <li>
<a href='/developers/add_new_platform/'>Support a new device (as a platform) </a> <a href='/developers/add_new_platform/'>Creating a new platform (to support a new device) </a>
<ul> <ul>
<li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li> <li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li>
<li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li> <li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li>
@ -290,13 +290,29 @@ longer timeout.</p>
<li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li> <li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li>
</ul> </ul>
</li> </li>
<li>
<a href='/developers/hassio/architecture/'>Hass.io architecture </a>
<ul>
<li><a href='/developers/hassio/debugging/'>Debugging Hass.io </a></li>
</ul>
</li>
<li>
<a href='/developers/hassio/addon_development/'>Hass.io Add-on Development </a>
<ul>
<li><a href='/developers/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li>
<li><a href='/developers/hassio/addon_config/'>Configuration </a></li>
<li><a href='/developers/hassio/addon_testing/'>Local Testing </a></li>
<li><a href='/developers/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/developers/hassio/addon_repository/'>Repositories </a></li>
</ul>
</li>
<li> <li>
<a href='/developers/api/'>API </a> <a href='/developers/api/'>API </a>
<ul> <ul>
<li><a href='https://dev-docs.home-assistant.io/en/dev/'>Home Assistant API </a></li> <li><a href='https://dev-docs.home-assistant.io/en/dev/'>Python API </a></li>
<li><a href='/developers/websocket_api/'>Websocket API </a></li> <li><a href='/developers/websocket_api/'>Websocket API </a></li>
<li><a href='/developers/rest_api/'>RESTful API </a></li> <li><a href='/developers/rest_api/'>REST API </a></li>
<li><a class='active' href='/developers/python_api/'>Python API </a></li> <li><a class='active' href='/developers/python_api/'>Python REST API </a></li>
<li><a href='/developers/server_sent_events/'>Server-sent events </a></li> <li><a href='/developers/server_sent_events/'>Server-sent events </a></li>
</ul> </ul>
</li> </li>

View file

@ -152,7 +152,7 @@
</ul> </ul>
</li> </li>
<li> <li>
<a href='/developers/add_new_platform/'>Support a new device (as a platform) </a> <a href='/developers/add_new_platform/'>Creating a new platform (to support a new device) </a>
<ul> <ul>
<li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li> <li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li>
<li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li> <li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li>
@ -190,13 +190,29 @@
<li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li> <li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li>
</ul> </ul>
</li> </li>
<li>
<a href='/developers/hassio/architecture/'>Hass.io architecture </a>
<ul>
<li><a href='/developers/hassio/debugging/'>Debugging Hass.io </a></li>
</ul>
</li>
<li>
<a href='/developers/hassio/addon_development/'>Hass.io Add-on Development </a>
<ul>
<li><a href='/developers/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li>
<li><a href='/developers/hassio/addon_config/'>Configuration </a></li>
<li><a href='/developers/hassio/addon_testing/'>Local Testing </a></li>
<li><a href='/developers/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/developers/hassio/addon_repository/'>Repositories </a></li>
</ul>
</li>
<li> <li>
<a href='/developers/api/'>API </a> <a href='/developers/api/'>API </a>
<ul> <ul>
<li><a href='https://dev-docs.home-assistant.io/en/dev/'>Home Assistant API </a></li> <li><a href='https://dev-docs.home-assistant.io/en/dev/'>Python API </a></li>
<li><a href='/developers/websocket_api/'>Websocket API </a></li> <li><a href='/developers/websocket_api/'>Websocket API </a></li>
<li><a href='/developers/rest_api/'>RESTful API </a></li> <li><a href='/developers/rest_api/'>REST API </a></li>
<li><a href='/developers/python_api/'>Python API </a></li> <li><a href='/developers/python_api/'>Python REST API </a></li>
<li><a href='/developers/server_sent_events/'>Server-sent events </a></li> <li><a href='/developers/server_sent_events/'>Server-sent events </a></li>
</ul> </ul>
</li> </li>

View file

@ -525,7 +525,7 @@ If your client does not support <code>DELETE</code> HTTP requests you can add an
</ul> </ul>
</li> </li>
<li> <li>
<a href='/developers/add_new_platform/'>Support a new device (as a platform) </a> <a href='/developers/add_new_platform/'>Creating a new platform (to support a new device) </a>
<ul> <ul>
<li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li> <li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li>
<li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li> <li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li>
@ -563,13 +563,29 @@ If your client does not support <code>DELETE</code> HTTP requests you can add an
<li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li> <li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li>
</ul> </ul>
</li> </li>
<li>
<a href='/developers/hassio/architecture/'>Hass.io architecture </a>
<ul>
<li><a href='/developers/hassio/debugging/'>Debugging Hass.io </a></li>
</ul>
</li>
<li>
<a href='/developers/hassio/addon_development/'>Hass.io Add-on Development </a>
<ul>
<li><a href='/developers/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li>
<li><a href='/developers/hassio/addon_config/'>Configuration </a></li>
<li><a href='/developers/hassio/addon_testing/'>Local Testing </a></li>
<li><a href='/developers/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/developers/hassio/addon_repository/'>Repositories </a></li>
</ul>
</li>
<li> <li>
<a href='/developers/api/'>API </a> <a href='/developers/api/'>API </a>
<ul> <ul>
<li><a href='https://dev-docs.home-assistant.io/en/dev/'>Home Assistant API </a></li> <li><a href='https://dev-docs.home-assistant.io/en/dev/'>Python API </a></li>
<li><a href='/developers/websocket_api/'>Websocket API </a></li> <li><a href='/developers/websocket_api/'>Websocket API </a></li>
<li><a class='active' href='/developers/rest_api/'>RESTful API </a></li> <li><a class='active' href='/developers/rest_api/'>REST API </a></li>
<li><a href='/developers/python_api/'>Python API </a></li> <li><a href='/developers/python_api/'>Python REST API </a></li>
<li><a href='/developers/server_sent_events/'>Server-sent events </a></li> <li><a href='/developers/server_sent_events/'>Server-sent events </a></li>
</ul> </ul>
</li> </li>

View file

@ -158,7 +158,7 @@
</ul> </ul>
</li> </li>
<li> <li>
<a href='/developers/add_new_platform/'>Support a new device (as a platform) </a> <a href='/developers/add_new_platform/'>Creating a new platform (to support a new device) </a>
<ul> <ul>
<li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li> <li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li>
<li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li> <li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li>
@ -196,13 +196,29 @@
<li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li> <li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li>
</ul> </ul>
</li> </li>
<li>
<a href='/developers/hassio/architecture/'>Hass.io architecture </a>
<ul>
<li><a href='/developers/hassio/debugging/'>Debugging Hass.io </a></li>
</ul>
</li>
<li>
<a href='/developers/hassio/addon_development/'>Hass.io Add-on Development </a>
<ul>
<li><a href='/developers/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li>
<li><a href='/developers/hassio/addon_config/'>Configuration </a></li>
<li><a href='/developers/hassio/addon_testing/'>Local Testing </a></li>
<li><a href='/developers/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/developers/hassio/addon_repository/'>Repositories </a></li>
</ul>
</li>
<li> <li>
<a href='/developers/api/'>API </a> <a href='/developers/api/'>API </a>
<ul> <ul>
<li><a href='https://dev-docs.home-assistant.io/en/dev/'>Home Assistant API </a></li> <li><a href='https://dev-docs.home-assistant.io/en/dev/'>Python API </a></li>
<li><a href='/developers/websocket_api/'>Websocket API </a></li> <li><a href='/developers/websocket_api/'>Websocket API </a></li>
<li><a href='/developers/rest_api/'>RESTful API </a></li> <li><a href='/developers/rest_api/'>REST API </a></li>
<li><a href='/developers/python_api/'>Python API </a></li> <li><a href='/developers/python_api/'>Python REST API </a></li>
<li><a class='active' href='/developers/server_sent_events/'>Server-sent events </a></li> <li><a class='active' href='/developers/server_sent_events/'>Server-sent events </a></li>
</ul> </ul>
</li> </li>

View file

@ -215,7 +215,7 @@ redirect_from: /getting-started/android/
</ul> </ul>
</li> </li>
<li> <li>
<a href='/developers/add_new_platform/'>Support a new device (as a platform) </a> <a href='/developers/add_new_platform/'>Creating a new platform (to support a new device) </a>
<ul> <ul>
<li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li> <li><a href='/developers/code_review_platform/'>Checklist creating a platform </a></li>
<li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li> <li><a href='/developers/platform_example_sensor/'>Example sensor platform </a></li>
@ -253,13 +253,29 @@ redirect_from: /getting-started/android/
<li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li> <li><a href='/developers/frontend_creating_custom_ui/'>Add Custom UI </a></li>
</ul> </ul>
</li> </li>
<li>
<a href='/developers/hassio/architecture/'>Hass.io architecture </a>
<ul>
<li><a href='/developers/hassio/debugging/'>Debugging Hass.io </a></li>
</ul>
</li>
<li>
<a href='/developers/hassio/addon_development/'>Hass.io Add-on Development </a>
<ul>
<li><a href='/developers/hassio/addon_tutorial/'>Tutorial: Making your first add-on </a></li>
<li><a href='/developers/hassio/addon_config/'>Configuration </a></li>
<li><a href='/developers/hassio/addon_testing/'>Local Testing </a></li>
<li><a href='/developers/hassio/addon_publishing/'>Publishing </a></li>
<li><a href='/developers/hassio/addon_repository/'>Repositories </a></li>
</ul>
</li>
<li> <li>
<a href='/developers/api/'>API </a> <a href='/developers/api/'>API </a>
<ul> <ul>
<li><a href='https://dev-docs.home-assistant.io/en/dev/'>Home Assistant API </a></li> <li><a href='https://dev-docs.home-assistant.io/en/dev/'>Python API </a></li>
<li><a href='/developers/websocket_api/'>Websocket API </a></li> <li><a href='/developers/websocket_api/'>Websocket API </a></li>
<li><a href='/developers/rest_api/'>RESTful API </a></li> <li><a href='/developers/rest_api/'>REST API </a></li>
<li><a href='/developers/python_api/'>Python API </a></li> <li><a href='/developers/python_api/'>Python REST API </a></li>
<li><a href='/developers/server_sent_events/'>Server-sent events </a></li> <li><a href='/developers/server_sent_events/'>Server-sent events </a></li>
</ul> </ul>
</li> </li>

Some files were not shown because too many files have changed in this diff Show more