Site updated at 2015-12-13 18:45:53 UTC

This commit is contained in:
Paulus Schoutsen 2015-12-13 10:45:53 -08:00
parent 68c8f78c1c
commit e433e0a4da
105 changed files with 1648 additions and 857 deletions

242
atom.xml
View file

@ -4,7 +4,7 @@
<title><![CDATA[Home Assistant]]></title>
<link href="https://home-assistant.io/atom.xml" rel="self"/>
<link href="https://home-assistant.io/"/>
<updated>2015-12-12T11:44:59-08:00</updated>
<updated>2015-12-13T10:45:37-08:00</updated>
<id>https://home-assistant.io/</id>
<author>
<name><![CDATA[Paulus Schoutsen]]></name>
@ -13,6 +13,111 @@
<generator uri="http://octopress.org/">Octopress</generator>
<entry>
<title type="html"><![CDATA[Set up encryption using Let's Encrypt]]></title>
<link href="https://home-assistant.io/blog/2015/12/13/setup-encryption-using-lets-encrypt/"/>
<updated>2015-12-13T10:05:00-08:00</updated>
<id>https://home-assistant.io/blog/2015/12/13/setup-encryption-using-lets-encrypt</id>
<content type="html"><![CDATA[<p>Exposing your Home Assistant instance outside of your network always has been tricky. You have to set up port forwarding on your router and most likely add a dynamic DNS service to work around your ISP changing your IP. After this you would be able to use Home Assistant from anywhere but there is one big red flag: no encryption.</p>
<p>This tutorial will take you through the steps to setup a dynamic DNS for your IP and allow trusted encrypted connection to it - for free using <a href="https://duckdns.org">DuckDNS</a> and <a href="https://letsencrypt.org">Lets Encrypt</a>.</p>
<p class="img">
<img src="https://home-assistant.io/images/blog/2015-12-lets-encrypt/letsencrypt-secured.png" />
</p>
<!--more-->
<h3><a class="title-link" name="requirements" href="#requirements"></a> Requirements</h3>
<p>The DuckDNS part of this tutorial has no requirements but there are a few requirements as of now to run the Lets Encrypt client.</p>
<ul>
<li>Direct connection to the internet or admin access to your router to set up port forwarding</li>
<li>A machine running a Unix-ish OS that include Python 2.6 or 2.7 (Docker can be used)</li>
</ul>
<p><img src="https://home-assistant.io/images/supported_brands/duckdns.png" style="clear: right; border:none; box-shadow: none; float: right; margin-left: 8px; margin-bottom: 8px;" width="60" /></p>
<h3><a class="title-link" name="duckdns" href="#duckdns"></a> DuckDNS</h3>
<p>The first step is to set up <a href="https://duckdns.org">DuckDNS</a>. This is a free dynamic DNS service that you can use to get a DuckDNS.org subdomain to point at your house. A dynamic DNS service works by having your home computer tell DuckDNS.org every 5 minutes what its IP is so that DuckDNS can make sure your domain name is set up correctly.</p>
<p>For this example we will assume our domain is hass-example.duckdns.org.</p>
<p>First step is to acquire and set up our domain name. For this, go to <a href="https://duckdns.org">DuckDNS</a>, log in with any of the supported login providers and add a domain. After this check out their <a href="https://www.duckdns.org/install.jsp">installation instructions</a> to finish your installation of DuckDNS. If youre on a Raspberry Pi, see Pi in the category Operating Systems.</p>
<p><img src="https://home-assistant.io/images/supported_brands/letsencrypt.png" style="clear: right; border:none; box-shadow: none; float: right; margin-left: 8px; margin-bottom: 8px;" width="60" /></p>
<h3><a class="title-link" name="lets-encrypt" href="#lets-encrypt"></a> Lets Encrypt</h3>
<p><a href="https://letsencrypt.org">Lets Encrypt</a> is a free, automated, and open certificate authority (CA). We will use this to acquire a certificate that can be used to encrypted our connection with Home Assistant.</p>
<p>Lets Encrypt will give you a free 90-day certificate if you pass their domain validation challenge. Domains are validated by having certain data be accessible on your domain for Lets Encrypt (<a href="https://letsencrypt.org/howitworks/technology/">they describe it better themselves</a>).</p>
<p>Assuming that your home is behind a router, the first thing to do is to set up port forwarding from your router to your computer that will run Lets Encrypt. For the Lets Encrypt set up we need to temporary forward ports <code>80</code> (http connections) and <code>443</code> (https connections). This can be set up by accessing your router admin interface (<a href="http://portforward.com">Site with port forwarding instructions per router</a>).</p>
<p>Now youre ready to run Lets Encrypt:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>$ git clone https://github.com/letsencrypt/letsencrypt
[…]
$ cd letsencrypt
$ ./letsencrypt-auto certonly --email $ ./letsencrypt-auto certonly --email your@email.address -d hass-example.duckdns.org
Updating letsencrypt and virtual environment dependencies.......
Running with virtualenv: sudo /path/letsencrypt/bin/letsencrypt certonly --email your@e-mail.address -d hass-example.duckdns.org
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at
/etc/letsencrypt/live/hass-example.duckdns.org/fullchain.pem. Your cert
will expire on 2016-03-12. To obtain a new version of the
certificate in the future, simply run Let's Encrypt again.
- If like Let's Encrypt, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
</pre></div>
</div>
</div>
<p>If youre using Docker, run the following command to generate the required keys:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>sudo mkdir /etc/letsencrypt /var/lib/letsencrypt
sudo docker run -it --rm -p 443:443 -p 80:80 --name letsencrypt \
-v &quot;/etc/letsencrypt:/etc/letsencrypt&quot; \
-v &quot;/var/lib/letsencrypt:/var/lib/letsencrypt&quot; \
quay.io/letsencrypt/letsencrypt:latest certonly \
--email your@e-mail.address -d hass-example.duckdns.org
</pre></div>
</div>
</div>
<p>With either method your certificate will be generated and put in the directory <code>/etc/letsencrypt/live/hass-example.duckdns.org</code>. As the lifetime is only 90 days, you will have to repeat this every 90 days.</p>
<p><img width="60" src="https://home-assistant.io/images/favicon-192x192.png" style="float: right; border:none; box-shadow: none;" /></p>
<h3><a class="title-link" name="home-assistant" href="#home-assistant"></a> Home Assistant</h3>
<p>Before updating the Home Assistant configuration, we have to update the port forwarding at your router config. We can drop the port forwarding for port <code>80</code> as we no longer care about unecrypted messages. Update port <code>443</code> to forward to port <code>8123</code> on the computer that will run Home Assistant.</p>
<p>The final step is to point Home Assistant at the generated certificates. Before you do this, make sure that the user running Home Assistant has read access to the folder that holds the certificates.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="key">http</span>:
<span class="key">ssl_certificate</span>: <span class="string"><span class="content">/etc/letsencrypt/live/hass.example.com/fullchain.pem</span></span>
<span class="key">ssl_key</span>: <span class="string"><span class="content">/etc/letsencrypt/live/hass.example.com/privkey.pem</span></span>
</pre></div>
</div>
</div>
<p>You can now navigate to https://hass-example.duckdns.org and enjoy encryption!</p>
<p><em>Big thanks to Fabian Affolter for his help and feedback on this article.</em></p>
]]></content>
</entry>
<entry>
<title type="html"><![CDATA[Philips Hue blocks 3rd party lights]]></title>
<link href="https://home-assistant.io/blog/2015/12/12/philips-hue-blocks-3rd-party-bulbs/"/>
@ -1967,141 +2072,6 @@ Support for Temper temperature sensors has been contributed by <a href="https://
</pre></div>
</div>
</div>
]]></content>
</entry>
<entry>
<title type="html"><![CDATA[IP Cameras, Arduinos, Kodi and Efergy Energy Monitors now supported]]></title>
<link href="https://home-assistant.io/blog/2015/07/11/ip-cameras-arduino-kodi-efergy-support/"/>
<updated>2015-07-11T01:37:00-07:00</updated>
<id>https://home-assistant.io/blog/2015/07/11/ip-cameras-arduino-kodi-efergy-support</id>
<content type="html"><![CDATA[<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 />
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 cameras inside your network via the Home Assistant app.</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">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>
<!--more-->
<p><strong>Arduino</strong><br />
<img src="https://home-assistant.io/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="https://home-assistant.io/components/arduino/">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>
<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="https://home-assistant.io/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>
<p><strong>TP-Link</strong><br />
<img src="https://home-assistant.io/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>Efergy energy monitor</strong><br />
<img src="https://home-assistant.io/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>
<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>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>
<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>
]]></content>
</entry>

View file

@ -187,6 +187,12 @@
<ul class="divided">
<li class="post">
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
</li>
<li class="post">
<a href="/blog/2015/12/12/philips-hue-blocks-3rd-party-bulbs/">Philips Hue blocks 3rd party lights</a>
</li>
@ -210,12 +216,6 @@
</li>
<li class="post">
<a href="/blog/2015/12/05/community-highlights/">Community Highlights</a>
</li>
</ul>
</section>

View file

@ -242,6 +242,12 @@ This article will try to explain how they all relate.</p>
<ul class="divided">
<li class="post">
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
</li>
<li class="post">
<a href="/blog/2015/12/12/philips-hue-blocks-3rd-party-bulbs/">Philips Hue blocks 3rd party lights</a>
</li>
@ -265,12 +271,6 @@ This article will try to explain how they all relate.</p>
</li>
<li class="post">
<a href="/blog/2015/12/05/community-highlights/">Community Highlights</a>
</li>
</ul>
</section>

View file

@ -226,6 +226,12 @@ api_key=ABCDEFGHJKLMNOPQRSTUVXYZ
<ul class="divided">
<li class="post">
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
</li>
<li class="post">
<a href="/blog/2015/12/12/philips-hue-blocks-3rd-party-bulbs/">Philips Hue blocks 3rd party lights</a>
</li>
@ -249,12 +255,6 @@ api_key=ABCDEFGHJKLMNOPQRSTUVXYZ
</li>
<li class="post">
<a href="/blog/2015/12/05/community-highlights/">Community Highlights</a>
</li>
</ul>
</section>

