Site updated at 2015-12-14 03:20:11 UTC

This commit is contained in:
Paulus Schoutsen 2015-12-13 19:20:11 -08:00
parent 2a9df699a4
commit 11f389b351
50 changed files with 627 additions and 30 deletions

View file

@ -4,7 +4,7 @@
<title><![CDATA[Home Assistant]]></title> <title><![CDATA[Home Assistant]]></title>
<link href="https://home-assistant.io/atom.xml" rel="self"/> <link href="https://home-assistant.io/atom.xml" rel="self"/>
<link href="https://home-assistant.io/"/> <link href="https://home-assistant.io/"/>
<updated>2015-12-13T12:31:07-08:00</updated> <updated>2015-12-13T19:19:55-08:00</updated>
<id>https://home-assistant.io/</id> <id>https://home-assistant.io/</id>
<author> <author>
<name><![CDATA[Paulus Schoutsen]]></name> <name><![CDATA[Paulus Schoutsen]]></name>

View file

@ -4,7 +4,7 @@
<title><![CDATA[Category: architecture | Home Assistant]]></title> <title><![CDATA[Category: architecture | Home Assistant]]></title>
<link href="https://home-assistant.io/blog/categories/architecture/atom.xml" rel="self"/> <link href="https://home-assistant.io/blog/categories/architecture/atom.xml" rel="self"/>
<link href="https://home-assistant.io/"/> <link href="https://home-assistant.io/"/>
<updated>2015-12-13T12:31:07-08:00</updated> <updated>2015-12-13T19:19:55-08:00</updated>
<id>https://home-assistant.io/</id> <id>https://home-assistant.io/</id>
<author> <author>
<name><![CDATA[Paulus Schoutsen]]></name> <name><![CDATA[Paulus Schoutsen]]></name>

View file

@ -4,7 +4,7 @@
<title><![CDATA[Category: branding | Home Assistant]]></title> <title><![CDATA[Category: branding | Home Assistant]]></title>
<link href="https://home-assistant.io/blog/categories/branding/atom.xml" rel="self"/> <link href="https://home-assistant.io/blog/categories/branding/atom.xml" rel="self"/>
<link href="https://home-assistant.io/"/> <link href="https://home-assistant.io/"/>
<updated>2015-12-13T12:31:07-08:00</updated> <updated>2015-12-13T19:19:55-08:00</updated>
<id>https://home-assistant.io/</id> <id>https://home-assistant.io/</id>
<author> <author>
<name><![CDATA[Paulus Schoutsen]]></name> <name><![CDATA[Paulus Schoutsen]]></name>

View file

@ -4,7 +4,7 @@
<title><![CDATA[Category: community | Home Assistant]]></title> <title><![CDATA[Category: community | Home Assistant]]></title>
<link href="https://home-assistant.io/blog/categories/community/atom.xml" rel="self"/> <link href="https://home-assistant.io/blog/categories/community/atom.xml" rel="self"/>
<link href="https://home-assistant.io/"/> <link href="https://home-assistant.io/"/>
<updated>2015-12-13T12:31:07-08:00</updated> <updated>2015-12-13T19:19:55-08:00</updated>
<id>https://home-assistant.io/</id> <id>https://home-assistant.io/</id>
<author> <author>
<name><![CDATA[Paulus Schoutsen]]></name> <name><![CDATA[Paulus Schoutsen]]></name>

View file

@ -4,7 +4,7 @@
<title><![CDATA[Category: component | Home Assistant]]></title> <title><![CDATA[Category: component | Home Assistant]]></title>
<link href="https://home-assistant.io/blog/categories/component/atom.xml" rel="self"/> <link href="https://home-assistant.io/blog/categories/component/atom.xml" rel="self"/>
<link href="https://home-assistant.io/"/> <link href="https://home-assistant.io/"/>
<updated>2015-12-13T12:31:07-08:00</updated> <updated>2015-12-13T19:19:55-08:00</updated>
<id>https://home-assistant.io/</id> <id>https://home-assistant.io/</id>
<author> <author>
<name><![CDATA[Paulus Schoutsen]]></name> <name><![CDATA[Paulus Schoutsen]]></name>

View file

@ -4,7 +4,7 @@
<title><![CDATA[Category: core | Home Assistant]]></title> <title><![CDATA[Category: core | Home Assistant]]></title>
<link href="https://home-assistant.io/blog/categories/core/atom.xml" rel="self"/> <link href="https://home-assistant.io/blog/categories/core/atom.xml" rel="self"/>
<link href="https://home-assistant.io/"/> <link href="https://home-assistant.io/"/>
<updated>2015-12-13T12:31:07-08:00</updated> <updated>2015-12-13T19:19:55-08:00</updated>
<id>https://home-assistant.io/</id> <id>https://home-assistant.io/</id>
<author> <author>
<name><![CDATA[Paulus Schoutsen]]></name> <name><![CDATA[Paulus Schoutsen]]></name>

View file

@ -4,7 +4,7 @@
<title><![CDATA[Category: esp8266 | Home Assistant]]></title> <title><![CDATA[Category: esp8266 | Home Assistant]]></title>
<link href="https://home-assistant.io/blog/categories/esp8266/atom.xml" rel="self"/> <link href="https://home-assistant.io/blog/categories/esp8266/atom.xml" rel="self"/>
<link href="https://home-assistant.io/"/> <link href="https://home-assistant.io/"/>
<updated>2015-12-13T12:31:07-08:00</updated> <updated>2015-12-13T19:19:55-08:00</updated>
<id>https://home-assistant.io/</id> <id>https://home-assistant.io/</id>
<author> <author>
<name><![CDATA[Paulus Schoutsen]]></name> <name><![CDATA[Paulus Schoutsen]]></name>

