Site updated at 2015-10-29 07:09:11 UTC

This commit is contained in:
Paulus Schoutsen 2015-10-29 00:09:11 -07:00
parent 7412a60701
commit b260f2881e
362 changed files with 42053 additions and 256343 deletions

BIN
.jekyll-metadata Normal file

Binary file not shown.

3907
atom.xml

File diff suppressed because it is too large Load diff

View file

@ -5,8 +5,6 @@
<!--[if gt IE 8]><!--> <html> <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
@ -32,7 +30,6 @@
<link rel='icon' type='image/png' href='/images/favicon-192x192.png' sizes='192x192' />
</head>
<body >
<header>
@ -54,10 +51,10 @@
<a href="/getting-started/">Getting started</a>
<ul>
<li><a href='/getting-started/'>Installing Home Assistant</a></li>
<li><a href='/getting-started/configuration.html'>Configuration basics</a></li>
<li><a href='/getting-started/devices.html'>Adding devices</a></li>
<li><a href='/getting-started/presence-detection.html'>Presence detection</a></li>
<li><a href='/getting-started/automation.html'>Automation</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>
@ -65,26 +62,24 @@
<li>
<a href="/developers/">Developers</a>
<ul>
<li><a href="/developers/architecture.html">Architecture</a></li>
<li><a href="/developers/frontend.html">Frontend development</a></li>
<li><a href="/developers/creating_components.html">
<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.html">
<li><a href="/developers/add_new_platform/">
Adding platform support
</a></li>
<li><a href="/developers/api.html">API</a></li>
<li><a href="/developers/credits.html">Credits</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>
@ -98,6 +93,7 @@
<article class="post">
<header>
<h1 class="title indent">Website launched!</h1>
@ -105,27 +101,9 @@
<div class="meta clearfix">
<time datetime="2014-12-18T23:24:45-08:00" pubdate data-updated="true"><i class="icon-calendar"></i> December 18, 2014</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<time datetime="2014-12-18T23:24:45-08:00" pubdate data-updated="true"><i class="icon-calendar"></i> December 18, 2014</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<span><i class='icon-time'></i> less than one minute reading time</span>
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -137,7 +115,6 @@
</ul>
</span>
<a class='comments'
href="#disqus_thread"
>Comments</a>
@ -147,18 +124,13 @@
</header>
<p>I finally took the time to setup a simple website to help people getting started with Home Assistant. The process was super smooth thanks to the great tools <a href="http://jekyllrb.com">Jekyll</a> and <a href="http://octopress.org">Octopress</a> and the great services <a href="https://pages.github.com">GitHub Pages</a> and <a href="https://cloudflare.com">CloudFlare</a>.</p>
</article>
<section id="disqus">
<h3 class="indent title">Comments</h3>
<div id="disqus_thread" aria-live="polite"><noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
</div>
<div id="disqus_thread" aria-live="polite"><noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript></div>
</section>
@ -170,7 +142,6 @@
<section class="sharing aside-module grid__item one-whole lap-one-half">
<h1 class="title delta">Share this post</h1>
@ -252,7 +223,6 @@
</div>
</aside>
</div>
@ -263,30 +233,23 @@
<div class="grid">
<div class="grid__item">
<p class="copyright">
<span class="credit">Powered by <a href="http://octopress.org">Octopress</a>, <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>
<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>
<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>
<script>
var disqus_shortname = 'home-assistant';
@ -303,13 +266,5 @@
}());
</script>
</body>
</html>

View file

@ -5,8 +5,6 @@
<!--[if gt IE 8]><!--> <html> <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
@ -32,7 +30,6 @@
<link rel='icon' type='image/png' href='/images/favicon-192x192.png' sizes='192x192' />
</head>
<body >
<header>
@ -54,10 +51,10 @@
<a href="/getting-started/">Getting started</a>
<ul>
<li><a href='/getting-started/'>Installing Home Assistant</a></li>
<li><a href='/getting-started/configuration.html'>Configuration basics</a></li>
<li><a href='/getting-started/devices.html'>Adding devices</a></li>
<li><a href='/getting-started/presence-detection.html'>Presence detection</a></li>
<li><a href='/getting-started/automation.html'>Automation</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>
@ -65,26 +62,24 @@
<li>
<a href="/developers/">Developers</a>
<ul>
<li><a href="/developers/architecture.html">Architecture</a></li>
<li><a href="/developers/frontend.html">Frontend development</a></li>
<li><a href="/developers/creating_components.html">
<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.html">
<li><a href="/developers/add_new_platform/">
Adding platform support
</a></li>
<li><a href="/developers/api.html">API</a></li>
<li><a href="/developers/credits.html">Credits</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>
@ -98,6 +93,7 @@
<article class="post">
<header>
<h1 class="title indent">Home Control, Automation &amp; the Smart Home</h1>
@ -105,27 +101,9 @@
<div class="meta clearfix">
<time datetime="2014-12-26T10:23:13-08:00" pubdate data-updated="true"><i class="icon-calendar"></i> December 26, 2014</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<time datetime="2014-12-26T10:23:13-08:00" pubdate data-updated="true"><i class="icon-calendar"></i> December 26, 2014</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<span><i class='icon-time'></i> four minutes reading time</span>
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -137,7 +115,6 @@
</ul>
</span>
<a class='comments'
href="#disqus_thread"
>Comments</a>
@ -147,9 +124,7 @@
</header>
<p>The internet has been buzzing over the last year about home automation. A lot of different terms fly around like the internet of things, home automation and the smart home.
<p>The internet has been buzzing over the last year about home automation. A lot of different terms fly around like the internet of things, home automation and the smart home.<br />
This article will try to explain how they all relate.</p>
<p>The first thing to introduce is the <strong>Internet of Things</strong> (IoT). This refers to a new generation of devices that cannot only be controlled by humans via buttons or remotes but also provide an interface to communicate with other devices and applications. For example, an IoT-capable coffee machine could receive commands to create different types of coffee and be able to broadcast the amount of water left in its resevoir.</p>
@ -158,18 +133,13 @@ This article will try to explain how they all relate.</p>
<p>As a bare minimum a hub has to keep track of the state of each device and should be able to control them if possible. For example, it has to know which lights are on or off and offer a way to control the lights. For a sensor it only has to know the value. A hub with these capabilities offers <strong>home control</strong>.</p>
<p class='img'>
<a href='/images/screenshots/nexus_7_dashboard.png'>
<img alt='Hub dashboard example'
src='/images/screenshots/nexus_7_dashboard.png' />
<p class="img">
<a href="/images/screenshots/nexus_7_dashboard.png">
<img alt="Hub dashboard example" src="/images/screenshots/nexus_7_dashboard.png" />
</a>
Example of a hub&#8217;s dashboard. Showing the state of 2 persons, 4 lights and the sun.
Example of a hubs dashboard. Showing the state of 2 persons, 4 lights and the sun.
</p>
<a name="read-more"></a>
<p>A step up from home control is to have the user setup triggers to send commands based on information in the home control layer. For example, to turn on the lights when a person arrives home. A hub with these capabilities is capable of <strong>home automation</strong>.</p>
<p>Most hubs on the market today offer this in various degrees of functionality and usability. Some IoT-capable devices offer this too, but only control themselves and are usually limited to location and time-based events.</p>
@ -182,45 +152,40 @@ This article will try to explain how they all relate.</p>
<p>All this results in the following overview of Home Automation.</p>
<p class='img'>
<a href='/images/architecture/home_automation_landscape.png'>
<img alt='Home Automation landscape'
src='/images/architecture/home_automation_landscape.png' />
<p class="img">
<a href="/images/architecture/home_automation_landscape.png">
<img alt="Home Automation landscape" src="/images/architecture/home_automation_landscape.png" />
</a>
Overview of the home automation landscape.
</p>
<h3>Challenges</h3>
<p>You are probably wondering, this all seems relatively simple, why don&rsquo;t I have my very own smart home yet? There are a couple of challenges today that keep us from stepping into the future.</p>
<p>You are probably wondering, this all seems relatively simple, why dont I have my very own smart home yet? There are a couple of challenges today that keep us from stepping into the future.</p>
<h4>More Internet of Things-capable devices</h4>
<p>The majority of the IoT products out there are either lights, switches or presence detection. That&rsquo;s not enough for your home to be very smart about. We need televisions, fridges, ovens and more to join the party to increase the number of devices that we can control.</p>
<p>The majority of the IoT products out there are either lights, switches or presence detection. Thats not enough for your home to be very smart about. We need televisions, fridges, ovens and more to join the party to increase the number of devices that we can control.</p>
<h4>More data</h4>
<p>Most first generation IoT devices are only exposing information that is needed for controlling it. We need to be able to track all interactions with each device for our smart home to learn how interaction with devices influence other things. For example, we need to be able to track how many cups of coffee were made or how often the fridge was open. This will increase the information flow and open up a whole bunch of new possibilities. For example, the smart home can order new coffee when you&rsquo;re running low.</p>
<p>Most first generation IoT devices are only exposing information that is needed for controlling it. We need to be able to track all interactions with each device for our smart home to learn how interaction with devices influence other things. For example, we need to be able to track how many cups of coffee were made or how often the fridge was open. This will increase the information flow and open up a whole bunch of new possibilities. For example, the smart home can order new coffee when youre running low.</p>
<h4>Easy to use, open software that we can trust</h4>
<p>To increase adoption we will need people to trust their smart home system. It will be very tough to convince people to upgrade all their devices and upload all interactions with each of them to the cloud. This data could reveal their whole life including all bad habits. That&rsquo;s why such a system should be simple and open-source so people can validate that their data generated at home stays home.</p>
<p>To increase adoption we will need people to trust their smart home system. It will be very tough to convince people to upgrade all their devices and upload all interactions with each of them to the cloud. This data could reveal their whole life including all bad habits. Thats why such a system should be simple and open-source so people can validate that their data generated at home stays home.</p>
<p>Anoter important booster for adoption is that the software should be easy to set up and use by the average user. A lot of people are not burning their hands yet on Home Automation because they are scared of configurating it.</p>
<p>Home Assistant is trying to be this software. It is not there yet but trying hard. Device discovery and a user interface for configuring home automation are problems we hope to tackle in 2015 while not sacrificing any modularity or usability.</p>
<p>Happy new year!</p>
</article>
<section id="disqus">
<h3 class="indent title">Comments</h3>
<div id="disqus_thread" aria-live="polite"><noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
</div>
<div id="disqus_thread" aria-live="polite"><noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript></div>
</section>
@ -232,7 +197,6 @@ This article will try to explain how they all relate.</p>
<section class="sharing aside-module grid__item one-whole lap-one-half">
<h1 class="title delta">Share this post</h1>
@ -314,7 +278,6 @@ This article will try to explain how they all relate.</p>
</div>
</aside>
</div>
@ -325,30 +288,23 @@ This article will try to explain how they all relate.</p>
<div class="grid">
<div class="grid__item">
<p class="copyright">
<span class="credit">Powered by <a href="http://octopress.org">Octopress</a>, <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>
<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>
<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>
<script>
var disqus_shortname = 'home-assistant';
@ -365,13 +321,5 @@ This article will try to explain how they all relate.</p>
}());
</script>
</body>
</html>

View file

@ -5,8 +5,6 @@
<!--[if gt IE 8]><!--> <html> <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
@ -32,7 +30,6 @@
<link rel='icon' type='image/png' href='/images/favicon-192x192.png' sizes='192x192' />
</head>
<body >
<header>
@ -54,10 +51,10 @@
<a href="/getting-started/">Getting started</a>
<ul>
<li><a href='/getting-started/'>Installing Home Assistant</a></li>
<li><a href='/getting-started/configuration.html'>Configuration basics</a></li>
<li><a href='/getting-started/devices.html'>Adding devices</a></li>
<li><a href='/getting-started/presence-detection.html'>Presence detection</a></li>
<li><a href='/getting-started/automation.html'>Automation</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>
@ -65,26 +62,24 @@
<li>
<a href="/developers/">Developers</a>
<ul>
<li><a href="/developers/architecture.html">Architecture</a></li>
<li><a href="/developers/frontend.html">Frontend development</a></li>
<li><a href="/developers/creating_components.html">
<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.html">
<li><a href="/developers/add_new_platform/">
Adding platform support
</a></li>
<li><a href="/developers/api.html">API</a></li>
<li><a href="/developers/credits.html">Credits</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>
@ -98,6 +93,7 @@
<article class="post">
<header>
<h1 class="title indent">Hello PushBullet, nice talking to you</h1>
@ -105,27 +101,9 @@
<div class="meta clearfix">
<time datetime="2015-01-04T13:29:07-08:00" pubdate data-updated="true"><i class="icon-calendar"></i> January 4, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<time datetime="2015-01-04T13:29:07-08:00" pubdate data-updated="true"><i class="icon-calendar"></i> January 4, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<span><i class='icon-time'></i> 1 minute reading time</span>
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -137,7 +115,6 @@
</ul>
</span>
<a class='comments'
href="#disqus_thread"
>Comments</a>
@ -147,34 +124,30 @@
</header>
<p>One of the things that was missing in Home Assistant for a while was a way to communicate with users. Wouldn&rsquo;t it be nice to get a message when important events happen like the lights being turned on while no one is home? Since the Home Assistant frontend runs as a web application on the phone, we have no way to bring ourselves to the front. This is where the new notify component comes in, powered by PushBullet.</p>
<p>One of the things that was missing in Home Assistant for a while was a way to communicate with users. Wouldnt it be nice to get a message when important events happen like the lights being turned on while no one is home? Since the Home Assistant frontend runs as a web application on the phone, we have no way to bring ourselves to the front. This is where the new notify component comes in, powered by PushBullet.</p>
<p>The new notify component will take in messages and tells them to the user. For now this will be powered by the very awesome <a href="https://www.pushbullet.com/">PushBullet</a> but any other messaging platform can be easily added.</p>
<p class='img'>
<img src='/images/screenshots/pushbullet_moto360.png' />
<p class="img">
<img src="/images/screenshots/pushbullet_moto360.png" />
A message triggered by the simple_alarm component is shown by PushBullet on the Moto360.
</p>
<p>Read on to learn how to enable the notify component and integrate it with other components.</p>
<a name="read-more"></a>
<h3>Enabling the notify component</h3>
<p>To enable the new notify component, add the following to your <code>home-assistant.conf</code>:</p>
<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>[notify]
</span><span class='line'>platform=pushbullet
</span><span class='line'>api_key=ABCDEFGHJKLMNOPQRSTUVXYZ</span></code></pre></td></tr></table></div></figure>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>[notify]
platform=pushbullet
api_key=ABCDEFGHJKLMNOPQRSTUVXYZ
</pre></div>
</div>
</div>
<p>You can get your api key from <a href="https://www.pushbullet.com/account">your account page on PushBullet.com</a>.</p>
@ -182,27 +155,21 @@
<p>To be able to send messages, the notify component has to be loaded and initialized successfully.</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
</pre></td><td class='code'><pre><code class='python'><span class='line'><span class="kn">import</span> <span class="nn">homeassistant.loader</span> <span class="kn">as</span> <span class="nn">loader</span>
</span><span class='line'>
</span><span class='line'><span class="k">def</span> <span class="nf">setup</span><span class="p">(</span><span class="n">hass</span><span class="p">,</span> <span class="n">config</span><span class="p">):</span>
</span><span class='line'> <span class="n">notify</span> <span class="o">=</span> <span class="n">loader</span><span class="o">.</span><span class="n">get_component</span><span class="p">(</span><span class="s">&#39;notify&#39;</span><span class="p">)</span>
</span><span class='line'> <span class="n">notify</span><span class="o">.</span><span class="n">send_message</span><span class="p">(</span><span class="n">hass</span><span class="p">,</span> <span class="s">&quot;Hello from my component!&quot;</span><span class="p">)</span>
</span></code></pre></td></tr></table></div></figure>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="keyword">import</span> <span class="include">homeassistant.loader</span> <span class="keyword">as</span> loader
<span class="keyword">def</span> <span class="function">setup</span>(hass, config):
notify = loader.get_component(<span class="string"><span class="delimiter">'</span><span class="content">notify</span><span class="delimiter">'</span></span>)
notify.send_message(hass, <span class="string"><span class="delimiter">&quot;</span><span class="content">Hello from my component!</span><span class="delimiter">&quot;</span></span>)
</pre></div>
</div>
</div>
</article>
<section id="disqus">
<h3 class="indent title">Comments</h3>
<div id="disqus_thread" aria-live="polite"><noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
</div>
<div id="disqus_thread" aria-live="polite"><noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript></div>
</section>
@ -214,7 +181,6 @@
<section class="sharing aside-module grid__item one-whole lap-one-half">
<h1 class="title delta">Share this post</h1>
@ -296,7 +262,6 @@
</div>
</aside>
</div>
@ -307,30 +272,23 @@
<div class="grid">
<div class="grid__item">
<p class="copyright">
<span class="credit">Powered by <a href="http://octopress.org">Octopress</a>, <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>
<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>
<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>
<script>
var disqus_shortname = 'home-assistant';
@ -347,13 +305,5 @@
}());
</script>
</body>
</html>

View file

@ -5,8 +5,6 @@
<!--[if gt IE 8]><!--> <html> <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
@ -32,7 +30,6 @@
<link rel='icon' type='image/png' href='/images/favicon-192x192.png' sizes='192x192' />
</head>
<body >
<header>
@ -54,10 +51,10 @@
<a href="/getting-started/">Getting started</a>
<ul>
<li><a href='/getting-started/'>Installing Home Assistant</a></li>
<li><a href='/getting-started/configuration.html'>Configuration basics</a></li>
<li><a href='/getting-started/devices.html'>Adding devices</a></li>
<li><a href='/getting-started/presence-detection.html'>Presence detection</a></li>
<li><a href='/getting-started/automation.html'>Automation</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>
@ -65,26 +62,24 @@
<li>
<a href="/developers/">Developers</a>
<ul>
<li><a href="/developers/architecture.html">Architecture</a></li>
<li><a href="/developers/frontend.html">Frontend development</a></li>
<li><a href="/developers/creating_components.html">
<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.html">
<li><a href="/developers/add_new_platform/">
Adding platform support
</a></li>
<li><a href="/developers/api.html">API</a></li>
<li><a href="/developers/credits.html">Credits</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>
@ -98,6 +93,7 @@
<article class="post">
<header>
<h1 class="title indent">Bootstrapping your setup with Discovery</h1>
@ -105,27 +101,9 @@
<div class="meta clearfix">
<time datetime="2015-01-11T21:49:08-08:00" pubdate data-updated="true"><i class="icon-calendar"></i> January 11, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<time datetime="2015-01-11T21:49:08-08:00" pubdate data-updated="true"><i class="icon-calendar"></i> January 11, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<span><i class='icon-time'></i> less than one minute reading time</span>
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -137,7 +115,6 @@
</ul>
</span>
<a class='comments'
href="#disqus_thread"
>Comments</a>
@ -147,8 +124,6 @@
</header>
<p>Most people do not like configuring things. Things just have to work, out of the box. Reaching this scenario is the goal of what we are about to introduce: our new discovery component.</p>
<p>The discovery component will scan the WiFi network from time to time for connected zeroconf/mDNS and uPnP devices. The intial introduction is mainly focussed on getting the right architecture in place and discovers Belkin WeMo switches and Google Chromecasts connected to your network. When found, it will load and notify the appropritate component and it will be ready to use within seconds.</p>
@ -157,20 +132,19 @@
<p>To enable the discovery component, add the following to your <code>home-assistant.conf</code>:</p>
<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>[discovery]</span></code></pre></td></tr></table></div></figure>
<p>A new <a href="/developers/add_new_platform.html#discovery">discovery section</a> has been added to the Adding a new platform page with instructions how to make your platform discoverable.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>[discovery]
</pre></div>
</div>
</div>
<p>A new <a href="/developers/add_new_platform/#discovery">discovery section</a> has been added to the Adding a new platform page with instructions how to make your platform discoverable.</p>
</article>
<section id="disqus">
<h3 class="indent title">Comments</h3>
<div id="disqus_thread" aria-live="polite"><noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
</div>
<div id="disqus_thread" aria-live="polite"><noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript></div>
</section>
@ -182,7 +156,6 @@
<section class="sharing aside-module grid__item one-whole lap-one-half">
<h1 class="title delta">Share this post</h1>
@ -264,7 +237,6 @@
</div>
</aside>
</div>
@ -275,30 +247,23 @@
<div class="grid">
<div class="grid__item">
<p class="copyright">
<span class="credit">Powered by <a href="http://octopress.org">Octopress</a>, <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>
<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>
<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>
<script>
var disqus_shortname = 'home-assistant';
@ -315,13 +280,5 @@
}());
</script>
</body>
</html>

View file

@ -5,8 +5,6 @@
<!--[if gt IE 8]><!--> <html> <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
@ -32,7 +30,6 @@
<link rel='icon' type='image/png' href='/images/favicon-192x192.png' sizes='192x192' />
</head>
<body >
<header>
@ -54,10 +51,10 @@
<a href="/getting-started/">Getting started</a>
<ul>
<li><a href='/getting-started/'>Installing Home Assistant</a></li>
<li><a href='/getting-started/configuration.html'>Configuration basics</a></li>
<li><a href='/getting-started/devices.html'>Adding devices</a></li>
<li><a href='/getting-started/presence-detection.html'>Presence detection</a></li>
<li><a href='/getting-started/automation.html'>Automation</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>
@ -65,26 +62,24 @@
<li>
<a href="/developers/">Developers</a>
<ul>
<li><a href="/developers/architecture.html">Architecture</a></li>
<li><a href="/developers/frontend.html">Frontend development</a></li>
<li><a href="/developers/creating_components.html">
<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.html">
<li><a href="/developers/add_new_platform/">
Adding platform support
</a></li>
<li><a href="/developers/api.html">API</a></li>
<li><a href="/developers/credits.html">Credits</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>
@ -98,6 +93,7 @@
<article class="post">
<header>
<h1 class="title indent">Nest in the house!</h1>
@ -105,27 +101,9 @@
<div class="meta clearfix">
<time datetime="2015-01-13T08:29:04-08:00" pubdate data-updated="true"><i class="icon-calendar"></i> January 13, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<time datetime="2015-01-13T08:29:04-08:00" pubdate data-updated="true"><i class="icon-calendar"></i> January 13, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<span><i class='icon-time'></i> less than one minute reading time</span>
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -137,7 +115,6 @@
</ul>
</span>
<a class='comments'
href="#disqus_thread"
>Comments</a>
@ -147,37 +124,30 @@
</header>
<p>For thet majority of its existence, Home Assistant primary focus was on presence detection, lights and switches. But not anymore as were expanding the supported devices. Today, were proud to introduce Nest Thermostat integration for Home Assistant contributed by <a href="https://github.com/sfiorini">Stefano Fiorini</a>!</p>
<p>For thet majority of its existence, Home Assistant primary focus was on presence detection, lights and switches. But not anymore as we&rsquo;re expanding the supported devices. Today, we&rsquo;re proud to introduce Nest Thermostat integration for Home Assistant contributed by <a href="https://github.com/sfiorini">Stefano Fiorini</a>!</p>
<p class='img'>
<img src='/images/screenshots/nest-thermostat-card.png' />
<p class="img">
<img src="/images/screenshots/nest-thermostat-card.png" />
</p>
<p>The new integration exists out of two parts: a generic thermostat component and a Nest platform implementation. The initial version implements provides a read-only card and services to control it. The plan is in the future to add temperature and away mode controls from the thermostat card and more info dialog. Internally, we are using the Python package <a href="https://github.com/jkoelker/python-nest">python-nest by jkoelker</a> to talk to the Nest.</p>
<p>If you own a Nest thermostat, add the following lines to your <code>home-assistant.conf</code>:</p>
<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>[thermostat]
</span><span class='line'>platform=nest
</span><span class='line'>username=YOUR_USERNAME
</span><span class='line'>password=YOUR_PASSWORD</span></code></pre></td></tr></table></div></figure>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>[thermostat]
platform=nest
username=YOUR_USERNAME
password=YOUR_PASSWORD
</pre></div>
</div>
</div>
</article>
<section id="disqus">
<h3 class="indent title">Comments</h3>
<div id="disqus_thread" aria-live="polite"><noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
</div>
<div id="disqus_thread" aria-live="polite"><noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript></div>
</section>
@ -189,7 +159,6 @@
<section class="sharing aside-module grid__item one-whole lap-one-half">
<h1 class="title delta">Share this post</h1>
@ -271,7 +240,6 @@
</div>
</aside>
</div>
@ -282,30 +250,23 @@
<div class="grid">
<div class="grid__item">
<p class="copyright">
<span class="credit">Powered by <a href="http://octopress.org">Octopress</a>, <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>
<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>
<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>
<script>
var disqus_shortname = 'home-assistant';
@ -322,13 +283,5 @@
}());
</script>
</body>
</html>

View file

@ -5,8 +5,6 @@
<!--[if gt IE 8]><!--> <html> <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
@ -32,7 +30,6 @@
<link rel='icon' type='image/png' href='/images/favicon-192x192.png' sizes='192x192' />
</head>
<body >
<header>
@ -54,10 +51,10 @@
<a href="/getting-started/">Getting started</a>
<ul>
<li><a href='/getting-started/'>Installing Home Assistant</a></li>
<li><a href='/getting-started/configuration.html'>Configuration basics</a></li>
<li><a href='/getting-started/devices.html'>Adding devices</a></li>
<li><a href='/getting-started/presence-detection.html'>Presence detection</a></li>
<li><a href='/getting-started/automation.html'>Automation</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>
@ -65,26 +62,24 @@
<li>
<a href="/developers/">Developers</a>
<ul>
<li><a href="/developers/architecture.html">Architecture</a></li>
<li><a href="/developers/frontend.html">Frontend development</a></li>
<li><a href="/developers/creating_components.html">
<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.html">
<li><a href="/developers/add_new_platform/">
Adding platform support
</a></li>
<li><a href="/developers/api.html">API</a></li>
<li><a href="/developers/credits.html">Credits</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>
@ -98,6 +93,7 @@
<article class="post">
<header>
<h1 class="title indent">Release notes for January 24, 2015</h1>
@ -105,27 +101,9 @@
<div class="meta clearfix">
<time datetime="2015-01-24T18:36:00-08:00" pubdate data-updated="true"><i class="icon-calendar"></i> January 24, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<time datetime="2015-01-24T18:36:00-08:00" pubdate data-updated="true"><i class="icon-calendar"></i> January 24, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<span><i class='icon-time'></i> 1 minute reading time</span>
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -137,7 +115,6 @@
</ul>
</span>
<a class='comments'
href="#disqus_thread"
>Comments</a>
@ -147,42 +124,36 @@
</header>
<p>I have just merged the latest version of the development branch into master. Here are some of the highlights of this release:</p>
<p><strong>Configuration via the frontend</strong><br>
<p><strong>Configuration via the frontend</strong><br /><br />
Phliips Hue will now be auto discovered and uses the new <code>configurator</code> component to interact with the user to finish the setup process.</p>
<p><strong>Wink Hub support</strong><br>
<p><strong>Wink Hub support</strong><br /><br />
Thanks to the work done by John McLaughlin and Geoff Norton we now support the lights, switches and sensors that are connected to the Wink hub.</p>
<p><strong>The getting started guide and component page have been reorganized</strong><br>
<p><strong>The getting started guide and component page have been reorganized</strong><br /><br />
The getting started instructions have been split into separate pages per component and a general overview page. The goal is to have a page per component that describes:</p>
<ul>
<li>What it does</li>
<li>How to set it up</li>
<li>Which states it maintains</li>
<li>Which services it provides</li>
<li>Additional development tips</li>
<li>What it does</li>
<li>How to set it up</li>
<li>Which states it maintains</li>
<li>Which services it provides</li>
<li>Additional development tips</li>
</ul>
<p><strong>More reasonable errors</strong><br>
<p><strong>More reasonable errors</strong><br /><br />
Home Assistant should now throw better errors and offer solutions if you do not have the right version of Python 3, forgot to clone the git submodules or install the dependencies.</p>
<p><strong>Streamlined first launch</strong><br>
<p><strong>Streamlined first launch</strong><br /><br />
Home Assistant now supports <code>--open-ui</code> and <code>--demo-mode</code> command line properties to open the browser automatically and have something to show. Home Assistant now supports to be run without a password, allowing the interface to login automatically on launch.</p>
</article>
<section id="disqus">
<h3 class="indent title">Comments</h3>
<div id="disqus_thread" aria-live="polite"><noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
</div>
<div id="disqus_thread" aria-live="polite"><noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript></div>
</section>
@ -194,7 +165,6 @@ Home Assistant now supports <code>--open-ui</code> and <code>--demo-mode</code>
<section class="sharing aside-module grid__item one-whole lap-one-half">
<h1 class="title delta">Share this post</h1>
@ -276,7 +246,6 @@ Home Assistant now supports <code>--open-ui</code> and <code>--demo-mode</code>
</div>
</aside>
</div>
@ -287,30 +256,23 @@ Home Assistant now supports <code>--open-ui</code> and <code>--demo-mode</code>
<div class="grid">
<div class="grid__item">
<p class="copyright">
<span class="credit">Powered by <a href="http://octopress.org">Octopress</a>, <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>
<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>
<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>
<script>
var disqus_shortname = 'home-assistant';
@ -327,13 +289,5 @@ Home Assistant now supports <code>--open-ui</code> and <code>--demo-mode</code>
}());
</script>
</body>
</html>

View file

@ -5,8 +5,6 @@
<!--[if gt IE 8]><!--> <html> <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
@ -32,7 +30,6 @@
<link rel='icon' type='image/png' href='/images/favicon-192x192.png' sizes='192x192' />
</head>
<body >
<header>
@ -54,10 +51,10 @@
<a href="/getting-started/">Getting started</a>
<ul>
<li><a href='/getting-started/'>Installing Home Assistant</a></li>
<li><a href='/getting-started/configuration.html'>Configuration basics</a></li>
<li><a href='/getting-started/devices.html'>Adding devices</a></li>
<li><a href='/getting-started/presence-detection.html'>Presence detection</a></li>
<li><a href='/getting-started/automation.html'>Automation</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>
@ -65,26 +62,24 @@
<li>
<a href="/developers/">Developers</a>
<ul>
<li><a href="/developers/architecture.html">Architecture</a></li>
<li><a href="/developers/frontend.html">Frontend development</a></li>
<li><a href="/developers/creating_components.html">
<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.html">
<li><a href="/developers/add_new_platform/">
Adding platform support
</a></li>
<li><a href="/developers/api.html">API</a></li>
<li><a href="/developers/credits.html">Credits</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>
@ -98,6 +93,7 @@
<article class="post">
<header>
<h1 class="title indent">Looking at the past</h1>
@ -105,27 +101,9 @@
<div class="meta clearfix">
<time datetime="2015-02-08T09:01:23-08:00" pubdate data-updated="true"><i class="icon-calendar"></i> February 8, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<time datetime="2015-02-08T09:01:23-08:00" pubdate data-updated="true"><i class="icon-calendar"></i> February 8, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<span><i class='icon-time'></i> 1 minute reading time</span>
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -139,7 +117,6 @@
</ul>
</span>
<a class='comments'
href="#disqus_thread"
>Comments</a>
@ -149,58 +126,44 @@
</header>
<p>Ever since the launch of Home Assistant you have been able to track the state of your house. But the view has always been limited to what the current state is. Not what it was. Today we are going to change that by introducing two brand new components:</p>
<ul>
<li>Recorder component that will record every event to a SQLite database</li>
<li>History component that will query and aggregate the recorded events</li>
<li>Recorder component that will record every event to a SQLite database</li>
<li>History component that will query and aggregate the recorded events</li>
</ul>
<p>By adding this view into the past, we are adding an extra dimension into the state of your house. This brings great new possibilities for future features. The focus of todays release is on getting the recording component to you to start recording and getting some data. To show what is being recorded a view has been added that shows the last 24 hours of your house. Expect more extensive tools to explore your history in the future.</p>
<p>Adding history to the UI was a challenge on itself because the old UI did not support easy navigation. So to add to the awesomeness of this release, Home Assistant also got a face lift.</p>
<p>The history component will be enabled for new users by default. For current users, run <code>scripts/update</code> to upgrade to the latest version and add <code>[history]</code> to your <code>home-assistant.conf</code> file.</p>
<p class='img'>
<a href='/images/screenshots/component_history_24h.png'>
<img src='/images/screenshots/component_history_24h.png' />
<p class="img">
<a href="/images/screenshots/component_history_24h.png">
<img src="/images/screenshots/component_history_24h.png" />
</a>
</p>
<p class='note'>
<p class="note">
Events are saved in a local database. Google Graphs is used to draw the graph. Drawing is happening 100% in your browser - no data is transfered to anyone at any time.
</p>
<a name="read-more"></a>
<p>Tracking history is an exciting next step for Home Assistant and will power the next generation of features. Here a list of some of the cool things that can now be build:</p>
<ul>
<li>Time Machine: explore the state of your house at any point in the past</li>
<li>Smart Home: analyze behavior and use it to automate your house</li>
<li>Summarize usage of the different components of your house</li>
<li>Time Machine: explore the state of your house at any point in the past</li>
<li>Smart Home: analyze behavior and use it to automate your house</li>
<li>Summarize usage of the different components of your house</li>
</ul>
</article>
<section id="disqus">
<h3 class="indent title">Comments</h3>
<div id="disqus_thread" aria-live="polite"><noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
</div>
<div id="disqus_thread" aria-live="polite"><noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript></div>
</section>
@ -212,7 +175,6 @@ Events are saved in a local database. Google Graphs is used to draw the graph. D
<section class="sharing aside-module grid__item one-whole lap-one-half">
<h1 class="title delta">Share this post</h1>
@ -294,7 +256,6 @@ Events are saved in a local database. Google Graphs is used to draw the graph. D
</div>
</aside>
</div>
@ -305,30 +266,23 @@ Events are saved in a local database. Google Graphs is used to draw the graph. D
<div class="grid">
<div class="grid__item">
<p class="copyright">
<span class="credit">Powered by <a href="http://octopress.org">Octopress</a>, <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>
<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>
<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>
<script>
var disqus_shortname = 'home-assistant';
@ -345,13 +299,5 @@ Events are saved in a local database. Google Graphs is used to draw the graph. D
}());
</script>
</body>
</html>

View file

@ -5,8 +5,6 @@
<!--[if gt IE 8]><!--> <html> <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
@ -32,7 +30,6 @@
<link rel='icon' type='image/png' href='/images/favicon-192x192.png' sizes='192x192' />
</head>
<body >
<header>
@ -54,10 +51,10 @@
<a href="/getting-started/">Getting started</a>
<ul>
<li><a href='/getting-started/'>Installing Home Assistant</a></li>
<li><a href='/getting-started/configuration.html'>Configuration basics</a></li>
<li><a href='/getting-started/devices.html'>Adding devices</a></li>
<li><a href='/getting-started/presence-detection.html'>Presence detection</a></li>
<li><a href='/getting-started/automation.html'>Automation</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>
@ -65,26 +62,24 @@
<li>
<a href="/developers/">Developers</a>
<ul>
<li><a href="/developers/architecture.html">Architecture</a></li>
<li><a href="/developers/frontend.html">Frontend development</a></li>
<li><a href="/developers/creating_components.html">
<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.html">
<li><a href="/developers/add_new_platform/">
Adding platform support
</a></li>
<li><a href="/developers/api.html">API</a></li>
<li><a href="/developers/credits.html">Credits</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>
@ -98,6 +93,7 @@
<article class="post">
<header>
<h1 class="title indent">Streaming updates</h1>
@ -105,27 +101,9 @@
<div class="meta clearfix">
<time datetime="2015-02-24T22:41:27-08:00" pubdate data-updated="true"><i class="icon-calendar"></i> February 24, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<time datetime="2015-02-24T22:41:27-08:00" pubdate data-updated="true"><i class="icon-calendar"></i> February 24, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<span><i class='icon-time'></i> 1 minute reading time</span>
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -137,7 +115,6 @@
</ul>
</span>
<a class='comments'
href="#disqus_thread"
>Comments</a>
@ -147,38 +124,29 @@
</header>
<p>Home Assistant has learned a new trick to get the latest information from the server: streaming updates. No longer will the frontend poll every 30 seconds for updates but instead it will keep a connection open and get the latest changes pushed as soon as they happen.</p>
<p>A new toggle has been added ot the sidebar to turn streaming updates on and off. This preference will be saved on a per-browser basis using local storage. The toggle will also indicate when there is an error setting up a stream after which it will fall back to use polling.</p>
<p class='img'><img src='/images/screenshots/streaming-updates.png' /></p>
<p class="img"><img src="/images/screenshots/streaming-updates.png" /></p>
<a name="read-more"></a>
<p>Streaming updates has been implemented using the HTML5 <code>EventSource</code> tag. Implementation is pretty straight forward as all the reconnection logic will be handled by the event source tag. The <a href="https://github.com/balloob/home-assistant/blob/master/homeassistant/components/api.py#L90">server-side code</a> is 50 lines and the <a href="https://github.com/balloob/home-assistant-js/blob/master/src/actions/stream.js">client-side code</a> is 80 lines of code.</p>
<p>All events that happen on the server will now also be sent to the browser. This turns any browser running the UI into a fully functioning <a href="https://home-assistant.io/developers/architecture.html#multiple-connected-instances">slave instance</a> of Home Assistant. This opens up new possibilities for Home Assistant components that live completely client-side.</p>
<p>All events that happen on the server will now also be sent to the browser. This turns any browser running the UI into a fully functioning <a href="https://home-assistant.io/developers/architecture/#multiple-connected-instances">slave instance</a> of Home Assistant. This opens up new possibilities for Home Assistant components that live completely client-side.</p>
<p>Implementing EventSource was not without challenges. Here are some of the issues that had to be solved:</p>
<p>A connection can go stale in Chrome without any event handler being called. This happens when a device goes into standby. For computers this is rare but for phones this occurs quite often. This has been solved by sending a regular ping from the server. The frontend will assume the connection has gone stale when it hasn&rsquo;t heard any communication for a while. Sending a ping will also help the server detect broken connections and clean them up.</p>
<p>A connection can go stale in Chrome without any event handler being called. This happens when a device goes into standby. For computers this is rare but for phones this occurs quite often. This has been solved by sending a regular ping from the server. The frontend will assume the connection has gone stale when it hasnt heard any communication for a while. Sending a ping will also help the server detect broken connections and clean them up.</p>
<p>Another issue that I encountered is that Safari and Firefox would not fire the <code>open</code> event when the connection has been opened but when the first message has been received. To work around this the server will now fire a ping when the connection gets opened.</p>
</article>
<section id="disqus">
<h3 class="indent title">Comments</h3>
<div id="disqus_thread" aria-live="polite"><noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
</div>
<div id="disqus_thread" aria-live="polite"><noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript></div>
</section>
@ -190,7 +158,6 @@
<section class="sharing aside-module grid__item one-whole lap-one-half">
<h1 class="title delta">Share this post</h1>
@ -272,7 +239,6 @@
</div>
</aside>
</div>
@ -283,30 +249,23 @@
<div class="grid">
<div class="grid__item">
<p class="copyright">
<span class="credit">Powered by <a href="http://octopress.org">Octopress</a>, <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>
<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>
<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>
<script>
var disqus_shortname = 'home-assistant';
@ -323,13 +282,5 @@
}());
</script>
</body>
</html>

View file

@ -5,8 +5,6 @@
<!--[if gt IE 8]><!--> <html> <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
@ -32,7 +30,6 @@
<link rel='icon' type='image/png' href='/images/favicon-192x192.png' sizes='192x192' />
</head>
<body >
<header>
@ -54,10 +51,10 @@
<a href="/getting-started/">Getting started</a>
<ul>
<li><a href='/getting-started/'>Installing Home Assistant</a></li>
<li><a href='/getting-started/configuration.html'>Configuration basics</a></li>
<li><a href='/getting-started/devices.html'>Adding devices</a></li>
<li><a href='/getting-started/presence-detection.html'>Presence detection</a></li>
<li><a href='/getting-started/automation.html'>Automation</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>
@ -65,26 +62,24 @@
<li>
<a href="/developers/">Developers</a>
<ul>
<li><a href="/developers/architecture.html">Architecture</a></li>
<li><a href="/developers/frontend.html">Frontend development</a></li>
<li><a href="/developers/creating_components.html">
<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.html">
<li><a href="/developers/add_new_platform/">
Adding platform support
</a></li>
<li><a href="/developers/api.html">API</a></li>
<li><a href="/developers/credits.html">Credits</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>
@ -98,6 +93,7 @@
<article class="post">
<header>
<h1 class="title indent">Home Assistant moving to YAML</h1>
@ -105,27 +101,9 @@
<div class="meta clearfix">
<time datetime="2015-03-01T11:38:00-08:00" pubdate data-updated="true"><i class="icon-calendar"></i> March 1, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Theodor Lindquist</span>
<time datetime="2015-03-01T11:38:00-08:00" pubdate data-updated="true"><i class="icon-calendar"></i> March 1, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Theodor Lindquist</span>
<span><i class='icon-time'></i> less than one minute reading time</span>
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -137,7 +115,6 @@
</ul>
</span>
<a class='comments'
href="#disqus_thread"
>Comments</a>
@ -147,25 +124,19 @@
</header>
<p>Home Assistant is now using <a href="http://yaml.org/">YAML</a> for its configuration file. YAML allows the use of lists, which should make the configuration file a bit more flexible and useful. The new configuration file format is backwards compatible with existing components. Because of this, there is no need for component developers to update their components.</p>
<p>Home Assistant is now using <a href="http://yaml.org/">YAML</a> for it&rsquo;s configuration file.
YAML allows the use of lists, which should make the configuration file a bit more flexible and useful. The new configuration file format is backwards compatible with existing components. Because of this, there is no need for component developers to update their components.</p>
<p>The new file is named configuration.yaml and if it can&rsquo;t be found in your config directory, Home Assistant will instead try to find the old configuration file, home-assistant.conf.</p>
<p>The new file is named configuration.yaml and if it cant be found in your config directory, Home Assistant will instead try to find the old configuration file, home-assistant.conf.</p>
<p>The home-assistant.conf.example has been replaced with an updated <a href="https://github.com/balloob/home-assistant/blob/dev/config/configuration.yaml.example">configuration.yaml.example</a>.</p>
<p>Users of Home Assistant should migrate as the old configuration format is deprecated.</p>
</article>
<section id="disqus">
<h3 class="indent title">Comments</h3>
<div id="disqus_thread" aria-live="polite"><noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
</div>
<div id="disqus_thread" aria-live="polite"><noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript></div>
</section>
@ -177,7 +148,6 @@ YAML allows the use of lists, which should make the configuration file a bit mor
<section class="sharing aside-module grid__item one-whole lap-one-half">
<h1 class="title delta">Share this post</h1>
@ -259,7 +229,6 @@ YAML allows the use of lists, which should make the configuration file a bit mor
</div>
</aside>
</div>
@ -270,30 +239,23 @@ YAML allows the use of lists, which should make the configuration file a bit mor
<div class="grid">
<div class="grid__item">
<p class="copyright">
<span class="credit">Powered by <a href="http://octopress.org">Octopress</a>, <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>
<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>
<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>
<script>
var disqus_shortname = 'home-assistant';
@ -310,13 +272,5 @@ YAML allows the use of lists, which should make the configuration file a bit mor
}());
</script>
</body>
</html>

View file

@ -5,8 +5,6 @@
<!--[if gt IE 8]><!--> <html> <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
@ -32,7 +30,6 @@
<link rel='icon' type='image/png' href='/images/favicon-192x192.png' sizes='192x192' />
</head>
<body >
<header>
@ -54,10 +51,10 @@
<a href="/getting-started/">Getting started</a>
<ul>
<li><a href='/getting-started/'>Installing Home Assistant</a></li>
<li><a href='/getting-started/configuration.html'>Configuration basics</a></li>
<li><a href='/getting-started/devices.html'>Adding devices</a></li>
<li><a href='/getting-started/presence-detection.html'>Presence detection</a></li>
<li><a href='/getting-started/automation.html'>Automation</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>
@ -65,26 +62,24 @@
<li>
<a href="/developers/">Developers</a>
<ul>
<li><a href="/developers/architecture.html">Architecture</a></li>
<li><a href="/developers/frontend.html">Frontend development</a></li>
<li><a href="/developers/creating_components.html">
<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.html">
<li><a href="/developers/add_new_platform/">
Adding platform support
</a></li>
<li><a href="/developers/api.html">API</a></li>
<li><a href="/developers/credits.html">Credits</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>
@ -98,6 +93,7 @@
<article class="post">
<header>
<h1 class="title indent">New logo for Home Assistant</h1>
@ -105,27 +101,9 @@
<div class="meta clearfix">
<time datetime="2015-03-08T23:16:10-07:00" pubdate data-updated="true"><i class="icon-calendar"></i> March 8, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<time datetime="2015-03-08T23:16:10-07:00" pubdate data-updated="true"><i class="icon-calendar"></i> March 8, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<span><i class='icon-time'></i> less than one minute reading time</span>
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -137,7 +115,6 @@
</ul>
</span>
<a class='comments'
href="#disqus_thread"
>Comments</a>
@ -147,26 +124,20 @@
</header>
<p>It is well known that you are either a good programmer or a good designer. It&rsquo;s rare you&rsquo;ll meet someone that is both. That&rsquo;s why it wasn&rsquo;t surprising to anyone that the logo that I made was mediocre &mdash; at best. Luckily, <a href="http://jeremygeltman.com/">Jeremy Geltman</a> has come to the rescue and contributed a brand new logo for Home Assistant.</p>
<p>It is well known that you are either a good programmer or a good designer. Its rare youll meet someone that is both. Thats why it wasnt surprising to anyone that the logo that I made was mediocre — at best. Luckily, <a href="http://jeremygeltman.com/">Jeremy Geltman</a> has come to the rescue and contributed a brand new logo for Home Assistant.</p>
<p>The new logo follows Googles material design spec. It uses the blue color that Home Assistant uses in the interface and it comes in two versions: a high detailed version (for homescreen icon etc) and a simple version (for favicon etc).</p>
<p class='img'>
<img src='/images/blog/ha-logo-history.png' />
<p class="img">
<img src="/images/blog/ha-logo-history.png" />
The old logo, the new detailed logo and the new simple logo.
</p>
</article>
<section id="disqus">
<h3 class="indent title">Comments</h3>
<div id="disqus_thread" aria-live="polite"><noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
</div>
<div id="disqus_thread" aria-live="polite"><noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript></div>
</section>
@ -178,7 +149,6 @@ The old logo, the new detailed logo and the new simple logo.
<section class="sharing aside-module grid__item one-whole lap-one-half">
<h1 class="title delta">Share this post</h1>
@ -260,7 +230,6 @@ The old logo, the new detailed logo and the new simple logo.
</div>
</aside>
</div>
@ -271,30 +240,23 @@ The old logo, the new detailed logo and the new simple logo.
<div class="grid">
<div class="grid__item">
<p class="copyright">
<span class="credit">Powered by <a href="http://octopress.org">Octopress</a>, <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>
<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>
<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>
<script>
var disqus_shortname = 'home-assistant';
@ -311,13 +273,5 @@ The old logo, the new detailed logo and the new simple logo.
}());
</script>
</body>
</html>

View file

@ -5,8 +5,6 @@
<!--[if gt IE 8]><!--> <html> <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
@ -32,7 +30,6 @@
<link rel='icon' type='image/png' href='/images/favicon-192x192.png' sizes='192x192' />
</head>
<body >
<header>
@ -54,10 +51,10 @@
<a href="/getting-started/">Getting started</a>
<ul>
<li><a href='/getting-started/'>Installing Home Assistant</a></li>
<li><a href='/getting-started/configuration.html'>Configuration basics</a></li>
<li><a href='/getting-started/devices.html'>Adding devices</a></li>
<li><a href='/getting-started/presence-detection.html'>Presence detection</a></li>
<li><a href='/getting-started/automation.html'>Automation</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>
@ -65,26 +62,24 @@
<li>
<a href="/developers/">Developers</a>
<ul>
<li><a href="/developers/architecture.html">Architecture</a></li>
<li><a href="/developers/frontend.html">Frontend development</a></li>
<li><a href="/developers/creating_components.html">
<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.html">
<li><a href="/developers/add_new_platform/">
Adding platform support
</a></li>
<li><a href="/developers/api.html">API</a></li>
<li><a href="/developers/credits.html">Credits</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>
@ -98,6 +93,7 @@
<article class="post">
<header>
<h1 class="title indent">Release notes for March 11, 2015</h1>
@ -105,27 +101,9 @@
<div class="meta clearfix">
<time datetime="2015-03-11T18:36:00-08:00" pubdate data-updated="true"><i class="icon-calendar"></i> March 11, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<time datetime="2015-03-11T19:36:00-07:00" pubdate data-updated="true"><i class="icon-calendar"></i> March 11, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<span><i class='icon-time'></i> two minutes reading time</span>
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -137,7 +115,6 @@
</ul>
</span>
<a class='comments'
href="#disqus_thread"
>Comments</a>
@ -147,72 +124,59 @@
</header>
<p>It has only been a little over a week since Theodor introduced YAML support for Home Assistant but so much has already happened that it is time for a summary of recent changes. Before mentioning the highlights I want to thank <a href="https://github.com/andythigpen">andythigpen</a>, <a href="https://github.com/jamespcole">jamespcole</a> and <a href="https://github.com/theolind">theolind</a> for numerous bug fixes, enhancements and new contributions. Thanks!</p>
<p><strong>Monitor local resources.</strong><br>
<p><strong>Monitor local resources.</strong><br /><br />
Theodor has contributed a new sensor platform to allow you to monitor disk usage, memory usage, CPU usage and running processes. This platform has superseded the process component which is now considered deprecated.</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
</pre></td><td class='code'><pre><code class='yaml'><span class='line'><span class="c1"># Example configuration.yaml entry</span>
</span><span class='line'><span class="l-Scalar-Plain">sensor</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">platform</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">systemmonitor</span>
</span><span class='line'> <span class="l-Scalar-Plain">resources</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">type</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">disk_use_percent</span>
</span><span class='line'> <span class="l-Scalar-Plain">arg</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">/home</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">type</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">memory_free</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">type</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">process</span>
</span><span class='line'> <span class="l-Scalar-Plain">arg</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">kodi</span>
</span></code></pre></td></tr></table></div></figure>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">sensor</span>:
- <span class="string"><span class="content">platform: systemmonitor</span></span>
<span class="key">resources</span>:
- <span class="string"><span class="content">type: disk_use_percent</span></span>
<span class="key">arg</span>: <span class="string"><span class="content">/home</span></span>
- <span class="string"><span class="content">type: memory_free</span></span>
- <span class="string"><span class="content">type: process</span></span>
<span class="key">arg</span>: <span class="string"><span class="content">kodi</span></span>
</pre></div>
</div>
</div>
<p><strong>Experimental Z-Wave support</strong><br>
<p><strong>Experimental Z-Wave support</strong><br /><br />
There is now experimental support for connecting Z-Wave networks using a Z-Wave USB stick. Right now it only integrates Z-Wave sensors into Home Assistant. Our goal is to get this tested by more people before adding support for other Z-Wave devices.</p>
<p>The new component is built on top of <a href="https://code.google.com/p/python-openzwave/">python-openzwave</a>. This package is currently not distributed on PyPi so we&rsquo;ve added a script <code>scripts/build_python_openzwave</code> to install it on your machine. Alternatively you can use the Docker image which is ready to go.</p>
<p>The new component is built on top of <a href="https://code.google.com/p/python-openzwave/">python-openzwave</a>. This package is currently not distributed on PyPi so weve added a script <code>scripts/build_python_openzwave</code> to install it on your machine. Alternatively you can use the Docker image which is ready to go.</p>
<p>The development was done using an AEON Z-Wave USB stick and an AEON Z-Wave MultiSensor.</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
</pre></td><td class='code'><pre><code class='yaml'><span class='line'><span class="c1"># Example configuration.yaml entry</span>
</span><span class='line'><span class="l-Scalar-Plain">zwave</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">usb_path</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">/dev/ttyUSB0</span>
</span></code></pre></td></tr></table></div></figure>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">zwave</span>:
<span class="key">usb_path</span>: <span class="string"><span class="content">/dev/ttyUSB0</span></span>
</pre></div>
</div>
</div>
<p><strong>Voice control</strong><br>
<p><strong>Voice control</strong><br /><br />
An initial version of voice control for Home Assistant has landed. The current implementation consists of two parts.</p>
<p>The first part is a component called <code>conversation</code> that exposes the service <code>conversation/process</code>. This service is capable of processing text and translating them into commands for devices. For now it will only support commands in the format of <code>Turn &lt;Friendly Name&gt; &lt;on/off&gt;</code>.</p>
<p>The second part is an upgrade to the frontend to use the speech-to-text in Chrome to allow users to speak commands. If you&rsquo;re using Chrome, you can test this out in <a href="/demo/">the demo</a>.</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
</pre></td><td class='code'><pre><code class='yaml'><span class='line'><span class="c1"># Example configuration.yaml entry</span>
</span><span class='line'><span class="l-Scalar-Plain">conversation</span><span class="p-Indicator">:</span>
</span></code></pre></td></tr></table></div></figure>
<p>The second part is an upgrade to the frontend to use the speech-to-text in Chrome to allow users to speak commands. If youre using Chrome, you can test this out in <a href="/demo/">the demo</a>.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">conversation</span>:
</pre></div>
</div>
</div>
</article>
<section id="disqus">
<h3 class="indent title">Comments</h3>
<div id="disqus_thread" aria-live="polite"><noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
</div>
<div id="disqus_thread" aria-live="polite"><noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript></div>
</section>
@ -224,7 +188,6 @@ An initial version of voice control for Home Assistant has landed. The current i
<section class="sharing aside-module grid__item one-whole lap-one-half">
<h1 class="title delta">Share this post</h1>
@ -306,7 +269,6 @@ An initial version of voice control for Home Assistant has landed. The current i
</div>
</aside>
</div>
@ -317,30 +279,23 @@ An initial version of voice control for Home Assistant has landed. The current i
<div class="grid">
<div class="grid__item">
<p class="copyright">
<span class="credit">Powered by <a href="http://octopress.org">Octopress</a>, <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>
<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>
<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>
<script>
var disqus_shortname = 'home-assistant';
@ -357,13 +312,5 @@ An initial version of voice control for Home Assistant has landed. The current i
}());
</script>
</body>
</html>

View file

@ -5,8 +5,6 @@
<!--[if gt IE 8]><!--> <html> <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
@ -32,7 +30,6 @@
<link rel='icon' type='image/png' href='/images/favicon-192x192.png' sizes='192x192' />
</head>
<body >
<header>
@ -54,10 +51,10 @@
<a href="/getting-started/">Getting started</a>
<ul>
<li><a href='/getting-started/'>Installing Home Assistant</a></li>
<li><a href='/getting-started/configuration.html'>Configuration basics</a></li>
<li><a href='/getting-started/devices.html'>Adding devices</a></li>
<li><a href='/getting-started/presence-detection.html'>Presence detection</a></li>
<li><a href='/getting-started/automation.html'>Automation</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>
@ -65,26 +62,24 @@
<li>
<a href="/developers/">Developers</a>
<ul>
<li><a href="/developers/architecture.html">Architecture</a></li>
<li><a href="/developers/frontend.html">Frontend development</a></li>
<li><a href="/developers/creating_components.html">
<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.html">
<li><a href="/developers/add_new_platform/">
Adding platform support
</a></li>
<li><a href="/developers/api.html">API</a></li>
<li><a href="/developers/credits.html">Credits</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>
@ -98,6 +93,7 @@
<article class="post">
<header>
<h1 class="title indent">Release notes for March 22, 2015</h1>
@ -105,27 +101,9 @@
<div class="meta clearfix">
<time datetime="2015-03-22T00:21:00-08:00" pubdate data-updated="true"><i class="icon-calendar"></i> March 22, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<span><i class='icon-time'></i> three minutes reading time</span>
<time datetime="2015-03-22T01:21:00-07:00" pubdate data-updated="true"><i class="icon-calendar"></i> March 22, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<span><i class='icon-time'></i> two minutes reading time</span>
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -137,7 +115,6 @@
</ul>
</span>
<a class='comments'
href="#disqus_thread"
>Comments</a>
@ -147,145 +124,96 @@
</header>
<p>A new version of Home Assistant has just been pushed out. It contains bugfixes contributed by <a href="https://github.com/jamespcole">jamespcole</a>, <a href="https://github.com/andythigpen">andythigpen</a>, <a href="https://github.com/trainman419">trainman419</a> and <a href="https://github.com/balloob">me</a>. It also adds a bunch of great new features:</p>
<p><strong>Script</strong><br>
<p><strong>Script</strong><br />
Andythigpen has contributed a script component. This allows users to create a sequence of service calls and delays. Scripts can be started using the service <code>script/turn_on</code> and interrupted using the service <code>script/turn_off</code>. A separate page has been added to the frontend to see the status of your scripts.</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
<span class='line-number'>12</span>
<span class='line-number'>13</span>
<span class='line-number'>14</span>
<span class='line-number'>15</span>
<span class='line-number'>16</span>
<span class='line-number'>17</span>
</pre></td><td class='code'><pre><code class='yaml'><span class='line'><span class="c1"># Example configuration.yaml entry</span>
</span><span class='line'><span class="l-Scalar-Plain">script</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="c1"># Turns on the bedroom lights and then the living room lights 1 minute later</span>
</span><span class='line'> <span class="l-Scalar-Plain">wakeup</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">alias</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">Wake Up</span>
</span><span class='line'> <span class="l-Scalar-Plain">sequence</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">alias</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">Bedroom lights on</span>
</span><span class='line'> <span class="l-Scalar-Plain">execute_service</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">light.turn_on</span>
</span><span class='line'> <span class="l-Scalar-Plain">service_data</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">entity_id</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">group.bedroom</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">delay</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="c1"># supports seconds, milliseconds, minutes, hours, etc.</span>
</span><span class='line'> <span class="l-Scalar-Plain">minutes</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">1</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">alias</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">Living room lights on</span>
</span><span class='line'> <span class="l-Scalar-Plain">execute_service</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">light.turn_on</span>
</span><span class='line'> <span class="l-Scalar-Plain">service_data</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">entity_id</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">group.living_room</span>
</span></code></pre></td></tr></table></div></figure>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">script</span>:
<span class="comment"># Turns on the bedroom lights and then the living room lights 1 minute later</span>
<span class="key">wakeup</span>:
<span class="key">alias</span>: <span class="string"><span class="content">Wake Up</span></span>
<span class="key">sequence</span>:
- <span class="string"><span class="content">alias: Bedroom lights on</span></span>
<span class="key">execute_service</span>: <span class="string"><span class="content">light.turn_on</span></span>
<span class="key">service_data</span>:
<span class="key">entity_id</span>: <span class="string"><span class="content">group.bedroom</span></span>
- <span class="string"><span class="content">delay:</span><span class="content">
# supports seconds, milliseconds, minutes, hours, etc.
minutes: 1</span></span>
- <span class="string"><span class="content">alias: Living room lights on</span></span>
<span class="key">execute_service</span>: <span class="string"><span class="content">light.turn_on</span></span>
<span class="key">service_data</span>:
<span class="key">entity_id</span>: <span class="string"><span class="content">group.living_room</span></span>
</pre></div>
</div>
</div>
<a name="read-more"></a>
<p><strong>Scene</strong><br>
<p><strong>Scene</strong><br />
I (Paulus) have contributed a scene component. A user can create scenes that capture the states you want certain entities to be. For example a scene can contain that light A should be turned on and light B should be bright red. Deactivating a scene will restore the previous state from before the scene was activated. Just like scripts, scenes have their own separate page to see which scenes are on.</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
</pre></td><td class='code'><pre><code class='yaml'><span class='line'><span class="c1"># Example configuration.yaml entry</span>
</span><span class='line'><span class="l-Scalar-Plain">scene</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">name</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">Romantic</span>
</span><span class='line'> <span class="l-Scalar-Plain">entities</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">light.tv_back_light</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">on</span>
</span><span class='line'> <span class="l-Scalar-Plain">light.ceiling</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">state</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">on</span>
</span><span class='line'> <span class="l-Scalar-Plain">color</span><span class="p-Indicator">:</span> <span class="p-Indicator">[</span><span class="nv">0.33</span><span class="p-Indicator">,</span> <span class="nv">0.66</span><span class="p-Indicator">]</span>
</span><span class='line'> <span class="l-Scalar-Plain">brightness</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">200</span>
</span></code></pre></td></tr></table></div></figure>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">scene</span>:
- <span class="string"><span class="content">name: Romantic</span></span>
<span class="key">entities</span>:
<span class="key">light.tv_back_light</span>: <span class="string"><span class="content">on</span></span>
<span class="key">light.ceiling</span>:
<span class="key">state</span>: <span class="string"><span class="content">on</span></span>
<span class="key">color</span>: <span class="string"><span class="content">[0.33, 0.66]</span></span>
<span class="key">brightness</span>: <span class="string"><span class="content">200</span></span>
</pre></div>
</div>
</div>
<p><a name="sabnzbd"></a><br />
<strong>SABnzbd</strong><br />
<img src="/images/supported_brands/sabnzbd.png" style="border:none; box-shadow: none; float: right;" height="50" /> James Cole has contributed support to integrate SABnzbd. This will allow you to monitor your downloads from within Home Assistant and setup automation based on the information.</p>
<p><a name='sabnzbd'></a>
<strong>SABnzbd</strong><br>
<img src='/images/supported_brands/sabnzbd.png' style='border:none; box-shadow: none; float: right;' height='50' />
James Cole has contributed support to integrate SABnzbd. This will allow you to monitor your downloads from within Home Assistant and setup automation based on the information.</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
<span class='line-number'>12</span>
<span class='line-number'>13</span>
<span class='line-number'>14</span>
</pre></td><td class='code'><pre><code class='yaml'><span class='line'><span class="c1"># Example configuration.yaml entry</span>
</span><span class='line'><span class="l-Scalar-Plain">sensor</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">platform</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">sabnzbd</span>
</span><span class='line'> <span class="l-Scalar-Plain">name</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">SAB</span>
</span><span class='line'> <span class="l-Scalar-Plain">api_key</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">YOUR_API_KEY</span>
</span><span class='line'> <span class="c1"># Example: http://192.168.1.32:8124/</span>
</span><span class='line'> <span class="l-Scalar-Plain">base_url</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">YOUR_SABNZBD_BASE_URL</span>
</span><span class='line'> <span class="l-Scalar-Plain">monitored_variables</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">type</span><span class="p-Indicator">:</span> <span class="s">&#39;current_status&#39;</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">type</span><span class="p-Indicator">:</span> <span class="s">&#39;speed&#39;</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">type</span><span class="p-Indicator">:</span> <span class="s">&#39;queue_size&#39;</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">type</span><span class="p-Indicator">:</span> <span class="s">&#39;queue_remaining&#39;</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">type</span><span class="p-Indicator">:</span> <span class="s">&#39;disk_size&#39;</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">type</span><span class="p-Indicator">:</span> <span class="s">&#39;disk_free&#39;</span>
</span></code></pre></td></tr></table></div></figure>
<p><a name='pushover'></a>
<strong>PushOver</strong><br>
<img src='/images/supported_brands/pushover.png' style='border:none; box-shadow: none; float: right;' height='50' />
James Cole has also contributed support for <a href='https://pushover.net/'>the PushOver service</a> as a platform for the notify component. This allows components to send messages to the user using PushOver.</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
</pre></td><td class='code'><pre><code class='yaml'><span class='line'><span class="c1"># Example configuration.yaml entry</span>
</span><span class='line'><span class="l-Scalar-Plain">notify</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">platform</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">pushover</span>
</span><span class='line'> <span class="c1"># Get this by registering a new application on https://pushover.net</span>
</span><span class='line'> <span class="l-Scalar-Plain">api_key</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">ABCDEFGHJKLMNOPQRSTUVXYZ</span>
</span><span class='line'> <span class="c1"># Get this by logging into your account on https://pushover.net</span>
</span><span class='line'> <span class="l-Scalar-Plain">user_key</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">ABCDEFGHJKLMNOPQRSTUVXYZ</span>
</span></code></pre></td></tr></table></div></figure>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">sensor</span>:
- <span class="string"><span class="content">platform: sabnzbd</span></span>
<span class="key">name</span>: <span class="string"><span class="content">SAB</span></span>
<span class="key">api_key</span>: <span class="string"><span class="content">YOUR_API_KEY</span></span>
<span class="comment"># Example: http://192.168.1.32:8124/</span>
<span class="key">base_url</span>: <span class="string"><span class="content">YOUR_SABNZBD_BASE_URL</span></span>
<span class="key">monitored_variables</span>:
- <span class="string"><span class="content">type: 'current_status'</span></span>
- <span class="string"><span class="content">type: 'speed'</span></span>
- <span class="string"><span class="content">type: 'queue_size'</span></span>
- <span class="string"><span class="content">type: 'queue_remaining'</span></span>
- <span class="string"><span class="content">type: 'disk_size'</span></span>
- <span class="string"><span class="content">type: 'disk_free'</span></span>
</pre></div>
</div>
</div>
<p><a name="pushover"></a><br />
<strong>PushOver</strong><br />
<img src="/images/supported_brands/pushover.png" style="border:none; box-shadow: none; float: right;" height="50" /> James Cole has also contributed support for <a href="https://pushover.net/">the PushOver service</a> as a platform for the notify component. This allows components to send messages to the user using PushOver.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">notify</span>:
<span class="key">platform</span>: <span class="string"><span class="content">pushover</span></span>
<span class="comment"># Get this by registering a new application on https://pushover.net</span>
<span class="key">api_key</span>: <span class="string"><span class="content">ABCDEFGHJKLMNOPQRSTUVXYZ</span></span>
<span class="comment"># Get this by logging into your account on https://pushover.net</span>
<span class="key">user_key</span>: <span class="string"><span class="content">ABCDEFGHJKLMNOPQRSTUVXYZ</span></span>
</pre></div>
</div>
</div>
</article>
<section id="disqus">
<h3 class="indent title">Comments</h3>
<div id="disqus_thread" aria-live="polite"><noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
</div>
<div id="disqus_thread" aria-live="polite"><noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript></div>
</section>
@ -297,7 +225,6 @@ James Cole has also contributed support for <a href='https://pushover.net/'>the
<section class="sharing aside-module grid__item one-whole lap-one-half">
<h1 class="title delta">Share this post</h1>
@ -379,7 +306,6 @@ James Cole has also contributed support for <a href='https://pushover.net/'>the
</div>
</aside>
</div>
@ -390,30 +316,23 @@ James Cole has also contributed support for <a href='https://pushover.net/'>the
<div class="grid">
<div class="grid__item">
<p class="copyright">
<span class="credit">Powered by <a href="http://octopress.org">Octopress</a>, <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>
<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>
<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>
<script>
var disqus_shortname = 'home-assistant';
@ -430,13 +349,5 @@ James Cole has also contributed support for <a href='https://pushover.net/'>the
}());
</script>
</body>
</html>

View file

@ -5,8 +5,6 @@
<!--[if gt IE 8]><!--> <html> <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
@ -32,7 +30,6 @@
<link rel='icon' type='image/png' href='/images/favicon-192x192.png' sizes='192x192' />
</head>
<body >
<header>
@ -54,10 +51,10 @@
<a href="/getting-started/">Getting started</a>
<ul>
<li><a href='/getting-started/'>Installing Home Assistant</a></li>
<li><a href='/getting-started/configuration.html'>Configuration basics</a></li>
<li><a href='/getting-started/devices.html'>Adding devices</a></li>
<li><a href='/getting-started/presence-detection.html'>Presence detection</a></li>
<li><a href='/getting-started/automation.html'>Automation</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>
@ -65,26 +62,24 @@
<li>
<a href="/developers/">Developers</a>
<ul>
<li><a href="/developers/architecture.html">Architecture</a></li>
<li><a href="/developers/frontend.html">Frontend development</a></li>
<li><a href="/developers/creating_components.html">
<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.html">
<li><a href="/developers/add_new_platform/">
Adding platform support
</a></li>
<li><a href="/developers/api.html">API</a></li>
<li><a href="/developers/credits.html">Credits</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>
@ -98,6 +93,7 @@
<article class="post">
<header>
<h1 class="title indent">Release notes for April 25, 2015</h1>
@ -105,27 +101,9 @@
<div class="meta clearfix">
<time datetime="2015-04-25T06:57:00-07:00" pubdate data-updated="true"><i class="icon-calendar"></i> April 25, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<span><i class='icon-time'></i> three minutes reading time</span>
<time datetime="2015-04-25T06:57:00-07:00" pubdate data-updated="true"><i class="icon-calendar"></i> April 25, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<span><i class='icon-time'></i> two minutes reading time</span>
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -137,7 +115,6 @@
</ul>
</span>
<a class='comments'
href="#disqus_thread"
>Comments</a>
@ -147,161 +124,107 @@
</header>
<p>Its been a month since the latest update and a lot has happened again. Here a quick overview of the new things.</p>
<p>It&rsquo;s been a month since the latest update and a lot has happened again. Here a quick overview of the new things.</p>
<p><strong>Line Charts</strong><br>
<p><strong>Line Charts</strong><br />
<a href="https://github.com/jamespcole">James</a> has upgraded the history in the frontend to support line graphs. Line graphs will be shown for any entity that has a unit of measurement. The line graphs will also be shown in the more info card of an entity. <a href="/demo/">See the demo for a live example.</a></p>
<p class='img'>
<img src='/images/screenshots/history-line-graphs.png'>
<p class="img">
<img src="/images/screenshots/history-line-graphs.png" />
</p>
<p><strong>ISY994 hub support</strong><br />
<img src="/images/supported_brands/universal_devices.png" style="border:none; box-shadow: none; float: right;" height="50" /> <a href="https://github.com/rmkraus">Ryan</a> has contributed support to integrate the ISY994 hub by Universal Devices. This allows you to integrate your X10/Insteon sensors, switches and lights.</p>
<p><strong>ISY994 hub support</strong><br>
<img src='/images/supported_brands/universal_devices.png' style='border:none; box-shadow: none; float: right;' height='50' />
<a href="https://github.com/rmkraus">Ryan</a> has contributed support to integrate the ISY994 hub by Universal Devices. This allows you to integrate your X10/Insteon sensors, switches and lights.</p>
<p>He has created an extensive getting started guide which can be found on <a href="/components/isy994.html">the ISY994 component page</a>.</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
</pre></td><td class='code'><pre><code class='yaml'><span class='line'><span class="c1"># Example configuration.yaml entry</span>
</span><span class='line'><span class="l-Scalar-Plain">isy994</span><span class="p-Indicator">:</span>
</span></code></pre></td></tr></table></div></figure>
<p><strong>Logbook</strong><br>
<img src='/images/screenshots/logbook.png' style='margin-left:10px; float: right;' height="100" />
I (Paulus) have added a logbook component. The logbook component provides a different perspective on the history of your house by showing all the changes that happened to your house in chronological order. <a href="/demo/">See the demo for a live example.</a>
<span class='clearfix'></span></p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
</pre></td><td class='code'><pre><code class='yaml'><span class='line'><span class="c1"># Example configuration.yaml entry</span>
</span><span class='line'><span class="l-Scalar-Plain">logbook</span><span class="p-Indicator">:</span>
</span></code></pre></td></tr></table></div></figure>
<p>He has created an extensive getting started guide which can be found on <a href="/components/isy994/">the ISY994 component page</a>.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">isy994</span>:
</pre></div>
</div>
</div>
<p><strong>Logbook</strong><br />
<img src="/images/screenshots/logbook.png" style="margin-left:10px; float: right;" height="100" /> I (Paulus) have added a logbook component. The logbook component provides a different perspective on the history of your house by showing all the changes that happened to your house in chronological order. <a href="/demo/">See the demo for a live example.</a><br />
<span class="clearfix"></span></p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">logbook</span>:
</pre></div>
</div>
</div>
<a name="read-more"></a>
<p><strong>Transmission support</strong><br />
<img src="/images/supported_brands/transmission.png" style="border:none; box-shadow: none; float: right;" height="50" /> James has also contributed support for integrating Transmission into Home Assistant.</p>
<p><strong>Transmission support</strong><br>
<img src='/images/supported_brands/transmission.png' style='border:none; box-shadow: none; float: right;' height='50' />
James has also contributed support for integrating Transmission into Home Assistant.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">sensor</span>:
<span class="key">platform</span>: <span class="string"><span class="content">transmission</span></span>
<span class="key">name</span>: <span class="string"><span class="content">Transmission</span></span>
<span class="key">host</span>: <span class="string"><span class="content">192.168.1.26</span></span>
<span class="key">port</span>: <span class="string"><span class="content">9091</span></span>
<span class="key">username</span>: <span class="string"><span class="content">YOUR_USERNAME</span></span>
<span class="key">password</span>: <span class="string"><span class="content">YOUR_PASSWORD</span></span>
<span class="key">monitored_variables</span>:
- <span class="string"><span class="content">type: 'current_status'</span></span>
- <span class="string"><span class="content">type: 'download_speed'</span></span>
- <span class="string"><span class="content">type: 'upload_speed'</span></span>
</pre></div>
</div>
</div>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
<span class='line-number'>12</span>
</pre></td><td class='code'><pre><code class='yaml'><span class='line'><span class="c1"># Example configuration.yaml entry</span>
</span><span class='line'><span class="l-Scalar-Plain">sensor</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">platform</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">transmission</span>
</span><span class='line'> <span class="l-Scalar-Plain">name</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">Transmission</span>
</span><span class='line'> <span class="l-Scalar-Plain">host</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">192.168.1.26</span>
</span><span class='line'> <span class="l-Scalar-Plain">port</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">9091</span>
</span><span class='line'> <span class="l-Scalar-Plain">username</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">YOUR_USERNAME</span>
</span><span class='line'> <span class="l-Scalar-Plain">password</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">YOUR_PASSWORD</span>
</span><span class='line'> <span class="l-Scalar-Plain">monitored_variables</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">type</span><span class="p-Indicator">:</span> <span class="s">&#39;current_status&#39;</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">type</span><span class="p-Indicator">:</span> <span class="s">&#39;download_speed&#39;</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">type</span><span class="p-Indicator">:</span> <span class="s">&#39;upload_speed&#39;</span>
</span></code></pre></td></tr></table></div></figure>
<p><strong>Modbus support</strong><br>
<p><strong>Modbus support</strong><br />
<a href="https://github.com/kixam">Kixam</a> has contributed support for modbus, a serial communication protocol to control PLCs. It currently supports sensors and switches which can be controlled over serial, TCP and UDP connections.</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
<span class='line-number'>12</span>
<span class='line-number'>13</span>
<span class='line-number'>14</span>
<span class='line-number'>15</span>
<span class='line-number'>16</span>
<span class='line-number'>17</span>
<span class='line-number'>18</span>
<span class='line-number'>19</span>
<span class='line-number'>20</span>
<span class='line-number'>21</span>
<span class='line-number'>22</span>
<span class='line-number'>23</span>
<span class='line-number'>24</span>
<span class='line-number'>25</span>
<span class='line-number'>26</span>
<span class='line-number'>27</span>
<span class='line-number'>28</span>
<span class='line-number'>29</span>
<span class='line-number'>30</span>
<span class='line-number'>31</span>
<span class='line-number'>32</span>
<span class='line-number'>33</span>
<span class='line-number'>34</span>
</pre></td><td class='code'><pre><code class='yaml'><span class='line'><span class="c1"># Example configuration.yaml entry</span>
</span><span class='line'><span class="l-Scalar-Plain">modbus</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">type</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">serial</span>
</span><span class='line'> <span class="l-Scalar-Plain">method</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">rtu</span>
</span><span class='line'> <span class="l-Scalar-Plain">port</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">/dev/ttyUSB0</span>
</span><span class='line'> <span class="l-Scalar-Plain">baudrate</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">9600</span>
</span><span class='line'> <span class="l-Scalar-Plain">stopbits</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">1</span>
</span><span class='line'> <span class="l-Scalar-Plain">bytesize</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">8</span>
</span><span class='line'> <span class="l-Scalar-Plain">parity</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">N</span>
</span><span class='line'>
</span><span class='line'><span class="l-Scalar-Plain">sensor</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">platform</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">modbus</span>
</span><span class='line'> <span class="l-Scalar-Plain">slave</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">1</span>
</span><span class='line'> <span class="l-Scalar-Plain">registers</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">16</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">name</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">My integer sensor</span>
</span><span class='line'> <span class="l-Scalar-Plain">unit</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">C</span>
</span><span class='line'> <span class="l-Scalar-Plain">24</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">bits</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">0</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">name</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">My boolean sensor</span>
</span><span class='line'> <span class="l-Scalar-Plain">2</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">name</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">My other boolean sensor</span>
</span><span class='line'>
</span><span class='line'><span class="l-Scalar-Plain">switch</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">platform</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">modbus</span>
</span><span class='line'> <span class="l-Scalar-Plain">slave</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">1</span>
</span><span class='line'> <span class="l-Scalar-Plain">registers</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">24</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">bits</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">0</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">name</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">My switch</span>
</span><span class='line'> <span class="l-Scalar-Plain">2</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">name</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">My other switch</span>
</span></code></pre></td></tr></table></div></figure>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">modbus</span>:
<span class="key">type</span>: <span class="string"><span class="content">serial</span></span>
<span class="key">method</span>: <span class="string"><span class="content">rtu</span></span>
<span class="key">port</span>: <span class="string"><span class="content">/dev/ttyUSB0</span></span>
<span class="key">baudrate</span>: <span class="string"><span class="content">9600</span></span>
<span class="key">stopbits</span>: <span class="string"><span class="content">1</span></span>
<span class="key">bytesize</span>: <span class="string"><span class="content">8</span></span>
<span class="key">parity</span>: <span class="string"><span class="content">N</span></span>
<span class="key">sensor</span>:
<span class="key">platform</span>: <span class="string"><span class="content">modbus</span></span>
<span class="key">slave</span>: <span class="string"><span class="content">1</span></span>
<span class="key">registers</span>:
<span class="key">16</span>:
<span class="key">name</span>: <span class="string"><span class="content">My integer sensor</span><span class="content">
unit: C</span></span>
<span class="key">24</span>:
<span class="key">bits</span>:
<span class="key">0</span>:
<span class="key">name</span>: <span class="string"><span class="content">My boolean sensor</span></span>
<span class="key">2</span>:
<span class="key">name</span>: <span class="string"><span class="content">My other boolean sensor</span></span>
<span class="key">switch</span>:
<span class="key">platform</span>: <span class="string"><span class="content">modbus</span></span>
<span class="key">slave</span>: <span class="string"><span class="content">1</span></span>
<span class="key">registers</span>:
<span class="key">24</span>:
<span class="key">bits</span>:
<span class="key">0</span>:
<span class="key">name</span>: <span class="string"><span class="content">My switch</span></span>
<span class="key">2</span>:
<span class="key">name</span>: <span class="string"><span class="content">My other switch</span></span>
</pre></div>
</div>
</div>
</article>
<section id="disqus">
<h3 class="indent title">Comments</h3>
<div id="disqus_thread" aria-live="polite"><noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
</div>
<div id="disqus_thread" aria-live="polite"><noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript></div>
</section>
@ -313,7 +236,6 @@ James has also contributed support for integrating Transmission into Home Assist
<section class="sharing aside-module grid__item one-whole lap-one-half">
<h1 class="title delta">Share this post</h1>
@ -395,7 +317,6 @@ James has also contributed support for integrating Transmission into Home Assist
</div>
</aside>
</div>
@ -406,30 +327,23 @@ James has also contributed support for integrating Transmission into Home Assist
<div class="grid">
<div class="grid__item">
<p class="copyright">
<span class="credit">Powered by <a href="http://octopress.org">Octopress</a>, <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>
<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>
<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>
<script>
var disqus_shortname = 'home-assistant';
@ -446,13 +360,5 @@ James has also contributed support for integrating Transmission into Home Assist
}());
</script>
</body>
</html>

View file

@ -5,8 +5,6 @@
<!--[if gt IE 8]><!--> <html> <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
@ -32,7 +30,6 @@
<link rel='icon' type='image/png' href='/images/favicon-192x192.png' sizes='192x192' />
</head>
<body >
<header>
@ -54,10 +51,10 @@
<a href="/getting-started/">Getting started</a>
<ul>
<li><a href='/getting-started/'>Installing Home Assistant</a></li>
<li><a href='/getting-started/configuration.html'>Configuration basics</a></li>
<li><a href='/getting-started/devices.html'>Adding devices</a></li>
<li><a href='/getting-started/presence-detection.html'>Presence detection</a></li>
<li><a href='/getting-started/automation.html'>Automation</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>
@ -65,26 +62,24 @@
<li>
<a href="/developers/">Developers</a>
<ul>
<li><a href="/developers/architecture.html">Architecture</a></li>
<li><a href="/developers/frontend.html">Frontend development</a></li>
<li><a href="/developers/creating_components.html">
<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.html">
<li><a href="/developers/add_new_platform/">
Adding platform support
</a></li>
<li><a href="/developers/api.html">API</a></li>
<li><a href="/developers/credits.html">Credits</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>
@ -98,6 +93,7 @@
<article class="post">
<header>
<h1 class="title indent">UTC & Time zone awareness</h1>
@ -105,27 +101,9 @@
<div class="meta clearfix">
<time datetime="2015-05-09T23:08:00-07:00" pubdate data-updated="true"><i class="icon-calendar"></i> May 9, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<time datetime="2015-05-09T23:08:00-07:00" pubdate data-updated="true"><i class="icon-calendar"></i> May 9, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<span><i class='icon-time'></i> two minutes reading time</span>
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -137,7 +115,6 @@
</ul>
</span>
<a class='comments'
href="#disqus_thread"
>Comments</a>
@ -147,50 +124,42 @@
</header>
<p>I have recently merged code to refactor Home Assistant to use only UTC times internally. A much needed refactor. I&rsquo;ve added some extra test coverage to time sensitive parts to ensure stability. The code has been live in the dev branch for the last 9 days and will be soon released to the master branch.</p>
<p>I have recently merged code to refactor Home Assistant to use only UTC times internally. A much needed refactor. Ive added some extra test coverage to time sensitive parts to ensure stability. The code has been live in the dev branch for the last 9 days and will be soon released to the master branch.</p>
<p>From now on all internal communication will be done in UTC: time changed events, datetime attributes of states, etc. To get the current time in UTC you can call <code>homeassistant.util.dt.utcnow()</code>. This is a timezone aware UTC datetime object. <a href="https://github.com/balloob/home-assistant/blob/dev/homeassistant/util/dt.py"><code>homeassistant.util.dt</code></a> is a new util package with date helpers.</p>
<p>There is also such a thing as local time. Local time is based on the time zone that you have setup in your <code>configuration.yaml</code>. Local times should only be used for user facing information: logs, frontend and automation settings in <code>configuration.yaml</code>.</p>
<h3>Setting up your time zone</h3>
<p>Setting up a time zone happens in <code>configuration.yaml</code>. If you have no time zone setup, it will be auto detected using the existing detection code using <a href="https://freegeoip.net">freegeoip.net</a>. You can find a list of compatible time zones on <a href="http://en.wikipedia.org/wiki/List_of_tz_database_time_zones">Wikipedia</a>.</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
</pre></td><td class='code'><pre><code class='yaml'><span class='line'><span class="l-Scalar-Plain">homeassistant</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">time_zone</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">America/Los_Angeles</span>
</span></code></pre></td></tr></table></div></figure>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="key">homeassistant</span>:
<span class="key">time_zone</span>: <span class="string"><span class="content">America/Los_Angeles</span></span>
</pre></div>
</div>
</div>
<h3>Compatibility</h3>
<p>The changes to the code are mostly backwards compatible. The old <code>hass.track_time_change</code> and <code>hass.track_point_in_time</code> use now internally two new methods: <code>hass.track_utc_time_change</code> and <code>hass.track_point_in_utc_time</code>. The usage of the old methods have not changed and should be backwards compatible.</p>
<p>This refactor adds a new migration for the database adding a <code>utc_offset</code> column to events and states. This information is currently not used but can prove useful in the future when we start analyzing the historical data.</p>
<h3><a class='title-link' name='backwards-incompatible-stuff' href='#backwards-incompatible-stuff'></a> Backwards incompatible stuff</h3>
<h3><a class="title-link" name="backwards-incompatible-stuff" href="#backwards-incompatible-stuff"></a> Backwards incompatible stuff</h3>
<p>All built-in components have been upgraded. The following list is only for people that run custom components:</p>
<ul>
<li><code>hass.track_time_change</code> and <code>hass.track_point_in_time</code> will now return a time zone aware datetime object. Python does not allow comparing a naive with an aware datetime object.</li>
<li>the sun attributes for rising and setting are now in UTC. The methods <code>sun.next_rising(hass)</code> and <code>sun.next_setting(hass)</code> are backwards compatible, just be careful if you used to read the raw attributes.</li>
<li>the API sends all times in UTC. If you use anything else besides the frontend to talk to HA, make sure it handles it differently.</li>
<li><code>hass.track_time_change</code> and <code>hass.track_point_in_time</code> will now return a time zone aware datetime object. Python does not allow comparing a naive with an aware datetime object.</li>
<li>the sun attributes for rising and setting are now in UTC. The methods <code>sun.next_rising(hass)</code> and <code>sun.next_setting(hass)</code> are backwards compatible, just be careful if you used to read the raw attributes.</li>
<li>the API sends all times in UTC. If you use anything else besides the frontend to talk to HA, make sure it handles it differently.</li>
</ul>
</article>
<section id="disqus">
<h3 class="indent title">Comments</h3>
<div id="disqus_thread" aria-live="polite"><noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
</div>
<div id="disqus_thread" aria-live="polite"><noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript></div>
</section>
@ -202,7 +171,6 @@
<section class="sharing aside-module grid__item one-whole lap-one-half">
<h1 class="title delta">Share this post</h1>
@ -284,7 +252,6 @@
</div>
</aside>
</div>
@ -295,30 +262,23 @@
<div class="grid">
<div class="grid__item">
<p class="copyright">
<span class="credit">Powered by <a href="http://octopress.org">Octopress</a>, <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>
<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>
<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>
<script>
var disqus_shortname = 'home-assistant';
@ -335,13 +295,5 @@
}());
</script>
</body>
</html>

View file

@ -5,8 +5,6 @@
<!--[if gt IE 8]><!--> <html> <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
@ -32,7 +30,6 @@
<link rel='icon' type='image/png' href='/images/favicon-192x192.png' sizes='192x192' />
</head>
<body >
<header>
@ -54,10 +51,10 @@
<a href="/getting-started/">Getting started</a>
<ul>
<li><a href='/getting-started/'>Installing Home Assistant</a></li>
<li><a href='/getting-started/configuration.html'>Configuration basics</a></li>
<li><a href='/getting-started/devices.html'>Adding devices</a></li>
<li><a href='/getting-started/presence-detection.html'>Presence detection</a></li>
<li><a href='/getting-started/automation.html'>Automation</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>
@ -65,26 +62,24 @@
<li>
<a href="/developers/">Developers</a>
<ul>
<li><a href="/developers/architecture.html">Architecture</a></li>
<li><a href="/developers/frontend.html">Frontend development</a></li>
<li><a href="/developers/creating_components.html">
<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.html">
<li><a href="/developers/add_new_platform/">
Adding platform support
</a></li>
<li><a href="/developers/api.html">API</a></li>
<li><a href="/developers/credits.html">Credits</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>
@ -98,6 +93,7 @@
<article class="post">
<header>
<h1 class="title indent">Release notes for May 14, 2015</h1>
@ -105,27 +101,9 @@
<div class="meta clearfix">
<time datetime="2015-05-14T22:25:00-07:00" pubdate data-updated="true"><i class="icon-calendar"></i> May 14, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<span><i class='icon-time'></i> five minutes reading time</span>
<time datetime="2015-05-14T22:25:00-07:00" pubdate data-updated="true"><i class="icon-calendar"></i> May 14, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<span><i class='icon-time'></i> three minutes reading time</span>
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -137,7 +115,6 @@
</ul>
</span>
<a class='comments'
href="#disqus_thread"
>Comments</a>
@ -147,187 +124,134 @@
</header>
<p>Almost three busy weeks have past since the last release. We used this time to finally make the overhaul to use UTC as the internal date time format. We added a bunch of test coverage in the process to make sure the transition went smoothly. Pleas see <a href="/blog/2015/05/09/utc-time-zone-awareness/#backwards-incompatible-stuff">the blog post about the UTC refactor</a> for backwards incompatible changes.</p>
<p>This release includes a significant startup boost for the frontend and a fix for Wemo discovery after their latest firmware upgrade.</p>
<p>I would like to give a big shout out to our newest contributor <a href="https://github.com/fabaff">fabaff</a> for taking the time to improve the documentation.</p>
<p class='note'>
To update to the latest version, run <code>scripts/update</code>. Please report any issues on <a href='https://github.com/balloob/home-assistant/issues'>GitHub</a>.
<p class="note">
To update to the latest version, run <code>scripts/update</code>. Please report any issues on <a href="https://github.com/balloob/home-assistant/issues">GitHub</a>.
</p>
<a name="read-more"></a>
<p><strong>Overwriting Entity Attributes</strong><br>
<p><strong>Overwriting Entity Attributes</strong><br />
Before diving into the newly supported devices and services, I want to highlight an awesome configuration enhancement by <a href="https://github.com/rmkraus">rmkraus</a>: overwriting entity attributes.</p>
<p>These new configuration settings allow you to overwrite entity state attributes. The main usage for this is being able to overwrite attributes that influence how an entity is shown in the interface.</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
</pre></td><td class='code'><pre><code class='yaml'><span class='line'><span class="c1"># Example configuration.yaml entry</span>
</span><span class='line'><span class="l-Scalar-Plain">homeassistant</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">customize</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">light.bowl</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="c1"># hides this entity from the interface</span>
</span><span class='line'> <span class="l-Scalar-Plain">hidden</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">true</span>
</span><span class='line'> <span class="l-Scalar-Plain">light.ceiling</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="c1"># Replaces the state badge with given picture</span>
</span><span class='line'> <span class="l-Scalar-Plain">entity_picture</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">http://graph.facebook.com/schoutsen/picture</span>
</span></code></pre></td></tr></table></div></figure>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">homeassistant</span>:
<span class="key">customize</span>:
<span class="key">light.bowl</span>:
<span class="comment"># hides this entity from the interface</span>
<span class="key">hidden</span>: <span class="string"><span class="content">true</span></span>
<span class="key">light.ceiling</span>:
<span class="comment"># Replaces the state badge with given picture</span>
<span class="key">entity_picture</span>: <span class="string"><span class="content">http://graph.facebook.com/schoutsen/picture</span></span>
</pre></div>
</div>
</div>
<p><strong>MySensors</strong><br />
<img src="/images/supported_brands/mysensors.png" style="border:none; box-shadow: none; float: right;" height="50" /> <a href="https://github.com/andythigpen">Andythigpen</a> and <a href="https://github.com/theolind">Theolind</a> have added support for the <a href="http://www.mysensors.org">MySensors platform</a> to Home Assistant.</p>
<p><strong>MySensors</strong><br>
<img src='/images/supported_brands/mysensors.png' style='border:none; box-shadow: none; float: right;' height='50' />
<a href="https://github.com/andythigpen">Andythigpen</a> and <a href="https://github.com/theolind">Theolind</a> have added support for the <a href="http://www.mysensors.org">MySensors platform</a> to Home Assistant.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">sensor</span>:
<span class="key">platform</span>: <span class="string"><span class="content">mysensors</span></span>
<span class="key">port</span>: <span class="string"><span class="content">/dev/ttyACM0</span></span>
</pre></div>
</div>
</div>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
</pre></td><td class='code'><pre><code class='yaml'><span class='line'><span class="c1"># Example configuration.yaml entry</span>
</span><span class='line'><span class="l-Scalar-Plain">sensor</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">platform</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">mysensors</span>
</span><span class='line'> <span class="l-Scalar-Plain">port</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">/dev/ttyACM0</span>
</span></code></pre></td></tr></table></div></figure>
<p><strong>OpenWeatherMap</strong><br />
<img src="/images/supported_brands/openweathermap.png" style="border:none; box-shadow: none; float: right;" height="50" /> <a href="https://github.com/fabaff">Fabaff</a> has contributed support for <a href="http://openweathermap.org">OpenWeatherMap</a>. This will allow you to integrate local meteorological data into Home Assistant.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">sensor</span>:
<span class="key">platform</span>: <span class="string"><span class="content">openweathermap</span></span>
<span class="key">api_key</span>: <span class="string"><span class="content">YOUR_API_KEY</span></span>
<span class="key">monitored_variables</span>:
- <span class="string"><span class="content">type: 'weather'</span></span>
- <span class="string"><span class="content">type: 'temperature'</span></span>
- <span class="string"><span class="content">type: 'wind_speed'</span></span>
- <span class="string"><span class="content">type: 'humidity'</span></span>
- <span class="string"><span class="content">type: 'pressure'</span></span>
- <span class="string"><span class="content">type: 'clouds'</span></span>
- <span class="string"><span class="content">type: 'rain'</span></span>
- <span class="string"><span class="content">type: 'snow'</span></span>
</pre></div>
</div>
</div>
<p><strong>OpenWeatherMap</strong><br>
<img src='/images/supported_brands/openweathermap.png' style='border:none; box-shadow: none; float: right;' height='50' />
<a href="https://github.com/fabaff">Fabaff</a> has contributed support for <a href="http://openweathermap.org">OpenWeatherMap</a>. This will allow you to integrate local meteorological data into Home Assistant.</p>
<p><strong>InstaPush</strong><br />
<img src="/images/supported_brands/instapush.png" style="border:none; box-shadow: none; float: right;" height="50" /> <a href="https://github.com/fabaff">Fabaff</a> has contributed support for <a href="https://instapush.im">InstaPush</a>. This will allow you send messages from Home Assistant to your iOS and Android devices.</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
<span class='line-number'>12</span>
<span class='line-number'>13</span>
</pre></td><td class='code'><pre><code class='yaml'><span class='line'><span class="c1"># Example configuration.yaml entry</span>
</span><span class='line'><span class="l-Scalar-Plain">sensor</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">platform</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">openweathermap</span>
</span><span class='line'> <span class="l-Scalar-Plain">api_key</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">YOUR_API_KEY</span>
</span><span class='line'> <span class="l-Scalar-Plain">monitored_variables</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">type</span><span class="p-Indicator">:</span> <span class="s">&#39;weather&#39;</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">type</span><span class="p-Indicator">:</span> <span class="s">&#39;temperature&#39;</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">type</span><span class="p-Indicator">:</span> <span class="s">&#39;wind_speed&#39;</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">type</span><span class="p-Indicator">:</span> <span class="s">&#39;humidity&#39;</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">type</span><span class="p-Indicator">:</span> <span class="s">&#39;pressure&#39;</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">type</span><span class="p-Indicator">:</span> <span class="s">&#39;clouds&#39;</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">type</span><span class="p-Indicator">:</span> <span class="s">&#39;rain&#39;</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">type</span><span class="p-Indicator">:</span> <span class="s">&#39;snow&#39;</span>
</span></code></pre></td></tr></table></div></figure>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">notify</span>:
<span class="key">platform</span>: <span class="string"><span class="content">instapush</span></span>
<span class="comment"># Get those by creating a new application, event, and tracker on https://instapush.im</span>
<span class="key">api_key</span>: <span class="string"><span class="content">ABCDEFGHJKLMNOPQRSTUVXYZ</span></span>
<span class="key">app_secret</span>: <span class="string"><span class="content">ABCDEFGHJKLMNOPQRSTUVXYZ</span></span>
<span class="key">event</span>: <span class="string"><span class="content">ABCDEFGHJKLMNOPQRSTUVXYZ</span></span>
<span class="key">tracker</span>: <span class="string"><span class="content">ABCDEFGHJKLMNOPQRSTUVXYZ</span></span>
</pre></div>
</div>
</div>
<p><strong>XMPP</strong><br />
<img src="/images/supported_brands/xmpp.png" style="border:none; box-shadow: none; float: right;" height="50" /> <a href="https://github.com/fabaff">Fabaff</a> has contributed support for Jabber/XMPP. This will allow you send messages from Home Assistant to anyone on Jabber/XMPP.</p>
<p><strong>InstaPush</strong><br>
<img src='/images/supported_brands/instapush.png' style='border:none; box-shadow: none; float: right;' height='50' />
<a href="https://github.com/fabaff">Fabaff</a> has contributed support for <a href="https://instapush.im">InstaPush</a>. This will allow you send messages from Home Assistant to your iOS and Android devices.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">notify</span>:
<span class="key">platform</span>: <span class="string"><span class="content">xmpp</span></span>
<span class="key">sender</span>: <span class="string"><span class="content">YOUR_JID</span></span>
<span class="key">password</span>: <span class="string"><span class="content">YOUR_JABBER_ACCOUNT_PASSWORD</span></span>
<span class="key">recipient</span>: <span class="string"><span class="content">YOUR_RECIPIENT</span></span>
</pre></div>
</div>
</div>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
</pre></td><td class='code'><pre><code class='yaml'><span class='line'><span class="c1"># Example configuration.yaml entry</span>
</span><span class='line'><span class="l-Scalar-Plain">notify</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">platform</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">instapush</span>
</span><span class='line'> <span class="c1"># Get those by creating a new application, event, and tracker on https://instapush.im</span>
</span><span class='line'> <span class="l-Scalar-Plain">api_key</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">ABCDEFGHJKLMNOPQRSTUVXYZ</span>
</span><span class='line'> <span class="l-Scalar-Plain">app_secret</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">ABCDEFGHJKLMNOPQRSTUVXYZ</span>
</span><span class='line'> <span class="l-Scalar-Plain">event</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">ABCDEFGHJKLMNOPQRSTUVXYZ</span>
</span><span class='line'> <span class="l-Scalar-Plain">tracker</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">ABCDEFGHJKLMNOPQRSTUVXYZ</span>
</span></code></pre></td></tr></table></div></figure>
<p><strong>Notify My Android</strong><br />
<img src="/images/supported_brands/nma.png" style="border:none; box-shadow: none; float: right;" height="50" /> <a href="https://github.com/fabaff">Fabaff</a> has contributed support for <a href="http://www.notifymyandroid.com/">Notify My Android</a>. This will allow you to send messages from Home Assistant to your Android device.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">notify</span>:
<span class="key">platform</span>: <span class="string"><span class="content">nma</span></span>
<span class="comment"># Get this by registering a new application on http://www.notifymyandroid.com/</span>
<span class="key">api_key</span>: <span class="string"><span class="content">ABCDEFGHJKLMNOPQRSTUVXYZ</span></span>
</pre></div>
</div>
</div>
<p><strong>XMPP</strong><br>
<img src='/images/supported_brands/xmpp.png' style='border:none; box-shadow: none; float: right;' height='50' />
<a href="https://github.com/fabaff">Fabaff</a> has contributed support for Jabber/XMPP. This will allow you send messages from Home Assistant to anyone on Jabber/XMPP.</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
</pre></td><td class='code'><pre><code class='yaml'><span class='line'><span class="c1"># Example configuration.yaml entry</span>
</span><span class='line'><span class="l-Scalar-Plain">notify</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">platform</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">xmpp</span>
</span><span class='line'> <span class="l-Scalar-Plain">sender</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">YOUR_JID</span>
</span><span class='line'> <span class="l-Scalar-Plain">password</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">YOUR_JABBER_ACCOUNT_PASSWORD</span>
</span><span class='line'> <span class="l-Scalar-Plain">recipient</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">YOUR_RECIPIENT</span>
</span></code></pre></td></tr></table></div></figure>
<p><strong>Notify My Android</strong><br>
<img src='/images/supported_brands/nma.png' style='border:none; box-shadow: none; float: right;' height='50' />
<a href="https://github.com/fabaff">Fabaff</a> has contributed support for <a href="http://www.notifymyandroid.com/">Notify My Android</a>. This will allow you to send messages from Home Assistant to your Android device.</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
</pre></td><td class='code'><pre><code class='yaml'><span class='line'><span class="c1"># Example configuration.yaml entry</span>
</span><span class='line'><span class="l-Scalar-Plain">notify</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">platform</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">nma</span>
</span><span class='line'> <span class="c1"># Get this by registering a new application on http://www.notifymyandroid.com/</span>
</span><span class='line'> <span class="l-Scalar-Plain">api_key</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">ABCDEFGHJKLMNOPQRSTUVXYZ</span>
</span></code></pre></td></tr></table></div></figure>
<p><strong>Time &amp; Date sensor</strong><br>
<p><strong>Time &amp; Date sensor</strong><br />
<a href="https://github.com/fabaff">Fabaff</a> has contributed a time &amp; date sensor. This will allow you to show the current time/date on the dashboard.</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
</pre></td><td class='code'><pre><code class='yaml'><span class='line'><span class="c1"># Example configuration.yaml entry</span>
</span><span class='line'><span class="l-Scalar-Plain">sensor</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">platform</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">time_date</span>
</span><span class='line'> <span class="l-Scalar-Plain">monitored_variables</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">type</span><span class="p-Indicator">:</span> <span class="s">&#39;time&#39;</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">type</span><span class="p-Indicator">:</span> <span class="s">&#39;date&#39;</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">type</span><span class="p-Indicator">:</span> <span class="s">&#39;date_time&#39;</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">type</span><span class="p-Indicator">:</span> <span class="s">&#39;time_date&#39;</span>
</span></code></pre></td></tr></table></div></figure>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">sensor</span>:
<span class="key">platform</span>: <span class="string"><span class="content">time_date</span></span>
<span class="key">monitored_variables</span>:
- <span class="string"><span class="content">type: 'time'</span></span>
- <span class="string"><span class="content">type: 'date'</span></span>
- <span class="string"><span class="content">type: 'date_time'</span></span>
- <span class="string"><span class="content">type: 'time_date'</span></span>
</pre></div>
</div>
</div>
</article>
<section id="disqus">
<h3 class="indent title">Comments</h3>
<div id="disqus_thread" aria-live="polite"><noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
</div>
<div id="disqus_thread" aria-live="polite"><noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript></div>
</section>
@ -339,7 +263,6 @@ Before diving into the newly supported devices and services, I want to highlight
<section class="sharing aside-module grid__item one-whole lap-one-half">
<h1 class="title delta">Share this post</h1>
@ -421,7 +344,6 @@ Before diving into the newly supported devices and services, I want to highlight
</div>
</aside>
</div>
@ -432,30 +354,23 @@ Before diving into the newly supported devices and services, I want to highlight
<div class="grid">
<div class="grid__item">
<p class="copyright">
<span class="credit">Powered by <a href="http://octopress.org">Octopress</a>, <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>
<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>
<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>
<script>
var disqus_shortname = 'home-assistant';
@ -472,13 +387,5 @@ Before diving into the newly supported devices and services, I want to highlight
}());
</script>
</body>
</html>

View file

@ -5,8 +5,6 @@
<!--[if gt IE 8]><!--> <html> <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
@ -32,7 +30,6 @@
<link rel='icon' type='image/png' href='/images/favicon-192x192.png' sizes='192x192' />
</head>
<body >
<header>
@ -54,10 +51,10 @@
<a href="/getting-started/">Getting started</a>
<ul>
<li><a href='/getting-started/'>Installing Home Assistant</a></li>
<li><a href='/getting-started/configuration.html'>Configuration basics</a></li>
<li><a href='/getting-started/devices.html'>Adding devices</a></li>
<li><a href='/getting-started/presence-detection.html'>Presence detection</a></li>
<li><a href='/getting-started/automation.html'>Automation</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>
@ -65,26 +62,24 @@
<li>
<a href="/developers/">Developers</a>
<ul>
<li><a href="/developers/architecture.html">Architecture</a></li>
<li><a href="/developers/frontend.html">Frontend development</a></li>
<li><a href="/developers/creating_components.html">
<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.html">
<li><a href="/developers/add_new_platform/">
Adding platform support
</a></li>
<li><a href="/developers/api.html">API</a></li>
<li><a href="/developers/credits.html">Credits</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>
@ -98,6 +93,7 @@
<article class="post">
<header>
<h1 class="title indent">Release notes for June 10, 2015</h1>
@ -105,27 +101,9 @@
<div class="meta clearfix">
<time datetime="2015-06-10T18:54:00-07:00" pubdate data-updated="true"><i class="icon-calendar"></i> June 10, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<span><i class='icon-time'></i> seven minutes reading time</span>
<time datetime="2015-06-10T18:54:00-07:00" pubdate data-updated="true"><i class="icon-calendar"></i> June 10, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<span><i class='icon-time'></i> five minutes reading time</span>
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -137,7 +115,6 @@
</ul>
</span>
<a class='comments'
href="#disqus_thread"
>Comments</a>
@ -147,266 +124,187 @@
</header>
<p>Wow, almost a month has gone by since the last release and this release is <em>packed</em>. The biggest part of this release is probably one that you won&rsquo;t notice: the frontend has been upgraded from Polymer 0.5 to the brand new released Polymer 1.0. Polymer has been declared stable by the Google overlords which will allow us to expand functionality that was waiting for this moment to arrive.</p>
<p>Wow, almost a month has gone by since the last release and this release is <em>packed</em>. The biggest part of this release is probably one that you wont notice: the frontend has been upgraded from Polymer 0.5 to the brand new released Polymer 1.0. Polymer has been declared stable by the Google overlords which will allow us to expand functionality that was waiting for this moment to arrive.</p>
<p>This release sets a record for the amount of people involved: 8! <a href="https://github.com/Andythigpen">Andythigpen</a>, <a href="https://github.com/Jamespcole">Jamespcole</a>, <a href="https://github.com/Azelphur">Azelphur</a>, <a href="https://github.com/Fabaff">Fabaff</a>, <a href="https://github.com/Dutchy-">Dutchy-</a>, <a href="https://github.com/Fbradyirl">Fbradyirl</a>, <a href="https://github.com/wind-rider">wind-rider</a> and <a href="https://github.com/ettisan">ettisan</a>, thanks a lot for your contributions!</p>
<p>A big improvement has been brought this release by wind-rider. He took the time to revive the Chromecast support and started improving the media player integration. This triggered other people to join in resulting in a revamped media player experience and support for the Music Player Daemon.</p>
<p class='img'>
<img src='/images/screenshots/media_player-card.png' />
Example of the new media player cards
<p class="img">
<img src="/images/screenshots/media_player-card.png" /> Example of the new media player cards
</p>
<p class='note'>
To update to the latest version, run <code>scripts/update</code>. Please report any issues on <a href='https://github.com/balloob/home-assistant/issues'>GitHub</a>.
<p class="note">
To update to the latest version, run <code>scripts/update</code>. Please report any issues on <a href="https://github.com/balloob/home-assistant/issues">GitHub</a>.
</p>
<a name="read-more"></a>
<p>Before jumping into the newly supported platforms, here are the other improvements that are landing this release:</p>
<ul>
<li>Fronted upgraded to Polymer 1.0 by @balloob</li>
<li>Include other YAML files using the <code>!include</code> keyword by @andythigpen</li>
<li>Switch support and bug fixes for Vera platform by @jamespcole</li>
<li>HTTP session support for the HTTP component by @jamespcole</li>
<li>Device tracker bugfixes by @Dutchy-</li>
<li>Bugfix for device tracker platform by @fbradyirl</li>
<li>Fixing Chromecast support by @wind-rider</li>
<li>Media player improvements by @balloob and @wind-rider</li>
<li>Nest thermostat bugfixes by @balloob</li>
<li>Fix the device tracker getting in a deadlock by @balloob</li>
<li>Update documentation by @fabaff</li>
<li>Fronted upgraded to Polymer 1.0 by @balloob</li>
<li>Include other YAML files using the <code>!include</code> keyword by @andythigpen</li>
<li>Switch support and bug fixes for Vera platform by @jamespcole</li>
<li>HTTP session support for the HTTP component by @jamespcole</li>
<li>Device tracker bugfixes by @Dutchy-</li>
<li>Bugfix for device tracker platform by @fbradyirl</li>
<li>Fixing Chromecast support by @wind-rider</li>
<li>Media player improvements by @balloob and @wind-rider</li>
<li>Nest thermostat bugfixes by @balloob</li>
<li>Fix the device tracker getting in a deadlock by @balloob</li>
<li>Update documentation by @fabaff</li>
</ul>
<p><strong>Music Player Daemon</strong><br />
<img src="/images/supported_brands/mpd.png" style="border:none; box-shadow: none; float: right;" height="50" /> Fabaff has contributed MusicPlayerDaemon support. The mpd platform allows you to control a <a href="http://www.musicpd.org/">Music Player Daemon</a> from Home Assistant. Right now, only playback is supported and not playlist manipulation.</p>
<p><strong>Music Player Daemon</strong><br>
<img src='/images/supported_brands/mpd.png' style='border:none; box-shadow: none; float: right;' height='50' />
Fabaff has contributed MusicPlayerDaemon support. The mpd platform allows you to control a <a href="http://www.musicpd.org/">Music Player Daemon</a> from Home Assistant. Right now, only playback is supported and not playlist manipulation.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">media_player</span>:
<span class="key">platform</span>: <span class="string"><span class="content">mpd</span></span>
<span class="key">server</span>: <span class="string"><span class="content">127.0.0.1</span></span>
<span class="key">port</span>: <span class="string"><span class="content">6600</span></span>
<span class="key">location</span>: <span class="string"><span class="content">bedroom</span></span>
</pre></div>
</div>
</div>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
</pre></td><td class='code'><pre><code class='yaml'><span class='line'><span class="c1"># Example configuration.yaml entry</span>
</span><span class='line'><span class="l-Scalar-Plain">media_player</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">platform</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">mpd</span>
</span><span class='line'> <span class="l-Scalar-Plain">server</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">127.0.0.1</span>
</span><span class='line'> <span class="l-Scalar-Plain">port</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">6600</span>
</span><span class='line'> <span class="l-Scalar-Plain">location</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">bedroom</span>
</span></code></pre></td></tr></table></div></figure>
<p><strong>Command line switch</strong><br>
<p><strong>Command line switch</strong><br />
A switch platform that issues specific commands when it is turned on and off. This might very well become our most popular platform as it allows anyone to integrate any type of switch into Home Assistant that can be controlled from the command line, including calling other scripts!</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
</pre></td><td class='code'><pre><code class='yaml'><span class='line'><span class="c1"># Example configuration.yaml entry</span>
</span><span class='line'><span class="l-Scalar-Plain">switch</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">platform</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">command_switch</span>
</span><span class='line'> <span class="l-Scalar-Plain">switches</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">kitchen_light</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">oncmd</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">switch_command on kitchen</span>
</span><span class='line'> <span class="l-Scalar-Plain">offcmd</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">switch_command off kitchen</span>
</span></code></pre></td></tr></table></div></figure>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">switch</span>:
<span class="key">platform</span>: <span class="string"><span class="content">command_switch</span></span>
<span class="key">switches</span>:
- <span class="string"><span class="content">kitchen_light:</span><span class="content">
oncmd: switch_command on kitchen
offcmd: switch_command off kitchen</span></span>
</pre></div>
</div>
</div>
<p><strong>LimitlessLED</strong><br>
<p><strong>LimitlessLED</strong><br />
This new platform can control your LimitlessLED lights from within Home Assistant. The lights are also known as EasyBulb, AppLight, AppLamp, MiLight, LEDme, dekolight or iLight.</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
</pre></td><td class='code'><pre><code class='yaml'><span class='line'><span class="c1"># Example configuration.yaml entry</span>
</span><span class='line'><span class="l-Scalar-Plain">light</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">platform</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">limitlessled</span>
</span><span class='line'> <span class="l-Scalar-Plain">host</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">192.168.1.10</span>
</span><span class='line'> <span class="l-Scalar-Plain">group_1_name</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">Living Room</span>
</span><span class='line'> <span class="l-Scalar-Plain">group_2_name</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">Bedroom</span>
</span><span class='line'> <span class="l-Scalar-Plain">group_3_name</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">Office</span>
</span><span class='line'> <span class="l-Scalar-Plain">group_4_name</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">Kitchen</span>
</span></code></pre></td></tr></table></div></figure>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">light</span>:
<span class="key">platform</span>: <span class="string"><span class="content">limitlessled</span></span>
<span class="key">host</span>: <span class="string"><span class="content">192.168.1.10</span></span>
<span class="key">group_1_name</span>: <span class="string"><span class="content">Living Room</span></span>
<span class="key">group_2_name</span>: <span class="string"><span class="content">Bedroom</span></span>
<span class="key">group_3_name</span>: <span class="string"><span class="content">Office</span></span>
<span class="key">group_4_name</span>: <span class="string"><span class="content">Kitchen</span></span>
</pre></div>
</div>
</div>
<p><strong>Bitcoin sensor</strong><br />
<img src="/images/supported_brands/bitcoin.png" style="border:none; box-shadow: none; float: right;" height="50" /> The bitcoin platform displays various details about the <a href="https://bitcoin.org">Bitcoin</a> network. If you have an online wallet from <a href="https://blockchain.info/">Blockchain.info</a> the sensor is capable to show your current balance.</p>
<p><strong>Bitcoin sensor</strong><br>
<img src='/images/supported_brands/bitcoin.png' style='border:none; box-shadow: none; float: right;' height='50' />
The bitcoin platform displays various details about the <a href="https://bitcoin.org">Bitcoin</a> network. If you have an online wallet from <a href="https://blockchain.info/">Blockchain.info</a> the sensor is capable to show your current balance.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">sensor</span>:
<span class="key">platform</span>: <span class="string"><span class="content">bitcoin</span></span>
<span class="key">wallet</span>: <span class="string"><span class="content">'YOUR WALLET_ID'</span></span>
<span class="key">password</span>: <span class="string"><span class="content">YOUR_ACCOUNT_PASSWORD</span></span>
<span class="key">currency</span>: <span class="string"><span class="content">YOUR CURRENCY</span></span>
<span class="key">display_options</span>:
- <span class="string"><span class="content">exchangerate</span></span>
- <span class="string"><span class="content">trade_volume_btc</span></span>
- <span class="string"><span class="content">miners_revenue_usd</span></span>
- <span class="string"><span class="content">btc_mined</span></span>
- <span class="string"><span class="content">trade_volume_usd</span></span>
- <span class="string"><span class="content">difficulty</span></span>
- <span class="string"><span class="content">minutes_between_blocks</span></span>
- <span class="string"><span class="content">number_of_transactions</span></span>
- <span class="string"><span class="content">hash_rate</span></span>
- <span class="string"><span class="content">timestamp</span></span>
- <span class="string"><span class="content">mined_blocks</span></span>
- <span class="string"><span class="content">blocks_size</span></span>
- <span class="string"><span class="content">total_fees_btc</span></span>
- <span class="string"><span class="content">total_btc_sent</span></span>
- <span class="string"><span class="content">estimated_btc_sent</span></span>
- <span class="string"><span class="content">total_btc</span></span>
- <span class="string"><span class="content">total_blocks</span></span>
- <span class="string"><span class="content">next_retarget</span></span>
- <span class="string"><span class="content">estimated_transaction_volume_usd</span></span>
- <span class="string"><span class="content">miners_revenue_btc</span></span>
- <span class="string"><span class="content">market_price_usd</span></span>
</pre></div>
</div>
</div>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
<span class='line-number'>12</span>
<span class='line-number'>13</span>
<span class='line-number'>14</span>
<span class='line-number'>15</span>
<span class='line-number'>16</span>
<span class='line-number'>17</span>
<span class='line-number'>18</span>
<span class='line-number'>19</span>
<span class='line-number'>20</span>
<span class='line-number'>21</span>
<span class='line-number'>22</span>
<span class='line-number'>23</span>
<span class='line-number'>24</span>
<span class='line-number'>25</span>
<span class='line-number'>26</span>
<span class='line-number'>27</span>
<span class='line-number'>28</span>
</pre></td><td class='code'><pre><code class='yaml'><span class='line'><span class="c1"># Example configuration.yaml entry</span>
</span><span class='line'><span class="l-Scalar-Plain">sensor</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">platform</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">bitcoin</span>
</span><span class='line'> <span class="l-Scalar-Plain">wallet</span><span class="p-Indicator">:</span> <span class="s">&#39;YOUR</span><span class="nv"> </span><span class="s">WALLET_ID&#39;</span>
</span><span class='line'> <span class="l-Scalar-Plain">password</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">YOUR_ACCOUNT_PASSWORD</span>
</span><span class='line'> <span class="l-Scalar-Plain">currency</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">YOUR CURRENCY</span>
</span><span class='line'> <span class="l-Scalar-Plain">display_options</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">exchangerate</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">trade_volume_btc</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">miners_revenue_usd</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">btc_mined</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">trade_volume_usd</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">difficulty</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">minutes_between_blocks</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">number_of_transactions</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">hash_rate</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">timestamp</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">mined_blocks</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">blocks_size</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">total_fees_btc</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">total_btc_sent</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">estimated_btc_sent</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">total_btc</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">total_blocks</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">next_retarget</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">estimated_transaction_volume_usd</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">miners_revenue_btc</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">market_price_usd</span>
</span></code></pre></td></tr></table></div></figure>
<p><strong>SMTP notificatoin platform</strong><br />
<img src="/images/supported_brands/smtp.png" style="border:none; box-shadow: none; float: right;" height="50" /> The smtp platform allows you to deliver notifications from Home Assistant to an e-mail recipient.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">notify</span>:
<span class="key">platform</span>: <span class="string"><span class="content">mail</span></span>
<span class="key">server</span>: <span class="string"><span class="content">MAIL_SERVER</span></span>
<span class="key">port</span>: <span class="string"><span class="content">YOUR_SMTP_PORT</span></span>
<span class="key">sender</span>: <span class="string"><span class="content">SENDER_EMAIL_ADDRESS</span></span>
<span class="key">starttls</span>: <span class="string"><span class="content">1 or 0</span></span>
<span class="key">username</span>: <span class="string"><span class="content">YOUR_SMTP_USERNAME</span></span>
<span class="key">password</span>: <span class="string"><span class="content">YOUR_SMTP_PASSWORD</span></span>
<span class="key">recipient</span>: <span class="string"><span class="content">YOUR_RECIPIENT</span></span>
</pre></div>
</div>
</div>
<p><strong>SMTP notificatoin platform</strong><br>
<img src='/images/supported_brands/smtp.png' style='border:none; box-shadow: none; float: right;' height='50' />
The smtp platform allows you to deliver notifications from Home Assistant to an e-mail recipient.</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
</pre></td><td class='code'><pre><code class='yaml'><span class='line'><span class="c1"># Example configuration.yaml entry</span>
</span><span class='line'><span class="l-Scalar-Plain">notify</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">platform</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">mail</span>
</span><span class='line'> <span class="l-Scalar-Plain">server</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">MAIL_SERVER</span>
</span><span class='line'> <span class="l-Scalar-Plain">port</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">YOUR_SMTP_PORT</span>
</span><span class='line'> <span class="l-Scalar-Plain">sender</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">SENDER_EMAIL_ADDRESS</span>
</span><span class='line'> <span class="l-Scalar-Plain">starttls</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">1 or 0</span>
</span><span class='line'> <span class="l-Scalar-Plain">username</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">YOUR_SMTP_USERNAME</span>
</span><span class='line'> <span class="l-Scalar-Plain">password</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">YOUR_SMTP_PASSWORD</span>
</span><span class='line'> <span class="l-Scalar-Plain">recipient</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">YOUR_RECIPIENT</span>
</span></code></pre></td></tr></table></div></figure>
<p><strong>Syslog notification platform</strong><br>
<p><strong>Syslog notification platform</strong><br />
The syslog platform allows you to deliver notifications from Home Assistant to the local syslog.</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
</pre></td><td class='code'><pre><code class='yaml'><span class='line'><span class="c1"># Example configuration.yaml entry</span>
</span><span class='line'><span class="l-Scalar-Plain">notify</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">platform</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">syslog</span>
</span></code></pre></td></tr></table></div></figure>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">notify</span>:
<span class="key">platform</span>: <span class="string"><span class="content">syslog</span></span>
</pre></div>
</div>
</div>
<p><strong>Swiss Public transport sensor</strong><br />
The swiss public transport sensor will give you the next two departure times from a given location to another one in Switzerland. See the <a href="/components/sensor.swiss_public_transport/">component page</a> for more information how to set it up.</p>
<p><strong>Swiss Public transport sensor</strong><br>
The swiss public transport sensor will give you the next two departure times from a given location to another one in Switzerland. See the <a href="/components/sensor.swiss_public_transport.html">component page</a> for more information how to set it up.</p>
<p><strong>Transmission turtle mode switch</strong><br />
<img src="/images/supported_brands/transmission.png" style="border:none; box-shadow: none; float: right;" height="50" /> The transmission platform allows you to control your <a href="http://www.transmissionbt.com/">Transmission</a> client from within Home Assistant. The platform enables you switch to your Alternative Speed Limits (aka Turtle mode) setting.</p>
<p><strong>Transmission turtle mode switch</strong><br>
<img src='/images/supported_brands/transmission.png' style='border:none; box-shadow: none; float: right;' height='50' />
The transmission platform allows you to control your <a href="http://www.transmissionbt.com/">Transmission</a> client from within Home Assistant. The platform enables you switch to your &lsquo;Alternative Speed Limits&rsquo; (aka &lsquo;Turtle mode&rsquo;) setting.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">switch</span>:
<span class="key">platform</span>: <span class="string"><span class="content">transmission</span></span>
<span class="key">name</span>: <span class="string"><span class="content">Transmission</span></span>
<span class="key">host</span>: <span class="string"><span class="content">192.168.1.26</span></span>
<span class="key">port</span>: <span class="string"><span class="content">9091</span></span>
<span class="key">username</span>: <span class="string"><span class="content">YOUR_USERNAME</span></span>
<span class="key">password</span>: <span class="string"><span class="content">YOUR_PASSWORD</span></span>
</pre></div>
</div>
</div>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
</pre></td><td class='code'><pre><code class='yaml'><span class='line'><span class="c1"># Example configuration.yaml entry</span>
</span><span class='line'><span class="l-Scalar-Plain">switch</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">platform</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">transmission</span>
</span><span class='line'> <span class="l-Scalar-Plain">name</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">Transmission</span>
</span><span class='line'> <span class="l-Scalar-Plain">host</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">192.168.1.26</span>
</span><span class='line'> <span class="l-Scalar-Plain">port</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">9091</span>
</span><span class='line'> <span class="l-Scalar-Plain">username</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">YOUR_USERNAME</span>
</span><span class='line'> <span class="l-Scalar-Plain">password</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">YOUR_PASSWORD</span>
</span></code></pre></td></tr></table></div></figure>
<p><strong>Hikvision camera motion detection support</strong><br>
<p><strong>Hikvision camera motion detection support</strong><br />
This switch platform allows you to control your motion detection setting on your Hikvision camera.</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
</pre></td><td class='code'><pre><code class='yaml'><span class='line'><span class="c1"># Example configuration.yaml entry</span>
</span><span class='line'><span class="l-Scalar-Plain">switch</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">platform</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">hikvisioncam</span>
</span><span class='line'> <span class="l-Scalar-Plain">name</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">Hikvision Cam 1 Motion Detection</span>
</span><span class='line'> <span class="l-Scalar-Plain">host</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">192.168.1.26</span>
</span><span class='line'> <span class="l-Scalar-Plain">username</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">YOUR_USERNAME</span>
</span><span class='line'> <span class="l-Scalar-Plain">password</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">YOUR_PASSWORD</span>
</span></code></pre></td></tr></table></div></figure>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">switch</span>:
<span class="key">platform</span>: <span class="string"><span class="content">hikvisioncam</span></span>
<span class="key">name</span>: <span class="string"><span class="content">Hikvision Cam 1 Motion Detection</span></span>
<span class="key">host</span>: <span class="string"><span class="content">192.168.1.26</span></span>
<span class="key">username</span>: <span class="string"><span class="content">YOUR_USERNAME</span></span>
<span class="key">password</span>: <span class="string"><span class="content">YOUR_PASSWORD</span></span>
</pre></div>
</div>
</div>
</article>
<section id="disqus">
<h3 class="indent title">Comments</h3>
<div id="disqus_thread" aria-live="polite"><noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
</div>
<div id="disqus_thread" aria-live="polite"><noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript></div>
</section>
@ -418,7 +316,6 @@ This switch platform allows you to control your motion detection setting on your
<section class="sharing aside-module grid__item one-whole lap-one-half">
<h1 class="title delta">Share this post</h1>
@ -500,7 +397,6 @@ This switch platform allows you to control your motion detection setting on your
</div>
</aside>
</div>
@ -511,30 +407,23 @@ This switch platform allows you to control your motion detection setting on your
<div class="grid">
<div class="grid__item">
<p class="copyright">
<span class="credit">Powered by <a href="http://octopress.org">Octopress</a>, <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>
<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>
<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>
<script>
var disqus_shortname = 'home-assistant';
@ -551,13 +440,5 @@ This switch platform allows you to control your motion detection setting on your
}());
</script>
</body>
</html>

View file

@ -5,8 +5,6 @@
<!--[if gt IE 8]><!--> <html> <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
@ -32,7 +30,6 @@
<link rel='icon' type='image/png' href='/images/favicon-192x192.png' sizes='192x192' />
</head>
<body >
<header>
@ -54,10 +51,10 @@
<a href="/getting-started/">Getting started</a>
<ul>
<li><a href='/getting-started/'>Installing Home Assistant</a></li>
<li><a href='/getting-started/configuration.html'>Configuration basics</a></li>
<li><a href='/getting-started/devices.html'>Adding devices</a></li>
<li><a href='/getting-started/presence-detection.html'>Presence detection</a></li>
<li><a href='/getting-started/automation.html'>Automation</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>
@ -65,26 +62,24 @@
<li>
<a href="/developers/">Developers</a>
<ul>
<li><a href="/developers/architecture.html">Architecture</a></li>
<li><a href="/developers/frontend.html">Frontend development</a></li>
<li><a href="/developers/creating_components.html">
<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.html">
<li><a href="/developers/add_new_platform/">
Adding platform support
</a></li>
<li><a href="/developers/api.html">API</a></li>
<li><a href="/developers/credits.html">Credits</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>
@ -98,6 +93,7 @@
<article class="post">
<header>
<h1 class="title indent">IP Cameras, Arduinos, Kodi and Efergy Energy Monitors now supported</h1>
@ -105,27 +101,9 @@
<div class="meta clearfix">
<time datetime="2015-07-11T01:37:00-07:00" pubdate data-updated="true"><i class="icon-calendar"></i> July 11, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<span><i class='icon-time'></i> five minutes reading time</span>
<time datetime="2015-07-11T01:37:00-07:00" pubdate data-updated="true"><i class="icon-calendar"></i> July 11, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<span><i class='icon-time'></i> four minutes reading time</span>
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -137,7 +115,6 @@
</ul>
</span>
<a class='comments'
href="#disqus_thread"
>Comments</a>
@ -147,210 +124,139 @@
</header>
<p>Another month has passed and some great new features have landed in Home Assistant. This month release has been made possible by <a href="https://github.com/balloob">balloob</a>, <a href="https://github.com/ettisan">ettisan</a>, <a href="https://github.com/fabaff">fabaff</a>, <a href="https://github.com/gyran">gyran</a>, <a href="https://github.com/jamespcole">jamespcole</a>, <a href="https://github.com/michaelarnauts">michaelarnauts</a>, <a href="https://github.com/miniconfig">miniconfig</a> and <a href="https://github.com/rmkraus">rmkraus</a>.</p>
<p>This release includes some architectural changes by me. The first is that the frontend is now based on a <a href="http://optimizely.github.io/nuclear-js/">NuclearJS</a> JavaScript backend. This has greatly helped to organize and optimize the frontend code. Another change is that Home Assistant will now install dependencies on-demand instead of installing dependencies for all supported devices.</p>
<p><strong>IP Camera Support</strong><br>
<p><strong>IP Camera Support</strong><br />
James has worked very hard to add support for IP cameras to Home Assistant which is included in this release. The initial release focusses on providing generic IP camera support. This means that any webcam that can exposes a JPEG image via a url can be integrated.</p>
<p>Home Assistant will route the requests to your camera via the server allowing you to expose IP camera&rsquo;s inside your network via the Home Assistant app.</p>
<p>Home Assistant will route the requests to your camera via the server allowing you to expose IP cameras inside your network via the Home Assistant app.</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
</pre></td><td class='code'><pre><code class='yaml'><span class='line'><span class="c1"># Example configuration.yaml entry</span>
</span><span class='line'><span class="l-Scalar-Plain">camera</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">platform</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">generic</span>
</span><span class='line'> <span class="l-Scalar-Plain">name</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">my sample camera</span>
</span><span class='line'> <span class="l-Scalar-Plain">username</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">MY_USERNAME</span>
</span><span class='line'> <span class="l-Scalar-Plain">password</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">MY_PASSWORD</span>
</span><span class='line'> <span class="l-Scalar-Plain">still_image_url</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">http://194.218.96.92/jpg/image.jpg</span>
</span></code></pre></td></tr></table></div></figure>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">camera</span>:
<span class="key">platform</span>: <span class="string"><span class="content">generic</span></span>
<span class="key">name</span>: <span class="string"><span class="content">my sample camera</span></span>
<span class="key">username</span>: <span class="string"><span class="content">MY_USERNAME</span></span>
<span class="key">password</span>: <span class="string"><span class="content">MY_PASSWORD</span></span>
<span class="key">still_image_url</span>: <span class="string"><span class="content">http://194.218.96.92/jpg/image.jpg</span></span>
</pre></div>
</div>
</div>
<p class='note'>
To update to the latest version, run <code>scripts/update</code>. Please report any issues on <a href='https://github.com/balloob/home-assistant/issues'>GitHub</a>.
<p class="note">
To update to the latest version, run <code>scripts/update</code>. Please report any issues on <a href="https://github.com/balloob/home-assistant/issues">GitHub</a>.
</p>
<a name="read-more"></a>
<p><strong>Arduino</strong><br />
<img src="/images/supported_brands/arduino.png" style="border:none; box-shadow: none; float: right;" height="50" /> Fabian has contributed support for interfacing with Arduinos. This makes it possible to connect your Arduino via USB and expose pins as sensor data and write to pins via switches. Have a look at <a href="/components/arduino/">the docs</a> for an extensive guide to get started.</p>
<p><strong>Arduino</strong><br>
<img src='/images/supported_brands/arduino.png' style='border:none; box-shadow: none; float: right;' height='50' />
Fabian has contributed support for interfacing with Arduinos. This makes it possible to connect your Arduino via USB and expose pins as sensor data and write to pins via switches. Have a look at <a href="/components/arduino.html">the docs</a> for an extensive guide to get started.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">switch</span>:
<span class="key">platform</span>: <span class="string"><span class="content">arduino</span></span>
<span class="key">pins</span>:
<span class="key">11</span>:
<span class="key">name</span>: <span class="string"><span class="content">Fan Office</span></span>
<span class="key">type</span>: <span class="string"><span class="content">digital</span></span>
<span class="key">12</span>:
<span class="key">name</span>: <span class="string"><span class="content">Light Desk</span></span>
<span class="key">type</span>: <span class="string"><span class="content">digital</span></span>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
<span class='line-number'>12</span>
<span class='line-number'>13</span>
<span class='line-number'>14</span>
<span class='line-number'>15</span>
<span class='line-number'>16</span>
<span class='line-number'>17</span>
<span class='line-number'>18</span>
<span class='line-number'>19</span>
<span class='line-number'>20</span>
</pre></td><td class='code'><pre><code class='yaml'><span class='line'><span class="c1"># Example configuration.yaml entry</span>
</span><span class='line'><span class="l-Scalar-Plain">switch</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">platform</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">arduino</span>
</span><span class='line'> <span class="l-Scalar-Plain">pins</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">11</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">name</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">Fan Office</span>
</span><span class='line'> <span class="l-Scalar-Plain">type</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">digital</span>
</span><span class='line'> <span class="l-Scalar-Plain">12</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">name</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">Light Desk</span>
</span><span class='line'> <span class="l-Scalar-Plain">type</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">digital</span>
</span><span class='line'>
</span><span class='line'><span class="l-Scalar-Plain">sensor</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">platform</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">arduino</span>
</span><span class='line'> <span class="l-Scalar-Plain">pins</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">1</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">name</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">Door switch</span>
</span><span class='line'> <span class="l-Scalar-Plain">type</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">analog</span>
</span><span class='line'> <span class="l-Scalar-Plain">0</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">name</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">Brightness</span>
</span><span class='line'> <span class="l-Scalar-Plain">type</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">analog</span>
</span></code></pre></td></tr></table></div></figure>
<span class="key">sensor</span>:
<span class="key">platform</span>: <span class="string"><span class="content">arduino</span></span>
<span class="key">pins</span>:
<span class="key">1</span>:
<span class="key">name</span>: <span class="string"><span class="content">Door switch</span></span>
<span class="key">type</span>: <span class="string"><span class="content">analog</span></span>
<span class="key">0</span>:
<span class="key">name</span>: <span class="string"><span class="content">Brightness</span></span>
<span class="key">type</span>: <span class="string"><span class="content">analog</span></span>
</pre></div>
</div>
</div>
<p><strong>Kodi (XBMC)</strong><br />
<img src="/images/supported_brands/kodi.png" style="border:none; box-shadow: none; float: right;" height="50" /> Ettisan has contributed a Kodi (XBMC) platform for the media player component. This allows you to track all the media that you are playing and allow you to control it.</p>
<p><strong>Kodi (XBMC)</strong><br>
<img src='/images/supported_brands/kodi.png' style='border:none; box-shadow: none; float: right;' height='50' />
Ettisan has contributed a Kodi (XBMC) platform for the media player component. This allows you to track all the media that you are playing and allow you to control it.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">media_player</span>:
<span class="key">platform</span>: <span class="string"><span class="content">kodi</span></span>
<span class="key">name</span>: <span class="string"><span class="content">Kodi</span></span>
<span class="key">url</span>: <span class="string"><span class="content">http://192.168.0.123/jsonrpc</span></span>
<span class="key">user</span>: <span class="string"><span class="content">kodi</span></span>
<span class="key">password</span>: <span class="string"><span class="content">my_secure_password</span></span>
</pre></div>
</div>
</div>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
</pre></td><td class='code'><pre><code class='yaml'><span class='line'><span class="c1"># Example configuration.yaml entry</span>
</span><span class='line'><span class="l-Scalar-Plain">media_player</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">platform</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">kodi</span>
</span><span class='line'> <span class="l-Scalar-Plain">name</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">Kodi</span>
</span><span class='line'> <span class="l-Scalar-Plain">url</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">http://192.168.0.123/jsonrpc</span>
</span><span class='line'> <span class="l-Scalar-Plain">user</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">kodi</span>
</span><span class='line'> <span class="l-Scalar-Plain">password</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">my_secure_password</span>
</span></code></pre></td></tr></table></div></figure>
<p><strong>TP-Link</strong><br />
<img src="/images/supported_brands/tp-link.png" style="border:none; box-shadow: none; float: right;" width="150" /> Michael has added TP-Link support to the device tracker. This allows you to now detect presence if you have a TP-Link router.</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">tplink</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><strong>TP-Link</strong><br>
<img src='/images/supported_brands/tp-link.png' style='border:none; box-shadow: none; float: right;' width='150' />
Michael has added TP-Link support to the device tracker. This allows you to now detect presence if you have a TP-Link router.</p>
<p><strong>Efergy energy monitor</strong><br />
<img src="/images/supported_brands/efergy.png" style="border:none; box-shadow: none; float: right;" height="50" /> Miniconfig has contributed support for the <a href="https://efergy.com">Efergy energy meters</a>. To get an app token, log in to your efergy account, go to the Settings page, click on App tokens, and click “Add token”.</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
</pre></td><td class='code'><pre><code class='yaml'><span class='line'><span class="c1"># Example configuration.yaml entry</span>
</span><span class='line'><span class="l-Scalar-Plain">device_tracker</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">platform</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">tplink</span>
</span><span class='line'> <span class="l-Scalar-Plain">host</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">YOUR_ROUTER_IP</span>
</span><span class='line'> <span class="l-Scalar-Plain">username</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">YOUR_ADMIN_USERNAME</span>
</span><span class='line'> <span class="l-Scalar-Plain">password</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">YOUR_ADMIN_PASSWORD</span>
</span></code></pre></td></tr></table></div></figure>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">sensor</span>:
<span class="key">platform</span>: <span class="string"><span class="content">efergy</span></span>
<span class="key">app_token</span>: <span class="string"><span class="content">APP_TOKEN</span></span>
<span class="key">utc_offset</span>: <span class="string"><span class="content">UTC_OFFSET</span></span>
<span class="key">monitored_variables</span>:
- <span class="string"><span class="content">type: instant_readings</span></span>
- <span class="string"><span class="content">type: budget</span></span>
- <span class="string"><span class="content">type: cost</span></span>
<span class="key">period</span>: <span class="string"><span class="content">day</span></span>
<span class="key">currency</span>: <span class="string"><span class="content">$</span></span>
</pre></div>
</div>
</div>
<p><strong>Efergy energy monitor</strong><br>
<img src='/images/supported_brands/efergy.png' style='border:none; box-shadow: none; float: right;' height='50' />
Miniconfig has contributed support for the <a href="https://efergy.com">Efergy energy meters</a>. To get an app token, log in to your efergy account, go to the Settings page, click on App tokens, and click &ldquo;Add token&rdquo;.</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
</pre></td><td class='code'><pre><code class='yaml'><span class='line'><span class="c1"># Example configuration.yaml entry</span>
</span><span class='line'><span class="l-Scalar-Plain">sensor</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">platform</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">efergy</span>
</span><span class='line'> <span class="l-Scalar-Plain">app_token</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">APP_TOKEN</span>
</span><span class='line'> <span class="l-Scalar-Plain">utc_offset</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">UTC_OFFSET</span>
</span><span class='line'> <span class="l-Scalar-Plain">monitored_variables</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">type</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">instant_readings</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">type</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">budget</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">type</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">cost</span>
</span><span class='line'> <span class="l-Scalar-Plain">period</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">day</span>
</span><span class='line'> <span class="l-Scalar-Plain">currency</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">$</span>
</span></code></pre></td></tr></table></div></figure>
<p><strong>Forecast.io</strong><br>
<p><strong>Forecast.io</strong><br />
Fabian has added support for <a href="https://forecast.io/">Forecast.io</a> to get weather forecasts for Home Assistant. You need an API key which is free but requires a <a href="https://developer.forecast.io/register">registration</a>. To add Forecast.io to your installation, add the following to your <code>configuration.yaml</code> file:</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
<span class='line-number'>12</span>
<span class='line-number'>13</span>
<span class='line-number'>14</span>
<span class='line-number'>15</span>
<span class='line-number'>16</span>
<span class='line-number'>17</span>
</pre></td><td class='code'><pre><code class='yaml'><span class='line'><span class="c1"># Example configuration.yaml entry</span>
</span><span class='line'><span class="l-Scalar-Plain">sensor</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">platform</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">forecast</span>
</span><span class='line'> <span class="l-Scalar-Plain">api_key</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">YOUR_APP_KEY</span>
</span><span class='line'> <span class="l-Scalar-Plain">monitored_conditions</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">summary</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">precip_type</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">precip_intensity</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">temperature</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">dew_point</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">wind_speed</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">wind_bearing</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">cloud_cover</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">humidity</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">pressure</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">visibility</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">ozone</span>
</span></code></pre></td></tr></table></div></figure>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">sensor</span>:
<span class="key">platform</span>: <span class="string"><span class="content">forecast</span></span>
<span class="key">api_key</span>: <span class="string"><span class="content">YOUR_APP_KEY</span></span>
<span class="key">monitored_conditions</span>:
- <span class="string"><span class="content">summary</span></span>
- <span class="string"><span class="content">precip_type</span></span>
- <span class="string"><span class="content">precip_intensity</span></span>
- <span class="string"><span class="content">temperature</span></span>
- <span class="string"><span class="content">dew_point</span></span>
- <span class="string"><span class="content">wind_speed</span></span>
- <span class="string"><span class="content">wind_bearing</span></span>
- <span class="string"><span class="content">cloud_cover</span></span>
- <span class="string"><span class="content">humidity</span></span>
- <span class="string"><span class="content">pressure</span></span>
- <span class="string"><span class="content">visibility</span></span>
- <span class="string"><span class="content">ozone</span></span>
</pre></div>
</div>
</div>
</article>
<section id="disqus">
<h3 class="indent title">Comments</h3>
<div id="disqus_thread" aria-live="polite"><noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
</div>
<div id="disqus_thread" aria-live="polite"><noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript></div>
</section>
@ -362,7 +268,6 @@ Fabian has added support for <a href="https://forecast.io/">Forecast.io</a> to g
<section class="sharing aside-module grid__item one-whole lap-one-half">
<h1 class="title delta">Share this post</h1>
@ -444,7 +349,6 @@ Fabian has added support for <a href="https://forecast.io/">Forecast.io</a> to g
</div>
</aside>
</div>
@ -455,30 +359,23 @@ Fabian has added support for <a href="https://forecast.io/">Forecast.io</a> to g
<div class="grid">
<div class="grid__item">
<p class="copyright">
<span class="credit">Powered by <a href="http://octopress.org">Octopress</a>, <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>
<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>
<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>
<script>
var disqus_shortname = 'home-assistant';
@ -495,13 +392,5 @@ Fabian has added support for <a href="https://forecast.io/">Forecast.io</a> to g
}());
</script>
</body>
</html>

View file

@ -5,8 +5,6 @@
<!--[if gt IE 8]><!--> <html> <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
@ -32,7 +30,6 @@
<link rel='icon' type='image/png' href='/images/favicon-192x192.png' sizes='192x192' />
</head>
<body >
<header>
@ -54,10 +51,10 @@
<a href="/getting-started/">Getting started</a>
<ul>
<li><a href='/getting-started/'>Installing Home Assistant</a></li>
<li><a href='/getting-started/configuration.html'>Configuration basics</a></li>
<li><a href='/getting-started/devices.html'>Adding devices</a></li>
<li><a href='/getting-started/presence-detection.html'>Presence detection</a></li>
<li><a href='/getting-started/automation.html'>Automation</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>
@ -65,26 +62,24 @@
<li>
<a href="/developers/">Developers</a>
<ul>
<li><a href="/developers/architecture.html">Architecture</a></li>
<li><a href="/developers/frontend.html">Frontend development</a></li>
<li><a href="/developers/creating_components.html">
<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.html">
<li><a href="/developers/add_new_platform/">
Adding platform support
</a></li>
<li><a href="/developers/api.html">API</a></li>
<li><a href="/developers/credits.html">Credits</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>
@ -98,6 +93,7 @@
<article class="post">
<header>
<h1 class="title indent">MQTT, Rasperry PI, Logitech Squeezebox and ASUSWRT routers now supported</h1>
@ -105,27 +101,9 @@
<div class="meta clearfix">
<time datetime="2015-08-09T18:01:00-07:00" pubdate data-updated="true"><i class="icon-calendar"></i> August 9, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<span><i class='icon-time'></i> four minutes reading time</span>
<time datetime="2015-08-09T18:01:00-07:00" pubdate data-updated="true"><i class="icon-calendar"></i> August 9, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<span><i class='icon-time'></i> three minutes reading time</span>
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -137,7 +115,6 @@
</ul>
</span>
<a class='comments'
href="#disqus_thread"
>Comments</a>
@ -147,173 +124,128 @@
</header>
<p>Its time for the August release and there is some serious good stuff this time. The core of Home Assistant has gone some serious clean up and a bump in test coverage thanks to <a href="https://github.com/balloob">@balloob</a>. If youre a developer, make sure you read up on <a href="https://github.com/balloob/home-assistant/pull/251">the deprecation notices</a>. <a href="https://github.com/fabaff">@fabaff</a> did another great round of documentating all the various components.</p>
<p><strong>MQTT Support</strong><br />
<img src="/images/supported_brands/mqtt.png" style="border:none; box-shadow: none; float: right;" height="50" /> The big new addition in this release is the support for the MQTT protocol by <a href="https://github.com/fabaff">@fabaff</a> with some help from <a href="https://github.com/balloob">@balloob</a>. It will now be possible to integrate any IoT device that talks via MQTT. For the initial release we support connecting Home Assistant to a broker (no TLS yet). Components can now subscribe and publish to MQTT topics (<a href="https://github.com/balloob/home-assistant/blob/dev/config/custom_components/mqtt_example.py">see the example</a>) and also support for the automation component <a href="/components/automation/#mqtt-based-automation">has been added</a>. For more information, see <a href="/components/mqtt/">the MQTT component page</a>.</p>
<p>It&rsquo;s time for the August release and there is some serious good stuff this time. The core of Home Assistant has gone some serious clean up and a bump in test coverage thanks to <a href="https://github.com/balloob">@balloob</a>. If you&rsquo;re a developer, make sure you read up on <a href="https://github.com/balloob/home-assistant/pull/251">the deprecation notices</a>. <a href="https://github.com/fabaff">@fabaff</a> did another great round of documentating all the various components.</p>
<p><strong>MQTT Support</strong><br>
<img src='/images/supported_brands/mqtt.png' style='border:none; box-shadow: none; float: right;' height='50' />
The big new addition in this release is the support for the MQTT protocol by <a href="https://github.com/fabaff">@fabaff</a> with some help from <a href="https://github.com/balloob">@balloob</a>. It will now be possible to integrate any IoT device that talks via MQTT. For the initial release we support connecting Home Assistant to a broker (no TLS yet). Components can now subscribe and publish to MQTT topics (<a href="https://github.com/balloob/home-assistant/blob/dev/config/custom_components/mqtt_example.py">see the example</a>) and also support for the automation component <a href="/components/automation.html#mqtt-based-automation">has been added</a>. For more information, see <a href="/components/mqtt.html">the MQTT component page</a>.</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
</pre></td><td class='code'><pre><code class='yaml'><span class='line'><span class="c1"># Example configuration.yaml entry</span>
</span><span class='line'><span class="l-Scalar-Plain">mqtt</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">broker</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">IP_ADDRESS_BROKER</span>
</span><span class='line'> <span class="c1"># All the other options are optional:</span>
</span><span class='line'> <span class="l-Scalar-Plain">port</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">1883</span>
</span><span class='line'> <span class="l-Scalar-Plain">keepalive</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">60</span>
</span><span class='line'> <span class="l-Scalar-Plain">qos</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">0</span>
</span><span class='line'> <span class="l-Scalar-Plain">username</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">your_username</span>
</span><span class='line'> <span class="l-Scalar-Plain">password</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">your_secret_password</span>
</span></code></pre></td></tr></table></div></figure>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">mqtt</span>:
<span class="key">broker</span>: <span class="string"><span class="content">IP_ADDRESS_BROKER</span></span>
<span class="comment"># All the other options are optional:</span>
<span class="key">port</span>: <span class="string"><span class="content">1883</span></span>
<span class="key">keepalive</span>: <span class="string"><span class="content">60</span></span>
<span class="key">qos</span>: <span class="string"><span class="content">0</span></span>
<span class="key">username</span>: <span class="string"><span class="content">your_username</span></span>
<span class="key">password</span>: <span class="string"><span class="content">your_secret_password</span></span>
</pre></div>
</div>
</div>
<a name="read-more"></a>
<p><strong>Raspberry PI GPIO Support</strong><br />
<img src="/images/supported_brands/raspberry-pi.png" style="border:none; box-shadow: none; float: right;" height="50" /> <a href="https://github.com/gbarba">@gbarba</a> has contributed support to use the general purpose input and output pins on a Raspberry PI as switches inside Home Assistant.</p>
<p><strong>Raspberry PI GPIO Support</strong><br>
<img src='/images/supported_brands/raspberry-pi.png' style='border:none; box-shadow: none; float: right;' height='50' />
<a href="https://github.com/gbarba">@gbarba</a> has contributed support to use the general purpose input and output pins on a Raspberry PI as switches inside Home Assistant.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">switch</span>:
<span class="key">platform</span>: <span class="string"><span class="content">rpi_gpio</span></span>
<span class="key">ports</span>:
<span class="key">11</span>: <span class="string"><span class="content">Fan Office</span></span>
<span class="key">12</span>: <span class="string"><span class="content">Light Desk</span></span>
</pre></div>
</div>
</div>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
</pre></td><td class='code'><pre><code class='yaml'><span class='line'><span class="c1"># Example configuration.yaml entry</span>
</span><span class='line'><span class="l-Scalar-Plain">switch</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">platform</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">rpi_gpio</span>
</span><span class='line'> <span class="l-Scalar-Plain">ports</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">11</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">Fan Office</span>
</span><span class='line'> <span class="l-Scalar-Plain">12</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">Light Desk</span>
</span></code></pre></td></tr></table></div></figure>
<p><strong>ASUSWRT based routers</strong><br />
<img src="/images/supported_brands/asus.png" style="border:none; box-shadow: none; float: right;" height="50" /> <a href="https://github.com/persandstrom">@persandstrom</a> has contributed support to do prescence detection using ASUSWRT based routers.</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><strong>ASUSWRT based routers</strong><br>
<img src='/images/supported_brands/asus.png' style='border:none; box-shadow: none; float: right;' height='50' />
<a href="https://github.com/persandstrom">@persandstrom</a> has contributed support to do prescence detection using ASUSWRT based routers.</p>
<p><strong>Logitech Squeezebox media player support</strong><br />
<img src="/images/supported_brands/logitech.png" style="border:none; box-shadow: none; float: right;" height="50" /> <a href="https://github.com/persandstrom">@persandstrom</a> also contributed support for the Logitech Squeezebox media player. This allows you to control your Logitech Squeezebox from Home Assistant.</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
</pre></td><td class='code'><pre><code class='yaml'><span class='line'><span class="c1"># Example configuration.yaml entry</span>
</span><span class='line'><span class="l-Scalar-Plain">device_tracker</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">platform</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">asuswrt</span>
</span><span class='line'> <span class="l-Scalar-Plain">host</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">YOUR_ROUTER_IP</span>
</span><span class='line'> <span class="l-Scalar-Plain">username</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">YOUR_ADMIN_USERNAME</span>
</span><span class='line'> <span class="l-Scalar-Plain">password</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">YOUR_ADMIN_PASSWORD</span>
</span></code></pre></td></tr></table></div></figure>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">media_player</span>:
<span class="key">platform</span>: <span class="string"><span class="content">squeezebox</span></span>
<span class="key">host</span>: <span class="string"><span class="content">192.168.1.21</span></span>
<span class="key">port</span>: <span class="string"><span class="content">9090</span></span>
<span class="key">username</span>: <span class="string"><span class="content">user</span></span>
<span class="key">password</span>: <span class="string"><span class="content">password</span></span>
</pre></div>
</div>
</div>
<p><strong>Slack notification support</strong><br />
<img src="/images/supported_brands/slack.png" style="border:none; box-shadow: none; float: right;" height="50" /> <a href="https://github.com/jamespcole">@jamespcole</a> has contributed a Slack platform for the notification platform. This allows you to deliver messages to any channel.</p>
<p><strong>Logitech Squeezebox media player support</strong><br>
<img src='/images/supported_brands/logitech.png' style='border:none; box-shadow: none; float: right;' height='50' />
<a href="https://github.com/persandstrom">@persandstrom</a> also contributed support for the Logitech Squeezebox media player. This allows you to control your Logitech Squeezebox from Home Assistant.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">notify</span>:
<span class="key">platform</span>: <span class="string"><span class="content">slack</span></span>
<span class="key">api_key</span>: <span class="string"><span class="content">ABCDEFGHJKLMNOPQRSTUVXYZ</span></span>
<span class="key">default_channel</span>: <span class="string"><span class="content">'#general'</span></span>
</pre></div>
</div>
</div>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
</pre></td><td class='code'><pre><code class='yaml'><span class='line'><span class="c1"># Example configuration.yaml entry</span>
</span><span class='line'><span class="l-Scalar-Plain">media_player</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">platform</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">squeezebox</span>
</span><span class='line'> <span class="l-Scalar-Plain">host</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">192.168.1.21</span>
</span><span class='line'> <span class="l-Scalar-Plain">port</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">9090</span>
</span><span class='line'> <span class="l-Scalar-Plain">username</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">user</span>
</span><span class='line'> <span class="l-Scalar-Plain">password</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">password</span>
</span></code></pre></td></tr></table></div></figure>
<p><strong>Edimax Smart Switches support</strong><br />
<img src="/images/supported_brands/edimax.png" style="border:none; box-shadow: none; float: right;" height="50" /> <a href="https://github.com/rkabadi">@rkabadi</a> has contributed support for integrating Edimax Smart Switches into Home Assistant.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">switch</span>:
<span class="key">platform</span>: <span class="string"><span class="content">edimax</span></span>
<span class="key">host</span>: <span class="string"><span class="content">192.168.1.32</span></span>
<span class="key">username</span>: <span class="string"><span class="content">YOUR_USERNAME</span></span>
<span class="key">password</span>: <span class="string"><span class="content">YOUR_PASSWORD</span></span>
<span class="key">name</span>: <span class="string"><span class="content">Edimax Smart Plug</span></span>
</pre></div>
</div>
</div>
<p><strong>Slack notification support</strong><br>
<img src='/images/supported_brands/slack.png' style='border:none; box-shadow: none; float: right;' height='50' />
<a href="https://github.com/jamespcole">@jamespcole</a> has contributed a Slack platform for the notification platform. This allows you to deliver messages to any channel.</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
</pre></td><td class='code'><pre><code class='yaml'><span class='line'><span class="c1"># Example configuration.yaml entry</span>
</span><span class='line'><span class="l-Scalar-Plain">notify</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">platform</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">slack</span>
</span><span class='line'> <span class="l-Scalar-Plain">api_key</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">ABCDEFGHJKLMNOPQRSTUVXYZ</span>
</span><span class='line'> <span class="l-Scalar-Plain">default_channel</span><span class="p-Indicator">:</span> <span class="s">&#39;#general&#39;</span>
</span></code></pre></td></tr></table></div></figure>
<p><strong>Edimax Smart Switches support</strong><br>
<img src='/images/supported_brands/edimax.png' style='border:none; box-shadow: none; float: right;' height='50' />
<a href="https://github.com/rkabadi">@rkabadi</a> has contributed support for integrating Edimax Smart Switches into Home Assistant.</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
</pre></td><td class='code'><pre><code class='yaml'><span class='line'><span class="c1"># Example configuration.yaml entry</span>
</span><span class='line'><span class="l-Scalar-Plain">switch</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">platform</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">edimax</span>
</span><span class='line'> <span class="l-Scalar-Plain">host</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">192.168.1.32</span>
</span><span class='line'> <span class="l-Scalar-Plain">username</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">YOUR_USERNAME</span>
</span><span class='line'> <span class="l-Scalar-Plain">password</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">YOUR_PASSWORD</span>
</span><span class='line'> <span class="l-Scalar-Plain">name</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">Edimax Smart Plug</span>
</span></code></pre></td></tr></table></div></figure>
<p><strong>RFXtrx sensor support</strong><br>
<p><strong>RFXtrx sensor support</strong><br />
<a href="https://github.com/danielhiversen">@danielhiversen</a> has contributed support for RFXtrx sensors. It supports sensors that communicate in the frequency range of 433.92 MHz.</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
</pre></td><td class='code'><pre><code class='yaml'><span class='line'><span class="c1"># Example configuration.yaml entry</span>
</span><span class='line'><span class="l-Scalar-Plain">sensor</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">platform</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">rfxtrx</span>
</span><span class='line'> <span class="l-Scalar-Plain">device</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">PATH_TO_DEVICE</span>
</span></code></pre></td></tr></table></div></figure>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">sensor</span>:
- <span class="string"><span class="content">platform: rfxtrx</span></span>
<span class="key">device</span>: <span class="string"><span class="content">PATH_TO_DEVICE</span></span>
</pre></div>
</div>
</div>
<p>The path to your device, e.g. <code>/dev/serial/by-id/usb-RFXCOM_RFXtrx433_A1Y0NJGR-if00-port0</code></p>
<p><strong>TEMPer temperature sensor support</strong><br>
<p><strong>TEMPer temperature sensor support</strong><br />
Support for Temper temperature sensors has been contributed by <a href="https://github.com/rkabadi">@rkabadi</a>.</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
</pre></td><td class='code'><pre><code class='yaml'><span class='line'><span class="c1"># Example configuration.yaml entry</span>
</span><span class='line'><span class="l-Scalar-Plain">sensor</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">platform</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">temper</span>
</span></code></pre></td></tr></table></div></figure>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">sensor</span>:
<span class="key">platform</span>: <span class="string"><span class="content">temper</span></span>
</pre></div>
</div>
</div>
</article>
<section id="disqus">
<h3 class="indent title">Comments</h3>
<div id="disqus_thread" aria-live="polite"><noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
</div>
<div id="disqus_thread" aria-live="polite"><noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript></div>
</section>
@ -325,7 +257,6 @@ Support for Temper temperature sensors has been contributed by <a href="https://
<section class="sharing aside-module grid__item one-whole lap-one-half">
<h1 class="title delta">Share this post</h1>
@ -407,7 +338,6 @@ Support for Temper temperature sensors has been contributed by <a href="https://
</div>
</aside>
</div>
@ -418,30 +348,23 @@ Support for Temper temperature sensors has been contributed by <a href="https://
<div class="grid">
<div class="grid__item">
<p class="copyright">
<span class="credit">Powered by <a href="http://octopress.org">Octopress</a>, <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>
<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>
<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>
<script>
var disqus_shortname = 'home-assistant';
@ -458,13 +381,5 @@ Support for Temper temperature sensors has been contributed by <a href="https://
}());
</script>
</body>
</html>

View file

@ -5,8 +5,6 @@
<!--[if gt IE 8]><!--> <html> <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
@ -32,7 +30,6 @@
<link rel='icon' type='image/png' href='/images/favicon-192x192.png' sizes='192x192' />
</head>
<body >
<header>
@ -54,10 +51,10 @@
<a href="/getting-started/">Getting started</a>
<ul>
<li><a href='/getting-started/'>Installing Home Assistant</a></li>
<li><a href='/getting-started/configuration.html'>Configuration basics</a></li>
<li><a href='/getting-started/devices.html'>Adding devices</a></li>
<li><a href='/getting-started/presence-detection.html'>Presence detection</a></li>
<li><a href='/getting-started/automation.html'>Automation</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>
@ -65,26 +62,24 @@
<li>
<a href="/developers/">Developers</a>
<ul>
<li><a href="/developers/architecture.html">Architecture</a></li>
<li><a href="/developers/frontend.html">Frontend development</a></li>
<li><a href="/developers/creating_components.html">
<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.html">
<li><a href="/developers/add_new_platform/">
Adding platform support
</a></li>
<li><a href="/developers/api.html">API</a></li>
<li><a href="/developers/credits.html">Credits</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>
@ -98,6 +93,7 @@
<article class="post">
<header>
<h1 class="title indent">Verisure devices and modern TP-Link routers now supported</h1>
@ -105,27 +101,9 @@
<div class="meta clearfix">
<time datetime="2015-08-17T20:00:00-07:00" pubdate data-updated="true"><i class="icon-calendar"></i> August 17, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<time datetime="2015-08-17T20:00:00-07:00" pubdate data-updated="true"><i class="icon-calendar"></i> August 17, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<span><i class='icon-time'></i> 1 minute reading time</span>
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -137,7 +115,6 @@
</ul>
</span>
<a class='comments'
href="#disqus_thread"
>Comments</a>
@ -147,51 +124,38 @@
</header>
<p>A minor bug fix release to fix some issues that have come up since the last release. Please upgrade as soon as possible by running <code>git pull</code> from the Home Assistant directory.</p>
<p>This release is a major milestone in our test coverage as we&rsquo;ve crossed into the 80s! It has to be noted that this covers mainly the core and automation components. Platforms that communicate with IoT devices have been excluded.</p>
<p>This release is a major milestone in our test coverage as weve crossed into the 80s! It has to be noted that this covers mainly the core and automation components. Platforms that communicate with IoT devices have been excluded.</p>
<p>As we didn&rsquo;t want to just push out bug fixes, this release includes a few additions:</p>
<p>As we didnt want to just push out bug fixes, this release includes a few additions:</p>
<ul>
<li>Support for modern TP-Link routers like the ArcherC9 line has been contributed by <a href="https://github.com/chrisvis">@chrisvis</a>.</li>
<li>Improved support for MQTT topic subscriptions has been contributed by <a href="https://github.com/qrtn">@qrtn</a></li>
<li>Support for modern TP-Link routers like the ArcherC9 line has been contributed by <a href="https://github.com/chrisvis">@chrisvis</a>.</li>
<li>Improved support for MQTT topic subscriptions has been contributed by <a href="https://github.com/qrtn">@qrtn</a></li>
</ul>
<p><strong>Verisure Support</strong><br />
<img src="/images/supported_brands/verisure.png" style="border:none; box-shadow: none; float: right;" height="50" /> Home Assistant support to integrate your <a href="https://www.verisure.com/">Verisure</a> alarms, hygrometers, sensors and thermometers has been contributed by <a href="https://github.com/persandstrom">@persandstrom</a>.</p>
<p><strong>Verisure Support</strong><br>
<img src='/images/supported_brands/verisure.png' style='border:none; box-shadow: none; float: right;' height='50' />
Home Assistant support to integrate your <a href="https://www.verisure.com/">Verisure</a> alarms, hygrometers, sensors and thermometers has been contributed by <a href="https://github.com/persandstrom">@persandstrom</a>.</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
</pre></td><td class='code'><pre><code class='yaml'><span class='line'><span class="c1"># Example configuration.yaml entry</span>
</span><span class='line'><span class="l-Scalar-Plain">verisure</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">username</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">user@example.com</span>
</span><span class='line'> <span class="l-Scalar-Plain">password</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">password</span>
</span><span class='line'> <span class="l-Scalar-Plain">alarm</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">1</span>
</span><span class='line'> <span class="l-Scalar-Plain">hygrometers</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">0</span>
</span><span class='line'> <span class="l-Scalar-Plain">smartplugs</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">1</span>
</span><span class='line'> <span class="l-Scalar-Plain">thermometers</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">0</span>
</span></code></pre></td></tr></table></div></figure>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">verisure</span>:
<span class="key">username</span>: <span class="string"><span class="content">user@example.com</span></span>
<span class="key">password</span>: <span class="string"><span class="content">password</span></span>
<span class="key">alarm</span>: <span class="string"><span class="content">1</span></span>
<span class="key">hygrometers</span>: <span class="string"><span class="content">0</span></span>
<span class="key">smartplugs</span>: <span class="string"><span class="content">1</span></span>
<span class="key">thermometers</span>: <span class="string"><span class="content">0</span></span>
</pre></div>
</div>
</div>
</article>
<section id="disqus">
<h3 class="indent title">Comments</h3>
<div id="disqus_thread" aria-live="polite"><noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
</div>
<div id="disqus_thread" aria-live="polite"><noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript></div>
</section>
@ -203,7 +167,6 @@ Home Assistant support to integrate your <a href="https://www.verisure.com/">Ver
<section class="sharing aside-module grid__item one-whole lap-one-half">
<h1 class="title delta">Share this post</h1>
@ -285,7 +248,6 @@ Home Assistant support to integrate your <a href="https://www.verisure.com/">Ver
</div>
</aside>
</div>
@ -296,30 +258,23 @@ Home Assistant support to integrate your <a href="https://www.verisure.com/">Ver
<div class="grid">
<div class="grid__item">
<p class="copyright">
<span class="credit">Powered by <a href="http://octopress.org">Octopress</a>, <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>
<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>
<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>
<script>
var disqus_shortname = 'home-assistant';
@ -336,13 +291,5 @@ Home Assistant support to integrate your <a href="https://www.verisure.com/">Ver
}());
</script>
</body>
</html>

View file

@ -5,8 +5,6 @@
<!--[if gt IE 8]><!--> <html> <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
@ -32,7 +30,6 @@
<link rel='icon' type='image/png' href='/images/favicon-192x192.png' sizes='192x192' />
</head>
<body >
<header>
@ -54,10 +51,10 @@
<a href="/getting-started/">Getting started</a>
<ul>
<li><a href='/getting-started/'>Installing Home Assistant</a></li>
<li><a href='/getting-started/configuration.html'>Configuration basics</a></li>
<li><a href='/getting-started/devices.html'>Adding devices</a></li>
<li><a href='/getting-started/presence-detection.html'>Presence detection</a></li>
<li><a href='/getting-started/automation.html'>Automation</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>
@ -65,26 +62,24 @@
<li>
<a href="/developers/">Developers</a>
<ul>
<li><a href="/developers/architecture.html">Architecture</a></li>
<li><a href="/developers/frontend.html">Frontend development</a></li>
<li><a href="/developers/creating_components.html">
<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.html">
<li><a href="/developers/add_new_platform/">
Adding platform support
</a></li>
<li><a href="/developers/api.html">API</a></li>
<li><a href="/developers/credits.html">Credits</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>
@ -98,6 +93,7 @@
<article class="post">
<header>
<h1 class="title indent">Laundry Automation: insight and notifications</h1>
@ -105,27 +101,9 @@
<div class="meta clearfix">
<time datetime="2015-08-26T08:12:00-07:00" pubdate data-updated="true"><i class="icon-calendar"></i> August 26, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<span><i class='icon-time'></i> five minutes reading time</span>
<time datetime="2015-08-26T08:12:00-07:00" pubdate data-updated="true"><i class="icon-calendar"></i> August 26, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<span><i class='icon-time'></i> four minutes reading time</span>
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -137,7 +115,6 @@
</ul>
</span>
<a class='comments'
href="#disqus_thread"
>Comments</a>
@ -147,235 +124,147 @@
</header>
<p><em>This is a guest post by Home Assistant user and contributor <a href="https://github.com/nkgilley">Nolan Gilley</a>.</em></p>
<p>In our house, laundry has been a struggle for quite some time. Our washer and dryer both lack a buzzer which leads to forgotten laundry, and stinky mess that needs to be rewashed. I decided to create a solution by monitoring the washer and dryer myself with some cheap electronics.</p>
<p>As an avid user of Home Assistant, I decided it would be the perfect application to manage the UI and notification system. Now all I needed was a way to monitor the washer and dryer. I tried using sound sensors but found them unreliable. I ended up opting for an accelerometer attached to the back of each appliance. I also added magnetic reed switches on the doors of the washer and dryer to detect if the doors are open or closed. I connected the accelerometers and reed switches to a <a href="https://lowpowerlab.com/moteino/">Moteino</a>, an arduino clone with an RF transceiver. The Moteino can perform the logic to figure out which state the appliances are in and wirelessly communicate that data with another Moteino that is connected via serial to my Raspberry Pi. The Raspberry Pi reads the serial data and repeats it over MQTT for Home Assistant to use. This is great because I don&rsquo;t have to run Home Assistant on the Raspberry Pi. I can run it on a faster machine and point the <a href="/components/mqtt.html">MQTT component</a> to my Raspberry Pi.</p>
<p>As an avid user of Home Assistant, I decided it would be the perfect application to manage the UI and notification system. Now all I needed was a way to monitor the washer and dryer. I tried using sound sensors but found them unreliable. I ended up opting for an accelerometer attached to the back of each appliance. I also added magnetic reed switches on the doors of the washer and dryer to detect if the doors are open or closed. I connected the accelerometers and reed switches to a <a href="https://lowpowerlab.com/moteino/">Moteino</a>, an arduino clone with an RF transceiver. The Moteino can perform the logic to figure out which state the appliances are in and wirelessly communicate that data with another Moteino that is connected via serial to my Raspberry Pi. The Raspberry Pi reads the serial data and repeats it over MQTT for Home Assistant to use. This is great because I dont have to run Home Assistant on the Raspberry Pi. I can run it on a faster machine and point the <a href="/components/mqtt/">MQTT component</a> to my Raspberry Pi.</p>
<p>After taking some sample data from the accelerometers while each appliance was in operation, I decided to plot the data to help determine the proper thresholds of when the devices were running or off. I had to do this in order to get precise ranges so the dryer sensor wouldn&rsquo;t get tripped by the washer or vice versa. In the plot below you can see the acceleration in the x direction for the accelerometer connected to the washing machine. It&rsquo;s easy to see when the washing machine is in operation here. I used the same technique for the dryer&rsquo;s accelerometer.</p>
<p>After taking some sample data from the accelerometers while each appliance was in operation, I decided to plot the data to help determine the proper thresholds of when the devices were running or off. I had to do this in order to get precise ranges so the dryer sensor wouldnt get tripped by the washer or vice versa. In the plot below you can see the acceleration in the x direction for the accelerometer connected to the washing machine. Its easy to see when the washing machine is in operation here. I used the same technique for the dryers accelerometer.</p>
<p class='img'>
<a href='/images/blog/2015-08-laundry-automation/data-graph.png'>
<img src='/images/blog/2015-08-laundry-automation/data-graph.png' />
<p class="img">
<a href="/images/blog/2015-08-laundry-automation/data-graph.png">
<img src="/images/blog/2015-08-laundry-automation/data-graph.png" />
</a>
Graph showing the accelerometer data
</p>
<a name="read-more"></a>
<p>Next it was just a matter of integrating everything with Home Assistant. I was able to use the <a href="/components/mqtt/">MQTT component</a> to read the washer and dryer states from the Moteino and display it in Home Assistant.</p>
<p>Next it was just a matter of integrating everything with Home Assistant. I was able to use the <a href="/components/mqtt.html">MQTT component</a> to read the washer and dryer states from the Moteino and display it in Home Assistant.</p>
<p class='img'>
<img src='/images/blog/2015-08-laundry-automation/screenshot-ha.png' />
<p class="img">
<img src="/images/blog/2015-08-laundry-automation/screenshot-ha.png" />
Status of the dryer and washer in Home Assistant
</p>
<p>Next I wrote <a href="/components/script/">scripts</a> that are run whenever the washer or dryer completes a load. This is triggered by the <a href="/components/automation/">automation component</a>. When the laundry is complete I have the lights in the house turn red and <a href="/components/notify.pushbullet/">notify me via PushBullet</a>. Once the laundry is taken care of another script runs that sets the lights back to normal. So far it has been very helpful and very reliable.</p>
<p>Next I wrote <a href="/components/script.html">scripts</a> that are run whenever the washer or dryer completes a load. This is triggered by the <a href="/components/automation.html">automation component</a>. When the laundry is complete I have the lights in the house turn red and <a href="/components/notify.pushbullet.html">notify me via PushBullet</a>. Once the laundry is taken care of another script runs that sets the lights back to normal. So far it has been very helpful and very reliable.</p>
<p class='img'>
<a href='/images/blog/2015-08-laundry-automation/moteino-and-sensors.jpg'>
<img src='/images/blog/2015-08-laundry-automation/moteino-and-sensors.jpg' />
<p class="img">
<a href="/images/blog/2015-08-laundry-automation/moteino-and-sensors.jpg">
<img src="/images/blog/2015-08-laundry-automation/moteino-and-sensors.jpg" />
</a>
Top left: reed switch. Bottom left: moteino. Right: Accelerometer.
</p>
<p>Materials used:</p>
<ul>
<li><a href="https://lowpowerlab.com/moteino/">Moteino</a></li>
<li><a href="http://www.amazon.com/gp/product/B008BOPN40">2 x Accelerometers</a></li>
<li><a href="http://www.amazon.com/gp/product/B004PARDRO">2 x Reed switch</a></li>
<li><a href="https://home-assistant.io/">Home Assistant</a></li>
<li><a href="https://lowpowerlab.com/moteino/">Moteino</a></li>
<li><a href="http://www.amazon.com/gp/product/B008BOPN40">2 x Accelerometers</a></li>
<li><a href="http://www.amazon.com/gp/product/B004PARDRO">2 x Reed switch</a></li>
<li><a href="https://home-assistant.io/">Home Assistant</a></li>
</ul>
<p><a href="https://codebender.cc/sketch:144743">Sketch for the Moteino is available here.</a></p>
<p>Home Assistant Configuration:</p>
<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
<span class='line-number'>12</span>
<span class='line-number'>13</span>
<span class='line-number'>14</span>
<span class='line-number'>15</span>
<span class='line-number'>16</span>
<span class='line-number'>17</span>
<span class='line-number'>18</span>
<span class='line-number'>19</span>
<span class='line-number'>20</span>
<span class='line-number'>21</span>
<span class='line-number'>22</span>
<span class='line-number'>23</span>
<span class='line-number'>24</span>
<span class='line-number'>25</span>
<span class='line-number'>26</span>
<span class='line-number'>27</span>
<span class='line-number'>28</span>
<span class='line-number'>29</span>
<span class='line-number'>30</span>
<span class='line-number'>31</span>
<span class='line-number'>32</span>
<span class='line-number'>33</span>
<span class='line-number'>34</span>
<span class='line-number'>35</span>
<span class='line-number'>36</span>
<span class='line-number'>37</span>
<span class='line-number'>38</span>
<span class='line-number'>39</span>
<span class='line-number'>40</span>
<span class='line-number'>41</span>
<span class='line-number'>42</span>
<span class='line-number'>43</span>
<span class='line-number'>44</span>
<span class='line-number'>45</span>
<span class='line-number'>46</span>
<span class='line-number'>47</span>
<span class='line-number'>48</span>
<span class='line-number'>49</span>
<span class='line-number'>50</span>
<span class='line-number'>51</span>
<span class='line-number'>52</span>
<span class='line-number'>53</span>
<span class='line-number'>54</span>
<span class='line-number'>55</span>
<span class='line-number'>56</span>
<span class='line-number'>57</span>
<span class='line-number'>58</span>
<span class='line-number'>59</span>
<span class='line-number'>60</span>
<span class='line-number'>61</span>
<span class='line-number'>62</span>
<span class='line-number'>63</span>
<span class='line-number'>64</span>
<span class='line-number'>65</span>
<span class='line-number'>66</span>
<span class='line-number'>67</span>
<span class='line-number'>68</span>
<span class='line-number'>69</span>
<span class='line-number'>70</span>
<span class='line-number'>71</span>
<span class='line-number'>72</span>
<span class='line-number'>73</span>
<span class='line-number'>74</span>
<span class='line-number'>75</span>
<span class='line-number'>76</span>
<span class='line-number'>77</span>
<span class='line-number'>78</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>mqtt:
</span><span class='line'> broker: 192.168.1.100
</span><span class='line'> port: 1883
</span><span class='line'> keepalive: 60
</span><span class='line'> qos: 0
</span><span class='line'>
</span><span class='line'>sensor:
</span><span class='line'> platform: mqtt
</span><span class='line'> name: "Dryer Status"
</span><span class='line'> state_topic: "sensor/dryer"
</span><span class='line'> unit_of_measurement: ""
</span><span class='line'>
</span><span class='line'>sensor 2:
</span><span class='line'> platform: mqtt
</span><span class='line'> name: "Washer Status"
</span><span class='line'> state_topic: "sensor/washer"
</span><span class='line'> unit_of_measurement: ""
</span><span class='line'>
</span><span class='line'>automation:
</span><span class='line'> alias: Dryer complete
</span><span class='line'>
</span><span class='line'> platform: state
</span><span class='line'> state_entity_id: sensor.dryer_status
</span><span class='line'> state_from: 'Running'
</span><span class='line'> state_to: 'Complete'
</span><span class='line'>
</span><span class='line'> execute_service: script.turn_on
</span><span class='line'> service_entity_id: script.dryer_complete
</span><span class='line'>
</span><span class='line'>automation 2:
</span><span class='line'> alias: Dryer emptied
</span><span class='line'>
</span><span class='line'> platform: state
</span><span class='line'> state_entity_id: sensor.dryer_status
</span><span class='line'> state_from: 'Complete'
</span><span class='line'> state_to: 'Empty'
</span><span class='line'>
</span><span class='line'> execute_service: script.turn_on
</span><span class='line'> service_entity_id: script.dryer_cleared
</span><span class='line'>
</span><span class='line'>script:
</span><span class='line'> dryer_complete:
</span><span class='line'> alias: Dryer Complete Script
</span><span class='line'> sequence:
</span><span class='line'> - alias: Pushbullet Notification
</span><span class='line'> execute_service: notify.notify
</span><span class='line'> service_data:
</span><span class='line'> message: "The dryer has finished its cycle, please empty it!"
</span><span class='line'> - alias: Living Room Lights Red
</span><span class='line'> execute_service: scene.turn_on
</span><span class='line'> service_data:
</span><span class='line'> entity_id: scene.red
</span><span class='line'> - delay:
</span><span class='line'> seconds: 1
</span><span class='line'> - alias: Living Room Lights Off
</span><span class='line'> execute_service: light.turn_off
</span><span class='line'> service_data:
</span><span class='line'> entity_id: group.living_room
</span><span class='line'> - delay:
</span><span class='line'> seconds: 1
</span><span class='line'> - alias: Living Room Lights Red
</span><span class='line'> execute_service: scene.turn_on
</span><span class='line'> service_data:
</span><span class='line'> entity_id: scene.red
</span><span class='line'>
</span><span class='line'> dryer_cleared:
</span><span class='line'> alias: Dryer Cleared Script
</span><span class='line'> sequence:
</span><span class='line'> - alias: Living Room Lights Off
</span><span class='line'> execute_service: light.turn_off
</span><span class='line'> service_data:
</span><span class='line'> entity_id: group.living_room
</span><span class='line'> - delay:
</span><span class='line'> seconds: 1
</span><span class='line'> - alias: Living Room Lights Normal
</span><span class='line'> execute_service: scene.turn_on
</span><span class='line'> service_data:
</span><span class='line'> entity_id: scene.normal</span></code></pre></td></tr></table></div></figure>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="key">mqtt</span>:
<span class="key">broker</span>: <span class="string"><span class="content">192.168.1.100</span></span>
<span class="key">port</span>: <span class="string"><span class="content">1883</span></span>
<span class="key">keepalive</span>: <span class="string"><span class="content">60</span></span>
<span class="key">qos</span>: <span class="string"><span class="content">0</span></span>
<span class="key">sensor</span>:
<span class="key">platform</span>: <span class="string"><span class="content">mqtt</span></span>
<span class="key">name</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">Dryer Status</span><span class="delimiter">&quot;</span></span>
<span class="key">state_topic</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">sensor/dryer</span><span class="delimiter">&quot;</span></span>
<span class="key">unit_of_measurement</span>: <span class="string"><span class="delimiter">&quot;</span><span class="delimiter">&quot;</span></span>
<span class="key">sensor 2</span>:
<span class="key">platform</span>: <span class="string"><span class="content">mqtt</span></span>
<span class="key">name</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">Washer Status</span><span class="delimiter">&quot;</span></span>
<span class="key">state_topic</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">sensor/washer</span><span class="delimiter">&quot;</span></span>
<span class="key">unit_of_measurement</span>: <span class="string"><span class="delimiter">&quot;</span><span class="delimiter">&quot;</span></span>
<span class="key">automation</span>:
<span class="key">alias</span>: <span class="string"><span class="content">Dryer complete</span></span>
<span class="key">platform</span>: <span class="string"><span class="content">state</span></span>
<span class="key">state_entity_id</span>: <span class="string"><span class="content">sensor.dryer_status</span></span>
<span class="key">state_from</span>: <span class="string"><span class="content">'Running'</span></span>
<span class="key">state_to</span>: <span class="string"><span class="content">'Complete'</span></span>
<span class="key">execute_service</span>: <span class="string"><span class="content">script.turn_on</span></span>
<span class="key">service_entity_id</span>: <span class="string"><span class="content">script.dryer_complete</span></span>
<span class="key">automation 2</span>:
<span class="key">alias</span>: <span class="string"><span class="content">Dryer emptied</span></span>
<span class="key">platform</span>: <span class="string"><span class="content">state</span></span>
<span class="key">state_entity_id</span>: <span class="string"><span class="content">sensor.dryer_status</span></span>
<span class="key">state_from</span>: <span class="string"><span class="content">'Complete'</span></span>
<span class="key">state_to</span>: <span class="string"><span class="content">'Empty'</span></span>
<span class="key">execute_service</span>: <span class="string"><span class="content">script.turn_on</span></span>
<span class="key">service_entity_id</span>: <span class="string"><span class="content">script.dryer_cleared</span></span>
<span class="key">script</span>:
<span class="key">dryer_complete</span>:
<span class="key">alias</span>: <span class="string"><span class="content">Dryer Complete Script</span></span>
<span class="key">sequence</span>:
- <span class="string"><span class="content">alias: Pushbullet Notification</span></span>
<span class="key">execute_service</span>: <span class="string"><span class="content">notify.notify</span></span>
<span class="key">service_data</span>:
<span class="key">message</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">The dryer has finished its cycle, please empty it!</span><span class="delimiter">&quot;</span></span>
- <span class="string"><span class="content">alias: Living Room Lights Red</span></span>
<span class="key">execute_service</span>: <span class="string"><span class="content">scene.turn_on</span></span>
<span class="key">service_data</span>:
<span class="key">entity_id</span>: <span class="string"><span class="content">scene.red</span></span>
- <span class="string"><span class="content">delay:</span><span class="content">
seconds: 1</span></span>
- <span class="string"><span class="content">alias: Living Room Lights Off</span></span>
<span class="key">execute_service</span>: <span class="string"><span class="content">light.turn_off</span></span>
<span class="key">service_data</span>:
<span class="key">entity_id</span>: <span class="string"><span class="content">group.living_room</span></span>
- <span class="string"><span class="content">delay:</span><span class="content">
seconds: 1</span></span>
- <span class="string"><span class="content">alias: Living Room Lights Red</span></span>
<span class="key">execute_service</span>: <span class="string"><span class="content">scene.turn_on</span></span>
<span class="key">service_data</span>:
<span class="key">entity_id</span>: <span class="string"><span class="content">scene.red</span></span>
<span class="key">dryer_cleared</span>:
<span class="key">alias</span>: <span class="string"><span class="content">Dryer Cleared Script</span></span>
<span class="key">sequence</span>:
- <span class="string"><span class="content">alias: Living Room Lights Off</span></span>
<span class="key">execute_service</span>: <span class="string"><span class="content">light.turn_off</span></span>
<span class="key">service_data</span>:
<span class="key">entity_id</span>: <span class="string"><span class="content">group.living_room</span></span>
- <span class="string"><span class="content">delay:</span><span class="content">
seconds: 1</span></span>
- <span class="string"><span class="content">alias: Living Room Lights Normal</span></span>
<span class="key">execute_service</span>: <span class="string"><span class="content">scene.turn_on</span></span>
<span class="key">service_data</span>:
<span class="key">entity_id</span>: <span class="string"><span class="content">scene.normal</span></span>
</pre></div>
</div>
</div>
<p>Resources used:</p>
<ul>
<li><a href="http://www.instructables.com/id/Uber-Home-Automation-w-Arduino-Pi/step13/Washer-Dryer-Smartifier-Water-Leak-Sensor/">Inspiration and Help with Arduino code</a></li>
<li><a href="https://github.com/LowPowerLab/RFM69/">Moteino Code</a></li>
<li><a href="http://www.instructables.com/id/Uber-Home-Automation-w-Arduino-Pi/step13/Washer-Dryer-Smartifier-Water-Leak-Sensor/">Inspiration and Help with Arduino code</a></li>
<li><a href="https://github.com/LowPowerLab/RFM69/">Moteino Code</a></li>
</ul>
</article>
<section id="disqus">
<h3 class="indent title">Comments</h3>
<div id="disqus_thread" aria-live="polite"><noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
</div>
<div id="disqus_thread" aria-live="polite"><noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript></div>
</section>
@ -387,7 +276,6 @@
<section class="sharing aside-module grid__item one-whole lap-one-half">
<h1 class="title delta">Share this post</h1>
@ -469,7 +357,6 @@
</div>
</aside>
</div>
@ -480,30 +367,23 @@
<div class="grid">
<div class="grid__item">
<p class="copyright">
<span class="credit">Powered by <a href="http://octopress.org">Octopress</a>, <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>
<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>
<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>
<script>
var disqus_shortname = 'home-assistant';
@ -520,13 +400,5 @@
}());
</script>
</body>
</html>

View file

@ -5,8 +5,6 @@
<!--[if gt IE 8]><!--> <html> <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
@ -32,7 +30,6 @@
<link rel='icon' type='image/png' href='/images/favicon-192x192.png' sizes='192x192' />
</head>
<body >
<header>
@ -54,10 +51,10 @@
<a href="/getting-started/">Getting started</a>
<ul>
<li><a href='/getting-started/'>Installing Home Assistant</a></li>
<li><a href='/getting-started/configuration.html'>Configuration basics</a></li>
<li><a href='/getting-started/devices.html'>Adding devices</a></li>
<li><a href='/getting-started/presence-detection.html'>Presence detection</a></li>
<li><a href='/getting-started/automation.html'>Automation</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>
@ -65,26 +62,24 @@
<li>
<a href="/developers/">Developers</a>
<ul>
<li><a href="/developers/architecture.html">Architecture</a></li>
<li><a href="/developers/frontend.html">Frontend development</a></li>
<li><a href="/developers/creating_components.html">
<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.html">
<li><a href="/developers/add_new_platform/">
Adding platform support
</a></li>
<li><a href="/developers/api.html">API</a></li>
<li><a href="/developers/credits.html">Credits</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>
@ -98,6 +93,7 @@
<article class="post">
<header>
<h1 class="title indent">0.7: Better UI and improved distribution</h1>
@ -105,27 +101,9 @@
<div class="meta clearfix">
<time datetime="2015-08-31T14:12:00-07:00" pubdate data-updated="true"><i class="icon-calendar"></i> August 31, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<span><i class='icon-time'></i> four minutes reading time</span>
<time datetime="2015-08-31T14:12:00-07:00" pubdate data-updated="true"><i class="icon-calendar"></i> August 31, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<span><i class='icon-time'></i> three minutes reading time</span>
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -137,7 +115,6 @@
</ul>
</span>
<a class='comments'
href="#disqus_thread"
>Comments</a>
@ -147,181 +124,125 @@
</header>
<p>As Home Assistant is gaining more and more users we started to feel the pain from not having a
proper release mechanism. We had no version numbering and required users to checkout the source
using Git to get started. On top of that, as the number of devices that we support keeps raising, so
did the number of dependencies that are used. That&rsquo;s why we decided to change the way we roll. From
now on:</p>
<p>As Home Assistant is gaining more and more users we started to feel the pain from not having a proper release mechanism. We had no version numbering and required users to checkout the source using Git to get started. On top of that, as the number of devices that we support keeps raising, so did the number of dependencies that are used. Thats why we decided to change the way we roll. From now on:</p>
<ul>
<li>Each release will have a version number, starting with version 0.7. This was chosen because it
shows that we have been around for some time but are not considering ourselves to be fully
stable.</li>
<li>Each release will be pushed to PyPi. This will be the only supported method of distribution.</li>
<li>Home Assistant is available after installation as a command-line utility <code>hass</code>.</li>
<li>The default configuration location has been moved from <code>config</code> in the current working directory
to <code>~/.homeassistant</code> (<code>%APPDATA%/.homeassistant</code> on Windows).</li>
<li>Requirements for components and platforms are no longer installed into the current Python
environment (being virtual or not) but will be installed in <code>&lt;config-dir&gt;/lib</code>.</li>
<li>Each release will have a version number, starting with version 0.7. This was chosen because it shows that we have been around for some time but are not considering ourselves to be fully stable.</li>
<li>Each release will be pushed to PyPi. This will be the only supported method of distribution.</li>
<li>Home Assistant is available after installation as a command-line utility <code>hass</code>.</li>
<li>The default configuration location has been moved from <code>config</code> in the current working directory to <code>~/.homeassistant</code> (<code>%APPDATA%/.homeassistant</code> on Windows).</li>
<li>Requirements for components and platforms are no longer installed into the current Python environment (being virtual or not) but will be installed in <code>&lt;config-dir&gt;/lib</code>.</li>
</ul>
<p>A huge shout out to <a href="https://github.com/rmkraus">Ryan Kraus</a> for making this all possible. Please make sure you read <a href="/blog/2015/08/31/version-7-revamped-ui-and-improved-distribution/#read-more">the full blog post</a> for details on how to migrate your existing setup.</p>
<p>A huge shout out to <a href="https://github.com/rmkraus">Ryan Kraus</a> for making this all possible. Please
make sure you read <a href="/blog/2015/08/31/version-7-revamped-ui-and-improved-distribution/#read-more">the full blog post</a> for details on how to migrate your existing setup.</p>
<p>And while Ryan was fixing distribution, I have been hard at work in giving Home Assistant a face lift. We already looked pretty good but lacked proper form of organization for users with many devices. The new UI moves away from a card per entity and has cards per group and domain instead. <a href="/demo/">The demo</a> has been updated so give it a spin.</p>
<p>And while Ryan was fixing distribution, I have been hard at work in giving Home Assistant a face
lift. We already looked pretty good but lacked proper form of organization for users with many
devices. The new UI moves away from a card per entity and has cards per group and domain instead.
<a href="/demo/">The demo</a> has been updated so give it a spin.</p>
<p class='img'>
<a href='/demo/'>
<img src='/images/screenshots/ui2015.png' />
<p class="img">
<a href="/demo/">
<img src="/images/screenshots/ui2015.png" />
</a>
Screenshots of the new UI
</p>
<a name="read-more"></a>
<h3><a class="title-link" name="migration-to-version-07" href="#migration-to-version-07"></a> Migration to version 0.7</h3>
<h3><a class='title-link' name='migration-to-version-07' href='#migration-to-version-07'></a> Migration to version 0.7</h3>
<p>For this example, let&rsquo;s say we have an old Home Assistant installation in
<code>/home/paulus/home-assistant</code>.</p>
<p>For this example, lets say we have an old Home Assistant installation in <code>/home/paulus/home-assistant</code>.</p>
<p>If you want to migrate your existing configuration to be used as the default configuration:</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class='bash'><span class='line'>cp -r /home/paulus/home-assistant ~/.homeassistant
</span></code></pre></td></tr></table></div></figure>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>$ cp -r /home/paulus/home-assistant ~/.homeassistant
</pre></div>
</div>
</div>
<p>It If you want to have the configuration in a different location, for example <code>/home/paulus/home-assistant-config</code>, you will have to point Home Assistant at this configuration folder when launching:</p>
<p>It If you want to have the configuration in a different location, for example
<code>/home/paulus/home-assistant-config</code>, you will have to point Home Assistant at this configuration
folder when launching:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>$ hass --config /home/paulus/home-assistant-config
</pre></div>
</div>
</div>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class='bash'><span class='line'>hass --config /home/paulus/home-assistant-config
</span></code></pre></td></tr></table></div></figure>
<h3><a class='title-link' name='new-platforms' href='#new-platforms'></a> New platforms</h3>
<h3><a class="title-link" name="new-platforms" href="#new-platforms"></a> New platforms</h3>
<p>And last, but not least: new platforms!</p>
<p><strong>MQTT Sensors and Switches</strong><br>
<img src='/images/supported_brands/mqtt.png' style='border:none; box-shadow: none; float: right;' height='50' />
<a href="https://github.com/sfam">@sfam</a> has blessed us with two more MQTT platforms to extend our
integration with MQTTT: <a href="/components/sensor.mqtt.html">sensor</a> and <a href="/components/switch.mqtt.html">switch</a>. Both platforms require the
MQTT component to be connected to a broker.</p>
<p><strong>MQTT Sensors and Switches</strong><br />
<img src="/images/supported_brands/mqtt.png" style="border:none; box-shadow: none; float: right;" height="50" /> <a href="https://github.com/sfam">@sfam</a> has blessed us with two more MQTT platforms to extend our integration with MQTTT: <a href="/components/sensor.mqtt/">sensor</a> and <a href="/components/switch.mqtt/">switch</a>. Both platforms require the MQTT component to be connected to a broker.</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
<span class='line-number'>12</span>
<span class='line-number'>13</span>
<span class='line-number'>14</span>
<span class='line-number'>15</span>
</pre></td><td class='code'><pre><code class='yaml'><span class='line'><span class="c1"># Example configuration.yml entr</span>
</span><span class='line'><span class="l-Scalar-Plain">sensor</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">platform</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">mqtt</span>
</span><span class='line'> <span class="l-Scalar-Plain">name</span><span class="p-Indicator">:</span> <span class="s">&quot;MQTT</span><span class="nv"> </span><span class="s">Sensor&quot;</span>
</span><span class='line'> <span class="l-Scalar-Plain">state_topic</span><span class="p-Indicator">:</span> <span class="s">&quot;home/bedroom/temperature&quot;</span>
</span><span class='line'> <span class="l-Scalar-Plain">unit_of_measurement</span><span class="p-Indicator">:</span> <span class="s">&quot;ºC&quot;</span>
</span><span class='line'>
</span><span class='line'><span class="l-Scalar-Plain">switch</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">platform</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">mqtt</span>
</span><span class='line'> <span class="l-Scalar-Plain">name</span><span class="p-Indicator">:</span> <span class="s">&quot;Bedroom</span><span class="nv"> </span><span class="s">Switch&quot;</span>
</span><span class='line'> <span class="l-Scalar-Plain">state_topic</span><span class="p-Indicator">:</span> <span class="s">&quot;home/bedroom/switch1&quot;</span>
</span><span class='line'> <span class="l-Scalar-Plain">command_topic</span><span class="p-Indicator">:</span> <span class="s">&quot;home/bedroom/switch1/set&quot;</span>
</span><span class='line'> <span class="l-Scalar-Plain">payload_on</span><span class="p-Indicator">:</span> <span class="s">&quot;ON&quot;</span>
</span><span class='line'> <span class="l-Scalar-Plain">payload_off</span><span class="p-Indicator">:</span> <span class="s">&quot;OFF&quot;</span>
</span><span class='line'> <span class="l-Scalar-Plain">optimistic</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">false</span>
</span></code></pre></td></tr></table></div></figure>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yml entr</span>
<span class="key">sensor</span>:
<span class="key">platform</span>: <span class="string"><span class="content">mqtt</span></span>
<span class="key">name</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">MQTT Sensor</span><span class="delimiter">&quot;</span></span>
<span class="key">state_topic</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">home/bedroom/temperature</span><span class="delimiter">&quot;</span></span>
<span class="key">unit_of_measurement</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">ºC</span><span class="delimiter">&quot;</span></span>
<span class="key">switch</span>:
<span class="key">platform</span>: <span class="string"><span class="content">mqtt</span></span>
<span class="key">name</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">Bedroom Switch</span><span class="delimiter">&quot;</span></span>
<span class="key">state_topic</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">home/bedroom/switch1</span><span class="delimiter">&quot;</span></span>
<span class="key">command_topic</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">home/bedroom/switch1/set</span><span class="delimiter">&quot;</span></span>
<span class="key">payload_on</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">ON</span><span class="delimiter">&quot;</span></span>
<span class="key">payload_off</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">OFF</span><span class="delimiter">&quot;</span></span>
<span class="key">optimistic</span>: <span class="string"><span class="content">false</span></span>
</pre></div>
</div>
</div>
<p><strong>Actiontec MI424WR Verizon FIOS Wireless router</strong><br>
<img src='/images/supported_brands/actiontec.png' style='border:none; box-shadow: none; float: right;' height='50' />
<a href="https://github.com/nkgilley">Nolan</a> has contributed support for Actiontec wireless routers.</p>
<p><strong>Actiontec MI424WR Verizon FIOS Wireless router</strong><br />
<img src="/images/supported_brands/actiontec.png" style="border:none; box-shadow: none; float: right;" height="50" /> <a href="https://github.com/nkgilley">Nolan</a> has contributed support for Actiontec wireless routers.</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
</pre></td><td class='code'><pre><code class='yaml'><span class='line'><span class="c1"># Example configuration.yaml entry</span>
</span><span class='line'><span class="l-Scalar-Plain">device_tracker</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">platform</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">actiontec</span>
</span><span class='line'> <span class="l-Scalar-Plain">host</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">YOUR_ROUTER_IP</span>
</span><span class='line'> <span class="l-Scalar-Plain">username</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">YOUR_ADMIN_USERNAME</span>
</span><span class='line'> <span class="l-Scalar-Plain">password</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">YOUR_ADMIN_PASSWORD</span>
</span></code></pre></td></tr></table></div></figure>
<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">actiontec</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><strong>DHT temperature and humidty sensors</strong><br />
<a href="https://github.com/makemeasandwich">@MakeMeASandwich</a> has contributed support for DHT temperature and humidity sensors. It allows you to get the current temperature and humidity from a DHT11, DHT22, or AM2302 device.</p>
<p><strong>DHT temperature and humidty sensors</strong><br>
<a href="https://github.com/makemeasandwich">@MakeMeASandwich</a> has contributed support for DHT temperature
and humidity sensors. It allows you to get the current temperature and humidity from a DHT11, DHT22,
or AM2302 device.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">sensor</span>:
<span class="key">platform</span>: <span class="string"><span class="content">dht</span></span>
<span class="key">sensor</span>: <span class="string"><span class="content">DHT22</span></span>
<span class="key">pin</span>: <span class="string"><span class="content">23</span></span>
<span class="key">monitored_conditions</span>:
- <span class="string"><span class="content">temperature</span></span>
- <span class="string"><span class="content">humidity</span></span>
</pre></div>
</div>
</div>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
</pre></td><td class='code'><pre><code class='yaml'><span class='line'><span class="c1"># Example configuration.yaml entry</span>
</span><span class='line'><span class="l-Scalar-Plain">sensor</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">platform</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">dht</span>
</span><span class='line'> <span class="l-Scalar-Plain">sensor</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">DHT22</span>
</span><span class='line'> <span class="l-Scalar-Plain">pin</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">23</span>
</span><span class='line'> <span class="l-Scalar-Plain">monitored_conditions</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">temperature</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">humidity</span>
</span></code></pre></td></tr></table></div></figure>
<p><strong>Aruba device tracker</strong><br>
<p><strong>Aruba device tracker</strong><br />
<a href="https://github.com/michaelarnauts">Michael Arnauts</a> has contributed support for Aruba wireless routers for presence detection.</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
</pre></td><td class='code'><pre><code class='yaml'><span class='line'><span class="c1"># Example configuration.yaml entry</span>
</span><span class='line'><span class="l-Scalar-Plain">device_tracker</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">platform</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">aruba</span>
</span><span class='line'> <span class="l-Scalar-Plain">host</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">YOUR_ACCESS_POINT_IP</span>
</span><span class='line'> <span class="l-Scalar-Plain">username</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">YOUR_ADMIN_USERNAME</span>
</span><span class='line'> <span class="l-Scalar-Plain">password</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">YOUR_ADMIN_PASSWORD</span>
</span></code></pre></td></tr></table></div></figure>
<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">aruba</span></span>
<span class="key">host</span>: <span class="string"><span class="content">YOUR_ACCESS_POINT_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>
</article>
<section id="disqus">
<h3 class="indent title">Comments</h3>
<div id="disqus_thread" aria-live="polite"><noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
</div>
<div id="disqus_thread" aria-live="polite"><noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript></div>
</section>
@ -333,7 +254,6 @@ or AM2302 device.</p>
<section class="sharing aside-module grid__item one-whole lap-one-half">
<h1 class="title delta">Share this post</h1>
@ -415,7 +335,6 @@ or AM2302 device.</p>
</div>
</aside>
</div>
@ -426,30 +345,23 @@ or AM2302 device.</p>
<div class="grid">
<div class="grid__item">
<p class="copyright">
<span class="credit">Powered by <a href="http://octopress.org">Octopress</a>, <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>
<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>
<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>
<script>
var disqus_shortname = 'home-assistant';
@ -466,13 +378,5 @@ or AM2302 device.</p>
}());
</script>
</body>
</html>

View file

@ -5,8 +5,6 @@
<!--[if gt IE 8]><!--> <html> <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
@ -32,7 +30,6 @@
<link rel='icon' type='image/png' href='/images/favicon-192x192.png' sizes='192x192' />
</head>
<body >
<header>
@ -54,10 +51,10 @@
<a href="/getting-started/">Getting started</a>
<ul>
<li><a href='/getting-started/'>Installing Home Assistant</a></li>
<li><a href='/getting-started/configuration.html'>Configuration basics</a></li>
<li><a href='/getting-started/devices.html'>Adding devices</a></li>
<li><a href='/getting-started/presence-detection.html'>Presence detection</a></li>
<li><a href='/getting-started/automation.html'>Automation</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>
@ -65,26 +62,24 @@
<li>
<a href="/developers/">Developers</a>
<ul>
<li><a href="/developers/architecture.html">Architecture</a></li>
<li><a href="/developers/frontend.html">Frontend development</a></li>
<li><a href="/developers/creating_components.html">
<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.html">
<li><a href="/developers/add_new_platform/">
Adding platform support
</a></li>
<li><a href="/developers/api.html">API</a></li>
<li><a href="/developers/credits.html">Credits</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>
@ -98,6 +93,7 @@
<article class="post">
<header>
<h1 class="title indent">Using MQTT with Home Assistant</h1>
@ -105,27 +101,9 @@
<div class="meta clearfix">
<time datetime="2015-09-11T02:19:38-07:00" pubdate data-updated="true"><i class="icon-calendar"></i> September 11, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Fabian Affolter</span>
<span><i class='icon-time'></i> 10 minutes reading time</span>
<time datetime="2015-09-11T02:19:38-07:00" pubdate data-updated="true"><i class="icon-calendar"></i> September 11, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Fabian Affolter</span>
<span><i class='icon-time'></i> nine minutes reading time</span>
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -139,7 +117,6 @@
</ul>
</span>
<a class='comments'
href="#disqus_thread"
>Comments</a>
@ -150,9 +127,7 @@
<p><img src='/images/supported_brands/mqtt.png' style='border:none; box-shadow: none; float: right;' height='80' />
The <a href="https://en.wikipedia.org/wiki/MQTT">MQTT</a> support was added to Home Assistant recently. The <a href="https://home-assistant.io/components/mqtt.html">MQTT component</a> will enable you to do all sort of things. Most likely you will use it to communicate with your devices. But Home Assistant doesn&rsquo;t care where the data is coming from or is limited to real hardware as long as there is MQTT support. This means that it doesn&rsquo;t matter if the data is coming from a human, a web service, or a device.</p>
<p><img src="/images/supported_brands/mqtt.png" style="border:none; box-shadow: none; float: right;" height="80" /> <a href="https://en.wikipedia.org/wiki/MQTT">MQTT</a> support was added to Home Assistant recently. The <a href="https://home-assistant.io/components/mqtt/">MQTT component</a> will enable you to do all sort of things. Most likely you will use it to communicate with your devices. But Home Assistant doesnt care where the data is coming from or is limited to real hardware as long as there is MQTT support. This means that it doesnt matter if the data is coming from a human, a web service, or a device.</p>
<p>A great example is shown in a <a href="https://home-assistant.io/blog/2015/08/26/laundry-automation-with-moteino-mqtt-and-home-assistant/">Laundry Automation</a> post in this blog.</p>
@ -160,309 +135,317 @@ The <a href="https://en.wikipedia.org/wiki/MQTT">MQTT</a> support was added to H
<a name="read-more"></a>
<h3><a class="title-link" name="manual-usage" href="#manual-usage"></a> Manual usage</h3>
<h3><a class='title-link' name='manual-usage' href='#manual-usage'></a> Manual usage</h3>
<p>The simplest but not the coolest way as a human to interact with a Home Assistant sensor is launching a command manually. Lets create a “Mood” sensor. For simplicity Home Assistant and the MQTT broker are both running on the same host. The needed configuration snipplets to add to the <code>configuration.yaml</code> file consists of two parts: one for the broker and one for the sensor.</p>
<p>The simplest but not the coolest way as a human to interact with a Home Assistant sensor is launching a command manually. Let&rsquo;s create a &ldquo;Mood&rdquo; sensor. For simplicity Home Assistant and the MQTT broker are both running on the same host. The needed configuration snipplets to add to the <code>configuration.yaml</code> file consists of two parts: one for the broker and one for the sensor.</p>
<div class="highlighter-coderay"><table class="CodeRay"><tr>
<td class="line-numbers"><pre><a href="#n1" name="n1">1</a>
<a href="#n2" name="n2">2</a>
<a href="#n3" name="n3">3</a>
<a href="#n4" name="n4">4</a>
<a href="#n5" name="n5">5</a>
<a href="#n6" name="n6">6</a>
<a href="#n7" name="n7">7</a>
</pre></td>
<td class="code"><pre><span class="key">mqtt</span>:
<span class="key">broker</span>: <span class="string"><span class="content">127.0.0.1</span></span>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
</pre></td><td class='code'><pre><code class='yaml'><span class='line'><span class="l-Scalar-Plain">mqtt</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">broker</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">127.0.0.1</span>
</span><span class='line'>
</span><span class='line'><span class="l-Scalar-Plain">sensor</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">platform</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">mqtt</span>
</span><span class='line'> <span class="l-Scalar-Plain">name</span><span class="p-Indicator">:</span> <span class="s">&quot;Fabian&#39;s</span><span class="nv"> </span><span class="s">Mood&quot;</span>
</span><span class='line'> <span class="l-Scalar-Plain">state_topic</span><span class="p-Indicator">:</span> <span class="s">&quot;home-assistant/fabian/mood&quot;</span>
</span></code></pre></td></tr></table></div></figure>
<span class="key">sensor</span>:
- <span class="string"><span class="content">platform: mqtt</span></span>
<span class="key">name</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">Fabian's Mood</span><span class="delimiter">&quot;</span></span>
<span class="key">state_topic</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">home-assistant/fabian/mood</span><span class="delimiter">&quot;</span></span>
</pre></td>
</tr></table>
</div>
<p>After a restart of Home Assistant the &ldquo;Mood&rdquo; sensor will show up in the frontend. For more details about the configuration of MQTT itself and the sensor, please refer to the <a href="https://home-assistant.io/components/mqtt.html">MQTT component</a> or the <a href="https://home-assistant.io/components/sensor.mqtt.html">MQTT sensor</a> documentation.</p>
<p>After a restart of Home Assistant the “Mood” sensor will show up in the frontend. For more details about the configuration of MQTT itself and the sensor, please refer to the <a href="https://home-assistant.io/components/mqtt/">MQTT component</a> or the <a href="https://home-assistant.io/components/sensor.mqtt/">MQTT sensor</a> documentation.</p>
<p>Now we can set the mood. The commandline tool (<code>mosquitto_pub</code>) which is shipped with <code>mosquitto</code> is used to send an MQTT message.</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class='bash'><span class='line'>mosquitto_pub -h 127.0.0.1 -t <span class="s2">&quot;home-assistant/fabian/mood&quot;</span> -m <span class="s2">&quot;bad&quot;</span>
</span></code></pre></td></tr></table></div></figure>
<div class="highlighter-coderay"><table class="CodeRay"><tr>
<td class="line-numbers"><pre><a href="#n1" name="n1">1</a>
</pre></td>
<td class="code"><pre>$ mosquitto_pub -h 127.0.0.1 -t &quot;home-assistant/fabian/mood&quot; -m &quot;bad&quot;
</pre></td>
</tr></table>
</div>
<p class='img'>
<img src='/images/blog/2015-09-mqtt/mood.png' />
<p class="img">
<img src="/images/blog/2015-09-mqtt/mood.png" />
The Mood sensor
</p>
<p>This is a really bad example. Dont do this in the real world because you wont be able to create diagrams of historical data. Better use a numerical value.</p>
<p>This is a really bad example. Don&rsquo;t do this in the real world because you won&rsquo;t be able to create diagrams of historical data. Better use a numerical value.</p>
<h3><a class='title-link' name='python-mqtt-bindings' href='#python-mqtt-bindings'></a> Python MQTT bindings</h3>
<h3><a class="title-link" name="python-mqtt-bindings" href="#python-mqtt-bindings"></a> Python MQTT bindings</h3>
<p>The last section was pretty boring, I know. Nobody wants to send MQTT messages by hand if there is a computer on the desk. If you are playing the lottery this section is for you. If not, read it anyway because the lottery is just an example :-).</p>
<p>This example is using the <a href="https://eclipse.org/paho/clients/python/">Paho MQTT Python binding</a> because those binding should be available on the host where Home Assistant is running. If you want to use this example on another machine, please make sure that the bindings are installed (<code>pip3 install paho-mqtt</code>).</p>
<p>The first step is to add an additional MQTT sensor to the <code>configuration.yaml</code> file. The sensor will be called &ldquo;Lottery&rdquo; and the unit of measurement will be &ldquo;No.&rdquo;.</p>
<p>The first step is to add an additional MQTT sensor to the <code>configuration.yaml</code> file. The sensor will be called “Lottery” and the unit of measurement will be “No.”.</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
</pre></td><td class='code'><pre><code class='yaml'><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">platform</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">mqtt</span>
</span><span class='line'> <span class="l-Scalar-Plain">name</span><span class="p-Indicator">:</span> <span class="s">&quot;Lottery&quot;</span>
</span><span class='line'> <span class="l-Scalar-Plain">state_topic</span><span class="p-Indicator">:</span> <span class="s">&quot;home-assistant/lottery/number&quot;</span>
</span><span class='line'> <span class="l-Scalar-Plain">unit_of_measurement</span><span class="p-Indicator">:</span> <span class="s">&quot;No.&quot;</span>
</span></code></pre></td></tr></table></div></figure>
<div class="highlighter-coderay"><table class="CodeRay"><tr>
<td class="line-numbers"><pre><a href="#n1" name="n1">1</a>
<a href="#n2" name="n2">2</a>
<a href="#n3" name="n3">3</a>
<a href="#n4" name="n4">4</a>
</pre></td>
<td class="code"><pre> - <span class="string"><span class="content">platform: mqtt</span></span>
<span class="key">name</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">Lottery</span><span class="delimiter">&quot;</span></span>
<span class="key">state_topic</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">home-assistant/lottery/number</span><span class="delimiter">&quot;</span></span>
<span class="key">unit_of_measurement</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">No.</span><span class="delimiter">&quot;</span></span>
</pre></td>
</tr></table>
</div>
<p>Don&rsquo;t forget to restart Home Assistant to make the configuration active.</p>
<p>Dont forget to restart Home Assistant to make the configuration active.</p>
<p>To play, we need numbers from 1 to 49 which can be marked on the ticket. Those numbers should be random and displayed in the Home Assistant frontend. The Python script below is another simple example on how to send MQTT messages from the commandline; this time in a loop. For further information and examples please check the <a href="https://eclipse.org/paho/clients/python/docs/">Paho MQTT</a> documentation.</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
<span class='line-number'>12</span>
<span class='line-number'>13</span>
<span class='line-number'>14</span>
<span class='line-number'>15</span>
<span class='line-number'>16</span>
<span class='line-number'>17</span>
<span class='line-number'>18</span>
<span class='line-number'>19</span>
<span class='line-number'>20</span>
<span class='line-number'>21</span>
<span class='line-number'>22</span>
</pre></td><td class='code'><pre><code class='python'><span class='line'><span class="c">#!/usr/bin/python3</span>
</span><span class='line'><span class="c">#</span>
</span><span class='line'><span class="kn">import</span> <span class="nn">time</span>
</span><span class='line'><span class="kn">import</span> <span class="nn">random</span>
</span><span class='line'><span class="kn">import</span> <span class="nn">paho.mqtt.client</span> <span class="kn">as</span> <span class="nn">mqtt</span>
</span><span class='line'><span class="kn">import</span> <span class="nn">paho.mqtt.publish</span> <span class="kn">as</span> <span class="nn">publish</span>
</span><span class='line'>
</span><span class='line'><span class="n">broker</span> <span class="o">=</span> <span class="s">&#39;127.0.0.1&#39;</span>
</span><span class='line'><span class="n">state_topic</span> <span class="o">=</span> <span class="s">&#39;home-assistant/lottery/number&#39;</span>
</span><span class='line'><span class="n">delay</span> <span class="o">=</span> <span class="mi">5</span>
</span><span class='line'>
</span><span class='line'><span class="c"># Send a single message to set the mood</span>
</span><span class='line'><span class="n">publish</span><span class="o">.</span><span class="n">single</span><span class="p">(</span><span class="s">&#39;home-assistant/fabian/mood&#39;</span><span class="p">,</span> <span class="s">&#39;good&#39;</span><span class="p">,</span> <span class="n">hostname</span><span class="o">=</span><span class="n">broker</span><span class="p">)</span>
</span><span class='line'>
</span><span class='line'><span class="c"># Send messages in a loop</span>
</span><span class='line'><span class="n">client</span> <span class="o">=</span> <span class="n">mqtt</span><span class="o">.</span><span class="n">Client</span><span class="p">(</span><span class="s">&quot;ha-client&quot;</span><span class="p">)</span>
</span><span class='line'><span class="n">client</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="n">broker</span><span class="p">)</span>
</span><span class='line'><span class="n">client</span><span class="o">.</span><span class="n">loop_start</span><span class="p">()</span>
</span><span class='line'>
</span><span class='line'><span class="k">while</span> <span class="bp">True</span><span class="p">:</span>
</span><span class='line'> <span class="n">client</span><span class="o">.</span><span class="n">publish</span><span class="p">(</span><span class="n">state_topic</span><span class="p">,</span> <span class="n">random</span><span class="o">.</span><span class="n">randrange</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">50</span><span class="p">,</span> <span class="mi">1</span><span class="p">))</span>
</span><span class='line'> <span class="n">time</span><span class="o">.</span><span class="n">sleep</span><span class="p">(</span><span class="n">delay</span><span class="p">)</span>
</span></code></pre></td></tr></table></div></figure>
<div class="highlighter-coderay"><table class="CodeRay"><tr>
<td class="line-numbers"><pre><a href="#n1" name="n1">1</a>
<a href="#n2" name="n2">2</a>
<a href="#n3" name="n3">3</a>
<a href="#n4" name="n4">4</a>
<a href="#n5" name="n5">5</a>
<a href="#n6" name="n6">6</a>
<a href="#n7" name="n7">7</a>
<a href="#n8" name="n8">8</a>
<a href="#n9" name="n9">9</a>
<strong><a href="#n10" name="n10">10</a></strong>
<a href="#n11" name="n11">11</a>
<a href="#n12" name="n12">12</a>
<a href="#n13" name="n13">13</a>
<a href="#n14" name="n14">14</a>
<a href="#n15" name="n15">15</a>
<a href="#n16" name="n16">16</a>
<a href="#n17" name="n17">17</a>
<a href="#n18" name="n18">18</a>
<a href="#n19" name="n19">19</a>
<strong><a href="#n20" name="n20">20</a></strong>
<a href="#n21" name="n21">21</a>
<a href="#n22" name="n22">22</a>
</pre></td>
<td class="code"><pre><span class="comment">#!/usr/bin/python3</span>
<span class="comment">#</span>
<span class="keyword">import</span> <span class="include">time</span>
<span class="keyword">import</span> <span class="include">random</span>
<span class="keyword">import</span> <span class="include">paho.mqtt.client</span> <span class="keyword">as</span> mqtt
<span class="keyword">import</span> <span class="include">paho.mqtt.publish</span> <span class="keyword">as</span> publish
broker = <span class="string"><span class="delimiter">'</span><span class="content">127.0.0.1</span><span class="delimiter">'</span></span>
state_topic = <span class="string"><span class="delimiter">'</span><span class="content">home-assistant/lottery/number</span><span class="delimiter">'</span></span>
delay = <span class="integer">5</span>
<span class="comment"># Send a single message to set the mood</span>
publish.single(<span class="string"><span class="delimiter">'</span><span class="content">home-assistant/fabian/mood</span><span class="delimiter">'</span></span>, <span class="string"><span class="delimiter">'</span><span class="content">good</span><span class="delimiter">'</span></span>, hostname=broker)
<span class="comment"># Send messages in a loop</span>
client = mqtt.Client(<span class="string"><span class="delimiter">&quot;</span><span class="content">ha-client</span><span class="delimiter">&quot;</span></span>)
client.connect(broker)
client.loop_start()
<span class="keyword">while</span> <span class="predefined-constant">True</span>:
client.publish(state_topic, random.randrange(<span class="integer">0</span>, <span class="integer">50</span>, <span class="integer">1</span>))
time.sleep(delay)
</pre></td>
</tr></table>
</div>
<p>Every 5 seconds a message with a new number is sent to the broker and picked up by Home Assistant. By the way, my mood is much better now.</p>
<p class='img'>
<img src='/images/blog/2015-09-mqtt/lottery.png' />
<p class="img">
<img src="/images/blog/2015-09-mqtt/lottery.png" />
The Lottery sensor
</p>
<p>With only a few lines of Python and an MQTT broker you can create your own “smartdevice” or send information to Home Assistant which you havent think of. Of course this is not limited to Python. If there is an MQTT library available, the device can be used with Home Assistant now.</p>
<p>With only a few lines of Python and an MQTT broker you can create your own &ldquo;smartdevice&rdquo; or send information to Home Assistant which you haven&rsquo;t think of. Of course this is not limited to Python. If there is an MQTT library available, the device can be used with Home Assistant now.</p>
<h3><a class='title-link' name='arduino' href='#arduino'></a> Arduino</h3>
<h3><a class="title-link" name="arduino" href="#arduino"></a> Arduino</h3>
<p>To get started with real hardware that is capable to send MQTT messages, the Arduino platform is an inexpensive way to do it. In this section an Arduino UNO with an Ethernet shield and a photo resistor is used. The photo resistor is connected to analog pin 0 (A0) and has an output from 0 to 1024.</p>
<p class='img'>
<img src='/images/blog/2015-09-mqtt/arduino-shield.png' />
<p class="img">
<img src="/images/blog/2015-09-mqtt/arduino-shield.png" />
The Arduino UNO with Ethernet shield and photo resistor
</p>
<p>The <a href="http://knolleary.github.io/pubsubclient/">MQTT client</a> for the Arduino needs to be available in your Arduino IDE. Below you will find a sketch which could act as a starting point. Please modify the IP addresses, the MAC address, and the pin as needed and upload the sketch to your Arduino.</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
<span class='line-number'>12</span>
<span class='line-number'>13</span>
<span class='line-number'>14</span>
<span class='line-number'>15</span>
<span class='line-number'>16</span>
<span class='line-number'>17</span>
<span class='line-number'>18</span>
<span class='line-number'>19</span>
<span class='line-number'>20</span>
<span class='line-number'>21</span>
<span class='line-number'>22</span>
<span class='line-number'>23</span>
<span class='line-number'>24</span>
<span class='line-number'>25</span>
<span class='line-number'>26</span>
<span class='line-number'>27</span>
<span class='line-number'>28</span>
<span class='line-number'>29</span>
<span class='line-number'>30</span>
<span class='line-number'>31</span>
<span class='line-number'>32</span>
<span class='line-number'>33</span>
<span class='line-number'>34</span>
<span class='line-number'>35</span>
<span class='line-number'>36</span>
<span class='line-number'>37</span>
<span class='line-number'>38</span>
<span class='line-number'>39</span>
<span class='line-number'>40</span>
<span class='line-number'>41</span>
<span class='line-number'>42</span>
<span class='line-number'>43</span>
<span class='line-number'>44</span>
<span class='line-number'>45</span>
<span class='line-number'>46</span>
<span class='line-number'>47</span>
<span class='line-number'>48</span>
<span class='line-number'>49</span>
<span class='line-number'>50</span>
<span class='line-number'>51</span>
<span class='line-number'>52</span>
<span class='line-number'>53</span>
<span class='line-number'>54</span>
<span class='line-number'>55</span>
<span class='line-number'>56</span>
<span class='line-number'>57</span>
<span class='line-number'>58</span>
<span class='line-number'>59</span>
<span class='line-number'>60</span>
<span class='line-number'>61</span>
<span class='line-number'>62</span>
<span class='line-number'>63</span>
<span class='line-number'>64</span>
<span class='line-number'>65</span>
<span class='line-number'>66</span>
<span class='line-number'>67</span>
<span class='line-number'>68</span>
</pre></td><td class='code'><pre><code class='c'><span class='line'><span class="cm">/*</span>
</span><span class='line'><span class="cm"> This sketch is based on the basic MQTT example by</span>
</span><span class='line'><span class="cm"> http://knolleary.github.io/pubsubclient/</span>
</span><span class='line'><span class="cm">*/</span>
</span><span class='line'>
</span><span class='line'><span class="cp">#include &lt;SPI.h&gt;</span>
</span><span class='line'><span class="cp">#include &lt;Ethernet.h&gt;</span>
</span><span class='line'><span class="cp">#include &lt;PubSubClient.h&gt;</span>
</span><span class='line'>
</span><span class='line'><span class="cp">#define DEBUG 1 </span><span class="c1">// Debug output to serial console</span>
</span><span class='line'>
</span><span class='line'><span class="c1">// Device settings</span>
</span><span class='line'><span class="n">IPAddress</span> <span class="nf">deviceIp</span><span class="p">(</span><span class="mi">192</span><span class="p">,</span> <span class="mi">168</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">43</span><span class="p">);</span>
</span><span class='line'><span class="n">byte</span> <span class="n">deviceMac</span><span class="p">[]</span> <span class="o">=</span> <span class="p">{</span> <span class="mh">0xAB</span><span class="p">,</span> <span class="mh">0xCD</span><span class="p">,</span> <span class="mh">0xFE</span><span class="p">,</span> <span class="mh">0xFE</span><span class="p">,</span> <span class="mh">0xFE</span><span class="p">,</span> <span class="mh">0xFE</span> <span class="p">};</span>
</span><span class='line'><span class="kt">char</span><span class="o">*</span> <span class="n">deviceId</span> <span class="o">=</span> <span class="s">&quot;sensor01&quot;</span><span class="p">;</span> <span class="c1">// Name of the sensor</span>
</span><span class='line'><span class="kt">char</span><span class="o">*</span> <span class="n">stateTopic</span> <span class="o">=</span> <span class="s">&quot;home-assistant/sensor01/brightness&quot;</span><span class="p">;</span> <span class="c1">// MQTT topic where values are published</span>
</span><span class='line'><span class="kt">int</span> <span class="n">sensorPin</span> <span class="o">=</span> <span class="n">A0</span><span class="p">;</span> <span class="c1">// Pin to which the sensor is connected to</span>
</span><span class='line'><span class="kt">char</span> <span class="n">buf</span><span class="p">[</span><span class="mi">4</span><span class="p">];</span> <span class="c1">// Buffer to store the sensor value</span>
</span><span class='line'><span class="kt">int</span> <span class="n">updateInterval</span> <span class="o">=</span> <span class="mi">1000</span><span class="p">;</span> <span class="c1">// Interval in miliseconds</span>
</span><span class='line'>
</span><span class='line'><span class="c1">// MQTT server settings</span>
</span><span class='line'><span class="n">IPAddress</span> <span class="nf">mqttServer</span><span class="p">(</span><span class="mi">192</span><span class="p">,</span> <span class="mi">168</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">12</span><span class="p">);</span>
</span><span class='line'><span class="kt">int</span> <span class="n">mqttPort</span> <span class="o">=</span> <span class="mi">1883</span><span class="p">;</span>
</span><span class='line'>
</span><span class='line'><span class="n">EthernetClient</span> <span class="n">ethClient</span><span class="p">;</span>
</span><span class='line'><span class="n">PubSubClient</span> <span class="nf">client</span><span class="p">(</span><span class="n">ethClient</span><span class="p">);</span>
</span><span class='line'>
</span><span class='line'><span class="kt">void</span> <span class="nf">reconnect</span><span class="p">()</span> <span class="p">{</span>
</span><span class='line'> <span class="k">while</span> <span class="p">(</span><span class="o">!</span><span class="n">client</span><span class="p">.</span><span class="n">connected</span><span class="p">())</span> <span class="p">{</span>
</span><span class='line'><span class="cp">#if DEBUG</span>
</span><span class='line'> <span class="n">Serial</span><span class="p">.</span><span class="n">print</span><span class="p">(</span><span class="s">&quot;Attempting MQTT connection...&quot;</span><span class="p">);</span>
</span><span class='line'><span class="cp">#endif</span>
</span><span class='line'> <span class="k">if</span> <span class="p">(</span><span class="n">client</span><span class="p">.</span><span class="n">connect</span><span class="p">(</span><span class="n">deviceId</span><span class="p">))</span> <span class="p">{</span>
</span><span class='line'><span class="cp">#if DEBUG</span>
</span><span class='line'> <span class="n">Serial</span><span class="p">.</span><span class="n">println</span><span class="p">(</span><span class="s">&quot;connected&quot;</span><span class="p">);</span>
</span><span class='line'><span class="cp">#endif</span>
</span><span class='line'> <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
</span><span class='line'><span class="cp">#if DEBUG</span>
</span><span class='line'> <span class="n">Serial</span><span class="p">.</span><span class="n">print</span><span class="p">(</span><span class="s">&quot;failed, rc=&quot;</span><span class="p">);</span>
</span><span class='line'> <span class="n">Serial</span><span class="p">.</span><span class="n">print</span><span class="p">(</span><span class="n">client</span><span class="p">.</span><span class="n">state</span><span class="p">());</span>
</span><span class='line'> <span class="n">Serial</span><span class="p">.</span><span class="n">println</span><span class="p">(</span><span class="s">&quot; try again in 5 seconds&quot;</span><span class="p">);</span>
</span><span class='line'><span class="cp">#endif</span>
</span><span class='line'> <span class="n">delay</span><span class="p">(</span><span class="mi">5000</span><span class="p">);</span>
</span><span class='line'> <span class="p">}</span>
</span><span class='line'> <span class="p">}</span>
</span><span class='line'><span class="p">}</span>
</span><span class='line'>
</span><span class='line'><span class="kt">void</span> <span class="nf">setup</span><span class="p">()</span> <span class="p">{</span>
</span><span class='line'> <span class="n">Serial</span><span class="p">.</span><span class="n">begin</span><span class="p">(</span><span class="mi">57600</span><span class="p">);</span>
</span><span class='line'> <span class="n">client</span><span class="p">.</span><span class="n">setServer</span><span class="p">(</span><span class="n">mqttServer</span><span class="p">,</span> <span class="n">mqttPort</span><span class="p">);</span>
</span><span class='line'> <span class="n">Ethernet</span><span class="p">.</span><span class="n">begin</span><span class="p">(</span><span class="n">deviceMac</span><span class="p">,</span> <span class="n">deviceIp</span><span class="p">);</span>
</span><span class='line'> <span class="n">delay</span><span class="p">(</span><span class="mi">1500</span><span class="p">);</span>
</span><span class='line'><span class="p">}</span>
</span><span class='line'>
</span><span class='line'><span class="kt">void</span> <span class="nf">loop</span><span class="p">()</span> <span class="p">{</span>
</span><span class='line'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="n">client</span><span class="p">.</span><span class="n">connected</span><span class="p">())</span> <span class="p">{</span>
</span><span class='line'> <span class="n">reconnect</span><span class="p">();</span>
</span><span class='line'> <span class="p">}</span>
</span><span class='line'> <span class="n">client</span><span class="p">.</span><span class="n">loop</span><span class="p">();</span>
</span><span class='line'>
</span><span class='line'> <span class="kt">int</span> <span class="n">sensorValue</span> <span class="o">=</span> <span class="n">analogRead</span><span class="p">(</span><span class="n">sensorPin</span><span class="p">);</span>
</span><span class='line'><span class="cp">#if DEBUG</span>
</span><span class='line'> <span class="n">Serial</span><span class="p">.</span><span class="n">print</span><span class="p">(</span><span class="s">&quot;Sensor value: &quot;</span><span class="p">);</span>
</span><span class='line'> <span class="n">Serial</span><span class="p">.</span><span class="n">println</span><span class="p">(</span><span class="n">sensorValue</span><span class="p">);</span>
</span><span class='line'><span class="cp">#endif</span>
</span><span class='line'> <span class="n">client</span><span class="p">.</span><span class="n">publish</span><span class="p">(</span><span class="n">stateTopic</span><span class="p">,</span> <span class="n">itoa</span><span class="p">(</span><span class="n">sensorValue</span><span class="p">,</span> <span class="n">buf</span><span class="p">,</span> <span class="mi">10</span><span class="p">));</span>
</span><span class='line'> <span class="n">delay</span><span class="p">(</span><span class="n">updateInterval</span><span class="p">);</span>
</span><span class='line'><span class="p">}</span>
</span></code></pre></td></tr></table></div></figure>
<div class="highlighter-coderay"><table class="CodeRay"><tr>
<td class="line-numbers"><pre><a href="#n1" name="n1">1</a>
<a href="#n2" name="n2">2</a>
<a href="#n3" name="n3">3</a>
<a href="#n4" name="n4">4</a>
<a href="#n5" name="n5">5</a>
<a href="#n6" name="n6">6</a>
<a href="#n7" name="n7">7</a>
<a href="#n8" name="n8">8</a>
<a href="#n9" name="n9">9</a>
<strong><a href="#n10" name="n10">10</a></strong>
<a href="#n11" name="n11">11</a>
<a href="#n12" name="n12">12</a>
<a href="#n13" name="n13">13</a>
<a href="#n14" name="n14">14</a>
<a href="#n15" name="n15">15</a>
<a href="#n16" name="n16">16</a>
<a href="#n17" name="n17">17</a>
<a href="#n18" name="n18">18</a>
<a href="#n19" name="n19">19</a>
<strong><a href="#n20" name="n20">20</a></strong>
<a href="#n21" name="n21">21</a>
<a href="#n22" name="n22">22</a>
<a href="#n23" name="n23">23</a>
<a href="#n24" name="n24">24</a>
<a href="#n25" name="n25">25</a>
<a href="#n26" name="n26">26</a>
<a href="#n27" name="n27">27</a>
<a href="#n28" name="n28">28</a>
<a href="#n29" name="n29">29</a>
<strong><a href="#n30" name="n30">30</a></strong>
<a href="#n31" name="n31">31</a>
<a href="#n32" name="n32">32</a>
<a href="#n33" name="n33">33</a>
<a href="#n34" name="n34">34</a>
<a href="#n35" name="n35">35</a>
<a href="#n36" name="n36">36</a>
<a href="#n37" name="n37">37</a>
<a href="#n38" name="n38">38</a>
<a href="#n39" name="n39">39</a>
<strong><a href="#n40" name="n40">40</a></strong>
<a href="#n41" name="n41">41</a>
<a href="#n42" name="n42">42</a>
<a href="#n43" name="n43">43</a>
<a href="#n44" name="n44">44</a>
<a href="#n45" name="n45">45</a>
<a href="#n46" name="n46">46</a>
<a href="#n47" name="n47">47</a>
<a href="#n48" name="n48">48</a>
<a href="#n49" name="n49">49</a>
<strong><a href="#n50" name="n50">50</a></strong>
<a href="#n51" name="n51">51</a>
<a href="#n52" name="n52">52</a>
<a href="#n53" name="n53">53</a>
<a href="#n54" name="n54">54</a>
<a href="#n55" name="n55">55</a>
<a href="#n56" name="n56">56</a>
<a href="#n57" name="n57">57</a>
<a href="#n58" name="n58">58</a>
<a href="#n59" name="n59">59</a>
<strong><a href="#n60" name="n60">60</a></strong>
<a href="#n61" name="n61">61</a>
<a href="#n62" name="n62">62</a>
<a href="#n63" name="n63">63</a>
<a href="#n64" name="n64">64</a>
<a href="#n65" name="n65">65</a>
<a href="#n66" name="n66">66</a>
<a href="#n67" name="n67">67</a>
<a href="#n68" name="n68">68</a>
</pre></td>
<td class="code"><pre><span class="comment">/*
This sketch is based on the basic MQTT example by
http://knolleary.github.io/pubsubclient/
*/</span>
<span class="preprocessor">#include</span> <span class="include">&lt;SPI.h&gt;</span>
<span class="preprocessor">#include</span> <span class="include">&lt;Ethernet.h&gt;</span>
<span class="preprocessor">#include</span> <span class="include">&lt;PubSubClient.h&gt;</span>
<span class="preprocessor">#define</span> DEBUG <span class="integer">1</span> <span class="comment">// Debug output to serial console</span>
<span class="comment">// Device settings</span>
IPAddress deviceIp(<span class="integer">192</span>, <span class="integer">168</span>, <span class="integer">0</span>, <span class="integer">43</span>);
byte deviceMac[] = { <span class="hex">0xAB</span>, <span class="hex">0xCD</span>, <span class="hex">0xFE</span>, <span class="hex">0xFE</span>, <span class="hex">0xFE</span>, <span class="hex">0xFE</span> };
<span class="predefined-type">char</span>* deviceId = <span class="string"><span class="delimiter">&quot;</span><span class="content">sensor01</span><span class="delimiter">&quot;</span></span>; <span class="comment">// Name of the sensor</span>
<span class="predefined-type">char</span>* stateTopic = <span class="string"><span class="delimiter">&quot;</span><span class="content">home-assistant/sensor01/brightness</span><span class="delimiter">&quot;</span></span>; <span class="comment">// MQTT topic where values are published</span>
<span class="predefined-type">int</span> sensorPin = A0; <span class="comment">// Pin to which the sensor is connected to</span>
<span class="predefined-type">char</span> buf[<span class="integer">4</span>]; <span class="comment">// Buffer to store the sensor value</span>
<span class="predefined-type">int</span> updateInterval = <span class="integer">1000</span>; <span class="comment">// Interval in miliseconds</span>
<span class="comment">// MQTT server settings</span>
IPAddress mqttServer(<span class="integer">192</span>, <span class="integer">168</span>, <span class="integer">0</span>, <span class="integer">12</span>);
<span class="predefined-type">int</span> mqttPort = <span class="integer">1883</span>;
EthernetClient ethClient;
PubSubClient client(ethClient);
<span class="directive">void</span> reconnect() {
<span class="keyword">while</span> (!client.connected()) {
<span class="preprocessor">#if</span> DEBUG
Serial.print(<span class="string"><span class="delimiter">&quot;</span><span class="content">Attempting MQTT connection...</span><span class="delimiter">&quot;</span></span>);
<span class="preprocessor">#endif</span>
<span class="keyword">if</span> (client.connect(deviceId)) {
<span class="preprocessor">#if</span> DEBUG
Serial.println(<span class="string"><span class="delimiter">&quot;</span><span class="content">connected</span><span class="delimiter">&quot;</span></span>);
<span class="preprocessor">#endif</span>
} <span class="keyword">else</span> {
<span class="preprocessor">#if</span> DEBUG
Serial.print(<span class="string"><span class="delimiter">&quot;</span><span class="content">failed, rc=</span><span class="delimiter">&quot;</span></span>);
Serial.print(client.state());
Serial.println(<span class="string"><span class="delimiter">&quot;</span><span class="content"> try again in 5 seconds</span><span class="delimiter">&quot;</span></span>);
<span class="preprocessor">#endif</span>
delay(<span class="integer">5000</span>);
}
}
}
<span class="directive">void</span> setup() {
Serial.begin(<span class="integer">57600</span>);
client.setServer(mqttServer, mqttPort);
Ethernet.begin(deviceMac, deviceIp);
delay(<span class="integer">1500</span>);
}
<span class="directive">void</span> loop() {
<span class="keyword">if</span> (!client.connected()) {
reconnect();
}
client.loop();
<span class="predefined-type">int</span> sensorValue = analogRead(sensorPin);
<span class="preprocessor">#if</span> DEBUG
Serial.print(<span class="string"><span class="delimiter">&quot;</span><span class="content">Sensor value: </span><span class="delimiter">&quot;</span></span>);
Serial.println(sensorValue);
<span class="preprocessor">#endif</span>
client.publish(stateTopic, itoa(sensorValue, buf, <span class="integer">10</span>));
delay(updateInterval);
}
</pre></td>
</tr></table>
</div>
<p>The Arduino will send the value of the sensor every second. To use the data in Home Assistant, add an additional MQTT sensor to the <code>configuration.yaml</code> file.</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
</pre></td><td class='code'><pre><code class='yaml'><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">platform</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">mqtt</span>
</span><span class='line'> <span class="l-Scalar-Plain">name</span><span class="p-Indicator">:</span> <span class="s">&quot;Brightness&quot;</span>
</span><span class='line'> <span class="l-Scalar-Plain">state_topic</span><span class="p-Indicator">:</span> <span class="s">&quot;home-assistant/sensor01/brightness&quot;</span>
</span><span class='line'> <span class="l-Scalar-Plain">unit_of_measurement</span><span class="p-Indicator">:</span> <span class="s">&quot;cd&quot;</span>
</span></code></pre></td></tr></table></div></figure>
<div class="highlighter-coderay"><table class="CodeRay"><tr>
<td class="line-numbers"><pre><a href="#n1" name="n1">1</a>
<a href="#n2" name="n2">2</a>
<a href="#n3" name="n3">3</a>
<a href="#n4" name="n4">4</a>
</pre></td>
<td class="code"><pre> - <span class="string"><span class="content">platform: mqtt</span></span>
<span class="key">name</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">Brightness</span><span class="delimiter">&quot;</span></span>
<span class="key">state_topic</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">home-assistant/sensor01/brightness</span><span class="delimiter">&quot;</span></span>
<span class="key">unit_of_measurement</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">cd</span><span class="delimiter">&quot;</span></span>
</pre></td>
</tr></table>
</div>
<p>After a restart of Home Assistant the values of your Arduino will be available.</p>
<p class='img'>
<img src='/images/blog/2015-09-mqtt/arduino.png' />
<p class="img">
<img src="/images/blog/2015-09-mqtt/arduino.png" />
The Brightness sensor
</p>
<p>I hope that this post could give you some ideas about the usage Home Assistant and MQTT. If you are working on a cool project that includes Home Assistant, please let us now.</p>
</article>
<section id="disqus">
<h3 class="indent title">Comments</h3>
<div id="disqus_thread" aria-live="polite"><noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
</div>
<div id="disqus_thread" aria-live="polite"><noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript></div>
</section>
@ -474,7 +457,6 @@ The <a href="https://en.wikipedia.org/wiki/MQTT">MQTT</a> support was added to H
<section class="sharing aside-module grid__item one-whole lap-one-half">
<h1 class="title delta">Share this post</h1>
@ -556,7 +538,6 @@ The <a href="https://en.wikipedia.org/wiki/MQTT">MQTT</a> support was added to H
</div>
</aside>
</div>
@ -567,30 +548,23 @@ The <a href="https://en.wikipedia.org/wiki/MQTT">MQTT</a> support was added to H
<div class="grid">
<div class="grid__item">
<p class="copyright">
<span class="credit">Powered by <a href="http://octopress.org">Octopress</a>, <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>
<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>
<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>
<script>
var disqus_shortname = 'home-assistant';
@ -607,13 +581,5 @@ The <a href="https://en.wikipedia.org/wiki/MQTT">MQTT</a> support was added to H
}());
</script>
</body>
</html>

View file

@ -5,8 +5,6 @@
<!--[if gt IE 8]><!--> <html> <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
@ -32,7 +30,6 @@
<link rel='icon' type='image/png' href='/images/favicon-192x192.png' sizes='192x192' />
</head>
<body >
<header>
@ -54,10 +51,10 @@
<a href="/getting-started/">Getting started</a>
<ul>
<li><a href='/getting-started/'>Installing Home Assistant</a></li>
<li><a href='/getting-started/configuration.html'>Configuration basics</a></li>
<li><a href='/getting-started/devices.html'>Adding devices</a></li>
<li><a href='/getting-started/presence-detection.html'>Presence detection</a></li>
<li><a href='/getting-started/automation.html'>Automation</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>
@ -65,26 +62,24 @@
<li>
<a href="/developers/">Developers</a>
<ul>
<li><a href="/developers/architecture.html">Architecture</a></li>
<li><a href="/developers/frontend.html">Frontend development</a></li>
<li><a href="/developers/creating_components.html">
<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.html">
<li><a href="/developers/add_new_platform/">
Adding platform support
</a></li>
<li><a href="/developers/api.html">API</a></li>
<li><a href="/developers/credits.html">Credits</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>
@ -98,6 +93,7 @@
<article class="post">
<header>
<h1 class="title indent">Home Assistant meets IFTTT</h1>
@ -105,27 +101,9 @@
<div class="meta clearfix">
<time datetime="2015-09-13T09:28:00-07:00" pubdate data-updated="true"><i class="icon-calendar"></i> September 13, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<span><i class='icon-time'></i> three minutes reading time</span>
<time datetime="2015-09-13T09:28:00-07:00" pubdate data-updated="true"><i class="icon-calendar"></i> September 13, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<span><i class='icon-time'></i> two minutes reading time</span>
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -139,7 +117,6 @@
</ul>
</span>
<a class='comments'
href="#disqus_thread"
>Comments</a>
@ -149,218 +126,185 @@
</header>
<p>Today we announce the release of Home Assistant v0.7.2 which includes brand new support by <a href="https://github.com/sfam">@sfam</a> to integrate with <a href="https://ifttt.com">IFTTT</a>. IFTTT stands for If This, Then That and is a webservice that integrates with almost every possible webservice out there. Adding Home Assistant to this mix means Home Assistant can connect with all via IFTTT.</p>
<p>It is now possible to disable your irregation system if it is going to be cloudy tomorrow or tweet if your smoke alarm goes off.</p>
<p>Today we announce the release of Home Assistant v0.7.2 which includes brand new support by
<a href="https://github.com/sfam">@sfam</a> to integrate with <a href="https://ifttt.com">IFTTT</a>. IFTTT stands for If This, Then That and is a
webservice that integrates with almost every possible webservice out there. Adding Home
Assistant to this mix means Home Assistant can connect with all via IFTTT.</p>
<p>It is now possible to disable your irregation system if it is going to be cloudy tomorrow or tweet
if your smoke alarm goes off.</p>
<p class='img'>
<img src='/images/blog/2015-09-ifttt/splash.png'>
<p class="img">
<img src="/images/blog/2015-09-ifttt/splash.png" />
</p>
<p>Head over to the <a href="/components/ifttt.html">setup instructions</a> to get started with IFTTT. Click the
read more button for some example recipes.</p>
<p>Head over to the <a href="/components/ifttt/">setup instructions</a> to get started with IFTTT. Click the read more button for some example recipes.</p>
<a name="read-more"></a>
<p>In each of the following examples, make sure to replace the XXX in the url with your correct host address and api password.</p>
<p>In each of the following examples, make sure to replace the XXX in the url with your correct
host address and api password.</p>
<h2><a class="title-link" name="turn-off-irregation-system-when-not-needed" href="#turn-off-irregation-system-when-not-needed"></a> Turn off irregation system when not needed</h2>
<h2><a class='title-link' name='turn-off-irregation-system-when-not-needed' href='#turn-off-irregation-system-when-not-needed'></a> Turn off irregation system when not needed</h2>
<p class='img'>
<img src='/images/blog/2015-09-ifttt/recipe-weather.png' />
<p class="img">
<img src="/images/blog/2015-09-ifttt/recipe-weather.png" />
</p>
<p>Maker channel setup:</p>
<table>
<thead>
<tr>
<th> Field </th>
<th> Value </th>
</tr>
</thead>
<tbody>
<tr>
<td> URL </td>
<td> <a href="http://xxx.xxx.xxx.xxx:8123/api/services/switch/turn_off?api_password=xxxxxxxx">http://xxx.xxx.xxx.xxx:8123/api/services/switch/turn_off?api_password=xxxxxxxx</a></td>
</tr>
<tr>
<td> METHOD </td>
<td> POST</td>
</tr>
<tr>
<td> CONTENT TYPE </td>
<td> application/json</td>
</tr>
<tr>
<td> BODY </td>
<td> { &ldquo;entity_id&rdquo;: &ldquo;switch.irrigation&rdquo; }</td>
</tr>
</tbody>
<thead>
<tr>
<th>Field</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>URL</td>
<td>http://xxx.xxx.xxx.xxx:8123/api/services/switch/turn_off?api_password=xxxxxxxx</td>
</tr>
<tr>
<td>METHOD</td>
<td>POST</td>
</tr>
<tr>
<td>CONTENT TYPE</td>
<td>application/json</td>
</tr>
<tr>
<td>BODY</td>
<td>{ “entity_id”: “switch.irrigation” }</td>
</tr>
</tbody>
</table>
<h2><a class="title-link" name="tweet-when-important-events-happen" href="#tweet-when-important-events-happen"></a> Tweet when important events happen</h2>
<h2><a class='title-link' name='tweet-when-important-events-happen' href='#tweet-when-important-events-happen'></a> Tweet when important events happen</h2>
<p class='img'>
<img src='/images/blog/2015-09-ifttt/recipe-twitter.png' />
<p class="img">
<img src="/images/blog/2015-09-ifttt/recipe-twitter.png" />
</p>
<p>This will tweet a message when an MQTT message is received that the smoke alarm has been triggered. Setup Maker channel with event name <code>HA_FIRE_ALARM</code> and Twitter channel to tweet the message in <code>value1</code>.</p>
<p>This will tweet a message when an MQTT message is received that the smoke alarm has been triggered.
Setup Maker channel with event name <code>HA_FIRE_ALARM</code> and Twitter channel to tweet the message in
<code>value1</code>.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Configuration.yaml entry</span>
<span class="key">automation</span>:
- <span class="string"><span class="content">alias: Post a tweet when fire alarm is triggered</span></span>
<span class="key">trigger</span>:
<span class="key">platform</span>: <span class="string"><span class="content">mqtt</span></span>
<span class="key">mqtt_topic</span>: <span class="string"><span class="content">home/alarm/fire</span></span>
<span class="key">mqtt_payload</span>: <span class="string"><span class="content">'on'</span></span>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
</pre></td><td class='code'><pre><code class='yaml'><span class='line'><span class="c1"># Configuration.yaml entry</span>
</span><span class='line'><span class="l-Scalar-Plain">automation</span><span class="p-Indicator">:</span>
</span><span class='line'><span class="p-Indicator">-</span> <span class="l-Scalar-Plain">alias</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">Post a tweet when fire alarm is triggered</span>
</span><span class='line'> <span class="l-Scalar-Plain">trigger</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">platform</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">mqtt</span>
</span><span class='line'> <span class="l-Scalar-Plain">mqtt_topic</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">home/alarm/fire</span>
</span><span class='line'> <span class="l-Scalar-Plain">mqtt_payload</span><span class="p-Indicator">:</span> <span class="s">&#39;on&#39;</span>
</span><span class='line'>
</span><span class='line'> <span class="l-Scalar-Plain">action</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">service</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">ifttt.trigger</span>
</span><span class='line'> <span class="l-Scalar-Plain">data</span><span class="p-Indicator">:</span> <span class="p-Indicator">{</span><span class="s">&quot;event&quot;</span><span class="p-Indicator">:</span><span class="s">&quot;HA_FIRE_ALARM&quot;</span><span class="p-Indicator">,</span> <span class="s">&quot;value1&quot;</span><span class="p-Indicator">:</span><span class="s">&quot;The</span><span class="nv"> </span><span class="s">fire</span><span class="nv"> </span><span class="s">alarm</span><span class="nv"> </span><span class="s">just</span><span class="nv"> </span><span class="s">triggered!&quot;</span><span class="p-Indicator">}</span>
</span></code></pre></td></tr></table></div></figure>
<span class="key">action</span>:
<span class="key">service</span>: <span class="string"><span class="content">ifttt.trigger</span></span>
<span class="key">data</span>: <span class="string"><span class="content">{&quot;event&quot;:&quot;HA_FIRE_ALARM&quot;, &quot;value1&quot;:&quot;The fire alarm just triggered!&quot;}</span></span>
</pre></div>
</div>
</div>
<h2><a class="title-link" name="turn-on-lights-when-i-get-home" href="#turn-on-lights-when-i-get-home"></a> Turn on lights when I get home</h2>
<h2><a class='title-link' name='turn-on-lights-when-i-get-home' href='#turn-on-lights-when-i-get-home'></a> Turn on lights when I get home</h2>
<p class='img'>
<img src='/images/blog/2015-09-ifttt/recipe-geo.png' />
<p class="img">
<img src="/images/blog/2015-09-ifttt/recipe-geo.png" />
</p>
<p>Maker channel setup:</p>
<table>
<thead>
<tr>
<th> Field </th>
<th> Value </th>
</tr>
</thead>
<tbody>
<tr>
<td> URL </td>
<td> <a href="http://xxx.xxx.xxx.xxx:8123/api/services/light/turn_on?api_password=xxxxxxxx">http://xxx.xxx.xxx.xxx:8123/api/services/light/turn_on?api_password=xxxxxxxx</a></td>
</tr>
<tr>
<td> METHOD </td>
<td> POST</td>
</tr>
<tr>
<td> CONTENT TYPE </td>
<td> application/json</td>
</tr>
<tr>
<td> BODY </td>
<td> { &ldquo;entity_id&rdquo;: &ldquo;light.kitchen&rdquo; }</td>
</tr>
</tbody>
<thead>
<tr>
<th>Field</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>URL</td>
<td>http://xxx.xxx.xxx.xxx:8123/api/services/light/turn_on?api_password=xxxxxxxx</td>
</tr>
<tr>
<td>METHOD</td>
<td>POST</td>
</tr>
<tr>
<td>CONTENT TYPE</td>
<td>application/json</td>
</tr>
<tr>
<td>BODY</td>
<td>{ “entity_id”: “light.kitchen” }</td>
</tr>
</tbody>
</table>
<h2><a class="title-link" name="flash-lights-when-a-new-pr-comes-in-for-home-assistant" href="#flash-lights-when-a-new-pr-comes-in-for-home-assistant"></a> Flash lights when a new PR comes in for Home Assistant</h2>
<h2><a class='title-link' name='flash-lights-when-a-new-pr-comes-in-for-home-assistant' href='#flash-lights-when-a-new-pr-comes-in-for-home-assistant'></a> Flash lights when a new PR comes in for Home Assistant</h2>
<p class='img'>
<img src='/images/blog/2015-09-ifttt/recipe-github.png' />
<p class="img">
<img src="/images/blog/2015-09-ifttt/recipe-github.png" />
</p>
<p>Maker channel setup:</p>
<table>
<thead>
<tr>
<th> Field </th>
<th> Value </th>
</tr>
</thead>
<tbody>
<tr>
<td> URL </td>
<td> <a href="http://xxx.xxx.xxx.xxx:8123/api/services/light/turn_on?api_password=xxxxxxxx">http://xxx.xxx.xxx.xxx:8123/api/services/light/turn_on?api_password=xxxxxxxx</a></td>
</tr>
<tr>
<td> METHOD </td>
<td> POST</td>
</tr>
<tr>
<td> CONTENT TYPE </td>
<td> application/json</td>
</tr>
<tr>
<td> BODY </td>
<td> { &ldquo;entity_id&rdquo;: &ldquo;group.all_lights&rdquo;, &ldquo;flash&rdquo;:&ldquo;yes&rdquo; }</td>
</tr>
</tbody>
<thead>
<tr>
<th>Field</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>URL</td>
<td>http://xxx.xxx.xxx.xxx:8123/api/services/light/turn_on?api_password=xxxxxxxx</td>
</tr>
<tr>
<td>METHOD</td>
<td>POST</td>
</tr>
<tr>
<td>CONTENT TYPE</td>
<td>application/json</td>
</tr>
<tr>
<td>BODY</td>
<td>{ “entity_id”: “group.all_lights”, “flash”:”yes” }</td>
</tr>
</tbody>
</table>
<h2><a class="title-link" name="fire-events-when-pressing-the-do-button" href="#fire-events-when-pressing-the-do-button"></a> Fire events when pressing the DO button</h2>
<h2><a class='title-link' name='fire-events-when-pressing-the-do-button' href='#fire-events-when-pressing-the-do-button'></a> Fire events when pressing the DO button</h2>
<p class='img'>
<img src='/images/blog/2015-09-ifttt/recipe-do.png' />
<p class="img">
<img src="/images/blog/2015-09-ifttt/recipe-do.png" />
</p>
<p>Maker channel setup:</p>
<table>
<thead>
<tr>
<th> Field </th>
<th> Value </th>
</tr>
</thead>
<tbody>
<tr>
<td> URL </td>
<td> <a href="http://xxx.xxx.xxx.xxx:8123/api/events/do_button_pressed?api_password=xxxxxxxx">http://xxx.xxx.xxx.xxx:8123/api/events/do_button_pressed?api_password=xxxxxxxx</a></td>
</tr>
<tr>
<td> METHOD </td>
<td> POST</td>
</tr>
<tr>
<td> CONTENT TYPE </td>
<td> application/json</td>
</tr>
</tbody>
<thead>
<tr>
<th>Field</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>URL</td>
<td>http://xxx.xxx.xxx.xxx:8123/api/events/do_button_pressed?api_password=xxxxxxxx</td>
</tr>
<tr>
<td>METHOD</td>
<td>POST</td>
</tr>
<tr>
<td>CONTENT TYPE</td>
<td>application/json</td>
</tr>
</tbody>
</table>
</article>
<section id="disqus">
<h3 class="indent title">Comments</h3>
<div id="disqus_thread" aria-live="polite"><noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
</div>
<div id="disqus_thread" aria-live="polite"><noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript></div>
</section>
@ -372,7 +316,6 @@ Setup Maker channel with event name <code>HA_FIRE_ALARM</code> and Twitter chann
<section class="sharing aside-module grid__item one-whole lap-one-half">
<h1 class="title delta">Share this post</h1>
@ -454,7 +397,6 @@ Setup Maker channel with event name <code>HA_FIRE_ALARM</code> and Twitter chann
</div>
</aside>
</div>
@ -465,30 +407,23 @@ Setup Maker channel with event name <code>HA_FIRE_ALARM</code> and Twitter chann
<div class="grid">
<div class="grid__item">
<p class="copyright">
<span class="credit">Powered by <a href="http://octopress.org">Octopress</a>, <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>
<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>
<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>
<script>
var disqus_shortname = 'home-assistant';
@ -505,13 +440,5 @@ Setup Maker channel with event name <code>HA_FIRE_ALARM</code> and Twitter chann
}());
</script>
</body>
</html>

View file

@ -5,8 +5,6 @@
<!--[if gt IE 8]><!--> <html> <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
@ -32,7 +30,6 @@
<link rel='icon' type='image/png' href='/images/favicon-192x192.png' sizes='192x192' />
</head>
<body >
<header>
@ -54,10 +51,10 @@
<a href="/getting-started/">Getting started</a>
<ul>
<li><a href='/getting-started/'>Installing Home Assistant</a></li>
<li><a href='/getting-started/configuration.html'>Configuration basics</a></li>
<li><a href='/getting-started/devices.html'>Adding devices</a></li>
<li><a href='/getting-started/presence-detection.html'>Presence detection</a></li>
<li><a href='/getting-started/automation.html'>Automation</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>
@ -65,26 +62,24 @@
<li>
<a href="/developers/">Developers</a>
<ul>
<li><a href="/developers/architecture.html">Architecture</a></li>
<li><a href="/developers/frontend.html">Frontend development</a></li>
<li><a href="/developers/creating_components.html">
<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.html">
<li><a href="/developers/add_new_platform/">
Adding platform support
</a></li>
<li><a href="/developers/api.html">API</a></li>
<li><a href="/developers/credits.html">Credits</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>
@ -98,6 +93,7 @@
<article class="post">
<header>
<h1 class="title indent">Remote Monitoring with Glances</h1>
@ -105,27 +101,9 @@
<div class="meta clearfix">
<time datetime="2015-09-18T02:00:00-07:00" pubdate data-updated="true"><i class="icon-calendar"></i> September 18, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Fabian Affolter</span>
<span><i class='icon-time'></i> three minutes reading time</span>
<time datetime="2015-09-18T02:00:00-07:00" pubdate data-updated="true"><i class="icon-calendar"></i> September 18, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Fabian Affolter</span>
<span><i class='icon-time'></i> two minutes reading time</span>
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -137,7 +115,6 @@
</ul>
</span>
<a class='comments'
href="#disqus_thread"
>Comments</a>
@ -147,100 +124,88 @@
</header>
<p><img src='/images/supported_brands/glances.png' style='border:none; box-shadow: none; float: right;' height='80' />
Inspried by a <a href="https://github.com/balloob/home-assistant/issues/310">feature requests</a> I started looking into the available options to do monitoring of remote hosts. The feature request is about displaying system information in a similar way than the <a href="/components/sensor.systemmonitor.html">systemmonitor</a> sensor does it for the local system. After a while I started to think that it would be a nice addition for a small home network where no full-blown system monitoring setup is present.</p>
<p><img src="/images/supported_brands/glances.png" style="border:none; box-shadow: none; float: right;" height="80" /><br />
Inspried by a <a href="https://github.com/balloob/home-assistant/issues/310">feature requests</a> I started looking into the available options to do monitoring of remote hosts. The feature request is about displaying system information in a similar way than the <a href="/components/sensor.systemmonitor/">systemmonitor</a> sensor does it for the local system. After a while I started to think that it would be a nice addition for a small home network where no full-blown system monitoring setup is present.</p>
<a name="read-more"></a>
<p>The basic problem is to get the data from the remote host. Starting with <a href="https://pypi.python.org/pypi/psutil">psutil</a> that is used by the systemmonitor sensor, a possible solution is only a click away and named <a href="https://github.com/nicolargo/glances">Glances</a>. Glances has a nice curses-based interface and a <a href="https://github.com/nicolargo/glances/wiki/The-Glances-RESTFULL-JSON-API">RESTful API</a>.</p>
<p>The <a href="/components/sensor.glances.html">Glances sensor</a> sensor uses that API to get all needed data.</p>
<p>The <a href="/components/sensor.glances/">Glances sensor</a> sensor uses that API to get all needed data.</p>
<p>In this post a default Fedora 22 Workstation installation is used on the host that should be monitored. In fact, it doesn&rsquo;t matter if the system is the local one or a remote one as long as Glances is available. With some adjustments it should work on your own systems too. The difference will be the package and the firewall management tools.</p>
<p>In this post a default Fedora 22 Workstation installation is used on the host that should be monitored. In fact, it doesnt matter if the system is the local one or a remote one as long as Glances is available. With some adjustments it should work on your own systems too. The difference will be the package and the firewall management tools.</p>
<p>First some extra packages are needed beside Glances, especially the <a href="http://bottlepy.org/docs/dev/index.html">bottle</a> webserver. I guess that Glances is available for your distribution as well. Otherwise follow those <a href="https://github.com/nicolargo/glances#installation">instructions</a>.</p>
<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>sudo dnf -y install glances python-bottle</span></code></pre></td></tr></table></div></figure>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>$ sudo dnf -y install glances python-bottle
</pre></div>
</div>
</div>
<p>On Fedora the Firewall settings are strict. Lets open port 61208 to allow other hosts to connect to that port. This is not needed if you just want to observe your local machine.</p>
<p>On Fedora the Firewall settings are strict. Let&rsquo;s open port 61208 to allow other hosts to connect to that port. This is not needed if you just want to observe your local machine.</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
</pre></td><td class='code'><pre><code class='bash'><span class='line'>sudo firewall-cmd --permanent --add-port<span class="o">=</span>61208/tcp
</span><span class='line'>sudo firewall-cmd --reload
</span></code></pre></td></tr></table></div></figure>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>$ sudo firewall-cmd --permanent --add-port=61208/tcp
$ sudo firewall-cmd --reload
</pre></div>
</div>
</div>
<p>Launch <code>glances</code> and keep an eye on the output.</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
</pre></td><td class='code'><pre><code class='bash'><span class='line'>glances -w
</span><span class='line'>Glances web server started on http://0.0.0.0:61208/
</span></code></pre></td></tr></table></div></figure>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>$ glances -w
Glances web server started on http://0.0.0.0:61208/
</pre></div>
</div>
</div>
<p>Now browse to http://IP_ADRRESS:61208/. You should see the webified view of Glances.</p>
<p>Now browse to <a href="http://IP_ADRRESS:61208/.">http://IP_ADRRESS:61208/.</a> You should see the webified view of Glances.</p>
<p class='img'>
<img src='/images/blog/2015-09-glances/web-glances.png' />
<p class="img">
<img src="/images/blog/2015-09-glances/web-glances.png" />
Glances web interface
</p>
<p>Another check is to access the API located at http://IP_ADRRESS:61208/api/2/mem/used and to confirm that a detail about your memory usage is provided as a JSON response. If so, you are good to proceed.</p>
<p>Another check is to access the API located at <a href="http://IP_ADRRESS:61208/api/2/mem/used">http://IP_ADRRESS:61208/api/2/mem/used</a> and to confirm that a detail about your memory usage is provided as a JSON response. If so, you are good to proceed.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>$ curl -X GET http://IP_ADDRESS:61208/api/2/mem/used
{&quot;used&quot;: 203943936}
</pre></div>
</div>
</div>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
</pre></td><td class='code'><pre><code class='bash'><span class='line'>curl -X GET http://IP_ADDRESS:61208/api/2/mem/used
</span><span class='line'><span class="o">{</span><span class="s2">&quot;used&quot;</span>: 203943936<span class="o">}</span>
</span></code></pre></td></tr></table></div></figure>
<p>Add the <a href="/components/sensor.glances.html">glances sensor</a> entry to your <code>configuration.yaml</code> file and restart Home Assistant then.</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
</pre></td><td class='code'><pre><code class='yaml'><span class='line'><span class="c1"># Example configuration.yaml entry</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">platform</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">glances</span>
</span><span class='line'> <span class="l-Scalar-Plain">name</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">NAS</span>
</span><span class='line'> <span class="l-Scalar-Plain">host</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">IP_ADDRESS</span>
</span><span class='line'> <span class="l-Scalar-Plain">resources</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="s">&#39;disk_use_percent&#39;</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="s">&#39;disk_use&#39;</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="s">&#39;disk_free&#39;</span>
</span></code></pre></td></tr></table></div></figure>
<p>Add the <a href="/components/sensor.glances/">glances sensor</a> entry to your <code>configuration.yaml</code> file and restart Home Assistant then.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
- <span class="string"><span class="content">platform: glances</span></span>
<span class="key">name</span>: <span class="string"><span class="content">NAS</span></span>
<span class="key">host</span>: <span class="string"><span class="content">IP_ADDRESS</span></span>
<span class="key">resources</span>:
- <span class="string"><span class="content">'disk_use_percent'</span></span>
- <span class="string"><span class="content">'disk_use'</span></span>
- <span class="string"><span class="content">'disk_free'</span></span>
</pre></div>
</div>
</div>
<p>If there are no error in the log file then you should see your new sensors.</p>
<p class='img'>
<img src='/images/blog/2015-09-glances/sensors.png' />
<p class="img">
<img src="/images/blog/2015-09-glances/sensors.png" />
The Glances sensors
</p>
<p><a href="https://github.com/nicolargo/glances">Glances</a> has a couple of optional dependencies which are extenting the range of provided information. This means that it would be possible to get details about the RAID system, HDD temperature, IP addresses, sensors, etc., please create a <a href="https://github.com/balloob/home-assistant/pulls">Pull request</a> with your additions or a <a href="https://github.com/balloob/home-assistant/issues/new">Feature request</a> if you want see more details in your Home Assistant frontend.</p>
</article>
<section id="disqus">
<h3 class="indent title">Comments</h3>
<div id="disqus_thread" aria-live="polite"><noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
</div>
<div id="disqus_thread" aria-live="polite"><noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript></div>
</section>
@ -252,7 +217,6 @@ Inspried by a <a href="https://github.com/balloob/home-assistant/issues/310">fea
<section class="sharing aside-module grid__item one-whole lap-one-half">
<h1 class="title delta">Share this post</h1>
@ -334,7 +298,6 @@ Inspried by a <a href="https://github.com/balloob/home-assistant/issues/310">fea
</div>
</aside>
</div>
@ -345,30 +308,23 @@ Inspried by a <a href="https://github.com/balloob/home-assistant/issues/310">fea
<div class="grid">
<div class="grid__item">
<p class="copyright">
<span class="credit">Powered by <a href="http://octopress.org">Octopress</a>, <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>
<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>
<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>
<script>
var disqus_shortname = 'home-assistant';
@ -385,13 +341,5 @@ Inspried by a <a href="https://github.com/balloob/home-assistant/issues/310">fea
}());
</script>
</body>
</html>

View file

@ -5,8 +5,6 @@
<!--[if gt IE 8]><!--> <html> <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
@ -32,7 +30,6 @@
<link rel='icon' type='image/png' href='/images/favicon-192x192.png' sizes='192x192' />
</head>
<body >
<header>
@ -54,10 +51,10 @@
<a href="/getting-started/">Getting started</a>
<ul>
<li><a href='/getting-started/'>Installing Home Assistant</a></li>
<li><a href='/getting-started/configuration.html'>Configuration basics</a></li>
<li><a href='/getting-started/devices.html'>Adding devices</a></li>
<li><a href='/getting-started/presence-detection.html'>Presence detection</a></li>
<li><a href='/getting-started/automation.html'>Automation</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>
@ -65,26 +62,24 @@
<li>
<a href="/developers/">Developers</a>
<ul>
<li><a href="/developers/architecture.html">Architecture</a></li>
<li><a href="/developers/frontend.html">Frontend development</a></li>
<li><a href="/developers/creating_components.html">
<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.html">
<li><a href="/developers/add_new_platform/">
Adding platform support
</a></li>
<li><a href="/developers/api.html">API</a></li>
<li><a href="/developers/credits.html">Credits</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>
@ -98,6 +93,7 @@
<article class="post">
<header>
<h1 class="title indent">Alarms, Sonos and iTunes now supported</h1>
@ -105,27 +101,9 @@
<div class="meta clearfix">
<time datetime="2015-09-19T21:47:00-07:00" pubdate data-updated="true"><i class="icon-calendar"></i> September 19, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<time datetime="2015-09-19T21:47:00-07:00" pubdate data-updated="true"><i class="icon-calendar"></i> September 19, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<span><i class='icon-time'></i> two minutes reading time</span>
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -137,7 +115,6 @@
</ul>
</span>
<a class='comments'
href="#disqus_thread"
>Comments</a>
@ -147,108 +124,67 @@
</header>
<p>It&rsquo;s like someone opened a can of rock solid developers and emptied it above our
<a href="https://gitter.im/balloob/home-assistant">chat channel</a> because it exploded with
great conversations and solid contributions. Featured in release 0.7.3: Sonos, iTunes, Alarm component and Automation upgrade.</p>
<p>Its like someone opened a can of rock solid developers and emptied it above our <a href="https://gitter.im/balloob/home-assistant">chat channel</a> because it exploded with great conversations and solid contributions. Featured in release 0.7.3: Sonos, iTunes, Alarm component and Automation upgrade.</p>
<p>See <a href="https://github.com/balloob/home-assistant/releases/tag/0.7.3">GitHub</a> for more detailed release notes.</p>
<p><em>Migration note: the <code>scheduler</code> component has been removed in favor of the <code>automation</code> component.</em></p>
<p><strong>Sonos</strong><br>
<img src='/images/supported_brands/sonos.png' style='border:none; box-shadow: none; float: right;' height='50' />
Sonos support has been added by <a href="https://github.com/rhooper">@rhooper</a> and <a href="https://github.com/SEJeff">@SEJeff</a>. Home Assistant is now able to automatically
detect Sonos devices in your network and set them up for you. It will allow you to control music
playing on your Sonos and change the volume.</p>
<p><strong>iTunes and airplay speakers</strong><br>
<img src='/images/supported_brands/itunes.png' style='border:none; box-shadow: none; float: right;' height='50' />
<a href="https://github.com/maddox">@maddox</a> has contributed support for controlling iTunes and airplay speakers. For this to work you will
have to run <a href="https://github.com/maddox/itunes-api">itunes-api</a> on your Mac as middleware.</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
</pre></td><td class='code'><pre><code class='yaml'><span class='line'><span class="c1"># Example configuration.yaml entry</span>
</span><span class='line'><span class="l-Scalar-Plain">media_player</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">platform</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">itunes</span>
</span><span class='line'> <span class="l-Scalar-Plain">name</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">iTunes</span>
</span><span class='line'> <span class="l-Scalar-Plain">host</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">http://192.168.1.50</span>
</span><span class='line'> <span class="l-Scalar-Plain">port</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">8181</span>
</span></code></pre></td></tr></table></div></figure>
<p><strong>Sonos</strong><br />
<img src="/images/supported_brands/sonos.png" style="border:none; box-shadow: none; float: right;" height="50" /> Sonos support has been added by <a href="https://github.com/rhooper">@rhooper</a> and <a href="https://github.com/SEJeff">@SEJeff</a>. Home Assistant is now able to automatically detect Sonos devices in your network and set them up for you. It will allow you to control music playing on your Sonos and change the volume.</p>
<p><strong>iTunes and airplay speakers</strong><br />
<img src="/images/supported_brands/itunes.png" style="border:none; box-shadow: none; float: right;" height="50" /> <a href="https://github.com/maddox">@maddox</a> has contributed support for controlling iTunes and airplay speakers. For this to work you will have to run <a href="https://github.com/maddox/itunes-api">itunes-api</a> on your Mac as middleware.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">media_player</span>:
<span class="key">platform</span>: <span class="string"><span class="content">itunes</span></span>
<span class="key">name</span>: <span class="string"><span class="content">iTunes</span></span>
<span class="key">host</span>: <span class="string"><span class="content">http://192.168.1.50</span></span>
<span class="key">port</span>: <span class="string"><span class="content">8181</span></span>
</pre></div>
</div>
</div>
<a name="read-more"></a>
<p><strong>Automation</strong><br />
Automation has gotten a lot of love. It now supports conditions, multiple triggers and new types of triggers. The best to get started with it is to head over to the new <a href="/getting-started/automation/">getting started with automation</a> page.</p>
<p><strong>Automation</strong><br>
Automation has gotten a lot of love. It now supports conditions, multiple triggers and new types of
triggers. The best to get started with it is to head over to the new
<a href="/getting-started/automation.html">getting started with automation</a> page.</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
<span class='line-number'>12</span>
<span class='line-number'>13</span>
<span class='line-number'>14</span>
<span class='line-number'>15</span>
<span class='line-number'>16</span>
<span class='line-number'>17</span>
<span class='line-number'>18</span>
<span class='line-number'>19</span>
<span class='line-number'>20</span>
</pre></td><td class='code'><pre><code class='yaml'><span class='line'><span class="c1"># Example of entry in configuration.yaml</span>
</span><span class='line'><span class="l-Scalar-Plain">automation</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">alias</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">Light on in the evening</span>
</span><span class='line'> <span class="l-Scalar-Plain">trigger</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">platform</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">sun</span>
</span><span class='line'> <span class="l-Scalar-Plain">event</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">sunset</span>
</span><span class='line'> <span class="l-Scalar-Plain">offset</span><span class="p-Indicator">:</span> <span class="s">&quot;-01:00:00&quot;</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">platform</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">state</span>
</span><span class='line'> <span class="l-Scalar-Plain">entity_id</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">group.all_devices</span>
</span><span class='line'> <span class="l-Scalar-Plain">state</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">home</span>
</span><span class='line'> <span class="l-Scalar-Plain">condition</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">platform</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">state</span>
</span><span class='line'> <span class="l-Scalar-Plain">entity_id</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">group.all_devices</span>
</span><span class='line'> <span class="l-Scalar-Plain">state</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">home</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">platform</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">time</span>
</span><span class='line'> <span class="l-Scalar-Plain">after</span><span class="p-Indicator">:</span> <span class="s">&quot;16:00:00&quot;</span>
</span><span class='line'> <span class="l-Scalar-Plain">before</span><span class="p-Indicator">:</span> <span class="s">&quot;23:00:00&quot;</span>
</span><span class='line'> <span class="l-Scalar-Plain">action</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">service</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">homeassistant.turn_on</span>
</span><span class='line'> <span class="l-Scalar-Plain">entity_id</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">group.living_room</span>
</span></code></pre></td></tr></table></div></figure>
<p><strong>Verisure Alarms</strong><br>
<img src='/images/supported_brands/verisure.png' style='border:none; box-shadow: none; float: right;' height='50' />
We now support arming and disarming your verisure alarm from within Home Assistant thanks to added
support by <a href="https://github.com/persandstrom">@persandstrom</a>.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example of entry in configuration.yaml</span>
<span class="key">automation</span>:
<span class="key">alias</span>: <span class="string"><span class="content">Light on in the evening</span></span>
<span class="key">trigger</span>:
- <span class="string"><span class="content">platform: sun</span></span>
<span class="key">event</span>: <span class="string"><span class="content">sunset</span></span>
<span class="key">offset</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">-01:00:00</span><span class="delimiter">&quot;</span></span>
- <span class="string"><span class="content">platform: state</span></span>
<span class="key">entity_id</span>: <span class="string"><span class="content">group.all_devices</span></span>
<span class="key">state</span>: <span class="string"><span class="content">home</span></span>
<span class="key">condition</span>:
- <span class="string"><span class="content">platform: state</span></span>
<span class="key">entity_id</span>: <span class="string"><span class="content">group.all_devices</span></span>
<span class="key">state</span>: <span class="string"><span class="content">home</span></span>
- <span class="string"><span class="content">platform: time</span></span>
<span class="key">after</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">16:00:00</span><span class="delimiter">&quot;</span></span>
<span class="key">before</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">23:00:00</span><span class="delimiter">&quot;</span></span>
<span class="key">action</span>:
<span class="key">service</span>: <span class="string"><span class="content">homeassistant.turn_on</span></span>
<span class="key">entity_id</span>: <span class="string"><span class="content">group.living_room</span></span>
</pre></div>
</div>
</div>
<p><strong>Verisure Alarms</strong><br />
<img src="/images/supported_brands/verisure.png" style="border:none; box-shadow: none; float: right;" height="50" /> We now support arming and disarming your verisure alarm from within Home Assistant thanks to added support by <a href="https://github.com/persandstrom">@persandstrom</a>.</p>
</article>
<section id="disqus">
<h3 class="indent title">Comments</h3>
<div id="disqus_thread" aria-live="polite"><noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
</div>
<div id="disqus_thread" aria-live="polite"><noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript></div>
</section>
@ -260,7 +196,6 @@ support by <a href="https://github.com/persandstrom">@persandstrom</a>.</p>
<section class="sharing aside-module grid__item one-whole lap-one-half">
<h1 class="title delta">Share this post</h1>
@ -338,7 +273,6 @@ support by <a href="https://github.com/persandstrom">@persandstrom</a>.</p>
</div>
</aside>
</div>
@ -349,30 +283,23 @@ support by <a href="https://github.com/persandstrom">@persandstrom</a>.</p>
<div class="grid">
<div class="grid__item">
<p class="copyright">
<span class="credit">Powered by <a href="http://octopress.org">Octopress</a>, <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>
<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>
<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>
<script>
var disqus_shortname = 'home-assistant';
@ -389,13 +316,5 @@ support by <a href="https://github.com/persandstrom">@persandstrom</a>.</p>
}());
</script>
</body>
</html>

View file

@ -5,8 +5,6 @@
<!--[if gt IE 8]><!--> <html> <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
@ -32,7 +30,6 @@
<link rel='icon' type='image/png' href='/images/favicon-192x192.png' sizes='192x192' />
</head>
<body >
<header>
@ -54,10 +51,10 @@
<a href="/getting-started/">Getting started</a>
<ul>
<li><a href='/getting-started/'>Installing Home Assistant</a></li>
<li><a href='/getting-started/configuration.html'>Configuration basics</a></li>
<li><a href='/getting-started/devices.html'>Adding devices</a></li>
<li><a href='/getting-started/presence-detection.html'>Presence detection</a></li>
<li><a href='/getting-started/automation.html'>Automation</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>
@ -65,26 +62,24 @@
<li>
<a href="/developers/">Developers</a>
<ul>
<li><a href="/developers/architecture.html">Architecture</a></li>
<li><a href="/developers/frontend.html">Frontend development</a></li>
<li><a href="/developers/creating_components.html">
<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.html">
<li><a href="/developers/add_new_platform/">
Adding platform support
</a></li>
<li><a href="/developers/api.html">API</a></li>
<li><a href="/developers/credits.html">Credits</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>
@ -98,6 +93,7 @@
<article class="post">
<header>
<h1 class="title indent">Home Assistant goes geo with OwnTracks</h1>
@ -105,27 +101,9 @@
<div class="meta clearfix">
<time datetime="2015-10-05T21:49:00-07:00" pubdate data-updated="true"><i class="icon-calendar"></i> October 5, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<time datetime="2015-10-05T21:49:00-07:00" pubdate data-updated="true"><i class="icon-calendar"></i> October 5, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<span><i class='icon-time'></i> 1 minute reading time</span>
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -137,7 +115,6 @@
</ul>
</span>
<a class='comments'
href="#disqus_thread"
>Comments</a>
@ -147,54 +124,43 @@
</header>
<p>A few weeks have past and it is time again for another release: version 0.7.4. This time we&rsquo;re very
glad to be able to introduce brand new integration with OwnTracks to allow tracking of people on a map.
The geo support consists of three different parts:</p>
<p>A few weeks have past and it is time again for another release: version 0.7.4. This time were very glad to be able to introduce brand new integration with OwnTracks to allow tracking of people on a map. The geo support consists of three different parts:</p>
<ul>
<li><a href="/components/device_tracker.owntracks.html">OwnTracks platform for the device tracker</a> to get locations for devices</li>
<li>Brand new <a href="/components/zone.html">zone component</a> to define zones to identify locations and <a href="/components/automation.html#zone-trigger">trigger automation</a></li>
<li>A map in the UI to see all this (<a href="/demo/">see it in action in the demo</a>)</li>
<li><a href="/components/device_tracker.owntracks/">OwnTracks platform for the device tracker</a> to get locations for devices</li>
<li>Brand new <a href="/components/zone/">zone component</a> to define zones to identify locations and <a href="/components/automation/#zone-trigger">trigger automation</a></li>
<li>A map in the UI to see all this (<a href="/demo/">see it in action in the demo</a>)</li>
</ul>
<p>We have added a new <a href="/getting-started/presence-detection/">getting started section</a> to get up and running.</p>
<p>We have added a new <a href="/getting-started/presence-detection.html">getting started section</a> to get up and running.</p>
<p class='img'>
<img src='/images/screenshots/map.png' />
<p class="img">
<img src="/images/screenshots/map.png" />
Map in Home Assistant showing two people and three zones (home, school, work)
</p>
<p>Ofcourse more things happened in the last three weeks. Im moving away from my usual long post to a short summary of highlights:</p>
<p>Ofcourse more things happened in the last three weeks. I&rsquo;m moving away from my usual long post to a
short summary of highlights:</p>
<p><a href='/components/media_player.plex.html'>
<img src='/images/supported_brands/plex.png' style='border:none; box-shadow: none; float: right;' height='50' />
<p><a href="/components/media_player.plex/">
<img src="/images/supported_brands/plex.png" style="border:none; box-shadow: none; float: right;" height="50" />
</a></p>
<ul>
<li>Sensor: <a href="/components/sensor.rest.html">rest platform</a> added (<a href="https://github.com/fabaff">@fabaff</a>)</li>
<li>Alarm Control Panel: <a href="/components/alarm_control_panel.mqtt.html">MQTT platform</a> added (<a href="https://github.com/sfam">@sfam</a>)</li>
<li>Media Player: <a href="/components/media_player.plex.html">Plex platform</a> added (<a href="https://github.com/miniconfig,%20[@adrienbrault](https://github.com/adrienbrault">@miniconfig</a>)</li>
<li>Dev Tools: services can now show description of fields (<a href="https://github.com/balloob">@balloob</a>)</li>
<li>MQTT: Support for certificates and improved error reporting (<a href="https://github.com/balloob">@balloob</a>)</li>
<li>Light: <a href="/components/light.limitlessled.html">limitlessled platform</a> extended with white light support (<a href="https://github.com/auchter">@auchter</a>)</li>
<li>Fuzzy matching for scenes (<a href="https://github.com/pavoni">@pavoni</a>)</li>
<li>Scene support for media player (<a href="https://github.com/maddox">@maddox</a>)</li>
<li>Sensor: <a href="/components/sensor.rest/">rest platform</a> added (<a href="https://github.com/fabaff">@fabaff</a>)</li>
<li>Alarm Control Panel: <a href="/components/alarm_control_panel.mqtt/">MQTT platform</a> added (<a href="https://github.com/sfam">@sfam</a>)</li>
<li>Media Player: <a href="/components/media_player.plex/">Plex platform</a> added (<a href="https://github.com/miniconfig, [@adrienbrault](https://github.com/adrienbrault)">@miniconfig</a></li>
<li>Dev Tools: services can now show description of fields (<a href="https://github.com/balloob">@balloob</a>)</li>
<li>MQTT: Support for certificates and improved error reporting (<a href="https://github.com/balloob">@balloob</a>)</li>
<li>Light: <a href="/components/light.limitlessled/">limitlessled platform</a> extended with white light support (<a href="https://github.com/auchter">@auchter</a>)</li>
<li>Fuzzy matching for scenes (<a href="https://github.com/pavoni">@pavoni</a>)</li>
<li>Scene support for media player (<a href="https://github.com/maddox">@maddox</a>)</li>
</ul>
</article>
<section id="disqus">
<h3 class="indent title">Comments</h3>
<div id="disqus_thread" aria-live="polite"><noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
</div>
<div id="disqus_thread" aria-live="polite"><noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript></div>
</section>
@ -206,7 +172,6 @@ short summary of highlights:</p>
<section class="sharing aside-module grid__item one-whole lap-one-half">
<h1 class="title delta">Share this post</h1>
@ -284,7 +249,6 @@ short summary of highlights:</p>
</div>
</aside>
</div>
@ -295,30 +259,23 @@ short summary of highlights:</p>
<div class="grid">
<div class="grid__item">
<p class="copyright">
<span class="credit">Powered by <a href="http://octopress.org">Octopress</a>, <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>
<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>
<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>
<script>
var disqus_shortname = 'home-assistant';
@ -335,13 +292,5 @@ short summary of highlights:</p>
}());
</script>
</body>
</html>

View file

@ -5,8 +5,6 @@
<!--[if gt IE 8]><!--> <html> <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
@ -32,7 +30,6 @@
<link rel='icon' type='image/png' href='/images/favicon-192x192.png' sizes='192x192' />
</head>
<body >
<header>
@ -54,10 +51,10 @@
<a href="/getting-started/">Getting started</a>
<ul>
<li><a href='/getting-started/'>Installing Home Assistant</a></li>
<li><a href='/getting-started/configuration.html'>Configuration basics</a></li>
<li><a href='/getting-started/devices.html'>Adding devices</a></li>
<li><a href='/getting-started/presence-detection.html'>Presence detection</a></li>
<li><a href='/getting-started/automation.html'>Automation</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>
@ -65,26 +62,24 @@
<li>
<a href="/developers/">Developers</a>
<ul>
<li><a href="/developers/architecture.html">Architecture</a></li>
<li><a href="/developers/frontend.html">Frontend development</a></li>
<li><a href="/developers/creating_components.html">
<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.html">
<li><a href="/developers/add_new_platform/">
Adding platform support
</a></li>
<li><a href="/developers/api.html">API</a></li>
<li><a href="/developers/credits.html">Credits</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>
@ -98,6 +93,7 @@
<article class="post">
<header>
<h1 class="title indent">Report the temperature with ESP8266 to MQTT</h1>
@ -105,27 +101,9 @@
<div class="meta clearfix">
<time datetime="2015-10-11T12:10:00-07:00" pubdate data-updated="true"><i class="icon-calendar"></i> October 11, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<span><i class='icon-time'></i> nine minutes reading time</span>
<time datetime="2015-10-11T12:10:00-07:00" pubdate data-updated="true"><i class="icon-calendar"></i> October 11, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<span><i class='icon-time'></i> seven minutes reading time</span>
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -141,7 +119,6 @@
</ul>
</span>
<a class='comments'
href="#disqus_thread"
>Comments</a>
@ -152,389 +129,369 @@
<p>I recently learned about the ESP8266, a $5 chip that includes WiFi and is Arduino compatible. This means that all your DIY projects can now be done for a fraction of the price.</p>
<p>I recently learned about the ESP8266, a $5 chip that includes WiFi and is Arduino compatible. This means
that all your DIY projects can now be done for a fraction of the price.</p>
<p>For this tutorial, Ill walk through how to get going with ESP8266, get the temperature and humidity and report it to MQTT where Home Asssistant can pick it up.</p>
<p>For this tutorial, I&rsquo;ll walk through how to get going with ESP8266, get the temperature and humidity and
report it to MQTT where Home Asssistant can pick it up.</p>
<p class='img'>
<img src='/images/blog/2015-10-esp8266-temp/setup.png' />
<p class="img">
<img src="/images/blog/2015-10-esp8266-temp/setup.png" />
Picture of the final setup (+ 2 LED for decoration)
</p>
<p class='img'>
<img src='/images/blog/2015-10-esp8266-temp/ha-sensor.png' />
<p class="img">
<img src="/images/blog/2015-10-esp8266-temp/ha-sensor.png" />
Home Assistant will keep track of historical values and allow you to integrate it into automation.
</p>
<a name="read-more"></a>
<h3>Components</h3>
<p>I&rsquo;ve been using Adafruit for my shopping:</p>
<p>Ive been using Adafruit for my shopping:</p>
<ul>
<li><a href="http://www.adafruit.com/product/2471">Adafruit HUZZAH ESP8266 Breakout</a> (<a href="https://learn.adafruit.com/adafruit-huzzah-esp8266-breakout/assembly">assembly instructions</a>)</li>
<li><a href="http://www.adafruit.com/product/2635">Adafruit HDC1008 Temperature &amp; Humidity Sensor Breakout Board</a> (<a href="https://learn.adafruit.com/adafruit-hdc1008-temperature-and-humidity-sensor-breakout/assembly">assembly instructions</a>)</li>
<li><a href="/components/mqtt.html#picking-a-broker">MQTT server</a></li>
<li><a href="http://www.adafruit.com/product/2471">Adafruit HUZZAH ESP8266 Breakout</a> (<a href="https://learn.adafruit.com/adafruit-huzzah-esp8266-breakout/assembly">assembly instructions</a>)</li>
<li><a href="http://www.adafruit.com/product/2635">Adafruit HDC1008 Temperature &amp; Humidity Sensor Breakout Board</a> (<a href="https://learn.adafruit.com/adafruit-hdc1008-temperature-and-humidity-sensor-breakout/assembly">assembly instructions</a>)</li>
<li><a href="/components/mqtt/#picking-a-broker">MQTT server</a></li>
</ul>
<p><em>Besides this, you will need the usual hardware prototype equipment: a breadboard, some wires,
soldering iron + wire, Serial USB cable.</em></p>
<p><em>Besides this, you will need the usual hardware prototype equipment: a breadboard, some wires, soldering iron + wire, Serial USB cable.</em></p>
<h3>Connections</h3>
<p>On your breadboard, make the following connections from your ESP8266 to the HDC1008:</p>
<table>
<thead>
<tr>
<th> ESP8266 </th>
<th> HDC1008 </th>
</tr>
</thead>
<tbody>
<tr>
<td> GND </td>
<td> GND</td>
</tr>
<tr>
<td> 3V </td>
<td> Vin</td>
</tr>
<tr>
<td> 14 </td>
<td> SCL</td>
</tr>
<tr>
<td> #2 </td>
<td> SDA</td>
</tr>
</tbody>
<thead>
<tr>
<th>ESP8266</th>
<th>HDC1008</th>
</tr>
</thead>
<tbody>
<tr>
<td>GND</td>
<td>GND</td>
</tr>
<tr>
<td>3V</td>
<td>Vin</td>
</tr>
<tr>
<td>14</td>
<td>SCL</td>
</tr>
<tr>
<td>#2</td>
<td>SDA</td>
</tr>
</tbody>
</table>
<p><em>I picked <code>#2</code> and <code>14</code> myself, you can configure them in the sketch.</em></p>
<h3>Preparing your IDE</h3>
<p>Follow <a href="https://github.com/esp8266/Arduino#installing-with-boards-manager">these instructions</a> on how
to install and prepare the Arduino IDE for ESP8266 development.</p>
<p>Follow <a href="https://github.com/esp8266/Arduino#installing-with-boards-manager">these instructions</a> on how to install and prepare the Arduino IDE for ESP8266 development.</p>
<p>After you&rsquo;re done installing, open the Arduino IDE, in the menu click on <code>sketch</code> -> <code>include library</code> ->
<code>manage libraries</code> and install the following libraries:</p>
<p>After youre done installing, open the Arduino IDE, in the menu click on <code>sketch</code> -&gt; <code>include library</code> -&gt; <code>manage libraries</code> and install the following libraries:</p>
<ul>
<li>PubSubClient by Nick &lsquo;O Leary</li>
<li>Adafruit HDC1000</li>
<li>PubSubClient by Nick O Leary</li>
<li>Adafruit HDC1000</li>
</ul>
<h3>Sketch</h3>
<p>If you have followed the previous steps, you&rsquo;re all set.</p>
<p>If you have followed the previous steps, youre all set.</p>
<ul>
<li>Open Arduino IDE and create a new sketch (<code>File</code> -> <code>New</code>)</li>
<li>Copy and paste the below sketch to the Arduino IDE</li>
<li>Adjust the values line 6 - 14 to match your setup</li>
<li>Optional: If you want to connect to an MQTT server without a username or password, adjust line 63.</li>
<li>To have the ESP8266 accept our new sketch, we have to put it in upload mode. On the ESP8266 device
keep the GPIO0 button pressed while pressing the reset button. The red led will glow half bright to
indicate it is in upload mode.</li>
<li>Press the upload button in Arduino IDE</li>
<li>Open the serial monitor (<code>Tools</code> -> <code>Serial Monitor</code>) to see the output from your device</li>
<li>Open Arduino IDE and create a new sketch (<code>File</code> -&gt; <code>New</code>)</li>
<li>Copy and paste the below sketch to the Arduino IDE</li>
<li>Adjust the values line 6 - 14 to match your setup</li>
<li>Optional: If you want to connect to an MQTT server without a username or password, adjust line 63.</li>
<li>To have the ESP8266 accept our new sketch, we have to put it in upload mode. On the ESP8266 device keep the GPIO0 button pressed while pressing the reset button. The red led will glow half bright to indicate it is in upload mode.</li>
<li>Press the upload button in Arduino IDE</li>
<li>Open the serial monitor (<code>Tools</code> -&gt; <code>Serial Monitor</code>) to see the output from your device</li>
</ul>
<p>This sketch will connect to your WiFi network and MQTT broker. It will read the temperature and humidity from the sensor every second. It will report it to the MQTT server if the difference is &gt; 1 since last reported value. Reports to the MQTT broker are sent with retain set to <code>True</code>. This means that anyone connecting to the MQTT topic will automatically be notified of the last reported value.</p>
<p>This sketch will connect to your WiFi network and MQTT broker. It will read the temperature and humidity
from the sensor every second. It will report it to the MQTT server if the difference is > 1 since last
reported value. Reports to the MQTT broker are sent with retain set to <code>True</code>. This means that anyone
connecting to the MQTT topic will automatically be notified of the last reported value.</p>
<div class="highlighter-coderay"><table class="CodeRay"><tr>
<td class="line-numbers"><pre><a href="#n1" name="n1">1</a>
<a href="#n2" name="n2">2</a>
<a href="#n3" name="n3">3</a>
<a href="#n4" name="n4">4</a>
<a href="#n5" name="n5">5</a>
<a href="#n6" name="n6">6</a>
<a href="#n7" name="n7">7</a>
<a href="#n8" name="n8">8</a>
<a href="#n9" name="n9">9</a>
<strong><a href="#n10" name="n10">10</a></strong>
<a href="#n11" name="n11">11</a>
<a href="#n12" name="n12">12</a>
<a href="#n13" name="n13">13</a>
<a href="#n14" name="n14">14</a>
<a href="#n15" name="n15">15</a>
<a href="#n16" name="n16">16</a>
<a href="#n17" name="n17">17</a>
<a href="#n18" name="n18">18</a>
<a href="#n19" name="n19">19</a>
<strong><a href="#n20" name="n20">20</a></strong>
<a href="#n21" name="n21">21</a>
<a href="#n22" name="n22">22</a>
<a href="#n23" name="n23">23</a>
<a href="#n24" name="n24">24</a>
<a href="#n25" name="n25">25</a>
<a href="#n26" name="n26">26</a>
<a href="#n27" name="n27">27</a>
<a href="#n28" name="n28">28</a>
<a href="#n29" name="n29">29</a>
<strong><a href="#n30" name="n30">30</a></strong>
<a href="#n31" name="n31">31</a>
<a href="#n32" name="n32">32</a>
<a href="#n33" name="n33">33</a>
<a href="#n34" name="n34">34</a>
<a href="#n35" name="n35">35</a>
<a href="#n36" name="n36">36</a>
<a href="#n37" name="n37">37</a>
<a href="#n38" name="n38">38</a>
<a href="#n39" name="n39">39</a>
<strong><a href="#n40" name="n40">40</a></strong>
<a href="#n41" name="n41">41</a>
<a href="#n42" name="n42">42</a>
<a href="#n43" name="n43">43</a>
<a href="#n44" name="n44">44</a>
<a href="#n45" name="n45">45</a>
<a href="#n46" name="n46">46</a>
<a href="#n47" name="n47">47</a>
<a href="#n48" name="n48">48</a>
<a href="#n49" name="n49">49</a>
<strong><a href="#n50" name="n50">50</a></strong>
<a href="#n51" name="n51">51</a>
<a href="#n52" name="n52">52</a>
<a href="#n53" name="n53">53</a>
<a href="#n54" name="n54">54</a>
<a href="#n55" name="n55">55</a>
<a href="#n56" name="n56">56</a>
<a href="#n57" name="n57">57</a>
<a href="#n58" name="n58">58</a>
<a href="#n59" name="n59">59</a>
<strong><a href="#n60" name="n60">60</a></strong>
<a href="#n61" name="n61">61</a>
<a href="#n62" name="n62">62</a>
<a href="#n63" name="n63">63</a>
<a href="#n64" name="n64">64</a>
<a href="#n65" name="n65">65</a>
<a href="#n66" name="n66">66</a>
<a href="#n67" name="n67">67</a>
<a href="#n68" name="n68">68</a>
<a href="#n69" name="n69">69</a>
<strong><a href="#n70" name="n70">70</a></strong>
<a href="#n71" name="n71">71</a>
<a href="#n72" name="n72">72</a>
<a href="#n73" name="n73">73</a>
<a href="#n74" name="n74">74</a>
<a href="#n75" name="n75">75</a>
<a href="#n76" name="n76">76</a>
<a href="#n77" name="n77">77</a>
<a href="#n78" name="n78">78</a>
<a href="#n79" name="n79">79</a>
<strong><a href="#n80" name="n80">80</a></strong>
<a href="#n81" name="n81">81</a>
<a href="#n82" name="n82">82</a>
<a href="#n83" name="n83">83</a>
<a href="#n84" name="n84">84</a>
<a href="#n85" name="n85">85</a>
<a href="#n86" name="n86">86</a>
<a href="#n87" name="n87">87</a>
<a href="#n88" name="n88">88</a>
<a href="#n89" name="n89">89</a>
<strong><a href="#n90" name="n90">90</a></strong>
<a href="#n91" name="n91">91</a>
<a href="#n92" name="n92">92</a>
<a href="#n93" name="n93">93</a>
<a href="#n94" name="n94">94</a>
<a href="#n95" name="n95">95</a>
<a href="#n96" name="n96">96</a>
<a href="#n97" name="n97">97</a>
<a href="#n98" name="n98">98</a>
<a href="#n99" name="n99">99</a>
<strong><a href="#n100" name="n100">100</a></strong>
<a href="#n101" name="n101">101</a>
<a href="#n102" name="n102">102</a>
<a href="#n103" name="n103">103</a>
<a href="#n104" name="n104">104</a>
<a href="#n105" name="n105">105</a>
<a href="#n106" name="n106">106</a>
<a href="#n107" name="n107">107</a>
<a href="#n108" name="n108">108</a>
<a href="#n109" name="n109">109</a>
</pre></td>
<td class="code"><pre><span class="preprocessor">#include</span> <span class="include">&lt;ESP8266WiFi.h&gt;</span>
<span class="preprocessor">#include</span> <span class="include">&lt;Wire.h&gt;</span>
<span class="preprocessor">#include</span> <span class="include">&lt;PubSubClient.h&gt;</span>
<span class="preprocessor">#include</span> <span class="include">&lt;Adafruit_HDC1000.h&gt;</span>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
<span class='line-number'>12</span>
<span class='line-number'>13</span>
<span class='line-number'>14</span>
<span class='line-number'>15</span>
<span class='line-number'>16</span>
<span class='line-number'>17</span>
<span class='line-number'>18</span>
<span class='line-number'>19</span>
<span class='line-number'>20</span>
<span class='line-number'>21</span>
<span class='line-number'>22</span>
<span class='line-number'>23</span>
<span class='line-number'>24</span>
<span class='line-number'>25</span>
<span class='line-number'>26</span>
<span class='line-number'>27</span>
<span class='line-number'>28</span>
<span class='line-number'>29</span>
<span class='line-number'>30</span>
<span class='line-number'>31</span>
<span class='line-number'>32</span>
<span class='line-number'>33</span>
<span class='line-number'>34</span>
<span class='line-number'>35</span>
<span class='line-number'>36</span>
<span class='line-number'>37</span>
<span class='line-number'>38</span>
<span class='line-number'>39</span>
<span class='line-number'>40</span>
<span class='line-number'>41</span>
<span class='line-number'>42</span>
<span class='line-number'>43</span>
<span class='line-number'>44</span>
<span class='line-number'>45</span>
<span class='line-number'>46</span>
<span class='line-number'>47</span>
<span class='line-number'>48</span>
<span class='line-number'>49</span>
<span class='line-number'>50</span>
<span class='line-number'>51</span>
<span class='line-number'>52</span>
<span class='line-number'>53</span>
<span class='line-number'>54</span>
<span class='line-number'>55</span>
<span class='line-number'>56</span>
<span class='line-number'>57</span>
<span class='line-number'>58</span>
<span class='line-number'>59</span>
<span class='line-number'>60</span>
<span class='line-number'>61</span>
<span class='line-number'>62</span>
<span class='line-number'>63</span>
<span class='line-number'>64</span>
<span class='line-number'>65</span>
<span class='line-number'>66</span>
<span class='line-number'>67</span>
<span class='line-number'>68</span>
<span class='line-number'>69</span>
<span class='line-number'>70</span>
<span class='line-number'>71</span>
<span class='line-number'>72</span>
<span class='line-number'>73</span>
<span class='line-number'>74</span>
<span class='line-number'>75</span>
<span class='line-number'>76</span>
<span class='line-number'>77</span>
<span class='line-number'>78</span>
<span class='line-number'>79</span>
<span class='line-number'>80</span>
<span class='line-number'>81</span>
<span class='line-number'>82</span>
<span class='line-number'>83</span>
<span class='line-number'>84</span>
<span class='line-number'>85</span>
<span class='line-number'>86</span>
<span class='line-number'>87</span>
<span class='line-number'>88</span>
<span class='line-number'>89</span>
<span class='line-number'>90</span>
<span class='line-number'>91</span>
<span class='line-number'>92</span>
<span class='line-number'>93</span>
<span class='line-number'>94</span>
<span class='line-number'>95</span>
<span class='line-number'>96</span>
<span class='line-number'>97</span>
<span class='line-number'>98</span>
<span class='line-number'>99</span>
<span class='line-number'>100</span>
<span class='line-number'>101</span>
<span class='line-number'>102</span>
<span class='line-number'>103</span>
<span class='line-number'>104</span>
<span class='line-number'>105</span>
<span class='line-number'>106</span>
<span class='line-number'>107</span>
<span class='line-number'>108</span>
<span class='line-number'>109</span>
</pre></td><td class='code'><pre><code class='cpp'><span class='line'><span class="cp">#include &lt;ESP8266WiFi.h&gt;</span>
</span><span class='line'><span class="cp">#include &lt;Wire.h&gt;</span>
</span><span class='line'><span class="cp">#include &lt;PubSubClient.h&gt;</span>
</span><span class='line'><span class="cp">#include &lt;Adafruit_HDC1000.h&gt;</span>
</span><span class='line'>
</span><span class='line'><span class="cp">#define wifi_ssid &quot;YOUR WIFI SSID&quot;</span>
</span><span class='line'><span class="cp">#define wifi_password &quot;WIFI PASSWORD&quot;</span>
</span><span class='line'>
</span><span class='line'><span class="cp">#define mqtt_server &quot;YOUR_MQTT_SERVER_HOST&quot;</span>
</span><span class='line'><span class="cp">#define mqtt_user &quot;your_username&quot;</span>
</span><span class='line'><span class="cp">#define mqtt_password &quot;your_password&quot;</span>
</span><span class='line'>
</span><span class='line'><span class="cp">#define humidity_topic &quot;sensor/humidity&quot;</span>
</span><span class='line'><span class="cp">#define temperature_topic &quot;sensor/temperature&quot;</span>
</span><span class='line'>
</span><span class='line'><span class="n">WiFiClient</span> <span class="n">espClient</span><span class="p">;</span>
</span><span class='line'><span class="n">PubSubClient</span> <span class="nf">client</span><span class="p">(</span><span class="n">espClient</span><span class="p">);</span>
</span><span class='line'><span class="n">Adafruit_HDC1000</span> <span class="n">hdc</span> <span class="o">=</span> <span class="n">Adafruit_HDC1000</span><span class="p">();</span>
</span><span class='line'>
</span><span class='line'><span class="kt">void</span> <span class="nf">setup</span><span class="p">()</span> <span class="p">{</span>
</span><span class='line'> <span class="n">Serial</span><span class="p">.</span><span class="n">begin</span><span class="p">(</span><span class="mi">115200</span><span class="p">);</span>
</span><span class='line'> <span class="n">setup_wifi</span><span class="p">();</span>
</span><span class='line'> <span class="n">client</span><span class="p">.</span><span class="n">setServer</span><span class="p">(</span><span class="n">mqtt_server</span><span class="p">,</span> <span class="mi">1883</span><span class="p">);</span>
</span><span class='line'>
</span><span class='line'> <span class="c1">// Set SDA and SDL ports</span>
</span><span class='line'> <span class="n">Wire</span><span class="p">.</span><span class="n">begin</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">14</span><span class="p">);</span>
</span><span class='line'>
</span><span class='line'> <span class="c1">// Start sensor</span>
</span><span class='line'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="n">hdc</span><span class="p">.</span><span class="n">begin</span><span class="p">())</span> <span class="p">{</span>
</span><span class='line'> <span class="n">Serial</span><span class="p">.</span><span class="n">println</span><span class="p">(</span><span class="s">&quot;Couldn&#39;t find sensor!&quot;</span><span class="p">);</span>
</span><span class='line'> <span class="k">while</span> <span class="p">(</span><span class="mi">1</span><span class="p">);</span>
</span><span class='line'> <span class="p">}}</span>
</span><span class='line'>
</span><span class='line'><span class="kt">void</span> <span class="nf">setup_wifi</span><span class="p">()</span> <span class="p">{</span>
</span><span class='line'> <span class="n">delay</span><span class="p">(</span><span class="mi">10</span><span class="p">);</span>
</span><span class='line'> <span class="c1">// We start by connecting to a WiFi network</span>
</span><span class='line'> <span class="n">Serial</span><span class="p">.</span><span class="n">println</span><span class="p">();</span>
</span><span class='line'> <span class="n">Serial</span><span class="p">.</span><span class="n">print</span><span class="p">(</span><span class="s">&quot;Connecting to &quot;</span><span class="p">);</span>
</span><span class='line'> <span class="n">Serial</span><span class="p">.</span><span class="n">println</span><span class="p">(</span><span class="n">wifi_ssid</span><span class="p">);</span>
</span><span class='line'>
</span><span class='line'> <span class="n">WiFi</span><span class="p">.</span><span class="n">begin</span><span class="p">(</span><span class="n">wifi_ssid</span><span class="p">,</span> <span class="n">wifi_password</span><span class="p">);</span>
</span><span class='line'>
</span><span class='line'> <span class="k">while</span> <span class="p">(</span><span class="n">WiFi</span><span class="p">.</span><span class="n">status</span><span class="p">()</span> <span class="o">!=</span> <span class="n">WL_CONNECTED</span><span class="p">)</span> <span class="p">{</span>
</span><span class='line'> <span class="n">delay</span><span class="p">(</span><span class="mi">500</span><span class="p">);</span>
</span><span class='line'> <span class="n">Serial</span><span class="p">.</span><span class="n">print</span><span class="p">(</span><span class="s">&quot;.&quot;</span><span class="p">);</span>
</span><span class='line'> <span class="p">}</span>
</span><span class='line'>
</span><span class='line'> <span class="n">Serial</span><span class="p">.</span><span class="n">println</span><span class="p">(</span><span class="s">&quot;&quot;</span><span class="p">);</span>
</span><span class='line'> <span class="n">Serial</span><span class="p">.</span><span class="n">println</span><span class="p">(</span><span class="s">&quot;WiFi connected&quot;</span><span class="p">);</span>
</span><span class='line'> <span class="n">Serial</span><span class="p">.</span><span class="n">println</span><span class="p">(</span><span class="s">&quot;IP address: &quot;</span><span class="p">);</span>
</span><span class='line'> <span class="n">Serial</span><span class="p">.</span><span class="n">println</span><span class="p">(</span><span class="n">WiFi</span><span class="p">.</span><span class="n">localIP</span><span class="p">());</span>
</span><span class='line'><span class="p">}</span>
</span><span class='line'>
</span><span class='line'><span class="kt">void</span> <span class="nf">reconnect</span><span class="p">()</span> <span class="p">{</span>
</span><span class='line'> <span class="c1">// Loop until we&#39;re reconnected</span>
</span><span class='line'> <span class="k">while</span> <span class="p">(</span><span class="o">!</span><span class="n">client</span><span class="p">.</span><span class="n">connected</span><span class="p">())</span> <span class="p">{</span>
</span><span class='line'> <span class="n">Serial</span><span class="p">.</span><span class="n">print</span><span class="p">(</span><span class="s">&quot;Attempting MQTT connection...&quot;</span><span class="p">);</span>
</span><span class='line'> <span class="c1">// Attempt to connect</span>
</span><span class='line'> <span class="c1">// If you do not want to use a username and password, change next line to</span>
</span><span class='line'> <span class="c1">// if (client.connect(&quot;ESP8266Client&quot;)) {</span>
</span><span class='line'> <span class="k">if</span> <span class="p">(</span><span class="n">client</span><span class="p">.</span><span class="n">connect</span><span class="p">(</span><span class="s">&quot;ESP8266Client&quot;</span><span class="p">,</span> <span class="n">mqtt_user</span><span class="p">,</span> <span class="n">mqtt_password</span><span class="p">))</span> <span class="p">{</span>
</span><span class='line'> <span class="n">Serial</span><span class="p">.</span><span class="n">println</span><span class="p">(</span><span class="s">&quot;connected&quot;</span><span class="p">);</span>
</span><span class='line'> <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
</span><span class='line'> <span class="n">Serial</span><span class="p">.</span><span class="n">print</span><span class="p">(</span><span class="s">&quot;failed, rc=&quot;</span><span class="p">);</span>
</span><span class='line'> <span class="n">Serial</span><span class="p">.</span><span class="n">print</span><span class="p">(</span><span class="n">client</span><span class="p">.</span><span class="n">state</span><span class="p">());</span>
</span><span class='line'> <span class="n">Serial</span><span class="p">.</span><span class="n">println</span><span class="p">(</span><span class="s">&quot; try again in 5 seconds&quot;</span><span class="p">);</span>
</span><span class='line'> <span class="c1">// Wait 5 seconds before retrying</span>
</span><span class='line'> <span class="n">delay</span><span class="p">(</span><span class="mi">5000</span><span class="p">);</span>
</span><span class='line'> <span class="p">}</span>
</span><span class='line'> <span class="p">}</span>
</span><span class='line'><span class="p">}</span>
</span><span class='line'>
</span><span class='line'><span class="kt">bool</span> <span class="nf">checkBound</span><span class="p">(</span><span class="kt">float</span> <span class="n">newValue</span><span class="p">,</span> <span class="kt">float</span> <span class="n">prevValue</span><span class="p">,</span> <span class="kt">float</span> <span class="n">maxDiff</span><span class="p">)</span> <span class="p">{</span>
</span><span class='line'> <span class="k">return</span> <span class="n">newValue</span> <span class="o">&lt;</span> <span class="n">prevValue</span> <span class="o">-</span> <span class="n">maxDiff</span> <span class="o">||</span> <span class="n">newValue</span> <span class="o">&gt;</span> <span class="n">prevValue</span> <span class="o">+</span> <span class="n">maxDiff</span><span class="p">;</span>
</span><span class='line'><span class="p">}</span>
</span><span class='line'>
</span><span class='line'><span class="kt">long</span> <span class="n">lastMsg</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
</span><span class='line'><span class="kt">float</span> <span class="n">temp</span> <span class="o">=</span> <span class="mf">0.0</span><span class="p">;</span>
</span><span class='line'><span class="kt">float</span> <span class="n">hum</span> <span class="o">=</span> <span class="mf">0.0</span><span class="p">;</span>
</span><span class='line'><span class="kt">float</span> <span class="n">diff</span> <span class="o">=</span> <span class="mf">1.0</span><span class="p">;</span>
</span><span class='line'>
</span><span class='line'><span class="kt">void</span> <span class="nf">loop</span><span class="p">()</span> <span class="p">{</span>
</span><span class='line'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="n">client</span><span class="p">.</span><span class="n">connected</span><span class="p">())</span> <span class="p">{</span>
</span><span class='line'> <span class="n">reconnect</span><span class="p">();</span>
</span><span class='line'> <span class="p">}</span>
</span><span class='line'> <span class="n">client</span><span class="p">.</span><span class="n">loop</span><span class="p">();</span>
</span><span class='line'>
</span><span class='line'> <span class="kt">long</span> <span class="n">now</span> <span class="o">=</span> <span class="n">millis</span><span class="p">();</span>
</span><span class='line'> <span class="k">if</span> <span class="p">(</span><span class="n">now</span> <span class="o">-</span> <span class="n">lastMsg</span> <span class="o">&gt;</span> <span class="mi">1000</span><span class="p">)</span> <span class="p">{</span>
</span><span class='line'> <span class="n">lastMsg</span> <span class="o">=</span> <span class="n">now</span><span class="p">;</span>
</span><span class='line'>
</span><span class='line'> <span class="kt">float</span> <span class="n">newTemp</span> <span class="o">=</span> <span class="n">hdc</span><span class="p">.</span><span class="n">readTemperature</span><span class="p">();</span>
</span><span class='line'> <span class="kt">float</span> <span class="n">newHum</span> <span class="o">=</span> <span class="n">hdc</span><span class="p">.</span><span class="n">readHumidity</span><span class="p">();</span>
</span><span class='line'>
</span><span class='line'> <span class="k">if</span> <span class="p">(</span><span class="n">checkBound</span><span class="p">(</span><span class="n">newTemp</span><span class="p">,</span> <span class="n">temp</span><span class="p">,</span> <span class="n">diff</span><span class="p">))</span> <span class="p">{</span>
</span><span class='line'> <span class="n">temp</span> <span class="o">=</span> <span class="n">newTemp</span><span class="p">;</span>
</span><span class='line'> <span class="n">Serial</span><span class="p">.</span><span class="n">print</span><span class="p">(</span><span class="s">&quot;New temperature:&quot;</span><span class="p">);</span>
</span><span class='line'> <span class="n">Serial</span><span class="p">.</span><span class="n">println</span><span class="p">(</span><span class="n">String</span><span class="p">(</span><span class="n">temp</span><span class="p">).</span><span class="n">c_str</span><span class="p">());</span>
</span><span class='line'> <span class="n">client</span><span class="p">.</span><span class="n">publish</span><span class="p">(</span><span class="n">temperature_topic</span><span class="p">,</span> <span class="n">String</span><span class="p">(</span><span class="n">temp</span><span class="p">).</span><span class="n">c_str</span><span class="p">(),</span> <span class="nb">true</span><span class="p">);</span>
</span><span class='line'> <span class="p">}</span>
</span><span class='line'>
</span><span class='line'> <span class="k">if</span> <span class="p">(</span><span class="n">checkBound</span><span class="p">(</span><span class="n">newHum</span><span class="p">,</span> <span class="n">hum</span><span class="p">,</span> <span class="n">diff</span><span class="p">))</span> <span class="p">{</span>
</span><span class='line'> <span class="n">hum</span> <span class="o">=</span> <span class="n">newHum</span><span class="p">;</span>
</span><span class='line'> <span class="n">Serial</span><span class="p">.</span><span class="n">print</span><span class="p">(</span><span class="s">&quot;New humidity:&quot;</span><span class="p">);</span>
</span><span class='line'> <span class="n">Serial</span><span class="p">.</span><span class="n">println</span><span class="p">(</span><span class="n">String</span><span class="p">(</span><span class="n">hum</span><span class="p">).</span><span class="n">c_str</span><span class="p">());</span>
</span><span class='line'> <span class="n">client</span><span class="p">.</span><span class="n">publish</span><span class="p">(</span><span class="n">humidity_topic</span><span class="p">,</span> <span class="n">String</span><span class="p">(</span><span class="n">hum</span><span class="p">).</span><span class="n">c_str</span><span class="p">(),</span> <span class="nb">true</span><span class="p">);</span>
</span><span class='line'> <span class="p">}</span>
</span><span class='line'> <span class="p">}</span>
</span><span class='line'><span class="p">}</span>
</span></code></pre></td></tr></table></div></figure>
<span class="preprocessor">#define</span> wifi_ssid <span class="string"><span class="delimiter">&quot;</span><span class="content">YOUR WIFI SSID</span><span class="delimiter">&quot;</span></span>
<span class="preprocessor">#define</span> wifi_password <span class="string"><span class="delimiter">&quot;</span><span class="content">WIFI PASSWORD</span><span class="delimiter">&quot;</span></span>
<span class="preprocessor">#define</span> mqtt_server <span class="string"><span class="delimiter">&quot;</span><span class="content">YOUR_MQTT_SERVER_HOST</span><span class="delimiter">&quot;</span></span>
<span class="preprocessor">#define</span> mqtt_user <span class="string"><span class="delimiter">&quot;</span><span class="content">your_username</span><span class="delimiter">&quot;</span></span>
<span class="preprocessor">#define</span> mqtt_password <span class="string"><span class="delimiter">&quot;</span><span class="content">your_password</span><span class="delimiter">&quot;</span></span>
<span class="preprocessor">#define</span> humidity_topic <span class="string"><span class="delimiter">&quot;</span><span class="content">sensor/humidity</span><span class="delimiter">&quot;</span></span>
<span class="preprocessor">#define</span> temperature_topic <span class="string"><span class="delimiter">&quot;</span><span class="content">sensor/temperature</span><span class="delimiter">&quot;</span></span>
WiFiClient espClient;
PubSubClient client(espClient);
Adafruit_HDC1000 hdc = Adafruit_HDC1000();
<span class="directive">void</span> setup() {
Serial.begin(<span class="integer">115200</span>);
setup_wifi();
client.setServer(mqtt_server, <span class="integer">1883</span>);
<span class="comment">// Set SDA and SDL ports</span>
Wire.begin(<span class="integer">2</span>, <span class="integer">14</span>);
<span class="comment">// Start sensor</span>
<span class="keyword">if</span> (!hdc.begin()) {
Serial.println(<span class="string"><span class="delimiter">&quot;</span><span class="content">Couldn't find sensor!</span><span class="delimiter">&quot;</span></span>);
<span class="keyword">while</span> (<span class="integer">1</span>);
}}
<span class="directive">void</span> setup_wifi() {
delay(<span class="integer">10</span>);
<span class="comment">// We start by connecting to a WiFi network</span>
Serial.println();
Serial.print(<span class="string"><span class="delimiter">&quot;</span><span class="content">Connecting to </span><span class="delimiter">&quot;</span></span>);
Serial.println(wifi_ssid);
WiFi.begin(wifi_ssid, wifi_password);
<span class="keyword">while</span> (WiFi.status() != WL_CONNECTED) {
delay(<span class="integer">500</span>);
Serial.print(<span class="string"><span class="delimiter">&quot;</span><span class="content">.</span><span class="delimiter">&quot;</span></span>);
}
Serial.println(<span class="string"><span class="delimiter">&quot;</span><span class="delimiter">&quot;</span></span>);
Serial.println(<span class="string"><span class="delimiter">&quot;</span><span class="content">WiFi connected</span><span class="delimiter">&quot;</span></span>);
Serial.println(<span class="string"><span class="delimiter">&quot;</span><span class="content">IP address: </span><span class="delimiter">&quot;</span></span>);
Serial.println(WiFi.localIP());
}
<span class="directive">void</span> reconnect() {
<span class="comment">// Loop until we're reconnected</span>
<span class="keyword">while</span> (!client.connected()) {
Serial.print(<span class="string"><span class="delimiter">&quot;</span><span class="content">Attempting MQTT connection...</span><span class="delimiter">&quot;</span></span>);
<span class="comment">// Attempt to connect</span>
<span class="comment">// If you do not want to use a username and password, change next line to</span>
<span class="comment">// if (client.connect(&quot;ESP8266Client&quot;)) {</span>
<span class="keyword">if</span> (client.connect(<span class="string"><span class="delimiter">&quot;</span><span class="content">ESP8266Client</span><span class="delimiter">&quot;</span></span>, mqtt_user, mqtt_password)) {
Serial.println(<span class="string"><span class="delimiter">&quot;</span><span class="content">connected</span><span class="delimiter">&quot;</span></span>);
} <span class="keyword">else</span> {
Serial.print(<span class="string"><span class="delimiter">&quot;</span><span class="content">failed, rc=</span><span class="delimiter">&quot;</span></span>);
Serial.print(client.state());
Serial.println(<span class="string"><span class="delimiter">&quot;</span><span class="content"> try again in 5 seconds</span><span class="delimiter">&quot;</span></span>);
<span class="comment">// Wait 5 seconds before retrying</span>
delay(<span class="integer">5000</span>);
}
}
}
<span class="predefined-type">bool</span> checkBound(<span class="predefined-type">float</span> newValue, <span class="predefined-type">float</span> prevValue, <span class="predefined-type">float</span> maxDiff) {
<span class="keyword">return</span> newValue &lt; prevValue - maxDiff || newValue &gt; prevValue + maxDiff;
}
<span class="predefined-type">long</span> lastMsg = <span class="integer">0</span>;
<span class="predefined-type">float</span> temp = <span class="float">0</span><span class="float">.0</span>;
<span class="predefined-type">float</span> hum = <span class="float">0</span><span class="float">.0</span>;
<span class="predefined-type">float</span> diff = <span class="float">1</span><span class="float">.0</span>;
<span class="directive">void</span> loop() {
<span class="keyword">if</span> (!client.connected()) {
reconnect();
}
client.loop();
<span class="predefined-type">long</span> now = millis();
<span class="keyword">if</span> (now - lastMsg &gt; <span class="integer">1000</span>) {
lastMsg = now;
<span class="predefined-type">float</span> newTemp = hdc.readTemperature();
<span class="predefined-type">float</span> newHum = hdc.readHumidity();
<span class="keyword">if</span> (checkBound(newTemp, temp, diff)) {
temp = newTemp;
Serial.print(<span class="string"><span class="delimiter">&quot;</span><span class="content">New temperature:</span><span class="delimiter">&quot;</span></span>);
Serial.println(String(temp).c_str());
client.publish(temperature_topic, String(temp).c_str(), <span class="predefined-constant">true</span>);
}
<span class="keyword">if</span> (checkBound(newHum, hum, diff)) {
hum = newHum;
Serial.print(<span class="string"><span class="delimiter">&quot;</span><span class="content">New humidity:</span><span class="delimiter">&quot;</span></span>);
Serial.println(String(hum).c_str());
client.publish(humidity_topic, String(hum).c_str(), <span class="predefined-constant">true</span>);
}
}
}
</pre></td>
</tr></table>
</div>
<h3>Configuring Home Assistant</h3>
<p>The last step is to integrate the sensor values into Home Assistant. This can be done by setting up
Home Assistant to connect to the MQTT broker and subscribe to the sensor topics.</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
<span class='line-number'>12</span>
<span class='line-number'>13</span>
<span class='line-number'>14</span>
<span class='line-number'>15</span>
<span class='line-number'>16</span>
<span class='line-number'>17</span>
<span class='line-number'>18</span>
</pre></td><td class='code'><pre><code class='yaml'><span class='line'><span class="l-Scalar-Plain">mqtt</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">broker</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">YOUR_MQTT_SERVER_HOST</span>
</span><span class='line'> <span class="l-Scalar-Plain">username</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">your_username</span>
</span><span class='line'> <span class="l-Scalar-Plain">password</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">your_password</span>
</span><span class='line'>
</span><span class='line'><span class="l-Scalar-Plain">sensor</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">platform</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">mqtt</span>
</span><span class='line'> <span class="l-Scalar-Plain">name</span><span class="p-Indicator">:</span> <span class="s">&quot;Temperature&quot;</span>
</span><span class='line'> <span class="l-Scalar-Plain">state_topic</span><span class="p-Indicator">:</span> <span class="s">&quot;sensor/temperature&quot;</span>
</span><span class='line'> <span class="l-Scalar-Plain">qos</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">0</span>
</span><span class='line'> <span class="l-Scalar-Plain">unit_of_measurement</span><span class="p-Indicator">:</span> <span class="s">&quot;ºC&quot;</span>
</span><span class='line'>
</span><span class='line'><span class="l-Scalar-Plain">sensor 2</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">platform</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">mqtt</span>
</span><span class='line'> <span class="l-Scalar-Plain">name</span><span class="p-Indicator">:</span> <span class="s">&quot;Humidity&quot;</span>
</span><span class='line'> <span class="l-Scalar-Plain">state_topic</span><span class="p-Indicator">:</span> <span class="s">&quot;sensor/humidity&quot;</span>
</span><span class='line'> <span class="l-Scalar-Plain">qos</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">0</span>
</span><span class='line'> <span class="l-Scalar-Plain">unit_of_measurement</span><span class="p-Indicator">:</span> <span class="s">&quot;%&quot;</span>
</span></code></pre></td></tr></table></div></figure>
<p>The last step is to integrate the sensor values into Home Assistant. This can be done by setting up Home Assistant to connect to the MQTT broker and subscribe to the sensor topics.</p>
<div class="highlighter-coderay"><table class="CodeRay"><tr>
<td class="line-numbers"><pre><a href="#n1" name="n1">1</a>
<a href="#n2" name="n2">2</a>
<a href="#n3" name="n3">3</a>
<a href="#n4" name="n4">4</a>
<a href="#n5" name="n5">5</a>
<a href="#n6" name="n6">6</a>
<a href="#n7" name="n7">7</a>
<a href="#n8" name="n8">8</a>
<a href="#n9" name="n9">9</a>
<strong><a href="#n10" name="n10">10</a></strong>
<a href="#n11" name="n11">11</a>
<a href="#n12" name="n12">12</a>
<a href="#n13" name="n13">13</a>
<a href="#n14" name="n14">14</a>
<a href="#n15" name="n15">15</a>
<a href="#n16" name="n16">16</a>
<a href="#n17" name="n17">17</a>
<a href="#n18" name="n18">18</a>
</pre></td>
<td class="code"><pre><span class="key">mqtt</span>:
<span class="key">broker</span>: <span class="string"><span class="content">YOUR_MQTT_SERVER_HOST</span></span>
<span class="key">username</span>: <span class="string"><span class="content">your_username</span></span>
<span class="key">password</span>: <span class="string"><span class="content">your_password</span></span>
<span class="key">sensor</span>:
<span class="key">platform</span>: <span class="string"><span class="content">mqtt</span></span>
<span class="key">name</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">Temperature</span><span class="delimiter">&quot;</span></span>
<span class="key">state_topic</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">sensor/temperature</span><span class="delimiter">&quot;</span></span>
<span class="key">qos</span>: <span class="string"><span class="content">0</span></span>
<span class="key">unit_of_measurement</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">ºC</span><span class="delimiter">&quot;</span></span>
<span class="key">sensor 2</span>:
<span class="key">platform</span>: <span class="string"><span class="content">mqtt</span></span>
<span class="key">name</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">Humidity</span><span class="delimiter">&quot;</span></span>
<span class="key">state_topic</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">sensor/humidity</span><span class="delimiter">&quot;</span></span>
<span class="key">qos</span>: <span class="string"><span class="content">0</span></span>
<span class="key">unit_of_measurement</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">%</span><span class="delimiter">&quot;</span></span>
</pre></td>
</tr></table>
</div>
</article>
<section id="disqus">
<h3 class="indent title">Comments</h3>
<div id="disqus_thread" aria-live="polite"><noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
</div>
<div id="disqus_thread" aria-live="polite"><noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript></div>
</section>
@ -546,7 +503,6 @@ Home Assistant to connect to the MQTT broker and subscribe to the sensor topics.
<section class="sharing aside-module grid__item one-whole lap-one-half">
<h1 class="title delta">Share this post</h1>
@ -624,7 +580,6 @@ Home Assistant to connect to the MQTT broker and subscribe to the sensor topics.
</div>
</aside>
</div>
@ -635,30 +590,23 @@ Home Assistant to connect to the MQTT broker and subscribe to the sensor topics.
<div class="grid">
<div class="grid__item">
<p class="copyright">
<span class="credit">Powered by <a href="http://octopress.org">Octopress</a>, <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>
<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>
<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>
<script>
var disqus_shortname = 'home-assistant';
@ -675,13 +623,5 @@ Home Assistant to connect to the MQTT broker and subscribe to the sensor topics.
}());
</script>
</body>
</html>

View file

@ -5,8 +5,6 @@
<!--[if gt IE 8]><!--> <html> <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
@ -32,7 +30,6 @@
<link rel='icon' type='image/png' href='/images/favicon-192x192.png' sizes='192x192' />
</head>
<body >
<header>
@ -54,10 +51,10 @@
<a href="/getting-started/">Getting started</a>
<ul>
<li><a href='/getting-started/'>Installing Home Assistant</a></li>
<li><a href='/getting-started/configuration.html'>Configuration basics</a></li>
<li><a href='/getting-started/devices.html'>Adding devices</a></li>
<li><a href='/getting-started/presence-detection.html'>Presence detection</a></li>
<li><a href='/getting-started/automation.html'>Automation</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>
@ -65,26 +62,24 @@
<li>
<a href="/developers/">Developers</a>
<ul>
<li><a href="/developers/architecture.html">Architecture</a></li>
<li><a href="/developers/frontend.html">Frontend development</a></li>
<li><a href="/developers/creating_components.html">
<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.html">
<li><a href="/developers/add_new_platform/">
Adding platform support
</a></li>
<li><a href="/developers/api.html">API</a></li>
<li><a href="/developers/credits.html">Credits</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>
@ -98,6 +93,7 @@
<article class="post">
<header>
<h1 class="title indent">0.7.5: Blinkstick, SNMP, Telegram</h1>
@ -105,27 +101,9 @@
<div class="meta clearfix">
<time datetime="2015-10-11T10:10:00-07:00" pubdate data-updated="true"><i class="icon-calendar"></i> October 11, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<time datetime="2015-10-11T10:10:00-07:00" pubdate data-updated="true"><i class="icon-calendar"></i> October 11, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<span><i class='icon-time'></i> less than one minute reading time</span>
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -137,7 +115,6 @@
</ul>
</span>
<a class='comments'
href="#disqus_thread"
>Comments</a>
@ -147,42 +124,32 @@
</header>
<p>We discovered two issues annoying enough to warrent the release of 0.7.5:</p>
<ul>
<li>Home Assistant package did not include the CloudMQTT certificate.</li>
<li>A bug in the core caused issues when some platforms are loaded twice.</li>
<li>Home Assistant package did not include the CloudMQTT certificate.</li>
<li>A bug in the core caused issues when some platforms are loaded twice.</li>
</ul>
<p>This release also includes some new platforms (because they keep coming!):</p>
<p><img src='/images/supported_brands/blinkstick.png' style='border:none; box-shadow: none; float: right;' height='50' />
<img src='/images/supported_brands/rfxtrx.png' style='border:none; box-shadow: none; float: right; clear: right;' height='50' />
<img src='/images/supported_brands/telegram.png' style='border:none; box-shadow: none; float: right; clear: right;' height='50' /></p>
<p><img src="/images/supported_brands/blinkstick.png" style="border:none; box-shadow: none; float: right;" height="50" /><img src="/images/supported_brands/rfxtrx.png" style="border:none; box-shadow: none; float: right; clear: right;" height="50" /><img src="/images/supported_brands/telegram.png" style="border:none; box-shadow: none; float: right; clear: right;" height="50" /></p>
<ul>
<li>Light: <a href="/components/light.blinksticklight.html">blinkstick platform</a> added (<a href="https://github.com/alanbowman">@alanbowman</a>)</li>
<li>Device Tracker: <a href="/components/device_tracker.snmp.html">SNMP platform</a> added (<a href="https://github.com/tomduijf">@tomduijf</a>)</li>
<li>Light: <a href="/components/light.rfxtrx.html">rfxtrx platform</a> added (<a href="https://github.com/badele">@badele</a>)</li>
<li>Switch: <a href="/components/switch.rfxtrx.html">rfxtrx platform</a> added (<a href="https://github.com/badele">@badele</a>)</li>
<li>Notify: <a href="/components/notify.telegram.html">telegram platform</a> added (<a href="https://github.com/fabaff">@fabaff</a>)</li>
<li>Light: <a href="/components/light.blinksticklight/">blinkstick platform</a> added (<a href="https://github.com/alanbowman">@alanbowman</a>)</li>
<li>Device Tracker: <a href="/components/device_tracker.snmp/">SNMP platform</a> added (<a href="https://github.com/tomduijf">@tomduijf</a>)</li>
<li>Light: <a href="/components/light.rfxtrx/">rfxtrx platform</a> added (<a href="https://github.com/badele">@badele</a>)</li>
<li>Switch: <a href="/components/switch.rfxtrx/">rfxtrx platform</a> added (<a href="https://github.com/badele">@badele</a>)</li>
<li>Notify: <a href="/components/notify.telegram/">telegram platform</a> added (<a href="https://github.com/fabaff">@fabaff</a>)</li>
</ul>
<p>Also, the media player was extended by <a href="https://github.com/maddox">@maddox</a> to support the play media command.
This has been implemented for the <a href="/components/media_player.itunes.html">iTunes platform</a>.</p>
<p>Also, the media player was extended by <a href="https://github.com/maddox">@maddox</a> to support the play media command. This has been implemented for the <a href="/components/media_player.itunes/">iTunes platform</a>.</p>
</article>
<section id="disqus">
<h3 class="indent title">Comments</h3>
<div id="disqus_thread" aria-live="polite"><noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
</div>
<div id="disqus_thread" aria-live="polite"><noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript></div>
</section>
@ -194,7 +161,6 @@ This has been implemented for the <a href="/components/media_player.itunes.html"
<section class="sharing aside-module grid__item one-whole lap-one-half">
<h1 class="title delta">Share this post</h1>
@ -272,7 +238,6 @@ This has been implemented for the <a href="/components/media_player.itunes.html"
</div>
</aside>
</div>
@ -283,30 +248,23 @@ This has been implemented for the <a href="/components/media_player.itunes.html"
<div class="grid">
<div class="grid__item">
<p class="copyright">
<span class="credit">Powered by <a href="http://octopress.org">Octopress</a>, <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>
<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>
<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>
<script>
var disqus_shortname = 'home-assistant';
@ -323,13 +281,5 @@ This has been implemented for the <a href="/components/media_player.itunes.html"
}());
</script>
</body>
</html>

View file

@ -5,8 +5,6 @@
<!--[if gt IE 8]><!--> <html> <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
@ -32,7 +30,6 @@
<link rel='icon' type='image/png' href='/images/favicon-192x192.png' sizes='192x192' />
</head>
<body >
<header>
@ -54,10 +51,10 @@
<a href="/getting-started/">Getting started</a>
<ul>
<li><a href='/getting-started/'>Installing Home Assistant</a></li>
<li><a href='/getting-started/configuration.html'>Configuration basics</a></li>
<li><a href='/getting-started/devices.html'>Adding devices</a></li>
<li><a href='/getting-started/presence-detection.html'>Presence detection</a></li>
<li><a href='/getting-started/automation.html'>Automation</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>
@ -65,26 +62,24 @@
<li>
<a href="/developers/">Developers</a>
<ul>
<li><a href="/developers/architecture.html">Architecture</a></li>
<li><a href="/developers/frontend.html">Frontend development</a></li>
<li><a href="/developers/creating_components.html">
<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.html">
<li><a href="/developers/add_new_platform/">
Adding platform support
</a></li>
<li><a href="/developers/api.html">API</a></li>
<li><a href="/developers/credits.html">Credits</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>
@ -98,6 +93,7 @@
<article class="post">
<header>
<h1 class="title indent">0.7.6: Amazon FireTV, Radiotherm thermostats</h1>
@ -105,27 +101,9 @@
<div class="meta clearfix">
<time datetime="2015-10-26T18:10:00-07:00" pubdate data-updated="true"><i class="icon-calendar"></i> October 26, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<time datetime="2015-10-26T18:10:00-07:00" pubdate data-updated="true"><i class="icon-calendar"></i> October 26, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<span><i class='icon-time'></i> two minutes reading time</span>
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -137,7 +115,6 @@
</ul>
</span>
<a class='comments'
href="#disqus_thread"
>Comments</a>
@ -147,70 +124,54 @@
</header>
<p>After two weeks of hard work I&rsquo;m proud to announce the release of Home Assistant v0.7.6. For this release the main
focus was bugs, test coverage and documentation. And we exceeded expectations on all three fronts. Bugs have been
squashed, <a href="https://coveralls.io/builds/3946399">test coverage increased to 85%</a> and thanks to the hard work by
<a href="https://github.com/fabaff">@fabaff</a> and myself the <a href="/components/">component section</a> on the website has gotten a
complete revamp.</p>
<p>After two weeks of hard work Im proud to announce the release of Home Assistant v0.7.6. For this release the main focus was bugs, test coverage and documentation. And we exceeded expectations on all three fronts. Bugs have been squashed, <a href="https://coveralls.io/builds/3946399">test coverage increased to 85%</a> and thanks to the hard work by <a href="https://github.com/fabaff">@fabaff</a> and myself the <a href="/components/">component section</a> on the website has gotten a complete revamp.</p>
<h4>Changes</h4>
<p><img src='/images/supported_brands/radiotherm.png' style='border:none; box-shadow: none; float: right; margin-bottom: 16px;' height='50' />
<img src='/images/supported_brands/firetv.png' style='border:none; box-shadow: none; float: right; margin-bottom: 16px; clear: right;' height='50' />
<img src='/images/supported_brands/geofancy.png' style='border:none; box-shadow: none; float: right; margin-bottom: 16px; clear: right;' height='50' /></p>
<p><img src="/images/supported_brands/radiotherm.png" style="border:none; box-shadow: none; float: right; margin-bottom: 16px;" height="50" /><img src="/images/supported_brands/firetv.png" style="border:none; box-shadow: none; float: right; margin-bottom: 16px; clear: right;" height="50" /><img src="/images/supported_brands/geofancy.png" style="border:none; box-shadow: none; float: right; margin-bottom: 16px; clear: right;" height="50" /></p>
<ul>
<li>Device tracker: Newer <a href="/components/device_tracker.tplink.html">TP-Link routers</a> now supported (<a href="https://github.com/mKeRix">@mKeRix</a>)</li>
<li>Alarm Control Panel: <a href="/components/alarm_control_panel.manual.html">Manual alarm</a> added (<a href="https://github.com/sfam">@sfam</a>)</li>
<li>Thermostat: <a href="/components/thermostat.radiotherm.html">Radiotherm</a> now supported (<a href="https://github.com/toddeye">@toddeye</a>)</li>
<li>Media Player: <a href="/components/media_player.firetv.html">Amazon FireTV</a> now supported (<a href="https://github.com/happyleavesaoc">@happyleavesaoc</a>)</li>
<li>Device Tracker: <a href="/components/device_tracker.geofancy.html">Geofancy</a> now supported (<a href="https://github.com/wind-rider">@wind-rider</a>)</li>
<li>New component <a href="/components/shell_command.html">Shell Command</a> can expose shell commands as services (<a href="https://github.com/balloob">@balloob</a>)</li>
<li><a href="/components/script.html">Scripts</a> can now be customized using <code>customize</code> key in <code>configuration.yaml</code> (<a href="https://github.com/balloob">@balloob</a>)</li>
<li>Light: <a href="/components/light.hyperion.html">Hyperion</a> now supported (<a href="https://github.com/MakeMeASandwich">@MakeMeASandwich</a>)</li>
<li>Sensor: <a href="/components/sensor.arest.html">aRest</a> can now also read out pins (<a href="https://github.com/balloob">@balloob</a>)</li>
<li>Sensor: <a href="/components/sensor.forecast.html">Forecast.io</a> now supports specifying units in <code>configuration.yaml</code> (<a href="https://github.com/balloob">@balloob</a>)</li>
<li>Thermostat: <a href="/components/thermostat.heat_control.html">Heat Control</a> has been completely rewritten (<a href="https://github.com/balloob">@balloob</a>)</li>
<li>Switch: <a href="/components/switch.rest.html">Rest</a> now supported (<a href="https://github.com/bachp">@bachp</a>)</li>
<li>Media Player: <a href="/components/media_player.plex.html">Plex</a> can now be auto discovered and configure itself (<a href="https://github.com/tomduijf">@tomduijf</a>)</li>
<li><a href="/components/downloader.html">Downloader</a> will now treat relative paths based on config dir (<a href="https://github.com/tomduijf">@tomduijf</a>)</li>
<li>Line Charts will use interpolation for sensor data and show current and target temperature for thermostats (<a href="https://github.com/balloob">@balloob</a>)</li>
<li>Device Tracker: <a href="/components/device_tracker.ubus.html">OpenWRT via ubus</a> now supported (<a href="https://github.com/krzynio">@krzynio</a>)</li>
<li>Device tracker: Newer <a href="/components/device_tracker.tplink/">TP-Link routers</a> now supported (<a href="https://github.com/mKeRix">@mKeRix</a>)</li>
<li>Alarm Control Panel: <a href="/components/alarm_control_panel.manual/">Manual alarm</a> added (<a href="https://github.com/sfam">@sfam</a>)</li>
<li>Thermostat: <a href="/components/thermostat.radiotherm/">Radiotherm</a> now supported (<a href="https://github.com/toddeye">@toddeye</a>)</li>
<li>Media Player: <a href="/components/media_player.firetv/">Amazon FireTV</a> now supported (<a href="https://github.com/happyleavesaoc">@happyleavesaoc</a>)</li>
<li>Device Tracker: <a href="/components/device_tracker.geofancy/">Geofancy</a> now supported (<a href="https://github.com/wind-rider">@wind-rider</a>)</li>
<li>New component <a href="/components/shell_command/">Shell Command</a> can expose shell commands as services (<a href="https://github.com/balloob">@balloob</a>)</li>
<li><a href="/components/script/">Scripts</a> can now be customized using <code>customize</code> key in <code>configuration.yaml</code> (<a href="https://github.com/balloob">@balloob</a>)</li>
<li>Light: <a href="/components/light.hyperion/">Hyperion</a> now supported (<a href="https://github.com/MakeMeASandwich">@MakeMeASandwich</a>)</li>
<li>Sensor: <a href="/components/sensor.arest/">aRest</a> can now also read out pins (<a href="https://github.com/balloob">@balloob</a>)</li>
<li>Sensor: <a href="/components/sensor.forecast/">Forecast.io</a> now supports specifying units in <code>configuration.yaml</code> (<a href="https://github.com/balloob">@balloob</a>)</li>
<li>Thermostat: <a href="/components/thermostat.heat_control/">Heat Control</a> has been completely rewritten (<a href="https://github.com/balloob">@balloob</a>)</li>
<li>Switch: <a href="/components/switch.rest/">Rest</a> now supported (<a href="https://github.com/bachp">@bachp</a>)</li>
<li>Media Player: <a href="/components/media_player.plex/">Plex</a> can now be auto discovered and configure itself (<a href="https://github.com/tomduijf">@tomduijf</a>)</li>
<li><a href="/components/downloader/">Downloader</a> will now treat relative paths based on config dir (<a href="https://github.com/tomduijf">@tomduijf</a>)</li>
<li>Line Charts will use interpolation for sensor data and show current and target temperature for thermostats (<a href="https://github.com/balloob">@balloob</a>)</li>
<li>Device Tracker: <a href="/components/device_tracker.ubus/">OpenWRT via ubus</a> now supported (<a href="https://github.com/krzynio">@krzynio</a>)</li>
</ul>
<a name="read-more"></a>
<h4>Breaking changes</h4>
<p>As part of this release we did some cleanup which introduced backwards incompatible changes:</p>
<p><strong>Heat Control thermostat no longer includes scheduling features.</strong><br>
This feature has been removed completely. Use the <a href="/components/automation.html">automation component</a>
instead to control target temperature.</p>
<p><strong>Heat Control thermostat no longer includes scheduling features.</strong><br />
This feature has been removed completely. Use the <a href="/components/automation/">automation component</a> instead to control target temperature.</p>
<p><strong>Config changed for calling a service from a script.</strong><br>
<code>execute_service:</code> has been replaced with <code>service:</code>. See <a href="/components/script.html">component page</a>
for example. The old method will continue working for some time.</p>
<p><strong>Config changed for calling a service from a script.</strong><br />
<code>execute_service:</code> has been replaced with <code>service:</code>. See <a href="/components/script/">component page</a> for example. The old method will continue working for some time.</p>
<p><strong>Scenes can no longer be turned off.</strong><br>
It is no longer possible to turn a scene off after it has been activated. The way it worked was unpredictable
and causes a lot of confusion.</p>
<p><strong>Scenes can no longer be turned off.</strong><br />
It is no longer possible to turn a scene off after it has been activated. The way it worked was unpredictable and causes a lot of confusion.</p>
<p><strong>Downloader treats relative paths now relative to the config dir instead of the current working dir.</strong><br>
<p><strong>Downloader treats relative paths now relative to the config dir instead of the current working dir.</strong><br />
This makes more sense as most people run Home Assistant as a daemon</p>
</article>
<section id="disqus">
<h3 class="indent title">Comments</h3>
<div id="disqus_thread" aria-live="polite"><noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
</div>
<div id="disqus_thread" aria-live="polite"><noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript></div>
</section>
@ -222,7 +183,6 @@ This makes more sense as most people run Home Assistant as a daemon</p>
<section class="sharing aside-module grid__item one-whole lap-one-half">
<h1 class="title delta">Share this post</h1>
@ -300,7 +260,6 @@ This makes more sense as most people run Home Assistant as a daemon</p>
</div>
</aside>
</div>
@ -311,30 +270,23 @@ This makes more sense as most people run Home Assistant as a daemon</p>
<div class="grid">
<div class="grid__item">
<p class="copyright">
<span class="credit">Powered by <a href="http://octopress.org">Octopress</a>, <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>
<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>
<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>
<script>
var disqus_shortname = 'home-assistant';
@ -351,13 +303,5 @@ This makes more sense as most people run Home Assistant as a daemon</p>
}());
</script>
</body>
</html>

View file

@ -5,8 +5,6 @@
<!--[if gt IE 8]><!--> <html> <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
@ -23,7 +21,40 @@
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/blog/archives/">
<meta property="og:type" content="website">
<meta property="og:description" content="Blog Index 2015 Oct 26 0.7.6: Amazon FireTV, Radiotherm thermostats release-notes Oct 11 Report the temperature with ESP8266 to MQTT esp8266 how-to mqtt Oct 11 0.7.5: Blinkstick, SNMP, Telegram &hellip;">
<meta property="og:description" content="
Blog Index
2015
Oct 26
0.7.6: Amazon FireTV, Radiotherm thermostats
...">
<meta property="og:image" content="https://home-assistant.io/images/home-assistant-logo-2164x2164.png">
<link href="/stylesheets/screen.css" media="screen, projection" rel="stylesheet">
@ -32,7 +63,6 @@
<link rel='icon' type='image/png' href='/images/favicon-192x192.png' sizes='192x192' />
</head>
<body >
<header>
@ -54,10 +84,10 @@
<a href="/getting-started/">Getting started</a>
<ul>
<li><a href='/getting-started/'>Installing Home Assistant</a></li>
<li><a href='/getting-started/configuration.html'>Configuration basics</a></li>
<li><a href='/getting-started/devices.html'>Adding devices</a></li>
<li><a href='/getting-started/presence-detection.html'>Presence detection</a></li>
<li><a href='/getting-started/automation.html'>Automation</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>
@ -65,26 +95,24 @@
<li>
<a href="/developers/">Developers</a>
<ul>
<li><a href="/developers/architecture.html">Architecture</a></li>
<li><a href="/developers/frontend.html">Frontend development</a></li>
<li><a href="/developers/creating_components.html">
<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.html">
<li><a href="/developers/add_new_platform/">
Adding platform support
</a></li>
<li><a href="/developers/api.html">API</a></li>
<li><a href="/developers/credits.html">Credits</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>
@ -116,9 +144,7 @@
<h2>2015</h2>
<article>
<div class="grid">
<div class="grid">
<div class="grid__item one-fifth palm-one-whole">
<time datetime="2015-10-26T18:10:00-07:00" pubdate>
@ -129,8 +155,6 @@
<h1 class="gamma"><a href="/blog/2015/10/26/firetv-and-radiotherm-now-supported/">0.7.6: Amazon FireTV, Radiotherm thermostats</a></h1>
<footer class="meta">
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -141,7 +165,6 @@
</ul>
</span>
</footer>
<hr class="divider">
@ -153,9 +176,7 @@
<article>
<div class="grid">
<div class="grid">
<div class="grid__item one-fifth palm-one-whole">
<time datetime="2015-10-11T12:10:00-07:00" pubdate>
@ -166,8 +187,6 @@
<h1 class="gamma"><a href="/blog/2015/10/11/measure-temperature-with-esp8266-and-report-to-mqtt/">Report the temperature with ESP8266 to MQTT</a></h1>
<footer class="meta">
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -182,7 +201,6 @@
</ul>
</span>
</footer>
<hr class="divider">
@ -194,9 +212,7 @@
<article>
<div class="grid">
<div class="grid">
<div class="grid__item one-fifth palm-one-whole">
<time datetime="2015-10-11T10:10:00-07:00" pubdate>
@ -207,8 +223,6 @@
<h1 class="gamma"><a href="/blog/2015/10/11/rfxtrx-blinkstick-and-snmp-support/">0.7.5: Blinkstick, SNMP, Telegram</a></h1>
<footer class="meta">
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -219,7 +233,6 @@
</ul>
</span>
</footer>
<hr class="divider">
@ -231,9 +244,7 @@
<article>
<div class="grid">
<div class="grid">
<div class="grid__item one-fifth palm-one-whole">
<time datetime="2015-10-05T21:49:00-07:00" pubdate>
@ -244,8 +255,6 @@
<h1 class="gamma"><a href="/blog/2015/10/05/home-assistant-goes-geo-with-owntracks/">Home Assistant goes geo with OwnTracks</a></h1>
<footer class="meta">
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -256,7 +265,6 @@
</ul>
</span>
</footer>
<hr class="divider">
@ -268,9 +276,7 @@
<article>
<div class="grid">
<div class="grid">
<div class="grid__item one-fifth palm-one-whole">
<time datetime="2015-09-19T21:47:00-07:00" pubdate>
@ -281,8 +287,6 @@
<h1 class="gamma"><a href="/blog/2015/09/19/alarm-sonos-and-itunes-support/">Alarms, Sonos and iTunes now supported</a></h1>
<footer class="meta">
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -293,7 +297,6 @@
</ul>
</span>
</footer>
<hr class="divider">
@ -305,9 +308,7 @@
<article>
<div class="grid">
<div class="grid">
<div class="grid__item one-fifth palm-one-whole">
<time datetime="2015-09-18T02:00:00-07:00" pubdate>
@ -318,8 +319,6 @@
<h1 class="gamma"><a href="/blog/2015/09/18/monitoring-with-glances-and-home-assistant/">Remote Monitoring with Glances</a></h1>
<footer class="meta">
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -330,7 +329,6 @@
</ul>
</span>
</footer>
<hr class="divider">
@ -342,9 +340,7 @@
<article>
<div class="grid">
<div class="grid">
<div class="grid__item one-fifth palm-one-whole">
<time datetime="2015-09-13T09:28:00-07:00" pubdate>
@ -355,8 +351,6 @@
<h1 class="gamma"><a href="/blog/2015/09/13/home-assistant-meets-ifttt/">Home Assistant meets IFTTT</a></h1>
<footer class="meta">
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -369,7 +363,6 @@
</ul>
</span>
</footer>
<hr class="divider">
@ -381,9 +374,7 @@
<article>
<div class="grid">
<div class="grid">
<div class="grid__item one-fifth palm-one-whole">
<time datetime="2015-09-11T02:19:38-07:00" pubdate>
@ -394,8 +385,6 @@
<h1 class="gamma"><a href="/blog/2015/09/11/different-ways-to-use-mqtt-with-home-assistant/">Using MQTT with Home Assistant</a></h1>
<footer class="meta">
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -408,7 +397,6 @@
</ul>
</span>
</footer>
<hr class="divider">
@ -420,9 +408,7 @@
<article>
<div class="grid">
<div class="grid">
<div class="grid__item one-fifth palm-one-whole">
<time datetime="2015-08-31T14:12:00-07:00" pubdate>
@ -433,8 +419,6 @@
<h1 class="gamma"><a href="/blog/2015/08/31/version-7-revamped-ui-and-improved-distribution/">0.7: Better UI and improved distribution</a></h1>
<footer class="meta">
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -445,7 +429,6 @@
</ul>
</span>
</footer>
<hr class="divider">
@ -457,9 +440,7 @@
<article>
<div class="grid">
<div class="grid">
<div class="grid__item one-fifth palm-one-whole">
<time datetime="2015-08-26T08:12:00-07:00" pubdate>
@ -470,8 +451,6 @@
<h1 class="gamma"><a href="/blog/2015/08/26/laundry-automation-with-moteino-mqtt-and-home-assistant/">Laundry Automation: insight and notifications</a></h1>
<footer class="meta">
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -482,7 +461,6 @@
</ul>
</span>
</footer>
<hr class="divider">
@ -494,9 +472,7 @@
<article>
<div class="grid">
<div class="grid">
<div class="grid__item one-fifth palm-one-whole">
<time datetime="2015-08-17T20:00:00-07:00" pubdate>
@ -507,8 +483,6 @@
<h1 class="gamma"><a href="/blog/2015/08/17/verisure-and-modern-tp-link-router-support/">Verisure devices and modern TP-Link routers now supported</a></h1>
<footer class="meta">
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -519,7 +493,6 @@
</ul>
</span>
</footer>
<hr class="divider">
@ -531,9 +504,7 @@
<article>
<div class="grid">
<div class="grid">
<div class="grid__item one-fifth palm-one-whole">
<time datetime="2015-08-09T18:01:00-07:00" pubdate>
@ -544,8 +515,6 @@
<h1 class="gamma"><a href="/blog/2015/08/09/mqtt-raspberry-pi-squeezebox-asuswrt-support/">MQTT, Rasperry PI, Logitech Squeezebox and ASUSWRT routers now supported</a></h1>
<footer class="meta">
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -556,7 +525,6 @@
</ul>
</span>
</footer>
<hr class="divider">
@ -568,9 +536,7 @@
<article>
<div class="grid">
<div class="grid">
<div class="grid__item one-fifth palm-one-whole">
<time datetime="2015-07-11T01:37:00-07:00" pubdate>
@ -581,8 +547,6 @@
<h1 class="gamma"><a href="/blog/2015/07/11/ip-cameras-arduino-kodi-efergy-support/">IP Cameras, Arduinos, Kodi and Efergy Energy Monitors now supported</a></h1>
<footer class="meta">
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -593,7 +557,6 @@
</ul>
</span>
</footer>
<hr class="divider">
@ -605,9 +568,7 @@
<article>
<div class="grid">
<div class="grid">
<div class="grid__item one-fifth palm-one-whole">
<time datetime="2015-06-10T18:54:00-07:00" pubdate>
@ -618,8 +579,6 @@
<h1 class="gamma"><a href="/blog/2015/06/10/release-notes/">Release notes for June 10, 2015</a></h1>
<footer class="meta">
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -630,7 +589,6 @@
</ul>
</span>
</footer>
<hr class="divider">
@ -642,9 +600,7 @@
<article>
<div class="grid">
<div class="grid">
<div class="grid__item one-fifth palm-one-whole">
<time datetime="2015-05-14T22:25:00-07:00" pubdate>
@ -655,8 +611,6 @@
<h1 class="gamma"><a href="/blog/2015/05/14/release-notes/">Release notes for May 14, 2015</a></h1>
<footer class="meta">
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -667,7 +621,6 @@
</ul>
</span>
</footer>
<hr class="divider">
@ -679,9 +632,7 @@
<article>
<div class="grid">
<div class="grid">
<div class="grid__item one-fifth palm-one-whole">
<time datetime="2015-05-09T23:08:00-07:00" pubdate>
@ -692,8 +643,6 @@
<h1 class="gamma"><a href="/blog/2015/05/09/utc-time-zone-awareness/">UTC & Time zone awareness</a></h1>
<footer class="meta">
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -704,7 +653,6 @@
</ul>
</span>
</footer>
<hr class="divider">
@ -716,9 +664,7 @@
<article>
<div class="grid">
<div class="grid">
<div class="grid__item one-fifth palm-one-whole">
<time datetime="2015-04-25T06:57:00-07:00" pubdate>
@ -729,8 +675,6 @@
<h1 class="gamma"><a href="/blog/2015/04/25/release-notes/">Release notes for April 25, 2015</a></h1>
<footer class="meta">
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -741,7 +685,6 @@
</ul>
</span>
</footer>
<hr class="divider">
@ -753,12 +696,10 @@
<article>
<div class="grid">
<div class="grid">
<div class="grid__item one-fifth palm-one-whole">
<time datetime="2015-03-22T00:21:00-08:00" pubdate>
<time datetime="2015-03-22T01:21:00-07:00" pubdate>
<span class='month'>Mar</span> <span class='day'>22</span>
</time>
</div>
@ -766,8 +707,6 @@
<h1 class="gamma"><a href="/blog/2015/03/22/release-notes/">Release notes for March 22, 2015</a></h1>
<footer class="meta">
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -778,7 +717,6 @@
</ul>
</span>
</footer>
<hr class="divider">
@ -790,12 +728,10 @@
<article>
<div class="grid">
<div class="grid">
<div class="grid__item one-fifth palm-one-whole">
<time datetime="2015-03-11T18:36:00-08:00" pubdate>
<time datetime="2015-03-11T19:36:00-07:00" pubdate>
<span class='month'>Mar</span> <span class='day'>11</span>
</time>
</div>
@ -803,8 +739,6 @@
<h1 class="gamma"><a href="/blog/2015/03/11/release-notes/">Release notes for March 11, 2015</a></h1>
<footer class="meta">
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -815,7 +749,6 @@
</ul>
</span>
</footer>
<hr class="divider">
@ -827,9 +760,7 @@
<article>
<div class="grid">
<div class="grid">
<div class="grid__item one-fifth palm-one-whole">
<time datetime="2015-03-08T23:16:10-07:00" pubdate>
@ -840,8 +771,6 @@
<h1 class="gamma"><a href="/blog/2015/03/08/new-logo/">New logo for Home Assistant</a></h1>
<footer class="meta">
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -852,7 +781,6 @@
</ul>
</span>
</footer>
<hr class="divider">
@ -864,9 +792,7 @@
<article>
<div class="grid">
<div class="grid">
<div class="grid__item one-fifth palm-one-whole">
<time datetime="2015-03-01T11:38:00-08:00" pubdate>
@ -877,8 +803,6 @@
<h1 class="gamma"><a href="/blog/2015/03/01/home-assistant-migrating-to-yaml/">Home Assistant moving to YAML</a></h1>
<footer class="meta">
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -889,7 +813,6 @@
</ul>
</span>
</footer>
<hr class="divider">
@ -901,9 +824,7 @@
<article>
<div class="grid">
<div class="grid">
<div class="grid__item one-fifth palm-one-whole">
<time datetime="2015-02-24T22:41:27-08:00" pubdate>
@ -914,8 +835,6 @@
<h1 class="gamma"><a href="/blog/2015/02/24/streaming-updates/">Streaming updates</a></h1>
<footer class="meta">
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -926,7 +845,6 @@
</ul>
</span>
</footer>
<hr class="divider">
@ -938,9 +856,7 @@
<article>
<div class="grid">
<div class="grid">
<div class="grid__item one-fifth palm-one-whole">
<time datetime="2015-02-08T09:01:23-08:00" pubdate>
@ -951,8 +867,6 @@
<h1 class="gamma"><a href="/blog/2015/02/08/looking-at-the-past/">Looking at the past</a></h1>
<footer class="meta">
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -965,7 +879,6 @@
</ul>
</span>
</footer>
<hr class="divider">
@ -977,9 +890,7 @@
<article>
<div class="grid">
<div class="grid">
<div class="grid__item one-fifth palm-one-whole">
<time datetime="2015-01-24T18:36:00-08:00" pubdate>
@ -990,8 +901,6 @@
<h1 class="gamma"><a href="/blog/2015/01/24/release-notes/">Release notes for January 24, 2015</a></h1>
<footer class="meta">
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -1002,7 +911,6 @@
</ul>
</span>
</footer>
<hr class="divider">
@ -1014,9 +922,7 @@
<article>
<div class="grid">
<div class="grid">
<div class="grid__item one-fifth palm-one-whole">
<time datetime="2015-01-13T08:29:04-08:00" pubdate>
@ -1027,8 +933,6 @@
<h1 class="gamma"><a href="/blog/2015/01/13/nest-in-da-house/">Nest in the house!</a></h1>
<footer class="meta">
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -1039,7 +943,6 @@
</ul>
</span>
</footer>
<hr class="divider">
@ -1051,9 +954,7 @@
<article>
<div class="grid">
<div class="grid">
<div class="grid__item one-fifth palm-one-whole">
<time datetime="2015-01-11T21:49:08-08:00" pubdate>
@ -1064,8 +965,6 @@
<h1 class="gamma"><a href="/blog/2015/01/11/bootstrapping-your-setup-with-discovery/">Bootstrapping your setup with Discovery</a></h1>
<footer class="meta">
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -1076,7 +975,6 @@
</ul>
</span>
</footer>
<hr class="divider">
@ -1088,9 +986,7 @@
<article>
<div class="grid">
<div class="grid">
<div class="grid__item one-fifth palm-one-whole">
<time datetime="2015-01-04T13:29:07-08:00" pubdate>
@ -1101,8 +997,6 @@
<h1 class="gamma"><a href="/blog/2015/01/04/hey-pushbullet-nice-talking-to-you/">Hello PushBullet, nice talking to you</a></h1>
<footer class="meta">
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -1113,7 +1007,6 @@
</ul>
</span>
</footer>
<hr class="divider">
@ -1128,9 +1021,7 @@
<h2>2014</h2>
<article>
<div class="grid">
<div class="grid">
<div class="grid__item one-fifth palm-one-whole">
<time datetime="2014-12-26T10:23:13-08:00" pubdate>
@ -1141,8 +1032,6 @@
<h1 class="gamma"><a href="/blog/2014/12/26/home-control-home-automation-and-the-smart-home/">Home Control, Automation &amp; the Smart Home</a></h1>
<footer class="meta">
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -1153,7 +1042,6 @@
</ul>
</span>
</footer>
<hr class="divider">
@ -1165,9 +1053,7 @@
<article>
<div class="grid">
<div class="grid">
<div class="grid__item one-fifth palm-one-whole">
<time datetime="2014-12-18T23:24:45-08:00" pubdate>
@ -1178,8 +1064,6 @@
<h1 class="gamma"><a href="/blog/2014/12/18/website-launched/">Website launched!</a></h1>
<footer class="meta">
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -1190,7 +1074,6 @@
</ul>
</span>
</footer>
<hr class="divider">
@ -1213,21 +1096,20 @@
<section class="sharing aside-module grid__item one-whole lap-one-half">
<h1 class="title delta">Share this post</h1>
<a href="//twitter.com/share"
class="twitter-share-button"
data-url="https://home-assistant.io/blog/archives/index.html"
data-counturl="https://home-assistant.io/blog/archives/index.html" >Tweet</a>
data-url="https://home-assistant.io/blog/archives/"
data-counturl="https://home-assistant.io/blog/archives/" >Tweet</a>
<div class="g-plusone" data-size="standard"></div>
<div class="fb-share-button" style='top: -6px;'
data-href="https://home-assistant.io/blog/archives/index.html"
data-href="https://home-assistant.io/blog/archives/"
data-layout="button_count">
</div>
@ -1295,7 +1177,6 @@
</div>
</aside>
</div>
@ -1306,30 +1187,23 @@
<div class="grid">
<div class="grid__item">
<p class="copyright">
<span class="credit">Powered by <a href="http://octopress.org">Octopress</a>, <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>
<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>
<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>
<script>
var disqus_shortname = 'home-assistant';
@ -1343,13 +1217,5 @@
}());
</script>
</body>
</html>

View file

@ -4,7 +4,7 @@
<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/"/>
<updated>2015-10-27T12:45:27-07:00</updated>
<updated>2015-10-29T00:08:34-07:00</updated>
<id>https://home-assistant.io/</id>
<author>
<name><![CDATA[Paulus Schoutsen]]></name>
@ -18,7 +18,7 @@
<link href="https://home-assistant.io/blog/2014/12/26/home-control-home-automation-and-the-smart-home/"/>
<updated>2014-12-26T10:23:13-08:00</updated>
<id>https://home-assistant.io/blog/2014/12/26/home-control-home-automation-and-the-smart-home</id>
<content type="html"><![CDATA[<p>The internet has been buzzing over the last year about home automation. A lot of different terms fly around like the internet of things, home automation and the smart home.
<content type="html"><![CDATA[<p>The internet has been buzzing over the last year about home automation. A lot of different terms fly around like the internet of things, home automation and the smart home.<br />
This article will try to explain how they all relate.</p>
<p>The first thing to introduce is the <strong>Internet of Things</strong> (IoT). This refers to a new generation of devices that cannot only be controlled by humans via buttons or remotes but also provide an interface to communicate with other devices and applications. For example, an IoT-capable coffee machine could receive commands to create different types of coffee and be able to broadcast the amount of water left in its resevoir.</p>
@ -27,18 +27,13 @@ This article will try to explain how they all relate.</p>
<p>As a bare minimum a hub has to keep track of the state of each device and should be able to control them if possible. For example, it has to know which lights are on or off and offer a way to control the lights. For a sensor it only has to know the value. A hub with these capabilities offers <strong>home control</strong>.</p>
<p class='img'>
<a href='/images/screenshots/nexus_7_dashboard.png'>
<img alt='Hub dashboard example'
src='/images/screenshots/nexus_7_dashboard.png' />
<p class="img">
<a href="/images/screenshots/nexus_7_dashboard.png">
<img alt="Hub dashboard example" src="/images/screenshots/nexus_7_dashboard.png" />
</a>
Example of a hub&#8217;s dashboard. Showing the state of 2 persons, 4 lights and the sun.
Example of a hubs dashboard. Showing the state of 2 persons, 4 lights and the sun.
</p>
<!--more-->
<p>A step up from home control is to have the user setup triggers to send commands based on information in the home control layer. For example, to turn on the lights when a person arrives home. A hub with these capabilities is capable of <strong>home automation</strong>.</p>
<p>Most hubs on the market today offer this in various degrees of functionality and usability. Some IoT-capable devices offer this too, but only control themselves and are usually limited to location and time-based events.</p>
@ -51,30 +46,28 @@ This article will try to explain how they all relate.</p>
<p>All this results in the following overview of Home Automation.</p>
<p class='img'>
<a href='/images/architecture/home_automation_landscape.png'>
<img alt='Home Automation landscape'
src='/images/architecture/home_automation_landscape.png' />
<p class="img">
<a href="/images/architecture/home_automation_landscape.png">
<img alt="Home Automation landscape" src="/images/architecture/home_automation_landscape.png" />
</a>
Overview of the home automation landscape.
</p>
<h3>Challenges</h3>
<p>You are probably wondering, this all seems relatively simple, why don&rsquo;t I have my very own smart home yet? There are a couple of challenges today that keep us from stepping into the future.</p>
<p>You are probably wondering, this all seems relatively simple, why dont I have my very own smart home yet? There are a couple of challenges today that keep us from stepping into the future.</p>
<h4>More Internet of Things-capable devices</h4>
<p>The majority of the IoT products out there are either lights, switches or presence detection. That&rsquo;s not enough for your home to be very smart about. We need televisions, fridges, ovens and more to join the party to increase the number of devices that we can control.</p>
<p>The majority of the IoT products out there are either lights, switches or presence detection. Thats not enough for your home to be very smart about. We need televisions, fridges, ovens and more to join the party to increase the number of devices that we can control.</p>
<h4>More data</h4>
<p>Most first generation IoT devices are only exposing information that is needed for controlling it. We need to be able to track all interactions with each device for our smart home to learn how interaction with devices influence other things. For example, we need to be able to track how many cups of coffee were made or how often the fridge was open. This will increase the information flow and open up a whole bunch of new possibilities. For example, the smart home can order new coffee when you&rsquo;re running low.</p>
<p>Most first generation IoT devices are only exposing information that is needed for controlling it. We need to be able to track all interactions with each device for our smart home to learn how interaction with devices influence other things. For example, we need to be able to track how many cups of coffee were made or how often the fridge was open. This will increase the information flow and open up a whole bunch of new possibilities. For example, the smart home can order new coffee when youre running low.</p>
<h4>Easy to use, open software that we can trust</h4>
<p>To increase adoption we will need people to trust their smart home system. It will be very tough to convince people to upgrade all their devices and upload all interactions with each of them to the cloud. This data could reveal their whole life including all bad habits. That&rsquo;s why such a system should be simple and open-source so people can validate that their data generated at home stays home.</p>
<p>To increase adoption we will need people to trust their smart home system. It will be very tough to convince people to upgrade all their devices and upload all interactions with each of them to the cloud. This data could reveal their whole life including all bad habits. Thats why such a system should be simple and open-source so people can validate that their data generated at home stays home.</p>
<p>Anoter important booster for adoption is that the software should be easy to set up and use by the average user. A lot of people are not burning their hands yet on Home Automation because they are scared of configurating it.</p>

View file

@ -5,8 +5,6 @@
<!--[if gt IE 8]><!--> <html> <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
@ -32,7 +30,6 @@
<link rel='icon' type='image/png' href='/images/favicon-192x192.png' sizes='192x192' />
</head>
<body >
<header>
@ -54,10 +51,10 @@
<a href="/getting-started/">Getting started</a>
<ul>
<li><a href='/getting-started/'>Installing Home Assistant</a></li>
<li><a href='/getting-started/configuration.html'>Configuration basics</a></li>
<li><a href='/getting-started/devices.html'>Adding devices</a></li>
<li><a href='/getting-started/presence-detection.html'>Presence detection</a></li>
<li><a href='/getting-started/automation.html'>Automation</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>
@ -65,26 +62,24 @@
<li>
<a href="/developers/">Developers</a>
<ul>
<li><a href="/developers/architecture.html">Architecture</a></li>
<li><a href="/developers/frontend.html">Frontend development</a></li>
<li><a href="/developers/creating_components.html">
<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.html">
<li><a href="/developers/add_new_platform/">
Adding platform support
</a></li>
<li><a href="/developers/api.html">API</a></li>
<li><a href="/developers/credits.html">Credits</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>
@ -116,9 +111,7 @@
<h2>2014</h2>
<article>
<div class="grid">
<div class="grid">
<div class="grid__item one-fifth palm-one-whole">
<time datetime="2014-12-26T10:23:13-08:00" pubdate>
@ -129,8 +122,6 @@
<h1 class="gamma"><a href="/blog/2014/12/26/home-control-home-automation-and-the-smart-home/">Home Control, Automation &amp; the Smart Home</a></h1>
<footer class="meta">
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -141,7 +132,6 @@
</ul>
</span>
</footer>
<hr class="divider">
@ -164,21 +154,20 @@
<section class="sharing aside-module grid__item one-whole lap-one-half">
<h1 class="title delta">Share this post</h1>
<a href="//twitter.com/share"
class="twitter-share-button"
data-url="https://home-assistant.io/blog/categories/architecture/index.html"
data-counturl="https://home-assistant.io/blog/categories/architecture/index.html" >Tweet</a>
data-url="https://home-assistant.io/blog/categories/architecture/"
data-counturl="https://home-assistant.io/blog/categories/architecture/" >Tweet</a>
<div class="g-plusone" data-size="standard"></div>
<div class="fb-share-button" style='top: -6px;'
data-href="https://home-assistant.io/blog/categories/architecture/index.html"
data-href="https://home-assistant.io/blog/categories/architecture/"
data-layout="button_count">
</div>
@ -246,7 +235,6 @@
</div>
</aside>
</div>
@ -257,30 +245,23 @@
<div class="grid">
<div class="grid__item">
<p class="copyright">
<span class="credit">Powered by <a href="http://octopress.org">Octopress</a>, <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>
<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>
<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>
<script>
var disqus_shortname = 'home-assistant';
@ -294,13 +275,5 @@
}());
</script>
</body>
</html>

View file

@ -4,7 +4,7 @@
<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/"/>
<updated>2015-10-27T12:45:27-07:00</updated>
<updated>2015-10-29T00:08:34-07:00</updated>
<id>https://home-assistant.io/</id>
<author>
<name><![CDATA[Paulus Schoutsen]]></name>
@ -18,15 +18,14 @@
<link href="https://home-assistant.io/blog/2015/03/08/new-logo/"/>
<updated>2015-03-08T23:16:10-07:00</updated>
<id>https://home-assistant.io/blog/2015/03/08/new-logo</id>
<content type="html"><![CDATA[<p>It is well known that you are either a good programmer or a good designer. It&rsquo;s rare you&rsquo;ll meet someone that is both. That&rsquo;s why it wasn&rsquo;t surprising to anyone that the logo that I made was mediocre &mdash; at best. Luckily, <a href="http://jeremygeltman.com/">Jeremy Geltman</a> has come to the rescue and contributed a brand new logo for Home Assistant.</p>
<content type="html"><![CDATA[<p>It is well known that you are either a good programmer or a good designer. Its rare youll meet someone that is both. Thats why it wasnt surprising to anyone that the logo that I made was mediocre — at best. Luckily, <a href="http://jeremygeltman.com/">Jeremy Geltman</a> has come to the rescue and contributed a brand new logo for Home Assistant.</p>
<p>The new logo follows Googles material design spec. It uses the blue color that Home Assistant uses in the interface and it comes in two versions: a high detailed version (for homescreen icon etc) and a simple version (for favicon etc).</p>
<p class='img'>
<img src='/images/blog/ha-logo-history.png' />
<p class="img">
<img src="/images/blog/ha-logo-history.png" />
The old logo, the new detailed logo and the new simple logo.
</p>
]]></content>
</entry>

View file

@ -5,8 +5,6 @@
<!--[if gt IE 8]><!--> <html> <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
@ -32,7 +30,6 @@
<link rel='icon' type='image/png' href='/images/favicon-192x192.png' sizes='192x192' />
</head>
<body >
<header>
@ -54,10 +51,10 @@
<a href="/getting-started/">Getting started</a>
<ul>
<li><a href='/getting-started/'>Installing Home Assistant</a></li>
<li><a href='/getting-started/configuration.html'>Configuration basics</a></li>
<li><a href='/getting-started/devices.html'>Adding devices</a></li>
<li><a href='/getting-started/presence-detection.html'>Presence detection</a></li>
<li><a href='/getting-started/automation.html'>Automation</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>
@ -65,26 +62,24 @@
<li>
<a href="/developers/">Developers</a>
<ul>
<li><a href="/developers/architecture.html">Architecture</a></li>
<li><a href="/developers/frontend.html">Frontend development</a></li>
<li><a href="/developers/creating_components.html">
<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.html">
<li><a href="/developers/add_new_platform/">
Adding platform support
</a></li>
<li><a href="/developers/api.html">API</a></li>
<li><a href="/developers/credits.html">Credits</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>
@ -116,9 +111,7 @@
<h2>2015</h2>
<article>
<div class="grid">
<div class="grid">
<div class="grid__item one-fifth palm-one-whole">
<time datetime="2015-03-08T23:16:10-07:00" pubdate>
@ -129,8 +122,6 @@
<h1 class="gamma"><a href="/blog/2015/03/08/new-logo/">New logo for Home Assistant</a></h1>
<footer class="meta">
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -141,7 +132,6 @@
</ul>
</span>
</footer>
<hr class="divider">
@ -164,21 +154,20 @@
<section class="sharing aside-module grid__item one-whole lap-one-half">
<h1 class="title delta">Share this post</h1>
<a href="//twitter.com/share"
class="twitter-share-button"
data-url="https://home-assistant.io/blog/categories/branding/index.html"
data-counturl="https://home-assistant.io/blog/categories/branding/index.html" >Tweet</a>
data-url="https://home-assistant.io/blog/categories/branding/"
data-counturl="https://home-assistant.io/blog/categories/branding/" >Tweet</a>
<div class="g-plusone" data-size="standard"></div>
<div class="fb-share-button" style='top: -6px;'
data-href="https://home-assistant.io/blog/categories/branding/index.html"
data-href="https://home-assistant.io/blog/categories/branding/"
data-layout="button_count">
</div>
@ -246,7 +235,6 @@
</div>
</aside>
</div>
@ -257,30 +245,23 @@
<div class="grid">
<div class="grid__item">
<p class="copyright">
<span class="credit">Powered by <a href="http://octopress.org">Octopress</a>, <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>
<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>
<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>
<script>
var disqus_shortname = 'home-assistant';
@ -294,13 +275,5 @@
}());
</script>
</body>
</html>

View file

@ -4,7 +4,7 @@
<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/"/>
<updated>2015-10-27T12:45:27-07:00</updated>
<updated>2015-10-29T00:08:34-07:00</updated>
<id>https://home-assistant.io/</id>
<author>
<name><![CDATA[Paulus Schoutsen]]></name>
@ -21,44 +21,35 @@
<content type="html"><![CDATA[<p>Ever since the launch of Home Assistant you have been able to track the state of your house. But the view has always been limited to what the current state is. Not what it was. Today we are going to change that by introducing two brand new components:</p>
<ul>
<li>Recorder component that will record every event to a SQLite database</li>
<li>History component that will query and aggregate the recorded events</li>
<li>Recorder component that will record every event to a SQLite database</li>
<li>History component that will query and aggregate the recorded events</li>
</ul>
<p>By adding this view into the past, we are adding an extra dimension into the state of your house. This brings great new possibilities for future features. The focus of todays release is on getting the recording component to you to start recording and getting some data. To show what is being recorded a view has been added that shows the last 24 hours of your house. Expect more extensive tools to explore your history in the future.</p>
<p>Adding history to the UI was a challenge on itself because the old UI did not support easy navigation. So to add to the awesomeness of this release, Home Assistant also got a face lift.</p>
<p>The history component will be enabled for new users by default. For current users, run <code>scripts/update</code> to upgrade to the latest version and add <code>[history]</code> to your <code>home-assistant.conf</code> file.</p>
<p class='img'>
<a href='/images/screenshots/component_history_24h.png'>
<img src='/images/screenshots/component_history_24h.png' />
<p class="img">
<a href="/images/screenshots/component_history_24h.png">
<img src="/images/screenshots/component_history_24h.png" />
</a>
</p>
<p class='note'>
<p class="note">
Events are saved in a local database. Google Graphs is used to draw the graph. Drawing is happening 100% in your browser - no data is transfered to anyone at any time.
</p>
<!--more-->
<p>Tracking history is an exciting next step for Home Assistant and will power the next generation of features. Here a list of some of the cool things that can now be build:</p>
<ul>
<li>Time Machine: explore the state of your house at any point in the past</li>
<li>Smart Home: analyze behavior and use it to automate your house</li>
<li>Summarize usage of the different components of your house</li>
<li>Time Machine: explore the state of your house at any point in the past</li>
<li>Smart Home: analyze behavior and use it to automate your house</li>
<li>Summarize usage of the different components of your house</li>
</ul>
]]></content>
</entry>
@ -67,22 +58,24 @@ Events are saved in a local database. Google Graphs is used to draw the graph. D
<link href="https://home-assistant.io/blog/2015/01/13/nest-in-da-house/"/>
<updated>2015-01-13T08:29:04-08:00</updated>
<id>https://home-assistant.io/blog/2015/01/13/nest-in-da-house</id>
<content type="html"><![CDATA[<p>For thet majority of its existence, Home Assistant primary focus was on presence detection, lights and switches. But not anymore as we&rsquo;re expanding the supported devices. Today, we&rsquo;re proud to introduce Nest Thermostat integration for Home Assistant contributed by <a href="https://github.com/sfiorini">Stefano Fiorini</a>!</p>
<content type="html"><![CDATA[<p>For thet majority of its existence, Home Assistant primary focus was on presence detection, lights and switches. But not anymore as were expanding the supported devices. Today, were proud to introduce Nest Thermostat integration for Home Assistant contributed by <a href="https://github.com/sfiorini">Stefano Fiorini</a>!</p>
<p class='img'>
<img src='/images/screenshots/nest-thermostat-card.png' />
<p class="img">
<img src="/images/screenshots/nest-thermostat-card.png" />
</p>
<p>The new integration exists out of two parts: a generic thermostat component and a Nest platform implementation. The initial version implements provides a read-only card and services to control it. The plan is in the future to add temperature and away mode controls from the thermostat card and more info dialog. Internally, we are using the Python package <a href="https://github.com/jkoelker/python-nest">python-nest by jkoelker</a> to talk to the Nest.</p>
<p>If you own a Nest thermostat, add the following lines to your <code>home-assistant.conf</code>:</p>
<pre><code>[thermostat]
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>[thermostat]
platform=nest
username=YOUR_USERNAME
password=YOUR_PASSWORD
</code></pre>
</pre></div>
</div>
</div>
]]></content>
</entry>
@ -99,10 +92,13 @@ password=YOUR_PASSWORD
<p>To enable the discovery component, add the following to your <code>home-assistant.conf</code>:</p>
<pre><code>[discovery]
</code></pre>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>[discovery]
</pre></div>
</div>
</div>
<p>A new <a href="/developers/add_new_platform.html#discovery">discovery section</a> has been added to the Adding a new platform page with instructions how to make your platform discoverable.</p>
<p>A new <a href="/developers/add_new_platform/#discovery">discovery section</a> has been added to the Adding a new platform page with instructions how to make your platform discoverable.</p>
]]></content>
</entry>
@ -111,29 +107,30 @@ password=YOUR_PASSWORD
<link href="https://home-assistant.io/blog/2015/01/04/hey-pushbullet-nice-talking-to-you/"/>
<updated>2015-01-04T13:29:07-08:00</updated>
<id>https://home-assistant.io/blog/2015/01/04/hey-pushbullet-nice-talking-to-you</id>
<content type="html"><![CDATA[<p>One of the things that was missing in Home Assistant for a while was a way to communicate with users. Wouldn&rsquo;t it be nice to get a message when important events happen like the lights being turned on while no one is home? Since the Home Assistant frontend runs as a web application on the phone, we have no way to bring ourselves to the front. This is where the new notify component comes in, powered by PushBullet.</p>
<content type="html"><![CDATA[<p>One of the things that was missing in Home Assistant for a while was a way to communicate with users. Wouldnt it be nice to get a message when important events happen like the lights being turned on while no one is home? Since the Home Assistant frontend runs as a web application on the phone, we have no way to bring ourselves to the front. This is where the new notify component comes in, powered by PushBullet.</p>
<p>The new notify component will take in messages and tells them to the user. For now this will be powered by the very awesome <a href="https://www.pushbullet.com/">PushBullet</a> but any other messaging platform can be easily added.</p>
<p class='img'>
<img src='/images/screenshots/pushbullet_moto360.png' />
<p class="img">
<img src="/images/screenshots/pushbullet_moto360.png" />
A message triggered by the simple_alarm component is shown by PushBullet on the Moto360.
</p>
<p>Read on to learn how to enable the notify component and integrate it with other components.</p>
<!--more-->
<h3>Enabling the notify component</h3>
<p>To enable the new notify component, add the following to your <code>home-assistant.conf</code>:</p>
<pre><code>[notify]
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>[notify]
platform=pushbullet
api_key=ABCDEFGHJKLMNOPQRSTUVXYZ
</code></pre>
</pre></div>
</div>
</div>
<p>You can get your api key from <a href="https://www.pushbullet.com/account">your account page on PushBullet.com</a>.</p>
@ -141,12 +138,15 @@ api_key=ABCDEFGHJKLMNOPQRSTUVXYZ
<p>To be able to send messages, the notify component has to be loaded and initialized successfully.</p>
<pre><code class="python">import homeassistant.loader as loader
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="keyword">import</span> <span class="include">homeassistant.loader</span> <span class="keyword">as</span> loader
def setup(hass, config):
notify = loader.get_component('notify')
notify.send_message(hass, "Hello from my component!")
</code></pre>
<span class="keyword">def</span> <span class="function">setup</span>(hass, config):
notify = loader.get_component(<span class="string"><span class="delimiter">'</span><span class="content">notify</span><span class="delimiter">'</span></span>)
notify.send_message(hass, <span class="string"><span class="delimiter">&quot;</span><span class="content">Hello from my component!</span><span class="delimiter">&quot;</span></span>)
</pre></div>
</div>
</div>
]]></content>
</entry>

View file

@ -5,8 +5,6 @@
<!--[if gt IE 8]><!--> <html> <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
@ -32,7 +30,6 @@
<link rel='icon' type='image/png' href='/images/favicon-192x192.png' sizes='192x192' />
</head>
<body >
<header>
@ -54,10 +51,10 @@
<a href="/getting-started/">Getting started</a>
<ul>
<li><a href='/getting-started/'>Installing Home Assistant</a></li>
<li><a href='/getting-started/configuration.html'>Configuration basics</a></li>
<li><a href='/getting-started/devices.html'>Adding devices</a></li>
<li><a href='/getting-started/presence-detection.html'>Presence detection</a></li>
<li><a href='/getting-started/automation.html'>Automation</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>
@ -65,26 +62,24 @@
<li>
<a href="/developers/">Developers</a>
<ul>
<li><a href="/developers/architecture.html">Architecture</a></li>
<li><a href="/developers/frontend.html">Frontend development</a></li>
<li><a href="/developers/creating_components.html">
<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.html">
<li><a href="/developers/add_new_platform/">
Adding platform support
</a></li>
<li><a href="/developers/api.html">API</a></li>
<li><a href="/developers/credits.html">Credits</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>
@ -116,9 +111,7 @@
<h2>2015</h2>
<article>
<div class="grid">
<div class="grid">
<div class="grid__item one-fifth palm-one-whole">
<time datetime="2015-02-08T09:01:23-08:00" pubdate>
@ -129,8 +122,6 @@
<h1 class="gamma"><a href="/blog/2015/02/08/looking-at-the-past/">Looking at the past</a></h1>
<footer class="meta">
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -143,7 +134,6 @@
</ul>
</span>
</footer>
<hr class="divider">
@ -155,9 +145,7 @@
<article>
<div class="grid">
<div class="grid">
<div class="grid__item one-fifth palm-one-whole">
<time datetime="2015-01-13T08:29:04-08:00" pubdate>
@ -168,8 +156,6 @@
<h1 class="gamma"><a href="/blog/2015/01/13/nest-in-da-house/">Nest in the house!</a></h1>
<footer class="meta">
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -180,7 +166,6 @@
</ul>
</span>
</footer>
<hr class="divider">
@ -192,9 +177,7 @@
<article>
<div class="grid">
<div class="grid">
<div class="grid__item one-fifth palm-one-whole">
<time datetime="2015-01-11T21:49:08-08:00" pubdate>
@ -205,8 +188,6 @@
<h1 class="gamma"><a href="/blog/2015/01/11/bootstrapping-your-setup-with-discovery/">Bootstrapping your setup with Discovery</a></h1>
<footer class="meta">
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -217,7 +198,6 @@
</ul>
</span>
</footer>
<hr class="divider">
@ -229,9 +209,7 @@
<article>
<div class="grid">
<div class="grid">
<div class="grid__item one-fifth palm-one-whole">
<time datetime="2015-01-04T13:29:07-08:00" pubdate>
@ -242,8 +220,6 @@
<h1 class="gamma"><a href="/blog/2015/01/04/hey-pushbullet-nice-talking-to-you/">Hello PushBullet, nice talking to you</a></h1>
<footer class="meta">
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -254,7 +230,6 @@
</ul>
</span>
</footer>
<hr class="divider">
@ -277,21 +252,20 @@
<section class="sharing aside-module grid__item one-whole lap-one-half">
<h1 class="title delta">Share this post</h1>
<a href="//twitter.com/share"
class="twitter-share-button"
data-url="https://home-assistant.io/blog/categories/component/index.html"
data-counturl="https://home-assistant.io/blog/categories/component/index.html" >Tweet</a>
data-url="https://home-assistant.io/blog/categories/component/"
data-counturl="https://home-assistant.io/blog/categories/component/" >Tweet</a>
<div class="g-plusone" data-size="standard"></div>
<div class="fb-share-button" style='top: -6px;'
data-href="https://home-assistant.io/blog/categories/component/index.html"
data-href="https://home-assistant.io/blog/categories/component/"
data-layout="button_count">
</div>
@ -359,7 +333,6 @@
</div>
</aside>
</div>
@ -370,30 +343,23 @@
<div class="grid">
<div class="grid__item">
<p class="copyright">
<span class="credit">Powered by <a href="http://octopress.org">Octopress</a>, <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>
<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>
<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>
<script>
var disqus_shortname = 'home-assistant';
@ -407,13 +373,5 @@
}());
</script>
</body>
</html>

View file

@ -4,7 +4,7 @@
<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/"/>
<updated>2015-10-27T12:45:27-07:00</updated>
<updated>2015-10-29T00:08:34-07:00</updated>
<id>https://home-assistant.io/</id>
<author>
<name><![CDATA[Paulus Schoutsen]]></name>
@ -18,22 +18,23 @@
<link href="https://home-assistant.io/blog/2015/05/09/utc-time-zone-awareness/"/>
<updated>2015-05-09T23:08:00-07:00</updated>
<id>https://home-assistant.io/blog/2015/05/09/utc-time-zone-awareness</id>
<content type="html"><![CDATA[<p>I have recently merged code to refactor Home Assistant to use only UTC times internally. A much needed refactor. I&rsquo;ve added some extra test coverage to time sensitive parts to ensure stability. The code has been live in the dev branch for the last 9 days and will be soon released to the master branch.</p>
<content type="html"><![CDATA[<p>I have recently merged code to refactor Home Assistant to use only UTC times internally. A much needed refactor. Ive added some extra test coverage to time sensitive parts to ensure stability. The code has been live in the dev branch for the last 9 days and will be soon released to the master branch.</p>
<p>From now on all internal communication will be done in UTC: time changed events, datetime attributes of states, etc. To get the current time in UTC you can call <code>homeassistant.util.dt.utcnow()</code>. This is a timezone aware UTC datetime object. <a href="https://github.com/balloob/home-assistant/blob/dev/homeassistant/util/dt.py"><code>homeassistant.util.dt</code></a> is a new util package with date helpers.</p>
<p>There is also such a thing as local time. Local time is based on the time zone that you have setup in your <code>configuration.yaml</code>. Local times should only be used for user facing information: logs, frontend and automation settings in <code>configuration.yaml</code>.</p>
<h3>Setting up your time zone</h3>
<p>Setting up a time zone happens in <code>configuration.yaml</code>. If you have no time zone setup, it will be auto detected using the existing detection code using <a href="https://freegeoip.net">freegeoip.net</a>. You can find a list of compatible time zones on <a href="http://en.wikipedia.org/wiki/List_of_tz_database_time_zones">Wikipedia</a>.</p>
<pre><code class="yaml">homeassistant:
time_zone: America/Los_Angeles
</code></pre>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="key">homeassistant</span>:
<span class="key">time_zone</span>: <span class="string"><span class="content">America/Los_Angeles</span></span>
</pre></div>
</div>
</div>
<h3>Compatibility</h3>
<p>The changes to the code are mostly backwards compatible. The old <code>hass.track_time_change</code> and <code>hass.track_point_in_time</code> use now internally two new methods: <code>hass.track_utc_time_change</code> and <code>hass.track_point_in_utc_time</code>. The usage of the old methods have not changed and should be backwards compatible.</p>
<p>This refactor adds a new migration for the database adding a <code>utc_offset</code> column to events and states. This information is currently not used but can prove useful in the future when we start analyzing the historical data.</p>
@ -43,11 +44,10 @@
<p>All built-in components have been upgraded. The following list is only for people that run custom components:</p>
<ul>
<li><code>hass.track_time_change</code> and <code>hass.track_point_in_time</code> will now return a time zone aware datetime object. Python does not allow comparing a naive with an aware datetime object.</li>
<li>the sun attributes for rising and setting are now in UTC. The methods <code>sun.next_rising(hass)</code> and <code>sun.next_setting(hass)</code> are backwards compatible, just be careful if you used to read the raw attributes.</li>
<li>the API sends all times in UTC. If you use anything else besides the frontend to talk to HA, make sure it handles it differently.</li>
<li><code>hass.track_time_change</code> and <code>hass.track_point_in_time</code> will now return a time zone aware datetime object. Python does not allow comparing a naive with an aware datetime object.</li>
<li>the sun attributes for rising and setting are now in UTC. The methods <code>sun.next_rising(hass)</code> and <code>sun.next_setting(hass)</code> are backwards compatible, just be careful if you used to read the raw attributes.</li>
<li>the API sends all times in UTC. If you use anything else besides the frontend to talk to HA, make sure it handles it differently.</li>
</ul>
]]></content>
</entry>
@ -56,10 +56,9 @@
<link href="https://home-assistant.io/blog/2015/03/01/home-assistant-migrating-to-yaml/"/>
<updated>2015-03-01T11:38:00-08:00</updated>
<id>https://home-assistant.io/blog/2015/03/01/home-assistant-migrating-to-yaml</id>
<content type="html"><![CDATA[<p>Home Assistant is now using <a href="http://yaml.org/">YAML</a> for it&rsquo;s configuration file.
YAML allows the use of lists, which should make the configuration file a bit more flexible and useful. The new configuration file format is backwards compatible with existing components. Because of this, there is no need for component developers to update their components.</p>
<content type="html"><![CDATA[<p>Home Assistant is now using <a href="http://yaml.org/">YAML</a> for its configuration file. YAML allows the use of lists, which should make the configuration file a bit more flexible and useful. The new configuration file format is backwards compatible with existing components. Because of this, there is no need for component developers to update their components.</p>
<p>The new file is named configuration.yaml and if it can&rsquo;t be found in your config directory, Home Assistant will instead try to find the old configuration file, home-assistant.conf.</p>
<p>The new file is named configuration.yaml and if it cant be found in your config directory, Home Assistant will instead try to find the old configuration file, home-assistant.conf.</p>
<p>The home-assistant.conf.example has been replaced with an updated <a href="https://github.com/balloob/home-assistant/blob/dev/config/configuration.yaml.example">configuration.yaml.example</a>.</p>

View file

@ -5,8 +5,6 @@
<!--[if gt IE 8]><!--> <html> <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
@ -32,7 +30,6 @@
<link rel='icon' type='image/png' href='/images/favicon-192x192.png' sizes='192x192' />
</head>
<body >
<header>
@ -54,10 +51,10 @@
<a href="/getting-started/">Getting started</a>
<ul>
<li><a href='/getting-started/'>Installing Home Assistant</a></li>
<li><a href='/getting-started/configuration.html'>Configuration basics</a></li>
<li><a href='/getting-started/devices.html'>Adding devices</a></li>
<li><a href='/getting-started/presence-detection.html'>Presence detection</a></li>
<li><a href='/getting-started/automation.html'>Automation</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>
@ -65,26 +62,24 @@
<li>
<a href="/developers/">Developers</a>
<ul>
<li><a href="/developers/architecture.html">Architecture</a></li>
<li><a href="/developers/frontend.html">Frontend development</a></li>
<li><a href="/developers/creating_components.html">
<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.html">
<li><a href="/developers/add_new_platform/">
Adding platform support
</a></li>
<li><a href="/developers/api.html">API</a></li>
<li><a href="/developers/credits.html">Credits</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>
@ -116,9 +111,7 @@
<h2>2015</h2>
<article>
<div class="grid">
<div class="grid">
<div class="grid__item one-fifth palm-one-whole">
<time datetime="2015-05-09T23:08:00-07:00" pubdate>
@ -129,8 +122,6 @@
<h1 class="gamma"><a href="/blog/2015/05/09/utc-time-zone-awareness/">UTC & Time zone awareness</a></h1>
<footer class="meta">
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -141,7 +132,6 @@
</ul>
</span>
</footer>
<hr class="divider">
@ -153,9 +143,7 @@
<article>
<div class="grid">
<div class="grid">
<div class="grid__item one-fifth palm-one-whole">
<time datetime="2015-03-01T11:38:00-08:00" pubdate>
@ -166,8 +154,6 @@
<h1 class="gamma"><a href="/blog/2015/03/01/home-assistant-migrating-to-yaml/">Home Assistant moving to YAML</a></h1>
<footer class="meta">
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -178,7 +164,6 @@
</ul>
</span>
</footer>
<hr class="divider">
@ -201,21 +186,20 @@
<section class="sharing aside-module grid__item one-whole lap-one-half">
<h1 class="title delta">Share this post</h1>
<a href="//twitter.com/share"
class="twitter-share-button"
data-url="https://home-assistant.io/blog/categories/core/index.html"
data-counturl="https://home-assistant.io/blog/categories/core/index.html" >Tweet</a>
data-url="https://home-assistant.io/blog/categories/core/"
data-counturl="https://home-assistant.io/blog/categories/core/" >Tweet</a>
<div class="g-plusone" data-size="standard"></div>
<div class="fb-share-button" style='top: -6px;'
data-href="https://home-assistant.io/blog/categories/core/index.html"
data-href="https://home-assistant.io/blog/categories/core/"
data-layout="button_count">
</div>
@ -283,7 +267,6 @@
</div>
</aside>
</div>
@ -294,30 +277,23 @@
<div class="grid">
<div class="grid__item">
<p class="copyright">
<span class="credit">Powered by <a href="http://octopress.org">Octopress</a>, <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>
<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>
<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>
<script>
var disqus_shortname = 'home-assistant';
@ -331,13 +307,5 @@
}());
</script>
</body>
</html>

View file

@ -4,7 +4,7 @@
<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/"/>
<updated>2015-10-27T12:45:27-07:00</updated>
<updated>2015-10-29T00:08:34-07:00</updated>
<id>https://home-assistant.io/</id>
<author>
<name><![CDATA[Paulus Schoutsen]]></name>
@ -18,250 +18,364 @@
<link href="https://home-assistant.io/blog/2015/10/11/measure-temperature-with-esp8266-and-report-to-mqtt/"/>
<updated>2015-10-11T12:10:00-07:00</updated>
<id>https://home-assistant.io/blog/2015/10/11/measure-temperature-with-esp8266-and-report-to-mqtt</id>
<content type="html"><![CDATA[<p>I recently learned about the ESP8266, a $5 chip that includes WiFi and is Arduino compatible. This means
that all your DIY projects can now be done for a fraction of the price.</p>
<content type="html"><![CDATA[
<p>I recently learned about the ESP8266, a $5 chip that includes WiFi and is Arduino compatible. This means that all your DIY projects can now be done for a fraction of the price.</p>
<p>For this tutorial, I&rsquo;ll walk through how to get going with ESP8266, get the temperature and humidity and
report it to MQTT where Home Asssistant can pick it up.</p>
<p>For this tutorial, Ill walk through how to get going with ESP8266, get the temperature and humidity and report it to MQTT where Home Asssistant can pick it up.</p>
<p class='img'>
<img src='https://home-assistant.io/images/blog/2015-10-esp8266-temp/setup.png' />
<p class="img">
<img src="https://home-assistant.io/images/blog/2015-10-esp8266-temp/setup.png" />
Picture of the final setup (+ 2 LED for decoration)
</p>
<p class='img'>
<img src='https://home-assistant.io/images/blog/2015-10-esp8266-temp/ha-sensor.png' />
<p class="img">
<img src="https://home-assistant.io/images/blog/2015-10-esp8266-temp/ha-sensor.png" />
Home Assistant will keep track of historical values and allow you to integrate it into automation.
</p>
<!--more-->
<h3>Components</h3>
<p>I&rsquo;ve been using Adafruit for my shopping:</p>
<p>Ive been using Adafruit for my shopping:</p>
<ul>
<li><a href="http://www.adafruit.com/product/2471">Adafruit HUZZAH ESP8266 Breakout</a> (<a href="https://learn.adafruit.com/adafruit-huzzah-esp8266-breakout/assembly">assembly instructions</a>)</li>
<li><a href="http://www.adafruit.com/product/2635">Adafruit HDC1008 Temperature &amp; Humidity Sensor Breakout Board</a> (<a href="https://learn.adafruit.com/adafruit-hdc1008-temperature-and-humidity-sensor-breakout/assembly">assembly instructions</a>)</li>
<li><a href="/components/mqtt.html#picking-a-broker">MQTT server</a></li>
<li><a href="http://www.adafruit.com/product/2471">Adafruit HUZZAH ESP8266 Breakout</a> (<a href="https://learn.adafruit.com/adafruit-huzzah-esp8266-breakout/assembly">assembly instructions</a>)</li>
<li><a href="http://www.adafruit.com/product/2635">Adafruit HDC1008 Temperature &amp; Humidity Sensor Breakout Board</a> (<a href="https://learn.adafruit.com/adafruit-hdc1008-temperature-and-humidity-sensor-breakout/assembly">assembly instructions</a>)</li>
<li><a href="/components/mqtt/#picking-a-broker">MQTT server</a></li>
</ul>
<p><em>Besides this, you will need the usual hardware prototype equipment: a breadboard, some wires,
soldering iron + wire, Serial USB cable.</em></p>
<p><em>Besides this, you will need the usual hardware prototype equipment: a breadboard, some wires, soldering iron + wire, Serial USB cable.</em></p>
<h3>Connections</h3>
<p>On your breadboard, make the following connections from your ESP8266 to the HDC1008:</p>
<table>
<thead>
<tr>
<th> ESP8266 </th>
<th> HDC1008 </th>
</tr>
</thead>
<tbody>
<tr>
<td> GND </td>
<td> GND</td>
</tr>
<tr>
<td> 3V </td>
<td> Vin</td>
</tr>
<tr>
<td> 14 </td>
<td> SCL</td>
</tr>
<tr>
<td> #2 </td>
<td> SDA</td>
</tr>
</tbody>
<thead>
<tr>
<th>ESP8266</th>
<th>HDC1008</th>
</tr>
</thead>
<tbody>
<tr>
<td>GND</td>
<td>GND</td>
</tr>
<tr>
<td>3V</td>
<td>Vin</td>
</tr>
<tr>
<td>14</td>
<td>SCL</td>
</tr>
<tr>
<td>#2</td>
<td>SDA</td>
</tr>
</tbody>
</table>
<p><em>I picked <code>#2</code> and <code>14</code> myself, you can configure them in the sketch.</em></p>
<h3>Preparing your IDE</h3>
<p>Follow <a href="https://github.com/esp8266/Arduino#installing-with-boards-manager">these instructions</a> on how
to install and prepare the Arduino IDE for ESP8266 development.</p>
<p>Follow <a href="https://github.com/esp8266/Arduino#installing-with-boards-manager">these instructions</a> on how to install and prepare the Arduino IDE for ESP8266 development.</p>
<p>After you&rsquo;re done installing, open the Arduino IDE, in the menu click on <code>sketch</code> -> <code>include library</code> ->
<code>manage libraries</code> and install the following libraries:</p>
<p>After youre done installing, open the Arduino IDE, in the menu click on <code>sketch</code> -&gt; <code>include library</code> -&gt; <code>manage libraries</code> and install the following libraries:</p>
<ul>
<li>PubSubClient by Nick &lsquo;O Leary</li>
<li>Adafruit HDC1000</li>
<li>PubSubClient by Nick O Leary</li>
<li>Adafruit HDC1000</li>
</ul>
<h3>Sketch</h3>
<p>If you have followed the previous steps, you&rsquo;re all set.</p>
<p>If you have followed the previous steps, youre all set.</p>
<ul>
<li>Open Arduino IDE and create a new sketch (<code>File</code> -> <code>New</code>)</li>
<li>Copy and paste the below sketch to the Arduino IDE</li>
<li>Adjust the values line 6 - 14 to match your setup</li>
<li>Optional: If you want to connect to an MQTT server without a username or password, adjust line 63.</li>
<li>To have the ESP8266 accept our new sketch, we have to put it in upload mode. On the ESP8266 device
keep the GPIO0 button pressed while pressing the reset button. The red led will glow half bright to
indicate it is in upload mode.</li>
<li>Press the upload button in Arduino IDE</li>
<li>Open the serial monitor (<code>Tools</code> -> <code>Serial Monitor</code>) to see the output from your device</li>
<li>Open Arduino IDE and create a new sketch (<code>File</code> -&gt; <code>New</code>)</li>
<li>Copy and paste the below sketch to the Arduino IDE</li>
<li>Adjust the values line 6 - 14 to match your setup</li>
<li>Optional: If you want to connect to an MQTT server without a username or password, adjust line 63.</li>
<li>To have the ESP8266 accept our new sketch, we have to put it in upload mode. On the ESP8266 device keep the GPIO0 button pressed while pressing the reset button. The red led will glow half bright to indicate it is in upload mode.</li>
<li>Press the upload button in Arduino IDE</li>
<li>Open the serial monitor (<code>Tools</code> -&gt; <code>Serial Monitor</code>) to see the output from your device</li>
</ul>
<p>This sketch will connect to your WiFi network and MQTT broker. It will read the temperature and humidity from the sensor every second. It will report it to the MQTT server if the difference is &gt; 1 since last reported value. Reports to the MQTT broker are sent with retain set to <code>True</code>. This means that anyone connecting to the MQTT topic will automatically be notified of the last reported value.</p>
<p>This sketch will connect to your WiFi network and MQTT broker. It will read the temperature and humidity
from the sensor every second. It will report it to the MQTT server if the difference is > 1 since last
reported value. Reports to the MQTT broker are sent with retain set to <code>True</code>. This means that anyone
connecting to the MQTT topic will automatically be notified of the last reported value.</p>
<div class="highlighter-coderay"><table class="CodeRay"><tr>
<td class="line-numbers"><pre><a href="#n1" name="n1">1</a>
<a href="#n2" name="n2">2</a>
<a href="#n3" name="n3">3</a>
<a href="#n4" name="n4">4</a>
<a href="#n5" name="n5">5</a>
<a href="#n6" name="n6">6</a>
<a href="#n7" name="n7">7</a>
<a href="#n8" name="n8">8</a>
<a href="#n9" name="n9">9</a>
<strong><a href="#n10" name="n10">10</a></strong>
<a href="#n11" name="n11">11</a>
<a href="#n12" name="n12">12</a>
<a href="#n13" name="n13">13</a>
<a href="#n14" name="n14">14</a>
<a href="#n15" name="n15">15</a>
<a href="#n16" name="n16">16</a>
<a href="#n17" name="n17">17</a>
<a href="#n18" name="n18">18</a>
<a href="#n19" name="n19">19</a>
<strong><a href="#n20" name="n20">20</a></strong>
<a href="#n21" name="n21">21</a>
<a href="#n22" name="n22">22</a>
<a href="#n23" name="n23">23</a>
<a href="#n24" name="n24">24</a>
<a href="#n25" name="n25">25</a>
<a href="#n26" name="n26">26</a>
<a href="#n27" name="n27">27</a>
<a href="#n28" name="n28">28</a>
<a href="#n29" name="n29">29</a>
<strong><a href="#n30" name="n30">30</a></strong>
<a href="#n31" name="n31">31</a>
<a href="#n32" name="n32">32</a>
<a href="#n33" name="n33">33</a>
<a href="#n34" name="n34">34</a>
<a href="#n35" name="n35">35</a>
<a href="#n36" name="n36">36</a>
<a href="#n37" name="n37">37</a>
<a href="#n38" name="n38">38</a>
<a href="#n39" name="n39">39</a>
<strong><a href="#n40" name="n40">40</a></strong>
<a href="#n41" name="n41">41</a>
<a href="#n42" name="n42">42</a>
<a href="#n43" name="n43">43</a>
<a href="#n44" name="n44">44</a>
<a href="#n45" name="n45">45</a>
<a href="#n46" name="n46">46</a>
<a href="#n47" name="n47">47</a>
<a href="#n48" name="n48">48</a>
<a href="#n49" name="n49">49</a>
<strong><a href="#n50" name="n50">50</a></strong>
<a href="#n51" name="n51">51</a>
<a href="#n52" name="n52">52</a>
<a href="#n53" name="n53">53</a>
<a href="#n54" name="n54">54</a>
<a href="#n55" name="n55">55</a>
<a href="#n56" name="n56">56</a>
<a href="#n57" name="n57">57</a>
<a href="#n58" name="n58">58</a>
<a href="#n59" name="n59">59</a>
<strong><a href="#n60" name="n60">60</a></strong>
<a href="#n61" name="n61">61</a>
<a href="#n62" name="n62">62</a>
<a href="#n63" name="n63">63</a>
<a href="#n64" name="n64">64</a>
<a href="#n65" name="n65">65</a>
<a href="#n66" name="n66">66</a>
<a href="#n67" name="n67">67</a>
<a href="#n68" name="n68">68</a>
<a href="#n69" name="n69">69</a>
<strong><a href="#n70" name="n70">70</a></strong>
<a href="#n71" name="n71">71</a>
<a href="#n72" name="n72">72</a>
<a href="#n73" name="n73">73</a>
<a href="#n74" name="n74">74</a>
<a href="#n75" name="n75">75</a>
<a href="#n76" name="n76">76</a>
<a href="#n77" name="n77">77</a>
<a href="#n78" name="n78">78</a>
<a href="#n79" name="n79">79</a>
<strong><a href="#n80" name="n80">80</a></strong>
<a href="#n81" name="n81">81</a>
<a href="#n82" name="n82">82</a>
<a href="#n83" name="n83">83</a>
<a href="#n84" name="n84">84</a>
<a href="#n85" name="n85">85</a>
<a href="#n86" name="n86">86</a>
<a href="#n87" name="n87">87</a>
<a href="#n88" name="n88">88</a>
<a href="#n89" name="n89">89</a>
<strong><a href="#n90" name="n90">90</a></strong>
<a href="#n91" name="n91">91</a>
<a href="#n92" name="n92">92</a>
<a href="#n93" name="n93">93</a>
<a href="#n94" name="n94">94</a>
<a href="#n95" name="n95">95</a>
<a href="#n96" name="n96">96</a>
<a href="#n97" name="n97">97</a>
<a href="#n98" name="n98">98</a>
<a href="#n99" name="n99">99</a>
<strong><a href="#n100" name="n100">100</a></strong>
<a href="#n101" name="n101">101</a>
<a href="#n102" name="n102">102</a>
<a href="#n103" name="n103">103</a>
<a href="#n104" name="n104">104</a>
<a href="#n105" name="n105">105</a>
<a href="#n106" name="n106">106</a>
<a href="#n107" name="n107">107</a>
<a href="#n108" name="n108">108</a>
<a href="#n109" name="n109">109</a>
</pre></td>
<td class="code"><pre><span class="preprocessor">#include</span> <span class="include">&lt;ESP8266WiFi.h&gt;</span>
<span class="preprocessor">#include</span> <span class="include">&lt;Wire.h&gt;</span>
<span class="preprocessor">#include</span> <span class="include">&lt;PubSubClient.h&gt;</span>
<span class="preprocessor">#include</span> <span class="include">&lt;Adafruit_HDC1000.h&gt;</span>
<pre><code class="cpp">#include &lt;ESP8266WiFi.h&gt;
#include &lt;Wire.h&gt;
#include &lt;PubSubClient.h&gt;
#include &lt;Adafruit_HDC1000.h&gt;
<span class="preprocessor">#define</span> wifi_ssid <span class="string"><span class="delimiter">&quot;</span><span class="content">YOUR WIFI SSID</span><span class="delimiter">&quot;</span></span>
<span class="preprocessor">#define</span> wifi_password <span class="string"><span class="delimiter">&quot;</span><span class="content">WIFI PASSWORD</span><span class="delimiter">&quot;</span></span>
#define wifi_ssid "YOUR WIFI SSID"
#define wifi_password "WIFI PASSWORD"
<span class="preprocessor">#define</span> mqtt_server <span class="string"><span class="delimiter">&quot;</span><span class="content">YOUR_MQTT_SERVER_HOST</span><span class="delimiter">&quot;</span></span>
<span class="preprocessor">#define</span> mqtt_user <span class="string"><span class="delimiter">&quot;</span><span class="content">your_username</span><span class="delimiter">&quot;</span></span>
<span class="preprocessor">#define</span> mqtt_password <span class="string"><span class="delimiter">&quot;</span><span class="content">your_password</span><span class="delimiter">&quot;</span></span>
#define mqtt_server "YOUR_MQTT_SERVER_HOST"
#define mqtt_user "your_username"
#define mqtt_password "your_password"
#define humidity_topic "sensor/humidity"
#define temperature_topic "sensor/temperature"
<span class="preprocessor">#define</span> humidity_topic <span class="string"><span class="delimiter">&quot;</span><span class="content">sensor/humidity</span><span class="delimiter">&quot;</span></span>
<span class="preprocessor">#define</span> temperature_topic <span class="string"><span class="delimiter">&quot;</span><span class="content">sensor/temperature</span><span class="delimiter">&quot;</span></span>
WiFiClient espClient;
PubSubClient client(espClient);
Adafruit_HDC1000 hdc = Adafruit_HDC1000();
void setup() {
Serial.begin(115200);
<span class="directive">void</span> setup() {
Serial.begin(<span class="integer">115200</span>);
setup_wifi();
client.setServer(mqtt_server, 1883);
client.setServer(mqtt_server, <span class="integer">1883</span>);
// Set SDA and SDL ports
Wire.begin(2, 14);
<span class="comment">// Set SDA and SDL ports</span>
Wire.begin(<span class="integer">2</span>, <span class="integer">14</span>);
// Start sensor
if (!hdc.begin()) {
Serial.println("Couldn't find sensor!");
while (1);
<span class="comment">// Start sensor</span>
<span class="keyword">if</span> (!hdc.begin()) {
Serial.println(<span class="string"><span class="delimiter">&quot;</span><span class="content">Couldn't find sensor!</span><span class="delimiter">&quot;</span></span>);
<span class="keyword">while</span> (<span class="integer">1</span>);
}}
void setup_wifi() {
delay(10);
// We start by connecting to a WiFi network
<span class="directive">void</span> setup_wifi() {
delay(<span class="integer">10</span>);
<span class="comment">// We start by connecting to a WiFi network</span>
Serial.println();
Serial.print("Connecting to ");
Serial.print(<span class="string"><span class="delimiter">&quot;</span><span class="content">Connecting to </span><span class="delimiter">&quot;</span></span>);
Serial.println(wifi_ssid);
WiFi.begin(wifi_ssid, wifi_password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
<span class="keyword">while</span> (WiFi.status() != WL_CONNECTED) {
delay(<span class="integer">500</span>);
Serial.print(<span class="string"><span class="delimiter">&quot;</span><span class="content">.</span><span class="delimiter">&quot;</span></span>);
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(<span class="string"><span class="delimiter">&quot;</span><span class="delimiter">&quot;</span></span>);
Serial.println(<span class="string"><span class="delimiter">&quot;</span><span class="content">WiFi connected</span><span class="delimiter">&quot;</span></span>);
Serial.println(<span class="string"><span class="delimiter">&quot;</span><span class="content">IP address: </span><span class="delimiter">&quot;</span></span>);
Serial.println(WiFi.localIP());
}
void reconnect() {
// Loop until we're reconnected
while (!client.connected()) {
Serial.print("Attempting MQTT connection...");
// Attempt to connect
// If you do not want to use a username and password, change next line to
// if (client.connect("ESP8266Client")) {
if (client.connect("ESP8266Client", mqtt_user, mqtt_password)) {
Serial.println("connected");
} else {
Serial.print("failed, rc=");
<span class="directive">void</span> reconnect() {
<span class="comment">// Loop until we're reconnected</span>
<span class="keyword">while</span> (!client.connected()) {
Serial.print(<span class="string"><span class="delimiter">&quot;</span><span class="content">Attempting MQTT connection...</span><span class="delimiter">&quot;</span></span>);
<span class="comment">// Attempt to connect</span>
<span class="comment">// If you do not want to use a username and password, change next line to</span>
<span class="comment">// if (client.connect(&quot;ESP8266Client&quot;)) {</span>
<span class="keyword">if</span> (client.connect(<span class="string"><span class="delimiter">&quot;</span><span class="content">ESP8266Client</span><span class="delimiter">&quot;</span></span>, mqtt_user, mqtt_password)) {
Serial.println(<span class="string"><span class="delimiter">&quot;</span><span class="content">connected</span><span class="delimiter">&quot;</span></span>);
} <span class="keyword">else</span> {
Serial.print(<span class="string"><span class="delimiter">&quot;</span><span class="content">failed, rc=</span><span class="delimiter">&quot;</span></span>);
Serial.print(client.state());
Serial.println(" try again in 5 seconds");
// Wait 5 seconds before retrying
delay(5000);
Serial.println(<span class="string"><span class="delimiter">&quot;</span><span class="content"> try again in 5 seconds</span><span class="delimiter">&quot;</span></span>);
<span class="comment">// Wait 5 seconds before retrying</span>
delay(<span class="integer">5000</span>);
}
}
}
bool checkBound(float newValue, float prevValue, float maxDiff) {
return newValue &lt; prevValue - maxDiff || newValue &gt; prevValue + maxDiff;
<span class="predefined-type">bool</span> checkBound(<span class="predefined-type">float</span> newValue, <span class="predefined-type">float</span> prevValue, <span class="predefined-type">float</span> maxDiff) {
<span class="keyword">return</span> newValue &lt; prevValue - maxDiff || newValue &gt; prevValue + maxDiff;
}
long lastMsg = 0;
float temp = 0.0;
float hum = 0.0;
float diff = 1.0;
<span class="predefined-type">long</span> lastMsg = <span class="integer">0</span>;
<span class="predefined-type">float</span> temp = <span class="float">0</span><span class="float">.0</span>;
<span class="predefined-type">float</span> hum = <span class="float">0</span><span class="float">.0</span>;
<span class="predefined-type">float</span> diff = <span class="float">1</span><span class="float">.0</span>;
void loop() {
if (!client.connected()) {
<span class="directive">void</span> loop() {
<span class="keyword">if</span> (!client.connected()) {
reconnect();
}
client.loop();
long now = millis();
if (now - lastMsg &gt; 1000) {
<span class="predefined-type">long</span> now = millis();
<span class="keyword">if</span> (now - lastMsg &gt; <span class="integer">1000</span>) {
lastMsg = now;
float newTemp = hdc.readTemperature();
float newHum = hdc.readHumidity();
<span class="predefined-type">float</span> newTemp = hdc.readTemperature();
<span class="predefined-type">float</span> newHum = hdc.readHumidity();
if (checkBound(newTemp, temp, diff)) {
<span class="keyword">if</span> (checkBound(newTemp, temp, diff)) {
temp = newTemp;
Serial.print("New temperature:");
Serial.print(<span class="string"><span class="delimiter">&quot;</span><span class="content">New temperature:</span><span class="delimiter">&quot;</span></span>);
Serial.println(String(temp).c_str());
client.publish(temperature_topic, String(temp).c_str(), true);
client.publish(temperature_topic, String(temp).c_str(), <span class="predefined-constant">true</span>);
}
if (checkBound(newHum, hum, diff)) {
<span class="keyword">if</span> (checkBound(newHum, hum, diff)) {
hum = newHum;
Serial.print("New humidity:");
Serial.print(<span class="string"><span class="delimiter">&quot;</span><span class="content">New humidity:</span><span class="delimiter">&quot;</span></span>);
Serial.println(String(hum).c_str());
client.publish(humidity_topic, String(hum).c_str(), true);
client.publish(humidity_topic, String(hum).c_str(), <span class="predefined-constant">true</span>);
}
}
}
</code></pre>
</pre></td>
</tr></table>
</div>
<h3>Configuring Home Assistant</h3>
<p>The last step is to integrate the sensor values into Home Assistant. This can be done by setting up
Home Assistant to connect to the MQTT broker and subscribe to the sensor topics.</p>
<p>The last step is to integrate the sensor values into Home Assistant. This can be done by setting up Home Assistant to connect to the MQTT broker and subscribe to the sensor topics.</p>
<pre><code class="yaml">mqtt:
broker: YOUR_MQTT_SERVER_HOST
username: your_username
password: your_password
<div class="highlighter-coderay"><table class="CodeRay"><tr>
<td class="line-numbers"><pre><a href="#n1" name="n1">1</a>
<a href="#n2" name="n2">2</a>
<a href="#n3" name="n3">3</a>
<a href="#n4" name="n4">4</a>
<a href="#n5" name="n5">5</a>
<a href="#n6" name="n6">6</a>
<a href="#n7" name="n7">7</a>
<a href="#n8" name="n8">8</a>
<a href="#n9" name="n9">9</a>
<strong><a href="#n10" name="n10">10</a></strong>
<a href="#n11" name="n11">11</a>
<a href="#n12" name="n12">12</a>
<a href="#n13" name="n13">13</a>
<a href="#n14" name="n14">14</a>
<a href="#n15" name="n15">15</a>
<a href="#n16" name="n16">16</a>
<a href="#n17" name="n17">17</a>
<a href="#n18" name="n18">18</a>
</pre></td>
<td class="code"><pre><span class="key">mqtt</span>:
<span class="key">broker</span>: <span class="string"><span class="content">YOUR_MQTT_SERVER_HOST</span></span>
<span class="key">username</span>: <span class="string"><span class="content">your_username</span></span>
<span class="key">password</span>: <span class="string"><span class="content">your_password</span></span>
sensor:
platform: mqtt
name: "Temperature"
state_topic: "sensor/temperature"
qos: 0
unit_of_measurement: "ºC"
<span class="key">sensor</span>:
<span class="key">platform</span>: <span class="string"><span class="content">mqtt</span></span>
<span class="key">name</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">Temperature</span><span class="delimiter">&quot;</span></span>
<span class="key">state_topic</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">sensor/temperature</span><span class="delimiter">&quot;</span></span>
<span class="key">qos</span>: <span class="string"><span class="content">0</span></span>
<span class="key">unit_of_measurement</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">ºC</span><span class="delimiter">&quot;</span></span>
sensor 2:
platform: mqtt
name: "Humidity"
state_topic: "sensor/humidity"
qos: 0
unit_of_measurement: "%"
</code></pre>
<span class="key">sensor 2</span>:
<span class="key">platform</span>: <span class="string"><span class="content">mqtt</span></span>
<span class="key">name</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">Humidity</span><span class="delimiter">&quot;</span></span>
<span class="key">state_topic</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">sensor/humidity</span><span class="delimiter">&quot;</span></span>
<span class="key">qos</span>: <span class="string"><span class="content">0</span></span>
<span class="key">unit_of_measurement</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">%</span><span class="delimiter">&quot;</span></span>
</pre></td>
</tr></table>
</div>
]]></content>
</entry>

View file

@ -5,8 +5,6 @@
<!--[if gt IE 8]><!--> <html> <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
@ -32,7 +30,6 @@
<link rel='icon' type='image/png' href='/images/favicon-192x192.png' sizes='192x192' />
</head>
<body >
<header>
@ -54,10 +51,10 @@
<a href="/getting-started/">Getting started</a>
<ul>
<li><a href='/getting-started/'>Installing Home Assistant</a></li>
<li><a href='/getting-started/configuration.html'>Configuration basics</a></li>
<li><a href='/getting-started/devices.html'>Adding devices</a></li>
<li><a href='/getting-started/presence-detection.html'>Presence detection</a></li>
<li><a href='/getting-started/automation.html'>Automation</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>
@ -65,26 +62,24 @@
<li>
<a href="/developers/">Developers</a>
<ul>
<li><a href="/developers/architecture.html">Architecture</a></li>
<li><a href="/developers/frontend.html">Frontend development</a></li>
<li><a href="/developers/creating_components.html">
<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.html">
<li><a href="/developers/add_new_platform/">
Adding platform support
</a></li>
<li><a href="/developers/api.html">API</a></li>
<li><a href="/developers/credits.html">Credits</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>
@ -116,9 +111,7 @@
<h2>2015</h2>
<article>
<div class="grid">
<div class="grid">
<div class="grid__item one-fifth palm-one-whole">
<time datetime="2015-10-11T12:10:00-07:00" pubdate>
@ -129,8 +122,6 @@
<h1 class="gamma"><a href="/blog/2015/10/11/measure-temperature-with-esp8266-and-report-to-mqtt/">Report the temperature with ESP8266 to MQTT</a></h1>
<footer class="meta">
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -145,7 +136,6 @@
</ul>
</span>
</footer>
<hr class="divider">
@ -168,21 +158,20 @@
<section class="sharing aside-module grid__item one-whole lap-one-half">
<h1 class="title delta">Share this post</h1>
<a href="//twitter.com/share"
class="twitter-share-button"
data-url="https://home-assistant.io/blog/categories/esp8266/index.html"
data-counturl="https://home-assistant.io/blog/categories/esp8266/index.html" >Tweet</a>
data-url="https://home-assistant.io/blog/categories/esp8266/"
data-counturl="https://home-assistant.io/blog/categories/esp8266/" >Tweet</a>
<div class="g-plusone" data-size="standard"></div>
<div class="fb-share-button" style='top: -6px;'
data-href="https://home-assistant.io/blog/categories/esp8266/index.html"
data-href="https://home-assistant.io/blog/categories/esp8266/"
data-layout="button_count">
</div>
@ -250,7 +239,6 @@
</div>
</aside>
</div>
@ -261,30 +249,23 @@
<div class="grid">
<div class="grid__item">
<p class="copyright">
<span class="credit">Powered by <a href="http://octopress.org">Octopress</a>, <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>
<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>
<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>
<script>
var disqus_shortname = 'home-assistant';
@ -298,13 +279,5 @@
}());
</script>
</body>
</html>

View file

@ -4,7 +4,7 @@
<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/"/>
<updated>2015-10-27T12:45:27-07:00</updated>
<updated>2015-10-29T00:08:34-07:00</updated>
<id>https://home-assistant.io/</id>
<author>
<name><![CDATA[Paulus Schoutsen]]></name>
@ -22,21 +22,17 @@
<p>A new toggle has been added ot the sidebar to turn streaming updates on and off. This preference will be saved on a per-browser basis using local storage. The toggle will also indicate when there is an error setting up a stream after which it will fall back to use polling.</p>
<p class='img'><img src='https://home-assistant.io/images/screenshots/streaming-updates.png' /></p>
<p class="img"><img src="https://home-assistant.io/images/screenshots/streaming-updates.png" /></p>
<!--more-->
<p>Streaming updates has been implemented using the HTML5 <code>EventSource</code> tag. Implementation is pretty straight forward as all the reconnection logic will be handled by the event source tag. The <a href="https://github.com/balloob/home-assistant/blob/master/homeassistant/components/api.py#L90">server-side code</a> is 50 lines and the <a href="https://github.com/balloob/home-assistant-js/blob/master/src/actions/stream.js">client-side code</a> is 80 lines of code.</p>
<p>All events that happen on the server will now also be sent to the browser. This turns any browser running the UI into a fully functioning <a href="https://home-assistant.io/developers/architecture.html#multiple-connected-instances">slave instance</a> of Home Assistant. This opens up new possibilities for Home Assistant components that live completely client-side.</p>
<p>All events that happen on the server will now also be sent to the browser. This turns any browser running the UI into a fully functioning <a href="https://home-assistant.io/developers/architecture/#multiple-connected-instances">slave instance</a> of Home Assistant. This opens up new possibilities for Home Assistant components that live completely client-side.</p>
<p>Implementing EventSource was not without challenges. Here are some of the issues that had to be solved:</p>
<p>A connection can go stale in Chrome without any event handler being called. This happens when a device goes into standby. For computers this is rare but for phones this occurs quite often. This has been solved by sending a regular ping from the server. The frontend will assume the connection has gone stale when it hasn&rsquo;t heard any communication for a while. Sending a ping will also help the server detect broken connections and clean them up.</p>
<p>A connection can go stale in Chrome without any event handler being called. This happens when a device goes into standby. For computers this is rare but for phones this occurs quite often. This has been solved by sending a regular ping from the server. The frontend will assume the connection has gone stale when it hasnt heard any communication for a while. Sending a ping will also help the server detect broken connections and clean them up.</p>
<p>Another issue that I encountered is that Safari and Firefox would not fire the <code>open</code> event when the connection has been opened but when the first message has been received. To work around this the server will now fire a ping when the connection gets opened.</p>
]]></content>
@ -50,44 +46,35 @@
<content type="html"><![CDATA[<p>Ever since the launch of Home Assistant you have been able to track the state of your house. But the view has always been limited to what the current state is. Not what it was. Today we are going to change that by introducing two brand new components:</p>
<ul>
<li>Recorder component that will record every event to a SQLite database</li>
<li>History component that will query and aggregate the recorded events</li>
<li>Recorder component that will record every event to a SQLite database</li>
<li>History component that will query and aggregate the recorded events</li>
</ul>
<p>By adding this view into the past, we are adding an extra dimension into the state of your house. This brings great new possibilities for future features. The focus of todays release is on getting the recording component to you to start recording and getting some data. To show what is being recorded a view has been added that shows the last 24 hours of your house. Expect more extensive tools to explore your history in the future.</p>
<p>Adding history to the UI was a challenge on itself because the old UI did not support easy navigation. So to add to the awesomeness of this release, Home Assistant also got a face lift.</p>
<p>The history component will be enabled for new users by default. For current users, run <code>scripts/update</code> to upgrade to the latest version and add <code>[history]</code> to your <code>home-assistant.conf</code> file.</p>
<p class='img'>
<a href='/images/screenshots/component_history_24h.png'>
<img src='/images/screenshots/component_history_24h.png' />
<p class="img">
<a href="/images/screenshots/component_history_24h.png">
<img src="/images/screenshots/component_history_24h.png" />
</a>
</p>
<p class='note'>
<p class="note">
Events are saved in a local database. Google Graphs is used to draw the graph. Drawing is happening 100% in your browser - no data is transfered to anyone at any time.
</p>
<!--more-->
<p>Tracking history is an exciting next step for Home Assistant and will power the next generation of features. Here a list of some of the cool things that can now be build:</p>
<ul>
<li>Time Machine: explore the state of your house at any point in the past</li>
<li>Smart Home: analyze behavior and use it to automate your house</li>
<li>Summarize usage of the different components of your house</li>
<li>Time Machine: explore the state of your house at any point in the past</li>
<li>Smart Home: analyze behavior and use it to automate your house</li>
<li>Summarize usage of the different components of your house</li>
</ul>
]]></content>
</entry>

View file

@ -5,8 +5,6 @@
<!--[if gt IE 8]><!--> <html> <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
@ -32,7 +30,6 @@
<link rel='icon' type='image/png' href='/images/favicon-192x192.png' sizes='192x192' />
</head>
<body >
<header>
@ -54,10 +51,10 @@
<a href="/getting-started/">Getting started</a>
<ul>
<li><a href='/getting-started/'>Installing Home Assistant</a></li>
<li><a href='/getting-started/configuration.html'>Configuration basics</a></li>
<li><a href='/getting-started/devices.html'>Adding devices</a></li>
<li><a href='/getting-started/presence-detection.html'>Presence detection</a></li>
<li><a href='/getting-started/automation.html'>Automation</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>
@ -65,26 +62,24 @@
<li>
<a href="/developers/">Developers</a>
<ul>
<li><a href="/developers/architecture.html">Architecture</a></li>
<li><a href="/developers/frontend.html">Frontend development</a></li>
<li><a href="/developers/creating_components.html">
<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.html">
<li><a href="/developers/add_new_platform/">
Adding platform support
</a></li>
<li><a href="/developers/api.html">API</a></li>
<li><a href="/developers/credits.html">Credits</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>
@ -116,9 +111,7 @@
<h2>2015</h2>
<article>
<div class="grid">
<div class="grid">
<div class="grid__item one-fifth palm-one-whole">
<time datetime="2015-02-24T22:41:27-08:00" pubdate>
@ -129,8 +122,6 @@
<h1 class="gamma"><a href="/blog/2015/02/24/streaming-updates/">Streaming updates</a></h1>
<footer class="meta">
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -141,7 +132,6 @@
</ul>
</span>
</footer>
<hr class="divider">
@ -153,9 +143,7 @@
<article>
<div class="grid">
<div class="grid">
<div class="grid__item one-fifth palm-one-whole">
<time datetime="2015-02-08T09:01:23-08:00" pubdate>
@ -166,8 +154,6 @@
<h1 class="gamma"><a href="/blog/2015/02/08/looking-at-the-past/">Looking at the past</a></h1>
<footer class="meta">
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -180,7 +166,6 @@
</ul>
</span>
</footer>
<hr class="divider">
@ -203,21 +188,20 @@
<section class="sharing aside-module grid__item one-whole lap-one-half">
<h1 class="title delta">Share this post</h1>
<a href="//twitter.com/share"
class="twitter-share-button"
data-url="https://home-assistant.io/blog/categories/frontend/index.html"
data-counturl="https://home-assistant.io/blog/categories/frontend/index.html" >Tweet</a>
data-url="https://home-assistant.io/blog/categories/frontend/"
data-counturl="https://home-assistant.io/blog/categories/frontend/" >Tweet</a>
<div class="g-plusone" data-size="standard"></div>
<div class="fb-share-button" style='top: -6px;'
data-href="https://home-assistant.io/blog/categories/frontend/index.html"
data-href="https://home-assistant.io/blog/categories/frontend/"
data-layout="button_count">
</div>
@ -285,7 +269,6 @@
</div>
</aside>
</div>
@ -296,30 +279,23 @@
<div class="grid">
<div class="grid__item">
<p class="copyright">
<span class="credit">Powered by <a href="http://octopress.org">Octopress</a>, <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>
<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>
<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>
<script>
var disqus_shortname = 'home-assistant';
@ -333,13 +309,5 @@
}());
</script>
</body>
</html>

File diff suppressed because it is too large Load diff

View file

@ -5,8 +5,6 @@
<!--[if gt IE 8]><!--> <html> <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
@ -32,7 +30,6 @@
<link rel='icon' type='image/png' href='/images/favicon-192x192.png' sizes='192x192' />
</head>
<body >
<header>
@ -54,10 +51,10 @@
<a href="/getting-started/">Getting started</a>
<ul>
<li><a href='/getting-started/'>Installing Home Assistant</a></li>
<li><a href='/getting-started/configuration.html'>Configuration basics</a></li>
<li><a href='/getting-started/devices.html'>Adding devices</a></li>
<li><a href='/getting-started/presence-detection.html'>Presence detection</a></li>
<li><a href='/getting-started/automation.html'>Automation</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>
@ -65,26 +62,24 @@
<li>
<a href="/developers/">Developers</a>
<ul>
<li><a href="/developers/architecture.html">Architecture</a></li>
<li><a href="/developers/frontend.html">Frontend development</a></li>
<li><a href="/developers/creating_components.html">
<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.html">
<li><a href="/developers/add_new_platform/">
Adding platform support
</a></li>
<li><a href="/developers/api.html">API</a></li>
<li><a href="/developers/credits.html">Credits</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>
@ -116,9 +111,7 @@
<h2>2015</h2>
<article>
<div class="grid">
<div class="grid">
<div class="grid__item one-fifth palm-one-whole">
<time datetime="2015-10-11T12:10:00-07:00" pubdate>
@ -129,8 +122,6 @@
<h1 class="gamma"><a href="/blog/2015/10/11/measure-temperature-with-esp8266-and-report-to-mqtt/">Report the temperature with ESP8266 to MQTT</a></h1>
<footer class="meta">
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -145,7 +136,6 @@
</ul>
</span>
</footer>
<hr class="divider">
@ -157,9 +147,7 @@
<article>
<div class="grid">
<div class="grid">
<div class="grid__item one-fifth palm-one-whole">
<time datetime="2015-09-18T02:00:00-07:00" pubdate>
@ -170,8 +158,6 @@
<h1 class="gamma"><a href="/blog/2015/09/18/monitoring-with-glances-and-home-assistant/">Remote Monitoring with Glances</a></h1>
<footer class="meta">
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -182,7 +168,6 @@
</ul>
</span>
</footer>
<hr class="divider">
@ -194,9 +179,7 @@
<article>
<div class="grid">
<div class="grid">
<div class="grid__item one-fifth palm-one-whole">
<time datetime="2015-09-13T09:28:00-07:00" pubdate>
@ -207,8 +190,6 @@
<h1 class="gamma"><a href="/blog/2015/09/13/home-assistant-meets-ifttt/">Home Assistant meets IFTTT</a></h1>
<footer class="meta">
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -221,7 +202,6 @@
</ul>
</span>
</footer>
<hr class="divider">
@ -233,9 +213,7 @@
<article>
<div class="grid">
<div class="grid">
<div class="grid__item one-fifth palm-one-whole">
<time datetime="2015-09-11T02:19:38-07:00" pubdate>
@ -246,8 +224,6 @@
<h1 class="gamma"><a href="/blog/2015/09/11/different-ways-to-use-mqtt-with-home-assistant/">Using MQTT with Home Assistant</a></h1>
<footer class="meta">
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -260,7 +236,6 @@
</ul>
</span>
</footer>
<hr class="divider">
@ -283,21 +258,20 @@
<section class="sharing aside-module grid__item one-whole lap-one-half">
<h1 class="title delta">Share this post</h1>
<a href="//twitter.com/share"
class="twitter-share-button"
data-url="https://home-assistant.io/blog/categories/how-to/index.html"
data-counturl="https://home-assistant.io/blog/categories/how-to/index.html" >Tweet</a>
data-url="https://home-assistant.io/blog/categories/how-to/"
data-counturl="https://home-assistant.io/blog/categories/how-to/" >Tweet</a>
<div class="g-plusone" data-size="standard"></div>
<div class="fb-share-button" style='top: -6px;'
data-href="https://home-assistant.io/blog/categories/how-to/index.html"
data-href="https://home-assistant.io/blog/categories/how-to/"
data-layout="button_count">
</div>
@ -365,7 +339,6 @@
</div>
</aside>
</div>
@ -376,30 +349,23 @@
<div class="grid">
<div class="grid__item">
<p class="copyright">
<span class="credit">Powered by <a href="http://octopress.org">Octopress</a>, <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>
<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>
<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>
<script>
var disqus_shortname = 'home-assistant';
@ -413,13 +379,5 @@
}());
</script>
</body>
</html>

View file

@ -4,7 +4,7 @@
<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/"/>
<updated>2015-10-27T12:45:27-07:00</updated>
<updated>2015-10-29T00:08:34-07:00</updated>
<id>https://home-assistant.io/</id>
<author>
<name><![CDATA[Paulus Schoutsen]]></name>
@ -18,250 +18,364 @@
<link href="https://home-assistant.io/blog/2015/10/11/measure-temperature-with-esp8266-and-report-to-mqtt/"/>
<updated>2015-10-11T12:10:00-07:00</updated>
<id>https://home-assistant.io/blog/2015/10/11/measure-temperature-with-esp8266-and-report-to-mqtt</id>
<content type="html"><![CDATA[<p>I recently learned about the ESP8266, a $5 chip that includes WiFi and is Arduino compatible. This means
that all your DIY projects can now be done for a fraction of the price.</p>
<content type="html"><![CDATA[
<p>I recently learned about the ESP8266, a $5 chip that includes WiFi and is Arduino compatible. This means that all your DIY projects can now be done for a fraction of the price.</p>
<p>For this tutorial, I&rsquo;ll walk through how to get going with ESP8266, get the temperature and humidity and
report it to MQTT where Home Asssistant can pick it up.</p>
<p>For this tutorial, Ill walk through how to get going with ESP8266, get the temperature and humidity and report it to MQTT where Home Asssistant can pick it up.</p>
<p class='img'>
<img src='https://home-assistant.io/images/blog/2015-10-esp8266-temp/setup.png' />
<p class="img">
<img src="https://home-assistant.io/images/blog/2015-10-esp8266-temp/setup.png" />
Picture of the final setup (+ 2 LED for decoration)
</p>
<p class='img'>
<img src='https://home-assistant.io/images/blog/2015-10-esp8266-temp/ha-sensor.png' />
<p class="img">
<img src="https://home-assistant.io/images/blog/2015-10-esp8266-temp/ha-sensor.png" />
Home Assistant will keep track of historical values and allow you to integrate it into automation.
</p>
<!--more-->
<h3>Components</h3>
<p>I&rsquo;ve been using Adafruit for my shopping:</p>
<p>Ive been using Adafruit for my shopping:</p>
<ul>
<li><a href="http://www.adafruit.com/product/2471">Adafruit HUZZAH ESP8266 Breakout</a> (<a href="https://learn.adafruit.com/adafruit-huzzah-esp8266-breakout/assembly">assembly instructions</a>)</li>
<li><a href="http://www.adafruit.com/product/2635">Adafruit HDC1008 Temperature &amp; Humidity Sensor Breakout Board</a> (<a href="https://learn.adafruit.com/adafruit-hdc1008-temperature-and-humidity-sensor-breakout/assembly">assembly instructions</a>)</li>
<li><a href="/components/mqtt.html#picking-a-broker">MQTT server</a></li>
<li><a href="http://www.adafruit.com/product/2471">Adafruit HUZZAH ESP8266 Breakout</a> (<a href="https://learn.adafruit.com/adafruit-huzzah-esp8266-breakout/assembly">assembly instructions</a>)</li>
<li><a href="http://www.adafruit.com/product/2635">Adafruit HDC1008 Temperature &amp; Humidity Sensor Breakout Board</a> (<a href="https://learn.adafruit.com/adafruit-hdc1008-temperature-and-humidity-sensor-breakout/assembly">assembly instructions</a>)</li>
<li><a href="/components/mqtt/#picking-a-broker">MQTT server</a></li>
</ul>
<p><em>Besides this, you will need the usual hardware prototype equipment: a breadboard, some wires,
soldering iron + wire, Serial USB cable.</em></p>
<p><em>Besides this, you will need the usual hardware prototype equipment: a breadboard, some wires, soldering iron + wire, Serial USB cable.</em></p>
<h3>Connections</h3>
<p>On your breadboard, make the following connections from your ESP8266 to the HDC1008:</p>
<table>
<thead>
<tr>
<th> ESP8266 </th>
<th> HDC1008 </th>
</tr>
</thead>
<tbody>
<tr>
<td> GND </td>
<td> GND</td>
</tr>
<tr>
<td> 3V </td>
<td> Vin</td>
</tr>
<tr>
<td> 14 </td>
<td> SCL</td>
</tr>
<tr>
<td> #2 </td>
<td> SDA</td>
</tr>
</tbody>
<thead>
<tr>
<th>ESP8266</th>
<th>HDC1008</th>
</tr>
</thead>
<tbody>
<tr>
<td>GND</td>
<td>GND</td>
</tr>
<tr>
<td>3V</td>
<td>Vin</td>
</tr>
<tr>
<td>14</td>
<td>SCL</td>
</tr>
<tr>
<td>#2</td>
<td>SDA</td>
</tr>
</tbody>
</table>
<p><em>I picked <code>#2</code> and <code>14</code> myself, you can configure them in the sketch.</em></p>
<h3>Preparing your IDE</h3>
<p>Follow <a href="https://github.com/esp8266/Arduino#installing-with-boards-manager">these instructions</a> on how
to install and prepare the Arduino IDE for ESP8266 development.</p>
<p>Follow <a href="https://github.com/esp8266/Arduino#installing-with-boards-manager">these instructions</a> on how to install and prepare the Arduino IDE for ESP8266 development.</p>
<p>After you&rsquo;re done installing, open the Arduino IDE, in the menu click on <code>sketch</code> -> <code>include library</code> ->
<code>manage libraries</code> and install the following libraries:</p>
<p>After youre done installing, open the Arduino IDE, in the menu click on <code>sketch</code> -&gt; <code>include library</code> -&gt; <code>manage libraries</code> and install the following libraries:</p>
<ul>
<li>PubSubClient by Nick &lsquo;O Leary</li>
<li>Adafruit HDC1000</li>
<li>PubSubClient by Nick O Leary</li>
<li>Adafruit HDC1000</li>
</ul>
<h3>Sketch</h3>
<p>If you have followed the previous steps, you&rsquo;re all set.</p>
<p>If you have followed the previous steps, youre all set.</p>
<ul>
<li>Open Arduino IDE and create a new sketch (<code>File</code> -> <code>New</code>)</li>
<li>Copy and paste the below sketch to the Arduino IDE</li>
<li>Adjust the values line 6 - 14 to match your setup</li>
<li>Optional: If you want to connect to an MQTT server without a username or password, adjust line 63.</li>
<li>To have the ESP8266 accept our new sketch, we have to put it in upload mode. On the ESP8266 device
keep the GPIO0 button pressed while pressing the reset button. The red led will glow half bright to
indicate it is in upload mode.</li>
<li>Press the upload button in Arduino IDE</li>
<li>Open the serial monitor (<code>Tools</code> -> <code>Serial Monitor</code>) to see the output from your device</li>
<li>Open Arduino IDE and create a new sketch (<code>File</code> -&gt; <code>New</code>)</li>
<li>Copy and paste the below sketch to the Arduino IDE</li>
<li>Adjust the values line 6 - 14 to match your setup</li>
<li>Optional: If you want to connect to an MQTT server without a username or password, adjust line 63.</li>
<li>To have the ESP8266 accept our new sketch, we have to put it in upload mode. On the ESP8266 device keep the GPIO0 button pressed while pressing the reset button. The red led will glow half bright to indicate it is in upload mode.</li>
<li>Press the upload button in Arduino IDE</li>
<li>Open the serial monitor (<code>Tools</code> -&gt; <code>Serial Monitor</code>) to see the output from your device</li>
</ul>
<p>This sketch will connect to your WiFi network and MQTT broker. It will read the temperature and humidity from the sensor every second. It will report it to the MQTT server if the difference is &gt; 1 since last reported value. Reports to the MQTT broker are sent with retain set to <code>True</code>. This means that anyone connecting to the MQTT topic will automatically be notified of the last reported value.</p>
<p>This sketch will connect to your WiFi network and MQTT broker. It will read the temperature and humidity
from the sensor every second. It will report it to the MQTT server if the difference is > 1 since last
reported value. Reports to the MQTT broker are sent with retain set to <code>True</code>. This means that anyone
connecting to the MQTT topic will automatically be notified of the last reported value.</p>
<div class="highlighter-coderay"><table class="CodeRay"><tr>
<td class="line-numbers"><pre><a href="#n1" name="n1">1</a>
<a href="#n2" name="n2">2</a>
<a href="#n3" name="n3">3</a>
<a href="#n4" name="n4">4</a>
<a href="#n5" name="n5">5</a>
<a href="#n6" name="n6">6</a>
<a href="#n7" name="n7">7</a>
<a href="#n8" name="n8">8</a>
<a href="#n9" name="n9">9</a>
<strong><a href="#n10" name="n10">10</a></strong>
<a href="#n11" name="n11">11</a>
<a href="#n12" name="n12">12</a>
<a href="#n13" name="n13">13</a>
<a href="#n14" name="n14">14</a>
<a href="#n15" name="n15">15</a>
<a href="#n16" name="n16">16</a>
<a href="#n17" name="n17">17</a>
<a href="#n18" name="n18">18</a>
<a href="#n19" name="n19">19</a>
<strong><a href="#n20" name="n20">20</a></strong>
<a href="#n21" name="n21">21</a>
<a href="#n22" name="n22">22</a>
<a href="#n23" name="n23">23</a>
<a href="#n24" name="n24">24</a>
<a href="#n25" name="n25">25</a>
<a href="#n26" name="n26">26</a>
<a href="#n27" name="n27">27</a>
<a href="#n28" name="n28">28</a>
<a href="#n29" name="n29">29</a>
<strong><a href="#n30" name="n30">30</a></strong>
<a href="#n31" name="n31">31</a>
<a href="#n32" name="n32">32</a>
<a href="#n33" name="n33">33</a>
<a href="#n34" name="n34">34</a>
<a href="#n35" name="n35">35</a>
<a href="#n36" name="n36">36</a>
<a href="#n37" name="n37">37</a>
<a href="#n38" name="n38">38</a>
<a href="#n39" name="n39">39</a>
<strong><a href="#n40" name="n40">40</a></strong>
<a href="#n41" name="n41">41</a>
<a href="#n42" name="n42">42</a>
<a href="#n43" name="n43">43</a>
<a href="#n44" name="n44">44</a>
<a href="#n45" name="n45">45</a>
<a href="#n46" name="n46">46</a>
<a href="#n47" name="n47">47</a>
<a href="#n48" name="n48">48</a>
<a href="#n49" name="n49">49</a>
<strong><a href="#n50" name="n50">50</a></strong>
<a href="#n51" name="n51">51</a>
<a href="#n52" name="n52">52</a>
<a href="#n53" name="n53">53</a>
<a href="#n54" name="n54">54</a>
<a href="#n55" name="n55">55</a>
<a href="#n56" name="n56">56</a>
<a href="#n57" name="n57">57</a>
<a href="#n58" name="n58">58</a>
<a href="#n59" name="n59">59</a>
<strong><a href="#n60" name="n60">60</a></strong>
<a href="#n61" name="n61">61</a>
<a href="#n62" name="n62">62</a>
<a href="#n63" name="n63">63</a>
<a href="#n64" name="n64">64</a>
<a href="#n65" name="n65">65</a>
<a href="#n66" name="n66">66</a>
<a href="#n67" name="n67">67</a>
<a href="#n68" name="n68">68</a>
<a href="#n69" name="n69">69</a>
<strong><a href="#n70" name="n70">70</a></strong>
<a href="#n71" name="n71">71</a>
<a href="#n72" name="n72">72</a>
<a href="#n73" name="n73">73</a>
<a href="#n74" name="n74">74</a>
<a href="#n75" name="n75">75</a>
<a href="#n76" name="n76">76</a>
<a href="#n77" name="n77">77</a>
<a href="#n78" name="n78">78</a>
<a href="#n79" name="n79">79</a>
<strong><a href="#n80" name="n80">80</a></strong>
<a href="#n81" name="n81">81</a>
<a href="#n82" name="n82">82</a>
<a href="#n83" name="n83">83</a>
<a href="#n84" name="n84">84</a>
<a href="#n85" name="n85">85</a>
<a href="#n86" name="n86">86</a>
<a href="#n87" name="n87">87</a>
<a href="#n88" name="n88">88</a>
<a href="#n89" name="n89">89</a>
<strong><a href="#n90" name="n90">90</a></strong>
<a href="#n91" name="n91">91</a>
<a href="#n92" name="n92">92</a>
<a href="#n93" name="n93">93</a>
<a href="#n94" name="n94">94</a>
<a href="#n95" name="n95">95</a>
<a href="#n96" name="n96">96</a>
<a href="#n97" name="n97">97</a>
<a href="#n98" name="n98">98</a>
<a href="#n99" name="n99">99</a>
<strong><a href="#n100" name="n100">100</a></strong>
<a href="#n101" name="n101">101</a>
<a href="#n102" name="n102">102</a>
<a href="#n103" name="n103">103</a>
<a href="#n104" name="n104">104</a>
<a href="#n105" name="n105">105</a>
<a href="#n106" name="n106">106</a>
<a href="#n107" name="n107">107</a>
<a href="#n108" name="n108">108</a>
<a href="#n109" name="n109">109</a>
</pre></td>
<td class="code"><pre><span class="preprocessor">#include</span> <span class="include">&lt;ESP8266WiFi.h&gt;</span>
<span class="preprocessor">#include</span> <span class="include">&lt;Wire.h&gt;</span>
<span class="preprocessor">#include</span> <span class="include">&lt;PubSubClient.h&gt;</span>
<span class="preprocessor">#include</span> <span class="include">&lt;Adafruit_HDC1000.h&gt;</span>
<pre><code class="cpp">#include &lt;ESP8266WiFi.h&gt;
#include &lt;Wire.h&gt;
#include &lt;PubSubClient.h&gt;
#include &lt;Adafruit_HDC1000.h&gt;
<span class="preprocessor">#define</span> wifi_ssid <span class="string"><span class="delimiter">&quot;</span><span class="content">YOUR WIFI SSID</span><span class="delimiter">&quot;</span></span>
<span class="preprocessor">#define</span> wifi_password <span class="string"><span class="delimiter">&quot;</span><span class="content">WIFI PASSWORD</span><span class="delimiter">&quot;</span></span>
#define wifi_ssid "YOUR WIFI SSID"
#define wifi_password "WIFI PASSWORD"
<span class="preprocessor">#define</span> mqtt_server <span class="string"><span class="delimiter">&quot;</span><span class="content">YOUR_MQTT_SERVER_HOST</span><span class="delimiter">&quot;</span></span>
<span class="preprocessor">#define</span> mqtt_user <span class="string"><span class="delimiter">&quot;</span><span class="content">your_username</span><span class="delimiter">&quot;</span></span>
<span class="preprocessor">#define</span> mqtt_password <span class="string"><span class="delimiter">&quot;</span><span class="content">your_password</span><span class="delimiter">&quot;</span></span>
#define mqtt_server "YOUR_MQTT_SERVER_HOST"
#define mqtt_user "your_username"
#define mqtt_password "your_password"
#define humidity_topic "sensor/humidity"
#define temperature_topic "sensor/temperature"
<span class="preprocessor">#define</span> humidity_topic <span class="string"><span class="delimiter">&quot;</span><span class="content">sensor/humidity</span><span class="delimiter">&quot;</span></span>
<span class="preprocessor">#define</span> temperature_topic <span class="string"><span class="delimiter">&quot;</span><span class="content">sensor/temperature</span><span class="delimiter">&quot;</span></span>
WiFiClient espClient;
PubSubClient client(espClient);
Adafruit_HDC1000 hdc = Adafruit_HDC1000();
void setup() {
Serial.begin(115200);
<span class="directive">void</span> setup() {
Serial.begin(<span class="integer">115200</span>);
setup_wifi();
client.setServer(mqtt_server, 1883);
client.setServer(mqtt_server, <span class="integer">1883</span>);
// Set SDA and SDL ports
Wire.begin(2, 14);
<span class="comment">// Set SDA and SDL ports</span>
Wire.begin(<span class="integer">2</span>, <span class="integer">14</span>);
// Start sensor
if (!hdc.begin()) {
Serial.println("Couldn't find sensor!");
while (1);
<span class="comment">// Start sensor</span>
<span class="keyword">if</span> (!hdc.begin()) {
Serial.println(<span class="string"><span class="delimiter">&quot;</span><span class="content">Couldn't find sensor!</span><span class="delimiter">&quot;</span></span>);
<span class="keyword">while</span> (<span class="integer">1</span>);
}}
void setup_wifi() {
delay(10);
// We start by connecting to a WiFi network
<span class="directive">void</span> setup_wifi() {
delay(<span class="integer">10</span>);
<span class="comment">// We start by connecting to a WiFi network</span>
Serial.println();
Serial.print("Connecting to ");
Serial.print(<span class="string"><span class="delimiter">&quot;</span><span class="content">Connecting to </span><span class="delimiter">&quot;</span></span>);
Serial.println(wifi_ssid);
WiFi.begin(wifi_ssid, wifi_password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
<span class="keyword">while</span> (WiFi.status() != WL_CONNECTED) {
delay(<span class="integer">500</span>);
Serial.print(<span class="string"><span class="delimiter">&quot;</span><span class="content">.</span><span class="delimiter">&quot;</span></span>);
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(<span class="string"><span class="delimiter">&quot;</span><span class="delimiter">&quot;</span></span>);
Serial.println(<span class="string"><span class="delimiter">&quot;</span><span class="content">WiFi connected</span><span class="delimiter">&quot;</span></span>);
Serial.println(<span class="string"><span class="delimiter">&quot;</span><span class="content">IP address: </span><span class="delimiter">&quot;</span></span>);
Serial.println(WiFi.localIP());
}
void reconnect() {
// Loop until we're reconnected
while (!client.connected()) {
Serial.print("Attempting MQTT connection...");
// Attempt to connect
// If you do not want to use a username and password, change next line to
// if (client.connect("ESP8266Client")) {
if (client.connect("ESP8266Client", mqtt_user, mqtt_password)) {
Serial.println("connected");
} else {
Serial.print("failed, rc=");
<span class="directive">void</span> reconnect() {
<span class="comment">// Loop until we're reconnected</span>
<span class="keyword">while</span> (!client.connected()) {
Serial.print(<span class="string"><span class="delimiter">&quot;</span><span class="content">Attempting MQTT connection...</span><span class="delimiter">&quot;</span></span>);
<span class="comment">// Attempt to connect</span>
<span class="comment">// If you do not want to use a username and password, change next line to</span>
<span class="comment">// if (client.connect(&quot;ESP8266Client&quot;)) {</span>
<span class="keyword">if</span> (client.connect(<span class="string"><span class="delimiter">&quot;</span><span class="content">ESP8266Client</span><span class="delimiter">&quot;</span></span>, mqtt_user, mqtt_password)) {
Serial.println(<span class="string"><span class="delimiter">&quot;</span><span class="content">connected</span><span class="delimiter">&quot;</span></span>);
} <span class="keyword">else</span> {
Serial.print(<span class="string"><span class="delimiter">&quot;</span><span class="content">failed, rc=</span><span class="delimiter">&quot;</span></span>);
Serial.print(client.state());
Serial.println(" try again in 5 seconds");
// Wait 5 seconds before retrying
delay(5000);
Serial.println(<span class="string"><span class="delimiter">&quot;</span><span class="content"> try again in 5 seconds</span><span class="delimiter">&quot;</span></span>);
<span class="comment">// Wait 5 seconds before retrying</span>
delay(<span class="integer">5000</span>);
}
}
}
bool checkBound(float newValue, float prevValue, float maxDiff) {
return newValue &lt; prevValue - maxDiff || newValue &gt; prevValue + maxDiff;
<span class="predefined-type">bool</span> checkBound(<span class="predefined-type">float</span> newValue, <span class="predefined-type">float</span> prevValue, <span class="predefined-type">float</span> maxDiff) {
<span class="keyword">return</span> newValue &lt; prevValue - maxDiff || newValue &gt; prevValue + maxDiff;
}
long lastMsg = 0;
float temp = 0.0;
float hum = 0.0;
float diff = 1.0;
<span class="predefined-type">long</span> lastMsg = <span class="integer">0</span>;
<span class="predefined-type">float</span> temp = <span class="float">0</span><span class="float">.0</span>;
<span class="predefined-type">float</span> hum = <span class="float">0</span><span class="float">.0</span>;
<span class="predefined-type">float</span> diff = <span class="float">1</span><span class="float">.0</span>;
void loop() {
if (!client.connected()) {
<span class="directive">void</span> loop() {
<span class="keyword">if</span> (!client.connected()) {
reconnect();
}
client.loop();
long now = millis();
if (now - lastMsg &gt; 1000) {
<span class="predefined-type">long</span> now = millis();
<span class="keyword">if</span> (now - lastMsg &gt; <span class="integer">1000</span>) {
lastMsg = now;
float newTemp = hdc.readTemperature();
float newHum = hdc.readHumidity();
<span class="predefined-type">float</span> newTemp = hdc.readTemperature();
<span class="predefined-type">float</span> newHum = hdc.readHumidity();
if (checkBound(newTemp, temp, diff)) {
<span class="keyword">if</span> (checkBound(newTemp, temp, diff)) {
temp = newTemp;
Serial.print("New temperature:");
Serial.print(<span class="string"><span class="delimiter">&quot;</span><span class="content">New temperature:</span><span class="delimiter">&quot;</span></span>);
Serial.println(String(temp).c_str());
client.publish(temperature_topic, String(temp).c_str(), true);
client.publish(temperature_topic, String(temp).c_str(), <span class="predefined-constant">true</span>);
}
if (checkBound(newHum, hum, diff)) {
<span class="keyword">if</span> (checkBound(newHum, hum, diff)) {
hum = newHum;
Serial.print("New humidity:");
Serial.print(<span class="string"><span class="delimiter">&quot;</span><span class="content">New humidity:</span><span class="delimiter">&quot;</span></span>);
Serial.println(String(hum).c_str());
client.publish(humidity_topic, String(hum).c_str(), true);
client.publish(humidity_topic, String(hum).c_str(), <span class="predefined-constant">true</span>);
}
}
}
</code></pre>
</pre></td>
</tr></table>
</div>
<h3>Configuring Home Assistant</h3>
<p>The last step is to integrate the sensor values into Home Assistant. This can be done by setting up
Home Assistant to connect to the MQTT broker and subscribe to the sensor topics.</p>
<p>The last step is to integrate the sensor values into Home Assistant. This can be done by setting up Home Assistant to connect to the MQTT broker and subscribe to the sensor topics.</p>
<pre><code class="yaml">mqtt:
broker: YOUR_MQTT_SERVER_HOST
username: your_username
password: your_password
<div class="highlighter-coderay"><table class="CodeRay"><tr>
<td class="line-numbers"><pre><a href="#n1" name="n1">1</a>
<a href="#n2" name="n2">2</a>
<a href="#n3" name="n3">3</a>
<a href="#n4" name="n4">4</a>
<a href="#n5" name="n5">5</a>
<a href="#n6" name="n6">6</a>
<a href="#n7" name="n7">7</a>
<a href="#n8" name="n8">8</a>
<a href="#n9" name="n9">9</a>
<strong><a href="#n10" name="n10">10</a></strong>
<a href="#n11" name="n11">11</a>
<a href="#n12" name="n12">12</a>
<a href="#n13" name="n13">13</a>
<a href="#n14" name="n14">14</a>
<a href="#n15" name="n15">15</a>
<a href="#n16" name="n16">16</a>
<a href="#n17" name="n17">17</a>
<a href="#n18" name="n18">18</a>
</pre></td>
<td class="code"><pre><span class="key">mqtt</span>:
<span class="key">broker</span>: <span class="string"><span class="content">YOUR_MQTT_SERVER_HOST</span></span>
<span class="key">username</span>: <span class="string"><span class="content">your_username</span></span>
<span class="key">password</span>: <span class="string"><span class="content">your_password</span></span>
sensor:
platform: mqtt
name: "Temperature"
state_topic: "sensor/temperature"
qos: 0
unit_of_measurement: "ºC"
<span class="key">sensor</span>:
<span class="key">platform</span>: <span class="string"><span class="content">mqtt</span></span>
<span class="key">name</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">Temperature</span><span class="delimiter">&quot;</span></span>
<span class="key">state_topic</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">sensor/temperature</span><span class="delimiter">&quot;</span></span>
<span class="key">qos</span>: <span class="string"><span class="content">0</span></span>
<span class="key">unit_of_measurement</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">ºC</span><span class="delimiter">&quot;</span></span>
sensor 2:
platform: mqtt
name: "Humidity"
state_topic: "sensor/humidity"
qos: 0
unit_of_measurement: "%"
</code></pre>
<span class="key">sensor 2</span>:
<span class="key">platform</span>: <span class="string"><span class="content">mqtt</span></span>
<span class="key">name</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">Humidity</span><span class="delimiter">&quot;</span></span>
<span class="key">state_topic</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">sensor/humidity</span><span class="delimiter">&quot;</span></span>
<span class="key">qos</span>: <span class="string"><span class="content">0</span></span>
<span class="key">unit_of_measurement</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">%</span><span class="delimiter">&quot;</span></span>
</pre></td>
</tr></table>
</div>
]]></content>
</entry>
@ -270,8 +384,8 @@ sensor 2:
<link href="https://home-assistant.io/blog/2015/09/11/different-ways-to-use-mqtt-with-home-assistant/"/>
<updated>2015-09-11T02:19:38-07:00</updated>
<id>https://home-assistant.io/blog/2015/09/11/different-ways-to-use-mqtt-with-home-assistant</id>
<content type="html"><![CDATA[<p><img src='https://home-assistant.io/images/supported_brands/mqtt.png' style='border:none; box-shadow: none; float: right;' height='80' />
The <a href="https://en.wikipedia.org/wiki/MQTT">MQTT</a> support was added to Home Assistant recently. The <a href="https://home-assistant.io/components/mqtt.html">MQTT component</a> will enable you to do all sort of things. Most likely you will use it to communicate with your devices. But Home Assistant doesn&rsquo;t care where the data is coming from or is limited to real hardware as long as there is MQTT support. This means that it doesn&rsquo;t matter if the data is coming from a human, a web service, or a device.</p>
<content type="html"><![CDATA[
<p><img src="https://home-assistant.io/images/supported_brands/mqtt.png" style="border:none; box-shadow: none; float: right;" height="80" /> <a href="https://en.wikipedia.org/wiki/MQTT">MQTT</a> support was added to Home Assistant recently. The <a href="https://home-assistant.io/components/mqtt/">MQTT component</a> will enable you to do all sort of things. Most likely you will use it to communicate with your devices. But Home Assistant doesnt care where the data is coming from or is limited to real hardware as long as there is MQTT support. This means that it doesnt matter if the data is coming from a human, a web service, or a device.</p>
<p>A great example is shown in a <a href="https://home-assistant.io/blog/2015/08/26/laundry-automation-with-moteino-mqtt-and-home-assistant/">Laundry Automation</a> post in this blog.</p>
@ -279,34 +393,48 @@ The <a href="https://en.wikipedia.org/wiki/MQTT">MQTT</a> support was added to H
<!--more-->
<h3><a class='title-link' name='manual-usage' href='#manual-usage'></a> Manual usage </h3>
<p>The simplest but not the coolest way as a human to interact with a Home Assistant sensor is launching a command manually. Let&rsquo;s create a &ldquo;Mood&rdquo; sensor. For simplicity Home Assistant and the MQTT broker are both running on the same host. The needed configuration snipplets to add to the <code>configuration.yaml</code> file consists of two parts: one for the broker and one for the sensor.</p>
<p>The simplest but not the coolest way as a human to interact with a Home Assistant sensor is launching a command manually. Lets create a “Mood” sensor. For simplicity Home Assistant and the MQTT broker are both running on the same host. The needed configuration snipplets to add to the <code>configuration.yaml</code> file consists of two parts: one for the broker and one for the sensor.</p>
<pre><code class="yaml">mqtt:
broker: 127.0.0.1
<div class="highlighter-coderay"><table class="CodeRay"><tr>
<td class="line-numbers"><pre><a href="#n1" name="n1">1</a>
<a href="#n2" name="n2">2</a>
<a href="#n3" name="n3">3</a>
<a href="#n4" name="n4">4</a>
<a href="#n5" name="n5">5</a>
<a href="#n6" name="n6">6</a>
<a href="#n7" name="n7">7</a>
</pre></td>
<td class="code"><pre><span class="key">mqtt</span>:
<span class="key">broker</span>: <span class="string"><span class="content">127.0.0.1</span></span>
sensor:
- platform: mqtt
name: "Fabian's Mood"
state_topic: "home-assistant/fabian/mood"
</code></pre>
<span class="key">sensor</span>:
- <span class="string"><span class="content">platform: mqtt</span></span>
<span class="key">name</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">Fabian's Mood</span><span class="delimiter">&quot;</span></span>
<span class="key">state_topic</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">home-assistant/fabian/mood</span><span class="delimiter">&quot;</span></span>
</pre></td>
</tr></table>
</div>
<p>After a restart of Home Assistant the &ldquo;Mood&rdquo; sensor will show up in the frontend. For more details about the configuration of MQTT itself and the sensor, please refer to the <a href="https://home-assistant.io/components/mqtt.html">MQTT component</a> or the <a href="https://home-assistant.io/components/sensor.mqtt.html">MQTT sensor</a> documentation.</p>
<p>After a restart of Home Assistant the “Mood” sensor will show up in the frontend. For more details about the configuration of MQTT itself and the sensor, please refer to the <a href="https://home-assistant.io/components/mqtt/">MQTT component</a> or the <a href="https://home-assistant.io/components/sensor.mqtt/">MQTT sensor</a> documentation.</p>
<p>Now we can set the mood. The commandline tool (<code>mosquitto_pub</code>) which is shipped with <code>mosquitto</code> is used to send an MQTT message.</p>
<pre><code class="bash">mosquitto_pub -h 127.0.0.1 -t "home-assistant/fabian/mood" -m "bad"
</code></pre>
<div class="highlighter-coderay"><table class="CodeRay"><tr>
<td class="line-numbers"><pre><a href="#n1" name="n1">1</a>
</pre></td>
<td class="code"><pre>$ mosquitto_pub -h 127.0.0.1 -t &quot;home-assistant/fabian/mood&quot; -m &quot;bad&quot;
</pre></td>
</tr></table>
</div>
<p class='img'>
<img src='https://home-assistant.io/images/blog/2015-09-mqtt/mood.png' />
<p class="img">
<img src="https://home-assistant.io/images/blog/2015-09-mqtt/mood.png" />
The Mood sensor
</p>
<p>This is a really bad example. Don&rsquo;t do this in the real world because you won&rsquo;t be able to create diagrams of historical data. Better use a numerical value.</p>
<p>This is a really bad example. Dont do this in the real world because you wont be able to create diagrams of historical data. Better use a numerical value.</p>
<h3><a class='title-link' name='python-mqtt-bindings' href='#python-mqtt-bindings'></a> Python MQTT bindings </h3>
@ -314,150 +442,261 @@ sensor:
<p>This example is using the <a href="https://eclipse.org/paho/clients/python/">Paho MQTT Python binding</a> because those binding should be available on the host where Home Assistant is running. If you want to use this example on another machine, please make sure that the bindings are installed (<code>pip3 install paho-mqtt</code>).</p>
<p>The first step is to add an additional MQTT sensor to the <code>configuration.yaml</code> file. The sensor will be called &ldquo;Lottery&rdquo; and the unit of measurement will be &ldquo;No.&rdquo;.</p>
<p>The first step is to add an additional MQTT sensor to the <code>configuration.yaml</code> file. The sensor will be called “Lottery” and the unit of measurement will be “No.”.</p>
<pre><code class="yaml"> - platform: mqtt
name: "Lottery"
state_topic: "home-assistant/lottery/number"
unit_of_measurement: "No."
</code></pre>
<div class="highlighter-coderay"><table class="CodeRay"><tr>
<td class="line-numbers"><pre><a href="#n1" name="n1">1</a>
<a href="#n2" name="n2">2</a>
<a href="#n3" name="n3">3</a>
<a href="#n4" name="n4">4</a>
</pre></td>
<td class="code"><pre> - <span class="string"><span class="content">platform: mqtt</span></span>
<span class="key">name</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">Lottery</span><span class="delimiter">&quot;</span></span>
<span class="key">state_topic</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">home-assistant/lottery/number</span><span class="delimiter">&quot;</span></span>
<span class="key">unit_of_measurement</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">No.</span><span class="delimiter">&quot;</span></span>
</pre></td>
</tr></table>
</div>
<p>Don&rsquo;t forget to restart Home Assistant to make the configuration active.</p>
<p>Dont forget to restart Home Assistant to make the configuration active.</p>
<p>To play, we need numbers from 1 to 49 which can be marked on the ticket. Those numbers should be random and displayed in the Home Assistant frontend. The Python script below is another simple example on how to send MQTT messages from the commandline; this time in a loop. For further information and examples please check the <a href="https://eclipse.org/paho/clients/python/docs/">Paho MQTT</a> documentation.</p>
<pre><code class="python">#!/usr/bin/python3
#
import time
import random
import paho.mqtt.client as mqtt
import paho.mqtt.publish as publish
<div class="highlighter-coderay"><table class="CodeRay"><tr>
<td class="line-numbers"><pre><a href="#n1" name="n1">1</a>
<a href="#n2" name="n2">2</a>
<a href="#n3" name="n3">3</a>
<a href="#n4" name="n4">4</a>
<a href="#n5" name="n5">5</a>
<a href="#n6" name="n6">6</a>
<a href="#n7" name="n7">7</a>
<a href="#n8" name="n8">8</a>
<a href="#n9" name="n9">9</a>
<strong><a href="#n10" name="n10">10</a></strong>
<a href="#n11" name="n11">11</a>
<a href="#n12" name="n12">12</a>
<a href="#n13" name="n13">13</a>
<a href="#n14" name="n14">14</a>
<a href="#n15" name="n15">15</a>
<a href="#n16" name="n16">16</a>
<a href="#n17" name="n17">17</a>
<a href="#n18" name="n18">18</a>
<a href="#n19" name="n19">19</a>
<strong><a href="#n20" name="n20">20</a></strong>
<a href="#n21" name="n21">21</a>
<a href="#n22" name="n22">22</a>
</pre></td>
<td class="code"><pre><span class="comment">#!/usr/bin/python3</span>
<span class="comment">#</span>
<span class="keyword">import</span> <span class="include">time</span>
<span class="keyword">import</span> <span class="include">random</span>
<span class="keyword">import</span> <span class="include">paho.mqtt.client</span> <span class="keyword">as</span> mqtt
<span class="keyword">import</span> <span class="include">paho.mqtt.publish</span> <span class="keyword">as</span> publish
broker = '127.0.0.1'
state_topic = 'home-assistant/lottery/number'
delay = 5
broker = <span class="string"><span class="delimiter">'</span><span class="content">127.0.0.1</span><span class="delimiter">'</span></span>
state_topic = <span class="string"><span class="delimiter">'</span><span class="content">home-assistant/lottery/number</span><span class="delimiter">'</span></span>
delay = <span class="integer">5</span>
# Send a single message to set the mood
publish.single('home-assistant/fabian/mood', 'good', hostname=broker)
<span class="comment"># Send a single message to set the mood</span>
publish.single(<span class="string"><span class="delimiter">'</span><span class="content">home-assistant/fabian/mood</span><span class="delimiter">'</span></span>, <span class="string"><span class="delimiter">'</span><span class="content">good</span><span class="delimiter">'</span></span>, hostname=broker)
# Send messages in a loop
client = mqtt.Client("ha-client")
<span class="comment"># Send messages in a loop</span>
client = mqtt.Client(<span class="string"><span class="delimiter">&quot;</span><span class="content">ha-client</span><span class="delimiter">&quot;</span></span>)
client.connect(broker)
client.loop_start()
while True:
client.publish(state_topic, random.randrange(0, 50, 1))
<span class="keyword">while</span> <span class="predefined-constant">True</span>:
client.publish(state_topic, random.randrange(<span class="integer">0</span>, <span class="integer">50</span>, <span class="integer">1</span>))
time.sleep(delay)
</code></pre>
</pre></td>
</tr></table>
</div>
<p>Every 5 seconds a message with a new number is sent to the broker and picked up by Home Assistant. By the way, my mood is much better now.</p>
<p class='img'>
<img src='https://home-assistant.io/images/blog/2015-09-mqtt/lottery.png' />
<p class="img">
<img src="https://home-assistant.io/images/blog/2015-09-mqtt/lottery.png" />
The Lottery sensor
</p>
<p>With only a few lines of Python and an MQTT broker you can create your own &ldquo;smartdevice&rdquo; or send information to Home Assistant which you haven&rsquo;t think of. Of course this is not limited to Python. If there is an MQTT library available, the device can be used with Home Assistant now.</p>
<p>With only a few lines of Python and an MQTT broker you can create your own “smartdevice” or send information to Home Assistant which you havent think of. Of course this is not limited to Python. If there is an MQTT library available, the device can be used with Home Assistant now.</p>
<h3><a class='title-link' name='arduino' href='#arduino'></a> Arduino </h3>
<p>To get started with real hardware that is capable to send MQTT messages, the Arduino platform is an inexpensive way to do it. In this section an Arduino UNO with an Ethernet shield and a photo resistor is used. The photo resistor is connected to analog pin 0 (A0) and has an output from 0 to 1024.</p>
<p class='img'>
<img src='https://home-assistant.io/images/blog/2015-09-mqtt/arduino-shield.png' />
<p class="img">
<img src="https://home-assistant.io/images/blog/2015-09-mqtt/arduino-shield.png" />
The Arduino UNO with Ethernet shield and photo resistor
</p>
<p>The <a href="http://knolleary.github.io/pubsubclient/">MQTT client</a> for the Arduino needs to be available in your Arduino IDE. Below you will find a sketch which could act as a starting point. Please modify the IP addresses, the MAC address, and the pin as needed and upload the sketch to your Arduino.</p>
<pre><code class="c">/*
<div class="highlighter-coderay"><table class="CodeRay"><tr>
<td class="line-numbers"><pre><a href="#n1" name="n1">1</a>
<a href="#n2" name="n2">2</a>
<a href="#n3" name="n3">3</a>
<a href="#n4" name="n4">4</a>
<a href="#n5" name="n5">5</a>
<a href="#n6" name="n6">6</a>
<a href="#n7" name="n7">7</a>
<a href="#n8" name="n8">8</a>
<a href="#n9" name="n9">9</a>
<strong><a href="#n10" name="n10">10</a></strong>
<a href="#n11" name="n11">11</a>
<a href="#n12" name="n12">12</a>
<a href="#n13" name="n13">13</a>
<a href="#n14" name="n14">14</a>
<a href="#n15" name="n15">15</a>
<a href="#n16" name="n16">16</a>
<a href="#n17" name="n17">17</a>
<a href="#n18" name="n18">18</a>
<a href="#n19" name="n19">19</a>
<strong><a href="#n20" name="n20">20</a></strong>
<a href="#n21" name="n21">21</a>
<a href="#n22" name="n22">22</a>
<a href="#n23" name="n23">23</a>
<a href="#n24" name="n24">24</a>
<a href="#n25" name="n25">25</a>
<a href="#n26" name="n26">26</a>
<a href="#n27" name="n27">27</a>
<a href="#n28" name="n28">28</a>
<a href="#n29" name="n29">29</a>
<strong><a href="#n30" name="n30">30</a></strong>
<a href="#n31" name="n31">31</a>
<a href="#n32" name="n32">32</a>
<a href="#n33" name="n33">33</a>
<a href="#n34" name="n34">34</a>
<a href="#n35" name="n35">35</a>
<a href="#n36" name="n36">36</a>
<a href="#n37" name="n37">37</a>
<a href="#n38" name="n38">38</a>
<a href="#n39" name="n39">39</a>
<strong><a href="#n40" name="n40">40</a></strong>
<a href="#n41" name="n41">41</a>
<a href="#n42" name="n42">42</a>
<a href="#n43" name="n43">43</a>
<a href="#n44" name="n44">44</a>
<a href="#n45" name="n45">45</a>
<a href="#n46" name="n46">46</a>
<a href="#n47" name="n47">47</a>
<a href="#n48" name="n48">48</a>
<a href="#n49" name="n49">49</a>
<strong><a href="#n50" name="n50">50</a></strong>
<a href="#n51" name="n51">51</a>
<a href="#n52" name="n52">52</a>
<a href="#n53" name="n53">53</a>
<a href="#n54" name="n54">54</a>
<a href="#n55" name="n55">55</a>
<a href="#n56" name="n56">56</a>
<a href="#n57" name="n57">57</a>
<a href="#n58" name="n58">58</a>
<a href="#n59" name="n59">59</a>
<strong><a href="#n60" name="n60">60</a></strong>
<a href="#n61" name="n61">61</a>
<a href="#n62" name="n62">62</a>
<a href="#n63" name="n63">63</a>
<a href="#n64" name="n64">64</a>
<a href="#n65" name="n65">65</a>
<a href="#n66" name="n66">66</a>
<a href="#n67" name="n67">67</a>
<a href="#n68" name="n68">68</a>
</pre></td>
<td class="code"><pre><span class="comment">/*
This sketch is based on the basic MQTT example by
http://knolleary.github.io/pubsubclient/
*/
*/</span>
#include &lt;SPI.h&gt;
#include &lt;Ethernet.h&gt;
#include &lt;PubSubClient.h&gt;
<span class="preprocessor">#include</span> <span class="include">&lt;SPI.h&gt;</span>
<span class="preprocessor">#include</span> <span class="include">&lt;Ethernet.h&gt;</span>
<span class="preprocessor">#include</span> <span class="include">&lt;PubSubClient.h&gt;</span>
#define DEBUG 1 // Debug output to serial console
<span class="preprocessor">#define</span> DEBUG <span class="integer">1</span> <span class="comment">// Debug output to serial console</span>
// Device settings
IPAddress deviceIp(192, 168, 0, 43);
byte deviceMac[] = { 0xAB, 0xCD, 0xFE, 0xFE, 0xFE, 0xFE };
char* deviceId = "sensor01"; // Name of the sensor
char* stateTopic = "home-assistant/sensor01/brightness"; // MQTT topic where values are published
int sensorPin = A0; // Pin to which the sensor is connected to
char buf[4]; // Buffer to store the sensor value
int updateInterval = 1000; // Interval in miliseconds
<span class="comment">// Device settings</span>
IPAddress deviceIp(<span class="integer">192</span>, <span class="integer">168</span>, <span class="integer">0</span>, <span class="integer">43</span>);
byte deviceMac[] = { <span class="hex">0xAB</span>, <span class="hex">0xCD</span>, <span class="hex">0xFE</span>, <span class="hex">0xFE</span>, <span class="hex">0xFE</span>, <span class="hex">0xFE</span> };
<span class="predefined-type">char</span>* deviceId = <span class="string"><span class="delimiter">&quot;</span><span class="content">sensor01</span><span class="delimiter">&quot;</span></span>; <span class="comment">// Name of the sensor</span>
<span class="predefined-type">char</span>* stateTopic = <span class="string"><span class="delimiter">&quot;</span><span class="content">home-assistant/sensor01/brightness</span><span class="delimiter">&quot;</span></span>; <span class="comment">// MQTT topic where values are published</span>
<span class="predefined-type">int</span> sensorPin = A0; <span class="comment">// Pin to which the sensor is connected to</span>
<span class="predefined-type">char</span> buf[<span class="integer">4</span>]; <span class="comment">// Buffer to store the sensor value</span>
<span class="predefined-type">int</span> updateInterval = <span class="integer">1000</span>; <span class="comment">// Interval in miliseconds</span>
// MQTT server settings
IPAddress mqttServer(192, 168, 0, 12);
int mqttPort = 1883;
<span class="comment">// MQTT server settings</span>
IPAddress mqttServer(<span class="integer">192</span>, <span class="integer">168</span>, <span class="integer">0</span>, <span class="integer">12</span>);
<span class="predefined-type">int</span> mqttPort = <span class="integer">1883</span>;
EthernetClient ethClient;
PubSubClient client(ethClient);
void reconnect() {
while (!client.connected()) {
#if DEBUG
Serial.print("Attempting MQTT connection...");
#endif
if (client.connect(deviceId)) {
#if DEBUG
Serial.println("connected");
#endif
} else {
#if DEBUG
Serial.print("failed, rc=");
<span class="directive">void</span> reconnect() {
<span class="keyword">while</span> (!client.connected()) {
<span class="preprocessor">#if</span> DEBUG
Serial.print(<span class="string"><span class="delimiter">&quot;</span><span class="content">Attempting MQTT connection...</span><span class="delimiter">&quot;</span></span>);
<span class="preprocessor">#endif</span>
<span class="keyword">if</span> (client.connect(deviceId)) {
<span class="preprocessor">#if</span> DEBUG
Serial.println(<span class="string"><span class="delimiter">&quot;</span><span class="content">connected</span><span class="delimiter">&quot;</span></span>);
<span class="preprocessor">#endif</span>
} <span class="keyword">else</span> {
<span class="preprocessor">#if</span> DEBUG
Serial.print(<span class="string"><span class="delimiter">&quot;</span><span class="content">failed, rc=</span><span class="delimiter">&quot;</span></span>);
Serial.print(client.state());
Serial.println(" try again in 5 seconds");
#endif
delay(5000);
Serial.println(<span class="string"><span class="delimiter">&quot;</span><span class="content"> try again in 5 seconds</span><span class="delimiter">&quot;</span></span>);
<span class="preprocessor">#endif</span>
delay(<span class="integer">5000</span>);
}
}
}
void setup() {
Serial.begin(57600);
<span class="directive">void</span> setup() {
Serial.begin(<span class="integer">57600</span>);
client.setServer(mqttServer, mqttPort);
Ethernet.begin(deviceMac, deviceIp);
delay(1500);
delay(<span class="integer">1500</span>);
}
void loop() {
if (!client.connected()) {
<span class="directive">void</span> loop() {
<span class="keyword">if</span> (!client.connected()) {
reconnect();
}
client.loop();
int sensorValue = analogRead(sensorPin);
#if DEBUG
Serial.print("Sensor value: ");
<span class="predefined-type">int</span> sensorValue = analogRead(sensorPin);
<span class="preprocessor">#if</span> DEBUG
Serial.print(<span class="string"><span class="delimiter">&quot;</span><span class="content">Sensor value: </span><span class="delimiter">&quot;</span></span>);
Serial.println(sensorValue);
#endif
client.publish(stateTopic, itoa(sensorValue, buf, 10));
<span class="preprocessor">#endif</span>
client.publish(stateTopic, itoa(sensorValue, buf, <span class="integer">10</span>));
delay(updateInterval);
}
</code></pre>
</pre></td>
</tr></table>
</div>
<p>The Arduino will send the value of the sensor every second. To use the data in Home Assistant, add an additional MQTT sensor to the <code>configuration.yaml</code> file.</p>
<pre><code class="yaml"> - platform: mqtt
name: "Brightness"
state_topic: "home-assistant/sensor01/brightness"
unit_of_measurement: "cd"
</code></pre>
<div class="highlighter-coderay"><table class="CodeRay"><tr>
<td class="line-numbers"><pre><a href="#n1" name="n1">1</a>
<a href="#n2" name="n2">2</a>
<a href="#n3" name="n3">3</a>
<a href="#n4" name="n4">4</a>
</pre></td>
<td class="code"><pre> - <span class="string"><span class="content">platform: mqtt</span></span>
<span class="key">name</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">Brightness</span><span class="delimiter">&quot;</span></span>
<span class="key">state_topic</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">home-assistant/sensor01/brightness</span><span class="delimiter">&quot;</span></span>
<span class="key">unit_of_measurement</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">cd</span><span class="delimiter">&quot;</span></span>
</pre></td>
</tr></table>
</div>
<p>After a restart of Home Assistant the values of your Arduino will be available.</p>
<p class='img'>
<img src='https://home-assistant.io/images/blog/2015-09-mqtt/arduino.png' />
<p class="img">
<img src="https://home-assistant.io/images/blog/2015-09-mqtt/arduino.png" />
The Brightness sensor
</p>
<p>I hope that this post could give you some ideas about the usage Home Assistant and MQTT. If you are working on a cool project that includes Home Assistant, please let us now.</p>
]]></content>
</entry>

View file

@ -5,8 +5,6 @@
<!--[if gt IE 8]><!--> <html> <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
@ -32,7 +30,6 @@
<link rel='icon' type='image/png' href='/images/favicon-192x192.png' sizes='192x192' />
</head>
<body >
<header>
@ -54,10 +51,10 @@
<a href="/getting-started/">Getting started</a>
<ul>
<li><a href='/getting-started/'>Installing Home Assistant</a></li>
<li><a href='/getting-started/configuration.html'>Configuration basics</a></li>
<li><a href='/getting-started/devices.html'>Adding devices</a></li>
<li><a href='/getting-started/presence-detection.html'>Presence detection</a></li>
<li><a href='/getting-started/automation.html'>Automation</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>
@ -65,26 +62,24 @@
<li>
<a href="/developers/">Developers</a>
<ul>
<li><a href="/developers/architecture.html">Architecture</a></li>
<li><a href="/developers/frontend.html">Frontend development</a></li>
<li><a href="/developers/creating_components.html">
<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.html">
<li><a href="/developers/add_new_platform/">
Adding platform support
</a></li>
<li><a href="/developers/api.html">API</a></li>
<li><a href="/developers/credits.html">Credits</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>
@ -116,9 +111,7 @@
<h2>2015</h2>
<article>
<div class="grid">
<div class="grid">
<div class="grid__item one-fifth palm-one-whole">
<time datetime="2015-10-11T12:10:00-07:00" pubdate>
@ -129,8 +122,6 @@
<h1 class="gamma"><a href="/blog/2015/10/11/measure-temperature-with-esp8266-and-report-to-mqtt/">Report the temperature with ESP8266 to MQTT</a></h1>
<footer class="meta">
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -145,7 +136,6 @@
</ul>
</span>
</footer>
<hr class="divider">
@ -157,9 +147,7 @@
<article>
<div class="grid">
<div class="grid">
<div class="grid__item one-fifth palm-one-whole">
<time datetime="2015-09-11T02:19:38-07:00" pubdate>
@ -170,8 +158,6 @@
<h1 class="gamma"><a href="/blog/2015/09/11/different-ways-to-use-mqtt-with-home-assistant/">Using MQTT with Home Assistant</a></h1>
<footer class="meta">
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -184,7 +170,6 @@
</ul>
</span>
</footer>
<hr class="divider">
@ -207,21 +192,20 @@
<section class="sharing aside-module grid__item one-whole lap-one-half">
<h1 class="title delta">Share this post</h1>
<a href="//twitter.com/share"
class="twitter-share-button"
data-url="https://home-assistant.io/blog/categories/mqtt/index.html"
data-counturl="https://home-assistant.io/blog/categories/mqtt/index.html" >Tweet</a>
data-url="https://home-assistant.io/blog/categories/mqtt/"
data-counturl="https://home-assistant.io/blog/categories/mqtt/" >Tweet</a>
<div class="g-plusone" data-size="standard"></div>
<div class="fb-share-button" style='top: -6px;'
data-href="https://home-assistant.io/blog/categories/mqtt/index.html"
data-href="https://home-assistant.io/blog/categories/mqtt/"
data-layout="button_count">
</div>
@ -289,7 +273,6 @@
</div>
</aside>
</div>
@ -300,30 +283,23 @@
<div class="grid">
<div class="grid__item">
<p class="copyright">
<span class="credit">Powered by <a href="http://octopress.org">Octopress</a>, <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>
<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>
<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>
<script>
var disqus_shortname = 'home-assistant';
@ -337,13 +313,5 @@
}());
</script>
</body>
</html>

View file

@ -4,7 +4,7 @@
<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/"/>
<updated>2015-10-27T12:45:27-07:00</updated>
<updated>2015-10-29T00:08:34-07:00</updated>
<id>https://home-assistant.io/</id>
<author>
<name><![CDATA[Paulus Schoutsen]]></name>
@ -18,58 +18,47 @@
<link href="https://home-assistant.io/blog/2015/10/26/firetv-and-radiotherm-now-supported/"/>
<updated>2015-10-26T18:10:00-07:00</updated>
<id>https://home-assistant.io/blog/2015/10/26/firetv-and-radiotherm-now-supported</id>
<content type="html"><![CDATA[<p>After two weeks of hard work I&rsquo;m proud to announce the release of Home Assistant v0.7.6. For this release the main
focus was bugs, test coverage and documentation. And we exceeded expectations on all three fronts. Bugs have been
squashed, <a href="https://coveralls.io/builds/3946399">test coverage increased to 85%</a> and thanks to the hard work by
<a href="https://github.com/fabaff">@fabaff</a> and myself the <a href="/components/">component section</a> on the website has gotten a
complete revamp.</p>
<content type="html"><![CDATA[<p>After two weeks of hard work Im proud to announce the release of Home Assistant v0.7.6. For this release the main focus was bugs, test coverage and documentation. And we exceeded expectations on all three fronts. Bugs have been squashed, <a href="https://coveralls.io/builds/3946399">test coverage increased to 85%</a> and thanks to the hard work by <a href="https://github.com/fabaff">@fabaff</a> and myself the <a href="/components/">component section</a> on the website has gotten a complete revamp.</p>
<h4>Changes</h4>
<p><img src='https://home-assistant.io/images/supported_brands/radiotherm.png' style='border:none; box-shadow: none; float: right; margin-bottom: 16px;' height='50' />
<img src='https://home-assistant.io/images/supported_brands/firetv.png' style='border:none; box-shadow: none; float: right; margin-bottom: 16px; clear: right;' height='50' />
<img src='https://home-assistant.io/images/supported_brands/geofancy.png' style='border:none; box-shadow: none; float: right; margin-bottom: 16px; clear: right;' height='50' /></p>
<p><img src="https://home-assistant.io/images/supported_brands/radiotherm.png" style="border:none; box-shadow: none; float: right; margin-bottom: 16px;" height="50" /><img src="https://home-assistant.io/images/supported_brands/firetv.png" style="border:none; box-shadow: none; float: right; margin-bottom: 16px; clear: right;" height="50" /><img src="https://home-assistant.io/images/supported_brands/geofancy.png" style="border:none; box-shadow: none; float: right; margin-bottom: 16px; clear: right;" height="50" /></p>
<ul>
<li>Device tracker: Newer <a href="/components/device_tracker.tplink.html">TP-Link routers</a> now supported (<a href="https://github.com/mKeRix">@mKeRix</a>)</li>
<li>Alarm Control Panel: <a href="/components/alarm_control_panel.manual.html">Manual alarm</a> added (<a href="https://github.com/sfam">@sfam</a>)</li>
<li>Thermostat: <a href="/components/thermostat.radiotherm.html">Radiotherm</a> now supported (<a href="https://github.com/toddeye">@toddeye</a>)</li>
<li>Media Player: <a href="/components/media_player.firetv.html">Amazon FireTV</a> now supported (<a href="https://github.com/happyleavesaoc">@happyleavesaoc</a>)</li>
<li>Device Tracker: <a href="/components/device_tracker.geofancy.html">Geofancy</a> now supported (<a href="https://github.com/wind-rider">@wind-rider</a>)</li>
<li>New component <a href="/components/shell_command.html">Shell Command</a> can expose shell commands as services (<a href="https://github.com/balloob">@balloob</a>)</li>
<li><a href="/components/script.html">Scripts</a> can now be customized using <code>customize</code> key in <code>configuration.yaml</code> (<a href="https://github.com/balloob">@balloob</a>)</li>
<li>Light: <a href="/components/light.hyperion.html">Hyperion</a> now supported (<a href="https://github.com/MakeMeASandwich">@MakeMeASandwich</a>)</li>
<li>Sensor: <a href="/components/sensor.arest.html">aRest</a> can now also read out pins (<a href="https://github.com/balloob">@balloob</a>)</li>
<li>Sensor: <a href="/components/sensor.forecast.html">Forecast.io</a> now supports specifying units in <code>configuration.yaml</code> (<a href="https://github.com/balloob">@balloob</a>)</li>
<li>Thermostat: <a href="/components/thermostat.heat_control.html">Heat Control</a> has been completely rewritten (<a href="https://github.com/balloob">@balloob</a>)</li>
<li>Switch: <a href="/components/switch.rest.html">Rest</a> now supported (<a href="https://github.com/bachp">@bachp</a>)</li>
<li>Media Player: <a href="/components/media_player.plex.html">Plex</a> can now be auto discovered and configure itself (<a href="https://github.com/tomduijf">@tomduijf</a>)</li>
<li><a href="/components/downloader.html">Downloader</a> will now treat relative paths based on config dir (<a href="https://github.com/tomduijf">@tomduijf</a>)</li>
<li>Line Charts will use interpolation for sensor data and show current and target temperature for thermostats (<a href="https://github.com/balloob">@balloob</a>)</li>
<li>Device Tracker: <a href="/components/device_tracker.ubus.html">OpenWRT via ubus</a> now supported (<a href="https://github.com/krzynio">@krzynio</a>)</li>
<li>Device tracker: Newer <a href="/components/device_tracker.tplink/">TP-Link routers</a> now supported (<a href="https://github.com/mKeRix">@mKeRix</a>)</li>
<li>Alarm Control Panel: <a href="/components/alarm_control_panel.manual/">Manual alarm</a> added (<a href="https://github.com/sfam">@sfam</a>)</li>
<li>Thermostat: <a href="/components/thermostat.radiotherm/">Radiotherm</a> now supported (<a href="https://github.com/toddeye">@toddeye</a>)</li>
<li>Media Player: <a href="/components/media_player.firetv/">Amazon FireTV</a> now supported (<a href="https://github.com/happyleavesaoc">@happyleavesaoc</a>)</li>
<li>Device Tracker: <a href="/components/device_tracker.geofancy/">Geofancy</a> now supported (<a href="https://github.com/wind-rider">@wind-rider</a>)</li>
<li>New component <a href="/components/shell_command/">Shell Command</a> can expose shell commands as services (<a href="https://github.com/balloob">@balloob</a>)</li>
<li><a href="/components/script/">Scripts</a> can now be customized using <code>customize</code> key in <code>configuration.yaml</code> (<a href="https://github.com/balloob">@balloob</a>)</li>
<li>Light: <a href="/components/light.hyperion/">Hyperion</a> now supported (<a href="https://github.com/MakeMeASandwich">@MakeMeASandwich</a>)</li>
<li>Sensor: <a href="/components/sensor.arest/">aRest</a> can now also read out pins (<a href="https://github.com/balloob">@balloob</a>)</li>
<li>Sensor: <a href="/components/sensor.forecast/">Forecast.io</a> now supports specifying units in <code>configuration.yaml</code> (<a href="https://github.com/balloob">@balloob</a>)</li>
<li>Thermostat: <a href="/components/thermostat.heat_control/">Heat Control</a> has been completely rewritten (<a href="https://github.com/balloob">@balloob</a>)</li>
<li>Switch: <a href="/components/switch.rest/">Rest</a> now supported (<a href="https://github.com/bachp">@bachp</a>)</li>
<li>Media Player: <a href="/components/media_player.plex/">Plex</a> can now be auto discovered and configure itself (<a href="https://github.com/tomduijf">@tomduijf</a>)</li>
<li><a href="/components/downloader/">Downloader</a> will now treat relative paths based on config dir (<a href="https://github.com/tomduijf">@tomduijf</a>)</li>
<li>Line Charts will use interpolation for sensor data and show current and target temperature for thermostats (<a href="https://github.com/balloob">@balloob</a>)</li>
<li>Device Tracker: <a href="/components/device_tracker.ubus/">OpenWRT via ubus</a> now supported (<a href="https://github.com/krzynio">@krzynio</a>)</li>
</ul>
<!--more-->
<h4>Breaking changes</h4>
<p>As part of this release we did some cleanup which introduced backwards incompatible changes:</p>
<p><strong>Heat Control thermostat no longer includes scheduling features.</strong><br>
This feature has been removed completely. Use the <a href="/components/automation.html">automation component</a>
instead to control target temperature.</p>
<p><strong>Heat Control thermostat no longer includes scheduling features.</strong><br />
This feature has been removed completely. Use the <a href="/components/automation/">automation component</a> instead to control target temperature.</p>
<p><strong>Config changed for calling a service from a script.</strong><br>
<code>execute_service:</code> has been replaced with <code>service:</code>. See <a href="/components/script.html">component page</a>
for example. The old method will continue working for some time.</p>
<p><strong>Config changed for calling a service from a script.</strong><br />
<code>execute_service:</code> has been replaced with <code>service:</code>. See <a href="/components/script/">component page</a> for example. The old method will continue working for some time.</p>
<p><strong>Scenes can no longer be turned off.</strong><br>
It is no longer possible to turn a scene off after it has been activated. The way it worked was unpredictable
and causes a lot of confusion.</p>
<p><strong>Scenes can no longer be turned off.</strong><br />
It is no longer possible to turn a scene off after it has been activated. The way it worked was unpredictable and causes a lot of confusion.</p>
<p><strong>Downloader treats relative paths now relative to the config dir instead of the current working dir.</strong><br>
<p><strong>Downloader treats relative paths now relative to the config dir instead of the current working dir.</strong><br />
This makes more sense as most people run Home Assistant as a daemon</p>
]]></content>
</entry>
@ -82,28 +71,23 @@ This makes more sense as most people run Home Assistant as a daemon</p>
<content type="html"><![CDATA[<p>We discovered two issues annoying enough to warrent the release of 0.7.5:</p>
<ul>
<li>Home Assistant package did not include the CloudMQTT certificate.</li>
<li>A bug in the core caused issues when some platforms are loaded twice.</li>
<li>Home Assistant package did not include the CloudMQTT certificate.</li>
<li>A bug in the core caused issues when some platforms are loaded twice.</li>
</ul>
<p>This release also includes some new platforms (because they keep coming!):</p>
<p><img src='https://home-assistant.io/images/supported_brands/blinkstick.png' style='border:none; box-shadow: none; float: right;' height='50' />
<img src='https://home-assistant.io/images/supported_brands/rfxtrx.png' style='border:none; box-shadow: none; float: right; clear: right;' height='50' />
<img src='https://home-assistant.io/images/supported_brands/telegram.png' style='border:none; box-shadow: none; float: right; clear: right;' height='50' /></p>
<p><img src="https://home-assistant.io/images/supported_brands/blinkstick.png" style="border:none; box-shadow: none; float: right;" height="50" /><img src="https://home-assistant.io/images/supported_brands/rfxtrx.png" style="border:none; box-shadow: none; float: right; clear: right;" height="50" /><img src="https://home-assistant.io/images/supported_brands/telegram.png" style="border:none; box-shadow: none; float: right; clear: right;" height="50" /></p>
<ul>
<li>Light: <a href="/components/light.blinksticklight.html">blinkstick platform</a> added (<a href="https://github.com/alanbowman">@alanbowman</a>)</li>
<li>Device Tracker: <a href="/components/device_tracker.snmp.html">SNMP platform</a> added (<a href="https://github.com/tomduijf">@tomduijf</a>)</li>
<li>Light: <a href="/components/light.rfxtrx.html">rfxtrx platform</a> added (<a href="https://github.com/badele">@badele</a>)</li>
<li>Switch: <a href="/components/switch.rfxtrx.html">rfxtrx platform</a> added (<a href="https://github.com/badele">@badele</a>)</li>
<li>Notify: <a href="/components/notify.telegram.html">telegram platform</a> added (<a href="https://github.com/fabaff">@fabaff</a>)</li>
<li>Light: <a href="/components/light.blinksticklight/">blinkstick platform</a> added (<a href="https://github.com/alanbowman">@alanbowman</a>)</li>
<li>Device Tracker: <a href="/components/device_tracker.snmp/">SNMP platform</a> added (<a href="https://github.com/tomduijf">@tomduijf</a>)</li>
<li>Light: <a href="/components/light.rfxtrx/">rfxtrx platform</a> added (<a href="https://github.com/badele">@badele</a>)</li>
<li>Switch: <a href="/components/switch.rfxtrx/">rfxtrx platform</a> added (<a href="https://github.com/badele">@badele</a>)</li>
<li>Notify: <a href="/components/notify.telegram/">telegram platform</a> added (<a href="https://github.com/fabaff">@fabaff</a>)</li>
</ul>
<p>Also, the media player was extended by <a href="https://github.com/maddox">@maddox</a> to support the play media command.
This has been implemented for the <a href="/components/media_player.itunes.html">iTunes platform</a>.</p>
<p>Also, the media player was extended by <a href="https://github.com/maddox">@maddox</a> to support the play media command. This has been implemented for the <a href="/components/media_player.itunes/">iTunes platform</a>.</p>
]]></content>
</entry>
@ -112,43 +96,37 @@ This has been implemented for the <a href="/components/media_player.itunes.html"
<link href="https://home-assistant.io/blog/2015/10/05/home-assistant-goes-geo-with-owntracks/"/>
<updated>2015-10-05T21:49:00-07:00</updated>
<id>https://home-assistant.io/blog/2015/10/05/home-assistant-goes-geo-with-owntracks</id>
<content type="html"><![CDATA[<p>A few weeks have past and it is time again for another release: version 0.7.4. This time we&rsquo;re very
glad to be able to introduce brand new integration with OwnTracks to allow tracking of people on a map.
The geo support consists of three different parts:</p>
<content type="html"><![CDATA[<p>A few weeks have past and it is time again for another release: version 0.7.4. This time were very glad to be able to introduce brand new integration with OwnTracks to allow tracking of people on a map. The geo support consists of three different parts:</p>
<ul>
<li><a href="/components/device_tracker.owntracks.html">OwnTracks platform for the device tracker</a> to get locations for devices</li>
<li>Brand new <a href="/components/zone.html">zone component</a> to define zones to identify locations and <a href="/components/automation.html#zone-trigger">trigger automation</a></li>
<li>A map in the UI to see all this (<a href="/demo/">see it in action in the demo</a>)</li>
<li><a href="/components/device_tracker.owntracks/">OwnTracks platform for the device tracker</a> to get locations for devices</li>
<li>Brand new <a href="/components/zone/">zone component</a> to define zones to identify locations and <a href="/components/automation/#zone-trigger">trigger automation</a></li>
<li>A map in the UI to see all this (<a href="/demo/">see it in action in the demo</a>)</li>
</ul>
<p>We have added a new <a href="/getting-started/presence-detection/">getting started section</a> to get up and running.</p>
<p>We have added a new <a href="/getting-started/presence-detection.html">getting started section</a> to get up and running.</p>
<p class='img'>
<img src='https://home-assistant.io/images/screenshots/map.png' />
<p class="img">
<img src="https://home-assistant.io/images/screenshots/map.png" />
Map in Home Assistant showing two people and three zones (home, school, work)
</p>
<p>Ofcourse more things happened in the last three weeks. Im moving away from my usual long post to a short summary of highlights:</p>
<p>Ofcourse more things happened in the last three weeks. I&rsquo;m moving away from my usual long post to a
short summary of highlights:</p>
<p><a href='https://home-assistant.io/components/media_player.plex.html'>
<img src='https://home-assistant.io/images/supported_brands/plex.png' style='border:none; box-shadow: none; float: right;' height='50' />
<p><a href="https://home-assistant.io/components/media_player.plex/">
<img src="https://home-assistant.io/images/supported_brands/plex.png" style="border:none; box-shadow: none; float: right;" height="50" />
</a></p>
<ul>
<li>Sensor: <a href="/components/sensor.rest.html">rest platform</a> added (<a href="https://github.com/fabaff">@fabaff</a>)</li>
<li>Alarm Control Panel: <a href="/components/alarm_control_panel.mqtt.html">MQTT platform</a> added (<a href="https://github.com/sfam">@sfam</a>)</li>
<li>Media Player: <a href="/components/media_player.plex.html">Plex platform</a> added (<a href="https://github.com/miniconfig,%20[@adrienbrault](https://github.com/adrienbrault">@miniconfig</a>)</li>
<li>Dev Tools: services can now show description of fields (<a href="https://github.com/balloob">@balloob</a>)</li>
<li>MQTT: Support for certificates and improved error reporting (<a href="https://github.com/balloob">@balloob</a>)</li>
<li>Light: <a href="/components/light.limitlessled.html">limitlessled platform</a> extended with white light support (<a href="https://github.com/auchter">@auchter</a>)</li>
<li>Fuzzy matching for scenes (<a href="https://github.com/pavoni">@pavoni</a>)</li>
<li>Scene support for media player (<a href="https://github.com/maddox">@maddox</a>)</li>
<li>Sensor: <a href="/components/sensor.rest/">rest platform</a> added (<a href="https://github.com/fabaff">@fabaff</a>)</li>
<li>Alarm Control Panel: <a href="/components/alarm_control_panel.mqtt/">MQTT platform</a> added (<a href="https://github.com/sfam">@sfam</a>)</li>
<li>Media Player: <a href="/components/media_player.plex/">Plex platform</a> added (<a href="https://github.com/miniconfig, [@adrienbrault](https://github.com/adrienbrault)">@miniconfig</a></li>
<li>Dev Tools: services can now show description of fields (<a href="https://github.com/balloob">@balloob</a>)</li>
<li>MQTT: Support for certificates and improved error reporting (<a href="https://github.com/balloob">@balloob</a>)</li>
<li>Light: <a href="/components/light.limitlessled/">limitlessled platform</a> extended with white light support (<a href="https://github.com/auchter">@auchter</a>)</li>
<li>Fuzzy matching for scenes (<a href="https://github.com/pavoni">@pavoni</a>)</li>
<li>Scene support for media player (<a href="https://github.com/maddox">@maddox</a>)</li>
</ul>
]]></content>
</entry>
@ -157,67 +135,61 @@ short summary of highlights:</p>
<link href="https://home-assistant.io/blog/2015/09/19/alarm-sonos-and-itunes-support/"/>
<updated>2015-09-19T21:47:00-07:00</updated>
<id>https://home-assistant.io/blog/2015/09/19/alarm-sonos-and-itunes-support</id>
<content type="html"><![CDATA[<p>It&rsquo;s like someone opened a can of rock solid developers and emptied it above our
<a href="https://gitter.im/balloob/home-assistant">chat channel</a> because it exploded with
great conversations and solid contributions. Featured in release 0.7.3: Sonos, iTunes, Alarm component and Automation upgrade.</p>
<content type="html"><![CDATA[<p>Its like someone opened a can of rock solid developers and emptied it above our <a href="https://gitter.im/balloob/home-assistant">chat channel</a> because it exploded with great conversations and solid contributions. Featured in release 0.7.3: Sonos, iTunes, Alarm component and Automation upgrade.</p>
<p>See <a href="https://github.com/balloob/home-assistant/releases/tag/0.7.3">GitHub</a> for more detailed release notes.</p>
<p><em>Migration note: the <code>scheduler</code> component has been removed in favor of the <code>automation</code> component.</em></p>
<p><strong>Sonos</strong><br>
<img src='https://home-assistant.io/images/supported_brands/sonos.png' style='border:none; box-shadow: none; float: right;' height='50' />
Sonos support has been added by <a href="https://github.com/rhooper">@rhooper</a> and <a href="https://github.com/SEJeff">@SEJeff</a>. Home Assistant is now able to automatically
detect Sonos devices in your network and set them up for you. It will allow you to control music
playing on your Sonos and change the volume.</p>
<p><strong>Sonos</strong><br />
<img src="https://home-assistant.io/images/supported_brands/sonos.png" style="border:none; box-shadow: none; float: right;" height="50" /> Sonos support has been added by <a href="https://github.com/rhooper">@rhooper</a> and <a href="https://github.com/SEJeff">@SEJeff</a>. Home Assistant is now able to automatically detect Sonos devices in your network and set them up for you. It will allow you to control music playing on your Sonos and change the volume.</p>
<p><strong>iTunes and airplay speakers</strong><br>
<img src='https://home-assistant.io/images/supported_brands/itunes.png' style='border:none; box-shadow: none; float: right;' height='50' />
<a href="https://github.com/maddox">@maddox</a> has contributed support for controlling iTunes and airplay speakers. For this to work you will
have to run <a href="https://github.com/maddox/itunes-api">itunes-api</a> on your Mac as middleware.</p>
<p><strong>iTunes and airplay speakers</strong><br />
<img src="https://home-assistant.io/images/supported_brands/itunes.png" style="border:none; box-shadow: none; float: right;" height="50" /> <a href="https://github.com/maddox">@maddox</a> has contributed support for controlling iTunes and airplay speakers. For this to work you will have to run <a href="https://github.com/maddox/itunes-api">itunes-api</a> on your Mac as middleware.</p>
<pre><code class="yaml"># Example configuration.yaml entry
media_player:
platform: itunes
name: iTunes
host: http://192.168.1.50
port: 8181
</code></pre>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">media_player</span>:
<span class="key">platform</span>: <span class="string"><span class="content">itunes</span></span>
<span class="key">name</span>: <span class="string"><span class="content">iTunes</span></span>
<span class="key">host</span>: <span class="string"><span class="content">http://192.168.1.50</span></span>
<span class="key">port</span>: <span class="string"><span class="content">8181</span></span>
</pre></div>
</div>
</div>
<!--more-->
<p><strong>Automation</strong><br />
Automation has gotten a lot of love. It now supports conditions, multiple triggers and new types of triggers. The best to get started with it is to head over to the new <a href="/getting-started/automation/">getting started with automation</a> page.</p>
<p><strong>Automation</strong><br>
Automation has gotten a lot of love. It now supports conditions, multiple triggers and new types of
triggers. The best to get started with it is to head over to the new
<a href="/getting-started/automation.html">getting started with automation</a> page.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example of entry in configuration.yaml</span>
<span class="key">automation</span>:
<span class="key">alias</span>: <span class="string"><span class="content">Light on in the evening</span></span>
<span class="key">trigger</span>:
- <span class="string"><span class="content">platform: sun</span></span>
<span class="key">event</span>: <span class="string"><span class="content">sunset</span></span>
<span class="key">offset</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">-01:00:00</span><span class="delimiter">&quot;</span></span>
- <span class="string"><span class="content">platform: state</span></span>
<span class="key">entity_id</span>: <span class="string"><span class="content">group.all_devices</span></span>
<span class="key">state</span>: <span class="string"><span class="content">home</span></span>
<span class="key">condition</span>:
- <span class="string"><span class="content">platform: state</span></span>
<span class="key">entity_id</span>: <span class="string"><span class="content">group.all_devices</span></span>
<span class="key">state</span>: <span class="string"><span class="content">home</span></span>
- <span class="string"><span class="content">platform: time</span></span>
<span class="key">after</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">16:00:00</span><span class="delimiter">&quot;</span></span>
<span class="key">before</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">23:00:00</span><span class="delimiter">&quot;</span></span>
<span class="key">action</span>:
<span class="key">service</span>: <span class="string"><span class="content">homeassistant.turn_on</span></span>
<span class="key">entity_id</span>: <span class="string"><span class="content">group.living_room</span></span>
</pre></div>
</div>
</div>
<pre><code class="yaml"># Example of entry in configuration.yaml
automation:
alias: Light on in the evening
trigger:
- platform: sun
event: sunset
offset: "-01:00:00"
- platform: state
entity_id: group.all_devices
state: home
condition:
- platform: state
entity_id: group.all_devices
state: home
- platform: time
after: "16:00:00"
before: "23:00:00"
action:
service: homeassistant.turn_on
entity_id: group.living_room
</code></pre>
<p><strong>Verisure Alarms</strong><br>
<img src='https://home-assistant.io/images/supported_brands/verisure.png' style='border:none; box-shadow: none; float: right;' height='50' />
We now support arming and disarming your verisure alarm from within Home Assistant thanks to added
support by <a href="https://github.com/persandstrom">@persandstrom</a>.</p>
<p><strong>Verisure Alarms</strong><br />
<img src="https://home-assistant.io/images/supported_brands/verisure.png" style="border:none; box-shadow: none; float: right;" height="50" /> We now support arming and disarming your verisure alarm from within Home Assistant thanks to added support by <a href="https://github.com/persandstrom">@persandstrom</a>.</p>
]]></content>
</entry>
@ -226,195 +198,179 @@ support by <a href="https://github.com/persandstrom">@persandstrom</a>.</p>
<link href="https://home-assistant.io/blog/2015/09/13/home-assistant-meets-ifttt/"/>
<updated>2015-09-13T09:28:00-07:00</updated>
<id>https://home-assistant.io/blog/2015/09/13/home-assistant-meets-ifttt</id>
<content type="html"><![CDATA[<p>Today we announce the release of Home Assistant v0.7.2 which includes brand new support by
<a href="https://github.com/sfam">@sfam</a> to integrate with <a href="https://ifttt.com">IFTTT</a>. IFTTT stands for If This, Then That and is a
webservice that integrates with almost every possible webservice out there. Adding Home
Assistant to this mix means Home Assistant can connect with all via IFTTT.</p>
<content type="html"><![CDATA[<p>Today we announce the release of Home Assistant v0.7.2 which includes brand new support by <a href="https://github.com/sfam">@sfam</a> to integrate with <a href="https://ifttt.com">IFTTT</a>. IFTTT stands for If This, Then That and is a webservice that integrates with almost every possible webservice out there. Adding Home Assistant to this mix means Home Assistant can connect with all via IFTTT.</p>
<p>It is now possible to disable your irregation system if it is going to be cloudy tomorrow or tweet
if your smoke alarm goes off.</p>
<p>It is now possible to disable your irregation system if it is going to be cloudy tomorrow or tweet if your smoke alarm goes off.</p>
<p class='img'>
<img src='https://home-assistant.io/images/blog/2015-09-ifttt/splash.png'>
<p class="img">
<img src="https://home-assistant.io/images/blog/2015-09-ifttt/splash.png" />
</p>
<p>Head over to the <a href="/components/ifttt.html">setup instructions</a> to get started with IFTTT. Click the
read more button for some example recipes.</p>
<p>Head over to the <a href="/components/ifttt/">setup instructions</a> to get started with IFTTT. Click the read more button for some example recipes.</p>
<!--more-->
<p>In each of the following examples, make sure to replace the XXX in the url with your correct
host address and api password.</p>
<p>In each of the following examples, make sure to replace the XXX in the url with your correct host address and api password.</p>
<h2><a class='title-link' name='turn-off-irregation-system-when-not-needed' href='#turn-off-irregation-system-when-not-needed'></a> Turn off irregation system when not needed </h2>
<p class='img'>
<img src='https://home-assistant.io/images/blog/2015-09-ifttt/recipe-weather.png' />
<p class="img">
<img src="https://home-assistant.io/images/blog/2015-09-ifttt/recipe-weather.png" />
</p>
<p>Maker channel setup:</p>
<table>
<thead>
<tr>
<th> Field </th>
<th> Value </th>
</tr>
</thead>
<tbody>
<tr>
<td> URL </td>
<td> <a href="http://xxx.xxx.xxx.xxx:8123/api/services/switch/turn_off?api_password=xxxxxxxx">http://xxx.xxx.xxx.xxx:8123/api/services/switch/turn_off?api_password=xxxxxxxx</a></td>
</tr>
<tr>
<td> METHOD </td>
<td> POST</td>
</tr>
<tr>
<td> CONTENT TYPE </td>
<td> application/json</td>
</tr>
<tr>
<td> BODY </td>
<td> { &ldquo;entity_id&rdquo;: &ldquo;switch.irrigation&rdquo; }</td>
</tr>
</tbody>
<thead>
<tr>
<th>Field</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>URL</td>
<td>http://xxx.xxx.xxx.xxx:8123/api/services/switch/turn_off?api_password=xxxxxxxx</td>
</tr>
<tr>
<td>METHOD</td>
<td>POST</td>
</tr>
<tr>
<td>CONTENT TYPE</td>
<td>application/json</td>
</tr>
<tr>
<td>BODY</td>
<td>{ “entity_id”: “switch.irrigation” }</td>
</tr>
</tbody>
</table>
<h2><a class='title-link' name='tweet-when-important-events-happen' href='#tweet-when-important-events-happen'></a> Tweet when important events happen </h2>
<p class='img'>
<img src='https://home-assistant.io/images/blog/2015-09-ifttt/recipe-twitter.png' />
<p class="img">
<img src="https://home-assistant.io/images/blog/2015-09-ifttt/recipe-twitter.png" />
</p>
<p>This will tweet a message when an MQTT message is received that the smoke alarm has been triggered. Setup Maker channel with event name <code>HA_FIRE_ALARM</code> and Twitter channel to tweet the message in <code>value1</code>.</p>
<p>This will tweet a message when an MQTT message is received that the smoke alarm has been triggered.
Setup Maker channel with event name <code>HA_FIRE_ALARM</code> and Twitter channel to tweet the message in
<code>value1</code>.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Configuration.yaml entry</span>
<span class="key">automation</span>:
- <span class="string"><span class="content">alias: Post a tweet when fire alarm is triggered</span></span>
<span class="key">trigger</span>:
<span class="key">platform</span>: <span class="string"><span class="content">mqtt</span></span>
<span class="key">mqtt_topic</span>: <span class="string"><span class="content">home/alarm/fire</span></span>
<span class="key">mqtt_payload</span>: <span class="string"><span class="content">'on'</span></span>
<pre><code class="yaml"># Configuration.yaml entry
automation:
- alias: Post a tweet when fire alarm is triggered
trigger:
platform: mqtt
mqtt_topic: home/alarm/fire
mqtt_payload: 'on'
action:
service: ifttt.trigger
data: {"event":"HA_FIRE_ALARM", "value1":"The fire alarm just triggered!"}
</code></pre>
<span class="key">action</span>:
<span class="key">service</span>: <span class="string"><span class="content">ifttt.trigger</span></span>
<span class="key">data</span>: <span class="string"><span class="content">{&quot;event&quot;:&quot;HA_FIRE_ALARM&quot;, &quot;value1&quot;:&quot;The fire alarm just triggered!&quot;}</span></span>
</pre></div>
</div>
</div>
<h2><a class='title-link' name='turn-on-lights-when-i-get-home' href='#turn-on-lights-when-i-get-home'></a> Turn on lights when I get home </h2>
<p class='img'>
<img src='https://home-assistant.io/images/blog/2015-09-ifttt/recipe-geo.png' />
<p class="img">
<img src="https://home-assistant.io/images/blog/2015-09-ifttt/recipe-geo.png" />
</p>
<p>Maker channel setup:</p>
<table>
<thead>
<tr>
<th> Field </th>
<th> Value </th>
</tr>
</thead>
<tbody>
<tr>
<td> URL </td>
<td> <a href="http://xxx.xxx.xxx.xxx:8123/api/services/light/turn_on?api_password=xxxxxxxx">http://xxx.xxx.xxx.xxx:8123/api/services/light/turn_on?api_password=xxxxxxxx</a></td>
</tr>
<tr>
<td> METHOD </td>
<td> POST</td>
</tr>
<tr>
<td> CONTENT TYPE </td>
<td> application/json</td>
</tr>
<tr>
<td> BODY </td>
<td> { &ldquo;entity_id&rdquo;: &ldquo;light.kitchen&rdquo; }</td>
</tr>
</tbody>
<thead>
<tr>
<th>Field</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>URL</td>
<td>http://xxx.xxx.xxx.xxx:8123/api/services/light/turn_on?api_password=xxxxxxxx</td>
</tr>
<tr>
<td>METHOD</td>
<td>POST</td>
</tr>
<tr>
<td>CONTENT TYPE</td>
<td>application/json</td>
</tr>
<tr>
<td>BODY</td>
<td>{ “entity_id”: “light.kitchen” }</td>
</tr>
</tbody>
</table>
<h2><a class='title-link' name='flash-lights-when-a-new-pr-comes-in-for-home-assistant' href='#flash-lights-when-a-new-pr-comes-in-for-home-assistant'></a> Flash lights when a new PR comes in for Home Assistant </h2>
<p class='img'>
<img src='https://home-assistant.io/images/blog/2015-09-ifttt/recipe-github.png' />
<p class="img">
<img src="https://home-assistant.io/images/blog/2015-09-ifttt/recipe-github.png" />
</p>
<p>Maker channel setup:</p>
<table>
<thead>
<tr>
<th> Field </th>
<th> Value </th>
</tr>
</thead>
<tbody>
<tr>
<td> URL </td>
<td> <a href="http://xxx.xxx.xxx.xxx:8123/api/services/light/turn_on?api_password=xxxxxxxx">http://xxx.xxx.xxx.xxx:8123/api/services/light/turn_on?api_password=xxxxxxxx</a></td>
</tr>
<tr>
<td> METHOD </td>
<td> POST</td>
</tr>
<tr>
<td> CONTENT TYPE </td>
<td> application/json</td>
</tr>
<tr>
<td> BODY </td>
<td> { &ldquo;entity_id&rdquo;: &ldquo;group.all_lights&rdquo;, &ldquo;flash&rdquo;:&ldquo;yes&rdquo; }</td>
</tr>
</tbody>
<thead>
<tr>
<th>Field</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>URL</td>
<td>http://xxx.xxx.xxx.xxx:8123/api/services/light/turn_on?api_password=xxxxxxxx</td>
</tr>
<tr>
<td>METHOD</td>
<td>POST</td>
</tr>
<tr>
<td>CONTENT TYPE</td>
<td>application/json</td>
</tr>
<tr>
<td>BODY</td>
<td>{ “entity_id”: “group.all_lights”, “flash”:”yes” }</td>
</tr>
</tbody>
</table>
<h2><a class='title-link' name='fire-events-when-pressing-the-do-button' href='#fire-events-when-pressing-the-do-button'></a> Fire events when pressing the DO button </h2>
<p class='img'>
<img src='https://home-assistant.io/images/blog/2015-09-ifttt/recipe-do.png' />
<p class="img">
<img src="https://home-assistant.io/images/blog/2015-09-ifttt/recipe-do.png" />
</p>
<p>Maker channel setup:</p>
<table>
<thead>
<tr>
<th> Field </th>
<th> Value </th>
</tr>
</thead>
<tbody>
<tr>
<td> URL </td>
<td> <a href="http://xxx.xxx.xxx.xxx:8123/api/events/do_button_pressed?api_password=xxxxxxxx">http://xxx.xxx.xxx.xxx:8123/api/events/do_button_pressed?api_password=xxxxxxxx</a></td>
</tr>
<tr>
<td> METHOD </td>
<td> POST</td>
</tr>
<tr>
<td> CONTENT TYPE </td>
<td> application/json</td>
</tr>
</tbody>
<thead>
<tr>
<th>Field</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>URL</td>
<td>http://xxx.xxx.xxx.xxx:8123/api/events/do_button_pressed?api_password=xxxxxxxx</td>
</tr>
<tr>
<td>METHOD</td>
<td>POST</td>
</tr>
<tr>
<td>CONTENT TYPE</td>
<td>application/json</td>
</tr>
</tbody>
</table>
]]></content>
</entry>

View file

@ -5,8 +5,6 @@
<!--[if gt IE 8]><!--> <html> <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
@ -32,7 +30,6 @@
<link rel='icon' type='image/png' href='/images/favicon-192x192.png' sizes='192x192' />
</head>
<body >
<header>
@ -54,10 +51,10 @@
<a href="/getting-started/">Getting started</a>
<ul>
<li><a href='/getting-started/'>Installing Home Assistant</a></li>
<li><a href='/getting-started/configuration.html'>Configuration basics</a></li>
<li><a href='/getting-started/devices.html'>Adding devices</a></li>
<li><a href='/getting-started/presence-detection.html'>Presence detection</a></li>
<li><a href='/getting-started/automation.html'>Automation</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>
@ -65,26 +62,24 @@
<li>
<a href="/developers/">Developers</a>
<ul>
<li><a href="/developers/architecture.html">Architecture</a></li>
<li><a href="/developers/frontend.html">Frontend development</a></li>
<li><a href="/developers/creating_components.html">
<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.html">
<li><a href="/developers/add_new_platform/">
Adding platform support
</a></li>
<li><a href="/developers/api.html">API</a></li>
<li><a href="/developers/credits.html">Credits</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>
@ -116,9 +111,7 @@
<h2>2015</h2>
<article>
<div class="grid">
<div class="grid">
<div class="grid__item one-fifth palm-one-whole">
<time datetime="2015-10-26T18:10:00-07:00" pubdate>
@ -129,8 +122,6 @@
<h1 class="gamma"><a href="/blog/2015/10/26/firetv-and-radiotherm-now-supported/">0.7.6: Amazon FireTV, Radiotherm thermostats</a></h1>
<footer class="meta">
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -141,7 +132,6 @@
</ul>
</span>
</footer>
<hr class="divider">
@ -153,9 +143,7 @@
<article>
<div class="grid">
<div class="grid">
<div class="grid__item one-fifth palm-one-whole">
<time datetime="2015-10-11T10:10:00-07:00" pubdate>
@ -166,8 +154,6 @@
<h1 class="gamma"><a href="/blog/2015/10/11/rfxtrx-blinkstick-and-snmp-support/">0.7.5: Blinkstick, SNMP, Telegram</a></h1>
<footer class="meta">
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -178,7 +164,6 @@
</ul>
</span>
</footer>
<hr class="divider">
@ -190,9 +175,7 @@
<article>
<div class="grid">
<div class="grid">
<div class="grid__item one-fifth palm-one-whole">
<time datetime="2015-10-05T21:49:00-07:00" pubdate>
@ -203,8 +186,6 @@
<h1 class="gamma"><a href="/blog/2015/10/05/home-assistant-goes-geo-with-owntracks/">Home Assistant goes geo with OwnTracks</a></h1>
<footer class="meta">
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -215,7 +196,6 @@
</ul>
</span>
</footer>
<hr class="divider">
@ -227,9 +207,7 @@
<article>
<div class="grid">
<div class="grid">
<div class="grid__item one-fifth palm-one-whole">
<time datetime="2015-09-19T21:47:00-07:00" pubdate>
@ -240,8 +218,6 @@
<h1 class="gamma"><a href="/blog/2015/09/19/alarm-sonos-and-itunes-support/">Alarms, Sonos and iTunes now supported</a></h1>
<footer class="meta">
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -252,7 +228,6 @@
</ul>
</span>
</footer>
<hr class="divider">
@ -264,9 +239,7 @@
<article>
<div class="grid">
<div class="grid">
<div class="grid__item one-fifth palm-one-whole">
<time datetime="2015-09-13T09:28:00-07:00" pubdate>
@ -277,8 +250,6 @@
<h1 class="gamma"><a href="/blog/2015/09/13/home-assistant-meets-ifttt/">Home Assistant meets IFTTT</a></h1>
<footer class="meta">
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -291,7 +262,6 @@
</ul>
</span>
</footer>
<hr class="divider">
@ -303,9 +273,7 @@
<article>
<div class="grid">
<div class="grid">
<div class="grid__item one-fifth palm-one-whole">
<time datetime="2015-08-17T20:00:00-07:00" pubdate>
@ -316,8 +284,6 @@
<h1 class="gamma"><a href="/blog/2015/08/17/verisure-and-modern-tp-link-router-support/">Verisure devices and modern TP-Link routers now supported</a></h1>
<footer class="meta">
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -328,7 +294,6 @@
</ul>
</span>
</footer>
<hr class="divider">
@ -340,9 +305,7 @@
<article>
<div class="grid">
<div class="grid">
<div class="grid__item one-fifth palm-one-whole">
<time datetime="2015-08-09T18:01:00-07:00" pubdate>
@ -353,8 +316,6 @@
<h1 class="gamma"><a href="/blog/2015/08/09/mqtt-raspberry-pi-squeezebox-asuswrt-support/">MQTT, Rasperry PI, Logitech Squeezebox and ASUSWRT routers now supported</a></h1>
<footer class="meta">
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -365,7 +326,6 @@
</ul>
</span>
</footer>
<hr class="divider">
@ -377,9 +337,7 @@
<article>
<div class="grid">
<div class="grid">
<div class="grid__item one-fifth palm-one-whole">
<time datetime="2015-07-11T01:37:00-07:00" pubdate>
@ -390,8 +348,6 @@
<h1 class="gamma"><a href="/blog/2015/07/11/ip-cameras-arduino-kodi-efergy-support/">IP Cameras, Arduinos, Kodi and Efergy Energy Monitors now supported</a></h1>
<footer class="meta">
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -402,7 +358,6 @@
</ul>
</span>
</footer>
<hr class="divider">
@ -414,9 +369,7 @@
<article>
<div class="grid">
<div class="grid">
<div class="grid__item one-fifth palm-one-whole">
<time datetime="2015-06-10T18:54:00-07:00" pubdate>
@ -427,8 +380,6 @@
<h1 class="gamma"><a href="/blog/2015/06/10/release-notes/">Release notes for June 10, 2015</a></h1>
<footer class="meta">
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -439,7 +390,6 @@
</ul>
</span>
</footer>
<hr class="divider">
@ -451,9 +401,7 @@
<article>
<div class="grid">
<div class="grid">
<div class="grid__item one-fifth palm-one-whole">
<time datetime="2015-05-14T22:25:00-07:00" pubdate>
@ -464,8 +412,6 @@
<h1 class="gamma"><a href="/blog/2015/05/14/release-notes/">Release notes for May 14, 2015</a></h1>
<footer class="meta">
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -476,7 +422,6 @@
</ul>
</span>
</footer>
<hr class="divider">
@ -488,9 +433,7 @@
<article>
<div class="grid">
<div class="grid">
<div class="grid__item one-fifth palm-one-whole">
<time datetime="2015-04-25T06:57:00-07:00" pubdate>
@ -501,8 +444,6 @@
<h1 class="gamma"><a href="/blog/2015/04/25/release-notes/">Release notes for April 25, 2015</a></h1>
<footer class="meta">
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -513,7 +454,6 @@
</ul>
</span>
</footer>
<hr class="divider">
@ -525,12 +465,10 @@
<article>
<div class="grid">
<div class="grid">
<div class="grid__item one-fifth palm-one-whole">
<time datetime="2015-03-22T00:21:00-08:00" pubdate>
<time datetime="2015-03-22T01:21:00-07:00" pubdate>
<span class='month'>Mar</span> <span class='day'>22</span>
</time>
</div>
@ -538,8 +476,6 @@
<h1 class="gamma"><a href="/blog/2015/03/22/release-notes/">Release notes for March 22, 2015</a></h1>
<footer class="meta">
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -550,7 +486,6 @@
</ul>
</span>
</footer>
<hr class="divider">
@ -562,12 +497,10 @@
<article>
<div class="grid">
<div class="grid">
<div class="grid__item one-fifth palm-one-whole">
<time datetime="2015-03-11T18:36:00-08:00" pubdate>
<time datetime="2015-03-11T19:36:00-07:00" pubdate>
<span class='month'>Mar</span> <span class='day'>11</span>
</time>
</div>
@ -575,8 +508,6 @@
<h1 class="gamma"><a href="/blog/2015/03/11/release-notes/">Release notes for March 11, 2015</a></h1>
<footer class="meta">
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -587,7 +518,6 @@
</ul>
</span>
</footer>
<hr class="divider">
@ -599,9 +529,7 @@
<article>
<div class="grid">
<div class="grid">
<div class="grid__item one-fifth palm-one-whole">
<time datetime="2015-01-24T18:36:00-08:00" pubdate>
@ -612,8 +540,6 @@
<h1 class="gamma"><a href="/blog/2015/01/24/release-notes/">Release notes for January 24, 2015</a></h1>
<footer class="meta">
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -624,7 +550,6 @@
</ul>
</span>
</footer>
<hr class="divider">
@ -647,21 +572,20 @@
<section class="sharing aside-module grid__item one-whole lap-one-half">
<h1 class="title delta">Share this post</h1>
<a href="//twitter.com/share"
class="twitter-share-button"
data-url="https://home-assistant.io/blog/categories/release-notes/index.html"
data-counturl="https://home-assistant.io/blog/categories/release-notes/index.html" >Tweet</a>
data-url="https://home-assistant.io/blog/categories/release-notes/"
data-counturl="https://home-assistant.io/blog/categories/release-notes/" >Tweet</a>
<div class="g-plusone" data-size="standard"></div>
<div class="fb-share-button" style='top: -6px;'
data-href="https://home-assistant.io/blog/categories/release-notes/index.html"
data-href="https://home-assistant.io/blog/categories/release-notes/"
data-layout="button_count">
</div>
@ -729,7 +653,6 @@
</div>
</aside>
</div>
@ -740,30 +663,23 @@
<div class="grid">
<div class="grid__item">
<p class="copyright">
<span class="credit">Powered by <a href="http://octopress.org">Octopress</a>, <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>
<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>
<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>
<script>
var disqus_shortname = 'home-assistant';
@ -777,13 +693,5 @@
}());
</script>
</body>
</html>

View file

@ -4,7 +4,7 @@
<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/"/>
<updated>2015-10-27T12:45:27-07:00</updated>
<updated>2015-10-29T00:08:34-07:00</updated>
<id>https://home-assistant.io/</id>
<author>
<name><![CDATA[Paulus Schoutsen]]></name>
@ -18,127 +18,119 @@
<link href="https://home-assistant.io/blog/2015/08/31/version-7-revamped-ui-and-improved-distribution/"/>
<updated>2015-08-31T14:12:00-07:00</updated>
<id>https://home-assistant.io/blog/2015/08/31/version-7-revamped-ui-and-improved-distribution</id>
<content type="html"><![CDATA[<p>As Home Assistant is gaining more and more users we started to feel the pain from not having a
proper release mechanism. We had no version numbering and required users to checkout the source
using Git to get started. On top of that, as the number of devices that we support keeps raising, so
did the number of dependencies that are used. That&rsquo;s why we decided to change the way we roll. From
now on:</p>
<content type="html"><![CDATA[<p>As Home Assistant is gaining more and more users we started to feel the pain from not having a proper release mechanism. We had no version numbering and required users to checkout the source using Git to get started. On top of that, as the number of devices that we support keeps raising, so did the number of dependencies that are used. Thats why we decided to change the way we roll. From now on:</p>
<ul>
<li>Each release will have a version number, starting with version 0.7. This was chosen because it
shows that we have been around for some time but are not considering ourselves to be fully
stable.</li>
<li>Each release will be pushed to PyPi. This will be the only supported method of distribution.</li>
<li>Home Assistant is available after installation as a command-line utility <code>hass</code>.</li>
<li>The default configuration location has been moved from <code>config</code> in the current working directory
to <code>~/.homeassistant</code> (<code>%APPDATA%/.homeassistant</code> on Windows).</li>
<li>Requirements for components and platforms are no longer installed into the current Python
environment (being virtual or not) but will be installed in <code>&lt;config-dir&gt;/lib</code>.</li>
<li>Each release will have a version number, starting with version 0.7. This was chosen because it shows that we have been around for some time but are not considering ourselves to be fully stable.</li>
<li>Each release will be pushed to PyPi. This will be the only supported method of distribution.</li>
<li>Home Assistant is available after installation as a command-line utility <code>hass</code>.</li>
<li>The default configuration location has been moved from <code>config</code> in the current working directory to <code>~/.homeassistant</code> (<code>%APPDATA%/.homeassistant</code> on Windows).</li>
<li>Requirements for components and platforms are no longer installed into the current Python environment (being virtual or not) but will be installed in <code>&lt;config-dir&gt;/lib</code>.</li>
</ul>
<p>A huge shout out to <a href="https://github.com/rmkraus">Ryan Kraus</a> for making this all possible. Please make sure you read <a href="/blog/2015/08/31/version-7-revamped-ui-and-improved-distribution/#read-more">the full blog post</a> for details on how to migrate your existing setup.</p>
<p>A huge shout out to <a href="https://github.com/rmkraus">Ryan Kraus</a> for making this all possible. Please
make sure you read <a href="/blog/2015/08/31/version-7-revamped-ui-and-improved-distribution/#read-more">the full blog post</a> for details on how to migrate your existing setup.</p>
<p>And while Ryan was fixing distribution, I have been hard at work in giving Home Assistant a face lift. We already looked pretty good but lacked proper form of organization for users with many devices. The new UI moves away from a card per entity and has cards per group and domain instead. <a href="/demo/">The demo</a> has been updated so give it a spin.</p>
<p>And while Ryan was fixing distribution, I have been hard at work in giving Home Assistant a face
lift. We already looked pretty good but lacked proper form of organization for users with many
devices. The new UI moves away from a card per entity and has cards per group and domain instead.
<a href="/demo/">The demo</a> has been updated so give it a spin.</p>
<p class='img'>
<a href='https://home-assistant.io/demo/'>
<img src='https://home-assistant.io/images/screenshots/ui2015.png' />
<p class="img">
<a href="https://home-assistant.io/demo/">
<img src="https://home-assistant.io/images/screenshots/ui2015.png" />
</a>
Screenshots of the new UI
</p>
<!--more-->
<h3><a class='title-link' name='migration-to-version-07' href='#migration-to-version-07'></a> Migration to version 0.7 </h3>
<p>For this example, let&rsquo;s say we have an old Home Assistant installation in
<code>/home/paulus/home-assistant</code>.</p>
<p>For this example, lets say we have an old Home Assistant installation in <code>/home/paulus/home-assistant</code>.</p>
<p>If you want to migrate your existing configuration to be used as the default configuration:</p>
<pre><code class="bash">cp -r /home/paulus/home-assistant ~/.homeassistant
</code></pre>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>$ cp -r /home/paulus/home-assistant ~/.homeassistant
</pre></div>
</div>
</div>
<p>It If you want to have the configuration in a different location, for example
<code>/home/paulus/home-assistant-config</code>, you will have to point Home Assistant at this configuration
folder when launching:</p>
<p>It If you want to have the configuration in a different location, for example <code>/home/paulus/home-assistant-config</code>, you will have to point Home Assistant at this configuration folder when launching:</p>
<pre><code class="bash">hass --config /home/paulus/home-assistant-config
</code></pre>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>$ hass --config /home/paulus/home-assistant-config
</pre></div>
</div>
</div>
<h3><a class='title-link' name='new-platforms' href='#new-platforms'></a> New platforms </h3>
<p>And last, but not least: new platforms!</p>
<p><strong>MQTT Sensors and Switches</strong><br>
<img src='https://home-assistant.io/images/supported_brands/mqtt.png' style='border:none; box-shadow: none; float: right;' height='50' />
<a href="https://github.com/sfam">@sfam</a> has blessed us with two more MQTT platforms to extend our
integration with MQTTT: <a href="/components/sensor.mqtt.html">sensor</a> and <a href="/components/switch.mqtt.html">switch</a>. Both platforms require the
MQTT component to be connected to a broker.</p>
<p><strong>MQTT Sensors and Switches</strong><br />
<img src="https://home-assistant.io/images/supported_brands/mqtt.png" style="border:none; box-shadow: none; float: right;" height="50" /> <a href="https://github.com/sfam">@sfam</a> has blessed us with two more MQTT platforms to extend our integration with MQTTT: <a href="/components/sensor.mqtt/">sensor</a> and <a href="/components/switch.mqtt/">switch</a>. Both platforms require the MQTT component to be connected to a broker.</p>
<pre><code class="yaml"># Example configuration.yml entr
sensor:
platform: mqtt
name: "MQTT Sensor"
state_topic: "home/bedroom/temperature"
unit_of_measurement: "ºC"
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yml entr</span>
<span class="key">sensor</span>:
<span class="key">platform</span>: <span class="string"><span class="content">mqtt</span></span>
<span class="key">name</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">MQTT Sensor</span><span class="delimiter">&quot;</span></span>
<span class="key">state_topic</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">home/bedroom/temperature</span><span class="delimiter">&quot;</span></span>
<span class="key">unit_of_measurement</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">ºC</span><span class="delimiter">&quot;</span></span>
switch:
platform: mqtt
name: "Bedroom Switch"
state_topic: "home/bedroom/switch1"
command_topic: "home/bedroom/switch1/set"
payload_on: "ON"
payload_off: "OFF"
optimistic: false
</code></pre>
<span class="key">switch</span>:
<span class="key">platform</span>: <span class="string"><span class="content">mqtt</span></span>
<span class="key">name</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">Bedroom Switch</span><span class="delimiter">&quot;</span></span>
<span class="key">state_topic</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">home/bedroom/switch1</span><span class="delimiter">&quot;</span></span>
<span class="key">command_topic</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">home/bedroom/switch1/set</span><span class="delimiter">&quot;</span></span>
<span class="key">payload_on</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">ON</span><span class="delimiter">&quot;</span></span>
<span class="key">payload_off</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">OFF</span><span class="delimiter">&quot;</span></span>
<span class="key">optimistic</span>: <span class="string"><span class="content">false</span></span>
</pre></div>
</div>
</div>
<p><strong>Actiontec MI424WR Verizon FIOS Wireless router</strong><br>
<img src='https://home-assistant.io/images/supported_brands/actiontec.png' style='border:none; box-shadow: none; float: right;' height='50' />
<a href="https://github.com/nkgilley">Nolan</a> has contributed support for Actiontec wireless routers.</p>
<p><strong>Actiontec MI424WR Verizon FIOS Wireless router</strong><br />
<img src="https://home-assistant.io/images/supported_brands/actiontec.png" style="border:none; box-shadow: none; float: right;" height="50" /> <a href="https://github.com/nkgilley">Nolan</a> has contributed support for Actiontec wireless routers.</p>
<pre><code class="yaml"># Example configuration.yaml entry
device_tracker:
platform: actiontec
host: YOUR_ROUTER_IP
username: YOUR_ADMIN_USERNAME
password: YOUR_ADMIN_PASSWORD
</code></pre>
<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">actiontec</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><strong>DHT temperature and humidty sensors</strong><br>
<a href="https://github.com/makemeasandwich">@MakeMeASandwich</a> has contributed support for DHT temperature
and humidity sensors. It allows you to get the current temperature and humidity from a DHT11, DHT22,
or AM2302 device.</p>
<p><strong>DHT temperature and humidty sensors</strong><br />
<a href="https://github.com/makemeasandwich">@MakeMeASandwich</a> has contributed support for DHT temperature and humidity sensors. It allows you to get the current temperature and humidity from a DHT11, DHT22, or AM2302 device.</p>
<pre><code class="yaml"># Example configuration.yaml entry
sensor:
platform: dht
sensor: DHT22
pin: 23
monitored_conditions:
- temperature
- humidity
</code></pre>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">sensor</span>:
<span class="key">platform</span>: <span class="string"><span class="content">dht</span></span>
<span class="key">sensor</span>: <span class="string"><span class="content">DHT22</span></span>
<span class="key">pin</span>: <span class="string"><span class="content">23</span></span>
<span class="key">monitored_conditions</span>:
- <span class="string"><span class="content">temperature</span></span>
- <span class="string"><span class="content">humidity</span></span>
</pre></div>
</div>
</div>
<p><strong>Aruba device tracker</strong><br>
<p><strong>Aruba device tracker</strong><br />
<a href="https://github.com/michaelarnauts">Michael Arnauts</a> has contributed support for Aruba wireless routers for presence detection.</p>
<pre><code class="yaml"># Example configuration.yaml entry
device_tracker:
platform: aruba
host: YOUR_ACCESS_POINT_IP
username: YOUR_ADMIN_USERNAME
password: YOUR_ADMIN_PASSWORD
</code></pre>
<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">aruba</span></span>
<span class="key">host</span>: <span class="string"><span class="content">YOUR_ACCESS_POINT_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>
]]></content>
</entry>
@ -151,140 +143,136 @@ device_tracker:
<p>In our house, laundry has been a struggle for quite some time. Our washer and dryer both lack a buzzer which leads to forgotten laundry, and stinky mess that needs to be rewashed. I decided to create a solution by monitoring the washer and dryer myself with some cheap electronics.</p>
<p>As an avid user of Home Assistant, I decided it would be the perfect application to manage the UI and notification system. Now all I needed was a way to monitor the washer and dryer. I tried using sound sensors but found them unreliable. I ended up opting for an accelerometer attached to the back of each appliance. I also added magnetic reed switches on the doors of the washer and dryer to detect if the doors are open or closed. I connected the accelerometers and reed switches to a <a href="https://lowpowerlab.com/moteino/">Moteino</a>, an arduino clone with an RF transceiver. The Moteino can perform the logic to figure out which state the appliances are in and wirelessly communicate that data with another Moteino that is connected via serial to my Raspberry Pi. The Raspberry Pi reads the serial data and repeats it over MQTT for Home Assistant to use. This is great because I don&rsquo;t have to run Home Assistant on the Raspberry Pi. I can run it on a faster machine and point the <a href="/components/mqtt.html">MQTT component</a> to my Raspberry Pi.</p>
<p>As an avid user of Home Assistant, I decided it would be the perfect application to manage the UI and notification system. Now all I needed was a way to monitor the washer and dryer. I tried using sound sensors but found them unreliable. I ended up opting for an accelerometer attached to the back of each appliance. I also added magnetic reed switches on the doors of the washer and dryer to detect if the doors are open or closed. I connected the accelerometers and reed switches to a <a href="https://lowpowerlab.com/moteino/">Moteino</a>, an arduino clone with an RF transceiver. The Moteino can perform the logic to figure out which state the appliances are in and wirelessly communicate that data with another Moteino that is connected via serial to my Raspberry Pi. The Raspberry Pi reads the serial data and repeats it over MQTT for Home Assistant to use. This is great because I dont have to run Home Assistant on the Raspberry Pi. I can run it on a faster machine and point the <a href="/components/mqtt/">MQTT component</a> to my Raspberry Pi.</p>
<p>After taking some sample data from the accelerometers while each appliance was in operation, I decided to plot the data to help determine the proper thresholds of when the devices were running or off. I had to do this in order to get precise ranges so the dryer sensor wouldn&rsquo;t get tripped by the washer or vice versa. In the plot below you can see the acceleration in the x direction for the accelerometer connected to the washing machine. It&rsquo;s easy to see when the washing machine is in operation here. I used the same technique for the dryer&rsquo;s accelerometer.</p>
<p>After taking some sample data from the accelerometers while each appliance was in operation, I decided to plot the data to help determine the proper thresholds of when the devices were running or off. I had to do this in order to get precise ranges so the dryer sensor wouldnt get tripped by the washer or vice versa. In the plot below you can see the acceleration in the x direction for the accelerometer connected to the washing machine. Its easy to see when the washing machine is in operation here. I used the same technique for the dryers accelerometer.</p>
<p class='img'>
<a href='https://home-assistant.io/images/blog/2015-08-laundry-automation/data-graph.png'>
<img src='https://home-assistant.io/images/blog/2015-08-laundry-automation/data-graph.png' />
<p class="img">
<a href="https://home-assistant.io/images/blog/2015-08-laundry-automation/data-graph.png">
<img src="https://home-assistant.io/images/blog/2015-08-laundry-automation/data-graph.png" />
</a>
Graph showing the accelerometer data
</p>
<!--more-->
<p>Next it was just a matter of integrating everything with Home Assistant. I was able to use the <a href="/components/mqtt/">MQTT component</a> to read the washer and dryer states from the Moteino and display it in Home Assistant.</p>
<p>Next it was just a matter of integrating everything with Home Assistant. I was able to use the <a href="/components/mqtt.html">MQTT component</a> to read the washer and dryer states from the Moteino and display it in Home Assistant.</p>
<p class='img'>
<img src='https://home-assistant.io/images/blog/2015-08-laundry-automation/screenshot-ha.png' />
<p class="img">
<img src="https://home-assistant.io/images/blog/2015-08-laundry-automation/screenshot-ha.png" />
Status of the dryer and washer in Home Assistant
</p>
<p>Next I wrote <a href="/components/script/">scripts</a> that are run whenever the washer or dryer completes a load. This is triggered by the <a href="/components/automation/">automation component</a>. When the laundry is complete I have the lights in the house turn red and <a href="/components/notify.pushbullet/">notify me via PushBullet</a>. Once the laundry is taken care of another script runs that sets the lights back to normal. So far it has been very helpful and very reliable.</p>
<p>Next I wrote <a href="/components/script.html">scripts</a> that are run whenever the washer or dryer completes a load. This is triggered by the <a href="/components/automation.html">automation component</a>. When the laundry is complete I have the lights in the house turn red and <a href="/components/notify.pushbullet.html">notify me via PushBullet</a>. Once the laundry is taken care of another script runs that sets the lights back to normal. So far it has been very helpful and very reliable.</p>
<p class='img'>
<a href='https://home-assistant.io/images/blog/2015-08-laundry-automation/moteino-and-sensors.jpg'>
<img src='https://home-assistant.io/images/blog/2015-08-laundry-automation/moteino-and-sensors.jpg' />
<p class="img">
<a href="https://home-assistant.io/images/blog/2015-08-laundry-automation/moteino-and-sensors.jpg">
<img src="https://home-assistant.io/images/blog/2015-08-laundry-automation/moteino-and-sensors.jpg" />
</a>
Top left: reed switch. Bottom left: moteino. Right: Accelerometer.
</p>
<p>Materials used:</p>
<ul>
<li><a href="https://lowpowerlab.com/moteino/">Moteino</a></li>
<li><a href="http://www.amazon.com/gp/product/B008BOPN40">2 x Accelerometers</a></li>
<li><a href="http://www.amazon.com/gp/product/B004PARDRO">2 x Reed switch</a></li>
<li><a href="https://home-assistant.io/">Home Assistant</a></li>
<li><a href="https://lowpowerlab.com/moteino/">Moteino</a></li>
<li><a href="http://www.amazon.com/gp/product/B008BOPN40">2 x Accelerometers</a></li>
<li><a href="http://www.amazon.com/gp/product/B004PARDRO">2 x Reed switch</a></li>
<li><a href="https://home-assistant.io/">Home Assistant</a></li>
</ul>
<p><a href="https://codebender.cc/sketch:144743">Sketch for the Moteino is available here.</a></p>
<p>Home Assistant Configuration:</p>
<pre><code>mqtt:
broker: 192.168.1.100
port: 1883
keepalive: 60
qos: 0
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="key">mqtt</span>:
<span class="key">broker</span>: <span class="string"><span class="content">192.168.1.100</span></span>
<span class="key">port</span>: <span class="string"><span class="content">1883</span></span>
<span class="key">keepalive</span>: <span class="string"><span class="content">60</span></span>
<span class="key">qos</span>: <span class="string"><span class="content">0</span></span>
sensor:
platform: mqtt
name: "Dryer Status"
state_topic: "sensor/dryer"
unit_of_measurement: ""
<span class="key">sensor</span>:
<span class="key">platform</span>: <span class="string"><span class="content">mqtt</span></span>
<span class="key">name</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">Dryer Status</span><span class="delimiter">&quot;</span></span>
<span class="key">state_topic</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">sensor/dryer</span><span class="delimiter">&quot;</span></span>
<span class="key">unit_of_measurement</span>: <span class="string"><span class="delimiter">&quot;</span><span class="delimiter">&quot;</span></span>
sensor 2:
platform: mqtt
name: "Washer Status"
state_topic: "sensor/washer"
unit_of_measurement: ""
<span class="key">sensor 2</span>:
<span class="key">platform</span>: <span class="string"><span class="content">mqtt</span></span>
<span class="key">name</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">Washer Status</span><span class="delimiter">&quot;</span></span>
<span class="key">state_topic</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">sensor/washer</span><span class="delimiter">&quot;</span></span>
<span class="key">unit_of_measurement</span>: <span class="string"><span class="delimiter">&quot;</span><span class="delimiter">&quot;</span></span>
automation:
alias: Dryer complete
<span class="key">automation</span>:
<span class="key">alias</span>: <span class="string"><span class="content">Dryer complete</span></span>
platform: state
state_entity_id: sensor.dryer_status
state_from: 'Running'
state_to: 'Complete'
<span class="key">platform</span>: <span class="string"><span class="content">state</span></span>
<span class="key">state_entity_id</span>: <span class="string"><span class="content">sensor.dryer_status</span></span>
<span class="key">state_from</span>: <span class="string"><span class="content">'Running'</span></span>
<span class="key">state_to</span>: <span class="string"><span class="content">'Complete'</span></span>
execute_service: script.turn_on
service_entity_id: script.dryer_complete
<span class="key">execute_service</span>: <span class="string"><span class="content">script.turn_on</span></span>
<span class="key">service_entity_id</span>: <span class="string"><span class="content">script.dryer_complete</span></span>
automation 2:
alias: Dryer emptied
<span class="key">automation 2</span>:
<span class="key">alias</span>: <span class="string"><span class="content">Dryer emptied</span></span>
platform: state
state_entity_id: sensor.dryer_status
state_from: 'Complete'
state_to: 'Empty'
<span class="key">platform</span>: <span class="string"><span class="content">state</span></span>
<span class="key">state_entity_id</span>: <span class="string"><span class="content">sensor.dryer_status</span></span>
<span class="key">state_from</span>: <span class="string"><span class="content">'Complete'</span></span>
<span class="key">state_to</span>: <span class="string"><span class="content">'Empty'</span></span>
execute_service: script.turn_on
service_entity_id: script.dryer_cleared
<span class="key">execute_service</span>: <span class="string"><span class="content">script.turn_on</span></span>
<span class="key">service_entity_id</span>: <span class="string"><span class="content">script.dryer_cleared</span></span>
script:
dryer_complete:
alias: Dryer Complete Script
sequence:
- alias: Pushbullet Notification
execute_service: notify.notify
service_data:
message: "The dryer has finished its cycle, please empty it!"
- alias: Living Room Lights Red
execute_service: scene.turn_on
service_data:
entity_id: scene.red
- delay:
seconds: 1
- alias: Living Room Lights Off
execute_service: light.turn_off
service_data:
entity_id: group.living_room
- delay:
seconds: 1
- alias: Living Room Lights Red
execute_service: scene.turn_on
service_data:
entity_id: scene.red
<span class="key">script</span>:
<span class="key">dryer_complete</span>:
<span class="key">alias</span>: <span class="string"><span class="content">Dryer Complete Script</span></span>
<span class="key">sequence</span>:
- <span class="string"><span class="content">alias: Pushbullet Notification</span></span>
<span class="key">execute_service</span>: <span class="string"><span class="content">notify.notify</span></span>
<span class="key">service_data</span>:
<span class="key">message</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">The dryer has finished its cycle, please empty it!</span><span class="delimiter">&quot;</span></span>
- <span class="string"><span class="content">alias: Living Room Lights Red</span></span>
<span class="key">execute_service</span>: <span class="string"><span class="content">scene.turn_on</span></span>
<span class="key">service_data</span>:
<span class="key">entity_id</span>: <span class="string"><span class="content">scene.red</span></span>
- <span class="string"><span class="content">delay:</span><span class="content">
seconds: 1</span></span>
- <span class="string"><span class="content">alias: Living Room Lights Off</span></span>
<span class="key">execute_service</span>: <span class="string"><span class="content">light.turn_off</span></span>
<span class="key">service_data</span>:
<span class="key">entity_id</span>: <span class="string"><span class="content">group.living_room</span></span>
- <span class="string"><span class="content">delay:</span><span class="content">
seconds: 1</span></span>
- <span class="string"><span class="content">alias: Living Room Lights Red</span></span>
<span class="key">execute_service</span>: <span class="string"><span class="content">scene.turn_on</span></span>
<span class="key">service_data</span>:
<span class="key">entity_id</span>: <span class="string"><span class="content">scene.red</span></span>
dryer_cleared:
alias: Dryer Cleared Script
sequence:
- alias: Living Room Lights Off
execute_service: light.turn_off
service_data:
entity_id: group.living_room
- delay:
seconds: 1
- alias: Living Room Lights Normal
execute_service: scene.turn_on
service_data:
entity_id: scene.normal
</code></pre>
<span class="key">dryer_cleared</span>:
<span class="key">alias</span>: <span class="string"><span class="content">Dryer Cleared Script</span></span>
<span class="key">sequence</span>:
- <span class="string"><span class="content">alias: Living Room Lights Off</span></span>
<span class="key">execute_service</span>: <span class="string"><span class="content">light.turn_off</span></span>
<span class="key">service_data</span>:
<span class="key">entity_id</span>: <span class="string"><span class="content">group.living_room</span></span>
- <span class="string"><span class="content">delay:</span><span class="content">
seconds: 1</span></span>
- <span class="string"><span class="content">alias: Living Room Lights Normal</span></span>
<span class="key">execute_service</span>: <span class="string"><span class="content">scene.turn_on</span></span>
<span class="key">service_data</span>:
<span class="key">entity_id</span>: <span class="string"><span class="content">scene.normal</span></span>
</pre></div>
</div>
</div>
<p>Resources used:</p>
<ul>
<li><a href="http://www.instructables.com/id/Uber-Home-Automation-w-Arduino-Pi/step13/Washer-Dryer-Smartifier-Water-Leak-Sensor/">Inspiration and Help with Arduino code</a></li>
<li><a href="https://github.com/LowPowerLab/RFM69/">Moteino Code</a></li>
<li><a href="http://www.instructables.com/id/Uber-Home-Automation-w-Arduino-Pi/step13/Washer-Dryer-Smartifier-Water-Leak-Sensor/">Inspiration and Help with Arduino code</a></li>
<li><a href="https://github.com/LowPowerLab/RFM69/">Moteino Code</a></li>
</ul>
]]></content>

View file

@ -5,8 +5,6 @@
<!--[if gt IE 8]><!--> <html> <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
@ -32,7 +30,6 @@
<link rel='icon' type='image/png' href='/images/favicon-192x192.png' sizes='192x192' />
</head>
<body >
<header>
@ -54,10 +51,10 @@
<a href="/getting-started/">Getting started</a>
<ul>
<li><a href='/getting-started/'>Installing Home Assistant</a></li>
<li><a href='/getting-started/configuration.html'>Configuration basics</a></li>
<li><a href='/getting-started/devices.html'>Adding devices</a></li>
<li><a href='/getting-started/presence-detection.html'>Presence detection</a></li>
<li><a href='/getting-started/automation.html'>Automation</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>
@ -65,26 +62,24 @@
<li>
<a href="/developers/">Developers</a>
<ul>
<li><a href="/developers/architecture.html">Architecture</a></li>
<li><a href="/developers/frontend.html">Frontend development</a></li>
<li><a href="/developers/creating_components.html">
<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.html">
<li><a href="/developers/add_new_platform/">
Adding platform support
</a></li>
<li><a href="/developers/api.html">API</a></li>
<li><a href="/developers/credits.html">Credits</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>
@ -116,9 +111,7 @@
<h2>2015</h2>
<article>
<div class="grid">
<div class="grid">
<div class="grid__item one-fifth palm-one-whole">
<time datetime="2015-08-31T14:12:00-07:00" pubdate>
@ -129,8 +122,6 @@
<h1 class="gamma"><a href="/blog/2015/08/31/version-7-revamped-ui-and-improved-distribution/">0.7: Better UI and improved distribution</a></h1>
<footer class="meta">
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -141,7 +132,6 @@
</ul>
</span>
</footer>
<hr class="divider">
@ -153,9 +143,7 @@
<article>
<div class="grid">
<div class="grid">
<div class="grid__item one-fifth palm-one-whole">
<time datetime="2015-08-26T08:12:00-07:00" pubdate>
@ -166,8 +154,6 @@
<h1 class="gamma"><a href="/blog/2015/08/26/laundry-automation-with-moteino-mqtt-and-home-assistant/">Laundry Automation: insight and notifications</a></h1>
<footer class="meta">
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -178,7 +164,6 @@
</ul>
</span>
</footer>
<hr class="divider">
@ -201,21 +186,20 @@
<section class="sharing aside-module grid__item one-whole lap-one-half">
<h1 class="title delta">Share this post</h1>
<a href="//twitter.com/share"
class="twitter-share-button"
data-url="https://home-assistant.io/blog/categories/user-stories/index.html"
data-counturl="https://home-assistant.io/blog/categories/user-stories/index.html" >Tweet</a>
data-url="https://home-assistant.io/blog/categories/user-stories/"
data-counturl="https://home-assistant.io/blog/categories/user-stories/" >Tweet</a>
<div class="g-plusone" data-size="standard"></div>
<div class="fb-share-button" style='top: -6px;'
data-href="https://home-assistant.io/blog/categories/user-stories/index.html"
data-href="https://home-assistant.io/blog/categories/user-stories/"
data-layout="button_count">
</div>
@ -283,7 +267,6 @@
</div>
</aside>
</div>
@ -294,30 +277,23 @@
<div class="grid">
<div class="grid__item">
<p class="copyright">
<span class="credit">Powered by <a href="http://octopress.org">Octopress</a>, <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>
<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>
<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>
<script>
var disqus_shortname = 'home-assistant';
@ -331,13 +307,5 @@
}());
</script>
</body>
</html>

View file

@ -4,7 +4,7 @@
<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/"/>
<updated>2015-10-27T12:45:27-07:00</updated>
<updated>2015-10-29T00:08:34-07:00</updated>
<id>https://home-assistant.io/</id>
<author>
<name><![CDATA[Paulus Schoutsen]]></name>

View file

@ -5,8 +5,6 @@
<!--[if gt IE 8]><!--> <html> <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
@ -32,7 +30,6 @@
<link rel='icon' type='image/png' href='/images/favicon-192x192.png' sizes='192x192' />
</head>
<body >
<header>
@ -54,10 +51,10 @@
<a href="/getting-started/">Getting started</a>
<ul>
<li><a href='/getting-started/'>Installing Home Assistant</a></li>
<li><a href='/getting-started/configuration.html'>Configuration basics</a></li>
<li><a href='/getting-started/devices.html'>Adding devices</a></li>
<li><a href='/getting-started/presence-detection.html'>Presence detection</a></li>
<li><a href='/getting-started/automation.html'>Automation</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>
@ -65,26 +62,24 @@
<li>
<a href="/developers/">Developers</a>
<ul>
<li><a href="/developers/architecture.html">Architecture</a></li>
<li><a href="/developers/frontend.html">Frontend development</a></li>
<li><a href="/developers/creating_components.html">
<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.html">
<li><a href="/developers/add_new_platform/">
Adding platform support
</a></li>
<li><a href="/developers/api.html">API</a></li>
<li><a href="/developers/credits.html">Credits</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>
@ -116,9 +111,7 @@
<h2>2014</h2>
<article>
<div class="grid">
<div class="grid">
<div class="grid__item one-fifth palm-one-whole">
<time datetime="2014-12-18T23:24:45-08:00" pubdate>
@ -129,8 +122,6 @@
<h1 class="gamma"><a href="/blog/2014/12/18/website-launched/">Website launched!</a></h1>
<footer class="meta">
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -141,7 +132,6 @@
</ul>
</span>
</footer>
<hr class="divider">
@ -164,21 +154,20 @@
<section class="sharing aside-module grid__item one-whole lap-one-half">
<h1 class="title delta">Share this post</h1>
<a href="//twitter.com/share"
class="twitter-share-button"
data-url="https://home-assistant.io/blog/categories/website/index.html"
data-counturl="https://home-assistant.io/blog/categories/website/index.html" >Tweet</a>
data-url="https://home-assistant.io/blog/categories/website/"
data-counturl="https://home-assistant.io/blog/categories/website/" >Tweet</a>
<div class="g-plusone" data-size="standard"></div>
<div class="fb-share-button" style='top: -6px;'
data-href="https://home-assistant.io/blog/categories/website/index.html"
data-href="https://home-assistant.io/blog/categories/website/"
data-layout="button_count">
</div>
@ -246,7 +235,6 @@
</div>
</aside>
</div>
@ -257,30 +245,23 @@
<div class="grid">
<div class="grid__item">
<p class="copyright">
<span class="credit">Powered by <a href="http://octopress.org">Octopress</a>, <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>
<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>
<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>
<script>
var disqus_shortname = 'home-assistant';
@ -294,13 +275,5 @@
}());
</script>
</body>
</html>

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -5,8 +5,6 @@
<!--[if gt IE 8]><!--> <html> <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
@ -23,8 +21,29 @@
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/blog/posts/3/">
<meta property="og:type" content="website">
<meta property="og:description" content="Home Assistant moving to YAML March 1, 2015 Theodor Lindquist less than one minute reading time core Comments Home Assistant is now using YAML for it&rsquo;s configuration file.
YAML allows the use &hellip;">
<meta property="og:description" content="
Home Assistant moving to YAML
March 1, 2015
Theodor Lindquist
less than one minute reading time
core
...">
<meta property="og:image" content="https://home-assistant.io/images/home-assistant-logo-2164x2164.png">
<link href="/stylesheets/screen.css" media="screen, projection" rel="stylesheet">
@ -33,7 +52,6 @@ YAML allows the use &hellip;">
<link rel='icon' type='image/png' href='/images/favicon-192x192.png' sizes='192x192' />
</head>
<body >
<header>
@ -55,10 +73,10 @@ YAML allows the use &hellip;">
<a href="/getting-started/">Getting started</a>
<ul>
<li><a href='/getting-started/'>Installing Home Assistant</a></li>
<li><a href='/getting-started/configuration.html'>Configuration basics</a></li>
<li><a href='/getting-started/devices.html'>Adding devices</a></li>
<li><a href='/getting-started/presence-detection.html'>Presence detection</a></li>
<li><a href='/getting-started/automation.html'>Automation</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>
@ -66,26 +84,24 @@ YAML allows the use &hellip;">
<li>
<a href="/developers/">Developers</a>
<ul>
<li><a href="/developers/architecture.html">Architecture</a></li>
<li><a href="/developers/frontend.html">Frontend development</a></li>
<li><a href="/developers/creating_components.html">
<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.html">
<li><a href="/developers/add_new_platform/">
Adding platform support
</a></li>
<li><a href="/developers/api.html">API</a></li>
<li><a href="/developers/credits.html">Credits</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>
@ -100,7 +116,6 @@ YAML allows the use &hellip;">
<article class="listing">
<header>
@ -111,27 +126,9 @@ YAML allows the use &hellip;">
<div class="meta clearfix">
<time datetime="2015-03-01T11:38:00-08:00" pubdate data-updated="true"><i class="icon-calendar"></i> March 1, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Theodor Lindquist</span>
<time datetime="2015-03-01T11:38:00-08:00" pubdate data-updated="true"><i class="icon-calendar"></i> March 1, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Theodor Lindquist</span>
<span><i class='icon-time'></i> less than one minute reading time</span>
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -143,7 +140,6 @@ YAML allows the use &hellip;">
</ul>
</span>
<a class='comments'
href="/blog/2015/03/01/home-assistant-migrating-to-yaml/#disqus_thread"
>Comments</a>
@ -153,22 +149,20 @@ YAML allows the use &hellip;">
</header>
<div class="entry-content clearfix">
<p>Home Assistant is now using <a href="http://yaml.org/">YAML</a> for its configuration file. YAML allows the use of lists, which should make the configuration file a bit more flexible and useful. The new configuration file format is backwards compatible with existing components. Because of this, there is no need for component developers to update their components.</p>
<p>Home Assistant is now using <a href="http://yaml.org/">YAML</a> for it&rsquo;s configuration file.
YAML allows the use of lists, which should make the configuration file a bit more flexible and useful. The new configuration file format is backwards compatible with existing components. Because of this, there is no need for component developers to update their components.</p>
<p>The new file is named configuration.yaml and if it can&rsquo;t be found in your config directory, Home Assistant will instead try to find the old configuration file, home-assistant.conf.</p>
<p>The new file is named configuration.yaml and if it cant be found in your config directory, Home Assistant will instead try to find the old configuration file, home-assistant.conf.</p>
<p>The home-assistant.conf.example has been replaced with an updated <a href="https://github.com/balloob/home-assistant/blob/dev/config/configuration.yaml.example">configuration.yaml.example</a>.</p>
<p>Users of Home Assistant should migrate as the old configuration format is deprecated.</p>
</div>
</article>
<hr>
<article class="listing">
<header>
@ -179,27 +173,9 @@ YAML allows the use of lists, which should make the configuration file a bit mor
<div class="meta clearfix">
<time datetime="2015-02-24T22:41:27-08:00" pubdate data-updated="true"><i class="icon-calendar"></i> February 24, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<time datetime="2015-02-24T22:41:27-08:00" pubdate data-updated="true"><i class="icon-calendar"></i> February 24, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<span><i class='icon-time'></i> 1 minute reading time</span>
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -211,7 +187,6 @@ YAML allows the use of lists, which should make the configuration file a bit mor
</ul>
</span>
<a class='comments'
href="/blog/2015/02/24/streaming-updates/#disqus_thread"
>Comments</a>
@ -221,26 +196,21 @@ YAML allows the use of lists, which should make the configuration file a bit mor
</header>
<div class="entry-content clearfix">
<div class="entry-content clearfix">
<p>Home Assistant has learned a new trick to get the latest information from the server: streaming updates. No longer will the frontend poll every 30 seconds for updates but instead it will keep a connection open and get the latest changes pushed as soon as they happen.</p>
<p>A new toggle has been added ot the sidebar to turn streaming updates on and off. This preference will be saved on a per-browser basis using local storage. The toggle will also indicate when there is an error setting up a stream after which it will fall back to use polling.</p>
<p class='img'><img src='/images/screenshots/streaming-updates.png' /></p>
<p class="img"><img src="/images/screenshots/streaming-updates.png" /></p>
<a class="btn pull-right" href="/blog/2015/02/24/streaming-updates/#read-more">Read on &rarr;</a>
</div>
</div>
</article>
<hr>
<article class="listing">
<header>
@ -251,27 +221,9 @@ YAML allows the use of lists, which should make the configuration file a bit mor
<div class="meta clearfix">
<time datetime="2015-02-08T09:01:23-08:00" pubdate data-updated="true"><i class="icon-calendar"></i> February 8, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<time datetime="2015-02-08T09:01:23-08:00" pubdate data-updated="true"><i class="icon-calendar"></i> February 8, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<span><i class='icon-time'></i> 1 minute reading time</span>
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -285,7 +237,6 @@ YAML allows the use of lists, which should make the configuration file a bit mor
</ul>
</span>
<a class='comments'
href="/blog/2015/02/08/looking-at-the-past/#disqus_thread"
>Comments</a>
@ -295,47 +246,38 @@ YAML allows the use of lists, which should make the configuration file a bit mor
</header>
<div class="entry-content clearfix">
<div class="entry-content clearfix">
<p>Ever since the launch of Home Assistant you have been able to track the state of your house. But the view has always been limited to what the current state is. Not what it was. Today we are going to change that by introducing two brand new components:</p>
<ul>
<li>Recorder component that will record every event to a SQLite database</li>
<li>History component that will query and aggregate the recorded events</li>
<li>Recorder component that will record every event to a SQLite database</li>
<li>History component that will query and aggregate the recorded events</li>
</ul>
<p>By adding this view into the past, we are adding an extra dimension into the state of your house. This brings great new possibilities for future features. The focus of todays release is on getting the recording component to you to start recording and getting some data. To show what is being recorded a view has been added that shows the last 24 hours of your house. Expect more extensive tools to explore your history in the future.</p>
<p>Adding history to the UI was a challenge on itself because the old UI did not support easy navigation. So to add to the awesomeness of this release, Home Assistant also got a face lift.</p>
<p>The history component will be enabled for new users by default. For current users, run <code>scripts/update</code> to upgrade to the latest version and add <code>[history]</code> to your <code>home-assistant.conf</code> file.</p>
<p class='img'>
<a href='/images/screenshots/component_history_24h.png'>
<img src='/images/screenshots/component_history_24h.png' />
<p class="img">
<a href="/images/screenshots/component_history_24h.png">
<img src="/images/screenshots/component_history_24h.png" />
</a>
</p>
<p class='note'>
<p class="note">
Events are saved in a local database. Google Graphs is used to draw the graph. Drawing is happening 100% in your browser - no data is transfered to anyone at any time.
</p>
<a class="btn pull-right" href="/blog/2015/02/08/looking-at-the-past/#read-more">Read on &rarr;</a>
</div>
</div>
</article>
<hr>
<article class="listing">
<header>
@ -346,27 +288,9 @@ Events are saved in a local database. Google Graphs is used to draw the graph. D
<div class="meta clearfix">
<time datetime="2015-01-24T18:36:00-08:00" pubdate data-updated="true"><i class="icon-calendar"></i> January 24, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<time datetime="2015-01-24T18:36:00-08:00" pubdate data-updated="true"><i class="icon-calendar"></i> January 24, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<span><i class='icon-time'></i> 1 minute reading time</span>
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -378,7 +302,6 @@ Events are saved in a local database. Google Graphs is used to draw the graph. D
</ul>
</span>
<a class='comments'
href="/blog/2015/01/24/release-notes/#disqus_thread"
>Comments</a>
@ -388,39 +311,37 @@ Events are saved in a local database. Google Graphs is used to draw the graph. D
</header>
<div class="entry-content clearfix">
<p>I have just merged the latest version of the development branch into master. Here are some of the highlights of this release:</p>
<p><strong>Configuration via the frontend</strong><br>
<p><strong>Configuration via the frontend</strong><br /><br />
Phliips Hue will now be auto discovered and uses the new <code>configurator</code> component to interact with the user to finish the setup process.</p>
<p><strong>Wink Hub support</strong><br>
<p><strong>Wink Hub support</strong><br /><br />
Thanks to the work done by John McLaughlin and Geoff Norton we now support the lights, switches and sensors that are connected to the Wink hub.</p>
<p><strong>The getting started guide and component page have been reorganized</strong><br>
<p><strong>The getting started guide and component page have been reorganized</strong><br /><br />
The getting started instructions have been split into separate pages per component and a general overview page. The goal is to have a page per component that describes:</p>
<ul>
<li>What it does</li>
<li>How to set it up</li>
<li>Which states it maintains</li>
<li>Which services it provides</li>
<li>Additional development tips</li>
<li>What it does</li>
<li>How to set it up</li>
<li>Which states it maintains</li>
<li>Which services it provides</li>
<li>Additional development tips</li>
</ul>
<p><strong>More reasonable errors</strong><br>
<p><strong>More reasonable errors</strong><br /><br />
Home Assistant should now throw better errors and offer solutions if you do not have the right version of Python 3, forgot to clone the git submodules or install the dependencies.</p>
<p><strong>Streamlined first launch</strong><br>
<p><strong>Streamlined first launch</strong><br /><br />
Home Assistant now supports <code>--open-ui</code> and <code>--demo-mode</code> command line properties to open the browser automatically and have something to show. Home Assistant now supports to be run without a password, allowing the interface to login automatically on launch.</p>
</div>
</article>
<hr>
<article class="listing">
<header>
@ -431,27 +352,9 @@ Home Assistant now supports <code>--open-ui</code> and <code>--demo-mode</code>
<div class="meta clearfix">
<time datetime="2015-01-13T08:29:04-08:00" pubdate data-updated="true"><i class="icon-calendar"></i> January 13, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<time datetime="2015-01-13T08:29:04-08:00" pubdate data-updated="true"><i class="icon-calendar"></i> January 13, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<span><i class='icon-time'></i> less than one minute reading time</span>
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -463,7 +366,6 @@ Home Assistant now supports <code>--open-ui</code> and <code>--demo-mode</code>
</ul>
</span>
<a class='comments'
href="/blog/2015/01/13/nest-in-da-house/#disqus_thread"
>Comments</a>
@ -473,34 +375,31 @@ Home Assistant now supports <code>--open-ui</code> and <code>--demo-mode</code>
</header>
<div class="entry-content clearfix">
<p>For thet majority of its existence, Home Assistant primary focus was on presence detection, lights and switches. But not anymore as were expanding the supported devices. Today, were proud to introduce Nest Thermostat integration for Home Assistant contributed by <a href="https://github.com/sfiorini">Stefano Fiorini</a>!</p>
<p>For thet majority of its existence, Home Assistant primary focus was on presence detection, lights and switches. But not anymore as we&rsquo;re expanding the supported devices. Today, we&rsquo;re proud to introduce Nest Thermostat integration for Home Assistant contributed by <a href="https://github.com/sfiorini">Stefano Fiorini</a>!</p>
<p class='img'>
<img src='/images/screenshots/nest-thermostat-card.png' />
<p class="img">
<img src="/images/screenshots/nest-thermostat-card.png" />
</p>
<p>The new integration exists out of two parts: a generic thermostat component and a Nest platform implementation. The initial version implements provides a read-only card and services to control it. The plan is in the future to add temperature and away mode controls from the thermostat card and more info dialog. Internally, we are using the Python package <a href="https://github.com/jkoelker/python-nest">python-nest by jkoelker</a> to talk to the Nest.</p>
<p>If you own a Nest thermostat, add the following lines to your <code>home-assistant.conf</code>:</p>
<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>[thermostat]
</span><span class='line'>platform=nest
</span><span class='line'>username=YOUR_USERNAME
</span><span class='line'>password=YOUR_PASSWORD</span></code></pre></td></tr></table></div></figure>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>[thermostat]
platform=nest
username=YOUR_USERNAME
password=YOUR_PASSWORD
</pre></div>
</div>
</div>
</div>
</article>
<hr>
<article class="listing">
<header>
@ -511,27 +410,9 @@ Home Assistant now supports <code>--open-ui</code> and <code>--demo-mode</code>
<div class="meta clearfix">
<time datetime="2015-01-11T21:49:08-08:00" pubdate data-updated="true"><i class="icon-calendar"></i> January 11, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<time datetime="2015-01-11T21:49:08-08:00" pubdate data-updated="true"><i class="icon-calendar"></i> January 11, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<span><i class='icon-time'></i> less than one minute reading time</span>
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -543,7 +424,6 @@ Home Assistant now supports <code>--open-ui</code> and <code>--demo-mode</code>
</ul>
</span>
<a class='comments'
href="/blog/2015/01/11/bootstrapping-your-setup-with-discovery/#disqus_thread"
>Comments</a>
@ -553,8 +433,7 @@ Home Assistant now supports <code>--open-ui</code> and <code>--demo-mode</code>
</header>
<div class="entry-content clearfix">
<p>Most people do not like configuring things. Things just have to work, out of the box. Reaching this scenario is the goal of what we are about to introduce: our new discovery component.</p>
<p>The discovery component will scan the WiFi network from time to time for connected zeroconf/mDNS and uPnP devices. The intial introduction is mainly focussed on getting the right architecture in place and discovers Belkin WeMo switches and Google Chromecasts connected to your network. When found, it will load and notify the appropritate component and it will be ready to use within seconds.</p>
@ -563,17 +442,19 @@ Home Assistant now supports <code>--open-ui</code> and <code>--demo-mode</code>
<p>To enable the discovery component, add the following to your <code>home-assistant.conf</code>:</p>
<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>[discovery]</span></code></pre></td></tr></table></div></figure>
<p>A new <a href="/developers/add_new_platform.html#discovery">discovery section</a> has been added to the Adding a new platform page with instructions how to make your platform discoverable.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>[discovery]
</pre></div>
</div>
</div>
<p>A new <a href="/developers/add_new_platform/#discovery">discovery section</a> has been added to the Adding a new platform page with instructions how to make your platform discoverable.</p>
</div>
</article>
<hr>
<article class="listing">
<header>
@ -584,27 +465,9 @@ Home Assistant now supports <code>--open-ui</code> and <code>--demo-mode</code>
<div class="meta clearfix">
<time datetime="2015-01-04T13:29:07-08:00" pubdate data-updated="true"><i class="icon-calendar"></i> January 4, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<time datetime="2015-01-04T13:29:07-08:00" pubdate data-updated="true"><i class="icon-calendar"></i> January 4, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<span><i class='icon-time'></i> 1 minute reading time</span>
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -616,7 +479,6 @@ Home Assistant now supports <code>--open-ui</code> and <code>--demo-mode</code>
</ul>
</span>
<a class='comments'
href="/blog/2015/01/04/hey-pushbullet-nice-talking-to-you/#disqus_thread"
>Comments</a>
@ -626,29 +488,26 @@ Home Assistant now supports <code>--open-ui</code> and <code>--demo-mode</code>
</header>
<div class="entry-content clearfix">
<p>One of the things that was missing in Home Assistant for a while was a way to communicate with users. Wouldn&rsquo;t it be nice to get a message when important events happen like the lights being turned on while no one is home? Since the Home Assistant frontend runs as a web application on the phone, we have no way to bring ourselves to the front. This is where the new notify component comes in, powered by PushBullet.</p>
<div class="entry-content clearfix">
<p>One of the things that was missing in Home Assistant for a while was a way to communicate with users. Wouldnt it be nice to get a message when important events happen like the lights being turned on while no one is home? Since the Home Assistant frontend runs as a web application on the phone, we have no way to bring ourselves to the front. This is where the new notify component comes in, powered by PushBullet.</p>
<p>The new notify component will take in messages and tells them to the user. For now this will be powered by the very awesome <a href="https://www.pushbullet.com/">PushBullet</a> but any other messaging platform can be easily added.</p>
<p class='img'>
<img src='/images/screenshots/pushbullet_moto360.png' />
<p class="img">
<img src="/images/screenshots/pushbullet_moto360.png" />
A message triggered by the simple_alarm component is shown by PushBullet on the Moto360.
</p>
<p>Read on to learn how to enable the notify component and integrate it with other components.</p>
<a class="btn pull-right" href="/blog/2015/01/04/hey-pushbullet-nice-talking-to-you/#read-more">Read on &rarr;</a>
</div>
<a class="btn pull-right" href="/blog/2015/01/04/hey-pushbullet-nice-talking-to-you/#read-more">Read on &rarr;</a>
</div>
</article>
<hr>
<article class="listing">
<header>
@ -659,27 +518,9 @@ Home Assistant now supports <code>--open-ui</code> and <code>--demo-mode</code>
<div class="meta clearfix">
<time datetime="2014-12-26T10:23:13-08:00" pubdate data-updated="true"><i class="icon-calendar"></i> December 26, 2014</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<time datetime="2014-12-26T10:23:13-08:00" pubdate data-updated="true"><i class="icon-calendar"></i> December 26, 2014</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<span><i class='icon-time'></i> four minutes reading time</span>
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -691,7 +532,6 @@ Home Assistant now supports <code>--open-ui</code> and <code>--demo-mode</code>
</ul>
</span>
<a class='comments'
href="/blog/2014/12/26/home-control-home-automation-and-the-smart-home/#disqus_thread"
>Comments</a>
@ -701,10 +541,8 @@ Home Assistant now supports <code>--open-ui</code> and <code>--demo-mode</code>
</header>
<div class="entry-content clearfix">
<p>The internet has been buzzing over the last year about home automation. A lot of different terms fly around like the internet of things, home automation and the smart home.
<div class="entry-content clearfix">
<p>The internet has been buzzing over the last year about home automation. A lot of different terms fly around like the internet of things, home automation and the smart home.<br />
This article will try to explain how they all relate.</p>
<p>The first thing to introduce is the <strong>Internet of Things</strong> (IoT). This refers to a new generation of devices that cannot only be controlled by humans via buttons or remotes but also provide an interface to communicate with other devices and applications. For example, an IoT-capable coffee machine could receive commands to create different types of coffee and be able to broadcast the amount of water left in its resevoir.</p>
@ -713,23 +551,21 @@ This article will try to explain how they all relate.</p>
<p>As a bare minimum a hub has to keep track of the state of each device and should be able to control them if possible. For example, it has to know which lights are on or off and offer a way to control the lights. For a sensor it only has to know the value. A hub with these capabilities offers <strong>home control</strong>.</p>
<p class='img'>
<a href='/images/screenshots/nexus_7_dashboard.png'>
<img alt='Hub dashboard example'
src='/images/screenshots/nexus_7_dashboard.png' />
<p class="img">
<a href="/images/screenshots/nexus_7_dashboard.png">
<img alt="Hub dashboard example" src="/images/screenshots/nexus_7_dashboard.png" />
</a>
Example of a hub&#8217;s dashboard. Showing the state of 2 persons, 4 lights and the sun.
Example of a hubs dashboard. Showing the state of 2 persons, 4 lights and the sun.
</p>
<a class="btn pull-right" href="/blog/2014/12/26/home-control-home-automation-and-the-smart-home/#read-more">Read on &rarr;</a>
</div>
</div>
</article>
<hr>
<article class="listing">
<header>
@ -740,27 +576,9 @@ This article will try to explain how they all relate.</p>
<div class="meta clearfix">
<time datetime="2014-12-18T23:24:45-08:00" pubdate data-updated="true"><i class="icon-calendar"></i> December 18, 2014</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<time datetime="2014-12-18T23:24:45-08:00" pubdate data-updated="true"><i class="icon-calendar"></i> December 18, 2014</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<span><i class='icon-time'></i> less than one minute reading time</span>
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -772,7 +590,6 @@ This article will try to explain how they all relate.</p>
</ul>
</span>
<a class='comments'
href="/blog/2014/12/18/website-launched/#disqus_thread"
>Comments</a>
@ -782,11 +599,11 @@ This article will try to explain how they all relate.</p>
</header>
<div class="entry-content clearfix">
<p>I finally took the time to setup a simple website to help people getting started with Home Assistant. The process was super smooth thanks to the great tools <a href="http://jekyllrb.com">Jekyll</a> and <a href="http://octopress.org">Octopress</a> and the great services <a href="https://pages.github.com">GitHub Pages</a> and <a href="https://cloudflare.com">CloudFlare</a>.</p>
</div>
</article>
<hr>
@ -811,30 +628,23 @@ This article will try to explain how they all relate.</p>
<div class="grid">
<div class="grid__item">
<p class="copyright">
<span class="credit">Powered by <a href="http://octopress.org">Octopress</a>, <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>
<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>
<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>
<script>
var disqus_shortname = 'home-assistant';
@ -848,8 +658,5 @@ This article will try to explain how they all relate.</p>
}());
</script>
</body>
</html>

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,224 @@
<!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>Manual Alarm Control Panel - Home Assistant</title>
<meta name="author" content="Paulus Schoutsen">
<meta name="description" content="Instructions how to integrate manual alarms into Home Assistant.">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/components/alarm_control_panel.manual/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="Manual Alarm Control Panel">
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/components/alarm_control_panel.manual/">
<meta property="og:type" content="article">
<meta property="og:description" content="Instructions how to integrate manual alarms into Home Assistant.">
<meta property="og: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">
Manual Alarm Control Panel
</h1>
</header>
<hr class="divider">
<p>This platform enables you to set manual alarms in Home Assistant.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">alarm_control_panel</span>:
<span class="key">platform</span>: <span class="string"><span class="content">manual</span></span>
<span class="key">name</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">HA Alarm</span><span class="delimiter">&quot;</span></span>
<span class="key">code</span>: <span class="string"><span class="content">PASSCODE</span></span>
<span class="key">pending_time</span>: <span class="string"><span class="content">60</span></span>
<span class="key">trigger_time</span>: <span class="string"><span class="content">120</span></span>
</pre></div>
</div>
</div>
<p>Configuration variables:</p>
<ul>
<li><strong>name</strong> (<em>Optional</em>): The name of the alarm. Default is HA Alarm.</li>
<li><strong>code</strong> (<em>Optional</em>): If defined, specifies a code to enable or disable the alarm in the frontend.</li>
<li><strong>pending_time</strong> (<em>Optional</em>): The time in seconds of the pending time before arming the alarm. Default is 60 seconds.</li>
<li><strong>trigger_time</strong> (<em>Optional</em>): The time in seconds of the trigger time in which the alarm is firing. Default is 120 seconds.</li>
</ul>
<h2><a class="title-link" name="examples" href="#examples"></a> Examples</h2>
<p>In this section you find some real life examples of how to use this panel.</p>
<h3><a class="title-link" name="sensors" href="#sensors"></a> Sensors</h3>
<p>Using sensors to trigger the alarm.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="key">automation</span>:
- <span class="string"><span class="content">alias: 'Trigger alarm while armed away'</span></span>
<span class="key">trigger</span>:
- <span class="string"><span class="content">platform: state</span></span>
<span class="key">entity_id</span>: <span class="string"><span class="content">sensor.pir1</span></span>
<span class="key">state</span>: <span class="string"><span class="content">'active'</span></span>
- <span class="string"><span class="content">platform: state</span></span>
<span class="key">entity_id</span>: <span class="string"><span class="content">sensor.pir2</span></span>
<span class="key">state</span>: <span class="string"><span class="content">'active'</span></span>
- <span class="string"><span class="content">platform: state</span></span>
<span class="key">entity_id</span>: <span class="string"><span class="content">sensor.door</span></span>
<span class="key">state</span>: <span class="string"><span class="content">'open'</span></span>
- <span class="string"><span class="content">platform: state</span></span>
<span class="key">entity_id</span>: <span class="string"><span class="content">sensor.window</span></span>
<span class="key">state</span>: <span class="string"><span class="content">'open'</span></span>
<span class="key">condition</span>:
- <span class="string"><span class="content">platform: state</span></span>
<span class="key">entity_id</span>: <span class="string"><span class="content">alarm_control_panel.ha_alarm</span></span>
<span class="key">state</span>: <span class="string"><span class="content">armed_away</span></span>
<span class="key">action</span>:
<span class="key">service</span>: <span class="string"><span class="content">alarm_control_panel.alarm_trigger</span></span>
<span class="key">entity_id</span>: <span class="string"><span class="content">alarm_control_panel.ha_alarm</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'>
</div>
<div class='section'>
This is a platform for
<a href='/components/alarm_control_panel/'>the Alarm Control Panels component</a>.
</div>
<div class='section'>
<h1 class="title delta">Category Alarm</h1>
<ul class='divided'>
<li>
<a href='/components/simple_alarm/'>Intruder Alerts</a>
</li>
<li>
<a href='/components/alarm_control_panel.mqtt/'>MQTT Alarm Control Panel</a>
</li>
<li>
Manual Alarm Control Panel
</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>

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,218 @@
<!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>MQTT Alarm Control Panel - Home Assistant</title>
<meta name="author" content="Paulus Schoutsen">
<meta name="description" content="Instructions how to integrate MQTT alarms into Home Assistant.">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/components/alarm_control_panel.mqtt/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="MQTT Alarm Control Panel">
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/components/alarm_control_panel.mqtt/">
<meta property="og:type" content="article">
<meta property="og:description" content="Instructions how to integrate MQTT alarms into Home Assistant.">
<meta property="og: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">
MQTT Alarm Control Panel
</h1>
</header>
<hr class="divider">
<p>This platform enables the possibility to control an MQTT alarm. The alarm will only change state after receiving the a new state from <code>state_topic</code>. If these messages are published with RETAIN flag, the MQTT alarm will receive an instant state update after subscription and will start with correct state. Otherwise, the initial state will be <code>unknown</code>.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">alarm_control_panel</span>:
<span class="key">platform</span>: <span class="string"><span class="content">mqtt</span></span>
<span class="key">state_topic</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">home/alarm</span><span class="delimiter">&quot;</span></span>
<span class="key">command_topic</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">home/alarm/set</span><span class="delimiter">&quot;</span></span>
<span class="key">name</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">MQTT Alarm</span><span class="delimiter">&quot;</span></span>
<span class="key">qos</span>: <span class="string"><span class="content">0</span></span>
<span class="key">payload_disarm</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">DISARM</span><span class="delimiter">&quot;</span></span>
<span class="key">payload_arm_home</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">ARM_HOME</span><span class="delimiter">&quot;</span></span>
<span class="key">payload_arm_away</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">ARM_AWAY</span><span class="delimiter">&quot;</span></span>
<span class="key">code</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">mySecretCode</span><span class="delimiter">&quot;</span></span>
</pre></div>
</div>
</div>
<p>Configuration variables:</p>
<ul>
<li><strong>state_topic</strong> (<em>Required</em>): The MQTT topic subscribed to receive state updates.</li>
<li>
<p><strong>command_topic</strong> (<em>Required</em>): The MQTT topic to publish commands to change the alarm state.</p>
</li>
<li><strong>name</strong> (<em>Optional</em>): The name of the alarm. Default is MQTT Alarm.</li>
<li><strong>qos</strong> (<em>Optional</em>): The maximum QoS level of the state topic. Default is 0. This QoS will also be used to publishing messages.</li>
<li><strong>payload_disarm</strong> (<em>Optional</em>): The payload do disarm alarm. Default is “DISARM”.</li>
<li><strong>payload_arm_home</strong> (<em>Optional</em>): The payload to set armed-home mode. Default is “ARM_HOME”.</li>
<li><strong>payload_arm_away</strong> (<em>Optional</em>): The payload to set armed-away mode. Default is “ARM_AWAY”.</li>
<li><strong>code</strong> (<em>Optional</em>): If defined, specifies a code to enable or disable the alarm in the frontend.</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='brand-logo-container section'>
<img src='/images/supported_brands/mqtt.png' />
</div>
<div class='section'>
This is a platform for
<a href='/components/alarm_control_panel/'>the Alarm Control Panels component</a>.
</div>
<div class='section'>
<h1 class='title delta'>Related components</h1>
<ul class='divided'>
<li><a href='/components/mqtt/'>
MQTT
</a></li>
<li><a href='/components/device_tracker.mqtt/'>
MQTT device tracker
</a></li>
<li><a href='/components/sensor.mqtt/'>
MQTT sensor
</a></li>
<li><a href='/components/switch.mqtt/'>
MQTT switch
</a></li>
</ul>
</div>
<div class='section'>
<h1 class="title delta">Category Alarm</h1>
<ul class='divided'>
<li>
<a href='/components/simple_alarm/'>Intruder Alerts</a>
</li>
<li>
MQTT Alarm Control Panel
</li>
<li>
<a href='/components/alarm_control_panel.manual/'>Manual Alarm Control Panel</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

@ -5,25 +5,23 @@
<!--[if gt IE 8]><!--> <html> <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Automation for rainy days - Home Assistant</title>
<title>Alarm Control Panels - Home Assistant</title>
<meta name="author" content="Paulus Schoutsen">
<meta name="description" content="Basic example how to use weather conditions to set states">
<meta name="description" content="Instructions how to integrate Alarm Control Panels into Home Assistant.">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/cookbook/automation_for_rainy_days.html">
<link rel="canonical" href="https://home-assistant.io/components/alarm_control_panel/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="Automation for rainy days">
<meta property="og:title" content="Alarm Control Panels">
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/cookbook/automation_for_rainy_days.html">
<meta property="og:type" content="website">
<meta property="og:description" content="Basic example how to use weather conditions to set states">
<meta property="og:url" content="https://home-assistant.io/components/alarm_control_panel/">
<meta property="og:type" content="article">
<meta property="og:description" content="Instructions how to integrate Alarm Control Panels into Home Assistant.">
<meta property="og:image" content="https://home-assistant.io/images/home-assistant-logo-2164x2164.png">
<link href="/stylesheets/screen.css" media="screen, projection" rel="stylesheet">
@ -32,7 +30,6 @@
<link rel='icon' type='image/png' href='/images/favicon-192x192.png' sizes='192x192' />
</head>
<body >
<header>
@ -54,10 +51,10 @@
<a href="/getting-started/">Getting started</a>
<ul>
<li><a href='/getting-started/'>Installing Home Assistant</a></li>
<li><a href='/getting-started/configuration.html'>Configuration basics</a></li>
<li><a href='/getting-started/devices.html'>Adding devices</a></li>
<li><a href='/getting-started/presence-detection.html'>Presence detection</a></li>
<li><a href='/getting-started/automation.html'>Automation</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>
@ -65,26 +62,24 @@
<li>
<a href="/developers/">Developers</a>
<ul>
<li><a href="/developers/architecture.html">Architecture</a></li>
<li><a href="/developers/frontend.html">Frontend development</a></li>
<li><a href="/developers/creating_components.html">
<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.html">
<li><a href="/developers/add_new_platform/">
Adding platform support
</a></li>
<li><a href="/developers/api.html">API</a></li>
<li><a href="/developers/credits.html">Credits</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>
@ -98,59 +93,20 @@
<article class="page">
<header>
<h1 class="title indent">
Automation for Rainy Days
Alarm Control Panels
</h1>
</header>
<hr class="divider">
<p>Home Assistant can give you an interface with is similar to a classic alarm system. There are several panels supported:</p>
<h3>Rainy Day Light</h3>
<p>This requires a <a href="components/sensor.forecast.html">forecast.io</a> sensor with the condition <code>weather_precip</code> that tells if it&rsquo;s raining or not.</p>
<p>Turn on a light in the living room when it starts raining, someone is home, and it&rsquo;s afternoon or later.</p>
<pre><code class="yaml">automation:
alias: 'Rainy Day'
trigger:
- platform: state
entity_id: sensor.weather_precip
state: 'rain'
- platform: state
entity_id: group.all_devices
state: 'home'
- platform: time
after: '14:00'
before: '23:00'
condition: use_trigger_values
action:
execute_service: light.turn_on
service_entity_id: light.couch_lamp
</code></pre>
<p>And then of course turn off the lamp when it stops raining but only if it&rsquo;s within an hour before sunset.</p>
<pre><code class="yaml"> alias: 'Rain is over'
trigger:
- platform: state
entity_id: sensor.weather_precip
state: 'None'
- platform: sun
event: 'sunset'
offset: '-01:00:00'
condition: use_trigger_values
action:
execute_service: light.turn_off
service_entity_id: light.couch_lamp
</code></pre>
<ul>
<li><a href="/components/alarm_control_panel.manual/">Manual</a></li>
<li><a href="/components/alarm_control_panel.mqtt/">MQTT</a></li>
<li><a href="/components/verisure/">Verisure</a></li>
</ul>
</article>
@ -159,6 +115,27 @@
</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'>
</div>
<h1 class='title delta'>Platforms</h1>
<ul class='divided'>
<li><a href='/components/alarm_control_panel.mqtt/'>
MQTT Alarm Control Panel
</a></li>
<li><a href='/components/alarm_control_panel.manual/'>
Manual Alarm Control Panel
</a></li>
</ul>
</section>
</div>
</aside>
</div>
</div>
@ -167,32 +144,23 @@
<div class="grid">
<div class="grid__item">
<p class="copyright">
<span class="credit">Powered by <a href="http://octopress.org">Octopress</a>, <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>
<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>
<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>

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,229 @@
<!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>Arduino - Home Assistant</title>
<meta name="author" content="Paulus Schoutsen">
<meta name="description" content="Instructions how to setup an Arduino boards within Home Assistant.">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/components/arduino/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="Arduino">
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/components/arduino/">
<meta property="og:type" content="article">
<meta property="og:description" content="Instructions how to setup an Arduino boards within Home Assistant.">
<meta property="og: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">
Arduino
</h1>
</header>
<hr class="divider">
<p>The <a href="https://www.arduino.cc/">Arduino</a> device family are microcontroller boards that are often based on the ATmega328 chip. They come with digital input/output pins (some can be used as PWM outputs), analog inputs, and a USB connection. The equipment depends on the <a href="https://www.arduino.cc/en/Main/Products">type</a> of board. The most common ones are the Arduino Uno and the Arduino Leonardo with 14 digital input/output pins and 6 analog input pins.</p>
<p>There are a lot of extensions (so called <a href="https://www.arduino.cc/en/Main/ArduinoShields">shields</a>) available. Those shields can be plugged-in into the existing connectors and stacked on top of each other. This makes it possible to expand the capabilities of the Arduino boards.</p>
<h2>Basic Configuration</h2>
<p>The arduino component is designed to let you use a directly attached board to your Home Assistant host over USB.</p>
<p>You need to have the <a href="https://github.com/firmata/">Firmata firmware</a> on your board. Please upload the <code>StandardFirmata</code> sketch to your board, please refer to the <a href="https://www.arduino.cc/en/Main/Howto">Arduino documentation</a> for further information.</p>
<p>To integrate an Arduino boards with Home Assistant, add the following section 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">arduino</span>:
<span class="key">port</span>: <span class="string"><span class="content">/dev/ttyACM0</span></span>
</pre></div>
</div>
</div>
<p>Configuration variables:</p>
<ul>
<li><strong>port</strong> (<em>Required</em>): The port where your board is connected to your Home Assistant host. If you are using an original Arduino the port will be named <code>ttyACM*</code>. The exact number can be determined with <code>ls /dev/ttyACM*</code>.</li>
</ul>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>$ ls /dev/ttyACM*
</pre></div>
</div>
</div>
<p>If that is not working, check your <code>dmesg</code> or <code>journalctl -f</code> output. Keep in mind that Arduino clones are often using a different name for the port (e.g. <code>/dev/ttyUSB*</code>).</p>
<p class="note warning">
A word of caution: The Arduino boards are not storing states. This means that with every initialization the pins are set to off/low.
</p>
<h2>Building on top of the Arduino component</h2>
<ul>
<li><a href="/components/sensor.arduino/">Arduino Sensor</a></li>
<li><a href="/components/switch.arduino/">Arduino Switch</a></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='brand-logo-container section'>
<img src='/images/supported_brands/arduino.png' />
</div>
<div class='section'>
<h1 class='title delta'>Related components</h1>
<ul class='divided'>
<li><a href='/components/sensor.arduino/'>
Arduino sensor
</a></li>
<li><a href='/components/switch.arduino/'>
Arduino switch
</a></li>
</ul>
</div>
<div class='section'>
<h1 class="title delta">Category DIY</h1>
<ul class='divided'>
<li>
Arduino
</li>
<li>
<a href='/components/sensor.arduino/'>Arduino sensor</a>
</li>
<li>
<a href='/components/switch.arduino/'>Arduino switch</a>
</li>
<li>
<a href='/components/sensor.dht/'>DHT sensor</a>
</li>
<li>
<a href='/components/sensor.rpi_gpio/'>Raspberry PI GPIO sensor</a>
</li>
<li>
<a href='/components/switch.rpi_gpio/'>Raspberry PI GPIO switch</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>

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,503 @@
<!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>Automation - Home Assistant</title>
<meta name="author" content="Paulus Schoutsen">
<meta name="description" content="Instructions how to setup automation within Home Assistant.">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/components/automation/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="Automation">
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/components/automation/">
<meta property="og:type" content="article">
<meta property="og:description" content="Instructions how to setup automation within Home Assistant.">
<meta property="og: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">
Automation
</h1>
</header>
<hr class="divider">
<p>This page will go into more detail about the various options the <code>automation</code> component offers. If you havent yet, read the <a href="/getting-started/automation/">getting started page on automation</a>.</p>
<p>A configuration section of an automation requires a <code>trigger</code> and an <code>action</code> section. <code>condition</code> and <code>condition_type</code> are optional. To keep this page compact, all following sections will not show the full configuration but only the relevant part.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example of entry in configuration.yaml</span>
<span class="key">automation</span>:
<span class="comment"># Turns on lights 1 hour before sunset if people are home</span>
<span class="comment"># and if people get home between 16:00-23:00</span>
- <span class="string"><span class="content">alias: 'Rule 1 Light on in the evening'</span></span>
<span class="key">trigger</span>:
<span class="comment"># Prefix the first line of each trigger configuration</span>
<span class="comment"># with a '-' to enter multiple</span>
- <span class="string"><span class="content">platform: sun</span></span>
<span class="key">event</span>: <span class="string"><span class="content">sunset</span></span>
<span class="key">offset</span>: <span class="string"><span class="content">'-01:00:00'</span></span>
- <span class="string"><span class="content">platform: state</span></span>
<span class="key">entity_id</span>: <span class="string"><span class="content">group.all_devices</span></span>
<span class="key">state</span>: <span class="string"><span class="content">'home'</span></span>
<span class="key">condition</span>:
<span class="comment"># Prefix the first line of each condition configuration</span>
<span class="comment"># with a '-'' to enter multiple</span>
- <span class="string"><span class="content">platform: state</span></span>
<span class="key">entity_id</span>: <span class="string"><span class="content">group.all_devices</span></span>
<span class="key">state</span>: <span class="string"><span class="content">'home'</span></span>
- <span class="string"><span class="content">platform: time</span></span>
<span class="key">after</span>: <span class="string"><span class="content">'16:00:00'</span></span>
<span class="key">before</span>: <span class="string"><span class="content">'23:00:00'</span></span>
<span class="key">action</span>:
<span class="key">service</span>: <span class="string"><span class="content">homeassistant.turn_on</span></span>
<span class="key">entity_id</span>: <span class="string"><span class="content">group.living_room</span></span>
<span class="comment"># Turn off lights when everybody leaves the house</span>
- <span class="string"><span class="content">alias: 'Rule 2 - Away Mode'</span></span>
<span class="key">trigger</span>:
<span class="key">platform</span>: <span class="string"><span class="content">state</span></span>
<span class="key">entity_id</span>: <span class="string"><span class="content">group.all_devices</span></span>
<span class="key">state</span>: <span class="string"><span class="content">'not_home'</span></span>
<span class="key">action</span>:
<span class="key">service</span>: <span class="string"><span class="content">light.turn_off</span></span>
<span class="key">entity_id</span>: <span class="string"><span class="content">group.all_lights</span></span>
<span class="comment"># Notify when Paulus leaves the house in the evening</span>
- <span class="string"><span class="content">alias: 'Leave Home notification'</span></span>
<span class="key">trigger</span>:
<span class="key">platform</span>: <span class="string"><span class="content">zone</span></span>
<span class="key">event</span>: <span class="string"><span class="content">leave</span></span>
<span class="key">zone</span>: <span class="string"><span class="content">zone.home</span></span>
<span class="key">entity_id</span>: <span class="string"><span class="content">device_tracker.paulus</span></span>
<span class="key">condition</span>:
<span class="key">platform</span>: <span class="string"><span class="content">time</span></span>
<span class="key">after</span>: <span class="string"><span class="content">'20:00'</span></span>
<span class="key">action</span>:
<span class="key">service</span>: <span class="string"><span class="content">notify.notify</span></span>
<span class="key">data</span>:
<span class="key">message</span>: <span class="string"><span class="content">'Paulus left the house'</span></span>
</pre></div>
</div>
</div>
<ul>
<li><a href="#conditions">Jump to conditions</a></li>
<li><a href="#actions">Jump to actions</a></li>
<li><a href="#troubleshooting">Jump to troubleshooting</a></li>
</ul>
<h2><a class="title-link" name="triggers" href="#triggers"></a> Triggers</h2>
<p>Triggers are what starts the processing of an automation rule. It is possible to specify multiple triggers for the same rule. Once a trigger starts, Home Assistant will validate the conditions, if any, and call the action.</p>
<h4><a class="title-link" name="event-trigger" href="#event-trigger"></a> Event trigger</h4>
<p>Triggers when an event is being processed. Events are the raw building blocks of Home Assistant. You can match events on just the event name or also require specific event data to be present.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="key">automation</span>:
<span class="key">trigger</span>:
<span class="key">platform</span>: <span class="string"><span class="content">event</span></span>
<span class="key">event_type</span>: <span class="string"><span class="content">MY_CUSTOM_EVENT</span></span>
<span class="comment"># optional</span>
<span class="key">event_data</span>:
<span class="key">mood</span>: <span class="string"><span class="content">happy</span></span>
</pre></div>
</div>
</div>
<h4><a class="title-link" name="mqtt-trigger" href="#mqtt-trigger"></a> MQTT trigger</h4>
<p>Triggers when a specific message is received on given topic. Optionally can match on the payload being sent over the topic.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="key">automation</span>:
<span class="key">trigger</span>:
<span class="key">platform</span>: <span class="string"><span class="content">mqtt</span></span>
<span class="key">topic</span>: <span class="string"><span class="content">living_room/switch/ac</span></span>
<span class="comment"># Optional</span>
<span class="key">payload</span>: <span class="string"><span class="content">'on'</span></span>
</pre></div>
</div>
</div>
<h4><a class="title-link" name="numeric-state-trigger" href="#numeric-state-trigger"></a> Numeric state trigger</h4>
<p>On state change of a specified entity, attempts to parse the state as a number and triggers if value is above and/or below a threshold.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="key">automation</span>:
<span class="key">trigger</span>:
<span class="key">platform</span>: <span class="string"><span class="content">numeric_state</span></span>
<span class="key">entity_id</span>: <span class="string"><span class="content">sensor.temperature</span></span>
<span class="comment"># At least one of the following required</span>
<span class="key">above</span>: <span class="string"><span class="content">17</span></span>
<span class="key">below</span>: <span class="string"><span class="content">25</span></span>
</pre></div>
</div>
</div>
<h4><a class="title-link" name="state-trigger" href="#state-trigger"></a> State trigger</h4>
<p>Triggers when the state of an entity changes. If only entity_id given will match all state changes.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="key">automation</span>:
<span class="key">trigger</span>:
<span class="key">platform</span>: <span class="string"><span class="content">state</span></span>
<span class="key">entity_id</span>: <span class="string"><span class="content">device_tracker.paulus</span></span>
<span class="comment"># Optional</span>
<span class="key">from</span>: <span class="string"><span class="content">'not_home'</span></span>
<span class="key">to</span>: <span class="string"><span class="content">'home'</span></span>
</pre></div>
</div>
</div>
<p class="note warning">
Use quotes around your values for <code>from</code> and <code>to</code> to avoid the YAML parser interpreting values as booleans.
</p>
<h4><a class="title-link" name="sun-trigger" href="#sun-trigger"></a> Sun trigger</h4>
<p>Trigger when the sun is setting or rising. An optional time offset can be given to have it trigger for example 45 minutes before sunset, when dusk is setting in.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="key">automation</span>:
<span class="key">trigger</span>:
<span class="key">platform</span>: <span class="string"><span class="content">sun</span></span>
<span class="comment"># Possible values: sunset, sunrise</span>
<span class="key">event</span>: <span class="string"><span class="content">sunset</span></span>
<span class="comment"># Optional time offset. This example is 45 minutes.</span>
<span class="key">offset</span>: <span class="string"><span class="content">'-00:45:00'</span></span>
</pre></div>
</div>
</div>
<h4><a class="title-link" name="time-trigger" href="#time-trigger"></a> Time trigger</h4>
<p>Time can be triggered in many ways. The most common is to specify <code>after</code> and trigger at a specific point in time each day. Alternatively, you can also match if the hour, minute or second of the current time has a specific value. For example, by only setting minutes in the config to 5 it will trigger every hour when it is 5 minutes past whole. You cannot use <code>after</code> together with hour, minute or second.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="key">automation</span>:
<span class="key">trigger</span>:
<span class="key">platform</span>: <span class="string"><span class="content">time</span></span>
<span class="comment"># All following are optional.</span>
<span class="comment"># When 'after' is used, you cannot also match on hour, minute, seconds.</span>
<span class="comment"># Military time format.</span>
<span class="comment"># after: '15:32:00'</span>
<span class="key">hours</span>: <span class="string"><span class="content">0</span></span>
<span class="key">minutes</span>: <span class="string"><span class="content">5</span></span>
<span class="key">seconds</span>: <span class="string"><span class="content">0</span></span>
<span class="key">weekday</span>:
- <span class="string"><span class="content">sat</span></span>
- <span class="string"><span class="content">sun</span></span>
</pre></div>
</div>
</div>
<p>You can use <code>weekday</code> to limit the trigger times to speific days as well (also available in conditions). Valid values for <code>weekday</code> are (<code>sun</code>, <code>mon</code>, <code>tue</code>, <code>wed</code>, <code>thu</code>, <code>fri</code> &amp; <code>sat</code>)</p>
<p>The above example will trigger on Saturday and Sunday every hour on the 5 (2:05, 3:05, 4:05, etc).</p>
<h4><a class="title-link" name="zone-trigger" href="#zone-trigger"></a> Zone trigger</h4>
<p>Zone triggers can trigger when an entity is entering or leaving the zone. For zone automation to work, you need to have setup a device tracker platform that supports reporting GPS coordinates. Currently this is limited to the <a href="/components/device_tracker.owntracks/">OwnTracks platform</a>.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="key">automation</span>:
<span class="key">trigger</span>:
<span class="key">platform</span>: <span class="string"><span class="content">zone</span></span>
<span class="key">entity_id</span>: <span class="string"><span class="content">device_tracker.paulus</span></span>
<span class="key">zone</span>: <span class="string"><span class="content">zone.home</span></span>
<span class="comment"># Event is either enter or leave</span>
<span class="key">event</span>: <span class="string"><span class="content">enter</span></span>
</pre></div>
</div>
</div>
<h2><a class="title-link" name="conditions" href="#conditions"></a> Conditions</h2>
<p>Conditions are an optional part of an automation rule and be used to prevent an action from happening when triggered. Conditions look very familiar to triggers but are very different. A trigger will look at events happening at the system while a condition only looks at how the system looks right now. A trigger can observe that a switch is being turned on. A condition can only see if a switch is on or off.</p>
<p>An automation rule can have mulitiple triggers. By default the action will only fire if all conditions pass. An optional key <code>condition_type: 'or'</code> can be set on the automation rule to fire action if any condition matches. In the example below, the automation would trigger if the time is before 05:00 <em>OR</em> after 20:00.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="key">automation</span>:
<span class="key">condition_type</span>: <span class="string"><span class="content">or</span></span>
<span class="key">condition</span>:
- <span class="string"><span class="content">platform: time</span></span>
<span class="key">before</span>: <span class="string"><span class="content">'05:00'</span></span>
- <span class="string"><span class="content">platform: time</span></span>
<span class="key">after</span>: <span class="string"><span class="content">'20:00'</span></span>
</pre></div>
</div>
</div>
<p>If your triggers and conditions are exactly the same, you can use a shortcut to specify conditions. In this case, triggers that are not valid conditions will be ignored.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="key">automation</span>:
<span class="key">condition</span>: <span class="string"><span class="content">use_trigger_values</span></span>
</pre></div>
</div>
</div>
<h4><a class="title-link" name="numeric-state-condition" href="#numeric-state-condition"></a> Numeric state condition</h4>
<p>Attempts to parse the state of specified entity as a number and triggers if value is above and/or below a threshold.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="key">automation</span>:
<span class="key">condition</span>:
<span class="key">platform</span>: <span class="string"><span class="content">numeric_state</span></span>
<span class="key">entity_id</span>: <span class="string"><span class="content">sensor.temperature</span></span>
<span class="comment"># At least one of the following required</span>
<span class="key">above</span>: <span class="string"><span class="content">17</span></span>
<span class="key">below</span>: <span class="string"><span class="content">25</span></span>
</pre></div>
</div>
</div>
<h4><a class="title-link" name="state-condition" href="#state-condition"></a> State condition</h4>
<p>Tests if an entity is a specified state.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="key">automation</span>:
<span class="key">condition</span>:
<span class="key">platform</span>: <span class="string"><span class="content">state</span></span>
<span class="key">entity_id</span>: <span class="string"><span class="content">device_tracker.paulus</span></span>
<span class="key">state</span>: <span class="string"><span class="content">not_home</span></span>
</pre></div>
</div>
</div>
<h4><a class="title-link" name="time-condition" href="#time-condition"></a> Time condition</h4>
<p>The time condition can test if it is after a specified time, before a specified time or if it is a certain day of the week</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="key">automation</span>:
<span class="key">condition</span>:
<span class="key">platform</span>: <span class="string"><span class="content">time</span></span>
<span class="comment"># At least one of the following is required.</span>
<span class="key">after</span>: <span class="string"><span class="content">'15:00:00'</span></span>
<span class="key">before</span>: <span class="string"><span class="content">'23:00:00'</span></span>
<span class="key">weekday</span>:
- <span class="string"><span class="content">mon</span></span>
- <span class="string"><span class="content">wed</span></span>
- <span class="string"><span class="content">fri</span></span>
</pre></div>
</div>
</div>
<p>Valid values for <code>weekday</code> are (<code>sun</code>, <code>mon</code>, <code>tue</code>, <code>wed</code>, <code>thu</code>, <code>fri</code> &amp; <code>sat</code>)</p>
<h4><a class="title-link" name="zone-condition" href="#zone-condition"></a> Zone condition</h4>
<p>Zone conditions test if an entity is in a certain zone. For zone automation to work, you need to have setup a device tracker platform that supports reporting GPS coordinates. Currently this is limited to the <a href="/components/device_tracker.owntracks/">OwnTracks platform</a>.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="key">automation</span>:
<span class="key">condition</span>:
<span class="key">platform</span>: <span class="string"><span class="content">zone</span></span>
<span class="key">entity_id</span>: <span class="string"><span class="content">device_tracker.paulus</span></span>
<span class="key">zone</span>: <span class="string"><span class="content">zone.home</span></span>
</pre></div>
</div>
</div>
<h2><a class="title-link" name="actions" href="#actions"></a> Actions</h2>
<p>When an automation rule fires, it calls a service. For this service you can specify an entity id it should apply to and optional service parameters (to specify for example the brightness).</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="key">automation</span>:
<span class="comment"># Change the light in the kitchen and living room to 150 brightness and color red.</span>
<span class="key">action</span>:
<span class="key">service</span>: <span class="string"><span class="content">homeassistant.turn_on</span></span>
<span class="key">entity_id</span>:
- <span class="string"><span class="content">light.kitchen</span></span>
- <span class="string"><span class="content">light.living_room</span></span>
<span class="key">data</span>:
<span class="key">brightness</span>: <span class="string"><span class="content">150</span></span>
<span class="key">rgb_color</span>: <span class="string"><span class="content">[255, 0, 0]</span></span>
</pre></div>
</div>
</div>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="key">automation</span>:
<span class="comment"># Notify me on my mobile phone of an event</span>
<span class="key">action</span>:
<span class="key">service</span>: <span class="string"><span class="content">notify.notify</span></span>
<span class="key">data</span>:
<span class="key">message</span>: <span class="string"><span class="content">Something just happened, better take a look!</span></span>
</pre></div>
</div>
</div>
<p>If you want to specify multiple services to be called or include a delay, have a look at the <a href="/components/script/">script component</a>. If you want to describe how certain entities should look, check out the <a href="/components/scene/">scene component</a>.</p>
<h2><a class="title-link" name="troubleshooting" href="#troubleshooting"></a> Troubleshooting</h2>
<p>You can verify that your automation rules are being initialized correctly by watching both the realtime logs and also the logbook. The realtime logs will show the rules being initialized (once for each trigger):</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>INFO [homeassistant.components.automation] Initialized rule Rainy Day
INFO [homeassistant.components.automation] Initialized rule Rainy Day
INFO [homeassistant.components.automation] Initialized rule Rainy Day
INFO [homeassistant.components.automation] Initialized rule Rain is over
</pre></div>
</div>
</div>
<p>The Logbook component will show a line entry when an automation is triggered. You can look at the previous entry to determine which trigger in the rule triggered the event.</p>
<p><img src="/images/components/automation/logbook.png" alt="Logbook example" /></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'>
</div>
<div class='section'>
<h1 class="title delta">Category Automation</h1>
<ul class='divided'>
<li>
Automation
</li>
<li>
<a href='/components/ifttt/'>IFTTT</a>
</li>
<li>
<a href='/components/keyboard/'>Keyboard</a>
</li>
<li>
<a href='/components/device_sun_light_trigger/'>Presence based lights</a>
</li>
<li>
<a href='/components/script/'>Scripts</a>
</li>
<li>
<a href='/components/shell_command/'>Shell command</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>

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,201 @@
<!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>Browser - Home Assistant</title>
<meta name="author" content="Paulus Schoutsen">
<meta name="description" content="Instructions how to setup the browser component with Home Assistant.">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/components/browser/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="Browser">
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/components/browser/">
<meta property="og:type" content="article">
<meta property="og:description" content="Instructions how to setup the browser component with Home Assistant.">
<meta property="og: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">
Browser
</h1>
</header>
<hr class="divider">
<p>The browser component provides a service to open urls in the default browser on the host machine.</p>
<p>To load this component, add the following lines to your <code>configuration.yaml</code>:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">browser</span>:
</pre></div>
</div>
</div>
<h4>Service <code>browser/browse_url</code></h4>
<table>
<thead>
<tr>
<th>Service data attribute</th>
<th>Optional</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>url</code></td>
<td>no</td>
<td>The url to open</td>
</tr>
</tbody>
</table>
</article>
</div>
<aside id="sidebar" class="grid__item one-third lap-one-whole palm-one-whole">
<div class="grid">
<section class="aside-module grid__item one-whole lap-one-half">
<div class='brand-logo-container section'>
</div>
<div class='section'>
<h1 class="title delta">Category Other</h1>
<ul class='divided'>
<li>
Browser
</li>
<li>
<a href='/components/configurator/'>Configurator</a>
</li>
<li>
<a href='/components/conversation/'>Conversation</a>
</li>
<li>
<a href='/components/discovery/'>Discovery</a>
</li>
<li>
<a href='/components/downloader/'>Downloader</a>
</li>
<li>
<a href='/components/introduction/'>Introduction</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>

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,198 @@
<!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>Foscam IP camera - Home Assistant</title>
<meta name="author" content="Paulus Schoutsen">
<meta name="description" content="Instructions how to integrate Foscam IP cameras within Home Assistant.">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/components/camera.foscam/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="Foscam IP camera">
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/components/camera.foscam/">
<meta property="og:type" content="article">
<meta property="og:description" content="Instructions how to integrate Foscam IP cameras within Home Assistant.">
<meta property="og: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">
Foscam IP camera
</h1>
</header>
<hr class="divider">
<p>The foscam platform allows you to watch the live stream of your <a href="http://www.foscam.com/">Foscam</a> IP camera in Home Assistant.</p>
<p>To enable your Foscam IP camera 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">camera</span>:
<span class="key">platform</span>: <span class="string"><span class="content">foscam</span></span>
<span class="key">ip</span>: <span class="string"><span class="content">192.168.0.123</span></span>
<span class="key">name</span>: <span class="string"><span class="content">Door Camera</span></span>
<span class="key">port</span>: <span class="string"><span class="content">88</span></span>
<span class="key">username</span>: <span class="string"><span class="content">USERNAME</span></span>
<span class="key">password</span>: <span class="string"><span class="content">PASSWORD</span></span>
</pre></div>
</div>
</div>
<p>Configuration variables:</p>
<ul>
<li><strong>ip</strong> <em>Required</em>: The IP address your camera.</li>
<li><strong>port</strong> <em>Optional</em>: The port that the camera is running on. The default is 88.</li>
<li><strong>name</strong> <em>Optional</em>: This parameter allows you to override the name of your camera.</li>
<li><strong>username</strong> <em>Required</em>: The username for accessing your camera.</li>
<li><strong>password</strong> <em>Required</em>: The password for accessing your camera.</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='brand-logo-container section'>
<img src='/images/supported_brands/foscam.png' />
</div>
<div class='section'>
This is a platform for
<a href=''>the component</a>.
</div>
<div class='section'>
<h1 class="title delta">Category Camera</h1>
<ul class='divided'>
<li>
Foscam IP camera
</li>
<li>
<a href='/components/camera.generic/'>Generic IP Camera</a>
</li>
<li>
<a href='/components/switch.hikvision/'>Hikvision camera</a>
</li>
<li>
<a href='/components/ifttt.manything/'>ManyThing</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>

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,204 @@
<!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>Generic IP Camera - Home Assistant</title>
<meta name="author" content="Paulus Schoutsen">
<meta name="description" content="Instructions how to integrate IP cameras within Home Assistant.">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/components/camera.generic/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="Generic IP Camera">
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/components/camera.generic/">
<meta property="og:type" content="article">
<meta property="og:description" content="Instructions how to integrate IP cameras within Home Assistant.">
<meta property="og: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">
Generic IP Camera
</h1>
</header>
<hr class="divider">
<p>This component allows you to integrate any IP camera into Home Assistant. It supports fetching images from a url with optional HTTP authentication.</p>
<p>Home Assistant will serve the images via its server, making it possible to view your IP cameras while outside of your network.</p>
<p>As part of the basic support the following features will be provided:</p>
<ul>
<li>MJPEG video streaming</li>
<li>Saving a snapshot</li>
<li>Recording(JPEG frame capture)</li>
</ul>
<p>To enable this sensor 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">camera</span>:
<span class="key">platform</span>: <span class="string"><span class="content">generic</span></span>
<span class="key">still_image_url</span>: <span class="string"><span class="content">http://194.218.96.92/jpg/image.jpg</span></span>
<span class="key">name</span>: <span class="string"><span class="content">my sample camera</span></span>
<span class="key">username</span>: <span class="string"><span class="content">USERNAME</span></span>
<span class="key">password</span>: <span class="string"><span class="content">PASSWORD</span></span>
</pre></div>
</div>
</div>
<p>Configuration variables:</p>
<ul>
<li><strong>still_image_url</strong> <em>Required</em>: The URL your camera serves the image on, eg. http://192.168.1.21:2112/</li>
<li><strong>name</strong> <em>Optional</em>: This parameter allows you to override the name of your camera.</li>
<li><strong>username</strong> <em>Optional</em>: The username for accessing your camera.</li>
<li><strong>password</strong> <em>Optional</em>: The password for accessing your camera.</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='brand-logo-container section'>
</div>
<div class='section'>
This is a platform for
<a href=''>the component</a>.
</div>
<div class='section'>
<h1 class="title delta">Category Camera</h1>
<ul class='divided'>
<li>
<a href='/components/camera.foscam/'>Foscam IP camera</a>
</li>
<li>
Generic IP Camera
</li>
<li>
<a href='/components/switch.hikvision/'>Hikvision camera</a>
</li>
<li>
<a href='/components/ifttt.manything/'>ManyThing</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>

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,187 @@
<!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>Configurator - Home Assistant</title>
<meta name="author" content="Paulus Schoutsen">
<meta name="description" content="Instructions how to integrate the configurator in your components.">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/components/configurator/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="Configurator">
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/components/configurator/">
<meta property="og:type" content="article">
<meta property="og:description" content="Instructions how to integrate the configurator in your components.">
<meta property="og: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">
Configurator
</h1>
</header>
<hr class="divider">
<p class="note">
This component is intended for developers.
</p>
<p>The configurator component allows components to request information from the user. It is currently implemented as the minimum viable product:</p>
<ul>
<li>It supports showing a text, image and button to the user</li>
<li>Input fields can be defined with a description, and optional type</li>
<li>It will trigger a callback when the button is pressed</li>
</ul>
<p>The Hue component in <a href="/demo">the demo</a> and Plex are implemented using the configurator. See <a href="https://github.com/balloob/home-assistant/blob/master/homeassistant/components/demo.py#L132">the source of the demo component</a> for a simple example.</p>
<p>See <a href="https://github.com/balloob/home-assistant/blob/master/homeassistant/components/configurator.py#L39">the source</a> for more details on how to use the configurator component.</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'>
</div>
<div class='section'>
<h1 class="title delta">Category Other</h1>
<ul class='divided'>
<li>
<a href='/components/browser/'>Browser</a>
</li>
<li>
Configurator
</li>
<li>
<a href='/components/conversation/'>Conversation</a>
</li>
<li>
<a href='/components/discovery/'>Discovery</a>
</li>
<li>
<a href='/components/downloader/'>Downloader</a>
</li>
<li>
<a href='/components/introduction/'>Introduction</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>

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,188 @@
<!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>Conversation - Home Assistant</title>
<meta name="author" content="Paulus Schoutsen">
<meta name="description" content="Instructions how to have conversations with your Home Assistant.">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/components/conversation/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="Conversation">
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/components/conversation/">
<meta property="og:type" content="article">
<meta property="og:description" content="Instructions how to have conversations with your Home Assistant.">
<meta property="og: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">
Conversation
</h1>
</header>
<hr class="divider">
<p>The conversation component can process sentences into commands for Home Assistant. It is currently limited to parsing commands in the format <code>turn &lt;Friendly Name&gt; &lt;on/off&gt;</code>.</p>
<p>To enable the conversion option 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">conversation</span>:
</pre></div>
</div>
</div>
<p>When this component is active and you are using a supported browser voice commands will be activated in the frontend. Browse to <a href="/demo/">the demo</a> in Chrome to see it in action.</p>
<p class="img">
<img src="/images/screenshots/voice-commands.png" />
</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'>
</div>
<div class='section'>
<h1 class="title delta">Category Other</h1>
<ul class='divided'>
<li>
<a href='/components/browser/'>Browser</a>
</li>
<li>
<a href='/components/configurator/'>Configurator</a>
</li>
<li>
Conversation
</li>
<li>
<a href='/components/discovery/'>Discovery</a>
</li>
<li>
<a href='/components/downloader/'>Downloader</a>
</li>
<li>
<a href='/components/introduction/'>Introduction</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>

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,204 @@
<!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>Presence based lights - Home Assistant</title>
<meta name="author" content="Paulus Schoutsen">
<meta name="description" content="Instructions how to automate your lights with Home Assistant.">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/components/device_sun_light_trigger/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="Presence based lights">
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/components/device_sun_light_trigger/">
<meta property="og:type" content="article">
<meta property="og:description" content="Instructions how to automate your lights with Home Assistant.">
<meta property="og: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">
Presence based lights
</h1>
</header>
<hr class="divider">
<p>Home Assistant has a built-in component called <code>device_sun_light_trigger</code> to help you automate your lights. The component will:</p>
<ul>
<li>Fade in the lights when the sun is setting and there are people home</li>
<li>Turn on the lights when people get home after the sun has set</li>
<li>Turn off the lights when all people leave the house</li>
</ul>
<p>This component requires the components <a href="/components/sun/">sun</a>, <a href="/components/device_tracker/">device_tracker</a> and <a href="/components/light/">light</a> to be enabled.</p>
<p>To enable this component, add the following lines 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_sun_light_trigger</span>:
<span class="key">light_group</span>: <span class="string"><span class="content">group.living_room</span></span>
<span class="key">light_profile</span>: <span class="string"><span class="content">relax</span></span>
<span class="key">device_group</span>: <span class="string"><span class="content">group.my_devices</span></span>
<span class="key">disable_turn_off</span>: <span class="string"><span class="content">1</span></span>
</pre></div>
</div>
</div>
<p>Configuration variables:</p>
<ul>
<li><strong>light_group</strong> (<em>Optional</em>): Specify a specific light/group of lights that has to be turned on.</li>
<li><strong>light_profile</strong> (<em>Optional</em>): Specify which light profile to use when turning lights on.</li>
<li><strong>device_group</strong> (<em>Optional</em>): Specify which group of devices to track.</li>
<li><strong>disable_turn_off</strong> (<em>Optional</em>): Disable lights being turned off when everybody leaves the house.</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='brand-logo-container section'>
</div>
<div class='section'>
<h1 class="title delta">Category Automation</h1>
<ul class='divided'>
<li>
<a href='/components/automation/'>Automation</a>
</li>
<li>
<a href='/components/ifttt/'>IFTTT</a>
</li>
<li>
<a href='/components/keyboard/'>Keyboard</a>
</li>
<li>
Presence based lights
</li>
<li>
<a href='/components/script/'>Scripts</a>
</li>
<li>
<a href='/components/shell_command/'>Shell command</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>

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,239 @@
<!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>Actiontec - Home Assistant</title>
<meta name="author" content="Paulus Schoutsen">
<meta name="description" content="Instructions how to integrate Actiontec routers into Home Assistant.">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/components/device_tracker.actiontec/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="Actiontec">
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/components/device_tracker.actiontec/">
<meta property="og:type" content="article">
<meta property="og:description" content="Instructions how to integrate Actiontec routers into Home Assistant.">
<meta property="og: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">
Actiontec
</h1>
</header>
<hr class="divider">
<p>This platform allows you to detect presence by looking at connected devices to an <a href="http://www.actiontec.com/">Actiontec</a> device.</p>
<p>Supported devices (tested):</p>
<ul>
<li>MI424WR (Verizon FIOS)</li>
</ul>
<p class="note warning">
This device tracker needs telnet to be enabled on the router.
</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">actiontec</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>
<span class="key">home_interval</span>: <span class="string"><span class="content">MINUTES</span></span>
</pre></div>
</div>
</div>
<p>Configuration variables:</p>
<ul>
<li><strong>host</strong> (<em>Required</em>): The IP address of your router, eg. 192.168.1.1.</li>
<li><strong>username</strong> (<em>Required</em>: The username of an user with administrative privileges, usually <em>admin</em>.</li>
<li><strong>password</strong> (<em>Required</em>): The password for your given admin account.</li>
<li><strong>home_interval</strong> (<em>Optional</em>): If the home_interval is set then the component will not let a device be AWAY if it has been HOME in the last home_interval minutes. This is in addition to the 3 minute wait built into the device_tracker component.</li>
</ul>
<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/actiontec.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>
Actiontec
</li>
<li>
<a href='/components/device_tracker.aruba/'>Aruba</a>
</li>
<li>
<a href='/components/device_tracker.ddwrt/'>DD-WRT</a>
</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>

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,237 @@
<!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>Aruba - Home Assistant</title>
<meta name="author" content="Paulus Schoutsen">
<meta name="description" content="Instructions how to integrate Aruba routers into Home Assistant.">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/components/device_tracker.aruba/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="Aruba">
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/components/device_tracker.aruba/">
<meta property="og:type" content="article">
<meta property="og:description" content="Instructions how to integrate Aruba routers into Home Assistant.">
<meta property="og: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">
Aruba
</h1>
</header>
<hr class="divider">
<p>This platform allows you to detect presence by looking at connected devices to an <a href="http://www.arubanetworks.com/products/networking/aruba-instant/">Aruba Instant</a> device.</p>
<p>Supported devices (tested):</p>
<ul>
<li>ARUBA AP-105</li>
</ul>
<p class="note warning">
This device tracker needs telnet to be enabled on the router.
</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">aruba</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>Required</em>: The IP address of your router, e.g. 192.168.1.1.</li>
<li><strong>username</strong> <em>Required</em>: The username of an user with administrative privileges, usually <em>admin</em>.</li>
<li><strong>password</strong> <em>Required</em>: The password for your given admin account.</li>
</ul>
<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/aruba.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>
Aruba
</li>
<li>
<a href='/components/device_tracker.ddwrt/'>DD-WRT</a>
</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>

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,232 @@
<!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>ASUSWRT - Home Assistant</title>
<meta name="author" content="Paulus Schoutsen">
<meta name="description" content="Instructions how to integrate ASUSWRT based routers into Home Assistant.">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/components/device_tracker.asuswrt/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="ASUSWRT">
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/components/device_tracker.asuswrt/">
<meta property="og:type" content="article">
<meta property="og:description" content="Instructions how to integrate ASUSWRT based routers into Home Assistant.">
<meta property="og: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">
ASUSWRT
</h1>
</header>
<hr class="divider">
<p>This platform offers presence detection by looking at connected devices to a <a href="http://event.asus.com/2013/nw/ASUSWRT/">ASUSWRT</a> based router.</p>
<p class="note warning">
This device tracker needs telnet to be enabled on the router.
</p>
<p>To use an ASUSWRT 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>Required</em>): The IP address of your router, e.g. 192.168.1.1.</li>
<li><strong>username</strong> (<em>Required</em>: The username of an user with administrative privileges, usually <em>admin</em>.</li>
<li><strong>password</strong> (<em>Required</em>): The password for your given admin account.</li>
</ul>
<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/asus.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>
ASUSWRT
</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>
<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>

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,228 @@
<!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>DD-WRT - Home Assistant</title>
<meta name="author" content="Paulus Schoutsen">
<meta name="description" content="Instructions how to integrate DD-WRT based routers into Home Assistant.">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/components/device_tracker.ddwrt/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="DD-WRT">
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/components/device_tracker.ddwrt/">
<meta property="og:type" content="article">
<meta property="og:description" content="Instructions how to integrate DD-WRT based routers into Home Assistant.">
<meta property="og: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">
DD-WRT
</h1>
</header>
<hr class="divider">
<p>This platform offers presence detection by looking at connected devices to a <a href="http://www.dd-wrt.com/site/index">DD-WRT</a> based router.</p>
<p>To use a DD-WRRT 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">ddwrt</span></span>
<span class="key">host</span>: <span class="string"><span class="content">ROUTER_IP_ADDRESS</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>Required</em>): The IP address of your router, e.g. 192.168.1.1.</li>
<li><strong>username</strong> (<em>Required</em>: The username of an user with administrative privileges, usually <em>admin</em>.</li>
<li><strong>password</strong> (<em>Required</em>): The password for your given admin account.</li>
</ul>
<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/ddwrt.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>
DD-WRT
</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>

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,215 @@
<!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>Geofancy - Home Assistant</title>
<meta name="author" content="Paulus Schoutsen">
<meta name="description" content="Instructions how to use Geofancy to track devices in Home Assistant.">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/components/device_tracker.geofancy/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="Geofancy">
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/components/device_tracker.geofancy/">
<meta property="og:type" content="article">
<meta property="og:description" content="Instructions how to use Geofancy to track devices in Home Assistant.">
<meta property="og: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">
Geofancy
</h1>
</header>
<hr class="divider">
<p>This platform allows you to detect presence using <a href="https://my.geofancy.com/">Geofancy</a>. Geofancy allows users to track their location on iOS devices.</p>
<p>To integrate Geofancy in Home Assistant, add the following section 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">geofancy</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/geofancy.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>
Geofancy
</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>

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,236 @@
<!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>OpenWRT (luci) - Home Assistant</title>
<meta name="author" content="Paulus Schoutsen">
<meta name="description" content="Instructions how to integrate OpenWRT routers into Home Assistant.">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/components/device_tracker.luci/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="OpenWRT (luci)">
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/components/device_tracker.luci/">
<meta property="og:type" content="article">
<meta property="og:description" content="Instructions how to integrate OpenWRT routers into Home Assistant.">
<meta property="og: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">
OpenWRT (luci)
</h1>
</header>
<hr class="divider">
<p><em>This is one of the two ways we support OpenWRT. If you encounter problems, try <a href="/components/device_tracker.ubus/">ubus</a>.</em></p>
<p>This is a presence detection scanner for OpenWRT using <a href="http://wiki.openwrt.org/doc/techref/luci">luci</a>.</p>
<p>Before this scanner can be used you have to install the luci RPC package on OpenWRT:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>opkg install luci-mod-rpc
</pre></div>
</div>
</div>
<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">luci</span></span>
<span class="key">host</span>: <span class="string"><span class="content">ROUTER_IP_ADDRESS</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>Required</em>): The IP address of your router, e.g. 192.168.1.1.</li>
<li><strong>username</strong> (<em>Required</em>): The username of an user with administrative privileges, usually <em>admin</em>.</li>
<li><strong>password</strong> (<em>Required</em>): The password for your given admin account.</li>
</ul>
<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/openwrt.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>
<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>
OpenWRT (luci)
</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>

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,242 @@
<!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>MQTT device tracker - Home Assistant</title>
<meta name="author" content="Paulus Schoutsen">
<meta name="description" content="Instructions how to use MQTT to track devices in Home Assistant.">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/components/device_tracker.mqtt/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="MQTT device tracker">
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/components/device_tracker.mqtt/">
<meta property="og:type" content="article">
<meta property="og:description" content="Instructions how to use MQTT to track devices in Home Assistant.">
<meta property="og: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">
MQTT device tracker
</h1>
</header>
<hr class="divider">
<p>This platform allows you to detect presence by monitoring an MQTT topic for new locations. To use this platform, you specify a unique topic for each device.</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">mqtt</span></span>
<span class="key">qos</span>: <span class="string"><span class="content">1</span></span>
<span class="key">devices</span>:
<span class="key">paulus_oneplus</span>: <span class="string"><span class="content">/location/paulus</span></span>
<span class="key">annetherese_n4</span>: <span class="string"><span class="content">/location/annetherese</span></span>
</pre></div>
</div>
</div>
<p>Configuration variables:</p>
<ul>
<li><strong>devices</strong> (<em>Required</em>): List of devices with their topic.</li>
<li><strong>qos</strong> (<em>Optional</em>): The QoS level of the topic.</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='brand-logo-container section'>
<img src='/images/supported_brands/mqtt.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'>Related components</h1>
<ul class='divided'>
<li><a href='/components/mqtt/'>
MQTT
</a></li>
<li><a href='/components/alarm_control_panel.mqtt/'>
MQTT Alarm Control Panel
</a></li>
<li><a href='/components/sensor.mqtt/'>
MQTT sensor
</a></li>
<li><a href='/components/switch.mqtt/'>
MQTT switch
</a></li>
</ul>
</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>
<a href='/components/device_tracker.geofancy/'>Geofancy</a>
</li>
<li>
MQTT device tracker
</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>

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,226 @@
<!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>Netgear - Home Assistant</title>
<meta name="author" content="Paulus Schoutsen">
<meta name="description" content="Instructions how to integrate Netgear routers into Home Assistant.">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/components/device_tracker.netgear/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="Netgear">
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/components/device_tracker.netgear/">
<meta property="og:type" content="article">
<meta property="og:description" content="Instructions how to integrate Netgear routers into Home Assistant.">
<meta property="og: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">
Netgear
</h1>
</header>
<hr class="divider">
<p>This platform allows you to detect presence by looking at connected devices to a <a href="http://www.netgear.com/">Netgear</a> device.</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">netgear</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>Required</em>): The IP address of your router, e.g. 192.168.1.1.</li>
<li><strong>username</strong> (<em>Required</em>: The username of an user with administrative privileges, usually <em>admin</em>.</li>
<li><strong>password</strong> (<em>Required</em>): The password for your given admin account.</li>
</ul>
<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/netgear.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>
<a href='/components/device_tracker.geofancy/'>Geofancy</a>
</li>
<li>
<a href='/components/device_tracker.mqtt/'>MQTT device tracker</a>
</li>
<li>
Netgear
</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>

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,220 @@
<!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>Nmap - Home Assistant</title>
<meta name="author" content="Paulus Schoutsen">
<meta name="description" content="Instructions how to integrate Nmap into Home Assistant.">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/components/device_tracker.nmap_scanner/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="Nmap">
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/components/device_tracker.nmap_scanner/">
<meta property="og:type" content="article">
<meta property="og:description" content="Instructions how to integrate Nmap into Home Assistant.">
<meta property="og: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">
Nmap
</h1>
</header>
<hr class="divider">
<p>As an alternative to the router-based device tracking, it is possible to directly scan the network for devices by using Nmap. The IP addresses to scan can be specified in any format that Nmap understands, including the network-prefix notation (<code>192.168.1.1/24</code>) and the range notation (<code>192.168.1.1-255</code>).</p>
<p>If youre on Debian or Ubuntu, you might have to install the packages for arp and nmap. Do so by running <code>apt-get install net-tools nmap</code>.</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">nmap_tracker</span></span>
<span class="key">hosts</span>: <span class="string"><span class="content">192.168.1.1/24</span></span>
<span class="key">home_interval</span>: <span class="string"><span class="content">10</span></span>
</pre></div>
</div>
</div>
<p><code>home_interval</code> is an optional value set in minutes. This will be the number of minutes nmap will not scan this device, assuming it is home, in order to preserve the device battery.</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'>
</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>
<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>
Nmap
</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>

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,220 @@
<!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>Owntracks - Home Assistant</title>
<meta name="author" content="Paulus Schoutsen">
<meta name="description" content="Instructions how to use Owntracks to track devices in Home Assistant.">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/components/device_tracker.owntracks/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="Owntracks">
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/components/device_tracker.owntracks/">
<meta property="og:type" content="article">
<meta property="og:description" content="Instructions how to use Owntracks to track devices in Home Assistant.">
<meta property="og: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">
Owntracks
</h1>
</header>
<hr class="divider">
<p>This platform allows you to detect presence using <a href="http://owntracks.org/">Owntracks</a>. OwnTracks allows users to track their location on Android and iOS phones and publish it to an MQTT broker. This platform will connect to the broker and monitor for new locations.</p>
<p>This component requires <a href="/components/mqtt/">the MQTT component</a> to be set up and works very well together with <a href="/components/zone/">the zone component</a>.</p>
<p>To integrate Owntracks in Home Assistant, add the following section 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">owntracks</span></span>
</pre></div>
</div>
</div>
<p>There is no further configuration needed for tracking Owntracks devices.</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/owntracks.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>
<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>
Owntracks
</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>

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