Site updated at 2016-12-06 08:11:16 UTC

This commit is contained in:
Travis CI 2016-12-06 08:11:16 +00:00
parent c96b6cd430
commit 9db92b7101
1358 changed files with 220 additions and 236889 deletions

View file

@ -1,427 +0,0 @@
<!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>Dashboard Configuration - Home Assistant</title>
<meta name="author" content="Home Assistant">
<meta name="description" content="Dashboard Configuration">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/ecosystem/hadashboard/dash_config/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="Dashboard Configuration">
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/ecosystem/hadashboard/dash_config/">
<meta property="og:type" content="article">
<meta property="og:description" content="Dashboard Configuration">
<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="Dashboard Configuration">
<meta name="twitter:description" content="Dashboard Configuration">
<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>
<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="/ecosystem/">Ecosystem</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>
</ul>
</nav>
</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">
Dashboard Configuration
</h1>
</header>
<hr class="divider">
<p>(All installations)</p>
<p>Hadashboard is a Dashing app, so make sure to read all the instructions on http://dashing.io to learn how to add widgets to your dashboard, as well as how to create new widgets.</p>
<p>Make a copy of dashboards/example.erb and call it main.erb, then edit this file to reference the items you want to display and control and to get the layout that you want. Leave the original example.erb intact and unchanged so that you dont run into problems when trying to update using the git commands mentioned later in “Updating the Dashboard”.</p>
<p>The basic anatomy of a widget is this:</p>
<div class="language-html highlighter-rouge"><pre class="highlight"><code> <span class="nt">&lt;li</span> <span class="na">data-row=</span><span class="s">""</span> <span class="na">data-col=</span><span class="s">"1"</span> <span class="na">data-sizex=</span><span class="s">"1"</span> <span class="na">data-sizey=</span><span class="s">"1"</span><span class="nt">&gt;</span>
<span class="nt">&lt;div</span> <span class="na">data-id=</span><span class="s">"office"</span> <span class="na">data-view=</span><span class="s">"Hadimmer"</span> <span class="na">data-title=</span><span class="s">"Office Lamp"</span><span class="nt">&gt;&lt;/div&gt;</span>
<span class="nt">&lt;/li&gt;</span>
</code></pre>
</div>
<ul>
<li><strong>data-row</strong>, <strong>data-col</strong>: The position of the widget in the grid.</li>
<li><strong>data-sizex</strong>, <strong>data-sizey</strong>: The size of the widget in terms of grid tile.</li>
<li><strong>data-id</strong>: The homeassitant entity id without the entity type (e.g. <code class="highlighter-rouge">light.office</code> becomes <code class="highlighter-rouge">office</code>).</li>
<li><strong>data-view</strong>: The type of widget to be used (Haswitch, Hadimmer, Hatemp etc.)</li>
<li><strong>data-icon</strong>: The icon displayed on the tile. See http://fontawesome.io for an icon cheatsheet.</li>
<li><strong>data-title</strong>: The title to be displayed on the tile.</li>
<li><strong><em>data-bgcolor</em></strong> (optional) - the background color of the widget.</li>
</ul>
<p>Note that although it is legal in XML terms to split the inner <code class="highlighter-rouge">&lt;div&gt;</code> like this:</p>
<div class="language-html highlighter-rouge"><pre class="highlight"><code> <span class="nt">&lt;li</span> <span class="na">data-row=</span><span class="s">""</span> <span class="na">data-col=</span><span class="s">"1"</span> <span class="na">data-sizex=</span><span class="s">"1"</span> <span class="na">data-sizey=</span><span class="s">"1"</span><span class="nt">&gt;</span>
<span class="nt">&lt;div</span> <span class="na">data-id=</span><span class="s">"office"</span>
<span class="na">data-view=</span><span class="s">"Hadimmer"</span>
<span class="na">data-title=</span><span class="s">"Office Lamp"</span><span class="nt">&gt;</span>
<span class="nt">&lt;/div&gt;</span>
<span class="nt">&lt;/li&gt;</span>
</code></pre>
</div>
<p>This may break <code class="highlighter-rouge">hapush</code>s parsing of the file, so keep to the line format first presented.</p>
<p>Please, refer to the Dashing website for instructions on how to change the grid and tile size, as well as more general instructions about widgets, their properties, and how to create new widgets.</p>
<h1>Supported Widgets</h1>
<p>At this time I have provided support for the following Home Assistant entity types.</p>
<h2>switch</h2>
<p>Widget type <strong><em>Haswitch</em></strong></p>
<h2>lock</h2>
<p>Widget type <strong><em>Halock</em></strong></p>
<h2>devicetracker</h2>
<p>Widget type <strong><em>Hadevicetracker</em></strong></p>
<h2>light</h2>
<p>Widget type <strong><em>Hadimmer</em></strong></p>
<h2>cover</h2>
<p>Widget type <strong><em>Hacover</em></strong></p>
<h2>input_boolean</h2>
<p>Widget type <strong><em>Hainputboolean</em></strong></p>
<h2>scene</h2>
<p>Widget type <strong><em>Hascene</em></strong></p>
<p><strong>data-ontime</strong> (optional): The amount of time the scene icon lights up when pressed, in milliseconds, default 1000.</p>
<h2>script</h2>
<p>Widget type <strong><em>Hascript</em></strong></p>
<p><strong>data-ontime</strong> (optional): The amount of time the scene icon lights up when pressed, in milliseconds, default 1000.</p>
<h2>mode</h2>
<p>The <code class="highlighter-rouge">Hamode</code> widget alows you to run a script on activation and to link it with a specified <code class="highlighter-rouge">input_select</code> so the button will be highlighted for certain values of that input select. The usecase for this is that I maintain an <code class="highlighter-rouge">input_select</code> as a flag for the state of the house to simplify other automations. I use scripts to switch between the states, and this feature provides feedback as to the current state by lighting up the appropriate mode button.</p>
<p>A <code class="highlighter-rouge">Hamode</code> widget using this feature will look like this:</p>
<div class="language-html highlighter-rouge"><pre class="highlight"><code><span class="nt">&lt;li</span> <span class="na">data-row=</span><span class="s">"5"</span> <span class="na">data-col=</span><span class="s">"3"</span> <span class="na">data-sizex=</span><span class="s">"2"</span> <span class="na">data-sizey=</span><span class="s">"1"</span><span class="nt">&gt;</span>
<span class="nt">&lt;div</span> <span class="na">data-id=</span><span class="s">"day"</span> <span class="na">data-view=</span><span class="s">"Hamode"</span> <span class="na">data-title=</span><span class="s">"Good Day"</span> <span class="na">data-icon=</span><span class="s">"sun-o"</span> <span class="na">data-changemode=</span><span class="s">"Day"</span> <span class="na">data-input=</span><span class="s">"house_mode"</span><span class="nt">&gt;&lt;/div&gt;</span>
<span class="nt">&lt;/li&gt;</span>
</code></pre>
</div>
<p><strong>data-changemode</strong>: The value of the <code class="highlighter-rouge">input_select</code> for which this script button will light up</p>
<p><strong>data-input</strong>: The <code class="highlighter-rouge">input_select</code> entity to use (minus the leading entity type)</p>
<h2>input_select (read only)</h2>
<p>Widget type <strong><em>Hainputselect</em></strong></p>
<h2>sensor</h2>
<p>Widget type <strong><em>Hasensor</em></strong></p>
<p>Text based output of the value of a particular sensor.</p>
<p>The Hasensor widget supports an additional paramater <code class="highlighter-rouge">data-unit</code> - this allows you to set the unit to whatever you want - Centigrade, %, lux or whatever you need for the sensor in question. For a temperature sensor you will need to explicitly include the degree symbol like this:</p>
<div class="language-html highlighter-rouge"><pre class="highlight"><code>data-unit="<span class="ni">&amp;deg;</span>F"
</code></pre>
</div>
<p>If omitted, no units will be shown.</p>
<h2>sensor</h2>
<p>Widget type <strong><em>Hameter</em></strong></p>
<p>An alternative to the text based <code class="highlighter-rouge">Hasensor</code> that works for numeric values only.</p>
<p>The Hameter widget supports an additional paramater <code class="highlighter-rouge">data-unit</code> - this allows you to set the unit to whatever you want - Centigrade, %, lux or whatever you need for the sensor in question. For a temperature sensor you will need to explicitly include the degree symbol like this:</p>
<div class="language-html highlighter-rouge"><pre class="highlight"><code>data-unit="<span class="ni">&amp;deg;</span>F"
</code></pre>
</div>
<p>If omitted, no units will be shown.</p>
<h2>binary_sensor</h2>
<p>Widget type <strong><em>Habinary</em></strong></p>
<p>An icon-based option for generic binary sensors. Useful for things like door contact sensors. In addition to the standard widget parameters, Habinary supports two additional parameters:</p>
<ul>
<li><strong>data-iconon</strong>: the icon to display when the sensor state is “on”</li>
<li><strong>data-iconoff</strong>: the icon to display when the sensor state if “off”</li>
</ul>
<p>If no icons are specified, the widget defaults to a flat gray line for “off” and a green bullseye for “on”.</p>
<h2>group</h2>
<p>Widget type <strong><em>Hagroup</em></strong></p>
<p>The Hagroup widget uses the homeassistant/turn_on and homeassistant/turn_off API call, so certain functionality will be lost. For example, you will not be able to use control groups of locks or dim lights.</p>
<h1>Alarm Control Panel</h1>
<p>These widgets allow the user to create a working control panel that can be used to control the Manual Alarm Control Panel component (https://home-assistant.io/components/alarm_control_panel.manual). The example dashboard contains an arrangement similar to this:</p>
<p class="img">
<img src="/images/hadashboard/alarm_panel.png" />
The Alarm Panel
</p>
<p>Widget type <strong><em>Haalarmstatus</em></strong></p>
<p>The Haalarmstatus widget displays the current status of the alarm_control_panel entity. It will also display the code as it is being entered by the user.</p>
<p>The data-id must be the same as the alarm_control_panel entity_id in Home Assistant.</p>
<p>Widget type <strong><em>Haalarmdigit</em></strong></p>
<p>The Haalarmdigit widget is used to create the numeric keypad for entering alarm codes.</p>
<p>data-digit holds the numeric value you wish to enter. The special value of “-“ creates a clear button which will wipe the code and return the Haalarmstatus widget display back to the current alarm state.</p>
<p>data-alarmentity holds the data-id of the Haalarmstatus widget, so that the status widget can be correctly updated. It is mandatory for a clear type digit and optional for normal numeric buttons.</p>
<p>Widget type <strong><em>Haalarmaction</em></strong></p>
<p>The Haalarmaction widget creates the arm/disarm/trigger buttons. Bear in mind that alarm triggering does not require a code, so you may not want to put this button near the other buttons in case it is pressed accidentally.</p>
<p>data-action must contain one of the following: arm_home/arm_away/trigger/disarm.</p>
<h1>weather (requires dark sky)</h1>
<p>Widget type <strong><em>Haweather</em></strong></p>
<p>In order to use the weather widget you must configure the dark sky component, and ensure that you configure at least the following monitored conditions in your Home Assistant sensor config:</p>
<ul>
<li>temperature</li>
<li>humidity</li>
<li>precip_probability</li>
<li>precip_intensity</li>
<li>wind_speed</li>
<li>pressure</li>
<li>wind_bearing</li>
<li>apparent_temperature</li>
<li>icon</li>
</ul>
<p>The <code class="highlighter-rouge">data-id</code> of the Haweather widget must be set to <code class="highlighter-rouge">weather</code> or the widget will not work.</p>
<p>The Hatemp widget supports an additional paramater <code class="highlighter-rouge">data-unit</code> - this allows you to set the unit to whatever you want - Centigrade, Farenheight or even Kelvin if you prefer ;) You will need to explicitly include the degree symbol like this:</p>
<div class="language-html highlighter-rouge"><pre class="highlight"><code>data-unit="<span class="ni">&amp;deg;</span>F"
</code></pre>
</div>
<p>If omitted, no units will be shown.</p>
<h2>news</h2>
<p>Widget type <strong><em>News</em></strong> (contributed by <a href="https://community.home-assistant.io/users/kris/activity">KRiS</a>)</p>
<p>This is an RSS widget that can be used for displaying travel information, news etc. on the dashboard. The RSS feed will update every 6o minutes. To configure this, first it is necessary to add your desired feeds in <code class="highlighter-rouge">homeassistant/lib/ha_conf.rb</code> in the <code class="highlighter-rouge">$news_feeds</code> section. By default it comes with 2 sample feeds:</p>
<div class="language-ruby highlighter-rouge"><pre class="highlight"><code><span class="vg">$news_feeds</span> <span class="o">=</span> <span class="p">{</span>
<span class="s2">"Traffic"</span> <span class="o">=&gt;</span> <span class="s2">"http://api.sr.se/api/rss/traffic/2863"</span><span class="p">,</span>
<span class="s2">"News"</span> <span class="o">=&gt;</span> <span class="s2">"http://feeds.bbci.co.uk/news/rss.xml"</span><span class="p">,</span>
<span class="p">}</span>
</code></pre>
</div>
<p>You can add as many as you want. The important point is that the key value (e.g. “Traffic” or “News” in the example above is used to tie the feed to your widget in the dashboard file. Here is an example of the Traffic widget that displays the first feed in the list:</p>
<div class="language-html highlighter-rouge"><pre class="highlight"><code><span class="nt">&lt;li</span> <span class="na">data-row=</span><span class="s">"3"</span> <span class="na">data-col=</span><span class="s">"2"</span> <span class="na">data-sizex=</span><span class="s">"2"</span> <span class="na">data-sizey=</span><span class="s">"2"</span><span class="nt">&gt;</span>
<span class="nt">&lt;div</span> <span class="na">data-id=</span><span class="s">"Traffic"</span> <span class="na">data-view=</span><span class="s">"News"</span> <span class="na">data-title=</span><span class="s">"Traffic"</span> <span class="na">data-interval=</span><span class="s">"30"</span> <span class="na">data-bgcolor=</span><span class="s">"#643EBF"</span><span class="nt">&gt;</span>
<span class="nt">&lt;/li&gt;</span>
</code></pre>
</div>
<p>The value of thee <code class="highlighter-rouge">data-id</code> tag must match the key value in the <code class="highlighter-rouge">$news_feeds</code> configuration.</p>
<ul>
<li><strong><em>data-interval</em></strong> (optional) - the time in seconds that each entry in the RSS feed is displayed before the next one is shown, default is 30 seconds.</li>
</ul>
<p><strong><em>The follwing widget types have been deprecated in favor of the more flexible <code class="highlighter-rouge">Hasensor</code> and <code class="highlighter-rouge">Hameter</code> widgets. They will be removed in a future release.</em></strong></p>
<h2>sensor (humidity)</h2>
<p>Widget type <strong><em>Hahumidity</em></strong></p>
<h2>sensor (humidity)</h2>
<p>Widget type <strong><em>Hahumiditymeter</em></strong> (contributed by <a href="https://community.home-assistant.io/users/chanders/activity">Shiv Chanders</a>)</p>
<p>This is an alternative to the the text based humidity widget above, it display the humidity as an animated meter from 0 to 100%.</p>
<h2>sensor (luminance)</h2>
<p>Widget type <strong><em>Halux</em></strong></p>
<h2>sensor (temperature)</h2>
<p>Widget type <strong><em>Hatemp</em></strong></p>
<p>The Hatemp widget supports an additional paramater <code class="highlighter-rouge">data-unit</code> - this allows you to set the unit to whatever you want - Centigrade, Farenheight or even Kelvin if you prefer ;) You will need to explicitly include the degree symbol like this:</p>
<div class="language-html highlighter-rouge"><pre class="highlight"><code>data-unit="<span class="ni">&amp;deg;</span>F"
</code></pre>
</div>
<p>If omitted, no units will be shown.</p>
<h1>Customizing CSS styles</h1>
<p>If you want to customize the styles of your dashboard and widgets, there are two options:</p>
<ol>
<li>You can edit the application.scss file (and the individual widget .scss files) directly (not recommended; if you pull down updates from the master repository, your changes might conflict/be overwritten)</li>
<li><strong>Create override files (recommended)</strong>
<ol>
<li>Create a couple of additional files in the <em>assets/stylesheets</em> directory: <code class="highlighter-rouge">_application_custom.scss</code> and <code class="highlighter-rouge">_variables_custom.scss</code>.</li>
<li>Open <code class="highlighter-rouge">application.scss</code> and go to the bottom of the file. Uncomment the @import line.</li>
<li>Open <code class="highlighter-rouge">_variables.scss</code> and go to the bottom of the file. Uncomment the @import line.</li>
<li>Write your own SASS styles in <code class="highlighter-rouge">_application_custom.scss</code> (for general style customization) and <code class="highlighter-rouge">_variables_custom.scss</code> (for colors). You can customize those files without worrying about your changes getting overwritten if you pull down an update. The most you may have to do, if you update, will be to uncomment the @import lines again from steps 2 and 3.</li>
</ol>
</li>
</ol>
<p><strong>Note: The <code class="highlighter-rouge">_variables.scss</code> file (and your customizations from <code class="highlighter-rouge">_variables_custom.scss</code>) get imported into nearly every widgets SCSS file, so it is a best practice to define varaibles for colors in <code class="highlighter-rouge">_variables.scss</code> or <code class="highlighter-rouge">_variables_custom.scss</code> and reference those variables in the widget SCSS.</strong></p>
<h1>Changes and Restarting</h1>
<p>When you make changes to a dashboard, Dashing and <code class="highlighter-rouge">hapush</code> will both automatically reload and apply the changes without a need to restart.</p>
<p>Note: The first time you start Dashing, it can take up to a minute for the initial compilation of the pages to occur. You might get a timeout from your browser. If this occurs, be patient and reload. Subsequent reloads will be a lot quicker.</p>
<h1>Multiple Pages</h1>
<p>It is possible to have multiple pages within a dashboard. To do this, you can add an arbitary number of gridster divisions (you need at least one).</p>
<div class="language-html highlighter-rouge"><pre class="highlight"><code><span class="nt">&lt;div</span> <span class="na">class=</span><span class="s">"gridster"</span><span class="nt">&gt;</span> <span class="c">&lt;!-- Main Panel - PAGE 1 --&gt;</span>
<span class="nt">&lt;some</span> <span class="na">widgets</span><span class="nt">&gt;</span>
<span class="err">&lt;</span>/div
<span class="nt">&lt;div</span> <span class="na">class=</span><span class="s">"gridster"</span><span class="nt">&gt;</span> <span class="c">&lt;!-- More Stuff - PAGE 2 --&gt;</span>
<span class="nt">&lt;more</span> <span class="na">widgets</span><span class="nt">&gt;</span>
<span class="err">&lt;</span>/div
</code></pre>
</div>
<p>The divisions are implicitly numbered from 1 so it is a good idea to comment them. You can then add a widget to switch between pages like so:</p>
<div class="language-html highlighter-rouge"><pre class="highlight"><code><span class="nt">&lt;li</span> <span class="na">data-row=</span><span class="s">"1"</span> <span class="na">data-col=</span><span class="s">"1"</span> <span class="na">data-sizex=</span><span class="s">"1"</span> <span class="na">data-sizey=</span><span class="s">"1"</span><span class="nt">&gt;</span>
<span class="nt">&lt;div</span> <span class="na">data-id=</span><span class="s">"cpage1"</span> <span class="na">data-view=</span><span class="s">"ChangePage"</span> <span class="na">data-icon=</span><span class="s">"cogs"</span> <span class="na">data-title=</span><span class="s">"Upstairs"</span> <span class="na">data-page=</span><span class="s">"3"</span> <span class="na">data-stagger=</span><span class="s">"false"</span> <span class="na">data-fasttransition=</span><span class="s">"true"</span> <span class="na">data-event-click=</span><span class="s">"onClick"</span><span class="nt">&gt;&lt;/div&gt;</span>
<span class="nt">&lt;/li&gt;</span>
</code></pre>
</div>
<ul>
<li><strong><em>data-page</em></strong> : The name of the page to switch to</li>
</ul>
<h1>Multiple Dashboards</h1>
<p>You can also have multiple dashboards, by simply adding a new .erb file to the dashboards directory and navigating to the dashboards via <code class="highlighter-rouge">http://&lt;IP address&gt;:3030/dashboard-file-name-without-extension</code></p>
<p>For example, if you want to deploy multiple devices, you could have one dashboard per room and still only use one hadashboard app 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="section">
<h1 class="title delta">HADashboard</h1>
<ul class="divided sidebar-menu">
<li><a href='/ecosystem/hadashboard/'>General </a></li>
<li><a href='/ecosystem/hadashboard/installation/'>Installation </a></li>
<li><a class='active' href='/ecosystem/hadashboard/dash_config/'>Dashboard Configuration </a></li>
<li><a href='/ecosystem/hadashboard/hapush/'>HAPush </a></li>
<li><a href='/ecosystem/hadashboard/reboot/'>Reboot </a></li>
<li><a href='/ecosystem/hadashboard/updating/'>Updating HADashboard </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>.<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>
</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>
</body>
</html>