View file

@ -4,7 +4,7 @@
<title><![CDATA[Category: frontend | Home Assistant]]></title> <title><![CDATA[Category: frontend | Home Assistant]]></title>
<link href="https://home-assistant.io/blog/categories/frontend/atom.xml" rel="self"/> <link href="https://home-assistant.io/blog/categories/frontend/atom.xml" rel="self"/>
<link href="https://home-assistant.io/"/> <link href="https://home-assistant.io/"/>
<updated>2015-12-13T12:31:07-08:00</updated> <updated>2015-12-13T19:19:55-08:00</updated>
<id>https://home-assistant.io/</id> <id>https://home-assistant.io/</id>
<author> <author>
<name><![CDATA[Paulus Schoutsen]]></name> <name><![CDATA[Paulus Schoutsen]]></name>

View file

@ -4,7 +4,7 @@
<title><![CDATA[Category: how-to | Home Assistant]]></title> <title><![CDATA[Category: how-to | Home Assistant]]></title>
<link href="https://home-assistant.io/blog/categories/how-to/atom.xml" rel="self"/> <link href="https://home-assistant.io/blog/categories/how-to/atom.xml" rel="self"/>
<link href="https://home-assistant.io/"/> <link href="https://home-assistant.io/"/>
<updated>2015-12-13T12:31:07-08:00</updated> <updated>2015-12-13T19:19:55-08:00</updated>
<id>https://home-assistant.io/</id> <id>https://home-assistant.io/</id>
<author> <author>
<name><![CDATA[Paulus Schoutsen]]></name> <name><![CDATA[Paulus Schoutsen]]></name>

View file

@ -4,7 +4,7 @@
<title><![CDATA[Category: mqtt | Home Assistant]]></title> <title><![CDATA[Category: mqtt | Home Assistant]]></title>
<link href="https://home-assistant.io/blog/categories/mqtt/atom.xml" rel="self"/> <link href="https://home-assistant.io/blog/categories/mqtt/atom.xml" rel="self"/>
<link href="https://home-assistant.io/"/> <link href="https://home-assistant.io/"/>
<updated>2015-12-13T12:31:07-08:00</updated> <updated>2015-12-13T19:19:55-08:00</updated>
<id>https://home-assistant.io/</id> <id>https://home-assistant.io/</id>
<author> <author>
<name><![CDATA[Paulus Schoutsen]]></name> <name><![CDATA[Paulus Schoutsen]]></name>

View file

@ -4,7 +4,7 @@
<title><![CDATA[Category: public-service-announcement | Home Assistant]]></title> <title><![CDATA[Category: public-service-announcement | Home Assistant]]></title>
<link href="https://home-assistant.io/blog/categories/public-service-announcement/atom.xml" rel="self"/> <link href="https://home-assistant.io/blog/categories/public-service-announcement/atom.xml" rel="self"/>
<link href="https://home-assistant.io/"/> <link href="https://home-assistant.io/"/>
<updated>2015-12-13T12:31:07-08:00</updated> <updated>2015-12-13T19:19:55-08:00</updated>
<id>https://home-assistant.io/</id> <id>https://home-assistant.io/</id>
<author> <author>
<name><![CDATA[Paulus Schoutsen]]></name> <name><![CDATA[Paulus Schoutsen]]></name>

View file

@ -4,7 +4,7 @@
<title><![CDATA[Category: release-notes | Home Assistant]]></title> <title><![CDATA[Category: release-notes | Home Assistant]]></title>
<link href="https://home-assistant.io/blog/categories/release-notes/atom.xml" rel="self"/> <link href="https://home-assistant.io/blog/categories/release-notes/atom.xml" rel="self"/>
<link href="https://home-assistant.io/"/> <link href="https://home-assistant.io/"/>
<updated>2015-12-13T12:31:07-08:00</updated> <updated>2015-12-13T19:19:55-08:00</updated>
<id>https://home-assistant.io/</id> <id>https://home-assistant.io/</id>
<author> <author>
<name><![CDATA[Paulus Schoutsen]]></name> <name><![CDATA[Paulus Schoutsen]]></name>

View file

@ -4,7 +4,7 @@
<title><![CDATA[Category: survey | Home Assistant]]></title> <title><![CDATA[Category: survey | Home Assistant]]></title>
<link href="https://home-assistant.io/blog/categories/survey/atom.xml" rel="self"/> <link href="https://home-assistant.io/blog/categories/survey/atom.xml" rel="self"/>
<link href="https://home-assistant.io/"/> <link href="https://home-assistant.io/"/>
<updated>2015-12-13T12:31:07-08:00</updated> <updated>2015-12-13T19:19:55-08:00</updated>
<id>https://home-assistant.io/</id> <id>https://home-assistant.io/</id>
<author> <author>
<name><![CDATA[Paulus Schoutsen]]></name> <name><![CDATA[Paulus Schoutsen]]></name>

View file