View file

@ -201,6 +201,12 @@
<ul class="divided">
<li class="post">
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
</li>
<li class="post">
<a href="/blog/2015/12/12/philips-hue-blocks-3rd-party-bulbs/">Philips Hue blocks 3rd party lights</a>
</li>
@ -224,12 +230,6 @@
</li>
<li class="post">
<a href="/blog/2015/12/05/community-highlights/">Community Highlights</a>
</li>
</ul>
</section>

View file

@ -204,6 +204,12 @@ password=YOUR_PASSWORD
<ul class="divided">
<li class="post">
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
</li>
<li class="post">
<a href="/blog/2015/12/12/philips-hue-blocks-3rd-party-bulbs/">Philips Hue blocks 3rd party lights</a>
</li>
@ -227,12 +233,6 @@ password=YOUR_PASSWORD
</li>
<li class="post">
<a href="/blog/2015/12/05/community-highlights/">Community Highlights</a>
</li>
</ul>
</section>

View file

@ -210,6 +210,12 @@ Home Assistant now supports <code>--open-ui</code> and <code>--demo-mode</code>
<ul class="divided">
<li class="post">
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
</li>
<li class="post">
<a href="/blog/2015/12/12/philips-hue-blocks-3rd-party-bulbs/">Philips Hue blocks 3rd party lights</a>
</li>
@ -233,12 +239,6 @@ Home Assistant now supports <code>--open-ui</code> and <code>--demo-mode</code>
</li>
<li class="post">
<a href="/blog/2015/12/05/community-highlights/">Community Highlights</a>
</li>
</ul>
</section>

View file

@ -220,6 +220,12 @@ Events are saved in a local database. Google Graphs is used to draw the graph. D
<ul class="divided">
<li class="post">
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
</li>
<li class="post">
<a href="/blog/2015/12/12/philips-hue-blocks-3rd-party-bulbs/">Philips Hue blocks 3rd party lights</a>
</li>
@ -243,12 +249,6 @@ Events are saved in a local database. Google Graphs is used to draw the graph. D
</li>
<li class="post">
<a href="/blog/2015/12/05/community-highlights/">Community Highlights</a>
</li>
</ul>
</section>

View file

@ -203,6 +203,12 @@
<ul class="divided">
<li class="post">
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
</li>
<li class="post">
<a href="/blog/2015/12/12/philips-hue-blocks-3rd-party-bulbs/">Philips Hue blocks 3rd party lights</a>
</li>
@ -226,12 +232,6 @@
</li>
<li class="post">
<a href="/blog/2015/12/05/community-highlights/">Community Highlights</a>
</li>
</ul>
</section>

View file

@ -193,6 +193,12 @@
<ul class="divided">
<li class="post">
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
</li>
<li class="post">
<a href="/blog/2015/12/12/philips-hue-blocks-3rd-party-bulbs/">Philips Hue blocks 3rd party lights</a>
</li>
@ -216,12 +222,6 @@
</li>
<li class="post">
<a href="/blog/2015/12/05/community-highlights/">Community Highlights</a>
</li>
</ul>
</section>

View file

@ -194,6 +194,12 @@ The old logo, the new detailed logo and the new simple logo.
<ul class="divided">
<li class="post">
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
</li>
<li class="post">
<a href="/blog/2015/12/12/philips-hue-blocks-3rd-party-bulbs/">Philips Hue blocks 3rd party lights</a>
</li>
@ -217,12 +223,6 @@ The old logo, the new detailed logo and the new simple logo.
</li>
<li class="post">
<a href="/blog/2015/12/05/community-highlights/">Community Highlights</a>
</li>
</ul>
</section>

View file

@ -233,6 +233,12 @@ An initial version of voice control for Home Assistant has landed. The current i
<ul class="divided">
<li class="post">
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
</li>
<li class="post">
<a href="/blog/2015/12/12/philips-hue-blocks-3rd-party-bulbs/">Philips Hue blocks 3rd party lights</a>
</li>
@ -256,12 +262,6 @@ An initial version of voice control for Home Assistant has landed. The current i
</li>
<li class="post">
<a href="/blog/2015/12/05/community-highlights/">Community Highlights</a>
</li>
</ul>
</section>

View file

@ -270,6 +270,12 @@ I (Paulus) have contributed a scene component. A user can create scenes that cap
<ul class="divided">
<li class="post">
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
</li>
<li class="post">
<a href="/blog/2015/12/12/philips-hue-blocks-3rd-party-bulbs/">Philips Hue blocks 3rd party lights</a>
</li>
@ -293,12 +299,6 @@ I (Paulus) have contributed a scene component. A user can create scenes that cap
</li>
<li class="post">
<a href="/blog/2015/12/05/community-highlights/">Community Highlights</a>
</li>
</ul>
</section>

View file

@ -281,6 +281,12 @@
<ul class="divided">
<li class="post">
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
</li>
<li class="post">
<a href="/blog/2015/12/12/philips-hue-blocks-3rd-party-bulbs/">Philips Hue blocks 3rd party lights</a>
</li>
@ -304,12 +310,6 @@
</li>
<li class="post">
<a href="/blog/2015/12/05/community-highlights/">Community Highlights</a>
</li>
</ul>
</section>

View file

@ -216,6 +216,12 @@
<ul class="divided">
<li class="post">
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
</li>
<li class="post">
<a href="/blog/2015/12/12/philips-hue-blocks-3rd-party-bulbs/">Philips Hue blocks 3rd party lights</a>
</li>
@ -239,12 +245,6 @@
</li>
<li class="post">
<a href="/blog/2015/12/05/community-highlights/">Community Highlights</a>
</li>
</ul>
</section>

View file

@ -308,6 +308,12 @@ Before diving into the newly supported devices and services, I want to highlight
<ul class="divided">
<li class="post">
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
</li>
<li class="post">
<a href="/blog/2015/12/12/philips-hue-blocks-3rd-party-bulbs/">Philips Hue blocks 3rd party lights</a>
</li>
@ -331,12 +337,6 @@ Before diving into the newly supported devices and services, I want to highlight
</li>
<li class="post">
<a href="/blog/2015/12/05/community-highlights/">Community Highlights</a>
</li>
</ul>
</section>

View file

@ -361,6 +361,12 @@ This switch platform allows you to control your motion detection setting on your
<ul class="divided">
<li class="post">
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
</li>
<li class="post">
<a href="/blog/2015/12/12/philips-hue-blocks-3rd-party-bulbs/">Philips Hue blocks 3rd party lights</a>
</li>
@ -384,12 +390,6 @@ This switch platform allows you to control your motion detection setting on your
</li>
<li class="post">
<a href="/blog/2015/12/05/community-highlights/">Community Highlights</a>
</li>
</ul>
</section>

View file

@ -313,6 +313,12 @@ Fabian has added support for <a href="https://forecast.io/">Forecast.io</a> to g
<ul class="divided">
<li class="post">
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
</li>
<li class="post">
<a href="/blog/2015/12/12/philips-hue-blocks-3rd-party-bulbs/">Philips Hue blocks 3rd party lights</a>
</li>
@ -336,12 +342,6 @@ Fabian has added support for <a href="https://forecast.io/">Forecast.io</a> to g
</li>
<li class="post">
<a href="/blog/2015/12/05/community-highlights/">Community Highlights</a>
</li>
</ul>
</section>

View file

@ -302,6 +302,12 @@ Support for Temper temperature sensors has been contributed by <a href="https://
<ul class="divided">
<li class="post">
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
</li>
<li class="post">
<a href="/blog/2015/12/12/philips-hue-blocks-3rd-party-bulbs/">Philips Hue blocks 3rd party lights</a>
</li>
@ -325,12 +331,6 @@ Support for Temper temperature sensors has been contributed by <a href="https://
</li>
<li class="post">
<a href="/blog/2015/12/05/community-highlights/">Community Highlights</a>
</li>
</ul>
</section>

View file

@ -212,6 +212,12 @@
<ul class="divided">
<li class="post">
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
</li>
<li class="post">
<a href="/blog/2015/12/12/philips-hue-blocks-3rd-party-bulbs/">Philips Hue blocks 3rd party lights</a>
</li>
@ -235,12 +241,6 @@
</li>
<li class="post">
<a href="/blog/2015/12/05/community-highlights/">Community Highlights</a>
</li>
</ul>
</section>

View file

@ -321,6 +321,12 @@
<ul class="divided">
<li class="post">
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
</li>
<li class="post">
<a href="/blog/2015/12/12/philips-hue-blocks-3rd-party-bulbs/">Philips Hue blocks 3rd party lights</a>
</li>
@ -344,12 +350,6 @@
</li>
<li class="post">
<a href="/blog/2015/12/05/community-highlights/">Community Highlights</a>
</li>
</ul>
</section>

View file

@ -299,6 +299,12 @@
<ul class="divided">
<li class="post">
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
</li>
<li class="post">
<a href="/blog/2015/12/12/philips-hue-blocks-3rd-party-bulbs/">Philips Hue blocks 3rd party lights</a>
</li>
@ -322,12 +328,6 @@
</li>
<li class="post">
<a href="/blog/2015/12/05/community-highlights/">Community Highlights</a>
</li>
</ul>
</section>

View file

@ -502,6 +502,12 @@ PubSubClient client(ethClient);
<ul class="divided">
<li class="post">
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
</li>
<li class="post">
<a href="/blog/2015/12/12/philips-hue-blocks-3rd-party-bulbs/">Philips Hue blocks 3rd party lights</a>
</li>
@ -525,12 +531,6 @@ PubSubClient client(ethClient);
</li>
<li class="post">
<a href="/blog/2015/12/05/community-highlights/">Community Highlights</a>
</li>
</ul>
</section>

View file

@ -361,6 +361,12 @@
<ul class="divided">
<li class="post">
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
</li>
<li class="post">
<a href="/blog/2015/12/12/philips-hue-blocks-3rd-party-bulbs/">Philips Hue blocks 3rd party lights</a>
</li>
@ -384,12 +390,6 @@
</li>
<li class="post">
<a href="/blog/2015/12/05/community-highlights/">Community Highlights</a>
</li>
</ul>
</section>

View file