View file

@ -1,235 +0,0 @@
<!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>HAPush - Home Assistant</title>
<meta name="author" content="Home Assistant">
<meta name="description" content="HAPush">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/ecosystem/hadashboard/hapush/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="HAPush">
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/ecosystem/hadashboard/hapush/">
<meta property="og:type" content="article">
<meta property="og:description" content="HAPush">
<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="HAPush">
<meta name="twitter:description" content="HAPush">
<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>
<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="/ecosystem/">Ecosystem</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>
</ul>
</nav>
</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">
HAPush
</h1>
</header>
<hr class="divider">
<p>(Not necessary if you are using Docker)</p>
<p>When you have the dashboard correctly displaying and interacting with Home Assistant you are ready to install the final component - <code class="highlighter-rouge">hapush</code>. Without <code class="highlighter-rouge">hapush</code> the dashboard would not respond to events that happen outside of the hadashboard system. For instance, if someone uses the Home Assistant interface to turn on a light, or even another App or physical switch, there is no way for the Dashboard to reflect this change. This is where <code class="highlighter-rouge">hapush</code> comes in.</p>
<p><code class="highlighter-rouge">hapush</code> is a python daemon that listens to Home Assistants Event Stream and pushes changes back to the dashboard to update it in real time. You may want to create a <a href="https://docs.python.org/3/library/venv.html">Virtual Environment</a> for hapush - at the time of writing there is a conflict in the Event Source versions in use between HA and hapush.</p>
<p>Before running <code class="highlighter-rouge">hapush</code> you will need to add some python prerequisites:</p>
<div class="language-bash highlighter-rouge"><pre class="highlight"><code><span class="gp">$ </span>sudo pip3 install daemonize
<span class="gp">$ </span>sudo pip3 install sseclient
<span class="gp">$ </span>sudo pip3 install configobj
</code></pre>
</div>
<p>Some users are reporting errors with <code class="highlighter-rouge">InsecureRequestWarning</code>:</p>
<div class="highlighter-rouge"><pre class="highlight"><code>Traceback (most recent call last):
File "./hapush.py", line 21, in &lt;module&gt;
from requests.packages.urllib3.exceptions import InsecureRequestWarning
ImportError: cannot import name 'InsecureRequestWarning'
</code></pre>
</div>
<p>This can be fixed with:</p>
<div class="highlighter-rouge"><pre class="highlight"><code>$ sudo pip3 install --upgrade requests
</code></pre>
</div>
<h1>Configuring hapush (all installation methods)</h1>
<p>When you have all the prereqs in place, copy the hapush.cfg.example file to hapush.cfg then edit it to reflect your environment:</p>
<div class="highlighter-rouge"><pre class="highlight"><code>ha_url = "http://192.168.1.10:8123"
ha_key = api_key
dash_host = "192.168.1.10:3030"
dash_dir = "/srv/hass/src/hadashboard/dashboards"
logfile = "/etc/hapush/hapush.log"
</code></pre>
</div>
<ul>
<li><code class="highlighter-rouge">ha_url</code> is a reference to your home assistant installation and must include the correct port number and scheme (<code class="highlighter-rouge">http://</code> or <code class="highlighter-rouge">https://</code> as appropriate)</li>
<li><code class="highlighter-rouge">ha_key</code> should be set to your key if you have one, otherwise it can be removed.</li>
<li><code class="highlighter-rouge">dash_host</code> should be set to the IP address and port of the host you are running Dashing on (no http or https) - this should be the same machine as you are running <code class="highlighter-rouge">hapush</code> on.</li>
<li><code class="highlighter-rouge">dash_dir</code> is the path on the machine that stores your dashboards. This will be the subdirectory <code class="highlighter-rouge">dashboards</code> relative to the path you cloned <code class="highlighter-rouge">hadashboard</code> to. For Docker installs this should be set to <code class="highlighter-rouge">/app/dashboards</code></li>
<li><code class="highlighter-rouge">logfile</code> is the path to where you want <code class="highlighter-rouge">hapush</code> to keep its logs. When run from the command line this is not used - log messages come out on the terminal. When running as a daemon this is where the log information will go. In the example above I created a directory specifically for hapush to run from, although there is no reason you cant keep it in the <code class="highlighter-rouge">hapush</code> subdirectory of the cloned repository. For Docker installs this should be set to <code class="highlighter-rouge">/app/hapush/hapush.log</code></li>
</ul>
<h1>Running hapush</h1>
<p>For a manual installation you can then run hapush from the command line as follows:</p>
<div class="language-bash highlighter-rouge"><pre class="highlight"><code><span class="gp">$ </span>./hapush.py hapush.cfg
</code></pre>
</div>
<p>For docker installs, hapush will be started automatically when you run the startup command.</p>
<p>If all is well, you should start to see <code class="highlighter-rouge">hapush</code> responding to events as they occur. For a docker install you should see these messages in hapush/hapush.log</p>
<div class="highlighter-rouge"><pre class="highlight"><code>2016-06-19 10:05:59,693 INFO Reading dashboard: /srv/hass/src/hadashboard/dashboards/main.erb
2016-06-19 10:06:12,362 INFO switch.wendy_bedside -&gt; state = on, brightness = 50
2016-06-19 10:06:13,334 INFO switch.andrew_bedside -&gt; state = on, brightness = 50
2016-06-19 10:06:13,910 INFO script.night -&gt; Night
2016-06-19 10:06:13,935 INFO script.night_quiet -&gt; Night
2016-06-19 10:06:13,959 INFO script.day -&gt; Night
2016-06-19 10:06:13,984 INFO script.evening -&gt; Night
2016-06-19 10:06:14,008 INFO input_select.house_mode -&gt; Night
2016-06-19 10:06:14,038 INFO script.morning -&gt; Night
2016-06-19 10:06:21,624 INFO script.night -&gt; Day
2016-06-19 10:06:21,649 INFO script.night_quiet -&gt; Day
2016-06-19 10:06:21,674 INFO script.day -&gt; Day
2016-06-19 10:06:21,698 INFO script.evening -&gt; Day
2016-06-19 10:06:21,724 INFO input_select.house_mode -&gt; Day
2016-06-19 10:06:21,748 INFO script.morning -&gt; Day
2016-06-19 10:06:31,084 INFO switch.andrew_bedside -&gt; state = off, brightness = 30
2016-06-19 10:06:32,501 INFO switch.wendy_bedside -&gt; state = off, brightness = 30
2016-06-19 10:06:52,280 INFO sensor.side_multisensor_luminance_25 -&gt; 871.0
2016-06-19 10:07:50,574 INFO sensor.side_temp_corrected -&gt; 70.7
2016-06-19 10:07:51,478 INFO sensor.side_multisensor_relative_humidity_25 -&gt; 52.0
</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">HADashboard</h1>
<ul class="divided sidebar-menu">
<li><a href='/ecosystem/hadashboard/'>General </a></li>
<li><a href='/ecosystem/hadashboard/installation/'>Installation </a></li>
<li><a href='/ecosystem/hadashboard/dash_config/'>Dashboard Configuration </a></li>
<li><a class='active' href='/ecosystem/hadashboard/hapush/'>HAPush </a></li>
<li><a href='/ecosystem/hadashboard/reboot/'>Reboot </a></li>
<li><a href='/ecosystem/hadashboard/updating/'>Updating HADashboard </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>.<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>
</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>
</body>
</html>

View file

@ -1,164 +0,0 @@
<!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>HADashboard - Home Assistant</title>
<meta name="author" content="Home Assistant">
<meta name="description" content="HADashboard is a dashboard for Home Assistant that is intended to be wall mounted, and is optimized for distance viewing.">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/ecosystem/hadashboard/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="HADashboard">
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/ecosystem/hadashboard/">
<meta property="og:type" content="article">
<meta property="og:description" content="HADashboard is a dashboard for Home Assistant that is intended to be wall mounted, and is optimized for distance viewing.">
<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="HADashboard">
<meta name="twitter:description" content="HADashboard is a dashboard for Home Assistant that is intended to be wall mounted, and is optimized for distance viewing.">
<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>
<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="/ecosystem/">Ecosystem</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>
</ul>
</nav>
</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">
HADashboard
</h1>
</header>
<hr class="divider">
<p>HADashboard is a dashboard for <a href="https://home-assistant.io/">Home Assistant</a> that is intended to be wall mounted, and is optimized for distance viewing.</p>
<p class="img">
<img src="/images/hadashboard/dash.png" />
Sample Dashboard
</p>
<p>HADashboard was originally created by the excellent work of <a href="https://github.com/FlorianZ/hadashboard">FlorianZ</a> for use with the SmartThings Home Automation system, with notable contributions from the <a href="https://community.smartthings.com/t/home-automation-dashboard/4926">SmartThings Community</a>. I would also like to acknowledge contributions made by <a href="https://github.com/zpriddy/SmartThings_PyDash">zipriddy</a>. This is my port of hadashboard to 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="section">
<h1 class="title delta">HADashboard</h1>
<ul class="divided sidebar-menu">
<li><a class='active' href='/ecosystem/hadashboard/'>General </a></li>
<li><a href='/ecosystem/hadashboard/installation/'>Installation </a></li>
<li><a href='/ecosystem/hadashboard/dash_config/'>Dashboard Configuration </a></li>
<li><a href='/ecosystem/hadashboard/hapush/'>HAPush </a></li>
<li><a href='/ecosystem/hadashboard/reboot/'>Reboot </a></li>
<li><a href='/ecosystem/hadashboard/updating/'>Updating HADashboard </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>.<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>
</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>
</body>
</html>

View file

@ -1,287 +0,0 @@
<!doctype html>
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]> <html class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html> <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Installation - Home Assistant</title>
<meta name="author" content="Home Assistant">
<meta name="description" content="Installation">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/ecosystem/hadashboard/installation/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="Installation">
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/ecosystem/hadashboard/installation/">
<meta property="og:type" content="article">
<meta property="og:description" content="Installation">
<meta property="og:image" content="https://home-assistant.io/images/default-social.png">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@home_assistant">
<meta name="twitter:title" content="Installation">
<meta name="twitter:description" content="Installation">
<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>
<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="/ecosystem/">Ecosystem</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>
</ul>
</nav>
</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">
Installation
</h1>
</header>
<hr class="divider">
<p>Installation can be performed using Docker (Contributed by <a href="https://github.com/marijngiesen">marijngiesen</a>) or manually if Docker doesnt work for you. We also have a Raspberry PI version of Docker contributed by <a href="https://community.home-assistant.io/users/snizzleorg/activity">snizzleorg</a></p>
<h2>Using Docker (Non Raspian)</h2>
<p>Assuming you already have Docker installed, installation is fairly easy.</p>
<h3>Clone the Repository</h3>
<p>Clone the <strong>hadashboard</strong> repository to the current local directory on your machine.</p>
<div class="language-bash highlighter-rouge"><pre class="highlight"><code><span class="gp">$ </span>git clone https://github.com/home-assistant/hadashboard.git
</code></pre>
</div>
<p>Change your working directory to the repository root. Moving forward, we will be working from this directory.</p>
<div class="language-bash highlighter-rouge"><pre class="highlight"><code><span class="gp">$ </span><span class="nb">cd </span>hadashboard
</code></pre>
</div>
<h3>Build the docker image</h3>
<div class="language-bash highlighter-rouge"><pre class="highlight"><code><span class="gp">$ </span>docker build -t hadashboard .
</code></pre>
</div>
<p>When the build completes, you can run the dashboard with:</p>
<div class="language-bash highlighter-rouge"><pre class="highlight"><code><span class="gp">$ </span>docker run --name<span class="o">=</span><span class="s2">"hadashboard"</span> -d -v &lt;path_to_hadashboard&gt;/dashboards:/app/dashboards -v &lt;path_to_hadashboard&gt;/lib/ha_conf.rb:/app/lib/ha_conf.rb -v &lt;path_to_hadashboard&gt;/hapush:/app/hapush --net<span class="o">=</span>host hadashboard
</code></pre>
</div>
<p>This will use all of the same configuration files as specified below in the configuration sections, although you will need to make a few changes to the <code class="highlighter-rouge">hapush</code> configuration to match the dockers filesystem, detailed below.</p>
<p>By default, the docker instance should pick up your timezone but if you want to explicitly set it you can add an environment variable for your specific zone as follows:</p>
<div class="highlighter-rouge"><pre class="highlight"><code> -e "TZ=Europe/Amsterdam"
```
### Docker on Raspberry Pi
Raspberry pi needs to use a different docker build file so the build command is slightly different:
```bash
$ docker build -f Docker-raspi/Dockerfile -t hadashboard .
</code></pre>
</div>
<p>Apart from that the other steps are identical.</p>
<p><em>Note - this is pretty slow even on a PI3, be prepared for it to take an hour or two to build all of the extensions and install everything</em></p>
<h2>Manual Installation</h2>
<h3>Clone the Repository</h3>
<p>Clone the <strong>hadashboard</strong> repository to the current local directory on your machine.</p>
<div class="language-bash highlighter-rouge"><pre class="highlight"><code><span class="gp">$ </span>git clone https://github.com/home-assistant/hadashboard.git
</code></pre>
</div>
<p>Change your working directory to the repository root. Moving forward, we will be working from this directory.</p>
<div class="language-bash highlighter-rouge"><pre class="highlight"><code><span class="gp">$ </span><span class="nb">cd </span>hadashboard
</code></pre>
</div>
<h3>2. Install Dashing and prereqs</h3>
<p>Essentially, you want to make sure that you have Ruby installed on your local machine. Then, install the Dashing gem:</p>
<div class="language-bash highlighter-rouge"><pre class="highlight"><code><span class="gp">$ </span>gem install dashing
</code></pre>
</div>
<p>From your repository root, make sure that all dependencies are available.</p>
<p>Note: on some systems you may also need to install bundler:</p>
<div class="language-bash highlighter-rouge"><pre class="highlight"><code><span class="gp">$ </span>gem install bundler
</code></pre>
</div>
<p>When installed run it:</p>
<div class="language-bash highlighter-rouge"><pre class="highlight"><code><span class="gp">$ </span>bundle
</code></pre>
</div>
<p>Bundle will now install all the ruby prereqs for running dashing.</p>
<p>Note: Prereqs will vary across different machines. So far users have reported requirements for some additional installs to allow the bundle to complete succesfully:</p>
<ul>
<li>ruby-dev - <code class="highlighter-rouge">sudo apt-get install ruby-dev</code></li>
<li>node-js - <code class="highlighter-rouge">sudo apt-get install nodejs</code></li>
<li>execjs gem - <code class="highlighter-rouge">gem install execjs</code></li>
</ul>
<p>You will need to research what works on your particular architecture and also bear in mind that version numbers may change over time.</p>
<p>Note: This is currently running on various versions of Ruby and there are no strong dependencies however your mileage may vary.</p>
<p>Next, in the <code class="highlighter-rouge">./lib</code> directory, copy the ha_conf.rb.example file to ha_conf.rb and edit its settings to reflect your installation, pointing to the machine Home Assistant is running on and adding your api_key.</p>
<div class="language-ruby highlighter-rouge"><pre class="highlight"><code><span class="vg">$ha_url</span> <span class="o">=</span> <span class="s2">"http://192.168.1.10:8123"</span>
<span class="vg">$ha_apikey</span> <span class="o">=</span> <span class="s2">"your key"</span>
</code></pre>
</div>
<ul>
<li><code class="highlighter-rouge">$ha_url</code> is a reference to your home assistant installation and must include the correct port number and scheme (<code class="highlighter-rouge">http://</code> or <code class="highlighter-rouge">https://</code> as appropriate)</li>
<li><code class="highlighter-rouge">$ha_apikey</code> should be set to your key if you have one, otherwise it can remain blank.</li>
</ul>
<p>The file also contains example newsfeeds for the News widget:</p>
<div class="language-ruby highlighter-rouge"><pre class="highlight"><code><span class="vg">$news_feeds</span> <span class="o">=</span> <span class="p">{</span>
<span class="s2">"Traffic"</span> <span class="o">=&gt;</span> <span class="s2">"http://api.sr.se/api/rss/traffic/2863"</span><span class="p">,</span>
<span class="s2">"News"</span> <span class="o">=&gt;</span> <span class="s2">"http://feeds.bbci.co.uk/news/rss.xml"</span><span class="p">,</span>
<span class="p">}</span>
</code></pre>
</div>
<p>You can leave these alone for now or if you prefer customize them as described in the News widget section below.</p>
<p>When you are done, you can start a local webserver like this:</p>
<div class="language-bash highlighter-rouge"><pre class="highlight"><code><span class="gp">$ </span>dashing start
</code></pre>
</div>
<p>Point your browser to <strong>http://localhost:3030</strong> to access the hadashboard on your local machine.and you should see the supplied default dashboard.</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="section">
<h1 class="title delta">HADashboard</h1>
<ul class="divided sidebar-menu">
<li><a href='/ecosystem/hadashboard/'>General </a></li>
<li><a class='active' href='/ecosystem/hadashboard/installation/'>Installation </a></li>
<li><a href='/ecosystem/hadashboard/dash_config/'>Dashboard Configuration </a></li>
<li><a href='/ecosystem/hadashboard/hapush/'>HAPush </a></li>
<li><a href='/ecosystem/hadashboard/reboot/'>Reboot </a></li>
<li><a href='/ecosystem/hadashboard/updating/'>Updating HADashboard </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>.<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>
</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>
</body>
</html>

View file

@ -1,160 +0,0 @@
<!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>Reboot - Home Assistant</title>
<meta name="author" content="Home Assistant">
<meta name="description" content="Reboot">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/ecosystem/hadashboard/reboot/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="Reboot">
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/ecosystem/hadashboard/reboot/">
<meta property="og:type" content="article">
<meta property="og:description" content="Reboot">
<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="Reboot">
<meta name="twitter:description" content="Reboot">
<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>
<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="/ecosystem/">Ecosystem</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>
</ul>
</nav>
</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">
Reboot
</h1>
</header>
<hr class="divider">
<p>To run Dashing and <code class="highlighter-rouge">hapush</code> at reboot, I have provided sample init scripts in the <code class="highlighter-rouge">./init</code> directory. These have been tested on a Raspberry PI - your mileage may vary on other systems.</p>
<p>Instructions for automaticaly starting a docker install can be found (here)[https://docs.docker.com/engine/admin/host_integration/].</p>
<p>For docker you may also want to use docker-compose - there is a sample compose file in the <code class="highlighter-rouge">./init</code> directory.</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="section">
<h1 class="title delta">HADashboard</h1>
<ul class="divided sidebar-menu">
<li><a href='/ecosystem/hadashboard/'>General </a></li>
<li><a href='/ecosystem/hadashboard/installation/'>Installation </a></li>
<li><a href='/ecosystem/hadashboard/dash_config/'>Dashboard Configuration </a></li>
<li><a href='/ecosystem/hadashboard/hapush/'>HAPush </a></li>
<li><a class='active' href='/ecosystem/hadashboard/reboot/'>Reboot </a></li>
<li><a href='/ecosystem/hadashboard/updating/'>Updating HADashboard </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>.<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>
</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>
</body>
</html>

View file

@ -1,167 +0,0 @@
<!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>Updating HADashboard - Home Assistant</title>
<meta name="author" content="Home Assistant">
<meta name="description" content="Updating HADashboard">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/ecosystem/hadashboard/updating/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="Updating HADashboard">
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/ecosystem/hadashboard/updating/">
<meta property="og:type" content="article">
<meta property="og:description" content="Updating HADashboard">
<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="Updating HADashboard">
<meta name="twitter:description" content="Updating HADashboard">
<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>
<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="/ecosystem/">Ecosystem</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>
</ul>
</nav>
</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">
Updating HADashboard
</h1>
</header>
<hr class="divider">
<p>To update the dashboard after new code has been released, just run the following command to update your copy:</p>
<div class="language-bash highlighter-rouge"><pre class="highlight"><code><span class="gp">$ </span>git pull origin
</code></pre>
</div>
<p>For some releases you may also need to rerun the bundle command:</p>
<div class="language-bash highlighter-rouge"><pre class="highlight"><code><span class="gp">$ </span>bundle
</code></pre>
</div>
<p>For docker users, you will also need to rerun the docker build process.</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="section">
<h1 class="title delta">HADashboard</h1>
<ul class="divided sidebar-menu">
<li><a href='/ecosystem/hadashboard/'>General </a></li>
<li><a href='/ecosystem/hadashboard/installation/'>Installation </a></li>
<li><a href='/ecosystem/hadashboard/dash_config/'>Dashboard Configuration </a></li>
<li><a href='/ecosystem/hadashboard/hapush/'>HAPush </a></li>
<li><a href='/ecosystem/hadashboard/reboot/'>Reboot </a></li>
<li><a class='active' href='/ecosystem/hadashboard/updating/'>Updating HADashboard </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>.<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>
</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>
</body>
</html>

View file

@ -1,154 +0,0 @@
<!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>Ecosystem - Home Assistant</title>
<meta name="author" content="Home Assistant">
<meta name="description" content="External tools for Home Assistant">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/ecosystem/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="Ecosystem">
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/ecosystem/">
<meta property="og:type" content="website">
<meta property="og:description" content="External tools for Home 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="Ecosystem">
<meta name="twitter:description" content="External tools for Home 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>
<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="/ecosystem/">Ecosystem</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>
</ul>
</nav>
</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">
Ecosystem
</h1>
</header>
<hr class="divider">
<p>Ecosystem includes documentation for related tools and projects that extend Home Assistant to new platforms and systems. Use the sidebar to discover documentation for projects.</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="section">
<h1 class="title delta">Ecosystem</h1>
<ul class="divided">
<li><a href="/ecosystem/hadashboard/">HADashboard</a></li>
<li><a href="/ecosystem/nginx/">NGINX</a></li>
<li><a href="/ecosystem/scenegen/">SceneGen</a></li>
<li><a href="/ecosystem/ios/">iOS</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>.<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>
</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>
</body>
</html>

View file

@ -1,172 +0,0 @@
<!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>ios.conf - Home Assistant</title>
<meta name="author" content="Home Assistant">
<meta name="description" content="Describes the contents and purpose of ios.conf">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/ecosystem/ios/devices_file/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="ios.conf">
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/ecosystem/ios/devices_file/">
<meta property="og:type" content="article">
<meta property="og:description" content="Describes the contents and purpose of ios.conf">
<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="ios.conf">
<meta name="twitter:description" content="Describes the contents and purpose of ios.conf">
<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>
<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="/ecosystem/">Ecosystem</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>
</ul>
</nav>
</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/_ecosystem/ios/devices_file.markdown'>Edit this page on GitHub</a></div>
<header>
<h1 class="title indent">
ios.conf
</h1>
</header>
<hr class="divider">
<p>The <code class="highlighter-rouge">ios.conf</code> file contains the most recent state of all registered iOS devices. Deleting this file will not disable the devices and the file will be recreated the next time a new device is connected or an existing one reconnects.</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="section">
<h1 class="title delta">iOS Guide</h1>
<ul class="divided sidebar-menu">
<li>
<a href='/ecosystem/ios/'>General </a>
</li>
<li>
<a href='/ecosystem/ios/notifications/'>Push Notifications </a>
<ul>
<li><a href='/ecosystem/ios/notifications/basic/'>Basic notifications </a></li>
<li>Advanced notifications</li>
<ul>
<li><a href='/ecosystem/ios/notifications/attachments/'>Attachments </a></li>
<li><a href='/ecosystem/ios/notifications/content_extensions/'>Dynamic content </a></li>
<li><a href='/ecosystem/ios/notifications/actions/'>Actionable notifications </a></li>
<li><a href='/ecosystem/ios/notifications/requesting_location_updates/'>Requesting location updates </a></li>
</ul>
<li><a href='/ecosystem/ios/notifications/examples/'>Examples </a></li>
<li><a href='/ecosystem/ios/notifications/sounds/'>Sounds </a></li>
<li><a href='/ecosystem/ios/notifications/architecture/'>Architecture </a></li>
<li><a href='/ecosystem/ios/notifications/privacy_security_rate_limits/'>Privacy, rate limiting and security </a></li>
</ul>
</li>
<li><a href='/ecosystem/ios/location/'>Location Tracking </a></li>
<li><a href='/ecosystem/ios/integration/'>Integration with other apps </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>.<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>
</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>
</body>
</html>

View file

@ -1,172 +0,0 @@
<!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>Features - Home Assistant</title>
<meta name="author" content="Home Assistant">
<meta name="description" content="Describes the features of Home Assistant for iOS">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/ecosystem/ios/features/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="Features">
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/ecosystem/ios/features/">
<meta property="og:type" content="article">
<meta property="og:description" content="Describes the features of Home Assistant for iOS">
<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="Features">
<meta name="twitter:description" content="Describes the features of Home Assistant for iOS">
<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>
<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="/ecosystem/">Ecosystem</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>
</ul>
</nav>
</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/_ecosystem/ios/features.markdown'>Edit this page on GitHub</a></div>
<header>
<h1 class="title indent">
Features
</h1>
</header>
<hr class="divider">
<p>Coming soon</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="section">
<h1 class="title delta">iOS Guide</h1>
<ul class="divided sidebar-menu">
<li>
<a href='/ecosystem/ios/'>General </a>
</li>
<li>
<a href='/ecosystem/ios/notifications/'>Push Notifications </a>
<ul>
<li><a href='/ecosystem/ios/notifications/basic/'>Basic notifications </a></li>
<li>Advanced notifications</li>
<ul>
<li><a href='/ecosystem/ios/notifications/attachments/'>Attachments </a></li>
<li><a href='/ecosystem/ios/notifications/content_extensions/'>Dynamic content </a></li>
<li><a href='/ecosystem/ios/notifications/actions/'>Actionable notifications </a></li>
<li><a href='/ecosystem/ios/notifications/requesting_location_updates/'>Requesting location updates </a></li>
</ul>
<li><a href='/ecosystem/ios/notifications/examples/'>Examples </a></li>
<li><a href='/ecosystem/ios/notifications/sounds/'>Sounds </a></li>
<li><a href='/ecosystem/ios/notifications/architecture/'>Architecture </a></li>
<li><a href='/ecosystem/ios/notifications/privacy_security_rate_limits/'>Privacy, rate limiting and security </a></li>
</ul>
</li>
<li><a href='/ecosystem/ios/location/'>Location Tracking </a></li>
<li><a href='/ecosystem/ios/integration/'>Integration with other apps </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>.<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>
</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>
</body>
</html>

View file

@ -1,229 +0,0 @@
<!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>iOS - Home Assistant</title>
<meta name="author" content="Home Assistant">
<meta name="description" content="Documentation about the Home Assistant iOS app.">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/ecosystem/ios/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="iOS">
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/ecosystem/ios/">
<meta property="og:type" content="article">
<meta property="og:description" content="Documentation about the Home Assistant iOS app.">
<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="iOS">
<meta name="twitter:description" content="Documentation about the Home Assistant iOS app.">
<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>
<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="/ecosystem/">Ecosystem</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>
</ul>
</nav>
</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">
iOS
</h1>
</header>
<hr class="divider">
<p>The Home Assistant for iOS app offers a companion app for iOS which is deeply integrated into both Home Assistant and iOS. Its basic features include:</p>
<ul>
<li>Advanced push notifications</li>
<li>Location tracking</li>
<li>Basic control of all Home Assistant entities</li>
<li>Integration with third party apps</li>
</ul>
<p class="note warning">
Currently, the app is only available via a closed beta. It will be on the App Store within the next few weeks.
</p>
<p class="img">
<img src="/images/ios/control1.png" width="310" height="552" />
An example of a Home Assistant group as seen in the iOS app.
</p>
<h2>Basic requirements</h2>
<ul>
<li>iOS device running at least iOS 9, but iOS 10 is greatly preferred.</li>
<li>Home Assistant 0.31.1 or higher for push notification support.</li>
<li>SSL is strongly recommended. Self-signed SSL certificates will not work due to Apples limitations.</li>
</ul>
<p>The <code class="highlighter-rouge">ios</code> component is the companion component for the Home Assistant iOS app. While not required, adding the <code class="highlighter-rouge">ios</code> component to your setup will greatly enhance the iOS app with new notification, location and sensor functions not possible with a standalone app.</p>
<p>Loading the <code class="highlighter-rouge">ios</code> component will also load the <a href="/components/device_tracker"><code class="highlighter-rouge">device_tracker</code></a> and <a href="/components/zeroconf"><code class="highlighter-rouge">zeroconf</code></a> components. It also provides functionality required for the iOS notify platform but will not automatically load the <code class="highlighter-rouge">notify</code> component or platform as of 0.31.1. You must manually load it. See the <a href="/ecosystem/ios/notifications/">iOS notify platform</a> for more information.</p>
<h2><a class="title-link" name="setup" href="#setup"></a> Setup</h2>
<h3>Automated Setup</h3>
<p>The <code class="highlighter-rouge">ios</code> component will automatically be loaded under the following circumstances:</p>
<ol>
<li>The <a href="/components/discovery"><code class="highlighter-rouge">discovery</code></a> component is enabled.</li>
<li>You have just installed the app and are at the getting started screen.</li>
</ol>
<p>Automated discovery and component loaded can only happen at first install of the app. You may need to wait a few minutes for the iOS component to load as the <code class="highlighter-rouge">discovery</code> component only scans the network every 5 minutes.</p>
<h3>Manual Setup</h3>
<p>You may also manually load the <code class="highlighter-rouge">ios</code> component by adding the following to your configuration:</p>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">ios</span><span class="pi">:</span>
</code></pre>
</div>
<p>Configuration variables:</p>
<ul>
<li><strong>push</strong> (<em>Optional</em>): Push notification configuration. See the <a href="/ecosystem/ios/notifications/">iOS <code class="highlighter-rouge">notify</code> platform</a> for more information.</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="section">
<h1 class="title delta">iOS Guide</h1>
<ul class="divided sidebar-menu">
<li>
<a class='active' href='/ecosystem/ios/'>General </a>
</li>
<li>
<a href='/ecosystem/ios/notifications/'>Push Notifications </a>
<ul>
<li><a href='/ecosystem/ios/notifications/basic/'>Basic notifications </a></li>
<li>Advanced notifications</li>
<ul>
<li><a href='/ecosystem/ios/notifications/attachments/'>Attachments </a></li>
<li><a href='/ecosystem/ios/notifications/content_extensions/'>Dynamic content </a></li>
<li><a href='/ecosystem/ios/notifications/actions/'>Actionable notifications </a></li>
<li><a href='/ecosystem/ios/notifications/requesting_location_updates/'>Requesting location updates </a></li>
</ul>
<li><a href='/ecosystem/ios/notifications/examples/'>Examples </a></li>
<li><a href='/ecosystem/ios/notifications/sounds/'>Sounds </a></li>
<li><a href='/ecosystem/ios/notifications/architecture/'>Architecture </a></li>
<li><a href='/ecosystem/ios/notifications/privacy_security_rate_limits/'>Privacy, rate limiting and security </a></li>
</ul>
</li>
<li><a href='/ecosystem/ios/location/'>Location Tracking </a></li>
<li><a href='/ecosystem/ios/integration/'>Integration with other apps </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>.<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>
</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>
</body>
</html>

View file

@ -1,185 +0,0 @@
<!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>Integration - Home Assistant</title>
<meta name="author" content="Home Assistant">
<meta name="description" content="Examples of how Home Assistant for iOS can be integrated with other apps">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/ecosystem/ios/integration/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="Integration">
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/ecosystem/ios/integration/">
<meta property="og:type" content="article">
<meta property="og:description" content="Examples of how Home Assistant for iOS can be integrated with other apps">
<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="Integration">
<meta name="twitter:description" content="Examples of how Home Assistant for iOS can be integrated with other apps">
<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>
<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="/ecosystem/">Ecosystem</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>
</ul>
</nav>
</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/_ecosystem/ios/integration.markdown'>Edit this page on GitHub</a></div>
<header>
<h1 class="title indent">
Integration
</h1>
</header>
<hr class="divider">
<p>Home Assistant for iOS supports opening from other apps via URL.</p>
<p>Query parameters are passed as a dictionary in the call.</p>
<h2>Call service</h2>
<p>Example: <code class="highlighter-rouge">homeassistant://call_service/device_tracker.see?entity_id=device_tracker.entity</code></p>
<h2>Fire event</h2>
<p>Example <code class="highlighter-rouge">homeassistant://fire_event/custom_event?entity_id=device_tracker.entity</code></p>
<h2>Send one shot location</h2>
<p>Example: <code class="highlighter-rouge">homeassistant://send_location/</code></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="section">
<h1 class="title delta">iOS Guide</h1>
<ul class="divided sidebar-menu">
<li>
<a href='/ecosystem/ios/'>General </a>
</li>
<li>
<a href='/ecosystem/ios/notifications/'>Push Notifications </a>
<ul>
<li><a href='/ecosystem/ios/notifications/basic/'>Basic notifications </a></li>
<li>Advanced notifications</li>
<ul>
<li><a href='/ecosystem/ios/notifications/attachments/'>Attachments </a></li>
<li><a href='/ecosystem/ios/notifications/content_extensions/'>Dynamic content </a></li>
<li><a href='/ecosystem/ios/notifications/actions/'>Actionable notifications </a></li>
<li><a href='/ecosystem/ios/notifications/requesting_location_updates/'>Requesting location updates </a></li>
</ul>
<li><a href='/ecosystem/ios/notifications/examples/'>Examples </a></li>
<li><a href='/ecosystem/ios/notifications/sounds/'>Sounds </a></li>
<li><a href='/ecosystem/ios/notifications/architecture/'>Architecture </a></li>
<li><a href='/ecosystem/ios/notifications/privacy_security_rate_limits/'>Privacy, rate limiting and security </a></li>
</ul>
</li>
<li><a href='/ecosystem/ios/location/'>Location Tracking </a></li>
<li><a class='active' href='/ecosystem/ios/integration/'>Integration with other apps </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>.<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>
</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>
</body>
</html>

View file

@ -1,199 +0,0 @@
<!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>Location - Home Assistant</title>
<meta name="author" content="Home Assistant">
<meta name="description" content="Documentation about the location tracking abilities in Home Assistant for iOS">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/ecosystem/ios/location/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="Location">
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/ecosystem/ios/location/">
<meta property="og:type" content="article">
<meta property="og:description" content="Documentation about the location tracking abilities in Home Assistant for iOS">
<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="Location">
<meta name="twitter:description" content="Documentation about the location tracking abilities in Home Assistant for iOS">
<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>
<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="/ecosystem/">Ecosystem</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>
</ul>
</nav>
</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/_ecosystem/ios/location.markdown'>Edit this page on GitHub</a></div>
<header>
<h1 class="title indent">
Location
</h1>
</header>
<hr class="divider">
<h2><a class="title-link" name="location-tracking-when-outside-a-home-assistant-zone" href="#location-tracking-when-outside-a-home-assistant-zone"></a> Location tracking when outside a Home Assistant zone</h2>
<p>Home Assistant for iOS receives <em>significant location updates</em> from iOS. Whenever an update is received, it is sent to Home Assistant. Roughly, an update is received everytime that your device transfers to a new cellular tower, a significant amount of time has passed (usually a couple hours) or a connection state changes and the system notices your location recently changed.</p>
<p>Apple <a href="https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/LocationAwarenessPG/CoreLocation/CoreLocation.html#//apple_ref/doc/uid/TP40009497-CH2-SW9">defines</a> significant significant-change location updates as:</p>
<blockquote>
<p>The significant-change location service delivers updates only when there has been a significant change in the devices location, such as 500 meters or more.</p>
</blockquote>
<p>They also say in the <a href="https://developer.apple.com/library/content/documentation/Performance/Conceptual/EnergyGuide-iOS/LocationBestPractices.html#//apple_ref/doc/uid/TP40015243-CH24-SW4">Energy Efficiency Guide</a>:</p>
<blockquote>
<p>Significant-change location updates wake the system and your app once every 15 minutes, at minimum, even if no location changes have occurred.</p>
</blockquote>
<p>Finally, I think this answer from <a href="http://stackoverflow.com/a/13331625/486182">Stack Overflow</a> says it best:</p>
<blockquote>
<p>The significant location change is the least accurate of all the location monitoring types. It only gets its updates when there is a cell tower transition or change. This can mean a varying level of accuracy and updates based on where the user is. City area, more updates with more towers. Out of town, interstate, fewer towers and changes.</p>
</blockquote>
<p>Whats the real story on significant-change location updates? Who knows, because Apple keeps it private.</p>
<h2><a class="title-link" name="location-tracking-in-home-assistant-zones" href="#location-tracking-in-home-assistant-zones"></a> Location tracking in Home Assistant zones</h2>
<p>At launch, Home Assistant for iOS sets up geofences for all zones in your Home Assistant configuration. Enter and exit notifications are sent to 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="section">
<h1 class="title delta">iOS Guide</h1>
<ul class="divided sidebar-menu">
<li>
<a href='/ecosystem/ios/'>General </a>
</li>
<li>
<a href='/ecosystem/ios/notifications/'>Push Notifications </a>
<ul>
<li><a href='/ecosystem/ios/notifications/basic/'>Basic notifications </a></li>
<li>Advanced notifications</li>
<ul>
<li><a href='/ecosystem/ios/notifications/attachments/'>Attachments </a></li>
<li><a href='/ecosystem/ios/notifications/content_extensions/'>Dynamic content </a></li>
<li><a href='/ecosystem/ios/notifications/actions/'>Actionable notifications </a></li>
<li><a href='/ecosystem/ios/notifications/requesting_location_updates/'>Requesting location updates </a></li>
</ul>
<li><a href='/ecosystem/ios/notifications/examples/'>Examples </a></li>
<li><a href='/ecosystem/ios/notifications/sounds/'>Sounds </a></li>
<li><a href='/ecosystem/ios/notifications/architecture/'>Architecture </a></li>
<li><a href='/ecosystem/ios/notifications/privacy_security_rate_limits/'>Privacy, rate limiting and security </a></li>
</ul>
</li>
<li><a class='active' href='/ecosystem/ios/location/'>Location Tracking </a></li>
<li><a href='/ecosystem/ios/integration/'>Integration with other apps </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>.<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>
</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>
</body>
</html>

View file

@ -1,316 +0,0 @@
<!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>Actionable notifications - Home Assistant</title>
<meta name="author" content="Home Assistant">
<meta name="description" content="Making push notifications a two way system">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/ecosystem/ios/notifications/actions/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="Actionable notifications">
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/ecosystem/ios/notifications/actions/">
<meta property="og:type" content="article">
<meta property="og:description" content="Making push notifications a two way system">
<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="Actionable notifications">
<meta name="twitter:description" content="Making push notifications a two way system">
<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>
<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="/ecosystem/">Ecosystem</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>
</ul>
</nav>
</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/_ecosystem/ios/notifications/actions.markdown'>Edit this page on GitHub</a></div>
<header>
<h1 class="title indent">
Actionable Notifications
</h1>
</header>
<hr class="divider">
<p>Actionable notifications allow you to attach 1-4 custom buttons to a notification. When one of the actions is selected Home Assistant will be notified which action was chosen. This allows you to build complex automations.</p>
<p>Examples of actionable notifications:</p>
<ul>
<li>A notification is sent whenever motion is detected in your home while you are away or asleep. You can add an action to Sound Alarm. When tapped, Home Assistant is notified that the <code class="highlighter-rouge">sound_alarm</code> action was selected. You can add an automation to sound the burglar alarm whenever this event is seen.</li>
<li>Someone rings your front door bell. You can send an action to lock or unlock your front door. When tapped, a notification is sent back to Home Assistant upon which you can build automations.</li>
<li>Send a notification whenever your garage door opens with actions to open and close the garage.</li>
</ul>
<p class="img">
<img src="/images/ios/actions.png" />
Actionable notifications allow the user to send a command back to Home Assistant.
</p>
<h2>Overview of how actionable notifications work</h2>
<p>In advance of sending a notification:</p>
<ol>
<li>Define a notification category in your Home Assistant configuration which contain 1-4 actions.</li>
<li>At launch iOS app requests notification categories from Home Assistant (can also be done manually in notification settings).</li>
</ol>
<p>When sending a notification:</p>
<ol>
<li>Send a notification with <code class="highlighter-rouge">data.push.category</code> set to a pre-defined notification category identifer.</li>
<li>Push notification delivered to device</li>
<li>User opens notification.</li>
<li>Action tapped</li>
<li>Identifier of action sent back to HA as the <code class="highlighter-rouge">actionName</code> property of the event <code class="highlighter-rouge">ios.notification_action_fired</code>, along with other metadata such as the device and category name.</li>
</ol>
<p class="img">
<img src="/images/ios/NotificationActionFlow.png" />
How the iOS device and Home Assistant work together to enable actionable notifications.
</p>
<h2>Definitions</h2>
<ul>
<li>Category - A category represents a type of notification that the app might receive. Think of it as a unique group of actions. A categories parameters include:</li>
<li>Action - An action consists of a button title and the information that iOS needs to notify the app when the action is selected. You create separate action objects for distinct action your app supports. An actions parameters include:</li>
</ul>
<h2><a class="title-link" name="category-parameters" href="#category-parameters"></a> Category parameters</h2>
<ul>
<li><strong>name</strong> (<em>Required</em>): A friendly name for this category.</li>
<li><strong>identifier</strong> (<em>Required</em>): A unique identifier for the category. Must be uppercase and have no special characters or spaces.</li>
<li><strong>action</strong> (<em>Required</em>): A list of actions.</li>
</ul>
<h2><a class="title-link" name="action-parameters" href="#action-parameters"></a> Action parameters</h2>
<ul>
<li><strong>identifier</strong> (<em>Required</em>): A unique identifier for this action. Must be uppercase and have no special characters or spaces. Only needs to be unique to the category, not unique globally.</li>
<li><strong>title</strong> (<em>Required</em>): The text to display on the button. Keep it short.</li>
<li><strong>activationMode</strong> (<em>Optional</em>): The mode in which to run the app when the action is performed. Setting this to <code class="highlighter-rouge">foreground</code> will make the app open after selecting. Default value is <code class="highlighter-rouge">background</code>.</li>
<li><strong>authenticationRequired</strong> (<em>Optional</em>): If a truthy value (<code class="highlighter-rouge">true</code>, <code class="highlighter-rouge">True</code>, <code class="highlighter-rouge">yes</code>, etc.) the user must unlock the device before the action is performed.</li>
<li><strong>destructive</strong> (<em>Optional</em>): When the value of this property is a truthy value, the system displays the corresponding button differently to indicate that the action is destructive (text color is red).</li>
<li><strong>behavior</strong> (<em>Optional</em>): When <code class="highlighter-rouge">textInput</code> the system provides a way for the user to enter a text response to be included with the notification. The entered text will be sent back to Home Assistant. Default value is <code class="highlighter-rouge">default</code>.</li>
<li><strong>textInputButtonTitle</strong> (<em>Optional</em>): The button label. <em>Required</em> if <code class="highlighter-rouge">behavior</code> is <code class="highlighter-rouge">textInput</code>.</li>
<li><strong>textInputPlaceholder</strong> (<em>Optional</em>): The placeholder text to show in the text input field. Only used if <code class="highlighter-rouge">behavior</code> is <code class="highlighter-rouge">textInput</code> and the device runs iOS 10.</li>
</ul>
<p>Heres a fully built example configuration:</p>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="s">ios</span><span class="pi">:</span>
<span class="s">push</span><span class="pi">:</span>
<span class="s">categories</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">name</span><span class="pi">:</span> <span class="s">Alarm</span>
<span class="s">identifier</span><span class="pi">:</span> <span class="s1">'</span><span class="s">ALARM'</span>
<span class="s">actions</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">identifier</span><span class="pi">:</span> <span class="s1">'</span><span class="s">SOUND_ALARM'</span>
<span class="s">title</span><span class="pi">:</span> <span class="s1">'</span><span class="s">Sound</span><span class="nv"> </span><span class="s">Alarm'</span>
<span class="s">activationMode</span><span class="pi">:</span> <span class="s1">'</span><span class="s">background'</span>
<span class="s">authenticationRequired</span><span class="pi">:</span> <span class="s">yes</span>
<span class="s">destructive</span><span class="pi">:</span> <span class="s">yes</span>
<span class="s">behavior</span><span class="pi">:</span> <span class="s1">'</span><span class="s">default'</span>
<span class="pi">-</span> <span class="s">identifier</span><span class="pi">:</span> <span class="s1">'</span><span class="s">SILENCE_ALARM'</span>
<span class="s">title</span><span class="pi">:</span> <span class="s1">'</span><span class="s">Silence</span><span class="nv"> </span><span class="s">Alarm'</span>
<span class="s">activationMode</span><span class="pi">:</span> <span class="s1">'</span><span class="s">background'</span>
<span class="s">authenticationRequired</span><span class="pi">:</span> <span class="s">yes</span>
<span class="s">destructive</span><span class="pi">:</span> <span class="s">no</span>
<span class="s">behavior</span><span class="pi">:</span> <span class="s1">'</span><span class="s">textInput'</span>
<span class="s">textInputButtonTitle</span><span class="pi">:</span> <span class="s1">'</span><span class="s">Silencio!'</span>
<span class="s">textInputPlaceholder</span><span class="pi">:</span> <span class="s1">'</span><span class="s">Placeholder'</span>
</code></pre>
</div>
<h2><a class="title-link" name="building-automations-for-notification-actions" href="#building-automations-for-notification-actions"></a> Building automations for notification actions</h2>
<p>Here is an example automation to send a notification with a category in the payload:</p>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="s">automation</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">alias</span><span class="pi">:</span> <span class="s">Notify iOS app</span>
<span class="s">trigger</span><span class="pi">:</span>
<span class="s">...</span>
<span class="s">action</span><span class="pi">:</span>
<span class="s">service</span><span class="pi">:</span> <span class="s">notify.ios_robbies_iphone_7_plus</span>
<span class="s">data</span><span class="pi">:</span>
<span class="s">message</span><span class="pi">:</span> <span class="s2">"</span><span class="s">Something</span><span class="nv"> </span><span class="s">happened</span><span class="nv"> </span><span class="s">at</span><span class="nv"> </span><span class="s">home!"</span>
<span class="s">data</span><span class="pi">:</span>
<span class="s">push</span><span class="pi">:</span>
<span class="s">badge</span><span class="pi">:</span> <span class="s">5</span>
<span class="s">sound</span><span class="pi">:</span> <span class="s">&lt;SOUND FILE HERE&gt;</span>
<span class="s">category</span><span class="pi">:</span> <span class="s2">"</span><span class="s">ALARM"</span> <span class="c1"># Needs to match the top level identifier you used in the ios configuration</span>
<span class="s">action_data</span><span class="pi">:</span> <span class="c1"># Anything passed in action_data will get echoed back to Home Assistant.</span>
<span class="s">entity_id</span><span class="pi">:</span> <span class="s">light.test</span>
<span class="s">my_custom_data</span><span class="pi">:</span> <span class="s">foo_bar</span>
</code></pre>
</div>
<p>When an action is selected an event named <code class="highlighter-rouge">ios.notification_action_fired</code> will be emitted on the Home Assistant event bus. Below is an example payload.</p>
<div class="language-json highlighter-rouge"><pre class="highlight"><code><span class="p">{</span><span class="w">
</span><span class="nt">"sourceDeviceName"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Robbie's iPhone 7 Plus"</span><span class="p">,</span><span class="w">
</span><span class="nt">"sourceDeviceID"</span><span class="p">:</span><span class="w"> </span><span class="s2">"robbies_iphone_7_plus"</span><span class="p">,</span><span class="w">
</span><span class="nt">"actionName"</span><span class="p">:</span><span class="w"> </span><span class="s2">"SOUND_ALARM"</span><span class="p">,</span><span class="w">
</span><span class="nt">"sourceDevicePushId"</span><span class="p">:</span><span class="w"> </span><span class="s2">"ab9f02fe-6ac6-47b8-adeb-5dd87b489156"</span><span class="p">,</span><span class="w">
</span><span class="nt">"textInput"</span><span class="p">:</span><span class="w"> </span><span class="s2">""</span><span class="p">,</span><span class="w">
</span><span class="nt">"actionData"</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>Heres an example automation for the given payload:</p>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="s">automation</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">alias</span><span class="pi">:</span> <span class="s">Sound the alarm</span>
<span class="s">trigger</span><span class="pi">:</span>
<span class="s">platform</span><span class="pi">:</span> <span class="s">event</span>
<span class="s">event_type</span><span class="pi">:</span> <span class="s">ios.notification_action_fired</span>
<span class="s">event_data</span><span class="pi">:</span>
<span class="s">actionName</span><span class="pi">:</span> <span class="s">SOUND_ALARM</span>
<span class="s">action</span><span class="pi">:</span>
<span class="s">...</span>
</code></pre>
</div>
<p>Notes:</p>
<ul>
<li><code class="highlighter-rouge">textInput</code> will only exist if <code class="highlighter-rouge">behavior</code> was set to <code class="highlighter-rouge">textInput</code>.</li>
<li><code class="highlighter-rouge">actionData</code> is a dictionary with parameters passed in the <code class="highlighter-rouge">action_data</code> dictionary of the <code class="highlighter-rouge">push</code> dictionary in the original notification.</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="section">
<h1 class="title delta">iOS Guide</h1>
<ul class="divided sidebar-menu">
<li>
<a href='/ecosystem/ios/'>General </a>
</li>
<li>
<a href='/ecosystem/ios/notifications/'>Push Notifications </a>
<ul>
<li><a href='/ecosystem/ios/notifications/basic/'>Basic notifications </a></li>
<li>Advanced notifications</li>
<ul>
<li><a href='/ecosystem/ios/notifications/attachments/'>Attachments </a></li>
<li><a href='/ecosystem/ios/notifications/content_extensions/'>Dynamic content </a></li>
<li><a class='active' href='/ecosystem/ios/notifications/actions/'>Actionable notifications </a></li>
<li><a href='/ecosystem/ios/notifications/requesting_location_updates/'>Requesting location updates </a></li>
</ul>
<li><a href='/ecosystem/ios/notifications/examples/'>Examples </a></li>
<li><a href='/ecosystem/ios/notifications/sounds/'>Sounds </a></li>
<li><a href='/ecosystem/ios/notifications/architecture/'>Architecture </a></li>
<li><a href='/ecosystem/ios/notifications/privacy_security_rate_limits/'>Privacy, rate limiting and security </a></li>
</ul>
</li>
<li><a href='/ecosystem/ios/location/'>Location Tracking </a></li>
<li><a href='/ecosystem/ios/integration/'>Integration with other apps </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>.<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>
</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>
</body>
</html>

View file

@ -1,175 +0,0 @@
<!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>Architecture - Home Assistant</title>
<meta name="author" content="Home Assistant">
<meta name="description" content="The push notification system layout">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/ecosystem/ios/notifications/architecture/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="Architecture">
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/ecosystem/ios/notifications/architecture/">
<meta property="og:type" content="article">
<meta property="og:description" content="The push notification system layout">
<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="Architecture">
<meta name="twitter:description" content="The push notification system layout">
<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>
<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="/ecosystem/">Ecosystem</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>
</ul>
</nav>
</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/_ecosystem/ios/notifications/architecture.markdown'>Edit this page on GitHub</a></div>
<header>
<h1 class="title indent">
Architecture
</h1>
</header>
<hr class="divider">
<p class="img">
<img src="/images/ios/PushNotificationLayout.png" />
The push notification infrastructure layout
</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="section">
<h1 class="title delta">iOS Guide</h1>
<ul class="divided sidebar-menu">
<li>
<a href='/ecosystem/ios/'>General </a>
</li>
<li>
<a href='/ecosystem/ios/notifications/'>Push Notifications </a>
<ul>
<li><a href='/ecosystem/ios/notifications/basic/'>Basic notifications </a></li>
<li>Advanced notifications</li>
<ul>
<li><a href='/ecosystem/ios/notifications/attachments/'>Attachments </a></li>
<li><a href='/ecosystem/ios/notifications/content_extensions/'>Dynamic content </a></li>
<li><a href='/ecosystem/ios/notifications/actions/'>Actionable notifications </a></li>
<li><a href='/ecosystem/ios/notifications/requesting_location_updates/'>Requesting location updates </a></li>
</ul>
<li><a href='/ecosystem/ios/notifications/examples/'>Examples </a></li>
<li><a href='/ecosystem/ios/notifications/sounds/'>Sounds </a></li>
<li><a class='active' href='/ecosystem/ios/notifications/architecture/'>Architecture </a></li>
<li><a href='/ecosystem/ios/notifications/privacy_security_rate_limits/'>Privacy, rate limiting and security </a></li>
</ul>
</li>
<li><a href='/ecosystem/ios/location/'>Location Tracking </a></li>
<li><a href='/ecosystem/ios/integration/'>Integration with other apps </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>.<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>
</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>
</body>
</html>

View file

@ -1,240 +0,0 @@
<!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>Notification attachments - Home Assistant</title>
<meta name="author" content="Home Assistant">
<meta name="description" content="Adding attachments to iOS push notifications">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/ecosystem/ios/notifications/attachments/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="Notification attachments">
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/ecosystem/ios/notifications/attachments/">
<meta property="og:type" content="article">
<meta property="og:description" content="Adding attachments to iOS push notifications">
<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="Notification attachments">
<meta name="twitter:description" content="Adding attachments to iOS push notifications">
<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>
<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="/ecosystem/">Ecosystem</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>
</ul>
</nav>
</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/_ecosystem/ios/notifications/attachments.markdown'>Edit this page on GitHub</a></div>
<header>
<h1 class="title indent">
Notification Attachments
</h1>
</header>
<hr class="divider">
<p>iOS 10 adds <em>attachments</em> to notifications. An attachment is an image, video, or audio file which is downloaded to the device when a notification is received and shown alongside the notification. A thumbnail is shown when the notification is not expanded. The full size attachment is shown when the notification is expanded.</p>
<p class="note">
To expand a notification on 3D Touch devices simply force touch any notification. On non-3D Touch devices swipe and tap the “View” button.
</p>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="pi">-</span> <span class="s">alias</span><span class="pi">:</span> <span class="s">Notify iOS app</span>
<span class="s">trigger</span><span class="pi">:</span>
<span class="s">...</span>
<span class="s">action</span><span class="pi">:</span>
<span class="s">service</span><span class="pi">:</span> <span class="s">notify.ios_robbies_iphone_7_plus</span>
<span class="s">data</span><span class="pi">:</span>
<span class="s">message</span><span class="pi">:</span> <span class="s2">"</span><span class="s">Something</span><span class="nv"> </span><span class="s">happened</span><span class="nv"> </span><span class="s">at</span><span class="nv"> </span><span class="s">home!"</span><span class="s2">"</span>
<span class="s">data:</span>
<span class="s">attachment:</span>
<span class="s">url:</span><span class="nv"> </span><span class="s">https://67.media.tumblr.com/ab04c028a5244377a0ab96e73915e584/tumblr_nfn3ztLjxk1tq4of6o1_400.gif</span>
<span class="s">content-type:</span><span class="nv"> </span><span class="s">gif</span>
<span class="s">hide-thumbnail:</span><span class="nv"> </span><span class="s">false</span>
</code></pre>
</div>
<p>Notes:</p>
<ul>
<li>The thumbnail of the notification will be the media at the <code class="highlighter-rouge">url</code>.</li>
<li>The notification content is the media at the <code class="highlighter-rouge">url</code>.</li>
<li>Attachment can be used with custom push notification categories.</li>
</ul>
<h2>Example</h2>
<p class="img">
<img src="/images/ios/attachment.png" />
An unexpanded push notification with an attachment.
</p>
<p class="img">
<img src="/images/ios/expanded_attachment.png" />
The same notification but expanded to show the full size attachment
</p>
<h2>Supported media types</h2>
<p>If the attachment does not appear please ensure it is in one of the following formats:</p>
<h3>Audio attachments</h3>
<p>Maximum file size: 5 MB</p>
<p>Allowed Formats: AIFF, WAV, MP3, MPEG4 Audio</p>
<h3>Image attachments</h3>
<p>Maximum file size: 10 MB</p>
<p>Allowed Formats: JPEG, GIF, PNG</p>
<h3>Video attachments</h3>
<p>Maximum file size: 50 MB</p>
<p>Allowed Formats: MPEG, MPEG2, MPEG4, AVI</p>
<h2>Configuration</h2>
<ul>
<li><strong>url</strong> (<em>Required</em>): The URL of content to use as the attachment. This URL <em>must</em> be accessible from the Internet, or the receiving device must be on the same network as the hosted content.</li>
<li><strong>content-type</strong> (<em>Optional</em>): By default, the extension of the URL will be checked to determine the filetype. If there is no extension/it cant be determined you can manually provide a file extension.</li>
<li><strong>hide-thumbnail</strong> (<em>Optional</em>): If set to <code class="highlighter-rouge">true</code> the thumbnail will not show on the notification. The content will only be viewable by expanding.</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="section">
<h1 class="title delta">iOS Guide</h1>
<ul class="divided sidebar-menu">
<li>
<a href='/ecosystem/ios/'>General </a>
</li>
<li>
<a href='/ecosystem/ios/notifications/'>Push Notifications </a>
<ul>
<li><a href='/ecosystem/ios/notifications/basic/'>Basic notifications </a></li>
<li>Advanced notifications</li>
<ul>
<li><a class='active' href='/ecosystem/ios/notifications/attachments/'>Attachments </a></li>
<li><a href='/ecosystem/ios/notifications/content_extensions/'>Dynamic content </a></li>
<li><a href='/ecosystem/ios/notifications/actions/'>Actionable notifications </a></li>
<li><a href='/ecosystem/ios/notifications/requesting_location_updates/'>Requesting location updates </a></li>
</ul>
<li><a href='/ecosystem/ios/notifications/examples/'>Examples </a></li>
<li><a href='/ecosystem/ios/notifications/sounds/'>Sounds </a></li>
<li><a href='/ecosystem/ios/notifications/architecture/'>Architecture </a></li>
<li><a href='/ecosystem/ios/notifications/privacy_security_rate_limits/'>Privacy, rate limiting and security </a></li>
</ul>
</li>
<li><a href='/ecosystem/ios/location/'>Location Tracking </a></li>
<li><a href='/ecosystem/ios/integration/'>Integration with other apps </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>.<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>
</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>
</body>
</html>

View file

@ -1,223 +0,0 @@
<!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>Basic Notifications - Home Assistant</title>
<meta name="author" content="Home Assistant">
<meta name="description" content="Basic notes about iOS notifications">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/ecosystem/ios/notifications/basic/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="Basic Notifications">
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/ecosystem/ios/notifications/basic/">
<meta property="og:type" content="article">
<meta property="og:description" content="Basic notes about iOS notifications">
<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="Basic Notifications">
<meta name="twitter:description" content="Basic notes about iOS notifications">
<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>
<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="/ecosystem/">Ecosystem</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>
</ul>
</nav>
</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/_ecosystem/ios/notifications/basic.markdown'>Edit this page on GitHub</a></div>
<header>
<h1 class="title indent">
Basic Notifications
</h1>
</header>
<hr class="divider">
<p>The iOS notify platform accepts the standard <code class="highlighter-rouge">title</code>, <code class="highlighter-rouge">message</code> and <code class="highlighter-rouge">target</code> parameters. The iOS notify platform supports targets as services. Assuming that you did not set a <code class="highlighter-rouge">name</code> when configuring the platform you should find all your registered and notification-enabled iOS devices available as notify targets as services with names prefixed “notify.ios_” and then the device name you entered at setup.</p>
<p>Notes:</p>
<ul>
<li>
<p><code class="highlighter-rouge">title</code> only displays on Apple Watch and iOS 10 devices.</p>
</li>
<li>
<p><code class="highlighter-rouge">target</code> can be used to specific a single device using its PushID, found in <code class="highlighter-rouge">ios.conf</code>. The preferred way of providing a target is through a target specific notify service.</p>
</li>
</ul>
<p class="img">
<img src="/images/ios/example.png" />
A push notification showing all of the basic options <code class="highlighter-rouge">title</code> and <code class="highlighter-rouge">message</code> as well as <code class="highlighter-rouge">subtitle</code> and <a href="/ecosystem/ios/notifications/actions/">actions</a>.
</p>
<h3><a class="title-link" name="enhancing-basic-notifications" href="#enhancing-basic-notifications"></a> Enhancing basic notifications</h3>
<h4>Badge</h4>
<p>You can set the icon badge in the payload:</p>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="s">automation</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">alias</span><span class="pi">:</span> <span class="s">Notify iOS app</span>
<span class="s">trigger</span><span class="pi">:</span>
<span class="s">...</span>
<span class="s">action</span><span class="pi">:</span>
<span class="s">service</span><span class="pi">:</span> <span class="s">notify.iOSApp</span>
<span class="s">data</span><span class="pi">:</span>
<span class="s">message</span><span class="pi">:</span> <span class="s2">"</span><span class="s">Something</span><span class="nv"> </span><span class="s">happened</span><span class="nv"> </span><span class="s">at</span><span class="nv"> </span><span class="s">home!"</span>
<span class="s">data</span><span class="pi">:</span>
<span class="s">push</span><span class="pi">:</span>
<span class="s">badge</span><span class="pi">:</span> <span class="s">5</span>
</code></pre>
</div>
<h4>Subtitle</h4>
<p>iOS 10 supports a subtitle in addition to the title:</p>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="s">automation</span>
<span class="s">- alias</span><span class="pi">:</span> <span class="s">Notify iOS app</span>
<span class="s">trigger</span><span class="pi">:</span>
<span class="s">...</span>
<span class="s">action</span><span class="pi">:</span>
<span class="s">service</span><span class="pi">:</span> <span class="s">notify.iOSApp</span>
<span class="s">data</span><span class="pi">:</span>
<span class="s">message</span><span class="pi">:</span> <span class="s2">"</span><span class="s">Something</span><span class="nv"> </span><span class="s">happened</span><span class="nv"> </span><span class="s">at</span><span class="nv"> </span><span class="s">home!"</span>
<span class="s">data</span><span class="pi">:</span>
<span class="s">subtitle</span><span class="pi">:</span> <span class="s2">"</span><span class="s">Subtitle</span><span class="nv"> </span><span class="s">goes</span><span class="nv"> </span><span class="s">here"</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">iOS Guide</h1>
<ul class="divided sidebar-menu">
<li>
<a href='/ecosystem/ios/'>General </a>
</li>
<li>
<a href='/ecosystem/ios/notifications/'>Push Notifications </a>
<ul>
<li><a class='active' href='/ecosystem/ios/notifications/basic/'>Basic notifications </a></li>
<li>Advanced notifications</li>
<ul>
<li><a href='/ecosystem/ios/notifications/attachments/'>Attachments </a></li>
<li><a href='/ecosystem/ios/notifications/content_extensions/'>Dynamic content </a></li>
<li><a href='/ecosystem/ios/notifications/actions/'>Actionable notifications </a></li>
<li><a href='/ecosystem/ios/notifications/requesting_location_updates/'>Requesting location updates </a></li>
</ul>
<li><a href='/ecosystem/ios/notifications/examples/'>Examples </a></li>
<li><a href='/ecosystem/ios/notifications/sounds/'>Sounds </a></li>
<li><a href='/ecosystem/ios/notifications/architecture/'>Architecture </a></li>
<li><a href='/ecosystem/ios/notifications/privacy_security_rate_limits/'>Privacy, rate limiting and security </a></li>
</ul>
</li>
<li><a href='/ecosystem/ios/location/'>Location Tracking </a></li>
<li><a href='/ecosystem/ios/integration/'>Integration with other apps </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>.<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>
</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>
</body>
</html>

View file

@ -1,220 +0,0 @@
<!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>Dynamic content - Home Assistant</title>
<meta name="author" content="Home Assistant">
<meta name="description" content="Extend your notifications with dynamic content">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/ecosystem/ios/notifications/content_extensions/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="Dynamic content">
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/ecosystem/ios/notifications/content_extensions/">
<meta property="og:type" content="article">
<meta property="og:description" content="Extend your notifications with dynamic content">
<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="Dynamic content">
<meta name="twitter:description" content="Extend your notifications with dynamic content">
<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>
<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="/ecosystem/">Ecosystem</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>
</ul>
</nav>
</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/_ecosystem/ios/notifications/content_extensions.markdown'>Edit this page on GitHub</a></div>
<header>
<h1 class="title indent">
Dynamic Content
</h1>
</header>
<hr class="divider">
<p>With the new Content Extension feature found in iOS 10, dynamic content can now be displayed as part of a notification without opening an app.</p>
<h1>Map</h1>
<p>Will show a map with a red tipped pin at the coordinates given.
The map will be centered at the coordinates given.</p>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="s">service</span><span class="pi">:</span> <span class="s">notify.iOSApp</span>
<span class="s">data</span><span class="pi">:</span>
<span class="s">message</span><span class="pi">:</span> <span class="s">Something happened at home!</span>
<span class="s">data</span><span class="pi">:</span>
<span class="s">push</span><span class="pi">:</span>
<span class="s">category</span><span class="pi">:</span> <span class="s">map</span>
<span class="s">action_data</span><span class="pi">:</span>
<span class="s">latitude</span><span class="pi">:</span> <span class="s">40.785091</span>
<span class="s">longitude</span><span class="pi">:</span> <span class="s">-73.968285</span>
</code></pre>
</div>
<p class="img">
<img src="/images/ios/map.png" />
An example of the map dynamic content.
</p>
<h1>Camera Stream</h1>
<p>The notification thumbnail will be a still image from the camera.
The notification content is a real time MJPEG stream of a camera (assuming the camera supports it).</p>
<p>You can use the attachment parameters <code class="highlighter-rouge">content-type</code> and <code class="highlighter-rouge">hide-thumbnail</code> with camera.</p>
<p>You can view an example <a href="https://www.youtube.com/watch?v=LmYwpxPKW0g">here</a>.</p>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="s">service</span><span class="pi">:</span> <span class="s">notify.iOSApp</span>
<span class="s">data</span><span class="pi">:</span>
<span class="s">message</span><span class="pi">:</span> <span class="s">Motion detected in the Living Room</span>
<span class="s">data</span><span class="pi">:</span>
<span class="s">push</span><span class="pi">:</span>
<span class="s">category</span><span class="pi">:</span> <span class="s">camera</span>
<span class="s">entity_id</span><span class="pi">:</span> <span class="s">camera.demo_camera</span>
</code></pre>
</div>
<div class="videoWrapper">
<iframe width="560" height="315" src="https://www.youtube.com/embed/LmYwpxPKW0g" frameborder="0" allowfullscreen=""></iframe>
</div>
<h1>Combining with actionable notifications</h1>
<p>As you can see the <code class="highlighter-rouge">category</code> key is used to tell the device what kind of content extension to use. You can use the same category identifiers in your own custom <a href="/ecosystem/ios/notifications/actions/">actions</a> to add actions to the content extension.</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="section">
<h1 class="title delta">iOS Guide</h1>
<ul class="divided sidebar-menu">
<li>
<a href='/ecosystem/ios/'>General </a>
</li>
<li>
<a href='/ecosystem/ios/notifications/'>Push Notifications </a>
<ul>
<li><a href='/ecosystem/ios/notifications/basic/'>Basic notifications </a></li>
<li>Advanced notifications</li>
<ul>
<li><a href='/ecosystem/ios/notifications/attachments/'>Attachments </a></li>
<li><a class='active' href='/ecosystem/ios/notifications/content_extensions/'>Dynamic content </a></li>
<li><a href='/ecosystem/ios/notifications/actions/'>Actionable notifications </a></li>
<li><a href='/ecosystem/ios/notifications/requesting_location_updates/'>Requesting location updates </a></li>
</ul>
<li><a href='/ecosystem/ios/notifications/examples/'>Examples </a></li>
<li><a href='/ecosystem/ios/notifications/sounds/'>Sounds </a></li>
<li><a href='/ecosystem/ios/notifications/architecture/'>Architecture </a></li>
<li><a href='/ecosystem/ios/notifications/privacy_security_rate_limits/'>Privacy, rate limiting and security </a></li>
</ul>
</li>
<li><a href='/ecosystem/ios/location/'>Location Tracking </a></li>
<li><a href='/ecosystem/ios/integration/'>Integration with other apps </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>.<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>
</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>
</body>
</html>

View file

@ -1,186 +0,0 @@
<!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>Notifications Introduction - Home Assistant</title>
<meta name="author" content="Home Assistant">
<meta name="description" content="Getting started with iOS notifications">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/ecosystem/ios/notifications/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="Notifications Introduction">
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/ecosystem/ios/notifications/">
<meta property="og:type" content="article">
<meta property="og:description" content="Getting started with iOS notifications">
<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="Notifications Introduction">
<meta name="twitter:description" content="Getting started with iOS notifications">
<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>
<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="/ecosystem/">Ecosystem</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>
</ul>
</nav>
</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/_ecosystem/ios/notifications.markdown'>Edit this page on GitHub</a></div>
<header>
<h1 class="title indent">
Notifications Introduction
</h1>
</header>
<hr class="divider">
<p>The <code class="highlighter-rouge">ios</code> notify platform enables sending push notifications to the Home Assistant iOS app.</p>
<h2><a class="title-link" name="setup" href="#setup"></a> Setup</h2>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">notify</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">platform</span><span class="pi">:</span> <span class="s">ios</span>
</code></pre>
</div>
<p>Configuration variables:</p>
<ul>
<li><strong>name</strong> (<em>Optional</em>): The name of the service.</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="section">
<h1 class="title delta">iOS Guide</h1>
<ul class="divided sidebar-menu">
<li>
<a href='/ecosystem/ios/'>General </a>
</li>
<li>
<a class='active' href='/ecosystem/ios/notifications/'>Push Notifications </a>
<ul>
<li><a href='/ecosystem/ios/notifications/basic/'>Basic notifications </a></li>
<li>Advanced notifications</li>
<ul>
<li><a href='/ecosystem/ios/notifications/attachments/'>Attachments </a></li>
<li><a href='/ecosystem/ios/notifications/content_extensions/'>Dynamic content </a></li>
<li><a href='/ecosystem/ios/notifications/actions/'>Actionable notifications </a></li>
<li><a href='/ecosystem/ios/notifications/requesting_location_updates/'>Requesting location updates </a></li>
</ul>
<li><a href='/ecosystem/ios/notifications/examples/'>Examples </a></li>
<li><a href='/ecosystem/ios/notifications/sounds/'>Sounds </a></li>
<li><a href='/ecosystem/ios/notifications/architecture/'>Architecture </a></li>
<li><a href='/ecosystem/ios/notifications/privacy_security_rate_limits/'>Privacy, rate limiting and security </a></li>
</ul>
</li>
<li><a href='/ecosystem/ios/location/'>Location Tracking </a></li>
<li><a href='/ecosystem/ios/integration/'>Integration with other apps </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>.<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>
</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>
</body>
</html>

View file

@ -1,182 +0,0 @@
<!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>Privacy, rate limiting and security - Home Assistant</title>
<meta name="author" content="Home Assistant">
<meta name="description" content="Notes about important topics relating to push notifications">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/ecosystem/ios/notifications/privacy_security_rate_limits/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="Privacy, rate limiting and security">
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/ecosystem/ios/notifications/privacy_security_rate_limits/">
<meta property="og:type" content="article">
<meta property="og:description" content="Notes about important topics relating to push notifications">
<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="Privacy, rate limiting and security">
<meta name="twitter:description" content="Notes about important topics relating to push notifications">
<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>
<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="/ecosystem/">Ecosystem</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>
</ul>
</nav>
</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/_ecosystem/ios/notifications/privacy_security_rate_limits.markdown'>Edit this page on GitHub</a></div>
<header>
<h1 class="title indent">
Privacy, Rate Limiting and Security
</h1>
</header>
<hr class="divider">
<h2><a class="title-link" name="privacy" href="#privacy"></a> Privacy</h2>
<p>No notification content is stored on remote servers. Only the required push registration data and a simple counter of the total number of push notifications sent per day per device (for rate limiting purposes) is kept.</p>
<h2><a class="title-link" name="rate-limiting" href="#rate-limiting"></a> Rate limiting</h2>
<p>Currently, you are allowed to send a maximum of 150 push notifications per day per device. This is to ensure that the service remains cheap to maintain. In the future we may add support for upgrading to allow more notifications. The rate limit resets at midnight UTC daily. When a notification is sent your current rate limits (including sent notifications and notifications remaining for the day) will be output to your Home Assistant logs. If an error occurs while sending a notification your rate limit will not be affected.</p>
<h2><a class="title-link" name="security" href="#security"></a> Security</h2>
<p>All traffic between your Home Assistant instance, the push infrastructure, and Apple, is encrypted with SSL.</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="section">
<h1 class="title delta">iOS Guide</h1>
<ul class="divided sidebar-menu">
<li>
<a href='/ecosystem/ios/'>General </a>
</li>
<li>
<a href='/ecosystem/ios/notifications/'>Push Notifications </a>
<ul>
<li><a href='/ecosystem/ios/notifications/basic/'>Basic notifications </a></li>
<li>Advanced notifications</li>
<ul>
<li><a href='/ecosystem/ios/notifications/attachments/'>Attachments </a></li>
<li><a href='/ecosystem/ios/notifications/content_extensions/'>Dynamic content </a></li>
<li><a href='/ecosystem/ios/notifications/actions/'>Actionable notifications </a></li>
<li><a href='/ecosystem/ios/notifications/requesting_location_updates/'>Requesting location updates </a></li>
</ul>
<li><a href='/ecosystem/ios/notifications/examples/'>Examples </a></li>
<li><a href='/ecosystem/ios/notifications/sounds/'>Sounds </a></li>
<li><a href='/ecosystem/ios/notifications/architecture/'>Architecture </a></li>
<li><a class='active' href='/ecosystem/ios/notifications/privacy_security_rate_limits/'>Privacy, rate limiting and security </a></li>
</ul>
</li>
<li><a href='/ecosystem/ios/location/'>Location Tracking </a></li>
<li><a href='/ecosystem/ios/integration/'>Integration with other apps </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>.<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>
</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>
</body>
</html>

View file

@ -1,190 +0,0 @@
<!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>Requesting location updates - Home Assistant</title>
<meta name="author" content="Home Assistant">
<meta name="description" content="Ask the device to send a location update remotely">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/ecosystem/ios/notifications/requesting_location_updates/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="Requesting location updates">
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/ecosystem/ios/notifications/requesting_location_updates/">
<meta property="og:type" content="article">
<meta property="og:description" content="Ask the device to send a location update remotely">
<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="Requesting location updates">
<meta name="twitter:description" content="Ask the device to send a location update remotely">
<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>
<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="/ecosystem/">Ecosystem</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>
</ul>
</nav>
</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/_ecosystem/ios/notifications/requesting_location_updates.markdown'>Edit this page on GitHub</a></div>
<header>
<h1 class="title indent">
Requesting Location Updates
</h1>
</header>
<hr class="divider">
<p class="note warning">
<strong>Do not rely on this functionality due to the time limits mentioned below.</strong>
</p>
<p>You can force a device to attempt to report its location by sending a special notification.</p>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="s">automation</span>
<span class="s">- alias</span><span class="pi">:</span> <span class="s">Notify iOS app</span>
<span class="s">trigger</span><span class="pi">:</span>
<span class="s">...</span>
<span class="s">action</span><span class="pi">:</span>
<span class="s">service</span><span class="pi">:</span> <span class="s">notify.iOSApp</span>
<span class="s">data</span><span class="pi">:</span>
<span class="s">message</span><span class="pi">:</span> <span class="s2">"</span><span class="s">request_location_updates"</span>
</code></pre>
</div>
<p>Assuming the device receives the notification, it will attempt to get a location update within 5 seconds and report it to Home Assistant. This is a little bit hit or miss since Apple imposes a maximum time allowed for the app to work with the notification and location updates sometimes take longer than usual due to factors such as waiting for GPS acquisition.</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="section">
<h1 class="title delta">iOS Guide</h1>
<ul class="divided sidebar-menu">
<li>
<a href='/ecosystem/ios/'>General </a>
</li>
<li>
<a href='/ecosystem/ios/notifications/'>Push Notifications </a>
<ul>
<li><a href='/ecosystem/ios/notifications/basic/'>Basic notifications </a></li>
<li>Advanced notifications</li>
<ul>
<li><a href='/ecosystem/ios/notifications/attachments/'>Attachments </a></li>
<li><a href='/ecosystem/ios/notifications/content_extensions/'>Dynamic content </a></li>
<li><a href='/ecosystem/ios/notifications/actions/'>Actionable notifications </a></li>
<li><a class='active' href='/ecosystem/ios/notifications/requesting_location_updates/'>Requesting location updates </a></li>
</ul>
<li><a href='/ecosystem/ios/notifications/examples/'>Examples </a></li>
<li><a href='/ecosystem/ios/notifications/sounds/'>Sounds </a></li>
<li><a href='/ecosystem/ios/notifications/architecture/'>Architecture </a></li>
<li><a href='/ecosystem/ios/notifications/privacy_security_rate_limits/'>Privacy, rate limiting and security </a></li>
</ul>
</li>
<li><a href='/ecosystem/ios/location/'>Location Tracking </a></li>
<li><a href='/ecosystem/ios/integration/'>Integration with other apps </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>.<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>
</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>
</body>
</html>

View file

@ -1,350 +0,0 @@
<!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>Notification Sounds - Home Assistant</title>
<meta name="author" content="Home Assistant">
<meta name="description" content="Adding sounds to notifications">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/ecosystem/ios/notifications/sounds/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="Notification Sounds">
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/ecosystem/ios/notifications/sounds/">
<meta property="og:type" content="article">
<meta property="og:description" content="Adding sounds to notifications">
<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="Notification Sounds">
<meta name="twitter:description" content="Adding sounds to notifications">
<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>
<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="/ecosystem/">Ecosystem</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>
</ul>
</nav>
</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/_ecosystem/ios/notifications/sounds.markdown'>Edit this page on GitHub</a></div>
<header>
<h1 class="title indent">
Notification Sounds
</h1>
</header>
<hr class="divider">
<p>Adding a custom sound to a notification allows you to easily identify the notification without even looking at your device. Home Assistant for iOS comes with some notification sounds pre-installed but you can also upload your own.</p>
<p>Here is an example notification that uses one of the pre-installed sounds.</p>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="pi">-</span> <span class="s">alias</span><span class="pi">:</span> <span class="s">Notify iOS app</span>
<span class="s">trigger</span><span class="pi">:</span>
<span class="s">...</span>
<span class="s">action</span><span class="pi">:</span>
<span class="s">service</span><span class="pi">:</span> <span class="s">notify.iOSApp</span>
<span class="s">data</span><span class="pi">:</span>
<span class="s">message</span><span class="pi">:</span> <span class="s">“Something happened at home!”</span>
<span class="s">data</span><span class="pi">:</span>
<span class="s">push</span><span class="pi">:</span>
<span class="s">sound</span><span class="pi">:</span> <span class="s2">"</span><span class="s">US-EN-Morgan-Freeman-Roommate-Is-Arriving.wav"</span>
</code></pre>
</div>
<p>Notes:</p>
<ul>
<li>You must use the full filename in the payload (including extension).</li>
</ul>
<h2><a class="title-link" name="custom-push-notification-sounds" href="#custom-push-notification-sounds"></a> Custom push notification sounds</h2>
<p>The app allows you to use your own custom sounds in push notifications. The sounds must be formatted following [Apples requirements][sound-requirements]. You set the filename of the sound in the notification payload. To add sounds:</p>
<ol>
<li>Connect the device to a PC or Mac running the latest version of iTunes.</li>
<li>Go to the device in iTunes.</li>
<li>Select “Apps” on the left sidebar.</li>
<li>Scroll down until you see the section labeled “File Sharing”.</li>
<li>Select HomeAssistant.</li>
<li>Drag and drop properly formatted sounds.</li>
<li>Click Sync in the lower right.</li>
<li>Once sync is complete, disconnect the device from the computer.</li>
<li>On your iOS device, open the Home Assistant app.</li>
<li>Go to Settings -&gt; Notification Settings.</li>
<li>Select “Import sounds from iTunes”.</li>
</ol>
<p>Assuming that you correctly formatted the sounds they are now available to use in push notifications.</p>
<p>Notes:</p>
<ul>
<li><strong>Please note that due to a bug in iOS 10 you may need to restart your entire device before notification sounds can be played. This should hopefully be fixed by Apple soon.</strong></li>
<li>Uploading a file with the same name as an existing one will overwrite the original.</li>
<li>You can view what sounds are installed on each device by inspecting the <code class="highlighter-rouge">ios.conf</code> file in your configuration directory. They are listed in the <code class="highlighter-rouge">pushSounds</code> array.</li>
</ul>
<h3><a class="title-link" name="preinstalled-notification-sounds" href="#preinstalled-notification-sounds"></a> Preinstalled notification sounds</h3>
<div class="highlighter-rouge"><pre class="highlight"><code>US-EN-Alexa-Back-Door-Opened.wav
US-EN-Alexa-Back-Door-Unlocked.wav
US-EN-Alexa-Basement-Door-Opened.wav
US-EN-Alexa-Basement-Door-Unlocked.wav
US-EN-Alexa-Boyfriend-Is-Arriving.wav
US-EN-Alexa-Daughter-Is-Arriving.wav
US-EN-Alexa-Front-Door-Opened.wav
US-EN-Alexa-Front-Door-Unlocked.wav
US-EN-Alexa-Garage-Door-Opened.wav
US-EN-Alexa-Girlfriend-Is-Arriving.wav
US-EN-Alexa-Good-Morning.wav
US-EN-Alexa-Good-Night.wav
US-EN-Alexa-Husband-Is-Arriving.wav
US-EN-Alexa-Mail-Has-Arrived.wav
US-EN-Alexa-Motion-At-Back-Door.wav
US-EN-Alexa-Motion-At-Front-Door.wav
US-EN-Alexa-Motion-Detected-Generic.wav
US-EN-Alexa-Motion-In-Back-Yard.wav
US-EN-Alexa-Motion-In-Basement.wav
US-EN-Alexa-Motion-In-Front-Yard.wav
US-EN-Alexa-Motion-In-Garage.wav
US-EN-Alexa-Patio-Door-Opened.wav
US-EN-Alexa-Patio-Door-Unlocked.wav
US-EN-Alexa-Smoke-Detected-Generic.wav
US-EN-Alexa-Smoke-Detected-In-Basement.wav
US-EN-Alexa-Smoke-Detected-In-Garage.wav
US-EN-Alexa-Smoke-Detected-In-Kitchen.wav
US-EN-Alexa-Son-Is-Arriving.wav
US-EN-Alexa-Water-Detected-Generic.wav
US-EN-Alexa-Water-Detected-In-Basement.wav
US-EN-Alexa-Water-Detected-In-Garage.wav
US-EN-Alexa-Water-Detected-In-Kitchen.wav
US-EN-Alexa-Welcome-Home.wav
US-EN-Alexa-Wife-Is-Arriving.wav
US-EN-Daisy-Back-Door-Motion.wav
US-EN-Daisy-Back-Door-Open.wav
US-EN-Daisy-Front-Door-Motion.wav
US-EN-Daisy-Front-Door-Open.wav
US-EN-Daisy-Front-Window-Open.wav
US-EN-Daisy-Garage-Door-Open.wav
US-EN-Daisy-Guest-Bath-Leak.wav
US-EN-Daisy-Kitchen-Sink-Leak.wav
US-EN-Daisy-Kitchen-Window-Open.wav
US-EN-Daisy-Laundry-Room-Leak.wav
US-EN-Daisy-Master-Bath-Leak.wav
US-EN-Daisy-Master-Bedroom-Window-Open.wav
US-EN-Daisy-Office-Window-Open.wav
US-EN-Daisy-Refrigerator-Leak.wav
US-EN-Daisy-Water-Heater-Leak.wav
US-EN-Morgan-Freeman-Back-Door-Closed.wav
US-EN-Morgan-Freeman-Back-Door-Locked.wav
US-EN-Morgan-Freeman-Back-Door-Opened.wav
US-EN-Morgan-Freeman-Back-Door-Unlocked.wav
US-EN-Morgan-Freeman-Basement-Door-Closed.wav
US-EN-Morgan-Freeman-Basement-Door-Locked.wav
US-EN-Morgan-Freeman-Basement-Door-Opened.wav
US-EN-Morgan-Freeman-Basement-Door-Unlocked.wav
US-EN-Morgan-Freeman-Boss-Is-Arriving.wav
US-EN-Morgan-Freeman-Boyfriend-Is-Arriving.wav
US-EN-Morgan-Freeman-Cleaning-Supplies-Closet-Opened.wav
US-EN-Morgan-Freeman-Coworker-Is-Arriving.wav
US-EN-Morgan-Freeman-Daughter-Is-Arriving.wav
US-EN-Morgan-Freeman-Friend-Is-Arriving.wav
US-EN-Morgan-Freeman-Front-Door-Closed.wav
US-EN-Morgan-Freeman-Front-Door-Locked.wav
US-EN-Morgan-Freeman-Front-Door-Opened.wav
US-EN-Morgan-Freeman-Front-Door-Unlocked.wav
US-EN-Morgan-Freeman-Garage-Door-Closed.wav
US-EN-Morgan-Freeman-Garage-Door-Opened.wav
US-EN-Morgan-Freeman-Girlfriend-Is-Arriving.wav
US-EN-Morgan-Freeman-Good-Morning.wav
US-EN-Morgan-Freeman-Good-Night.wav
US-EN-Morgan-Freeman-Liquor-Cabinet-Opened.wav
US-EN-Morgan-Freeman-Motion-Detected.wav
US-EN-Morgan-Freeman-Motion-In-Basement.wav
US-EN-Morgan-Freeman-Motion-In-Bedroom.wav
US-EN-Morgan-Freeman-Motion-In-Game-Room.wav
US-EN-Morgan-Freeman-Motion-In-Garage.wav
US-EN-Morgan-Freeman-Motion-In-Kitchen.wav
US-EN-Morgan-Freeman-Motion-In-Living-Room.wav
US-EN-Morgan-Freeman-Motion-In-Theater.wav
US-EN-Morgan-Freeman-Motion-In-Wine-Cellar.wav
US-EN-Morgan-Freeman-Patio-Door-Closed.wav
US-EN-Morgan-Freeman-Patio-Door-Locked.wav
US-EN-Morgan-Freeman-Patio-Door-Opened.wav
US-EN-Morgan-Freeman-Patio-Door-Unlocked.wav
US-EN-Morgan-Freeman-Roommate-Is-Arriving.wav
US-EN-Morgan-Freeman-Searching-For-Car-Keys.wav
US-EN-Morgan-Freeman-Setting-The-Mood.wav
US-EN-Morgan-Freeman-Smartthings-Detected-A-Flood.wav
US-EN-Morgan-Freeman-Smartthings-Detected-Carbon-Monoxide.wav
US-EN-Morgan-Freeman-Smartthings-Detected-Smoke.wav
US-EN-Morgan-Freeman-Smoke-Detected-In-Basement.wav
US-EN-Morgan-Freeman-Smoke-Detected-In-Garage.wav
US-EN-Morgan-Freeman-Smoke-Detected-In-Kitchen.wav
US-EN-Morgan-Freeman-Someone-Is-Arriving.wav
US-EN-Morgan-Freeman-Son-Is-Arriving.wav
US-EN-Morgan-Freeman-Starting-Movie-Mode.wav
US-EN-Morgan-Freeman-Starting-Party-Mode.wav
US-EN-Morgan-Freeman-Starting-Romance-Mode.wav
US-EN-Morgan-Freeman-Turning-Off-All-The-Lights.wav
US-EN-Morgan-Freeman-Turning-Off-The-Air-Conditioner.wav
US-EN-Morgan-Freeman-Turning-Off-The-Bar-Lights.wav
US-EN-Morgan-Freeman-Turning-Off-The-Chandelier.wav
US-EN-Morgan-Freeman-Turning-Off-The-Family-Room-Lights.wav
US-EN-Morgan-Freeman-Turning-Off-The-Hallway-Lights.wav
US-EN-Morgan-Freeman-Turning-Off-The-Kitchen-Light.wav
US-EN-Morgan-Freeman-Turning-Off-The-Light.wav
US-EN-Morgan-Freeman-Turning-Off-The-Lights.wav
US-EN-Morgan-Freeman-Turning-Off-The-Mood-Lights.wav
US-EN-Morgan-Freeman-Turning-Off-The-TV.wav
US-EN-Morgan-Freeman-Turning-On-The-Air-Conditioner.wav
US-EN-Morgan-Freeman-Turning-On-The-Bar-Lights.wav
US-EN-Morgan-Freeman-Turning-On-The-Chandelier.wav
US-EN-Morgan-Freeman-Turning-On-The-Family-Room-Lights.wav
US-EN-Morgan-Freeman-Turning-On-The-Hallway-Lights.wav
US-EN-Morgan-Freeman-Turning-On-The-Kitchen-Light.wav
US-EN-Morgan-Freeman-Turning-On-The-Light.wav
US-EN-Morgan-Freeman-Turning-On-The-Lights.wav
US-EN-Morgan-Freeman-Turning-On-The-Mood-Lights.wav
US-EN-Morgan-Freeman-Turning-On-The-TV.wav
US-EN-Morgan-Freeman-Vacate-The-Premises.wav
US-EN-Morgan-Freeman-Water-Detected-In-Basement.wav
US-EN-Morgan-Freeman-Water-Detected-In-Garage.wav
US-EN-Morgan-Freeman-Water-Detected-In-Kitchen.wav
US-EN-Morgan-Freeman-Welcome-Home.wav
US-EN-Morgan-Freeman-Wife-Is-Arriving.wav
</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">iOS Guide</h1>
<ul class="divided sidebar-menu">
<li>
<a href='/ecosystem/ios/'>General </a>
</li>
<li>
<a href='/ecosystem/ios/notifications/'>Push Notifications </a>
<ul>
<li><a href='/ecosystem/ios/notifications/basic/'>Basic notifications </a></li>
<li>Advanced notifications</li>
<ul>
<li><a href='/ecosystem/ios/notifications/attachments/'>Attachments </a></li>
<li><a href='/ecosystem/ios/notifications/content_extensions/'>Dynamic content </a></li>
<li><a href='/ecosystem/ios/notifications/actions/'>Actionable notifications </a></li>
<li><a href='/ecosystem/ios/notifications/requesting_location_updates/'>Requesting location updates </a></li>
</ul>
<li><a href='/ecosystem/ios/notifications/examples/'>Examples </a></li>
<li><a class='active' href='/ecosystem/ios/notifications/sounds/'>Sounds </a></li>
<li><a href='/ecosystem/ios/notifications/architecture/'>Architecture </a></li>
<li><a href='/ecosystem/ios/notifications/privacy_security_rate_limits/'>Privacy, rate limiting and security </a></li>
</ul>
</li>
<li><a href='/ecosystem/ios/location/'>Location Tracking </a></li>
<li><a href='/ecosystem/ios/integration/'>Integration with other apps </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>.<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>
</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>
</body>
</html>

View file

@ -1,176 +0,0 @@
<!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>Requirements - Home Assistant</title>
<meta name="author" content="Home Assistant">
<meta name="description" content="Basic requirements to use Home Assistant for iOS">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/ecosystem/ios/requirements/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="Requirements">
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/ecosystem/ios/requirements/">
<meta property="og:type" content="article">
<meta property="og:description" content="Basic requirements to use Home Assistant for iOS">
<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="Requirements">
<meta name="twitter:description" content="Basic requirements to use Home Assistant for iOS">
<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>
<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="/ecosystem/">Ecosystem</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>
</ul>
</nav>
</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/_ecosystem/ios/requirements.markdown'>Edit this page on GitHub</a></div>
<header>
<h1 class="title indent">
Requirements
</h1>
</header>
<hr class="divider">
<ul>
<li>iOS device running at least iOS 9, but iOS 10 is greatly preferred.</li>
<li>Home Assistant 0.31.1 or higher for push notification support.</li>
<li>SSL is strongly recommended. Self-signed SSL certificates will not work due to Apples limitations.</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="section">
<h1 class="title delta">iOS Guide</h1>
<ul class="divided sidebar-menu">
<li>
<a href='/ecosystem/ios/'>General </a>
</li>
<li>
<a href='/ecosystem/ios/notifications/'>Push Notifications </a>
<ul>
<li><a href='/ecosystem/ios/notifications/basic/'>Basic notifications </a></li>
<li>Advanced notifications</li>
<ul>
<li><a href='/ecosystem/ios/notifications/attachments/'>Attachments </a></li>
<li><a href='/ecosystem/ios/notifications/content_extensions/'>Dynamic content </a></li>
<li><a href='/ecosystem/ios/notifications/actions/'>Actionable notifications </a></li>
<li><a href='/ecosystem/ios/notifications/requesting_location_updates/'>Requesting location updates </a></li>
</ul>
<li><a href='/ecosystem/ios/notifications/examples/'>Examples </a></li>
<li><a href='/ecosystem/ios/notifications/sounds/'>Sounds </a></li>
<li><a href='/ecosystem/ios/notifications/architecture/'>Architecture </a></li>
<li><a href='/ecosystem/ios/notifications/privacy_security_rate_limits/'>Privacy, rate limiting and security </a></li>
</ul>
</li>
<li><a href='/ecosystem/ios/location/'>Location Tracking </a></li>
<li><a href='/ecosystem/ios/integration/'>Integration with other apps </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>.<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>
</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>
</body>
</html>

View file

@ -1,274 +0,0 @@
<!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>NGINX - Home Assistant</title>
<meta name="author" content="Home Assistant">
<meta name="description" content="Documentation about setting up Home Assistant with NGINX.">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/ecosystem/nginx/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="NGINX">
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/ecosystem/nginx/">
<meta property="og:type" content="article">
<meta property="og:description" content="Documentation about setting up Home Assistant with NGINX.">
<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="NGINX">
<meta name="twitter:description" content="Documentation about setting up Home Assistant with NGINX.">
<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>
<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="/ecosystem/">Ecosystem</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>
</ul>
</nav>
</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/_ecosystem/nginx.markdown'>Edit this page on GitHub</a></div>
<header>
<h1 class="title indent">
NGINX
</h1>
</header>
<hr class="divider">
<p>Using nginx as a proxy for Home Assistant allows you to serve Home Assistant securely over standard ports. This configuration file and instructions will walk you through setting up Home Assistant over a secure connection.</p>
<h3><a class="title-link" name="1-get-a-domain-name-forwarded-to-your-ip" href="#1-get-a-domain-name-forwarded-to-your-ip"></a> 1. Get a domain name forwarded to your IP.</h3>
<p>Chances are, you have a dynamic IP Address (your ISP changes your address periodically). If this is true, you can use a Dynamic DNS service to obtain a domain and set it up to update with you IP. If you purchase your own domain name, you will be able to easily get a trusted SSL certificate later.</p>
<h3><a class="title-link" name="2-install-nginx-on-your-server" href="#2-install-nginx-on-your-server"></a> 2 Install nginx on your server.</h3>
<p>This will vary depending on your OS. Check out Google for this. After installing, ensure that nginx is not running.</p>
<h3><a class="title-link" name="3-obtain-an-ssl-certificate" href="#3-obtain-an-ssl-certificate"></a> 3. Obtain an SSL certificate.</h3>
<p>There are two ways of obtaining an SSL certificate.</p>
<h4><a class="title-link" name="using-lets-encrypt" href="#using-lets-encrypt"></a> Using Lets Encrypt</h4>
<p>If you purchased your own domain, you can use https://letsencrypt.org/ to obtain a free, publicly trusted SSL certificate. This will allow you to work with services like IFTTT. Download and install per the instructions online and get a certificate using the following command.</p>
<div class="highlighter-rouge"><pre class="highlight"><code>./letsencrypt-auto certonly --standalone -d example.com -d www.example.com
</code></pre>
</div>
<p>Instead of example.com, use your domain. You will need to renew this certificate every 90 days.</p>
<h4><a class="title-link" name="using-openssl" href="#using-openssl"></a> Using openssl</h4>
<p>If you do not own your own domain, you may generate a self-signed certificate. This will not work with IFTTT, but it will encrypt all of your Home Assistant traffic.</p>
<div class="highlighter-rouge"><pre class="highlight"><code>openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 9999
sudo cp key.pem cert.pem /etc/nginx/ssl
sudo chmod 600 /etc/nginx/ssl/key.pem /etc/nginx/ssl/cert.pem
sudo chown root:root /etc/nginx/ssl/key.pem /etc/nginx/ssl/cert.pem
</code></pre>
</div>
<h3><a class="title-link" name="4-create-dhparams-file" href="#4-create-dhparams-file"></a> 4. Create dhparams file</h3>
<p>As a fair warning, this file will take a while to generate.</p>
<div class="highlighter-rouge"><pre class="highlight"><code>cd /etc/nginx/ssl
sudo openssl dhparam -out dhparams.pem 2048
</code></pre>
</div>
<h3><a class="title-link" name="5-install-configuration-file-in-nginx" href="#5-install-configuration-file-in-nginx"></a> 5. Install configuration file in nginx.</h3>
<p>Create a new file <code class="highlighter-rouge">/etc/nginx/sites-available/hass</code> and copy the configuration file at the bottom of the page into it.</p>
<h3><a class="title-link" name="6-enable-the-home-assistant-configuration" href="#6-enable-the-home-assistant-configuration"></a> 6. Enable the Home Assistant configuration.</h3>
<div class="highlighter-rouge"><pre class="highlight"><code>cd /etc/nginx/sites-enabled
sudo unlink default
sudo ln ../sites-available/hass default
</code></pre>
</div>
<h3><a class="title-link" name="7-start-nginx" href="#7-start-nginx"></a> 7. Start NGINX.</h3>
<p>Double check this configuration to ensure all settings are correct and start nginx.</p>
<h3><a class="title-link" name="8-port-forwarding" href="#8-port-forwarding"></a> 8. Port forwarding.</h3>
<p>Forward ports 443 and 80 to your server on your router. Do not forward port 8123.</p>
<h3><a class="title-link" name="nginx-config" href="#nginx-config"></a> NGINX Config</h3>
<div class="highlighter-rouge"><pre class="highlight"><code>http {
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server {
# Update this line to be your domain
server_name example.com;
# These shouldn't need to be changed
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
return 301 https://$host$request_uri;
}
server {
# Update this line to be your domain
server_name example.com;
# Ensure these lines point to your SSL certificate and key
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
# Use these lines instead if you created a self-signed certificate
# ssl_certificate /etc/nginx/ssl/cert.pem;
# ssl_certificate_key /etc/nginx/ssl/key.pem;
# Ensure this line points to your dhparams file
ssl_dhparam /etc/nginx/ssl/dhparams.pem;
# These shouldn't need to be changed
listen 443 default_server;
add_header Strict-Transport-Security "max-age=31536000; includeSubdomains";
ssl on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
proxy_buffering off;
location / {
proxy_pass http://localhost:8123;
proxy_set_header Host $host;
proxy_redirect http:// https://;
proxy_http_version 1.1;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
}
}
}
</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/_ecosystem/nginx.markdown'>Edit this page on GitHub</a></div>
<div class="section">
<h1 class="title delta">Ecosystem</h1>
<ul class="divided">
<li><a href="/ecosystem/hadashboard/">HADashboard</a></li>
<li><a href="/ecosystem/nginx/">NGINX</a></li>
<li><a href="/ecosystem/scenegen/">SceneGen</a></li>
<li><a href="/ecosystem/ios/">iOS</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>.<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>
</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>
</body>
</html>

View file

@ -1,328 +0,0 @@
<!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>SceneGen - Home Assistant</title>
<meta name="author" content="Home Assistant">
<meta name="description" content="Scenegen is a scene generation tool for Home Assistant">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/ecosystem/scenegen/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="SceneGen">
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/ecosystem/scenegen/">
<meta property="og:type" content="article">
<meta property="og:description" content="Scenegen is a scene generation tool for Home 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="SceneGen">
<meta name="twitter:description" content="Scenegen is a scene generation tool for Home 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>
<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="/ecosystem/">Ecosystem</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>
</ul>
</nav>
</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">
SceneGen
</h1>
</header>
<hr class="divider">
<p>Scenegen is a scene generation tool for <a href="https://home-assistant.io/">Home Assistant</a> home automation software. It creates scenes by example, by reading the current states of devices and outputting a corresponding scene. Scenegen is written in python using Home Assistants RESTFul API so can be run from anywhere. It currently supports lights and switches only.</p>
<h2>Installation</h2>
<h3>Clone the Repository</h3>
<p>Clone the <strong>scenegen</strong> repository to the current local directory on your machine.</p>
<div class="language-bash highlighter-rouge"><pre class="highlight"><code><span class="gp">$ </span>git clone https://github.com/home-assistant/scenegen.git
</code></pre>
</div>
<p>Change your working directory to the repository root. Moving forward, we will be working from this directory.</p>
<div class="language-bash highlighter-rouge"><pre class="highlight"><code><span class="gp">$ </span><span class="nb">cd </span>scenegen
</code></pre>
</div>
<h2>Install Prereqs</h2>
<p>Before running <code class="highlighter-rouge">SceneGen</code> you will need to add some python prerequisites:</p>
<div class="language-bash highlighter-rouge"><pre class="highlight"><code><span class="gp">$ </span>sudo pip3 install configparser
</code></pre>
</div>
<p>You should now be ready to run <code class="highlighter-rouge">scenegen</code></p>
<h2>Basic Operation</h2>
<div class="highlighter-rouge"><pre class="highlight"><code>usage: scenegen [-h] [-k KEY] [-s SCENENAME] [-m MAPFILE] [-f FILTER]
[-c {xy_color,rgb_color,color_temp,color_name}] [-t TYPES]
url
positional arguments:
url url for Home Assistant instance
optional arguments:
-h, --help show this help message and exit
-k KEY, --key KEY API Key of Home Assistant instance
-s SCENENAME, --scenename SCENENAME
Name of scene to generate
-m MAPFILE, --mapfile MAPFILE
Name of mapfile to enable device filtering
-f FILTER, --filter FILTER
Comma separated list of device collections as defined
in mapfile
-c {xy_color,rgb_color,color_temp,color_name}, --colortype {xy_color,rgb_color,color_temp,color_name}
color type to use
-t TYPES, --types TYPES
list of device types to include
</code></pre>
</div>
<p>For basic operation just supply the url and optionally the api key (using the key option) on the command line and scenegen will output a list of all lights and switches with their attributes. Optionally use the <code class="highlighter-rouge">--scenename</code> flag to explicitly set the scenename.</p>
<div class="highlighter-rouge"><pre class="highlight"><code>$ ./scenegen.py https://&lt;some url&gt; -k &lt;some api key&gt;
name: My New Scene
entities:
light.bedroom:
state: on
brightness: 28
light.kitchen:
state: off
light.living_room:
state: off
light.bedside:
state: on
brightness: 125
color_temp: 412
light.office_level_29:
state: on
brightness: 28
</code></pre>
</div>
<p>This output can be cut and pasted into your configuration.yaml file as required (ensuring correct indentatation of course).</p>
<p>Scenegen supports all documented effects for lights including transitions and flash effects, however generally it is easier to run scenegen to get the basic setup and add any effects manually later.</p>
<p>Note that depending on the type of light there may be a delay in actually setting up its parameters and Home Assistant actually recieving that state. For instance, if you set a scene up with the Hue App, Home Assistant wont see those changes for up to 10 seconds. Turning on a ZWave light might not be seen for an entire poll interval. For this reason, its good practice to wait for a while after the scene is setup before running scenegen. Alternatively, perform all setup using the Home Assistant frontend and it will instantly have the required state for capture.</p>
<h2>Advanced Usage</h2>
<p>For a more advanced way to use the output try the following. In configuration.yaml add the following line:</p>
<div class="highlighter-rouge"><pre class="highlight"><code>scene: !include_dir_list scenes
</code></pre>
</div>
<p>This will tell home assistant to look in the subdirectory <code class="highlighter-rouge">scenes</code> for yaml files containing scene information. Each file will be named for the scene it will create and should contain information formatted as above. Then simply run Scenegen and redirect its output to the scenes subdirectory:</p>
<div class="highlighter-rouge"><pre class="highlight"><code>$ ./scenegen.py https://&lt;some url&gt; -k &lt;some api key&gt; &gt; scenes/my_new_scene.yaml
</code></pre>
</div>
<p>This will create a new scene called <code class="highlighter-rouge">my_new_scene</code> which will automatically be picked up by Home Assistant on the next restart.</p>
<h2>Colors</h2>
<p>Scenegen allows colors to be captured, and in fact Home Assistant light entities store up to 4 different ways of specifying the colors. This is redundant for creating scenes so Scenegen picks 1 and goes with it. The default is <code class="highlighter-rouge">color_temp</code> but you can change this with the <code class="highlighter-rouge">--colortype</code> flag, supported options are <code class="highlighter-rouge">xy_color</code>, <code class="highlighter-rouge">rgb_color</code>, <code class="highlighter-rouge">color_temp</code> and <code class="highlighter-rouge">color_name</code>.</p>
<h2>Types</h2>
<p>By default, Scenegen will list all lights and switches. To restrict the device type use the <code class="highlighter-rouge">--types</code> option and supply a comma separated list (no spaces) of types to output. e.g.:</p>
<div class="highlighter-rouge"><pre class="highlight"><code>./scenegen.py https://&lt;some url&gt; -k &lt;some api key&gt; --types light,switch
</code></pre>
</div>
<p>or:</p>
<div class="highlighter-rouge"><pre class="highlight"><code>./scenegen.py https://&lt;some url&gt; -k &lt;some api key&gt; --types light
</code></pre>
</div>
<p>This will make more sense as and when more types are added.</p>
<h2>Maps and Filters</h2>
<p>Maps allow you to specify and label various subsets of devices that you want to work on together. A mapfile is specified using the <code class="highlighter-rouge">--mapfile</code> option and is a <code class="highlighter-rouge">.ini</code> style file consisting of section headers and entries. The section headers specify a region or zone or otherwise organized selection of entities you want to filter on, and it is mandatory to have at least one. If you create a map file like this:</p>
<div class="highlighter-rouge"><pre class="highlight"><code>[entities]
light.living_room:
light.dining_room:
</code></pre>
</div>
<p>The trailing colons are necessary to prevent parsing errors for including just keys, as opposed to key=value so just go with it - it reminds us of YAML ;)</p>
<p>If you run scenegen with the <code class="highlighter-rouge">--mapfile</code> argument pointing to that file you will only get output for the listed entities (the name of the section is irrelevant if not using the <code class="highlighter-rouge">--filter</code> option). A more complex mapfile might look like this:</p>
<div class="highlighter-rouge"><pre class="highlight"><code>[Outside]
light.porch:
switch.path_lights:
[Living Room]
light.living_room_front:
light.living_room_back:
[Bedroom]
light.bedside:
</code></pre>
</div>
<p>Again, if you run with that map file it will output all of the entities listed, however you now have the possibility of restricting output devices based on the sections they are in, using the <code class="highlighter-rouge">--filter</code> option and supplying a comma separated list of sections you want to include, for instance:</p>
<div class="highlighter-rouge"><pre class="highlight"><code>./scenegen.py https://&lt;some url&gt; -k &lt;some api key&gt; --mapfile map.cfg --filter "Outside,Living Room"
</code></pre>
</div>
<p>The intended use of the mapfile and filter is that you create a map of all your devices and organize them into zones that you are interested in creating scenes for and use the filter to limit output to that zone. For instance you might want to create 3 or 4 scenes for your living room, and once the map is set up you can easily do so without the addition of unwanted devices.</p>
<h2>Updating SceneGen</h2>
<p>To update SceneGen after a new version is released, just run the following command to update your copy:</p>
<div class="language-bash highlighter-rouge"><pre class="highlight"><code><span class="gp">$ </span>git pull
</code></pre>
</div>
<h2>Release Notes</h2>
<p><strong><em>Version 1.2</em></strong></p>
<ul>
<li>Add installation instructions</li>
</ul>
<p><strong><em>Version 1.1</em></strong></p>
<ul>
<li>Add better error checking for Home Assistant errors</li>
</ul>
<p><strong><em>Version 1.0</em></strong></p>
<p>Initial Release</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="section">
<h1 class="title delta">Ecosystem</h1>
<ul class="divided">
<li><a href="/ecosystem/hadashboard/">HADashboard</a></li>
<li><a href="/ecosystem/nginx/">NGINX</a></li>
<li><a href="/ecosystem/scenegen/">SceneGen</a></li>
<li><a href="/ecosystem/ios/">iOS</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>.<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>
</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>
</body>
</html>