@ -4,7 +4,7 @@
<title><![CDATA[Category: user-stories | Home Assistant]]></title> <title><![CDATA[Category: user-stories | Home Assistant]]></title>
<link href="https://home-assistant.io/blog/categories/user-stories/atom.xml" rel="self"/> <link href="https://home-assistant.io/blog/categories/user-stories/atom.xml" rel="self"/>
<link href="https://home-assistant.io/"/> <link href="https://home-assistant.io/"/>
<updated>2015-12-13T12:31:07-08:00</updated> <updated>2015-12-13T19:19:55-08:00</updated>
<id>https://home-assistant.io/</id> <id>https://home-assistant.io/</id>
<author> <author>
<name><![CDATA[Paulus Schoutsen]]></name> <name><![CDATA[Paulus Schoutsen]]></name>

View file

@ -4,7 +4,7 @@
<title><![CDATA[Category: website | Home Assistant]]></title> <title><![CDATA[Category: website | Home Assistant]]></title>
<link href="https://home-assistant.io/blog/categories/website/atom.xml" rel="self"/> <link href="https://home-assistant.io/blog/categories/website/atom.xml" rel="self"/>
<link href="https://home-assistant.io/"/> <link href="https://home-assistant.io/"/>
<updated>2015-12-13T12:31:07-08:00</updated> <updated>2015-12-13T19:19:55-08:00</updated>
<id>https://home-assistant.io/</id> <id>https://home-assistant.io/</id>
<author> <author>
<name><![CDATA[Paulus Schoutsen]]></name> <name><![CDATA[Paulus Schoutsen]]></name>

264
components/alexa/index.html Normal file
View file

