Site updated at 2017-03-18 17:12:07 UTC

This commit is contained in:
Travis CI 2017-03-18 17:12:07 +00:00
parent 7573fcba68
commit 67179bf8fe
994 changed files with 1768 additions and 68252 deletions

View file

@ -3,17 +3,14 @@
<!--[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>Smart Baby Monitor - Home Assistant</title>
<meta name="author" content="Pascal Vizeli">
<meta name="description" content="How to build your own smart baby monitor">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/blog/2017/02/03/babyphone/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="Smart Baby Monitor">
<meta property="og:site_name" content="Home Assistant">
@ -21,39 +18,31 @@
<meta property="og:type" content="article">
<meta property="og:description" content="How to build your own smart baby monitor">
<meta property="og:image" content="https://home-assistant.io/images/blog/2017-02-babyphone/social.png">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@home_assistant">
<meta name="twitter:title" content="Smart Baby Monitor">
<meta name="twitter:description" content="How to build your own smart baby monitor">
<meta name="twitter:image" content="https://home-assistant.io/images/blog/2017-02-babyphone/social.png">
<link href="/stylesheets/screen.css" media="screen, projection" rel="stylesheet">
<link href="/atom.xml" rel="alternate" title="Home Assistant" type="application/atom+xml">
<link rel='shortcut icon' href='/images/favicon.ico' />
<link rel='icon' type='image/png' href='/images/favicon-192x192.png' sizes='192x192' />
</head>
<body >
<header>
<div class="grid-wrapper">
<div class="grid">
<div class="grid__item three-tenths lap-two-sixths palm-one-whole ha-title">
<a href="/" class="site-title">
<img width='40' src='/demo/favicon-192x192.png'>
<span>Home Assistant</span>
</a>
</div>
<div class="grid__item seven-tenths lap-four-sixths palm-one-whole">
<nav>
<input type="checkbox" id="toggle">
<label for="toggle" class="toggle" data-open="Main Menu" data-close="Close Menu"></label>
<ul class="menu pull-right">
<li><a href="/getting-started/">Getting started</a></li>
<li><a href="/components/">Components</a></li>
<li><a href="/docs/">Docs</a></li>
@ -64,27 +53,15 @@
</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="post">
<header>
<h1 class="title indent">Smart Baby Monitor</h1>
<div class="meta clearfix">
<time datetime="2017-02-03T23:00:00+00:00" pubdate data-updated="true"><i class="icon-calendar"></i> February 4, 2017</time>
<span class="byline author vcard"><i class='icon-user'></i> Pascal Vizeli</span>
@ -92,50 +69,31 @@
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
<li>How-To</li>
</ul>
</span>
<a class='comments'
href="#disqus_thread"
>Comments</a>
</div>
</header>
<p>One of the hardest part of being a parent is keeping a constant eye on the baby to make sure that baby is doing well. Thus, it is not surprising that baby monitors are one of the fastest growing baby product category. However, many of the baby monitors available on the market are rather dumb and expect the parents to keep looking at the video stream or listen to the audio. This how-to will help you create a smart baby monitor on a budget and integrate it with Home Assitant. Instead of relying on the poor quality baby monitor speakers, we use our existing speakers (eg. Sonos). We can also send notifications (with pictures) to avoid constant monitoring of the feed.</p>
<p>Obviously, you can use the setup as a general purpose surveillance system to monitor noise in the whole house.</p>
<a name="read-more"></a>
<h3><a class="title-link" name="setup" href="#setup"></a> Setup</h3>
<p>We need an IP camera that can capture sound in the babys room. It is also possible to use a Raspberry Pi with a microphone and send the audio to Home Assistant with <code class="highlighter-rouge">ffmpeg -f alsa -i hw:1,0 -vn -f rtp rtp://236.0.0.1:2000</code> over multicast. We can set the <code class="highlighter-rouge">input</code> option on the Home Assistant side to <code class="highlighter-rouge">rtp://236.0.0.1:2000</code> in same network.</p>
<p>Next, we attach a FFmpeg noise binary sensor to our IP camera. The sensor has an output <code class="highlighter-rouge">option</code> that allows us to send the output to an <a href="http://icecast.org/">icecast2</a> server for playing over speakers integrated with Home Assistant (eg. Sonos). We can use the binary sensor in our automation. You can ignore the icecast2 setup if you dont want to play the audio after the noise sensor trigger.</p>
<p class="note">
We change the platform name for binary sensor in 0.38 from <code class="highlighter-rouge">ffmpeg</code> to <code class="highlighter-rouge">ffmpeg_noise</code>. Also all service going to component and was rename from <code class="highlighter-rouge">binary_sensor.ffmpeg_xy</code> to <code class="highlighter-rouge">ffmpeg.xy</code>.
</p>
<p>On Raspbian Jessie, you can setup <a href="/components/ffmpeg">FFmpeg</a> and install a <a href="http://icecast.org/">icecast2</a> server using:</p>
<div class="language-bash highlighter-rouge"><pre class="highlight"><code><span class="gp">$ </span>sudo <span class="nb">echo</span> <span class="s2">"deb http://ftp.debian.org/debian jessie-backports main"</span> &gt;&gt; /etc/apt/sources.list
<span class="gp">$ </span>sudo apt-get update
<span class="gp">$ </span>sudo apt-get -t jessie-backports install ffmpeg
<span class="gp">$ </span>sudo apt-get install icecast2
</code></pre>
</div>
<p>We setup a icecast mount point for our babyphone and update <code class="highlighter-rouge">/etc/icecast2/icecast.xml</code>:</p>
<div class="highlighter-rouge"><pre class="highlight"><code>&lt;mount&gt;
&lt;mount-name&gt;/babyphone.mp3&lt;/mount-name&gt;
&lt;stream-name&gt;Babyphone&lt;/stream-name&gt;
@ -145,11 +103,8 @@ We change the platform name for binary sensor in 0.38 from <code class="highligh
&lt;/mount&gt;
</code></pre>
</div>
<p>Now we can add the noise sensor to Home Assistant. We can lower the sensitivity of the sensor (so that you are not inundated with notifications for every cough of the baby) to 2 seconds using the <code class="highlighter-rouge">duration</code> option. The sensor should wait 60 seconds before restoring and it prevent us that a wine break will triggering a new alarm.</p>
<p>We can optimize the audio stream for human voice by using a highpass filter with 300 Hz and a lowpass filter with 2500 Hz. This filters out all non-human sounds such as background noise. We can even add a volume amplifier if the microphone volume is too low (you can remove it from <code class="highlighter-rouge">extra_arguments</code>). For icecast2 we convert the audio stream to mp3 with samplerate of 16000 (which is the minimum for Sonos speakers). We use <code class="highlighter-rouge">peak</code> to set the threshold for noise detection, where 0 dB is very loud and -100 dB is low.</p>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="s">binary_sensor</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">platform</span><span class="pi">:</span> <span class="s">ffmpeg_noise</span>
<span class="s">input</span><span class="pi">:</span> <span class="s">rtsp://user:pw@my_input/video</span>
@ -161,9 +116,7 @@ We change the platform name for binary sensor in 0.38 from <code class="highligh
<span class="s">peak</span><span class="pi">:</span> <span class="s">-32</span>
</code></pre>
</div>
<p>We use the option <code class="highlighter-rouge">initial_state</code> to prevent the FFmpeg process from starting with Home Assistant and only start it when needed. We use an <code class="highlighter-rouge">input_boolean</code> to control the state of FFmpeg services using the following automation.</p>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="s">input_boolean</span><span class="pi">:</span>
<span class="s">babyphone</span><span class="pi">:</span>
<span class="s">name</span><span class="pi">:</span> <span class="s">babyphone</span>
@ -191,11 +144,8 @@ We change the platform name for binary sensor in 0.38 from <code class="highligh
<span class="s">entity_id</span><span class="pi">:</span> <span class="s">binary_sensor.ffmpeg_noise</span>
</code></pre>
</div>
<h3><a class="title-link" name="trigger-a-alarm" href="#trigger-a-alarm"></a> Trigger a alarm</h3>
<p>Now we can make a lot stuff. Here is a simple example of an automation what should be possible with Sonos speakers.</p>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="s">automation</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">alias</span><span class="pi">:</span> <span class="s1">'</span><span class="s">Babyphone</span><span class="nv"> </span><span class="s">alarm</span><span class="nv"> </span><span class="s">on'</span>
<span class="s">trigger</span><span class="pi">:</span>
@ -239,26 +189,16 @@ We change the platform name for binary sensor in 0.38 from <code class="highligh
<span class="pi">-</span> <span class="s">light.bedroom</span>
</code></pre>
</div>
<h3><a class="title-link" name="thanks" href="#thanks"></a> Thanks</h3>
<p>Special thanks to <a href="https://github.com/arsaboo">arsaboo</a> for assistance in writing this blogpost.</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>
</section>
</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">
<h1 class="title delta">About Home Assistant</h1>
<ul class="divided">
@ -274,74 +214,45 @@ We change the platform name for binary sensor in 0.38 from <code class="highligh
<div id="fb-root"></div>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.async=true;js.src='//platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
<script>(function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(d.getElementById(id)){return;}js=d.createElement(s);js.id=id;js.async=true;js.src="//connect.facebook.net/en_US/all.js#appId=338291289691179&xfbml=1";fjs.parentNode.insertBefore(js,fjs);}(document,'script','facebook-jssdk'));</script>
<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-via="home_assistant"
data-related="home_assistant"
data-url="https://home-assistant.io/blog/2017/02/03/babyphone/"
data-counturl="https://home-assistant.io/blog/2017/02/03/babyphone/" >Tweet</a>
<div class="fb-share-button" style='top: -6px;'
data-href="https://home-assistant.io/blog/2017/02/03/babyphone/"
data-layout="button_count">
</div>
<div class="g-plusone" data-size="standard"></div>
</section>
<script src="https://apis.google.com/js/platform.js" async defer></script>
<section id="recent-posts" class="aside-module grid__item one-whole lap-one-half">
<h1 class="title delta">Recent Posts</h1>
<ul class="divided">
<li class="post">
<a href="/blog/2017/03/11/repurpose-any-android-phone-as-ip-camera/">Home Assistant 0.40: Turn any Android phone into an IP Webcam</a>
</li>
<li class="post">
<a href="/blog/2017/02/25/config-panel-and-state-restoration/">0.39: Configuration panel, state restoration and improved docs</a>
</li>
<li class="post">
<a href="/blog/2017/02/22/home-assistant-tshirts-have-arrived/">Home Assistant t-shirts have arrived!</a>
</li>
<li class="post">
<a href="/blog/2017/02/14/clt-workshop/">Workshop at CLT 2017</a>
</li>
<li class="post">
<a href="/blog/2017/02/11/alert-appletv-mqtt-yeelight/">0.38: Alert, AppleTV, MQTT discovery, and Yeelight</a>
</li>
</ul>
</section>
</div>
</aside>
</div>
</div>
<footer>
<div class="grid-wrapper">
<div class="grid">
@ -351,7 +262,6 @@ We change the platform name for binary sensor in 0.38 from <code class="highligh
<a rel="me" href='https://facebook.com/homeassistantio'><i class="icon-facebook"></i></a>
<a rel="me" href='https://plus.google.com/110560654828510104551'><i class="icon-google-plus"></i></a>
<a rel="me" href='https://github.com/home-assistant/home-assistant'><i class="icon-github"></i></a>
<div class="credit">
Contact us at <a href='mailto:hello@home-assistant.io'>hello@home-assistant.io</a>.<br>
Website powered by <a href='http://jekyllrb.com/'>Jekyll</a> and the <a href='https://github.com/coogie/oscailte'>Oscalite theme</a>.<br />
@ -363,7 +273,6 @@ We change the platform name for binary sensor in 0.38 from <code class="highligh
</div>
</div>
</footer>
<script>
var _gaq=[['_setAccount','UA-57927901-1'],['_trackPageview']];
(function(d,t){var g=d.createElement(t),s=d.getElementsByTagName(t)[0];
@ -372,13 +281,10 @@ We change the platform name for binary sensor in 0.38 from <code class="highligh
</script>
<script>
var disqus_shortname = 'home-assistant';
// var disqus_developer = 1;
var disqus_identifier = 'https://home-assistant.io/blog/2017/02/03/babyphone/';
var disqus_url = 'https://home-assistant.io/blog/2017/02/03/babyphone/';
var disqus_script = 'embed.js';
(function () {
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
dsq.src = '//' + disqus_shortname + '.disqus.com/' + disqus_script;
@ -386,4 +292,4 @@ We change the platform name for binary sensor in 0.38 from <code class="highligh
}());
</script>
</body>
</html>
</html>

View file

@ -3,17 +3,14 @@
<!--[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>HASSbian 1.1 - The Toy-box - Home Assistant</title>
<meta name="author" content="Fredrik Lindqvist">
<meta name="description" content="New release of the HASSbian Raspberry Pi Image for Home Assistant">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/blog/2017/02/04/hassbian-toybox/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="HASSbian 1.1 - The Toy-box">
<meta property="og:site_name" content="Home Assistant">
@ -21,39 +18,31 @@
<meta property="og:type" content="article">
<meta property="og:description" content="New release of the HASSbian Raspberry Pi Image for Home Assistant">
<meta property="og:image" content="https://home-assistant.io/images/default-social.png">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@home_assistant">
<meta name="twitter:title" content="HASSbian 1.1 - The Toy-box">
<meta name="twitter:description" content="New release of the HASSbian Raspberry Pi Image for Home Assistant">
<meta name="twitter:image" content="https://home-assistant.io/images/default-social.png">
<link href="/stylesheets/screen.css" media="screen, projection" rel="stylesheet">
<link href="/atom.xml" rel="alternate" title="Home Assistant" type="application/atom+xml">
<link rel='shortcut icon' href='/images/favicon.ico' />
<link rel='icon' type='image/png' href='/images/favicon-192x192.png' sizes='192x192' />
</head>
<body >
<header>
<div class="grid-wrapper">
<div class="grid">
<div class="grid__item three-tenths lap-two-sixths palm-one-whole ha-title">
<a href="/" class="site-title">
<img width='40' src='/demo/favicon-192x192.png'>
<span>Home Assistant</span>
</a>
</div>
<div class="grid__item seven-tenths lap-four-sixths palm-one-whole">
<nav>
<input type="checkbox" id="toggle">
<label for="toggle" class="toggle" data-open="Main Menu" data-close="Close Menu"></label>
<ul class="menu pull-right">
<li><a href="/getting-started/">Getting started</a></li>
<li><a href="/components/">Components</a></li>
<li><a href="/docs/">Docs</a></li>
@ -64,27 +53,15 @@
</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="post">
<header>
<h1 class="title indent">HASSbian 1.1 - The Toy-box</h1>
<div class="meta clearfix">
<time datetime="2017-02-04T09:00:00+00:00" pubdate data-updated="true"><i class="icon-calendar"></i> February 4, 2017</time>
<span class="byline author vcard"><i class='icon-user'></i> Fredrik Lindqvist</span>
@ -92,28 +69,17 @@
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
<li>Technology</li>
</ul>
</span>
<a class='comments'
href="#disqus_thread"
>Comments</a>
</div>
</header>
<p>Tonight Im happy to announce a new release of the our Raspberry Pi image, <strong>HASSbian 1.1 - The Toy-box.</strong><br />
Why Toy-box you wonder? Because it encompass the changes pretty well.</p>
<p>Changes from previous image are big and small but lets start with the interesting things.</p>
<h3><a class="title-link" name="hassbian-scripts" href="#hassbian-scripts"></a> Hassbian-scripts</h3>
<p>A set of script written to add extra functionality to your Raspberry Pi installation.
This scripts are run as the <code class="highlighter-rouge">pi</code> user and installs a set of tools or packages.
@ -124,7 +90,6 @@ Currently includes:</p>
<li>Install OpenZWave. Installs OpenZWave and prepares for using a USB or GPIO ZWave controller.</li>
<li>Install Samba. Installs the Samba packages and shares your configuration over smb to be available to edit on any computer without the need for separate file transfer software. This share is unsecured and its usage is not recommended if your installation is publicly available.</li>
</ul>
<p>All of these scripts are available in the directory <code class="highlighter-rouge">/home/pi/hassbian-scripts/</code>. This directory is actually a cloned git repository thats cloned on first boot and can be updated to the latest release with ease after.
To update the hassbian-scripts directory execute the following command as the <code class="highlighter-rouge">pi</code> user.</p>
<div class="language-bash highlighter-rouge"><pre class="highlight"><code><span class="gp">$ </span><span class="nb">cd </span>hassbian-scripts
@ -135,9 +100,7 @@ To update the hassbian-scripts directory execute the following command as the <c
<div class="language-bash highlighter-rouge"><pre class="highlight"><code><span class="gp">$ </span>sudo ./hassbian-scripts/install_libcec.sh
</code></pre>
</div>
<p>For more information about these scripts have a look a the <a href="https://github.com/home-assistant/hassbian-scripts">hassbian-scripts repository</a>.</p>
<h3><a class="title-link" name="spring-cleaning" href="#spring-cleaning"></a> Spring cleaning</h3>
<p>With this image there also quite a bit of cleaning of the base system and the script that generates our Raspberry Pi image.</p>
<ul>
@ -149,30 +112,19 @@ To update the hassbian-scripts directory execute the following command as the <c
<li>Added tmux. A great terminal multiplexer that makes working with the command line over ssh easier.</li>
<li>Added the <code class="highlighter-rouge">homeassistant</code> user to the <code class="highlighter-rouge">dialout</code> group. Simplifies use of hardware such as ZWave USB controllers that requires this permission.</li>
</ul>
<h3><a class="title-link" name="on-the-horizon" href="#on-the-horizon"></a> On the horizon</h3>
<p>Theres of course more on the horizon and theres even more plans and wishes for how this image will function in the future.
On the close horizon from <a href="https://github.com/Landrash">@Landrash</a> there a few more script in the works and for tellstick, emulated_hue and for controlling Home Assistant.</p>
<p>To follow discussions about the development of the HASSbian image or to contribute join the <a href="https://gitter.im/home-assistant/hassbian">HASSbian gitter chat</a>.</p>
<p>To get started with the new image, check out the installation instructions in the <a href="/getting-started/installation-raspberry-pi-image/">getting started section</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>
</section>
</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">
<h1 class="title delta">About Home Assistant</h1>
<ul class="divided">
@ -188,74 +140,45 @@ On the close horizon from <a href="https://github.com/Landrash">@Landrash</a> th
<div id="fb-root"></div>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.async=true;js.src='//platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
<script>(function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(d.getElementById(id)){return;}js=d.createElement(s);js.id=id;js.async=true;js.src="//connect.facebook.net/en_US/all.js#appId=338291289691179&xfbml=1";fjs.parentNode.insertBefore(js,fjs);}(document,'script','facebook-jssdk'));</script>
<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-via="home_assistant"
data-related="home_assistant"
data-url="https://home-assistant.io/blog/2017/02/04/hassbian-toybox/"
data-counturl="https://home-assistant.io/blog/2017/02/04/hassbian-toybox/" >Tweet</a>
<div class="fb-share-button" style='top: -6px;'
data-href="https://home-assistant.io/blog/2017/02/04/hassbian-toybox/"
data-layout="button_count">
</div>
<div class="g-plusone" data-size="standard"></div>
</section>
<script src="https://apis.google.com/js/platform.js" async defer></script>
<section id="recent-posts" class="aside-module grid__item one-whole lap-one-half">
<h1 class="title delta">Recent Posts</h1>
<ul class="divided">
<li class="post">
<a href="/blog/2017/03/11/repurpose-any-android-phone-as-ip-camera/">Home Assistant 0.40: Turn any Android phone into an IP Webcam</a>
</li>
<li class="post">
<a href="/blog/2017/02/25/config-panel-and-state-restoration/">0.39: Configuration panel, state restoration and improved docs</a>
</li>
<li class="post">
<a href="/blog/2017/02/22/home-assistant-tshirts-have-arrived/">Home Assistant t-shirts have arrived!</a>
</li>
<li class="post">
<a href="/blog/2017/02/14/clt-workshop/">Workshop at CLT 2017</a>
</li>
<li class="post">
<a href="/blog/2017/02/11/alert-appletv-mqtt-yeelight/">0.38: Alert, AppleTV, MQTT discovery, and Yeelight</a>
</li>
</ul>
</section>
</div>
</aside>
</div>
</div>
<footer>
<div class="grid-wrapper">
<div class="grid">
@ -265,7 +188,6 @@ On the close horizon from <a href="https://github.com/Landrash">@Landrash</a> th
<a rel="me" href='https://facebook.com/homeassistantio'><i class="icon-facebook"></i></a>
<a rel="me" href='https://plus.google.com/110560654828510104551'><i class="icon-google-plus"></i></a>
<a rel="me" href='https://github.com/home-assistant/home-assistant'><i class="icon-github"></i></a>
<div class="credit">
Contact us at <a href='mailto:hello@home-assistant.io'>hello@home-assistant.io</a>.<br>
Website powered by <a href='http://jekyllrb.com/'>Jekyll</a> and the <a href='https://github.com/coogie/oscailte'>Oscalite theme</a>.<br />
@ -277,7 +199,6 @@ On the close horizon from <a href="https://github.com/Landrash">@Landrash</a> th
</div>
</div>
</footer>
<script>
var _gaq=[['_setAccount','UA-57927901-1'],['_trackPageview']];
(function(d,t){var g=d.createElement(t),s=d.getElementsByTagName(t)[0];
@ -286,13 +207,10 @@ On the close horizon from <a href="https://github.com/Landrash">@Landrash</a> th
</script>
<script>
var disqus_shortname = 'home-assistant';
// var disqus_developer = 1;
var disqus_identifier = 'https://home-assistant.io/blog/2017/02/04/hassbian-toybox/';
var disqus_url = 'https://home-assistant.io/blog/2017/02/04/hassbian-toybox/';
var disqus_script = 'embed.js';
(function () {
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
dsq.src = '//' + disqus_shortname + '.disqus.com/' + disqus_script;
@ -300,4 +218,4 @@ On the close horizon from <a href="https://github.com/Landrash">@Landrash</a> th
}());
</script>
</body>
</html>
</html>

View file

@ -3,17 +3,14 @@
<!--[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>0.38: Alert, AppleTV, MQTT discovery, and Yeelight - Home Assistant</title>
<meta name="author" content="Robbie Trencheny, Fabian Affolter">
<meta name="description" content="Faster and more configurable frontend, configuration check, and complete move to async for core">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/blog/2017/02/11/alert-appletv-mqtt-yeelight/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="0.38: Alert, AppleTV, MQTT discovery, and Yeelight">
<meta property="og:site_name" content="Home Assistant">
@ -21,39 +18,32 @@
<meta property="og:type" content="article">
<meta property="og:description" content="Faster and more configurable frontend, configuration check, and complete move to async for core">
<meta property="og:image" content="https://home-assistant.io/images/blog/2017-02-0.38/social.png">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@home_assistant">
<meta name="twitter:creator" content="@robbie">
<meta name="twitter:title" content="0.38: Alert, AppleTV, MQTT discovery, and Yeelight">
<meta name="twitter:description" content="Faster and more configurable frontend, configuration check, and complete move to async for core">
<meta name="twitter:image" content="https://home-assistant.io/images/blog/2017-02-0.38/social.png">
<link href="/stylesheets/screen.css" media="screen, projection" rel="stylesheet">
<link href="/atom.xml" rel="alternate" title="Home Assistant" type="application/atom+xml">
<link rel='shortcut icon' href='/images/favicon.ico' />
<link rel='icon' type='image/png' href='/images/favicon-192x192.png' sizes='192x192' />
</head>
<body >
<header>
<div class="grid-wrapper">
<div class="grid">
<div class="grid__item three-tenths lap-two-sixths palm-one-whole ha-title">
<a href="/" class="site-title">
<img width='40' src='/demo/favicon-192x192.png'>
<span>Home Assistant</span>
</a>
</div>
<div class="grid__item seven-tenths lap-four-sixths palm-one-whole">
<nav>
<input type="checkbox" id="toggle">
<label for="toggle" class="toggle" data-open="Main Menu" data-close="Close Menu"></label>
<ul class="menu pull-right">
<li><a href="/getting-started/">Getting started</a></li>
<li><a href="/components/">Components</a></li>
<li><a href="/docs/">Docs</a></li>
@ -64,27 +54,15 @@
</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="post">
<header>
<h1 class="title indent">0.38: Alert, AppleTV, MQTT discovery, and Yeelight</h1>
<div class="meta clearfix">
<time datetime="2017-02-11T08:04:05+00:00" pubdate data-updated="true"><i class="icon-calendar"></i> February 11, 2017</time>
<span class="byline author vcard"><i class='icon-user'></i> Robbie Trencheny, Fabian Affolter</span>
@ -92,25 +70,15 @@
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
<li>Release-Notes</li>
</ul>
</span>
<a class='comments'
href="#disqus_thread"
>Comments</a>
</div>
</header>
<p>Another Saturday, another release!</p>
<h3><a class="title-link" name="core-updates" href="#core-updates"></a> Core updates</h3>
<ul>
<li>
@ -120,28 +88,20 @@
<p>Now when you restart Home Assistant using the <code class="highlighter-rouge">homeassistant.restart</code> service, your configuration is checked. If it appears to be invalid the restart will fail.</p>
</li>
</ul>
<h3><a class="title-link" name="rewritten-frontend" href="#rewritten-frontend"></a> Rewritten frontend</h3>
<p>The frontend has been completely been rewritten, optimizing for speed and lost connection recovery. Even on the slowest phones it should fly now. The frontend also now uses the new <a href="https://home-assistant.io/developers/websocket_api/">WebSockets API</a> instead of the <a href="https://home-assistant.io/developers/server_sent_events/">EventStream API</a>.</p>
<h3><a class="title-link" name="custom-state-card-ui" href="#custom-state-card-ui"></a> Custom state card UI</h3>
<p>A nice new feature is the possibility to create <a href="https://home-assistant.io/developers/frontend_creating_custom_ui/">custom state cards</a> in the frontend. Go ahead and write your own state card for <a href="https://home-assistant.io/cookbook/custom_ui_by_andrey-git">lights</a>, sensors, locks, etc.</p>
<h3><a class="title-link" name="mqtt-discovery" href="#mqtt-discovery"></a> MQTT discovery</h3>
<p>MQTT now has <a href="https://home-assistant.io/components/mqtt/#discovery">discovery</a> support which is different than our <a href="https://home-assistant.io/components/discovery/"><code class="highlighter-rouge">discovery</code></a> component. Similar to the HTTP sensor and HTTP binary sensor, MQTT discovery removes the need for configuration by allowing devices to make their presence known to Home Assistant.</p>
<h3><a class="title-link" name="alert-component" href="#alert-component"></a> Alert component</h3>
<p>If you left your front door open, then the new <a href="https://home-assistant.io/components/alert/"><code class="highlighter-rouge">alert</code></a> component can be used to remind you of this by sending you repeating notifications at a given interval.</p>
<h3><a class="title-link" name="yeelight" href="#yeelight"></a> Yeelight</h3>
<p>The <a href="https://home-assistant.io/components/light.yeelight/"><code class="highlighter-rouge">yeelight</code></a> component has been ported to use a more stable and feature-complete <a href="https://gitlab.com/stavros/python-yeelight">python-yeelight</a> backend, and supports now both white and RGB bulbs. The component also supports transitions and can be configured to save the settings to the bulb on changes. The users currently using custom components for Yeelight are encouraged to move back to use the included version and report any problems with it to our <a href="https://github.com/home-assistant/home-assistant/issues">issue tracker</a>.</p>
<h3><a class="title-link" name="apple-tv" href="#apple-tv"></a> Apple TV</h3>
<p><a href="https://home-assistant.io/components/media_player.apple_tv/">Apple TV</a> is now a supported <a href="https://home-assistant.io/components/media_player/"><code class="highlighter-rouge">media_player</code></a>! It has support for just about every media player function, including a realtime display of playback status and artwork.</p>
<h3><a class="title-link" name="all-changes" href="#all-changes"></a> All changes</h3>
<h4><a class="title-link" name="new-platformscomponents" href="#new-platformscomponents"></a> New platforms/components</h4>
<ul>
<li>Sensor: Support for monitoring <a href="https://home-assistant.io/components/sensor.openevse/">OpenEVSE</a> chargers (<a href="https://github.com/miniconfig">@miniconfig</a>)</li>
<li>Voice command <a href="https://home-assistant.io/components/apiai/">API.AI</a> (<a href="https://github.com/adrianlzt">@adrianlzt</a>)</li>
@ -157,9 +117,7 @@
<li>Notify: <a href="https://home-assistant.io/components/notify.mailgun/">Mailgun</a> notify service (<a href="https://github.com/pschmitt">@pschmitt</a>)</li>
<li>Image Processing: Support <a href="https://home-assistant.io/components/image_processing.microsoft_face_detect/">Microsoft Face detection</a> (<a href="https://github.com/pvizeli">@pvizeli</a>)</li>
</ul>
<h4><a class="title-link" name="improvements" href="#improvements"></a> Improvements</h4>
<ul>
<li>Switch - Pilight: Validation no longer rejects alphanumeric IDs (<a href="https://github.com/DavidLP">@DavidLP</a>)</li>
<li>Device tracker - ASUSWrt: Fixes <code class="highlighter-rouge">ip neigh</code> regex to handle the possible IPv6 “router” flag (<a href="https://github.com/kylehendricks">@kylehendricks</a>)</li>
@ -206,18 +164,13 @@
<li>Zoneminder: Refactoring and JSON decode error handling (<a href="https://github.com/pschmitt">@pschmitt</a>)</li>
<li>Image processing: Cleanup Base face class add support for microsoft face detect (<a href="https://github.com/pvizeli">@pvizeli</a>)</li>
</ul>
<p>Bugfixes: <a href="https://github.com/balloob">@balloob</a>, <a href="https://github.com/fabaff">@fabaff</a>, <a href="https://github.com/pvizeli">@pvizeli</a>, <a href="https://github.com/Danielhiversen">@mnoorenberghe</a>, <a href="https://github.com/armills">@armills</a>, <a href="https://github.com/tchellomello">@tchellomello</a>, <a href="https://github.com/aequitas">@aequitas</a>, <a href="https://github.com/mathewpeterson">@mathewpeterson</a>, <a href="https://github.com/molobrakos">@molobrakos</a>, <a href="https://github.com/michaelarnauts">@michaelarnauts</a>, <a href="https://github.com/jabesq">@jabesq</a>, <a href="https://github.com/turbokongen">@turbokongen</a>, <a href="https://github.com/JshWright">@JshWright</a>, <a href="https://github.com/andriej">@andriej</a>, <a href="https://github.com/jawilson">@jawilson</a>, <a href="https://github.com/andrey-git">@andrey-git</a>, <a href="https://github.com/nodinosaur">@nodinosaur</a>, <a href="https://github.com/konikvranik">@konikvranik</a>, and you if you are missing here.</p>
<h3><a class="title-link" name="release-0381---february-12" href="#release-0381---february-12"></a> Release 0.38.1 - February 12</h3>
<ul>
<li>Fix logbook ordering (<a href="https://github.com/balloob">@balloob</a>)</li>
<li>Fix AppleTV conflicting dependency breaking websockets (<a href="https://github.com/balloob">@balloob</a>)</li>
</ul>
<h3><a class="title-link" name="release-0382---february-12" href="#release-0382---february-12"></a> Release 0.38.2 - February 12</h3>
<ul>
<li>Validate config will now respect custom config location (<a href="https://github.com/balloob">@balloob</a>)</li>
<li>Fix Nuki lock on Python 3.4 (<a href="https://github.com/pschmitt">@pschmitt</a>)</li>
@ -226,9 +179,7 @@
<li>Fix MQTT discovery (<a href="https://github.com/fabaff">@fabaff</a>)</li>
<li>Fix Z-Wave thermostat units (<a href="https://github.com/turbokongen">@turbokongen</a>)</li>
</ul>
<h3><a class="title-link" name="release-0383---february-15" href="#release-0383---february-15"></a> Release 0.38.3 - February 15</h3>
<ul>
<li>Sonos: fix losing favorite sources on disconnect (<a href="https://github.com/pvizeli">@pvizeli</a>)</li>
<li>Google Calendar: fix timeMin losing events (<a href="https://github.com/happyleavesaoc">@happyleavesaoc</a>)</li>
@ -237,14 +188,11 @@
<li>Moon: remove unit of measurement (<a href="https://github.com/fabaff">@fabaff</a>)</li>
<li>MySensors: add version requirement to notify and device tracker (<a href="https://github.com/MartinHjelmare">@MartinHjelmare</a>)</li>
</ul>
<h3><a class="title-link" name="release-0384---february-21" href="#release-0384---february-21"></a> Release 0.38.4 - February 21</h3>
<ul>
<li>Discovery: flux_led discovery led to problems on systems and has been removed (<a href="https://github.com/bazwilliams">@bazwilliams</a>)</li>
<li>Hidden devices are no longer visible on views (<a href="https://github.com/balloob">@balloob</a>)</li>
</ul>
<h3><a class="title-link" name="breaking-changes" href="#breaking-changes"></a> Breaking changes</h3>
<ul>
<li>The support for <a href="https://home-assistant.io/components/media_player.webostv/">LG webOS Smart TVs</a> was improved. This requires you to move <code class="highlighter-rouge">$HOME/.pylgtv</code> to <code class="highlighter-rouge">$HASS_CONFIG_DIR/webostv.conf</code> or Home Assistant will need to be paired with the TV again.</li>
@ -252,28 +200,18 @@
<li>The <a href="https://home-assistant.io/components/binary_sensor.ffmpeg/">FFmpeg binary sensor</a> change the platform name from <code class="highlighter-rouge">ffmpeg</code> to <code class="highlighter-rouge">ffmpeg_noise</code> and <code class="highlighter-rouge">ffmpeg_motion</code>. Also all FFmpeg-related services are moved from a platform implementation to a the <a href="https://home-assistant.io/components/ffmpeg/">FFmpeg components</a> and were rename from <code class="highlighter-rouge">binary_sensor.ffmpeg_xy</code> to <code class="highlighter-rouge">ffmpeg.xy</code>.</li>
<li>The frontend core changes have caused all custom panels to break. Docs have not been updated yet. The gist is that you have to use <code class="highlighter-rouge">this.hass.entities</code>, <code class="highlighter-rouge">this.hass.callService</code> and <code class="highlighter-rouge">this.hass.callApi</code>.</li>
</ul>
<h3><a class="title-link" name="if-you-need-help" href="#if-you-need-help"></a> If you need help…</h3>
<p>…dont hesitate to use our very active <a href="https://community.home-assistant.io/">forums</a> or join us for a little <a href="https://gitter.im/home-assistant/home-assistant">chat</a>. The release notes have comments enabled but its preferred if you use the former communication channels. Thanks.</p>
<h3><a class="title-link" name="reporting-issues" href="#reporting-issues"></a> Reporting Issues</h3>
<p>Experiencing issues introduced by this release? Please report them in our <a href="https://github.com/home-assistant/home-assistant/issues">issue tracker</a>. Make sure to fill in all fields of the issue template.</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>
</section>
</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">
<h1 class="title delta">About Home Assistant</h1>
<ul class="divided">
@ -289,70 +227,42 @@
<div id="fb-root"></div>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.async=true;js.src='//platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
<script>(function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(d.getElementById(id)){return;}js=d.createElement(s);js.id=id;js.async=true;js.src="//connect.facebook.net/en_US/all.js#appId=338291289691179&xfbml=1";fjs.parentNode.insertBefore(js,fjs);}(document,'script','facebook-jssdk'));</script>
<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-via="home_assistant"
data-related="home_assistant"
data-url="https://home-assistant.io/blog/2017/02/11/alert-appletv-mqtt-yeelight/"
data-counturl="https://home-assistant.io/blog/2017/02/11/alert-appletv-mqtt-yeelight/" >Tweet</a>
<div class="fb-share-button" style='top: -6px;'
data-href="https://home-assistant.io/blog/2017/02/11/alert-appletv-mqtt-yeelight/"
data-layout="button_count">
</div>
<div class="g-plusone" data-size="standard"></div>
</section>
<script src="https://apis.google.com/js/platform.js" async defer></script>
<section id="recent-posts" class="aside-module grid__item one-whole lap-one-half">
<h1 class="title delta">Recent Posts</h1>
<ul class="divided">
<li class="post">
<a href="/blog/2017/03/11/repurpose-any-android-phone-as-ip-camera/">Home Assistant 0.40: Turn any Android phone into an IP Webcam</a>
</li>
<li class="post">
<a href="/blog/2017/02/25/config-panel-and-state-restoration/">0.39: Configuration panel, state restoration and improved docs</a>
</li>
<li class="post">
<a href="/blog/2017/02/22/home-assistant-tshirts-have-arrived/">Home Assistant t-shirts have arrived!</a>
</li>
<li class="post">
<a href="/blog/2017/02/14/clt-workshop/">Workshop at CLT 2017</a>
</li>
</ul>
</section>
</div>
</aside>
</div>
</div>
<footer>
<div class="grid-wrapper">
<div class="grid">
@ -362,7 +272,6 @@
<a rel="me" href='https://facebook.com/homeassistantio'><i class="icon-facebook"></i></a>
<a rel="me" href='https://plus.google.com/110560654828510104551'><i class="icon-google-plus"></i></a>
<a rel="me" href='https://github.com/home-assistant/home-assistant'><i class="icon-github"></i></a>
<div class="credit">
Contact us at <a href='mailto:hello@home-assistant.io'>hello@home-assistant.io</a>.<br>
Website powered by <a href='http://jekyllrb.com/'>Jekyll</a> and the <a href='https://github.com/coogie/oscailte'>Oscalite theme</a>.<br />
@ -374,7 +283,6 @@
</div>
</div>
</footer>
<script>
var _gaq=[['_setAccount','UA-57927901-1'],['_trackPageview']];
(function(d,t){var g=d.createElement(t),s=d.getElementsByTagName(t)[0];
@ -383,13 +291,10 @@
</script>
<script>
var disqus_shortname = 'home-assistant';
// var disqus_developer = 1;
var disqus_identifier = 'https://home-assistant.io/blog/2017/02/11/alert-appletv-mqtt-yeelight/';
var disqus_url = 'https://home-assistant.io/blog/2017/02/11/alert-appletv-mqtt-yeelight/';
var disqus_script = 'embed.js';
(function () {
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
dsq.src = '//' + disqus_shortname + '.disqus.com/' + disqus_script;
@ -397,4 +302,4 @@
}());
</script>
</body>
</html>
</html>

View file

@ -3,17 +3,14 @@
<!--[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>Workshop at CLT 2017 - Home Assistant</title>
<meta name="author" content="Fabian Affolter">
<meta name="description" content="Home Assistant Workshop at the Chemnitzer Linux-Tage 2017">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/blog/2017/02/14/clt-workshop/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="Workshop at CLT 2017">
<meta property="og:site_name" content="Home Assistant">
@ -21,39 +18,32 @@
<meta property="og:type" content="article">
<meta property="og:description" content="Home Assistant Workshop at the Chemnitzer Linux-Tage 2017">
<meta property="og:image" content="https://home-assistant.io/images/blog/2017-02-workshop/social.png">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@home_assistant">
<meta name="twitter:creator" content="@fabaff">
<meta name="twitter:title" content="Workshop at CLT 2017">
<meta name="twitter:description" content="Home Assistant Workshop at the Chemnitzer Linux-Tage 2017">
<meta name="twitter:image" content="https://home-assistant.io/images/blog/2017-02-workshop/social.png">
<link href="/stylesheets/screen.css" media="screen, projection" rel="stylesheet">
<link href="/atom.xml" rel="alternate" title="Home Assistant" type="application/atom+xml">
<link rel='shortcut icon' href='/images/favicon.ico' />
<link rel='icon' type='image/png' href='/images/favicon-192x192.png' sizes='192x192' />
</head>
<body >
<header>
<div class="grid-wrapper">
<div class="grid">
<div class="grid__item three-tenths lap-two-sixths palm-one-whole ha-title">
<a href="/" class="site-title">
<img width='40' src='/demo/favicon-192x192.png'>
<span>Home Assistant</span>
</a>
</div>
<div class="grid__item seven-tenths lap-four-sixths palm-one-whole">
<nav>
<input type="checkbox" id="toggle">
<label for="toggle" class="toggle" data-open="Main Menu" data-close="Close Menu"></label>
<ul class="menu pull-right">
<li><a href="/getting-started/">Getting started</a></li>
<li><a href="/components/">Components</a></li>
<li><a href="/docs/">Docs</a></li>
@ -64,27 +54,15 @@
</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="post">
<header>
<h1 class="title indent">Workshop at CLT 2017</h1>
<div class="meta clearfix">
<time datetime="2017-02-14T08:04:05+00:00" pubdate data-updated="true"><i class="icon-calendar"></i> February 14, 2017</time>
<span class="byline author vcard"><i class='icon-user'></i> Fabian Affolter</span>
@ -92,29 +70,17 @@
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
<li>Community</li>
</ul>
</span>
<a class='comments'
href="#disqus_thread"
>Comments</a>
</div>
</header>
<p>There will be a Home Assistant Workshop at the <a href="https://chemnitzer.linux-tage.de/2017/">Chemnitzer Linux-Tage 2017</a>. First I will cover the installation, the setup, and the configuration process. The second part will be all about automation. Last but not least, we will talk about the integration of a new platform/component.</p>
<p>Check the Workshop <a href="https://chemnitzer.linux-tage.de/2017/en/programm/beitrag/356">overview</a> to get the details.</p>
<p><a href="https://chemnitzer.linux-tage.de/2017/en/programm/anmeldung/workshop/356">Reqistration</a> is required as the places in the room are limited. The deadline for the registration is March, 8th 2017.</p>
<ul>
<li>Location: Technische Universität Chemnitz, Reichenhainer Straße 90, 09126 Chemnitz, Germany</li>
<li>Date: March, 12th 2017</li>
@ -122,21 +88,13 @@
<li>Language: German</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>
</section>
</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">
<h1 class="title delta">About Home Assistant</h1>
<ul class="divided">
@ -152,70 +110,42 @@
<div id="fb-root"></div>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.async=true;js.src='//platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
<script>(function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(d.getElementById(id)){return;}js=d.createElement(s);js.id=id;js.async=true;js.src="//connect.facebook.net/en_US/all.js#appId=338291289691179&xfbml=1";fjs.parentNode.insertBefore(js,fjs);}(document,'script','facebook-jssdk'));</script>
<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-via="home_assistant"
data-related="home_assistant"
data-url="https://home-assistant.io/blog/2017/02/14/clt-workshop/"
data-counturl="https://home-assistant.io/blog/2017/02/14/clt-workshop/" >Tweet</a>
<div class="fb-share-button" style='top: -6px;'
data-href="https://home-assistant.io/blog/2017/02/14/clt-workshop/"
data-layout="button_count">
</div>
<div class="g-plusone" data-size="standard"></div>
</section>
<script src="https://apis.google.com/js/platform.js" async defer></script>
<section id="recent-posts" class="aside-module grid__item one-whole lap-one-half">
<h1 class="title delta">Recent Posts</h1>
<ul class="divided">
<li class="post">
<a href="/blog/2017/03/11/repurpose-any-android-phone-as-ip-camera/">Home Assistant 0.40: Turn any Android phone into an IP Webcam</a>
</li>
<li class="post">
<a href="/blog/2017/02/25/config-panel-and-state-restoration/">0.39: Configuration panel, state restoration and improved docs</a>
</li>
<li class="post">
<a href="/blog/2017/02/22/home-assistant-tshirts-have-arrived/">Home Assistant t-shirts have arrived!</a>
</li>
<li class="post">
<a href="/blog/2017/02/11/alert-appletv-mqtt-yeelight/">0.38: Alert, AppleTV, MQTT discovery, and Yeelight</a>
</li>
</ul>
</section>
</div>
</aside>
</div>
</div>
<footer>
<div class="grid-wrapper">
<div class="grid">
@ -225,7 +155,6 @@
<a rel="me" href='https://facebook.com/homeassistantio'><i class="icon-facebook"></i></a>
<a rel="me" href='https://plus.google.com/110560654828510104551'><i class="icon-google-plus"></i></a>
<a rel="me" href='https://github.com/home-assistant/home-assistant'><i class="icon-github"></i></a>
<div class="credit">
Contact us at <a href='mailto:hello@home-assistant.io'>hello@home-assistant.io</a>.<br>
Website powered by <a href='http://jekyllrb.com/'>Jekyll</a> and the <a href='https://github.com/coogie/oscailte'>Oscalite theme</a>.<br />
@ -237,7 +166,6 @@
</div>
</div>
</footer>
<script>
var _gaq=[['_setAccount','UA-57927901-1'],['_trackPageview']];
(function(d,t){var g=d.createElement(t),s=d.getElementsByTagName(t)[0];
@ -246,13 +174,10 @@
</script>
<script>
var disqus_shortname = 'home-assistant';
// var disqus_developer = 1;
var disqus_identifier = 'https://home-assistant.io/blog/2017/02/14/clt-workshop/';
var disqus_url = 'https://home-assistant.io/blog/2017/02/14/clt-workshop/';
var disqus_script = 'embed.js';
(function () {
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
dsq.src = '//' + disqus_shortname + '.disqus.com/' + disqus_script;
@ -260,4 +185,4 @@
}());
</script>
</body>
</html>
</html>

View file

@ -3,17 +3,14 @@
<!--[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>Home Assistant t-shirts have arrived! - Home Assistant</title>
<meta name="author" content="Paulus Schoutsen">
<meta name="description" content="You asked and asked and we finally caved: Home Assistant t-shirts are here!">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/blog/2017/02/22/home-assistant-tshirts-have-arrived/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="Home Assistant t-shirts have arrived!">
<meta property="og:site_name" content="Home Assistant">
@ -21,39 +18,32 @@
<meta property="og:type" content="article">
<meta property="og:description" content="You asked and asked and we finally caved: Home Assistant t-shirts are here!">
<meta property="og:image" content="https://home-assistant.io/images/blog/2017-02-shirts/social.png">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@home_assistant">
<meta name="twitter:creator" content="@balloob">
<meta name="twitter:title" content="Home Assistant t-shirts have arrived!">
<meta name="twitter:description" content="You asked and asked and we finally caved: Home Assistant t-shirts are here!">
<meta name="twitter:image" content="https://home-assistant.io/images/blog/2017-02-shirts/social.png">
<link href="/stylesheets/screen.css" media="screen, projection" rel="stylesheet">
<link href="/atom.xml" rel="alternate" title="Home Assistant" type="application/atom+xml">
<link rel='shortcut icon' href='/images/favicon.ico' />
<link rel='icon' type='image/png' href='/images/favicon-192x192.png' sizes='192x192' />
</head>
<body >
<header>
<div class="grid-wrapper">
<div class="grid">
<div class="grid__item three-tenths lap-two-sixths palm-one-whole ha-title">
<a href="/" class="site-title">
<img width='40' src='/demo/favicon-192x192.png'>
<span>Home Assistant</span>
</a>
</div>
<div class="grid__item seven-tenths lap-four-sixths palm-one-whole">
<nav>
<input type="checkbox" id="toggle">
<label for="toggle" class="toggle" data-open="Main Menu" data-close="Close Menu"></label>
<ul class="menu pull-right">
<li><a href="/getting-started/">Getting started</a></li>
<li><a href="/components/">Components</a></li>
<li><a href="/docs/">Docs</a></li>
@ -64,27 +54,15 @@
</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="post">
<header>
<h1 class="title indent">Home Assistant t-shirts have arrived!</h1>
<div class="meta clearfix">
<time datetime="2017-02-22T00:04:05+00:00" pubdate data-updated="true"><i class="icon-calendar"></i> February 22, 2017</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
@ -92,57 +70,37 @@
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
<li>Merchandise</li>
</ul>
</span>
<a class='comments'
href="#disqus_thread"
>Comments</a>
</div>
</header>
<p class="img">
<img src="/images/blog/2017-02-shirts/beard.png" />
Cool dude with beard and tattoo wearing <a href="https://teespring.com/home-assistant-shirt">the new blue Home Assistant shirt</a>.
</p>
<p>What time is it? Yep, t-shirt time. Today were launching the first two Home Assistant designs. We have a blue t-shirt (<a href="https://teespring.com/hass-blue-shirt-eu-2">🇪🇺 EU</a> <a href="https://teespring.com/home-assistant-shirt">🇺🇸 US</a>) as pictured above and a design for on black/gray shirts (<a href="https://teespring.com/hass-shirt-black-eu-2">🇪🇺 EU</a> <a href="https://teespring.com/hass-shirt-black">🇺🇸 US</a>) as pictured below.</p>
<ul>
<li><a href="https://teespring.com/stores/home-assistant-us-store">Visit the 🇺🇸 US store</a></li>
<li><a href="https://teespring.com/stores/home-assistant-eu-store">Visit the 🇪🇺 EU store</a></li>
</ul>
<p><a href="https://www.eff.org"><img src="/images/supported_brands/eff.png" style="width: 150px; float: right; box-shadow: none; border: 0; margin-left: 15px;" /></a></p>
<p>And because we love the internet and all the things that it has brought us, <strong>we will start with having 100% of the profit from the sales be donated to the <a href="https://www.eff.org">Electronic Frontier Foundation</a></strong>. If you buy a shirt you will hit two birds with one stone (figuratively): you get to wear a kick-ass Home Assistant t-shirt and you help fund defending civil liberties in the digital world.</p>
<p>The EFF is a nonprofit organization that aims to protect the rights of technology users. You might however be more familiar with one of their projects: <a href="https://letsencrypt.org">Lets Encrypt</a>. <a href="https://www.eff.org/issues">Read more about what the EFF does.</a></p>
<p>So, what are you waiting for? Get yourself a shirt! <a href="https://teespring.com/stores/home-assistant-eu-store">🇪🇺 EU store</a> <a href="https://teespring.com/stores/home-assistant-us-store">🇺🇸 US store</a></p>
<p class="img">
<img src="/images/blog/2017-02-shirts/family.png" />
Family of 4 on a bench wearing the new black Home Assistant shirt. <a href="https://teespring.com/hass-shirt-black-eu-2">🇪🇺 EU</a> <a href="https://teespring.com/hass-shirt-black">🇺🇸 US</a>
</p>
<p>We are using <a href="https://teespring.com">Teespring.com</a> to manage all the sales, production and distribution of the shirts and they will also donate our profits to the EFF. Its also how we got all these amazing stockphotos. Some extra things to note about our teespring shop:</p>
<ul>
<li>Teespring shows that there is a number of days left until the end of the campaign for the shirts. Dont worry about that, it should automatically relaunch.</li>
</ul>
<p>More photos after the click.
<a name="read-more"></a></p>
<p class="img">
<img src="/images/blog/2017-02-shirts/pull-finger.png" />
Moment suprême of a solo pull-my-finger joke while wearing the new blue Home Assistant shirt. <a href="https://teespring.com/hass-blue-shirt-eu-2">🇪🇺 EU</a> <a href="https://teespring.com/home-assistant-shirt">🇺🇸 US</a>
@ -164,21 +122,13 @@
Cool kid listening to music + sidekick. Both wearing the new blue Home Assistant shirt. <a href="https://teespring.com/hass-blue-shirt-eu-2">🇪🇺 EU</a> <a href="https://teespring.com/home-assistant-shirt">🇺🇸 US</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>
</section>
</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">
<h1 class="title delta">About Home Assistant</h1>
<ul class="divided">
@ -194,70 +144,42 @@
<div id="fb-root"></div>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.async=true;js.src='//platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
<script>(function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(d.getElementById(id)){return;}js=d.createElement(s);js.id=id;js.async=true;js.src="//connect.facebook.net/en_US/all.js#appId=338291289691179&xfbml=1";fjs.parentNode.insertBefore(js,fjs);}(document,'script','facebook-jssdk'));</script>
<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-via="home_assistant"
data-related="home_assistant"
data-url="https://home-assistant.io/blog/2017/02/22/home-assistant-tshirts-have-arrived/"
data-counturl="https://home-assistant.io/blog/2017/02/22/home-assistant-tshirts-have-arrived/" >Tweet</a>
<div class="fb-share-button" style='top: -6px;'
data-href="https://home-assistant.io/blog/2017/02/22/home-assistant-tshirts-have-arrived/"
data-layout="button_count">
</div>
<div class="g-plusone" data-size="standard"></div>
</section>
<script src="https://apis.google.com/js/platform.js" async defer></script>
<section id="recent-posts" class="aside-module grid__item one-whole lap-one-half">
<h1 class="title delta">Recent Posts</h1>
<ul class="divided">
<li class="post">
<a href="/blog/2017/03/11/repurpose-any-android-phone-as-ip-camera/">Home Assistant 0.40: Turn any Android phone into an IP Webcam</a>
</li>
<li class="post">
<a href="/blog/2017/02/25/config-panel-and-state-restoration/">0.39: Configuration panel, state restoration and improved docs</a>
</li>
<li class="post">
<a href="/blog/2017/02/14/clt-workshop/">Workshop at CLT 2017</a>
</li>
<li class="post">
<a href="/blog/2017/02/11/alert-appletv-mqtt-yeelight/">0.38: Alert, AppleTV, MQTT discovery, and Yeelight</a>
</li>
</ul>
</section>
</div>
</aside>
</div>
</div>
<footer>
<div class="grid-wrapper">
<div class="grid">
@ -267,7 +189,6 @@
<a rel="me" href='https://facebook.com/homeassistantio'><i class="icon-facebook"></i></a>
<a rel="me" href='https://plus.google.com/110560654828510104551'><i class="icon-google-plus"></i></a>
<a rel="me" href='https://github.com/home-assistant/home-assistant'><i class="icon-github"></i></a>
<div class="credit">
Contact us at <a href='mailto:hello@home-assistant.io'>hello@home-assistant.io</a>.<br>
Website powered by <a href='http://jekyllrb.com/'>Jekyll</a> and the <a href='https://github.com/coogie/oscailte'>Oscalite theme</a>.<br />
@ -279,7 +200,6 @@
</div>
</div>
</footer>
<script>
var _gaq=[['_setAccount','UA-57927901-1'],['_trackPageview']];
(function(d,t){var g=d.createElement(t),s=d.getElementsByTagName(t)[0];
@ -288,13 +208,10 @@
</script>
<script>
var disqus_shortname = 'home-assistant';
// var disqus_developer = 1;
var disqus_identifier = 'https://home-assistant.io/blog/2017/02/22/home-assistant-tshirts-have-arrived/';
var disqus_url = 'https://home-assistant.io/blog/2017/02/22/home-assistant-tshirts-have-arrived/';
var disqus_script = 'embed.js';
(function () {
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
dsq.src = '//' + disqus_shortname + '.disqus.com/' + disqus_script;
@ -302,4 +219,4 @@
}());
</script>
</body>
</html>
</html>

View file

@ -3,17 +3,14 @@
<!--[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>0.39: Configuration panel, state restoration and improved docs - Home Assistant</title>
<meta name="author" content="Paulus Schoutsen">
<meta name="description" content="0.39 is by far our best release yet.">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/blog/2017/02/25/config-panel-and-state-restoration/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="0.39: Configuration panel, state restoration and improved docs">
<meta property="og:site_name" content="Home Assistant">
@ -21,39 +18,32 @@
<meta property="og:type" content="article">
<meta property="og:description" content="0.39 is by far our best release yet.">
<meta property="og:image" content="https://home-assistant.io/images/blog/2017-02-0.39/social.png">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@home_assistant">
<meta name="twitter:creator" content="@balloob">
<meta name="twitter:title" content="0.39: Configuration panel, state restoration and improved docs">
<meta name="twitter:description" content="0.39 is by far our best release yet.">
<meta name="twitter:image" content="https://home-assistant.io/images/blog/2017-02-0.39/social.png">
<link href="/stylesheets/screen.css" media="screen, projection" rel="stylesheet">
<link href="/atom.xml" rel="alternate" title="Home Assistant" type="application/atom+xml">
<link rel='shortcut icon' href='/images/favicon.ico' />
<link rel='icon' type='image/png' href='/images/favicon-192x192.png' sizes='192x192' />
</head>
<body >
<header>
<div class="grid-wrapper">
<div class="grid">
<div class="grid__item three-tenths lap-two-sixths palm-one-whole ha-title">
<a href="/" class="site-title">
<img width='40' src='/demo/favicon-192x192.png'>
<span>Home Assistant</span>
</a>
</div>
<div class="grid__item seven-tenths lap-four-sixths palm-one-whole">
<nav>
<input type="checkbox" id="toggle">
<label for="toggle" class="toggle" data-open="Main Menu" data-close="Close Menu"></label>
<ul class="menu pull-right">
<li><a href="/getting-started/">Getting started</a></li>
<li><a href="/components/">Components</a></li>
<li><a href="/docs/">Docs</a></li>
@ -64,27 +54,15 @@
</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="post">
<header>
<h1 class="title indent">0.39: Configuration panel, state restoration and improved docs</h1>
<div class="meta clearfix">
<time datetime="2017-02-25T08:04:05+00:00" pubdate data-updated="true"><i class="icon-calendar"></i> February 25, 2017</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
@ -92,89 +70,54 @@
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
<li>Release-Notes</li>
</ul>
</span>
<a class='comments'
href="#disqus_thread"
>Comments</a>
</div>
</header>
<p>Its time for 0.39 and this release has some amazing new features!</p>
<p><a href="/components/#added_in_current_version"><img src="/images/blog/2017-02-0.39/social.png" style="border: 0;box-shadow: none;" /></a></p>
<h2>T-Shirts</h2>
<p>First off, in case you havent seen it yet: <a href="https://home-assistant.io/blog/2017/02/22/home-assistant-tshirts-have-arrived/">we have t-shirts</a> now and they are beautiful. All proceeds from the shirts will be donated to the Electronic Frontier Foundation. The first three days all of you have already raised $400! Still waiting for Teespring to get back to me so stay tuned for the EU store.</p>
<h2>Configuration panel</h2>
<p>Yep, you read that right. We have a configuration panel. Its just the first of many small steps. Putting in a foundation is important and gives us something to iterate on.</p>
<p>To start, we have three simple configuration panels:</p>
<ul>
<li>Core: allows you to validate config, reload core/group/automation config and restart/stop Home Assistant</li>
<li>Group: allows you to rename groups, change type between group/view and reorder entities.</li>
<li>Z-Wave: allows you to set device specific configuration settings</li>
</ul>
<p class="img">
<img src="/images/blog/2017-02-0.39/config.png" />
Screenshot of our new configuration panel.
</p>
<p>As a security measure, the configuration panel will need to be activated in the config file to be activated. This can be done by adding the following to your <code class="highlighter-rouge">configuration.yaml</code>:</p>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="s">config</span><span class="pi">:</span>
</code></pre>
</div>
<p>Using our configuration panels will require you to structure your groups and Z-Wave device config according to how the configuration panel expects it. This is on purpose as it we will not be aiming to build a system that supports both our extended set of configuration extend hooks and our configuration panels. Its one or the other.</p>
<p>To activate them in your config, create empty files <code class="highlighter-rouge">groups.yaml</code> and <code class="highlighter-rouge">zwave_device_config.yaml</code> in your config dir and add the following entries to your config:</p>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="s">group</span><span class="pi">:</span> <span class="kt">!include</span> <span class="s">groups.yaml</span>
<span class="s">zwave</span><span class="pi">:</span>
<span class="s">device_config</span><span class="pi">:</span> <span class="kt">!include</span> <span class="s">zwave_device_config.yaml</span>
</code></pre>
</div>
<p><em>Note that this is the first release. Things will be missing, things might be broken.</em></p>
<h2>Reorganized documentation</h2>
<p>Thanks to <a href="https://github.com/fabaff">Fabian</a> we have a great re-organized documentation. Is it perfect yet? No. But we are getting close. We put a lot of focus on making sure the Raspberry Pi is the main focus of our getting started. The other instructions are still available, just not as part of the main getting started.</p>
<h2>State restoration</h2>
<p>Ever have some input components or integrations and get annoyed with the fact that their state is lost after a restart? Dont worry any longer. <a href="https://github.com/kellerza">Johann</a> has added the foundation for state restoration to Home Assistant. For the initial release support has been added to to <code class="highlighter-rouge">input_select</code> and <code class="highlighter-rouge">input_boolean</code> components. We will be adding this to more integrations in the future.</p>
<h2>Breaking changes to customize and Z-Wave “customize”</h2>
<p>A couple of releases ago we introduced a new way of doing <code class="highlighter-rouge">customize</code>. It became a list that allowed different ways of matching the config to the entity.</p>
<p>We realized that this was leading into a rabbit hole that we had to get out off. Besides making it unnecessarily complicated it also blocked the road to config panels. And who doesnt like config panels?</p>
<p>So starting this release, we had to make some breaking changes to right the wrong. We will be releasing an online tool to help you convert your config to the new format later today.</p>
<p><a href="https://jsfiddle.net/balloob/d2e56q6f/74/"><strong>Update: the online tool can be found here.</strong></a></p>
<h4>Customize has been reverted to its original config</h4>
<p>The old customize is back. The options to match by domain or using glob have been moved to its own options. It will now look like this:</p>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="s">homeassistant</span><span class="pi">:</span>
<span class="s">customize</span><span class="pi">:</span>
<span class="s">light.kitchen</span><span class="pi">:</span>
@ -187,11 +130,8 @@
<span class="s">icon</span><span class="pi">:</span> <span class="s">mid:description</span>
</code></pre>
</div>
<h4>Z-Wave customize is now device config</h4>
<p>Ever wondered why the Z-Wave customize was called customize? Yeah, so did we. So when migrating this to the new config format, we decided to upgrade the name too:</p>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="s">zwave</span><span class="pi">:</span>
<span class="s">device_config</span><span class="pi">:</span>
<span class="s">light.kitchen</span><span class="pi">:</span>
@ -204,17 +144,11 @@
<span class="s">polling_intensity</span><span class="pi">:</span> <span class="s">0</span>
</code></pre>
</div>
<h2>Speed improvements</h2>
<p>And a final shout out to <a href="https://github.com/pvizeli">Pascal</a>. He keeps improving the performance of components and platforms all over Home Assistant.</p>
<a name="read-more"></a>
<h2>All changes</h2>
<h4>New platforms/components</h4>
<ul>
<li><a href="https://home-assistant.io/componet/telegram_webhooks/">Telegram</a> webhooks (<a href="https://github.com/scipioni">@scipioni</a>)</li>
<li>Added <a href="https://home-assistant.io/components/media_player.openhome/">Openhome</a> support (<a href="https://github.com/bazwilliams">@bazwilliams</a>)</li>
@ -237,9 +171,7 @@
<li>Add <a href="https://home-assistant.io/components/sensor.fido/">Fido</a> sensor (<a href="https://github.com/titilambert">@titilambert</a>)</li>
<li>Add <a href="https://home-assistant.io/components/sensor.history_stats/">History Statistics</a> sensor platform (<a href="https://github.com/bokub">@bokub</a>)</li>
</ul>
<h4>Improvements</h4>
<ul>
<li>Tellduslive: Dont throw exception if connection to server is lost (<a href="https://github.com/molobrakos">@molobrakos</a>)</li>
<li>Core: Convert config.components to a set (<a href="https://github.com/balloob">@balloob</a>)</li>
@ -296,66 +228,45 @@
<li>Discovery: Make it possible to ignore platforms in discovery (<a href="https://github.com/postlund">@postlund</a>)</li>
<li>Image processing: Add <code class="highlighter-rouge">device_class</code> (<a href="https://github.com/pvizeli">@pvizeli</a>)</li>
</ul>
<h3><a class="title-link" name="release-0391---february-27" href="#release-0391---february-27"></a> Release 0.39.1 - February 27</h3>
<ul>
<li>Add workaround for Paho out of memory issues (<a href="https://github.com/pvizeli">@pvizeli</a>)</li>
<li>When an error occurs while storing group config, fail instead of wiping config. (<a href="https://github.com/balloob">@balloob</a>)</li>
</ul>
<h3><a class="title-link" name="release-0392---march-1" href="#release-0392---march-1"></a> Release 0.39.2 - March 1</h3>
<ul>
<li>Move Zigbee from eventbus to dispatcher (<a href="https://github.com/pvizeli">@pvizeli</a>)</li>
<li>Fix discovery taking up all memory and cpu (<a href="https://github.com/balloob">@balloob</a> + <a href="https://github.com/tomusher">@tomusher</a>)</li>
</ul>
<h3><a class="title-link" name="release-0393---march-4" href="#release-0393---march-4"></a> Release 0.39.3 - March 4</h3>
<ul>
<li>Prevent discovered services and devices to be handled twice (@colinodell)</li>
</ul>
<h4>Breaking changes</h4>
<ul>
<li>VolvoOnCall has been extended with more features and had to be converted to a component</li>
<li>Limitlessled support for Bridge v6 and RGBWW bulbs require users to specify <code class="highlighter-rouge">version</code> and `port</li>
<li>hdmi_cec config now requires users to set the types in the hdmi_cec config instead of using <code class="highlighter-rouge">customize</code>:</li>
</ul>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="s">hdmi_cec</span><span class="pi">:</span>
<span class="s">types</span><span class="pi">:</span>
<span class="s">hdmi_cec.hdmi_5</span><span class="pi">:</span> <span class="s">media_player</span>
</code></pre>
</div>
<h4>Bugfixes:</h4>
<p><a href="https://github.com/pvizeli">@pvizeli</a>, <a href="https://github.com/LinuxChristian">@LinuxChristian</a>, <a href="https://github.com/molobrakos">@molobrakos</a>, <a href="https://github.com/balloob">@balloob</a>, <a href="https://github.com/rytilahti">@rytilahti</a>, <a href="https://github.com/fabaff">@fabaff</a>, <a href="https://github.com/andrey-git">@andrey-git</a>, <a href="https://github.com/aequitas">@aequitas</a>, <a href="https://github.com/konikvranik">@konikvranik</a>, <a href="https://github.com/Danielhiversen">@Danielhiversen</a>, <a href="https://github.com/colinodell">@colinodell</a>, <a href="https://github.com/pschmitt">@pschmitt</a>, <a href="https://github.com/bachp">@bachp</a>, <a href="https://github.com/bachp">@bachp</a>,<a href="https://github.com/w1ll1am23">@w1ll1am23</a>, <a href="https://github.com/valentinalexeev">@valentinalexeev</a>, <a href="https://github.com/robbiet480">@robbiet480</a>, <a href="https://github.com/MartinHjelmare">@MartinHjelmare</a>, <a href="https://github.com/happyleavesaoc">@happyleavesaoc</a>, <a href="https://github.com/tdickman">@tdickman</a>, <a href="https://github.com/arraylabs">@arraylabs</a>, <a href="https://github.com/lwis">@lwis</a>, <a href="https://github.com/titilambert">@titilambert</a></p>
<h3>If you need help…</h3>
<p>…dont hesitate to use our very active <a href="https://community.home-assistant.io/">forums</a> or join us for a little <a href="https://gitter.im/home-assistant/home-assistant">chat</a>. The release notes have comments enabled but its preferred if you use the former communication channels. Thanks.</p>
<h3>Reporting Issues</h3>
<p>Experiencing issues introduced by this release? Please report them in our <a href="https://github.com/home-assistant/home-assistant/issues">issue tracker</a>. Make sure to fill in all fields of the issue template.</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>
</section>
</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">
<h1 class="title delta">About Home Assistant</h1>
<ul class="divided">
@ -371,70 +282,42 @@
<div id="fb-root"></div>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.async=true;js.src='//platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
<script>(function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(d.getElementById(id)){return;}js=d.createElement(s);js.id=id;js.async=true;js.src="//connect.facebook.net/en_US/all.js#appId=338291289691179&xfbml=1";fjs.parentNode.insertBefore(js,fjs);}(document,'script','facebook-jssdk'));</script>
<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-via="home_assistant"
data-related="home_assistant"
data-url="https://home-assistant.io/blog/2017/02/25/config-panel-and-state-restoration/"
data-counturl="https://home-assistant.io/blog/2017/02/25/config-panel-and-state-restoration/" >Tweet</a>
<div class="fb-share-button" style='top: -6px;'
data-href="https://home-assistant.io/blog/2017/02/25/config-panel-and-state-restoration/"
data-layout="button_count">
</div>
<div class="g-plusone" data-size="standard"></div>
</section>
<script src="https://apis.google.com/js/platform.js" async defer></script>
<section id="recent-posts" class="aside-module grid__item one-whole lap-one-half">
<h1 class="title delta">Recent Posts</h1>
<ul class="divided">
<li class="post">
<a href="/blog/2017/03/11/repurpose-any-android-phone-as-ip-camera/">Home Assistant 0.40: Turn any Android phone into an IP Webcam</a>
</li>
<li class="post">
<a href="/blog/2017/02/22/home-assistant-tshirts-have-arrived/">Home Assistant t-shirts have arrived!</a>
</li>
<li class="post">
<a href="/blog/2017/02/14/clt-workshop/">Workshop at CLT 2017</a>
</li>
<li class="post">
<a href="/blog/2017/02/11/alert-appletv-mqtt-yeelight/">0.38: Alert, AppleTV, MQTT discovery, and Yeelight</a>
</li>
</ul>
</section>
</div>
</aside>
</div>
</div>
<footer>
<div class="grid-wrapper">
<div class="grid">
@ -444,7 +327,6 @@
<a rel="me" href='https://facebook.com/homeassistantio'><i class="icon-facebook"></i></a>
<a rel="me" href='https://plus.google.com/110560654828510104551'><i class="icon-google-plus"></i></a>
<a rel="me" href='https://github.com/home-assistant/home-assistant'><i class="icon-github"></i></a>
<div class="credit">
Contact us at <a href='mailto:hello@home-assistant.io'>hello@home-assistant.io</a>.<br>
Website powered by <a href='http://jekyllrb.com/'>Jekyll</a> and the <a href='https://github.com/coogie/oscailte'>Oscalite theme</a>.<br />
@ -456,7 +338,6 @@
</div>
</div>
</footer>
<script>
var _gaq=[['_setAccount','UA-57927901-1'],['_trackPageview']];
(function(d,t){var g=d.createElement(t),s=d.getElementsByTagName(t)[0];
@ -465,13 +346,10 @@
</script>
<script>
var disqus_shortname = 'home-assistant';
// var disqus_developer = 1;
var disqus_identifier = 'https://home-assistant.io/blog/2017/02/25/config-panel-and-state-restoration/';
var disqus_url = 'https://home-assistant.io/blog/2017/02/25/config-panel-and-state-restoration/';
var disqus_script = 'embed.js';
(function () {
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
dsq.src = '//' + disqus_shortname + '.disqus.com/' + disqus_script;
@ -479,4 +357,4 @@
}());
</script>
</body>
</html>
</html>