@ -262,6 +262,12 @@ Glances web server started on http://0.0.0.0:61208/
<ul class="divided">
<li class="post">
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
</li>
<li class="post">
<a href="/blog/2015/12/12/philips-hue-blocks-3rd-party-bulbs/">Philips Hue blocks 3rd party lights</a>
</li>
@ -285,12 +291,6 @@ Glances web server started on http://0.0.0.0:61208/
</li>
<li class="post">
<a href="/blog/2015/12/05/community-highlights/">Community Highlights</a>
</li>
</ul>
</section>

View file

@ -241,6 +241,12 @@ Automation has gotten a lot of love. It now supports conditions, multiple trigge
<ul class="divided">
<li class="post">
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
</li>
<li class="post">
<a href="/blog/2015/12/12/philips-hue-blocks-3rd-party-bulbs/">Philips Hue blocks 3rd party lights</a>
</li>
@ -264,12 +270,6 @@ Automation has gotten a lot of love. It now supports conditions, multiple trigge
</li>
<li class="post">
<a href="/blog/2015/12/05/community-highlights/">Community Highlights</a>
</li>
</ul>
</section>

View file

@ -217,6 +217,12 @@ Map in Home Assistant showing two people and three zones (home, school, work)
<ul class="divided">
<li class="post">
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
</li>
<li class="post">
<a href="/blog/2015/12/12/philips-hue-blocks-3rd-party-bulbs/">Philips Hue blocks 3rd party lights</a>
</li>
@ -240,12 +246,6 @@ Map in Home Assistant showing two people and three zones (home, school, work)
</li>
<li class="post">
<a href="/blog/2015/12/05/community-highlights/">Community Highlights</a>
</li>
</ul>
</section>

View file

@ -548,6 +548,12 @@ Adafruit_HDC1000 hdc = Adafruit_HDC1000();
<ul class="divided">
<li class="post">
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
</li>
<li class="post">
<a href="/blog/2015/12/12/philips-hue-blocks-3rd-party-bulbs/">Philips Hue blocks 3rd party lights</a>
</li>
@ -571,12 +577,6 @@ Adafruit_HDC1000 hdc = Adafruit_HDC1000();
</li>
<li class="post">
<a href="/blog/2015/12/05/community-highlights/">Community Highlights</a>
</li>
</ul>
</section>

View file

@ -206,6 +206,12 @@
<ul class="divided">
<li class="post">
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
</li>
<li class="post">
<a href="/blog/2015/12/12/philips-hue-blocks-3rd-party-bulbs/">Philips Hue blocks 3rd party lights</a>
</li>
@ -229,12 +235,6 @@
</li>
<li class="post">
<a href="/blog/2015/12/05/community-highlights/">Community Highlights</a>
</li>
</ul>
</section>

View file

@ -228,6 +228,12 @@ This makes more sense as most people run Home Assistant as a daemon</p>
<ul class="divided">
<li class="post">
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
</li>
<li class="post">
<a href="/blog/2015/12/12/philips-hue-blocks-3rd-party-bulbs/">Philips Hue blocks 3rd party lights</a>
</li>
@ -251,12 +257,6 @@ This makes more sense as most people run Home Assistant as a daemon</p>
</li>
<li class="post">
<a href="/blog/2015/12/05/community-highlights/">Community Highlights</a>
</li>
</ul>
</section>

View file

@ -224,6 +224,12 @@
<ul class="divided">
<li class="post">
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
</li>
<li class="post">
<a href="/blog/2015/12/12/philips-hue-blocks-3rd-party-bulbs/">Philips Hue blocks 3rd party lights</a>
</li>
@ -247,12 +253,6 @@
</li>
<li class="post">
<a href="/blog/2015/12/05/community-highlights/">Community Highlights</a>
</li>
</ul>
</section>

View file

@ -264,6 +264,12 @@
<ul class="divided">
<li class="post">
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
</li>
<li class="post">
<a href="/blog/2015/12/12/philips-hue-blocks-3rd-party-bulbs/">Philips Hue blocks 3rd party lights</a>
</li>
@ -287,12 +293,6 @@
</li>
<li class="post">
<a href="/blog/2015/12/05/community-highlights/">Community Highlights</a>
</li>
</ul>
</section>

View file

@ -197,6 +197,12 @@
<ul class="divided">
<li class="post">
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
</li>
<li class="post">
<a href="/blog/2015/12/12/philips-hue-blocks-3rd-party-bulbs/">Philips Hue blocks 3rd party lights</a>
</li>
@ -220,8 +226,6 @@
</li>
</ul>
</section>

View file

@ -206,6 +206,12 @@
<ul class="divided">
<li class="post">
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
</li>
<li class="post">
<a href="/blog/2015/12/12/philips-hue-blocks-3rd-party-bulbs/">Philips Hue blocks 3rd party lights</a>
</li>
@ -225,12 +231,6 @@
<li class="post">
<a href="/blog/2015/12/05/community-highlights/">Community Highlights</a>
</li>
</ul>
</section>

View file

@ -297,6 +297,12 @@ $ sudo systemctl status grafana-server
<ul class="divided">
<li class="post">
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
</li>
<li class="post">
<a href="/blog/2015/12/12/philips-hue-blocks-3rd-party-bulbs/">Philips Hue blocks 3rd party lights</a>
</li>
@ -316,12 +322,6 @@ $ sudo systemctl status grafana-server
</li>
<li class="post">
<a href="/blog/2015/12/05/community-highlights/">Community Highlights</a>
</li>
</ul>
</section>

View file