@ -0,0 +1,264 @@
<!doctype html>
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]> <html class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html> <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Alexa / Amazon Echo - Home Assistant</title>
<meta name="author" content="Paulus Schoutsen">
<meta name="description" content="Instructions how to connect Alexa/Amazon Echo to Home Assistant.">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/components/alexa/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="Alexa / Amazon Echo">
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/components/alexa/">
<meta property="og:type" content="article">
<meta property="og:description" content="Instructions how to connect Alexa/Amazon Echo to Home Assistant.">
<meta property="og:image" content="https://home-assistant.io/images/home-assistant-logo-2164x2164.png">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@balloob">
<meta name="twitter:title" content="Alexa / Amazon Echo">
<meta name="twitter:description" content="Instructions how to connect Alexa/Amazon Echo to Home Assistant.">
<meta name="twitter:image" content="https://home-assistant.io/images/home-assistant-logo-2164x2164.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='/images/favicon-192x192.png'> Home Assistant
</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>
<ul>
<li><a href='/getting-started/'>Installing Home Assistant</a></li>
<li><a href='/getting-started/configuration/'>Configuration basics</a></li>
<li><a href='/getting-started/devices/'>Adding devices</a></li>
<li><a href='/getting-started/presence-detection/'>Presence detection</a></li>
<li><a href='/getting-started/automation/'>Automation</a></li>
<li><a href='/cookbook'>Configuration cookbook</a></li>
</ul>
</li>
<li><a href='/components/'>Components</a></li>
<li>
<a href="/developers/">Developers</a>
<ul>
<li><a href="/developers/architecture/">Architecture</a></li>
<li><a href="/developers/frontend/">Frontend development</a></li>
<li><a href="/developers/creating_components/">
Creating components
</a></li>
<li><a href="/developers/add_new_platform/">
Adding platform support
</a></li>
<li><a href="/developers/api/">API</a></li>
<li><a href="/developers/credits/">Credits</a></li>
</ul>
</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">
Alexa / Amazon Echo
</h1>
</header>
<hr class="divider">
<p>The Alexa component allows you to integrate Home Assistant into Alexa/Amazon Echo. This component will allow you to query information within Home Assistant by using your voice. There are no supported sentences out of the box as of now, you will have to define them all yourself. This component does not yet allow the control of devices connected to Home Assistant.</p>
<h3>Requirements before using</h3>
<p>Amazon requires the endpoint of a skill to be hosted via SSL. Self-signed certificates are ok because our skills will only run in development mode. Read more on <a href="https://home-assistant.io/blog/2015/12/13/setup-encryption-using-lets-encrypt/">our blog</a> about how to set up encryption for Home Assistant. If you are unable to get https up and running, consider using <a href="https://forums.developer.amazon.com/forums/thread.jspa?messageID=18604">this AWS Lambda proxy for Alexa skills</a>.</p>
<p>To get started with Alexa skills:<br />
- log in to <a href="https://developer.amazon.com">Amazon developer console</a><br />
- Go to Apps &amp; Services =&gt; Alexa =&gt; Alexa Skill Kit - Get Started<br />
- Add a new skill<br />
- Name: Home Assistant<br />
- Invocation name: home assistant (or be creative, up to you)<br />
- Version: 1.0<br />
- Endpoint: https / https://YOUR_HOST/api/alexa?api_password=YOUR_API_PASSWORD</p>
<h3>Configuring your Amazon Alexa skill</h3>
<p>Alexa works based on intents. Each intent has a name and variable slots. For example, a <code>LocateIntent</code> with a slot that contains a <code>User</code>. Example intent schema:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>{
<span class="key"><span class="delimiter">&quot;</span><span class="content">intents</span><span class="delimiter">&quot;</span></span>: [
{
<span class="key"><span class="delimiter">&quot;</span><span class="content">intent</span><span class="delimiter">&quot;</span></span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">LocateIntent</span><span class="delimiter">&quot;</span></span>,
<span class="key"><span class="delimiter">&quot;</span><span class="content">slots</span><span class="delimiter">&quot;</span></span>: [
{
<span class="key"><span class="delimiter">&quot;</span><span class="content">name</span><span class="delimiter">&quot;</span></span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">User</span><span class="delimiter">&quot;</span></span>,
<span class="key"><span class="delimiter">&quot;</span><span class="content">type</span><span class="delimiter">&quot;</span></span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">AMAZON.US_FIRST_NAME</span><span class="delimiter">&quot;</span></span>
}]
},
{
<span class="key"><span class="delimiter">&quot;</span><span class="content">intent</span><span class="delimiter">&quot;</span></span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">WhereAreWeIntent</span><span class="delimiter">&quot;</span></span>,
<span class="key"><span class="delimiter">&quot;</span><span class="content">slots</span><span class="delimiter">&quot;</span></span>: []
}
]
}
</pre></div>
</div>
</div>
<p>To bind these intents to sentences said by users you define utterances. Example utterances can look like this:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>LocateIntent Where is {User}
LocateIntent Where's {User}
LocateIntent Where {User} is
LocateIntent Where did {User} go
WhereAreWeIntent where we are
</pre></div>
</div>
</div>
<p>This means that we can now ask Alexa things like:</p>
<ul>
<li>Alexa, ask Home Assistant where Paul is</li>
<li>Alexa, ask Home Assistant where we are</li>
</ul>
<h3>Configuring Home Assistant</h3>
<p>Out of the box, the component will do nothing. You have to teach it about all intents you want it to answer to. The way it works is that the answer for each intent is based on a templates that you define. Each template will have access to the existing state as per the <code>states</code> variable but will also have access to all variables defined in the intent.</p>
<p>The values of <code>speech/text</code>, <code>card/title</code> and <code>card/content</code> will be parsed as a template.</p>
<p>Configuring the Alexa component for the above intents would look like this:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>
<span class="comment"># Example configuration.yaml entry</span>
<span class="key">alexa</span>:
<span class="key">intents</span>:
<span class="key">WhereAreWeIntent</span>:
<span class="key">speech</span>:
<span class="key">type</span>: <span class="string"><span class="content">plaintext</span></span>
<span class="key">text</span>: <span class="string"><span class="delimiter">&gt;</span><span class="content">
{%- if is_state('device_tracker.paulus', 'home') and
is_state('device_tracker.anne_therese', 'home') -%}
You are both home, you silly
{%- else -%}
Anne Therese is at {{ states(&quot;device_tracker.anne_therese&quot;) }} and
Paulus is at {{ states(&quot;device_tracker.paulus&quot;) }}
{% endif %}</span></span>
<span class="key">LocateIntent</span>:
<span class="key">speech</span>:
<span class="key">type</span>: <span class="string"><span class="content">plaintext</span></span>
<span class="key">text</span>: <span class="string"><span class="delimiter">&gt;</span><span class="content">
{%- for state in states.device_tracker -%}
{%- if state.name[:4].lower() == User.lower() -%}
{{ state.name }} is at {{ state.state }}
{%- endif -%}
{%- else -%}
I am sorry, I do not know where {{ User }} is.
{%- endfor -%}</span></span>
<span class="key">card</span>:
<span class="key">type</span>: <span class="string"><span class="content">simple</span></span>
<span class="key">title</span>: <span class="string"><span class="content">Sample title</span></span>
<span class="key">content</span>: <span class="string"><span class="content">Some more content</span></span>
</pre></div>
</div>
</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='brand-logo-container section'>
<img src='/images/supported_brands/amazon-echo.png' />
</div>
<div class='section'>
<h1 class="title delta">Category Voice</h1>
<ul class='divided'>
<li>
Alexa / Amazon Echo
</li>
</ul>
</div>
</section>
</div>
</aside>
</div>
</div>
<footer>
<div class="grid-wrapper">
<div class="grid">
<div class="grid__item">
<p class="copyright">
<span class="credit">Powered by <a href='http://jekyllrb.com/'>Jekyll</a> and the <a href='https://github.com/coogie/oscailte'>Oscalite theme</a>. Hosted by <a href='https://pages.github.com/'>GitHub</a> and served by <a href='https://cloudflare.com'>CloudFlare</a>.</span>
</p>
</div>
</div>
</div>
</footer>
<!--[if lt IE 7]>
<p class="chromeframe">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> or <a href="http://www.google.com/chromeframe/?redirect=true">activate Google Chrome Frame</a> to improve your experience.</p>
<![endif]-->
<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

@ -173,6 +173,9 @@ This device tracker needs telnet to be enabled on the router.
<li> <li>
<a href='/components/device_tracker.ddwrt/'>DD-WRT</a> <a href='/components/device_tracker.ddwrt/'>DD-WRT</a>
</li> </li>
<li>
<a href='/components/device_tracker.fritz/'>FRITZ!Box</a>
</li>
<li> <li>
<a href='/components/device_tracker.geofancy/'>Geofancy</a> <a href='/components/device_tracker.geofancy/'>Geofancy</a>
</li> </li>

View file

@ -173,6 +173,9 @@ This device tracker needs telnet to be enabled on the router.
<li> <li>
<a href='/components/device_tracker.ddwrt/'>DD-WRT</a> <a href='/components/device_tracker.ddwrt/'>DD-WRT</a>
</li> </li>
<li>
<a href='/components/device_tracker.fritz/'>FRITZ!Box</a>
</li>
<li> <li>
<a href='/components/device_tracker.geofancy/'>Geofancy</a> <a href='/components/device_tracker.geofancy/'>Geofancy</a>
</li> </li>

View file