@ -247,6 +247,12 @@ requests.get(<span class="string"><span class="delimiter">'</span><span class="c
<ul class="divided">
<li class="post">
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
</li>
<li class="post">
<a href="/blog/2015/12/12/philips-hue-blocks-3rd-party-bulbs/">Philips Hue blocks 3rd party lights</a>
</li>
@ -266,12 +272,6 @@ requests.get(<span class="string"><span class="delimiter">'</span><span class="c
</li>
<li class="post">
<a href="/blog/2015/12/05/community-highlights/">Community Highlights</a>
</li>
</ul>
</section>

View file

@ -208,6 +208,12 @@
<ul class="divided">
<li class="post">
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
</li>
<li class="post">
@ -227,12 +233,6 @@
</li>
<li class="post">
<a href="/blog/2015/12/05/community-highlights/">Community Highlights</a>
</li>
</ul>
</section>

View file

@ -0,0 +1,361 @@
<!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>Set up encryption using Let's Encrypt - Home Assistant</title>
<meta name="author" content="Paulus Schoutsen">
<meta name="description" content="Tutorial how to encrypt your connection with Home Assistant.">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/blog/2015/12/13/setup-encryption-using-lets-encrypt/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="Set up encryption using Let's Encrypt">
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/blog/2015/12/13/setup-encryption-using-lets-encrypt/">
<meta property="og:type" content="article">
<meta property="og:description" content="Tutorial how to encrypt your connection with Home Assistant.">
<meta property="og:image" content="https://home-assistant.io/images/blog/2015-12-lets-encrypt/letsencrypt-secured-fb.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="post">
<header>
<h1 class="title indent">Set up encryption using Let's Encrypt</h1>
<div class="meta clearfix">
<time datetime="2015-12-13T10:05:00-08:00" pubdate data-updated="true"><i class="icon-calendar"></i> December 13, 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">
<li><a class='category' href='/blog/categories/how-to/'>how-to</a></li>
</ul>
</span>
<a class='comments'
href="#disqus_thread"
>Comments</a>
</div>
</header>
<p>Exposing your Home Assistant instance outside of your network always has been tricky. You have to set up port forwarding on your router and most likely add a dynamic DNS service to work around your ISP changing your IP. After this you would be able to use Home Assistant from anywhere but there is one big red flag: no encryption.</p>
<p>This tutorial will take you through the steps to setup a dynamic DNS for your IP and allow trusted encrypted connection to it - for free using <a href="https://duckdns.org">DuckDNS</a> and <a href="https://letsencrypt.org">Lets Encrypt</a>.</p>
<p class="img">
<img src="/images/blog/2015-12-lets-encrypt/letsencrypt-secured.png" />
</p>
<a name="read-more"></a>
<h3><a class="title-link" name="requirements" href="#requirements"></a> Requirements</h3>
<p>The DuckDNS part of this tutorial has no requirements but there are a few requirements as of now to run the Lets Encrypt client.</p>
<ul>
<li>Direct connection to the internet or admin access to your router to set up port forwarding</li>
<li>A machine running a Unix-ish OS that include Python 2.6 or 2.7 (Docker can be used)</li>
</ul>
<p><img src="/images/supported_brands/duckdns.png" style="clear: right; border:none; box-shadow: none; float: right; margin-left: 8px; margin-bottom: 8px;" width="60" /></p>
<h3><a class="title-link" name="duckdns" href="#duckdns"></a> DuckDNS</h3>
<p>The first step is to set up <a href="https://duckdns.org">DuckDNS</a>. This is a free dynamic DNS service that you can use to get a DuckDNS.org subdomain to point at your house. A dynamic DNS service works by having your home computer tell DuckDNS.org every 5 minutes what its IP is so that DuckDNS can make sure your domain name is set up correctly.</p>
<p>For this example we will assume our domain is hass-example.duckdns.org.</p>
<p>First step is to acquire and set up our domain name. For this, go to <a href="https://duckdns.org">DuckDNS</a>, log in with any of the supported login providers and add a domain. After this check out their <a href="https://www.duckdns.org/install.jsp">installation instructions</a> to finish your installation of DuckDNS. If youre on a Raspberry Pi, see Pi in the category Operating Systems.</p>
<p><img src="/images/supported_brands/letsencrypt.png" style="clear: right; border:none; box-shadow: none; float: right; margin-left: 8px; margin-bottom: 8px;" width="60" /></p>
<h3><a class="title-link" name="lets-encrypt" href="#lets-encrypt"></a> Lets Encrypt</h3>
<p><a href="https://letsencrypt.org">Lets Encrypt</a> is a free, automated, and open certificate authority (CA). We will use this to acquire a certificate that can be used to encrypted our connection with Home Assistant.</p>
<p>Lets Encrypt will give you a free 90-day certificate if you pass their domain validation challenge. Domains are validated by having certain data be accessible on your domain for Lets Encrypt (<a href="https://letsencrypt.org/howitworks/technology/">they describe it better themselves</a>).</p>
<p>Assuming that your home is behind a router, the first thing to do is to set up port forwarding from your router to your computer that will run Lets Encrypt. For the Lets Encrypt set up we need to temporary forward ports <code>80</code> (http connections) and <code>443</code> (https connections). This can be set up by accessing your router admin interface (<a href="http://portforward.com">Site with port forwarding instructions per router</a>).</p>
<p>Now youre ready to run Lets Encrypt:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>$ git clone https://github.com/letsencrypt/letsencrypt
[…]
$ cd letsencrypt
$ ./letsencrypt-auto certonly --email $ ./letsencrypt-auto certonly --email your@email.address -d hass-example.duckdns.org
Updating letsencrypt and virtual environment dependencies.......
Running with virtualenv: sudo /path/letsencrypt/bin/letsencrypt certonly --email your@e-mail.address -d hass-example.duckdns.org
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at
/etc/letsencrypt/live/hass-example.duckdns.org/fullchain.pem. Your cert
will expire on 2016-03-12. To obtain a new version of the
certificate in the future, simply run Let's Encrypt again.
- If like Let's Encrypt, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
</pre></div>
</div>
</div>
<p>If youre using Docker, run the following command to generate the required keys:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>sudo mkdir /etc/letsencrypt /var/lib/letsencrypt
sudo docker run -it --rm -p 443:443 -p 80:80 --name letsencrypt \
-v &quot;/etc/letsencrypt:/etc/letsencrypt&quot; \
-v &quot;/var/lib/letsencrypt:/var/lib/letsencrypt&quot; \
quay.io/letsencrypt/letsencrypt:latest certonly \
--email your@e-mail.address -d hass-example.duckdns.org
</pre></div>
</div>
</div>
<p>With either method your certificate will be generated and put in the directory <code>/etc/letsencrypt/live/hass-example.duckdns.org</code>. As the lifetime is only 90 days, you will have to repeat this every 90 days.</p>
<p><img width="60" src="/images/favicon-192x192.png" style="float: right; border:none; box-shadow: none;" /></p>
<h3><a class="title-link" name="home-assistant" href="#home-assistant"></a> Home Assistant</h3>
<p>Before updating the Home Assistant configuration, we have to update the port forwarding at your router config. We can drop the port forwarding for port <code>80</code> as we no longer care about unecrypted messages. Update port <code>443</code> to forward to port <code>8123</code> on the computer that will run Home Assistant.</p>
<p>The final step is to point Home Assistant at the generated certificates. Before you do this, make sure that the user running Home Assistant has read access to the folder that holds the certificates.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="key">http</span>:
<span class="key">ssl_certificate</span>: <span class="string"><span class="content">/etc/letsencrypt/live/hass.example.com/fullchain.pem</span></span>
<span class="key">ssl_key</span>: <span class="string"><span class="content">/etc/letsencrypt/live/hass.example.com/privkey.pem</span></span>
</pre></div>
</div>
</div>
<p>You can now navigate to https://hass-example.duckdns.org and enjoy encryption!</p>
<p><em>Big thanks to Fabian Affolter for his help and feedback on this article.</em></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="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/2015/12/13/setup-encryption-using-lets-encrypt/"
data-counturl="https://home-assistant.io/blog/2015/12/13/setup-encryption-using-lets-encrypt/" >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/2015/12/13/setup-encryption-using-lets-encrypt/"
data-layout="button_count">
</div>
</section>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
<script src="https://apis.google.com/js/platform.js" async defer></script>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : '338291289691179',
xfbml : true,
version : 'v2.2'
});
};
(function(d, s, id){
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {return;}
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/sdk.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>
<section id="recent-posts" class="aside-module grid__item one-whole lap-one-half">
<h1 class="title delta">Other Posts</h1>
<ul class="divided">
<li class="post">
<a href="/blog/2015/12/12/philips-hue-blocks-3rd-party-bulbs/">Philips Hue blocks 3rd party lights</a>
</li>
<li class="post">
<a href="/blog/2015/12/10/activating-tasker-tasks-from-home-assistant-using-command-line-switches/">Activating Tasker tasks from Home Assistant using command line switches</a>
</li>
<li class="post">
<a href="/blog/2015/12/07/influxdb-and-grafana/">InfluxDB and Grafana</a>
</li>
<li class="post">
<a href="/blog/2015/12/06/locks-rollershutters-binary-sensors-and-influxdb-support/">0.9: Rollershutters, locks, binary sensors and InfluxDB</a>
</li>
</ul>
</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>
<script>
var disqus_shortname = 'home-assistant';
// var disqus_developer = 1;
var disqus_identifier = 'https://home-assistant.io/blog/2015/12/13/setup-encryption-using-lets-encrypt/';
var disqus_url = 'https://home-assistant.io/blog/2015/12/13/setup-encryption-using-lets-encrypt/';
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;
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
}());
</script>
</body>
</html>

View file

@ -44,11 +44,11 @@
Dec 12
Dec 13
Philips Hue blocks 3rd party lights
Set up encryption using Let's Encrypt
@ -144,6 +144,38 @@
<h2>2015</h2>
<article>
<div class="grid">
<div class="grid__item one-fifth palm-one-whole">
<time datetime="2015-12-13T10:05:00-08:00" pubdate>
<span class='month'>Dec</span> <span class='day'>13</span>
</time>
</div>
<div class="grid__item four-fifths palm-one-whole">
<h1 class="gamma"><a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a></h1>
<footer class="meta">
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
<li><a class='category' href='/blog/categories/how-to/'>how-to</a></li>
</ul>
</span>
</footer>
<hr class="divider">
</div>
</div>
</article>
<article>
<div class="grid">
@ -1366,6 +1398,12 @@
<ul class="divided">
<li class="post">
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
</li>
<li class="post">
<a href="/blog/2015/12/12/philips-hue-blocks-3rd-party-bulbs/">Philips Hue blocks 3rd party lights</a>
</li>
@ -1389,12 +1427,6 @@
</li>
<li class="post">
<a href="/blog/2015/12/05/community-highlights/">Community Highlights</a>
</li>
</ul>
</section>

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-12-12T11:44:59-08:00</updated>
<updated>2015-12-13T10:45:37-08:00</updated>
<id>https://home-assistant.io/</id>
<author>
<name><![CDATA[Paulus Schoutsen]]></name>

View file

@ -199,6 +199,12 @@
<ul class="divided">
<li class="post">
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
</li>
<li class="post">
<a href="/blog/2015/12/12/philips-hue-blocks-3rd-party-bulbs/">Philips Hue blocks 3rd party lights</a>
</li>
@ -222,12 +228,6 @@
</li>
<li class="post">
<a href="/blog/2015/12/05/community-highlights/">Community Highlights</a>
</li>
</ul>
</section>

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-12-12T11:44:59-08:00</updated>
<updated>2015-12-13T10:45:37-08:00</updated>
<id>https://home-assistant.io/</id>
<author>
<name><![CDATA[Paulus Schoutsen]]></name>

View file

@ -199,6 +199,12 @@
<ul class="divided">
<li class="post">
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
</li>
<li class="post">
<a href="/blog/2015/12/12/philips-hue-blocks-3rd-party-bulbs/">Philips Hue blocks 3rd party lights</a>
</li>
@ -222,12 +228,6 @@
</li>
<li class="post">
<a href="/blog/2015/12/05/community-highlights/">Community Highlights</a>
</li>
</ul>
</section>

View file

@ -4,7 +4,7 @@
<title><![CDATA[Category: community | Home Assistant]]></title>
<link href="https://home-assistant.io/blog/categories/community/atom.xml" rel="self"/>
<link href="https://home-assistant.io/"/>
<updated>2015-12-12T11:44:59-08:00</updated>
<updated>2015-12-13T10:45:37-08:00</updated>
<id>https://home-assistant.io/</id>
<author>
<name><![CDATA[Paulus Schoutsen]]></name>

View file

@ -199,6 +199,12 @@
<ul class="divided">
<li class="post">
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
</li>
<li class="post">
<a href="/blog/2015/12/12/philips-hue-blocks-3rd-party-bulbs/">Philips Hue blocks 3rd party lights</a>
</li>
@ -222,12 +228,6 @@
</li>
<li class="post">
<a href="/blog/2015/12/05/community-highlights/">Community Highlights</a>
</li>
</ul>
</section>

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-12-12T11:44:59-08:00</updated>
<updated>2015-12-13T10:45:37-08:00</updated>
<id>https://home-assistant.io/</id>
<author>
<name><![CDATA[Paulus Schoutsen]]></name>

View file

@ -297,6 +297,12 @@
<ul class="divided">
<li class="post">
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
</li>
<li class="post">
<a href="/blog/2015/12/12/philips-hue-blocks-3rd-party-bulbs/">Philips Hue blocks 3rd party lights</a>
</li>
@ -320,12 +326,6 @@
</li>
<li class="post">
<a href="/blog/2015/12/05/community-highlights/">Community Highlights</a>
</li>
</ul>
</section>

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-12-12T11:44:59-08:00</updated>
<updated>2015-12-13T10:45:37-08:00</updated>
<id>https://home-assistant.io/</id>
<author>
<name><![CDATA[Paulus Schoutsen]]></name>

View file

@ -231,6 +231,12 @@
<ul class="divided">
<li class="post">
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
</li>
<li class="post">
<a href="/blog/2015/12/12/philips-hue-blocks-3rd-party-bulbs/">Philips Hue blocks 3rd party lights</a>
</li>
@ -254,12 +260,6 @@
</li>
<li class="post">
<a href="/blog/2015/12/05/community-highlights/">Community Highlights</a>
</li>
</ul>
</section>

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-12-12T11:44:59-08:00</updated>
<updated>2015-12-13T10:45:37-08:00</updated>
<id>https://home-assistant.io/</id>
<author>
<name><![CDATA[Paulus Schoutsen]]></name>

View file

@ -203,6 +203,12 @@
<ul class="divided">
<li class="post">
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
</li>
<li class="post">
<a href="/blog/2015/12/12/philips-hue-blocks-3rd-party-bulbs/">Philips Hue blocks 3rd party lights</a>
</li>
@ -226,12 +232,6 @@
</li>
<li class="post">
<a href="/blog/2015/12/05/community-highlights/">Community Highlights</a>
</li>
</ul>
</section>

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-12-12T11:44:59-08:00</updated>
<updated>2015-12-13T10:45:37-08:00</updated>
<id>https://home-assistant.io/</id>
<author>
<name><![CDATA[Paulus Schoutsen]]></name>

View file

@ -233,6 +233,12 @@
<ul class="divided">
<li class="post">
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
</li>
<li class="post">
<a href="/blog/2015/12/12/philips-hue-blocks-3rd-party-bulbs/">Philips Hue blocks 3rd party lights</a>
</li>
@ -256,12 +262,6 @@
</li>
<li class="post">
<a href="/blog/2015/12/05/community-highlights/">Community Highlights</a>
</li>
</ul>
</section>

View file

@ -4,7 +4,7 @@
<title><![CDATA[Category: how-to | Home Assistant]]></title>
<link href="https://home-assistant.io/blog/categories/how-to/atom.xml" rel="self"/>
<link href="https://home-assistant.io/"/>
<updated>2015-12-12T11:44:59-08:00</updated>
<updated>2015-12-13T10:45:37-08:00</updated>
<id>https://home-assistant.io/</id>
<author>
<name><![CDATA[Paulus Schoutsen]]></name>
@ -13,6 +13,111 @@
<generator uri="http://octopress.org/">Octopress</generator>
<entry>
<title type="html"><![CDATA[Set up encryption using Let's Encrypt]]></title>
<link href="https://home-assistant.io/blog/2015/12/13/setup-encryption-using-lets-encrypt/"/>
<updated>2015-12-13T10:05:00-08:00</updated>
<id>https://home-assistant.io/blog/2015/12/13/setup-encryption-using-lets-encrypt</id>
<content type="html"><![CDATA[<p>Exposing your Home Assistant instance outside of your network always has been tricky. You have to set up port forwarding on your router and most likely add a dynamic DNS service to work around your ISP changing your IP. After this you would be able to use Home Assistant from anywhere but there is one big red flag: no encryption.</p>
<p>This tutorial will take you through the steps to setup a dynamic DNS for your IP and allow trusted encrypted connection to it - for free using <a href="https://duckdns.org">DuckDNS</a> and <a href="https://letsencrypt.org">Lets Encrypt</a>.</p>
<p class="img">
<img src="https://home-assistant.io/images/blog/2015-12-lets-encrypt/letsencrypt-secured.png" />
</p>
<!--more-->
<h3><a class='title-link' name='requirements' href='#requirements'></a> Requirements </h3>
<p>The DuckDNS part of this tutorial has no requirements but there are a few requirements as of now to run the Lets Encrypt client.</p>
<ul>
<li>Direct connection to the internet or admin access to your router to set up port forwarding</li>
<li>A machine running a Unix-ish OS that include Python 2.6 or 2.7 (Docker can be used)</li>
</ul>
<p><img src="https://home-assistant.io/images/supported_brands/duckdns.png" style="clear: right; border:none; box-shadow: none; float: right; margin-left: 8px; margin-bottom: 8px;" width="60" /></p>
<h3><a class='title-link' name='duckdns' href='#duckdns'></a> DuckDNS </h3>
<p>The first step is to set up <a href="https://duckdns.org">DuckDNS</a>. This is a free dynamic DNS service that you can use to get a DuckDNS.org subdomain to point at your house. A dynamic DNS service works by having your home computer tell DuckDNS.org every 5 minutes what its IP is so that DuckDNS can make sure your domain name is set up correctly.</p>
<p>For this example we will assume our domain is hass-example.duckdns.org.</p>
<p>First step is to acquire and set up our domain name. For this, go to <a href="https://duckdns.org">DuckDNS</a>, log in with any of the supported login providers and add a domain. After this check out their <a href="https://www.duckdns.org/install.jsp">installation instructions</a> to finish your installation of DuckDNS. If youre on a Raspberry Pi, see Pi in the category Operating Systems.</p>
<p><img src="https://home-assistant.io/images/supported_brands/letsencrypt.png" style="clear: right; border:none; box-shadow: none; float: right; margin-left: 8px; margin-bottom: 8px;" width="60" /></p>
<h3><a class='title-link' name='lets-encrypt' href='#lets-encrypt'></a> Lets Encrypt </h3>
<p><a href="https://letsencrypt.org">Lets Encrypt</a> is a free, automated, and open certificate authority (CA). We will use this to acquire a certificate that can be used to encrypted our connection with Home Assistant.</p>
<p>Lets Encrypt will give you a free 90-day certificate if you pass their domain validation challenge. Domains are validated by having certain data be accessible on your domain for Lets Encrypt (<a href="https://letsencrypt.org/howitworks/technology/">they describe it better themselves</a>).</p>
<p>Assuming that your home is behind a router, the first thing to do is to set up port forwarding from your router to your computer that will run Lets Encrypt. For the Lets Encrypt set up we need to temporary forward ports <code>80</code> (http connections) and <code>443</code> (https connections). This can be set up by accessing your router admin interface (<a href="http://portforward.com">Site with port forwarding instructions per router</a>).</p>
<p>Now youre ready to run Lets Encrypt:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>$ git clone https://github.com/letsencrypt/letsencrypt
[…]
$ cd letsencrypt
$ ./letsencrypt-auto certonly --email $ ./letsencrypt-auto certonly --email your@email.address -d hass-example.duckdns.org
Updating letsencrypt and virtual environment dependencies.......
Running with virtualenv: sudo /path/letsencrypt/bin/letsencrypt certonly --email your@e-mail.address -d hass-example.duckdns.org
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at
/etc/letsencrypt/live/hass-example.duckdns.org/fullchain.pem. Your cert
will expire on 2016-03-12. To obtain a new version of the
certificate in the future, simply run Let's Encrypt again.
- If like Let's Encrypt, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
</pre></div>
</div>
</div>
<p>If youre using Docker, run the following command to generate the required keys:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>sudo mkdir /etc/letsencrypt /var/lib/letsencrypt
sudo docker run -it --rm -p 443:443 -p 80:80 --name letsencrypt \
-v &quot;/etc/letsencrypt:/etc/letsencrypt&quot; \
-v &quot;/var/lib/letsencrypt:/var/lib/letsencrypt&quot; \
quay.io/letsencrypt/letsencrypt:latest certonly \
--email your@e-mail.address -d hass-example.duckdns.org
</pre></div>
</div>
</div>
<p>With either method your certificate will be generated and put in the directory <code>/etc/letsencrypt/live/hass-example.duckdns.org</code>. As the lifetime is only 90 days, you will have to repeat this every 90 days.</p>
<p><img width="60" src="https://home-assistant.io/images/favicon-192x192.png" style="float: right; border:none; box-shadow: none;" /></p>
<h3><a class='title-link' name='home-assistant' href='#home-assistant'></a> Home Assistant </h3>
<p>Before updating the Home Assistant configuration, we have to update the port forwarding at your router config. We can drop the port forwarding for port <code>80</code> as we no longer care about unecrypted messages. Update port <code>443</code> to forward to port <code>8123</code> on the computer that will run Home Assistant.</p>
<p>The final step is to point Home Assistant at the generated certificates. Before you do this, make sure that the user running Home Assistant has read access to the folder that holds the certificates.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="key">http</span>:
<span class="key">ssl_certificate</span>: <span class="string"><span class="content">/etc/letsencrypt/live/hass.example.com/fullchain.pem</span></span>
<span class="key">ssl_key</span>: <span class="string"><span class="content">/etc/letsencrypt/live/hass.example.com/privkey.pem</span></span>
</pre></div>
</div>
</div>
<p>You can now navigate to https://hass-example.duckdns.org and enjoy encryption!</p>
<p><em>Big thanks to Fabian Affolter for his help and feedback on this article.</em></p>
]]></content>
</entry>
<entry>
<title type="html"><![CDATA[Activating Tasker tasks from Home Assistant using command line switches]]></title>
<link href="https://home-assistant.io/blog/2015/12/10/activating-tasker-tasks-from-home-assistant-using-command-line-switches/"/>
@ -649,187 +754,6 @@ Glances web server started on http://0.0.0.0:61208/
</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>
]]></content>
</entry>
<entry>
<title type="html"><![CDATA[Home Assistant meets IFTTT]]></title>
<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>
<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>
<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>
<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>
<p>Maker channel setup:</p>
<table>
<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>
<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>
<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>
<p>Maker channel setup:</p>
<table>
<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>
<p>Maker channel setup:</p>
<table>
<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>
<p>Maker channel setup:</p>
<table>
<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

@ -110,6 +110,38 @@
<h2>2015</h2>
<article>
<div class="grid">
<div class="grid__item one-fifth palm-one-whole">
<time datetime="2015-12-13T10:05:00-08:00" pubdate>
<span class='month'>Dec</span> <span class='day'>13</span>
</time>
</div>
<div class="grid__item four-fifths palm-one-whole">
<h1 class="gamma"><a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a></h1>
<footer class="meta">
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
<li><a class='category' href='/blog/categories/how-to/'>how-to</a></li>
</ul>
</span>
</footer>
<hr class="divider">
</div>
</div>
</article>
<article>
<div class="grid">
@ -367,6 +399,12 @@
<ul class="divided">
<li class="post">
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
</li>
<li class="post">
<a href="/blog/2015/12/12/philips-hue-blocks-3rd-party-bulbs/">Philips Hue blocks 3rd party lights</a>
</li>
@ -390,12 +428,6 @@
</li>
<li class="post">
<a href="/blog/2015/12/05/community-highlights/">Community Highlights</a>
</li>
</ul>
</section>

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-12-12T11:44:59-08:00</updated>
<updated>2015-12-13T10:45:37-08:00</updated>
<id>https://home-assistant.io/</id>
<author>
<name><![CDATA[Paulus Schoutsen]]></name>

View file