@ -166,6 +166,9 @@ This device tracker needs telnet to be enabled on the router.
<li> <li>
<a href='/components/device_tracker.ddwrt/'>DD-WRT</a> <a href='/components/device_tracker.ddwrt/'>DD-WRT</a>
</li> </li>
<li>
<a href='/components/device_tracker.fritz/'>FRITZ!Box</a>
</li>
<li> <li>
<a href='/components/device_tracker.geofancy/'>Geofancy</a> <a href='/components/device_tracker.geofancy/'>Geofancy</a>
</li> </li>

View file

@ -162,6 +162,9 @@
<li> <li>
DD-WRT DD-WRT
</li> </li>
<li>
<a href='/components/device_tracker.fritz/'>FRITZ!Box</a>
</li>
<li> <li>
<a href='/components/device_tracker.geofancy/'>Geofancy</a> <a href='/components/device_tracker.geofancy/'>Geofancy</a>
</li> </li>

View file

@ -0,0 +1,244 @@
<!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>FRITZ!Box - Home Assistant</title>
<meta name="author" content="Paulus Schoutsen">
<meta name="description" content="Instructions how to integrate AVM FRITZ!Box based routers into Home Assistant.">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/components/device_tracker.fritz/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="FRITZ!Box">
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/components/device_tracker.fritz/">
<meta property="og:type" content="article">
<meta property="og:description" content="Instructions how to integrate AVM FRITZ!Box based routers into Home Assistant.">
<meta property="og:image" content="https://home-assistant.io/images/home-assistant-logo-2164x2164.png">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@balloob">
<meta name="twitter:title" content="FRITZ!Box">
<meta name="twitter:description" content="Instructions how to integrate AVM FRITZ!Box based routers into Home Assistant.">
<meta name="twitter:image" content="https://home-assistant.io/images/home-assistant-logo-2164x2164.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='/images/favicon-192x192.png'> Home Assistant
</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>
<ul>
<li><a href='/getting-started/'>Installing Home Assistant</a></li>
<li><a href='/getting-started/configuration/'>Configuration basics</a></li>
<li><a href='/getting-started/devices/'>Adding devices</a></li>
<li><a href='/getting-started/presence-detection/'>Presence detection</a></li>
<li><a href='/getting-started/automation/'>Automation</a></li>
<li><a href='/cookbook'>Configuration cookbook</a></li>
</ul>
</li>
<li><a href='/components/'>Components</a></li>
<li>
<a href="/developers/">Developers</a>
<ul>
<li><a href="/developers/architecture/">Architecture</a></li>
<li><a href="/developers/frontend/">Frontend development</a></li>
<li><a href="/developers/creating_components/">
Creating components
</a></li>
<li><a href="/developers/add_new_platform/">
Adding platform support
</a></li>
<li><a href="/developers/api/">API</a></li>
<li><a href="/developers/credits/">Credits</a></li>
</ul>
</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">
FRITZ!Box
</h1>
</header>
<hr class="divider">
<p>The <code>fritz</code> platform offers presence detection by looking at connected devices to a <a href="http://avm.de/produkte/fritzbox/">AVM Fritz!Box</a> based router.</p>
<p class="note warning">
It might be necessary to install additional packages: <code>$ sudo apt-get install libxslt-dev libxml2-dev</code>
</p>
<p>To use an Fritz!Box router in your installation, add the following to your <code>configuration.yaml</code> file:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">device_tracker</span>:
<span class="key">platform</span>: <span class="string"><span class="content">asuswrt</span></span>
<span class="key">host</span>: <span class="string"><span class="content">YOUR_ROUTER_IP</span></span>
<span class="key">username</span>: <span class="string"><span class="content">YOUR_ADMIN_USERNAME</span></span>
<span class="key">password</span>: <span class="string"><span class="content">YOUR_ADMIN_PASSWORD</span></span>
</pre></div>
</div>
</div>
<p>Configuration variables:</p>
<ul>
<li><strong>host</strong> (<em>Optional</em>): The IP address of your router, eg. 192.168.1.1. It is optional since every fritzbox is also reachable by using the IP address 169.254.1.1.</li>
<li><strong>username</strong> (<em>Optional</em>: The username of an user with administrative privileges, usually <em>admin</em>.</li>
<li><strong>password</strong> (<em>Optional</em>): The password for your given admin account.</li>
</ul>
<p class="note">
It seems that it is not necessary to use it in current generation Fritz!Box routers because the necessary data can be retrieved anonymously.
</p>
<p>See the <a href="/components/device_tracker/">device tracker component page</a> for instructions how to configure the people to be tracked.</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='brand-logo-container section'>
<img src='/images/supported_brands/avm.png' />
</div>
<div class='section'>
This is a platform for
<a href='/components/device_tracker/'>the Device Tracker component</a>.
</div>
<div class='section'>
<h1 class="title delta">Category Presence Detection</h1>
<ul class='divided'>
<li>
<a href='/components/device_tracker.asuswrt/'>ASUSWRT</a>
</li>
<li>
<a href='/components/device_tracker.actiontec/'>Actiontec</a>
</li>
<li>
<a href='/components/device_tracker.aruba/'>Aruba</a>
</li>
<li>
<a href='/components/device_tracker.ddwrt/'>DD-WRT</a>
</li>
<li>
FRITZ!Box
</li>
<li>
<a href='/components/device_tracker.geofancy/'>Geofancy</a>
</li>
<li>
<a href='/components/device_tracker.mqtt/'>MQTT device tracker</a>
</li>
<li>
<a href='/components/device_tracker.netgear/'>Netgear</a>
</li>
<li>
<a href='/components/device_tracker.nmap_scanner/'>Nmap</a>
</li>
<li>
<a href='/components/device_tracker.luci/'>OpenWRT (luci)</a>
</li>
<li>
<a href='/components/device_tracker.ubus/'>OpenWRT (ubus)</a>
</li>
<li>
<a href='/components/device_tracker.owntracks/'>Owntracks</a>
</li>
<li>
<a href='/components/device_tracker.snmp/'>SNMP</a>
</li>
<li>
<a href='/components/device_tracker.tplink/'>TP-Link</a>
</li>
<li>
<a href='/components/device_tracker.thomson/'>Thomson</a>
</li>
<li>
<a href='/components/device_tracker.tomato/'>Tomato</a>
</li>
</ul>
</div>
</section>
</div>
</aside>
</div>
</div>
<footer>
<div class="grid-wrapper">
<div class="grid">
<div class="grid__item">
<p class="copyright">
<span class="credit">Powered by <a href='http://jekyllrb.com/'>Jekyll</a> and the <a href='https://github.com/coogie/oscailte'>Oscalite theme</a>. Hosted by <a href='https://pages.github.com/'>GitHub</a> and served by <a href='https://cloudflare.com'>CloudFlare</a>.</span>
</p>
</div>
</div>
</div>
</footer>
<!--[if lt IE 7]>
<p class="chromeframe">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> or <a href="http://www.google.com/chromeframe/?redirect=true">activate Google Chrome Frame</a> to improve your experience.</p>
<![endif]-->
<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

@ -149,6 +149,9 @@
<li> <li>
<a href='/components/device_tracker.ddwrt/'>DD-WRT</a> <a href='/components/device_tracker.ddwrt/'>DD-WRT</a>
</li> </li>
<li>
<a href='/components/device_tracker.fritz/'>FRITZ!Box</a>
</li>
<li> <li>
Geofancy Geofancy
</li> </li>

View file

@ -172,6 +172,9 @@
<li> <li>
<a href='/components/device_tracker.ddwrt/'>DD-WRT</a> <a href='/components/device_tracker.ddwrt/'>DD-WRT</a>
</li> </li>
<li>
<a href='/components/device_tracker.fritz/'>FRITZ!Box</a>
</li>
<li> <li>
<a href='/components/device_tracker.geofancy/'>Geofancy</a> <a href='/components/device_tracker.geofancy/'>Geofancy</a>
</li> </li>

View file

@ -187,6 +187,9 @@
<li> <li>
<a href='/components/device_tracker.ddwrt/'>DD-WRT</a> <a href='/components/device_tracker.ddwrt/'>DD-WRT</a>
</li> </li>
<li>
<a href='/components/device_tracker.fritz/'>FRITZ!Box</a>
</li>
<li> <li>
<a href='/components/device_tracker.geofancy/'>Geofancy</a> <a href='/components/device_tracker.geofancy/'>Geofancy</a>
</li> </li>

View file

@ -162,6 +162,9 @@
<li> <li>
<a href='/components/device_tracker.ddwrt/'>DD-WRT</a> <a href='/components/device_tracker.ddwrt/'>DD-WRT</a>
</li> </li>
<li>
<a href='/components/device_tracker.fritz/'>FRITZ!Box</a>
</li>
<li> <li>
<a href='/components/device_tracker.geofancy/'>Geofancy</a> <a href='/components/device_tracker.geofancy/'>Geofancy</a>
</li> </li>

View file

@ -136,6 +136,7 @@
<section class="aside-module grid__item one-whole lap-one-half"> <section class="aside-module grid__item one-whole lap-one-half">
<div class='brand-logo-container section'> <div class='brand-logo-container section'>
<img src='/images/supported_brands/nmap.png' />
</div> </div>
<div class='section'> <div class='section'>
This is a platform for This is a platform for
@ -156,6 +157,9 @@
<li> <li>
<a href='/components/device_tracker.ddwrt/'>DD-WRT</a> <a href='/components/device_tracker.ddwrt/'>DD-WRT</a>
</li> </li>
<li>
<a href='/components/device_tracker.fritz/'>FRITZ!Box</a>
</li>
<li> <li>
<a href='/components/device_tracker.geofancy/'>Geofancy</a> <a href='/components/device_tracker.geofancy/'>Geofancy</a>
</li> </li>

View file

@ -155,6 +155,9 @@
<li> <li>
<a href='/components/device_tracker.ddwrt/'>DD-WRT</a> <a href='/components/device_tracker.ddwrt/'>DD-WRT</a>
</li> </li>
<li>
<a href='/components/device_tracker.fritz/'>FRITZ!Box</a>
</li>
<li> <li>
<a href='/components/device_tracker.geofancy/'>Geofancy</a> <a href='/components/device_tracker.geofancy/'>Geofancy</a>
</li> </li>

View file

@ -171,6 +171,9 @@ This device tracker needs SNMP to be enabled on the router.
<li> <li>
<a href='/components/device_tracker.ddwrt/'>DD-WRT</a> <a href='/components/device_tracker.ddwrt/'>DD-WRT</a>
</li> </li>
<li>
<a href='/components/device_tracker.fritz/'>FRITZ!Box</a>
</li>
<li> <li>
<a href='/components/device_tracker.geofancy/'>Geofancy</a> <a href='/components/device_tracker.geofancy/'>Geofancy</a>
</li> </li>

View file

@ -164,6 +164,9 @@
<li> <li>
<a href='/components/device_tracker.ddwrt/'>DD-WRT</a> <a href='/components/device_tracker.ddwrt/'>DD-WRT</a>
</li> </li>
<li>
<a href='/components/device_tracker.fritz/'>FRITZ!Box</a>
</li>
<li> <li>
<a href='/components/device_tracker.geofancy/'>Geofancy</a> <a href='/components/device_tracker.geofancy/'>Geofancy</a>
</li> </li>

View file

@ -163,6 +163,9 @@
<li> <li>
<a href='/components/device_tracker.ddwrt/'>DD-WRT</a> <a href='/components/device_tracker.ddwrt/'>DD-WRT</a>
</li> </li>
<li>
<a href='/components/device_tracker.fritz/'>FRITZ!Box</a>
</li>
<li> <li>
<a href='/components/device_tracker.geofancy/'>Geofancy</a> <a href='/components/device_tracker.geofancy/'>Geofancy</a>
</li> </li>

View file

@ -171,6 +171,9 @@
<li> <li>
<a href='/components/device_tracker.ddwrt/'>DD-WRT</a> <a href='/components/device_tracker.ddwrt/'>DD-WRT</a>
</li> </li>
<li>
<a href='/components/device_tracker.fritz/'>FRITZ!Box</a>
</li>
<li> <li>
<a href='/components/device_tracker.geofancy/'>Geofancy</a> <a href='/components/device_tracker.geofancy/'>Geofancy</a>
</li> </li>

View file

@ -208,6 +208,9 @@ file
<li> <li>
<a href='/components/device_tracker.ddwrt/'>DD-WRT</a> <a href='/components/device_tracker.ddwrt/'>DD-WRT</a>
</li> </li>
<li>
<a href='/components/device_tracker.fritz/'>FRITZ!Box</a>
</li>
<li> <li>
<a href='/components/device_tracker.geofancy/'>Geofancy</a> <a href='/components/device_tracker.geofancy/'>Geofancy</a>
</li> </li>

View file

@ -162,6 +162,9 @@
<li><a href='/components/device_tracker.ddwrt/'> <li><a href='/components/device_tracker.ddwrt/'>
DD-WRT DD-WRT
</a></li> </a></li>
<li><a href='/components/device_tracker.fritz/'>
FRITZ!Box
</a></li>
<li><a href='/components/device_tracker.geofancy/'> <li><a href='/components/device_tracker.geofancy/'>
Geofancy Geofancy
</a></li> </a></li>

View file

@ -192,6 +192,10 @@ Support for these components is provided by the Home Assistant community.
<a href='#voice' class="btn">Voice</a>
<a href='#weather' class="btn">Weather</a> <a href='#weather' class="btn">Weather</a>
@ -228,6 +232,18 @@ Support for these components is provided by the Home Assistant community.
<a href='/components/alexa/' class='voice'>
<div class='img-container'>
<img src='/images/supported_brands/amazon-echo.png'>
</div>
<div class='title'>Alexa / Amazon Echo</div>
<div class='category'>Voice</div>
</a>
<a href='/components/arduino/' class='diy featured'> <a href='/components/arduino/' class='diy featured'>
<div class='img-container'> <div class='img-container'>
@ -522,6 +538,18 @@ Support for these components is provided by the Home Assistant community.
<a href='/components/device_tracker.fritz/' class='presence-detection'>
<div class='img-container'>
<img src='/images/supported_brands/avm.png'>
</div>
<div class='title'>FRITZ!Box</div>
<div class='category'>Presence Detection</div>
</a>
<a href='/components/notify.file/' class='notifications'> <a href='/components/notify.file/' class='notifications'>
<div class='img-container'> <div class='img-container'>
@ -547,6 +575,8 @@ Support for these components is provided by the Home Assistant community.
<a href='/components/sensor.forecast/' class='weather featured'> <a href='/components/sensor.forecast/' class='weather featured'>
<div class='img-container'> <div class='img-container'>
<img src='/images/supported_brands/forecast.png'>
</div> </div>
<div class='title'>Forecast.io</div> <div class='title'>Forecast.io</div>
<div class='category'>Weather</div> <div class='category'>Weather</div>
@ -1075,6 +1105,8 @@ Support for these components is provided by the Home Assistant community.
<a href='/components/device_tracker.nmap_scanner/' class='presence-detection featured'> <a href='/components/device_tracker.nmap_scanner/' class='presence-detection featured'>
<div class='img-container'> <div class='img-container'>
<img src='/images/supported_brands/nmap.png'>
</div> </div>
<div class='title'>Nmap</div> <div class='title'>Nmap</div>
<div class='category'>Presence Detection</div> <div class='category'>Presence Detection</div>

View file

@ -175,6 +175,7 @@
<section class="aside-module grid__item one-whole lap-one-half"> <section class="aside-module grid__item one-whole lap-one-half">
<div class='brand-logo-container section'> <div class='brand-logo-container section'>
<img src='/images/supported_brands/forecast.png' />
</div> </div>
<div class='section'> <div class='section'>
<h1 class="title delta">Category Weather</h1> <h1 class="title delta">Category Weather</h1>

View file

@ -107,7 +107,7 @@
<hr class="divider"> <hr class="divider">
<p>Home Assistant uses <a href="https://www.polymer-project.org/">Polymer</a> for the UI and <a href="http://optimizely.github.io/nuclear-js/">NuclearJS</a> for all data management.</p> <p>Home Assistant uses <a href="https://www.polymer-project.org/">Polymer</a> for the UI and <a href="http://optimizely.github.io/nuclear-js/">NuclearJS</a> for maintaing the app state.</p>
<ul> <ul>
<li>Polymer allows building encapsulated custom HTML elements.<br /> <li>Polymer allows building encapsulated custom HTML elements.<br />
@ -120,8 +120,9 @@
Do not use development mode in production. Home Assistant uses aggressive caching to improve the mobile experience. This is disabled during development so that you do not have to restart the server in between changes. Do not use development mode in production. Home Assistant uses aggressive caching to improve the mobile experience. This is disabled during development so that you do not have to restart the server in between changes.
</p> </p>
<h1><a class="title-link" name="turning-on-development-mode" href="#turning-on-development-mode"></a> Turning on development mode</h1> <h2><a class="title-link" name="setting-up-the-environment" href="#setting-up-the-environment"></a> Setting up the environment</h2>
<p>Home Assistant will by default serve the compiled version of the frontend. To change it so that each component and JavaScript are served separately, update your <code>configuration.yaml</code> to have these lines:</p>
<p>Home Assistant will by default serve the compiled version of the frontend. To enable development mode for Home Assistant, update your <code>configuration.yaml</code> to have these lines:</p>
<div class="highlighter-coderay"><div class="CodeRay"> <div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="key">http</span>: <div class="code"><pre><span class="key">http</span>:
@ -130,33 +131,33 @@ Do not use development mode in production. Home Assistant uses aggressive cachin
</div> </div>
</div> </div>
<p>Next step is to get the frontend code. When you clone the Home Assistant repository, the frontend repository is not cloned by default. You will have to do this by running from the command line:</p> <p>Next step is to get the frontend code. When you clone the Home Assistant repository, the frontend repository is not cloned by default. You can setup the frontend development environment by running:</p>
<div class="highlighter-coderay"><div class="CodeRay"> <div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>$ git submodule update --init <div class="code"><pre>$ script/setup
</pre></div> </pre></div>
</div> </div>
</div> </div>
<p>After checking out the frontend code, you will have to install the frontend dependencies. Firing off a build of the frontend by running <code>script/build_frontend</code> will ensure they get installed.</p> <h2><a class="title-link" name="development" href="#development"></a> Development</h2>
<p>Once this is done, you can start editting the webcomponents in the folder <code>homeassistant/components/frontend/www_static/home-assistant-polymer/src</code>. To see the changes youve made, simply refresh your browser.</p> <p>While you are developing, you need to have webpack running to have your JavaScript changes be made available.</p>
<h2><a class="title-link" name="enabling-javascript-backend-development" href="#enabling-javascript-backend-development"></a> Enabling JavaScript backend development</h2>
<p>Polymer is only providing a UI toolkit for Home Assistant. All data management and interaction with the server is done by <code>home-assistant-js</code> leveraging NuclearJS. To enable JavaScript development:</p>
<div class="highlighter-coderay"><div class="CodeRay"> <div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>$ cd homeassistant/components/frontend/www_static/home-assistant-polymer/ <div class="code"><pre>$ cd homeassistant/components/frontend/www_static/home-assistant-polymer
$ npm run setup_js_dev
$ npm run js_dev $ npm run js_dev
</pre></div> </pre></div>
</div> </div>
</div> </div>
<p><code>npm run js_dev</code> will start the process that will ensure that your latest changes to the JavaScript files will be loaded when you refresh the page. This command has to be always running while working on home-assistant-js.</p> <p>The source code for the frontend can be found in two different directories:</p>
<p>After your changes have been accepted into the <code>home-assistant-js</code> repository, well have to update Home Assistant Polymer to use the latest version. This can be done by updating <code>package.json</code>. Look for the line that contains <code>home-assistant-js</code> and update the SHA to the SHA of your commit.</p> <ul>
<li>UI: <code>homeassistant/components/frontend/www_static/home-assistant-polymer/src/</code></li>
<li>Core: <code>homeassistant/components/frontend/www_static/home-assistant-polymer/node_modules/home-assistant-js/src/</code></li>
</ul>
<p>After your changes have been accepted into the home-assistant-js repository, youll have to update Home Assistant Polymer to use the latest version of it. This can be done by updating <code>package.json</code>. Look for the line that contains home-assistant-js and update the SHA to the SHA of the last commit.</p>
<h1><a class="title-link" name="building-the-polymer-frontend" href="#building-the-polymer-frontend"></a> Building the Polymer frontend</h1> <h1><a class="title-link" name="building-the-polymer-frontend" href="#building-the-polymer-frontend"></a> Building the Polymer frontend</h1>

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 9 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.7 KiB

After

Width:  |  Height:  |  Size: 7.1 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1 KiB

After

Width:  |  Height:  |  Size: 6.3 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 105 KiB

After

Width:  |  Height:  |  Size: 40 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.8 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Before After
Before After

View file

@ -745,6 +745,12 @@
<url> <url>
<loc>https://home-assistant.io/components/thermostat.heatmiser/</loc> <loc>https://home-assistant.io/components/thermostat.heatmiser/</loc>
</url> </url>
<url>
<loc>https://home-assistant.io/components/alexa/</loc>
</url>
<url>
<loc>https://home-assistant.io/components/device_tracker.fritz/</loc>
</url>
<url> <url>
<loc>https://home-assistant.io/cookbook/automation_for_rainy_days/</loc> <loc>https://home-assistant.io/cookbook/automation_for_rainy_days/</loc>
</url> </url>