@ -237,6 +237,12 @@
<ul class="divided">
<li class="post">
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
</li>
<li class="post">
<a href="/blog/2015/12/12/philips-hue-blocks-3rd-party-bulbs/">Philips Hue blocks 3rd party lights</a>
</li>
@ -260,12 +266,6 @@
</li>
<li class="post">
<a href="/blog/2015/12/05/community-highlights/">Community Highlights</a>
</li>
</ul>
</section>

View file

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

View file

@ -199,6 +199,12 @@
<ul class="divided">
<li class="post">
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
</li>
<li class="post">
<a href="/blog/2015/12/12/philips-hue-blocks-3rd-party-bulbs/">Philips Hue blocks 3rd party lights</a>
</li>
@ -222,12 +228,6 @@
</li>
<li class="post">
<a href="/blog/2015/12/05/community-highlights/">Community Highlights</a>
</li>
</ul>
</section>

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-12-12T11:44:59-08:00</updated>
<updated>2015-12-13T10:45:37-08:00</updated>
<id>https://home-assistant.io/</id>
<author>
<name><![CDATA[Paulus Schoutsen]]></name>

View file

@ -681,6 +681,12 @@
<ul class="divided">
<li class="post">
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
</li>
<li class="post">
<a href="/blog/2015/12/12/philips-hue-blocks-3rd-party-bulbs/">Philips Hue blocks 3rd party lights</a>
</li>
@ -704,12 +710,6 @@
</li>
<li class="post">
<a href="/blog/2015/12/05/community-highlights/">Community Highlights</a>
</li>
</ul>
</section>

View file

@ -4,7 +4,7 @@
<title><![CDATA[Category: survey | Home Assistant]]></title>
<link href="https://home-assistant.io/blog/categories/survey/atom.xml" rel="self"/>
<link href="https://home-assistant.io/"/>
<updated>2015-12-12T11:44:59-08:00</updated>
<updated>2015-12-13T10:45:37-08:00</updated>
<id>https://home-assistant.io/</id>
<author>
<name><![CDATA[Paulus Schoutsen]]></name>

View file

@ -199,6 +199,12 @@
<ul class="divided">
<li class="post">
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
</li>
<li class="post">
<a href="/blog/2015/12/12/philips-hue-blocks-3rd-party-bulbs/">Philips Hue blocks 3rd party lights</a>
</li>
@ -222,12 +228,6 @@
</li>
<li class="post">
<a href="/blog/2015/12/05/community-highlights/">Community Highlights</a>
</li>
</ul>
</section>

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-12-12T11:44:59-08:00</updated>
<updated>2015-12-13T10:45:37-08:00</updated>
<id>https://home-assistant.io/</id>
<author>
<name><![CDATA[Paulus Schoutsen]]></name>

View file

@ -231,6 +231,12 @@
<ul class="divided">
<li class="post">
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
</li>
<li class="post">
<a href="/blog/2015/12/12/philips-hue-blocks-3rd-party-bulbs/">Philips Hue blocks 3rd party lights</a>
</li>
@ -254,12 +260,6 @@
</li>
<li class="post">
<a href="/blog/2015/12/05/community-highlights/">Community Highlights</a>
</li>
</ul>
</section>

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-12-12T11:44:59-08:00</updated>
<updated>2015-12-13T10:45:37-08:00</updated>
<id>https://home-assistant.io/</id>
<author>
<name><![CDATA[Paulus Schoutsen]]></name>

View file

@ -199,6 +199,12 @@
<ul class="divided">
<li class="post">
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
</li>
<li class="post">
<a href="/blog/2015/12/12/philips-hue-blocks-3rd-party-bulbs/">Philips Hue blocks 3rd party lights</a>
</li>
@ -222,12 +228,6 @@
</li>
<li class="post">
<a href="/blog/2015/12/05/community-highlights/">Community Highlights</a>
</li>
</ul>
</section>

View file

@ -27,21 +27,22 @@
Philips Hue blocks 3rd party lights
Set up encryption using Let's Encrypt
December 12, 2015
December 13, 2015
Paulus Schoutsen
1 minute reading time
four minutes reading time
public-service-an...">
how-to
...">
<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">
@ -114,6 +115,56 @@
<article class="listing">
<header>
<h1 class="beta">
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
</h1>
<div class="meta clearfix">
<time datetime="2015-12-13T10:05:00-08:00" pubdate data-updated="true"><i class="icon-calendar"></i> December 13, 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">
<li><a class='category' href='/blog/categories/how-to/'>how-to</a></li>
</ul>
</span>
<a class='comments'
href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/#disqus_thread"
>Comments</a>
</div>
</header>
<div class="entry-content clearfix">
<p>Exposing your Home Assistant instance outside of your network always has been tricky. You have to set up port forwarding on your router and most likely add a dynamic DNS service to work around your ISP changing your IP. After this you would be able to use Home Assistant from anywhere but there is one big red flag: no encryption.</p>
<p>This tutorial will take you through the steps to setup a dynamic DNS for your IP and allow trusted encrypted connection to it - for free using <a href="https://duckdns.org">DuckDNS</a> and <a href="https://letsencrypt.org">Lets Encrypt</a>.</p>
<p class="img">
<img src="/images/blog/2015-12-lets-encrypt/letsencrypt-secured.png" />
</p>
<a class="btn pull-right" href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/#read-more">Read on &rarr;</a>
</div>
</article>
<hr>
<article class="listing">
<header>
@ -636,66 +687,6 @@ Home Assistant will keep track of historical values and allow you to integrate i
</article>
<hr>
<article class="listing">
<header>
<h1 class="beta">
<a href="/blog/2015/10/11/rfxtrx-blinkstick-and-snmp-support/">0.7.5: Blinkstick, SNMP, Telegram</a>
</h1>
<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>
<span><i class='icon-time'></i> less than one minute reading time</span>
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
<li><a class='category' href='/blog/categories/release-notes/'>release-notes</a></li>
</ul>
</span>
<a class='comments'
href="/blog/2015/10/11/rfxtrx-blinkstick-and-snmp-support/#disqus_thread"
>Comments</a>
</div>
</header>
<div class="entry-content clearfix">
<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>
</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>
<ul>
<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/">iTunes platform</a>.</p>
</div>
</article>
<hr>
<div class="pagination">

View file

@ -27,22 +27,21 @@
Home Assistant goes geo with OwnTracks
0.7.5: Blinkstick, SNMP, Telegram
October 5, 2015
October 11, 2015
Paulus Schoutsen
1 minute reading time
less than one minute reading time
release-notes
...">
release-...">
<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">
@ -115,6 +114,66 @@
<article class="listing">
<header>
<h1 class="beta">
<a href="/blog/2015/10/11/rfxtrx-blinkstick-and-snmp-support/">0.7.5: Blinkstick, SNMP, Telegram</a>
</h1>
<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>
<span><i class='icon-time'></i> less than one minute reading time</span>
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
<li><a class='category' href='/blog/categories/release-notes/'>release-notes</a></li>
</ul>
</span>
<a class='comments'
href="/blog/2015/10/11/rfxtrx-blinkstick-and-snmp-support/#disqus_thread"
>Comments</a>
</div>
</header>
<div class="entry-content clearfix">
<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>
</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>
<ul>
<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/">iTunes platform</a>.</p>
</div>
</article>
<hr>
<article class="listing">
<header>
@ -648,73 +707,6 @@ Inspried by a <a href="https://github.com/balloob/home-assistant/issues/310">fea
</article>
<hr>
<article class="listing">
<header>
<h1 class="beta">
<a href="/blog/2015/07/11/ip-cameras-arduino-kodi-efergy-support/">IP Cameras, Arduinos, Kodi and Efergy Energy Monitors now supported</a>
</h1>
<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> four minutes reading time</span>
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
<li><a class='category' href='/blog/categories/release-notes/'>release-notes</a></li>
</ul>
</span>
<a class='comments'
href="/blog/2015/07/11/ip-cameras-arduino-kodi-efergy-support/#disqus_thread"
>Comments</a>
</div>
</header>
<div class="entry-content clearfix">
<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 />
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 cameras inside your network via the Home Assistant app.</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">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>
<a class="btn pull-right" href="/blog/2015/07/11/ip-cameras-arduino-kodi-efergy-support/#read-more">Read on &rarr;</a>
</div>
</article>
<hr>
<div class="pagination">

View file

@ -27,22 +27,19 @@
Release notes for June 10, 2015
IP Cameras, Arduinos, Kodi and Efergy Energy Monitors now supported
June 10, 2015
July 11, 2015
Paulus Schoutsen
five minutes reading time
four minutes reading time
release-notes
...">
<meta property="og:image" content="https://home-assistant.io/images/home-assistant-logo-2164x2164.png">
@ -116,6 +113,73 @@
<article class="listing">
<header>
<h1 class="beta">
<a href="/blog/2015/07/11/ip-cameras-arduino-kodi-efergy-support/">IP Cameras, Arduinos, Kodi and Efergy Energy Monitors now supported</a>
</h1>
<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> four minutes reading time</span>
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
<li><a class='category' href='/blog/categories/release-notes/'>release-notes</a></li>
</ul>
</span>
<a class='comments'
href="/blog/2015/07/11/ip-cameras-arduino-kodi-efergy-support/#disqus_thread"
>Comments</a>
</div>
</header>
<div class="entry-content clearfix">
<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 />
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 cameras inside your network via the Home Assistant app.</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">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>
<a class="btn pull-right" href="/blog/2015/07/11/ip-cameras-arduino-kodi-efergy-support/#read-more">Read on &rarr;</a>
</div>
</article>
<hr>
<article class="listing">
<header>
@ -667,73 +731,6 @@ The old logo, the new detailed logo and the new simple logo.
</article>
<hr>
<article class="listing">
<header>
<h1 class="beta">
<a href="/blog/2015/02/08/looking-at-the-past/">Looking at the past</a>
</h1>
<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>
<span><i class='icon-time'></i> 1 minute reading time</span>
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
<li><a class='category' href='/blog/categories/component/'>component</a></li>
<li><a class='category' href='/blog/categories/frontend/'>frontend</a></li>
</ul>
</span>
<a class='comments'
href="/blog/2015/02/08/looking-at-the-past/#disqus_thread"
>Comments</a>
</div>
</header>
<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>
</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" />
</a>
</p>
<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>
</article>
<hr>
<div class="pagination">

View file

@ -27,13 +27,13 @@
Release notes for January 24, 2015
Looking at the past
January 24, 2015
February 8, 2015
Paulus Schoutsen
1 minute reading time
@ -41,7 +41,9 @@
release-notes
component
frontend
...">
<meta property="og:image" content="https://home-assistant.io/images/home-assistant-logo-2164x2164.png">
@ -115,6 +117,73 @@
<article class="listing">
<header>
<h1 class="beta">
<a href="/blog/2015/02/08/looking-at-the-past/">Looking at the past</a>
</h1>
<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>
<span><i class='icon-time'></i> 1 minute reading time</span>
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
<li><a class='category' href='/blog/categories/component/'>component</a></li>
<li><a class='category' href='/blog/categories/frontend/'>frontend</a></li>
</ul>
</span>
<a class='comments'
href="/blog/2015/02/08/looking-at-the-past/#disqus_thread"
>Comments</a>
</div>
</header>
<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>
</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" />
</a>
</p>
<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>
</article>
<hr>
<article class="listing">
<header>

View file

@ -446,6 +446,18 @@ Support for these components is provided by the Home Assistant community.
<a href='/components/sensor.dweet/' class='sensor'>
<div class='img-container'>
<img src='/images/supported_brands/dweet.png'>
</div>
<div class='title'>Dweet.io sensor</div>
<div class='category'>Sensor</div>
</a>
<a href='/components/ecobee/' class='hub'>
<div class='img-container'>

View file

@ -100,7 +100,7 @@
</header>
<hr class="divider">
<p>Google Cast devices will be automatically discovered if you enable <a href="/components/discovery/">the discovery component</a>. There is a issue where Chromecasts can only be discovered if your device is connected to the same subnet as your Chromecast.</p>
<p>Google Cast devices like Android TVs and Chromecasts will be automatically discovered if you enable <a href="/components/discovery/">the discovery component</a>. There is a issue where Chromecasts can only be discovered if your device is connected to the same subnet as your Chromecast.</p>
<p>Chromecast platform can also be forced to load by adding the following lines to your <code>configuration.yaml</code>:</p>

View file

@ -220,6 +220,9 @@
<li>
<a href='/components/sensor.command_sensor/'>Command line sensor</a>
</li>
<li>
<a href='/components/sensor.dweet/'>Dweet.io sensor</a>
</li>
<li>
<a href='/components/sensor.ecobee/'>Ecobee sensor</a>
</li>

View file

@ -201,6 +201,9 @@
<li>
<a href='/components/sensor.command_sensor/'>Command line sensor</a>
</li>
<li>
<a href='/components/sensor.dweet/'>Dweet.io sensor</a>
</li>
<li>
<a href='/components/sensor.ecobee/'>Ecobee sensor</a>
</li>

View file

@ -244,6 +244,9 @@ print(response.json()[<span class="string"><span class="delimiter">'</span><span
<li>
Command line sensor
</li>
<li>
<a href='/components/sensor.dweet/'>Dweet.io sensor</a>
</li>
<li>
<a href='/components/sensor.ecobee/'>Ecobee sensor</a>
</li>

View file

@ -144,6 +144,9 @@
<li>
<a href='/components/sensor.command_sensor/'>Command line sensor</a>
</li>
<li>
<a href='/components/sensor.dweet/'>Dweet.io sensor</a>
</li>
<li>
<a href='/components/sensor.ecobee/'>Ecobee sensor</a>
</li>

View file

@ -0,0 +1,291 @@
<!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>Dweet.io sensor - Home Assistant</title>
<meta name="author" content="Paulus Schoutsen">
<meta name="description" content="Instructions how to integrate Dweet.io sensors within Home Assistant.">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/components/sensor.dweet/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="Dweet.io sensor">
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/components/sensor.dweet/">
<meta property="og:type" content="article">
<meta property="og:description" content="Instructions how to integrate Dweet.io sensors 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">
Dweet.io sensor
</h1>
</header>
<hr class="divider">
<p>The <code>dweet</code> sensor platform allows you to get details from your devices which are publishing their values to <a href="https://dweet.io/">Dweet.io</a>.</p>
<p>To use Dweet.io 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">sensor</span>:
<span class="key">platform</span>: <span class="string"><span class="content">dweet</span></span>
<span class="key">name</span>: <span class="string"><span class="content">Dweet.io Temperature</span></span>
<span class="key">device</span>: <span class="string"><span class="content">THING_NAME</span></span>
<span class="key">value_template</span>: <span class="string"><span class="content">''</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>
</pre></div>
</div>
</div>
<p>Configuration variables:</p>
<ul>
<li><strong>device</strong> (<em>Required</em>): Identification of the device (also known as <code>thing</code>).</li>
<li><strong>name</strong> (<em>Optional</em>): Let you overwrite the the name of the device in the frontend.</li>
<li><strong>value_template</strong> (<em>Required</em>): The variable to extract a value from the content.</li>
<li><strong>unit_of_measurement</strong> (<em>Optional</em>): Defines the unit of measurement of the sensor, if any.</li>
</ul>
<h2><a class="title-link" name="interacting-with-dweetio" href="#interacting-with-dweetio"></a> Interacting with Dweet.io</h2>
<p>You can easily send dweets from the commandline to test your sensor.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>$ curl -H 'Content-Type: application/json' -d '{&quot;temperature&quot;: 40, &quot;humidity&quot;: 65}' https://dweet.io/dweet/for/ha-sensor
</pre></div>
</div>
</div>
<p>will give you a response like the one below:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>{<span class="key"><span class="delimiter">&quot;</span><span class="content">this</span><span class="delimiter">&quot;</span></span>:<span class="string"><span class="delimiter">&quot;</span><span class="content">succeeded</span><span class="delimiter">&quot;</span></span>,<span class="key"><span class="delimiter">&quot;</span><span class="content">by</span><span class="delimiter">&quot;</span></span>:<span class="string"><span class="delimiter">&quot;</span><span class="content">dweeting</span><span class="delimiter">&quot;</span></span>,<span class="key"><span class="delimiter">&quot;</span><span class="content">the</span><span class="delimiter">&quot;</span></span>:<span class="string"><span class="delimiter">&quot;</span><span class="content">dweet</span><span class="delimiter">&quot;</span></span>,<span class="key"><span class="delimiter">&quot;</span><span class="content">with</span><span class="delimiter">&quot;</span></span>:{<span class="key"><span class="delimiter">&quot;</span><span class="content">thing</span><span class="delimiter">&quot;</span></span>:<span class="string"><span class="delimiter">&quot;</span><span class="content">ha-sensor</span><span class="delimiter">&quot;</span></span>,<span class="key"><span class="delimiter">&quot;</span><span class="content">created</span><span class="delimiter">&quot;</span></span>:<span class="string"><span class="delimiter">&quot;</span><span class="content">2015-12-10T09:43:31.133Z</span><span class="delimiter">&quot;</span></span>,<span class="key"><span class="delimiter">&quot;</span><span class="content">content</span><span class="delimiter">&quot;</span></span>:{<span class="key"><span class="delimiter">&quot;</span><span class="content">temperature</span><span class="delimiter">&quot;</span></span>:<span class="integer">40</span>,<span class="key"><span class="delimiter">&quot;</span><span class="content">humidity</span><span class="delimiter">&quot;</span></span>:<span class="integer">65</span>}}}
</pre></div>
</div>
</div>
<p>The <a href="https://github.com/paddycarey/dweepy">dweepy</a> module gives you another option to work with <a href="https://dweet.io/">Dweet.io</a>.</p>
<p>Send a dweet.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>$ python3
&gt;&gt;&gt; import dweepy
&gt;&gt;&gt; dweepy.dweet_for('ha-sensor', {'temperature': '23', 'humiditiy':'81'})
{'thing': 'ha-sensor', 'created': '2015-12-10T09:46:08.559Z', 'content': {'humiditiy': 81, 'temperature': 23}}
</pre></div>
</div>
</div>
<p>Recieve the latest dweet.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>&gt;&gt;&gt; dweepy.get_latest_dweet_for('ha-sensor')
[{'thing': 'ha-sensor'', 'created': '2015-12-10T09:43:31.133Z', 'content': {'humidity': 65, 'temperature': 40}}]
</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/dweet.png' />
</div>
<div class='section'>
<h1 class="title delta">Category Sensor</h1>
<ul class='divided'>
<li>
<a href='/components/sensor.bitcoin/'>Bitcoin</a>
</li>
<li>
<a href='/components/sensor.cpuspeed/'>CPU speed</a>
</li>
<li>
<a href='/components/sensor.command_sensor/'>Command line sensor</a>
</li>
<li>
Dweet.io sensor
</li>
<li>
<a href='/components/sensor.ecobee/'>Ecobee sensor</a>
</li>
<li>
<a href='/components/sensor.efergy/'>Efergy sensor</a>
</li>
<li>
<a href='/components/sensor.glances/'>Glances</a>
</li>
<li>
<a href='/components/sensor.mqtt/'>MQTT sensor</a>
</li>
<li>
<a href='/components/sensor.modbus/'>Modbus sensor</a>
</li>
<li>
<a href='/components/sensor.mysensors/'>MySensors sensor</a>
</li>
<li>
<a href='/components/sensor.rest/'>RESTful sensor</a>
</li>
<li>
<a href='/components/sensor.rfxtrx/'>RFXtrx sensor</a>
</li>
<li>
<a href='/components/sensor.sabnzbd/'>SABnzbd</a>
</li>
<li>
<a href='/components/sensor.swiss_public_transport/'>Swiss Public Transport</a>
</li>
<li>
<a href='/components/sensor.systemmonitor/'>System Monitor</a>
</li>
<li>
<a href='/components/sensor.temper/'>TEMPer sensor</a>
</li>
<li>
<a href='/components/sensor.tellstick/'>TellStick sensor</a>
</li>
<li>
<a href='/components/sensor.time_date/'>Time & Date</a>
</li>
<li>
<a href='/components/sensor.transmission/'>Transmission sensor</a>
</li>
<li>
<a href='/components/sensor.vera/'>Vera sensor</a>
</li>
<li>
<a href='/components/sensor.wink/'>Wink sensor</a>
</li>
<li>
<a href='/components/sensor.worldclock/'>Worldclock</a>
</li>
<li>
<a href='/components/sensor.zwave/'>Z-Wave sensor</a>
</li>
<li>
<a href='/components/sensor.arest/'>aREST sensor</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

@ -139,6 +139,9 @@
<li>
<a href='/components/sensor.command_sensor/'>Command line sensor</a>
</li>
<li>
<a href='/components/sensor.dweet/'>Dweet.io sensor</a>
</li>
<li>
Ecobee sensor
</li>

View file

@ -160,6 +160,9 @@ negative number of minutes your timezone is ahead/behind UTC time.</li>
<li>
<a href='/components/sensor.command_sensor/'>Command line sensor</a>
</li>
<li>
<a href='/components/sensor.dweet/'>Dweet.io sensor</a>
</li>
<li>
<a href='/components/sensor.ecobee/'>Ecobee sensor</a>
</li>

View file

@ -201,6 +201,9 @@ Glances web server started on http://0.0.0.0:61208/
<li>
<a href='/components/sensor.command_sensor/'>Command line sensor</a>
</li>
<li>
<a href='/components/sensor.dweet/'>Dweet.io sensor</a>
</li>
<li>
<a href='/components/sensor.ecobee/'>Ecobee sensor</a>
</li>

View file

@ -197,6 +197,9 @@ Each named register will create an integer sensor and each named bit will create
<li>
<a href='/components/sensor.command_sensor/'>Command line sensor</a>
</li>
<li>
<a href='/components/sensor.dweet/'>Dweet.io sensor</a>
</li>
<li>
<a href='/components/sensor.ecobee/'>Ecobee sensor</a>
</li>

View file

@ -208,6 +208,9 @@
<li>
<a href='/components/sensor.command_sensor/'>Command line sensor</a>
</li>
<li>
<a href='/components/sensor.dweet/'>Dweet.io sensor</a>
</li>
<li>
<a href='/components/sensor.ecobee/'>Ecobee sensor</a>
</li>

View file

@ -158,6 +158,9 @@
<li>
<a href='/components/sensor.command_sensor/'>Command line sensor</a>
</li>
<li>
<a href='/components/sensor.dweet/'>Dweet.io sensor</a>
</li>
<li>
<a href='/components/sensor.ecobee/'>Ecobee sensor</a>
</li>

View file

@ -236,6 +236,9 @@ Make sure that the URL matches exactly your endpoint or resource.
<li>
<a href='/components/sensor.command_sensor/'>Command line sensor</a>
</li>
<li>
<a href='/components/sensor.dweet/'>Dweet.io sensor</a>
</li>
<li>
<a href='/components/sensor.ecobee/'>Ecobee sensor</a>
</li>

View file

@ -151,6 +151,9 @@
<li>
<a href='/components/sensor.command_sensor/'>Command line sensor</a>
</li>
<li>
<a href='/components/sensor.dweet/'>Dweet.io sensor</a>
</li>
<li>
<a href='/components/sensor.ecobee/'>Ecobee sensor</a>
</li>

View file

@ -162,6 +162,9 @@
<li>
<a href='/components/sensor.command_sensor/'>Command line sensor</a>
</li>
<li>
<a href='/components/sensor.dweet/'>Dweet.io sensor</a>
</li>
<li>
<a href='/components/sensor.ecobee/'>Ecobee sensor</a>
</li>

View file

@ -152,6 +152,9 @@
<li>
<a href='/components/sensor.command_sensor/'>Command line sensor</a>
</li>
<li>
<a href='/components/sensor.dweet/'>Dweet.io sensor</a>
</li>
<li>
<a href='/components/sensor.ecobee/'>Ecobee sensor</a>
</li>

View file

@ -243,6 +243,9 @@
<li>
<a href='/components/sensor.command_sensor/'>Command line sensor</a>
</li>
<li>
<a href='/components/sensor.dweet/'>Dweet.io sensor</a>
</li>
<li>
<a href='/components/sensor.ecobee/'>Ecobee sensor</a>
</li>

View file

@ -167,6 +167,9 @@
<li>
<a href='/components/sensor.command_sensor/'>Command line sensor</a>
</li>
<li>
<a href='/components/sensor.dweet/'>Dweet.io sensor</a>
</li>
<li>
<a href='/components/sensor.ecobee/'>Ecobee sensor</a>
</li>

View file

@ -137,6 +137,9 @@
<li>
<a href='/components/sensor.command_sensor/'>Command line sensor</a>
</li>
<li>
<a href='/components/sensor.dweet/'>Dweet.io sensor</a>
</li>
<li>
<a href='/components/sensor.ecobee/'>Ecobee sensor</a>
</li>

View file

@ -151,6 +151,9 @@
<li>
<a href='/components/sensor.command_sensor/'>Command line sensor</a>
</li>
<li>
<a href='/components/sensor.dweet/'>Dweet.io sensor</a>
</li>
<li>
<a href='/components/sensor.ecobee/'>Ecobee sensor</a>
</li>

View file

@ -183,6 +183,9 @@
<li>
<a href='/components/sensor.command_sensor/'>Command line sensor</a>
</li>
<li>
<a href='/components/sensor.dweet/'>Dweet.io sensor</a>
</li>
<li>
<a href='/components/sensor.ecobee/'>Ecobee sensor</a>
</li>

View file

@ -171,6 +171,9 @@
<li>
<a href='/components/sensor.command_sensor/'>Command line sensor</a>
</li>
<li>
<a href='/components/sensor.dweet/'>Dweet.io sensor</a>
</li>
<li>
<a href='/components/sensor.ecobee/'>Ecobee sensor</a>
</li>

View file

@ -148,6 +148,9 @@
<li>
<a href='/components/sensor.command_sensor/'>Command line sensor</a>
</li>
<li>
<a href='/components/sensor.dweet/'>Dweet.io sensor</a>
</li>
<li>
<a href='/components/sensor.ecobee/'>Ecobee sensor</a>
</li>

View file

@ -154,6 +154,9 @@
<li>
<a href='/components/sensor.command_sensor/'>Command line sensor</a>
</li>
<li>
<a href='/components/sensor.dweet/'>Dweet.io sensor</a>
</li>
<li>
<a href='/components/sensor.ecobee/'>Ecobee sensor</a>
</li>

View file

@ -142,6 +142,9 @@
<li>
<a href='/components/sensor.command_sensor/'>Command line sensor</a>
</li>
<li>
<a href='/components/sensor.dweet/'>Dweet.io sensor</a>
</li>
<li>
<a href='/components/sensor.ecobee/'>Ecobee sensor</a>
</li>

View file

@ -135,6 +135,9 @@
<li><a href='/components/sensor.dht/'>
DHT sensor
</a></li>
<li><a href='/components/sensor.dweet/'>
Dweet.io sensor
</a></li>
<li><a href='/components/sensor.ecobee/'>
Ecobee sensor
</a></li>

View file

@ -107,7 +107,32 @@
<p>For a complete overview, check the <a href="http://jinja.pocoo.org/docs/dev/templates/">Jinja2 Template documentation</a>.</p>
<h3><a class="title-link" name="states-variable" href="#states-variable"></a> <code>states</code> variable</h3>
<h3><a class="title-link" name="accessing-variables" href="#accessing-variables"></a> Accessing variables</h3>
<p>The <a href="http://jinja.pocoo.org/docs/dev/templates/#variables">variables</a> are handled the same way as in Python.</p>
<table>
<thead>
<tr>
<th>Method</th>
<th>description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>{{ value.x }}</code> or <code>{{ value.['x'] }}</code></td>
<td>Normal value</td>
</tr>
<tr>
<td><code>{{ value_json.x }}</code></td>
<td>JSON value</td>
</tr>
</tbody>
</table>
<p>The evaluation leads to an empty string if its unsuccessful and printed or iterated over.</p>
<h3><a class="title-link" name="the-states-variable" href="#the-states-variable"></a> The <code>states</code> variable</h3>
<p>The template support has a special <code>states</code> variable:</p>
@ -128,11 +153,11 @@
</thead>
<tbody>
<tr>
<td>``</td>
<td><code>{{ states.device_tracker.paulus.state }}</code></td>
<td>home</td>
</tr>
<tr>
<td>``</td>
<td><code>{% for state in states.sensor %}{{ state.entity_id }}={{ state.state }}, {% endfor %}</code></td>
<td>senor.thermostat=24, sensor.humidity=40,</td>
</tr>
</tbody>
@ -140,7 +165,7 @@
<h3><a class="title-link" name="mathematical-functions" href="#mathematical-functions"></a> Mathematical functions</h3>
<p>The mathematical methods convert strings to numbers automatically before they are doing their job. This could be useful if you recieve data in the wrong unit of measurement and want to convert it.</p>
<p>The mathematical methods convert strings to numbers automatically before they are doing their job. This could be useful if you recieve data in the wrong unit of measurement and want to convert it. They are used like the standard <a href="http://jinja.pocoo.org/docs/dev/templates/#filters">Jinja2 filters</a>.</p>
<table>
<thead>
@ -156,19 +181,19 @@
</tr>
<tr>
<td><code>round(x)</code></td>
<td>Maximau number <code>x</code> of decimal places for the value</td>
<td>Maximal number <code>x</code> of decimal places for the value</td>
</tr>
</tbody>
</table>
<p>A sample entry in your <code>configuration.yaml</code> file for a sensor could look like this:</p>
<p>A sample sensor entry for your <code>configuration.yaml</code> file could look like this:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">sensor</span>:
<span class="key">platform</span>: <span class="string"><span class="content">dweet</span></span>
<span class="key">device</span>: <span class="string"><span class="content">temp-sensor012</span></span>
<span class="key">value_template</span>: <span class="string"><span class="content">'0'</span></span>
<span class="key">value_template</span>: <span class="string"><span class="content">'{{ value_json.temperature | multiply(1.02) | round(2) }}'</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>
</pre></div>
</div>

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

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