Site updated at 2015-09-11 16:26:07 UTC

This commit is contained in:
Paulus Schoutsen 2015-09-11 09:26:07 -07:00
parent 3ce314c0a7
commit c16793d62c
53 changed files with 2276 additions and 482 deletions

384
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-09-10T12:38:32-07:00</updated>
<updated>2015-09-11T09:24:25-07:00</updated>
<id>https://home-assistant.io/</id>
<author>
<name><![CDATA[Paulus Schoutsen]]></name>
@ -13,6 +13,317 @@
<generator uri="http://octopress.org/">Octopress</generator>
<entry>
<title type="html"><![CDATA[Using MQTT with Home Assistant]]></title>
<link href="https://home-assistant.io/blog/2015/09/11/different-ways-to-use-mqtt-with-home-assistant/"/>
<updated>2015-09-11T02:19:38-07:00</updated>
<id>https://home-assistant.io/blog/2015/09/11/different-ways-to-use-mqtt-with-home-assistant</id>
<content type="html"><![CDATA[<p><img src='https://home-assistant.io/images/supported_brands/mqtt.png' style='border:none; box-shadow: none; float: right;' height='80' />
The <a href="https://en.wikipedia.org/wiki/MQTT">MQTT</a> support was added to Home Assistant recently. The <a href="https://home-assistant.io/components/mqtt.html">MQTT component</a> will enable you to do all sort of things. Most likely you will use it to communicate with your devices. But Home Assistant doesn&rsquo;t care where the data is coming from or is limited to real hardware as long as there is MQTT support. This means that it doesn&rsquo;t matter if the data is coming from a human, a web service, or a device.</p>
<p>A great example is shown in a <a href="https://home-assistant.io/blog/2015/08/26/laundry-automation-with-moteino-mqtt-and-home-assistant/">Laundry Automation</a> post in this blog.</p>
<p>This post will give you a small overview of some other possibilities on how to use MQTT with Home Assistant.</p>
<!--more-->
<h3><a class='title-link' name='manual-usage' href='#manual-usage'></a> Manual usage</h3>
<p>The simplest but not the coolest way as a human to interact with a Home Assistant sensor is launching a command manually. Let&rsquo;s create a &ldquo;Mood&rdquo; sensor. For simplicity Home Assistant and the MQTT broker are both running on the same host. The needed configuration snipplets to add to the <code>configuration.yaml</code> file consists of two parts: one for the broker and one for the sensor.</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
</pre></td><td class='code'><pre><code class='yaml'><span class='line'><span class="l-Scalar-Plain">mqtt</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">broker</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">127.0.0.1</span>
</span><span class='line'>
</span><span class='line'><span class="l-Scalar-Plain">sensor</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">platform</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">mqtt</span>
</span><span class='line'> <span class="l-Scalar-Plain">name</span><span class="p-Indicator">:</span> <span class="s">&quot;Fabian&#39;s</span><span class="nv"> </span><span class="s">Mood&quot;</span>
</span><span class='line'> <span class="l-Scalar-Plain">state_topic</span><span class="p-Indicator">:</span> <span class="s">&quot;home-assistant/fabian/mood&quot;</span>
</span><span class='line'> <span class="l-Scalar-Plain">unit_of_measurement</span><span class="p-Indicator">:</span> <span class="s">&quot;</span><span class="nv"> </span><span class="s">&quot;</span>
</span></code></pre></td></tr></table></div></figure>
<p>After a restart of Home Assistant the &ldquo;Mood&rdquo; sensor will show up in the frontend. For more details about the configuration of MQTT itself and the sensor, please refer to the <a href="https://home-assistant.io/components/mqtt.html">MQTT component</a> or the <a href="https://home-assistant.io/components/sensor.mqtt.html">MQTT sensor</a> documentation.</p>
<p>Now we can set the mood. The commandline tool (<code>mosquitto_pub</code>) which is shipped with <code>mosquitto</code> is used to send an MQTT message.</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class='bash'><span class='line'>mosquitto_pub -h 127.0.0.1 -t <span class="s2">&quot;home-assistant/fabian/mood&quot;</span> -m <span class="s2">&quot;bad&quot;</span>
</span></code></pre></td></tr></table></div></figure>
<p class='img'>
<img src='https://home-assistant.io/images/blog/2015-09-mqtt/mood.png' />
The Mood sensor
</p>
<h3><a class='title-link' name='python-mqtt-bindings' href='#python-mqtt-bindings'></a> Python MQTT bindings</h3>
<p>The last section was pretty boring, I know. Nobody wants to send MQTT messages by hand if there is a computer on the desk. If you are playing the lottery this section is for you. If not, read it anyway because the lottery is just an example :-).</p>
<p>This example is using the <a href="https://eclipse.org/paho/clients/python/">Paho MQTT Python binding</a> because those binding should be available on the host where Home Assistant is running. If you want to use this example on another machine, please make sure that the bindings are installed (<code>pip3 install paho-mqtt</code>).</p>
<p>The first step is to add an additional MQTT sensor to the <code>configuration.yaml</code> file. The sensor will be called &ldquo;Lottery&rdquo;.</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
</pre></td><td class='code'><pre><code class='yaml'><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">platform</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">mqtt</span>
</span><span class='line'> <span class="l-Scalar-Plain">name</span><span class="p-Indicator">:</span> <span class="s">&quot;Lottery&quot;</span>
</span><span class='line'> <span class="l-Scalar-Plain">state_topic</span><span class="p-Indicator">:</span> <span class="s">&quot;home-assistant/lottery/number&quot;</span>
</span><span class='line'> <span class="l-Scalar-Plain">unit_of_measurement</span><span class="p-Indicator">:</span> <span class="s">&quot;</span><span class="nv"> </span><span class="s">&quot;</span>
</span></code></pre></td></tr></table></div></figure>
<p>Don&rsquo;t forget to restart Home Assistant to make the configuration active.</p>
<p>To play, we need numbers from 1 to 49 which can be marked on the ticket. Those numbers should be random and displayed in the Home Assistant frontend. The Python script below is another simple example on how to send MQTT messages from the commandline; this time in a loop. For further information and examples please check the <a href="https://eclipse.org/paho/clients/python/docs/">Paho MQTT</a> documentation.</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
<span class='line-number'>12</span>
<span class='line-number'>13</span>
<span class='line-number'>14</span>
<span class='line-number'>15</span>
<span class='line-number'>16</span>
<span class='line-number'>17</span>
<span class='line-number'>18</span>
<span class='line-number'>19</span>
<span class='line-number'>20</span>
<span class='line-number'>21</span>
<span class='line-number'>22</span>
</pre></td><td class='code'><pre><code class='python'><span class='line'><span class="c">#!/usr/bin/python3</span>
</span><span class='line'><span class="c">#</span>
</span><span class='line'><span class="kn">import</span> <span class="nn">time</span>
</span><span class='line'><span class="kn">import</span> <span class="nn">random</span>
</span><span class='line'><span class="kn">import</span> <span class="nn">paho.mqtt.client</span> <span class="kn">as</span> <span class="nn">mqtt</span>
</span><span class='line'><span class="kn">import</span> <span class="nn">paho.mqtt.publish</span> <span class="kn">as</span> <span class="nn">publish</span>
</span><span class='line'>
</span><span class='line'><span class="n">broker</span> <span class="o">=</span> <span class="s">&#39;127.0.0.1&#39;</span>
</span><span class='line'><span class="n">state_topic</span> <span class="o">=</span> <span class="s">&#39;home-assistant/lottery/number&#39;</span>
</span><span class='line'><span class="n">delay</span> <span class="o">=</span> <span class="mi">5</span>
</span><span class='line'>
</span><span class='line'><span class="c"># Send a single message to set the mood</span>
</span><span class='line'><span class="n">publish</span><span class="o">.</span><span class="n">single</span><span class="p">(</span><span class="s">&#39;home-assistant/fabian/mood&#39;</span><span class="p">,</span> <span class="s">&#39;good&#39;</span><span class="p">,</span> <span class="n">hostname</span><span class="o">=</span><span class="n">broker</span><span class="p">)</span>
</span><span class='line'>
</span><span class='line'><span class="c"># Send messages in a loop</span>
</span><span class='line'><span class="n">client</span> <span class="o">=</span> <span class="n">mqtt</span><span class="o">.</span><span class="n">Client</span><span class="p">(</span><span class="s">&quot;ha-client&quot;</span><span class="p">)</span>
</span><span class='line'><span class="n">client</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="n">broker</span><span class="p">)</span>
</span><span class='line'><span class="n">client</span><span class="o">.</span><span class="n">loop_start</span><span class="p">()</span>
</span><span class='line'>
</span><span class='line'><span class="k">while</span> <span class="bp">True</span><span class="p">:</span>
</span><span class='line'> <span class="n">client</span><span class="o">.</span><span class="n">publish</span><span class="p">(</span><span class="n">state_topic</span><span class="p">,</span> <span class="n">random</span><span class="o">.</span><span class="n">randrange</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">50</span><span class="p">,</span> <span class="mi">1</span><span class="p">))</span>
</span><span class='line'> <span class="n">time</span><span class="o">.</span><span class="n">sleep</span><span class="p">(</span><span class="n">delay</span><span class="p">)</span>
</span></code></pre></td></tr></table></div></figure>
<p>Every 5 seconds a message with a new number is sent to the broker and picked up by Home Assistant. By the way, my mood is much better now.</p>
<p class='img'>
<img src='https://home-assistant.io/images/blog/2015-09-mqtt/lottery.png' />
The Lottery sensor
</p>
<p>With only a few lines of Python and an MQTT broker you can create your own &ldquo;smartdevice&rdquo; or send information to Home Assistant which you haven&rsquo;t think of. Of course this is not limited to Python. If there is an MQTT library available, the device can be used with Home Assistant now.</p>
<h3><a class='title-link' name='arduino' href='#arduino'></a> Arduino</h3>
<p>To get started with real hardware that is capable to send MQTT messages, the Arduino platform is an inexpensive way to do it. In this section an Arduino UNO with an Ethernet shield and a photo resistor is used. The photo resistor is connected to analog pin 0 (A0) and has an output from 0 to 1024.</p>
<p class='img'>
<img src='https://home-assistant.io/images/blog/2015-09-mqtt/arduino-shield.png' />
The Arduino UNO with Ethernet shield and photo resistor
</p>
<p>The <a href="http://knolleary.github.io/pubsubclient/">MQTT client</a> for the Arduino needs to be available in your Arduino IDE. Below you will find a sketch which could act as a starting point. Please modify the IP addresses, the MAC address, and the pin as needed and upload the sketch to your Arduino.</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
<span class='line-number'>12</span>
<span class='line-number'>13</span>
<span class='line-number'>14</span>
<span class='line-number'>15</span>
<span class='line-number'>16</span>
<span class='line-number'>17</span>
<span class='line-number'>18</span>
<span class='line-number'>19</span>
<span class='line-number'>20</span>
<span class='line-number'>21</span>
<span class='line-number'>22</span>
<span class='line-number'>23</span>
<span class='line-number'>24</span>
<span class='line-number'>25</span>
<span class='line-number'>26</span>
<span class='line-number'>27</span>
<span class='line-number'>28</span>
<span class='line-number'>29</span>
<span class='line-number'>30</span>
<span class='line-number'>31</span>
<span class='line-number'>32</span>
<span class='line-number'>33</span>
<span class='line-number'>34</span>
<span class='line-number'>35</span>
<span class='line-number'>36</span>
<span class='line-number'>37</span>
<span class='line-number'>38</span>
<span class='line-number'>39</span>
<span class='line-number'>40</span>
<span class='line-number'>41</span>
<span class='line-number'>42</span>
<span class='line-number'>43</span>
<span class='line-number'>44</span>
<span class='line-number'>45</span>
<span class='line-number'>46</span>
<span class='line-number'>47</span>
<span class='line-number'>48</span>
<span class='line-number'>49</span>
<span class='line-number'>50</span>
<span class='line-number'>51</span>
<span class='line-number'>52</span>
<span class='line-number'>53</span>
<span class='line-number'>54</span>
<span class='line-number'>55</span>
<span class='line-number'>56</span>
<span class='line-number'>57</span>
<span class='line-number'>58</span>
<span class='line-number'>59</span>
<span class='line-number'>60</span>
<span class='line-number'>61</span>
<span class='line-number'>62</span>
<span class='line-number'>63</span>
<span class='line-number'>64</span>
<span class='line-number'>65</span>
<span class='line-number'>66</span>
<span class='line-number'>67</span>
<span class='line-number'>68</span>
</pre></td><td class='code'><pre><code class='c'><span class='line'><span class="cm">/*</span>
</span><span class='line'><span class="cm"> This sketch is based on the basic MQTT example by</span>
</span><span class='line'><span class="cm"> http://knolleary.github.io/pubsubclient/</span>
</span><span class='line'><span class="cm">*/</span>
</span><span class='line'>
</span><span class='line'><span class="cp">#include &lt;SPI.h&gt;</span>
</span><span class='line'><span class="cp">#include &lt;Ethernet.h&gt;</span>
</span><span class='line'><span class="cp">#include &lt;PubSubClient.h&gt;</span>
</span><span class='line'>
</span><span class='line'><span class="cp">#define DEBUG 1 </span><span class="c1">// Debug output to serial console</span>
</span><span class='line'>
</span><span class='line'><span class="c1">// Device settings</span>
</span><span class='line'><span class="n">IPAddress</span> <span class="nf">deviceIp</span><span class="p">(</span><span class="mi">192</span><span class="p">,</span> <span class="mi">168</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">43</span><span class="p">);</span>
</span><span class='line'><span class="n">byte</span> <span class="n">deviceMac</span><span class="p">[]</span> <span class="o">=</span> <span class="p">{</span> <span class="mh">0xAB</span><span class="p">,</span> <span class="mh">0xCD</span><span class="p">,</span> <span class="mh">0xFE</span><span class="p">,</span> <span class="mh">0xFE</span><span class="p">,</span> <span class="mh">0xFE</span><span class="p">,</span> <span class="mh">0xFE</span> <span class="p">};</span>
</span><span class='line'><span class="kt">char</span><span class="o">*</span> <span class="n">deviceId</span> <span class="o">=</span> <span class="s">&quot;sensor01&quot;</span><span class="p">;</span> <span class="c1">// Name of the sensor</span>
</span><span class='line'><span class="kt">char</span><span class="o">*</span> <span class="n">stateTopic</span> <span class="o">=</span> <span class="s">&quot;home-assistant/sensor01/brightness&quot;</span><span class="p">;</span> <span class="c1">// MQTT topic where values are published</span>
</span><span class='line'><span class="kt">int</span> <span class="n">sensorPin</span> <span class="o">=</span> <span class="n">A0</span><span class="p">;</span> <span class="c1">// Pin to which the sensor is connected to</span>
</span><span class='line'><span class="kt">char</span> <span class="n">buf</span><span class="p">[</span><span class="mi">4</span><span class="p">];</span> <span class="c1">// Buffer to store the sensor value</span>
</span><span class='line'><span class="kt">int</span> <span class="n">updateInterval</span> <span class="o">=</span> <span class="mi">1000</span><span class="p">;</span> <span class="c1">// Interval in miliseconds</span>
</span><span class='line'>
</span><span class='line'><span class="c1">// MQTT server settings</span>
</span><span class='line'><span class="n">IPAddress</span> <span class="nf">mqttServer</span><span class="p">(</span><span class="mi">192</span><span class="p">,</span> <span class="mi">168</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">12</span><span class="p">);</span>
</span><span class='line'><span class="kt">int</span> <span class="n">mqttPort</span> <span class="o">=</span> <span class="mi">1883</span><span class="p">;</span>
</span><span class='line'>
</span><span class='line'><span class="n">EthernetClient</span> <span class="n">ethClient</span><span class="p">;</span>
</span><span class='line'><span class="n">PubSubClient</span> <span class="nf">client</span><span class="p">(</span><span class="n">ethClient</span><span class="p">);</span>
</span><span class='line'>
</span><span class='line'><span class="kt">void</span> <span class="nf">reconnect</span><span class="p">()</span> <span class="p">{</span>
</span><span class='line'> <span class="k">while</span> <span class="p">(</span><span class="o">!</span><span class="n">client</span><span class="p">.</span><span class="n">connected</span><span class="p">())</span> <span class="p">{</span>
</span><span class='line'><span class="cp">#if DEBUG</span>
</span><span class='line'> <span class="n">Serial</span><span class="p">.</span><span class="n">print</span><span class="p">(</span><span class="s">&quot;Attempting MQTT connection...&quot;</span><span class="p">);</span>
</span><span class='line'><span class="cp">#endif</span>
</span><span class='line'> <span class="k">if</span> <span class="p">(</span><span class="n">client</span><span class="p">.</span><span class="n">connect</span><span class="p">(</span><span class="n">deviceId</span><span class="p">))</span> <span class="p">{</span>
</span><span class='line'><span class="cp">#if DEBUG</span>
</span><span class='line'> <span class="n">Serial</span><span class="p">.</span><span class="n">println</span><span class="p">(</span><span class="s">&quot;connected&quot;</span><span class="p">);</span>
</span><span class='line'><span class="cp">#endif</span>
</span><span class='line'> <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
</span><span class='line'><span class="cp">#if DEBUG</span>
</span><span class='line'> <span class="n">Serial</span><span class="p">.</span><span class="n">print</span><span class="p">(</span><span class="s">&quot;failed, rc=&quot;</span><span class="p">);</span>
</span><span class='line'> <span class="n">Serial</span><span class="p">.</span><span class="n">print</span><span class="p">(</span><span class="n">client</span><span class="p">.</span><span class="n">state</span><span class="p">());</span>
</span><span class='line'> <span class="n">Serial</span><span class="p">.</span><span class="n">println</span><span class="p">(</span><span class="s">&quot; try again in 5 seconds&quot;</span><span class="p">);</span>
</span><span class='line'><span class="cp">#endif</span>
</span><span class='line'> <span class="n">delay</span><span class="p">(</span><span class="mi">5000</span><span class="p">);</span>
</span><span class='line'> <span class="p">}</span>
</span><span class='line'> <span class="p">}</span>
</span><span class='line'><span class="p">}</span>
</span><span class='line'>
</span><span class='line'><span class="kt">void</span> <span class="nf">setup</span><span class="p">()</span> <span class="p">{</span>
</span><span class='line'> <span class="n">Serial</span><span class="p">.</span><span class="n">begin</span><span class="p">(</span><span class="mi">57600</span><span class="p">);</span>
</span><span class='line'> <span class="n">client</span><span class="p">.</span><span class="n">setServer</span><span class="p">(</span><span class="n">mqttServer</span><span class="p">,</span> <span class="n">mqttPort</span><span class="p">);</span>
</span><span class='line'> <span class="n">Ethernet</span><span class="p">.</span><span class="n">begin</span><span class="p">(</span><span class="n">deviceMac</span><span class="p">,</span> <span class="n">deviceIp</span><span class="p">);</span>
</span><span class='line'> <span class="n">delay</span><span class="p">(</span><span class="mi">1500</span><span class="p">);</span>
</span><span class='line'><span class="p">}</span>
</span><span class='line'>
</span><span class='line'><span class="kt">void</span> <span class="nf">loop</span><span class="p">()</span> <span class="p">{</span>
</span><span class='line'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="n">client</span><span class="p">.</span><span class="n">connected</span><span class="p">())</span> <span class="p">{</span>
</span><span class='line'> <span class="n">reconnect</span><span class="p">();</span>
</span><span class='line'> <span class="p">}</span>
</span><span class='line'> <span class="n">client</span><span class="p">.</span><span class="n">loop</span><span class="p">();</span>
</span><span class='line'>
</span><span class='line'> <span class="kt">int</span> <span class="n">sensorValue</span> <span class="o">=</span> <span class="n">analogRead</span><span class="p">(</span><span class="n">sensorPin</span><span class="p">);</span>
</span><span class='line'><span class="cp">#if DEBUG</span>
</span><span class='line'> <span class="n">Serial</span><span class="p">.</span><span class="n">print</span><span class="p">(</span><span class="s">&quot;Sensor value: &quot;</span><span class="p">);</span>
</span><span class='line'> <span class="n">Serial</span><span class="p">.</span><span class="n">println</span><span class="p">(</span><span class="n">sensorValue</span><span class="p">);</span>
</span><span class='line'><span class="cp">#endif</span>
</span><span class='line'> <span class="n">client</span><span class="p">.</span><span class="n">publish</span><span class="p">(</span><span class="n">stateTopic</span><span class="p">,</span> <span class="n">itoa</span><span class="p">(</span><span class="n">sensorValue</span><span class="p">,</span> <span class="n">buf</span><span class="p">,</span> <span class="mi">10</span><span class="p">));</span>
</span><span class='line'> <span class="n">delay</span><span class="p">(</span><span class="n">updateInterval</span><span class="p">);</span>
</span><span class='line'><span class="p">}</span>
</span></code></pre></td></tr></table></div></figure>
<p>The Arduino will send the value of the sensor every second. To use the data in Home Assistant, add an additional MQTT sensor to the <code>configuration.yaml</code> file.</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
</pre></td><td class='code'><pre><code class='yaml'><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">platform</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">mqtt</span>
</span><span class='line'> <span class="l-Scalar-Plain">name</span><span class="p-Indicator">:</span> <span class="s">&quot;Brightness&quot;</span>
</span><span class='line'> <span class="l-Scalar-Plain">state_topic</span><span class="p-Indicator">:</span> <span class="s">&quot;home-assistant/sensor01/brightness&quot;</span>
</span><span class='line'> <span class="l-Scalar-Plain">unit_of_measurement</span><span class="p-Indicator">:</span> <span class="s">&quot;</span><span class="nv"> </span><span class="s">&quot;</span>
</span></code></pre></td></tr></table></div></figure>
<p>After a restart of Home Assistant the values of your Arduino will be available.</p>
<p class='img'>
<img src='https://home-assistant.io/images/blog/2015-09-mqtt/arduino.png' />
The Brightness sensor
</p>
<p>I hope that this post could give you some ideas about the usage Home Assistant and MQTT. If you are working on a cool project that includes Home Assistant, please let us now.</p>
]]></content>
</entry>
<entry>
<title type="html"><![CDATA[0.7: Better UI and improved distribution]]></title>
<link href="https://home-assistant.io/blog/2015/08/31/version-7-revamped-ui-and-improved-distribution/"/>
@ -1888,77 +2199,6 @@ Home Assistant now supports <code>--open-ui</code> and <code>--demo-mode</code>
</span><span class='line'> <span class="n">notify</span><span class="o">.</span><span class="n">send_message</span><span class="p">(</span><span class="n">hass</span><span class="p">,</span> <span class="s">&quot;Hello from my component!&quot;</span><span class="p">)</span>
</span></code></pre></td></tr></table></div></figure>
]]></content>
</entry>
<entry>
<title type="html"><![CDATA[Home Control, Automation &amp; the Smart Home]]></title>
<link href="https://home-assistant.io/blog/2014/12/26/home-control-home-automation-and-the-smart-home/"/>
<updated>2014-12-26T10:23:13-08:00</updated>
<id>https://home-assistant.io/blog/2014/12/26/home-control-home-automation-and-the-smart-home</id>
<content type="html"><![CDATA[<p>The internet has been buzzing over the last year about home automation. A lot of different terms fly around like the internet of things, home automation and the smart home.
This article will try to explain how they all relate.</p>
<p>The first thing to introduce is the <strong>Internet of Things</strong> (IoT). This refers to a new generation of devices that cannot only be controlled by humans via buttons or remotes but also provide an interface to communicate with other devices and applications. For example, an IoT-capable coffee machine could receive commands to create different types of coffee and be able to broadcast the amount of water left in its resevoir.</p>
<p>There is no widely adopted open standard for smart device communication. This prevents a lot of devices to communicate with one another. And even if they could, most devices are not designed to manage other devices. To solve this we need a device to be able to communicate with and manage all these connected devices. This device is called a <strong>hub</strong>.</p>
<p>As a bare minimum a hub has to keep track of the state of each device and should be able to control them if possible. For example, it has to know which lights are on or off and offer a way to control the lights. For a sensor it only has to know the value. A hub with these capabilities offers <strong>home control</strong>.</p>
<p class='img'>
<a href='https://home-assistant.io/images/screenshots/nexus_7_dashboard.png'>
<img alt='Hub dashboard example'
src='https://home-assistant.io/images/screenshots/nexus_7_dashboard.png' />
</a>
Example of a hub&#8217;s dashboard. Showing the state of 2 persons, 4 lights and the sun.
</p>
<!--more-->
<p>A step up from home control is to have the user setup triggers to send commands based on information in the home control layer. For example, to turn on the lights when a person arrives home. A hub with these capabilities is capable of <strong>home automation</strong>.</p>
<p>Most hubs on the market today offer this in various degrees of functionality and usability. Some IoT-capable devices offer this too, but only control themselves and are usually limited to location and time-based events.</p>
<p>The last category, and this is still very much in the future, is the <strong>smart home</strong>. A self-learning and adopting system that will decide which events should impact other devices.</p>
<p>An example of a smart home in action is that it observes that when person A comes home, the lights in the living room and the kitchen switch on. While if person B comes home, the lights in the living room and the study room are switched on. The next time person A or B comes home, the smart home will turn on its preferred lights without any configuration being set by the user.</p>
<p>A glimpse today at how the future can look is the <a href="https://nest.com/">Nest thermostat</a>. A thermostat smart enough to learn your schedule and adjust its own temperature accordingly.</p>
<p>All this results in the following overview of Home Automation.</p>
<p class='img'>
<a href='https://home-assistant.io/images/architecture/home_automation_landscape.png'>
<img alt='Home Automation landscape'
src='https://home-assistant.io/images/architecture/home_automation_landscape.png' />
</a>
Overview of the home automation landscape.
</p>
<h3>Challenges</h3>
<p>You are probably wondering, this all seems relatively simple, why don&rsquo;t I have my very own smart home yet? There are a couple of challenges today that keep us from stepping into the future.</p>
<h4>More Internet of Things-capable devices</h4>
<p>The majority of the IoT products out there are either lights, switches or presence detection. That&rsquo;s not enough for your home to be very smart about. We need televisions, fridges, ovens and more to join the party to increase the number of devices that we can control.</p>
<h4>More data</h4>
<p>Most first generation IoT devices are only exposing information that is needed for controlling it. We need to be able to track all interactions with each device for our smart home to learn how interaction with devices influence other things. For example, we need to be able to track how many cups of coffee were made or how often the fridge was open. This will increase the information flow and open up a whole bunch of new possibilities. For example, the smart home can order new coffee when you&rsquo;re running low.</p>
<h4>Easy to use, open software that we can trust</h4>
<p>To increase adoption we will need people to trust their smart home system. It will be very tough to convince people to upgrade all their devices and upload all interactions with each of them to the cloud. This data could reveal their whole life including all bad habits. That&rsquo;s why such a system should be simple and open-source so people can validate that their data generated at home stays home.</p>
<p>Anoter important booster for adoption is that the software should be easy to set up and use by the average user. A lot of people are not burning their hands yet on Home Automation because they are scared of configurating it.</p>
<p>Home Assistant is trying to be this software. It is not there yet but trying hard. Device discovery and a user interface for configuring home automation are problems we hope to tackle in 2015 while not sacrificing any modularity or usability.</p>
<p>Happy new year!</p>
]]></content>
</entry>

View file

@ -212,6 +212,12 @@
<ul class="divided">
<li class="post">
<a href="/blog/2015/09/11/different-ways-to-use-mqtt-with-home-assistant/">Using MQTT with Home Assistant</a>
</li>
<li class="post">
<a href="/blog/2015/08/31/version-7-revamped-ui-and-improved-distribution/">0.7: Better UI and improved distribution</a>
</li>
@ -235,12 +241,6 @@
</li>
<li class="post">
<a href="/blog/2015/07/11/ip-cameras-arduino-kodi-efergy-support/">IP Cameras, Arduinos, Kodi and Efergy Energy Monitors now supported</a>
</li>
</ul>
</section>

View file

@ -274,6 +274,12 @@ This article will try to explain how they all relate.</p>
<ul class="divided">
<li class="post">
<a href="/blog/2015/09/11/different-ways-to-use-mqtt-with-home-assistant/">Using MQTT with Home Assistant</a>
</li>
<li class="post">
<a href="/blog/2015/08/31/version-7-revamped-ui-and-improved-distribution/">0.7: Better UI and improved distribution</a>
</li>
@ -297,12 +303,6 @@ This article will try to explain how they all relate.</p>
</li>
<li class="post">
<a href="/blog/2015/07/11/ip-cameras-arduino-kodi-efergy-support/">IP Cameras, Arduinos, Kodi and Efergy Energy Monitors now supported</a>
</li>
</ul>
</section>

View file

@ -256,6 +256,12 @@
<ul class="divided">
<li class="post">
<a href="/blog/2015/09/11/different-ways-to-use-mqtt-with-home-assistant/">Using MQTT with Home Assistant</a>
</li>
<li class="post">
<a href="/blog/2015/08/31/version-7-revamped-ui-and-improved-distribution/">0.7: Better UI and improved distribution</a>
</li>
@ -279,12 +285,6 @@
</li>
<li class="post">
<a href="/blog/2015/07/11/ip-cameras-arduino-kodi-efergy-support/">IP Cameras, Arduinos, Kodi and Efergy Energy Monitors now supported</a>
</li>
</ul>
</section>

View file

@ -224,6 +224,12 @@
<ul class="divided">
<li class="post">
<a href="/blog/2015/09/11/different-ways-to-use-mqtt-with-home-assistant/">Using MQTT with Home Assistant</a>
</li>
<li class="post">
<a href="/blog/2015/08/31/version-7-revamped-ui-and-improved-distribution/">0.7: Better UI and improved distribution</a>
</li>
@ -247,12 +253,6 @@
</li>
<li class="post">
<a href="/blog/2015/07/11/ip-cameras-arduino-kodi-efergy-support/">IP Cameras, Arduinos, Kodi and Efergy Energy Monitors now supported</a>
</li>
</ul>
</section>

View file

@ -231,6 +231,12 @@
<ul class="divided">
<li class="post">
<a href="/blog/2015/09/11/different-ways-to-use-mqtt-with-home-assistant/">Using MQTT with Home Assistant</a>
</li>
<li class="post">
<a href="/blog/2015/08/31/version-7-revamped-ui-and-improved-distribution/">0.7: Better UI and improved distribution</a>
</li>
@ -254,12 +260,6 @@
</li>
<li class="post">
<a href="/blog/2015/07/11/ip-cameras-arduino-kodi-efergy-support/">IP Cameras, Arduinos, Kodi and Efergy Energy Monitors now supported</a>
</li>
</ul>
</section>

View file

@ -236,6 +236,12 @@ Home Assistant now supports <code>--open-ui</code> and <code>--demo-mode</code>
<ul class="divided">
<li class="post">
<a href="/blog/2015/09/11/different-ways-to-use-mqtt-with-home-assistant/">Using MQTT with Home Assistant</a>
</li>
<li class="post">
<a href="/blog/2015/08/31/version-7-revamped-ui-and-improved-distribution/">0.7: Better UI and improved distribution</a>
</li>
@ -259,12 +265,6 @@ Home Assistant now supports <code>--open-ui</code> and <code>--demo-mode</code>
</li>
<li class="post">
<a href="/blog/2015/07/11/ip-cameras-arduino-kodi-efergy-support/">IP Cameras, Arduinos, Kodi and Efergy Energy Monitors now supported</a>
</li>
</ul>
</section>

View file

@ -254,6 +254,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/09/11/different-ways-to-use-mqtt-with-home-assistant/">Using MQTT with Home Assistant</a>
</li>
<li class="post">
<a href="/blog/2015/08/31/version-7-revamped-ui-and-improved-distribution/">0.7: Better UI and improved distribution</a>
</li>
@ -277,12 +283,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/07/11/ip-cameras-arduino-kodi-efergy-support/">IP Cameras, Arduinos, Kodi and Efergy Energy Monitors now supported</a>
</li>
</ul>
</section>

View file

@ -232,6 +232,12 @@
<ul class="divided">
<li class="post">
<a href="/blog/2015/09/11/different-ways-to-use-mqtt-with-home-assistant/">Using MQTT with Home Assistant</a>
</li>
<li class="post">
<a href="/blog/2015/08/31/version-7-revamped-ui-and-improved-distribution/">0.7: Better UI and improved distribution</a>
</li>
@ -255,12 +261,6 @@
</li>
<li class="post">
<a href="/blog/2015/07/11/ip-cameras-arduino-kodi-efergy-support/">IP Cameras, Arduinos, Kodi and Efergy Energy Monitors now supported</a>
</li>
</ul>
</section>

View file

@ -219,6 +219,12 @@ YAML allows the use of lists, which should make the configuration file a bit mor
<ul class="divided">
<li class="post">
<a href="/blog/2015/09/11/different-ways-to-use-mqtt-with-home-assistant/">Using MQTT with Home Assistant</a>
</li>
<li class="post">
<a href="/blog/2015/08/31/version-7-revamped-ui-and-improved-distribution/">0.7: Better UI and improved distribution</a>
</li>
@ -242,12 +248,6 @@ YAML allows the use of lists, which should make the configuration file a bit mor
</li>
<li class="post">
<a href="/blog/2015/07/11/ip-cameras-arduino-kodi-efergy-support/">IP Cameras, Arduinos, Kodi and Efergy Energy Monitors now supported</a>
</li>
</ul>
</section>

View file

@ -220,6 +220,12 @@ The old logo, the new detailed logo and the new simple logo.
<ul class="divided">
<li class="post">
<a href="/blog/2015/09/11/different-ways-to-use-mqtt-with-home-assistant/">Using MQTT with Home Assistant</a>
</li>
<li class="post">
<a href="/blog/2015/08/31/version-7-revamped-ui-and-improved-distribution/">0.7: Better UI and improved distribution</a>
</li>
@ -243,12 +249,6 @@ The old logo, the new detailed logo and the new simple logo.
</li>
<li class="post">
<a href="/blog/2015/07/11/ip-cameras-arduino-kodi-efergy-support/">IP Cameras, Arduinos, Kodi and Efergy Energy Monitors now supported</a>
</li>
</ul>
</section>

View file

@ -266,6 +266,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/09/11/different-ways-to-use-mqtt-with-home-assistant/">Using MQTT with Home Assistant</a>
</li>
<li class="post">
<a href="/blog/2015/08/31/version-7-revamped-ui-and-improved-distribution/">0.7: Better UI and improved distribution</a>
</li>
@ -289,12 +295,6 @@ An initial version of voice control for Home Assistant has landed. The current i
</li>
<li class="post">
<a href="/blog/2015/07/11/ip-cameras-arduino-kodi-efergy-support/">IP Cameras, Arduinos, Kodi and Efergy Energy Monitors now supported</a>
</li>
</ul>
</section>

View file

@ -339,6 +339,12 @@ James Cole has also contributed support for <a href='https://pushover.net/'>the
<ul class="divided">
<li class="post">
<a href="/blog/2015/09/11/different-ways-to-use-mqtt-with-home-assistant/">Using MQTT with Home Assistant</a>
</li>
<li class="post">
<a href="/blog/2015/08/31/version-7-revamped-ui-and-improved-distribution/">0.7: Better UI and improved distribution</a>
</li>
@ -362,12 +368,6 @@ James Cole has also contributed support for <a href='https://pushover.net/'>the
</li>
<li class="post">
<a href="/blog/2015/07/11/ip-cameras-arduino-kodi-efergy-support/">IP Cameras, Arduinos, Kodi and Efergy Energy Monitors now supported</a>
</li>
</ul>
</section>

View file

@ -355,6 +355,12 @@ James has also contributed support for integrating Transmission into Home Assist
<ul class="divided">
<li class="post">
<a href="/blog/2015/09/11/different-ways-to-use-mqtt-with-home-assistant/">Using MQTT with Home Assistant</a>
</li>
<li class="post">
<a href="/blog/2015/08/31/version-7-revamped-ui-and-improved-distribution/">0.7: Better UI and improved distribution</a>
</li>
@ -378,12 +384,6 @@ James has also contributed support for integrating Transmission into Home Assist
</li>
<li class="post">
<a href="/blog/2015/07/11/ip-cameras-arduino-kodi-efergy-support/">IP Cameras, Arduinos, Kodi and Efergy Energy Monitors now supported</a>
</li>
</ul>
</section>

View file

@ -244,6 +244,12 @@
<ul class="divided">
<li class="post">
<a href="/blog/2015/09/11/different-ways-to-use-mqtt-with-home-assistant/">Using MQTT with Home Assistant</a>
</li>
<li class="post">
<a href="/blog/2015/08/31/version-7-revamped-ui-and-improved-distribution/">0.7: Better UI and improved distribution</a>
</li>
@ -267,12 +273,6 @@
</li>
<li class="post">
<a href="/blog/2015/07/11/ip-cameras-arduino-kodi-efergy-support/">IP Cameras, Arduinos, Kodi and Efergy Energy Monitors now supported</a>
</li>
</ul>
</section>

View file

@ -381,6 +381,12 @@ Before diving into the newly supported devices and services, I want to highlight
<ul class="divided">
<li class="post">
<a href="/blog/2015/09/11/different-ways-to-use-mqtt-with-home-assistant/">Using MQTT with Home Assistant</a>
</li>
<li class="post">
<a href="/blog/2015/08/31/version-7-revamped-ui-and-improved-distribution/">0.7: Better UI and improved distribution</a>
</li>
@ -404,12 +410,6 @@ Before diving into the newly supported devices and services, I want to highlight
</li>
<li class="post">
<a href="/blog/2015/07/11/ip-cameras-arduino-kodi-efergy-support/">IP Cameras, Arduinos, Kodi and Efergy Energy Monitors now supported</a>
</li>
</ul>
</section>

View file

@ -460,6 +460,12 @@ This switch platform allows you to control your motion detection setting on your
<ul class="divided">
<li class="post">
<a href="/blog/2015/09/11/different-ways-to-use-mqtt-with-home-assistant/">Using MQTT with Home Assistant</a>
</li>
<li class="post">
<a href="/blog/2015/08/31/version-7-revamped-ui-and-improved-distribution/">0.7: Better UI and improved distribution</a>
</li>
@ -483,12 +489,6 @@ This switch platform allows you to control your motion detection setting on your
</li>
<li class="post">
<a href="/blog/2015/07/11/ip-cameras-arduino-kodi-efergy-support/">IP Cameras, Arduinos, Kodi and Efergy Energy Monitors now supported</a>
</li>
</ul>
</section>

View file

@ -404,6 +404,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/09/11/different-ways-to-use-mqtt-with-home-assistant/">Using MQTT with Home Assistant</a>
</li>
<li class="post">
<a href="/blog/2015/08/31/version-7-revamped-ui-and-improved-distribution/">0.7: Better UI and improved distribution</a>
</li>
@ -427,8 +433,6 @@ Fabian has added support for <a href="https://forecast.io/">Forecast.io</a> to g
</li>
</ul>
</section>

View file

@ -367,6 +367,12 @@ Support for Temper temperature sensors has been contributed by <a href="https://
<ul class="divided">
<li class="post">
<a href="/blog/2015/09/11/different-ways-to-use-mqtt-with-home-assistant/">Using MQTT with Home Assistant</a>
</li>
<li class="post">
<a href="/blog/2015/08/31/version-7-revamped-ui-and-improved-distribution/">0.7: Better UI and improved distribution</a>
</li>
@ -386,12 +392,6 @@ Support for Temper temperature sensors has been contributed by <a href="https://
<li class="post">
<a href="/blog/2015/07/11/ip-cameras-arduino-kodi-efergy-support/">IP Cameras, Arduinos, Kodi and Efergy Energy Monitors now supported</a>
</li>
</ul>
</section>

View file

@ -245,6 +245,12 @@ Home Assistant support to integrate your <a href="https://www.verisure.com/">Ver
<ul class="divided">
<li class="post">
<a href="/blog/2015/09/11/different-ways-to-use-mqtt-with-home-assistant/">Using MQTT with Home Assistant</a>
</li>
<li class="post">
<a href="/blog/2015/08/31/version-7-revamped-ui-and-improved-distribution/">0.7: Better UI and improved distribution</a>
</li>
@ -264,12 +270,6 @@ Home Assistant support to integrate your <a href="https://www.verisure.com/">Ver
</li>
<li class="post">
<a href="/blog/2015/07/11/ip-cameras-arduino-kodi-efergy-support/">IP Cameras, Arduinos, Kodi and Efergy Energy Monitors now supported</a>
</li>
</ul>
</section>

View file

@ -429,6 +429,12 @@
<ul class="divided">
<li class="post">
<a href="/blog/2015/09/11/different-ways-to-use-mqtt-with-home-assistant/">Using MQTT with Home Assistant</a>
</li>
<li class="post">
<a href="/blog/2015/08/31/version-7-revamped-ui-and-improved-distribution/">0.7: Better UI and improved distribution</a>
</li>
@ -448,12 +454,6 @@
</li>
<li class="post">
<a href="/blog/2015/07/11/ip-cameras-arduino-kodi-efergy-support/">IP Cameras, Arduinos, Kodi and Efergy Energy Monitors now supported</a>
</li>
</ul>
</section>

View file

@ -375,6 +375,12 @@ or AM2302 device.</p>
<ul class="divided">
<li class="post">
<a href="/blog/2015/09/11/different-ways-to-use-mqtt-with-home-assistant/">Using MQTT with Home Assistant</a>
</li>
<li class="post">
@ -394,12 +400,6 @@ or AM2302 device.</p>
</li>
<li class="post">
<a href="/blog/2015/07/11/ip-cameras-arduino-kodi-efergy-support/">IP Cameras, Arduinos, Kodi and Efergy Energy Monitors now supported</a>
</li>
</ul>
</section>

View file

@ -0,0 +1,609 @@
<!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>Using MQTT with Home Assistant - Home Assistant</title>
<meta name="author" content="Paulus Schoutsen">
<meta name="description" content="This post describes three different ways to use MQTT with Home Assistant.">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="Using MQTT with Home Assistant">
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/blog/2015/09/11/different-ways-to-use-mqtt-with-home-assistant/">
<meta property="og:type" content="article">
<meta property="og:description" content="This post describes three different ways to use MQTT with Home Assistant.">
<meta property="og:image" content="https://home-assistant.io/images/blog/2015-09-mqtt/arduino.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.html'>Initial configuration</a></li>
<li><a href='/components/'>Component overview</a></li>
<li><a href='/getting-started/android.html'>Setting up Android</a></li>
</ul>
</li>
<li>
<a href="/developers/">Developers</a>
<ul>
<li><a href="/developers/architecture.html">Architecture</a></li>
<li><a href="/developers/frontend.html">Frontend development</a></li>
<li><a href="/developers/creating_components.html">
Creating components
</a></li>
<li><a href="/developers/add_new_platform.html">
Adding platform support
</a></li>
<li><a href="/developers/api.html">API</a></li>
<li><a href="/developers/credits.html">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">Using MQTT with Home Assistant</h1>
<div class="meta clearfix">
<time datetime="2015-09-11T02:19:38-07:00" pubdate data-updated="true"><i class="icon-calendar"></i> September 11, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Fabian Affolter</span>
<span><i class='icon-time'></i> 10 minutes reading time</span>
<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><img src='/images/supported_brands/mqtt.png' style='border:none; box-shadow: none; float: right;' height='80' />
The <a href="https://en.wikipedia.org/wiki/MQTT">MQTT</a> support was added to Home Assistant recently. The <a href="https://home-assistant.io/components/mqtt.html">MQTT component</a> will enable you to do all sort of things. Most likely you will use it to communicate with your devices. But Home Assistant doesn&rsquo;t care where the data is coming from or is limited to real hardware as long as there is MQTT support. This means that it doesn&rsquo;t matter if the data is coming from a human, a web service, or a device.</p>
<p>A great example is shown in a <a href="https://home-assistant.io/blog/2015/08/26/laundry-automation-with-moteino-mqtt-and-home-assistant/">Laundry Automation</a> post in this blog.</p>
<p>This post will give you a small overview of some other possibilities on how to use MQTT with Home Assistant.</p>
<a name="read-more"></a>
<h3><a class='title-link' name='manual-usage' href='#manual-usage'></a> Manual usage</h3>
<p>The simplest but not the coolest way as a human to interact with a Home Assistant sensor is launching a command manually. Let&rsquo;s create a &ldquo;Mood&rdquo; sensor. For simplicity Home Assistant and the MQTT broker are both running on the same host. The needed configuration snipplets to add to the <code>configuration.yaml</code> file consists of two parts: one for the broker and one for the sensor.</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
</pre></td><td class='code'><pre><code class='yaml'><span class='line'><span class="l-Scalar-Plain">mqtt</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">broker</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">127.0.0.1</span>
</span><span class='line'>
</span><span class='line'><span class="l-Scalar-Plain">sensor</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">platform</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">mqtt</span>
</span><span class='line'> <span class="l-Scalar-Plain">name</span><span class="p-Indicator">:</span> <span class="s">&quot;Fabian&#39;s</span><span class="nv"> </span><span class="s">Mood&quot;</span>
</span><span class='line'> <span class="l-Scalar-Plain">state_topic</span><span class="p-Indicator">:</span> <span class="s">&quot;home-assistant/fabian/mood&quot;</span>
</span><span class='line'> <span class="l-Scalar-Plain">unit_of_measurement</span><span class="p-Indicator">:</span> <span class="s">&quot;</span><span class="nv"> </span><span class="s">&quot;</span>
</span></code></pre></td></tr></table></div></figure>
<p>After a restart of Home Assistant the &ldquo;Mood&rdquo; sensor will show up in the frontend. For more details about the configuration of MQTT itself and the sensor, please refer to the <a href="https://home-assistant.io/components/mqtt.html">MQTT component</a> or the <a href="https://home-assistant.io/components/sensor.mqtt.html">MQTT sensor</a> documentation.</p>
<p>Now we can set the mood. The commandline tool (<code>mosquitto_pub</code>) which is shipped with <code>mosquitto</code> is used to send an MQTT message.</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class='bash'><span class='line'>mosquitto_pub -h 127.0.0.1 -t <span class="s2">&quot;home-assistant/fabian/mood&quot;</span> -m <span class="s2">&quot;bad&quot;</span>
</span></code></pre></td></tr></table></div></figure>
<p class='img'>
<img src='/images/blog/2015-09-mqtt/mood.png' />
The Mood sensor
</p>
<h3><a class='title-link' name='python-mqtt-bindings' href='#python-mqtt-bindings'></a> Python MQTT bindings</h3>
<p>The last section was pretty boring, I know. Nobody wants to send MQTT messages by hand if there is a computer on the desk. If you are playing the lottery this section is for you. If not, read it anyway because the lottery is just an example :-).</p>
<p>This example is using the <a href="https://eclipse.org/paho/clients/python/">Paho MQTT Python binding</a> because those binding should be available on the host where Home Assistant is running. If you want to use this example on another machine, please make sure that the bindings are installed (<code>pip3 install paho-mqtt</code>).</p>
<p>The first step is to add an additional MQTT sensor to the <code>configuration.yaml</code> file. The sensor will be called &ldquo;Lottery&rdquo;.</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
</pre></td><td class='code'><pre><code class='yaml'><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">platform</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">mqtt</span>
</span><span class='line'> <span class="l-Scalar-Plain">name</span><span class="p-Indicator">:</span> <span class="s">&quot;Lottery&quot;</span>
</span><span class='line'> <span class="l-Scalar-Plain">state_topic</span><span class="p-Indicator">:</span> <span class="s">&quot;home-assistant/lottery/number&quot;</span>
</span><span class='line'> <span class="l-Scalar-Plain">unit_of_measurement</span><span class="p-Indicator">:</span> <span class="s">&quot;</span><span class="nv"> </span><span class="s">&quot;</span>
</span></code></pre></td></tr></table></div></figure>
<p>Don&rsquo;t forget to restart Home Assistant to make the configuration active.</p>
<p>To play, we need numbers from 1 to 49 which can be marked on the ticket. Those numbers should be random and displayed in the Home Assistant frontend. The Python script below is another simple example on how to send MQTT messages from the commandline; this time in a loop. For further information and examples please check the <a href="https://eclipse.org/paho/clients/python/docs/">Paho MQTT</a> documentation.</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
<span class='line-number'>12</span>
<span class='line-number'>13</span>
<span class='line-number'>14</span>
<span class='line-number'>15</span>
<span class='line-number'>16</span>
<span class='line-number'>17</span>
<span class='line-number'>18</span>
<span class='line-number'>19</span>
<span class='line-number'>20</span>
<span class='line-number'>21</span>
<span class='line-number'>22</span>
</pre></td><td class='code'><pre><code class='python'><span class='line'><span class="c">#!/usr/bin/python3</span>
</span><span class='line'><span class="c">#</span>
</span><span class='line'><span class="kn">import</span> <span class="nn">time</span>
</span><span class='line'><span class="kn">import</span> <span class="nn">random</span>
</span><span class='line'><span class="kn">import</span> <span class="nn">paho.mqtt.client</span> <span class="kn">as</span> <span class="nn">mqtt</span>
</span><span class='line'><span class="kn">import</span> <span class="nn">paho.mqtt.publish</span> <span class="kn">as</span> <span class="nn">publish</span>
</span><span class='line'>
</span><span class='line'><span class="n">broker</span> <span class="o">=</span> <span class="s">&#39;127.0.0.1&#39;</span>
</span><span class='line'><span class="n">state_topic</span> <span class="o">=</span> <span class="s">&#39;home-assistant/lottery/number&#39;</span>
</span><span class='line'><span class="n">delay</span> <span class="o">=</span> <span class="mi">5</span>
</span><span class='line'>
</span><span class='line'><span class="c"># Send a single message to set the mood</span>
</span><span class='line'><span class="n">publish</span><span class="o">.</span><span class="n">single</span><span class="p">(</span><span class="s">&#39;home-assistant/fabian/mood&#39;</span><span class="p">,</span> <span class="s">&#39;good&#39;</span><span class="p">,</span> <span class="n">hostname</span><span class="o">=</span><span class="n">broker</span><span class="p">)</span>
</span><span class='line'>
</span><span class='line'><span class="c"># Send messages in a loop</span>
</span><span class='line'><span class="n">client</span> <span class="o">=</span> <span class="n">mqtt</span><span class="o">.</span><span class="n">Client</span><span class="p">(</span><span class="s">&quot;ha-client&quot;</span><span class="p">)</span>
</span><span class='line'><span class="n">client</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="n">broker</span><span class="p">)</span>
</span><span class='line'><span class="n">client</span><span class="o">.</span><span class="n">loop_start</span><span class="p">()</span>
</span><span class='line'>
</span><span class='line'><span class="k">while</span> <span class="bp">True</span><span class="p">:</span>
</span><span class='line'> <span class="n">client</span><span class="o">.</span><span class="n">publish</span><span class="p">(</span><span class="n">state_topic</span><span class="p">,</span> <span class="n">random</span><span class="o">.</span><span class="n">randrange</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">50</span><span class="p">,</span> <span class="mi">1</span><span class="p">))</span>
</span><span class='line'> <span class="n">time</span><span class="o">.</span><span class="n">sleep</span><span class="p">(</span><span class="n">delay</span><span class="p">)</span>
</span></code></pre></td></tr></table></div></figure>
<p>Every 5 seconds a message with a new number is sent to the broker and picked up by Home Assistant. By the way, my mood is much better now.</p>
<p class='img'>
<img src='/images/blog/2015-09-mqtt/lottery.png' />
The Lottery sensor
</p>
<p>With only a few lines of Python and an MQTT broker you can create your own &ldquo;smartdevice&rdquo; or send information to Home Assistant which you haven&rsquo;t think of. Of course this is not limited to Python. If there is an MQTT library available, the device can be used with Home Assistant now.</p>
<h3><a class='title-link' name='arduino' href='#arduino'></a> Arduino</h3>
<p>To get started with real hardware that is capable to send MQTT messages, the Arduino platform is an inexpensive way to do it. In this section an Arduino UNO with an Ethernet shield and a photo resistor is used. The photo resistor is connected to analog pin 0 (A0) and has an output from 0 to 1024.</p>
<p class='img'>
<img src='/images/blog/2015-09-mqtt/arduino-shield.png' />
The Arduino UNO with Ethernet shield and photo resistor
</p>
<p>The <a href="http://knolleary.github.io/pubsubclient/">MQTT client</a> for the Arduino needs to be available in your Arduino IDE. Below you will find a sketch which could act as a starting point. Please modify the IP addresses, the MAC address, and the pin as needed and upload the sketch to your Arduino.</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
<span class='line-number'>12</span>
<span class='line-number'>13</span>
<span class='line-number'>14</span>
<span class='line-number'>15</span>
<span class='line-number'>16</span>
<span class='line-number'>17</span>
<span class='line-number'>18</span>
<span class='line-number'>19</span>
<span class='line-number'>20</span>
<span class='line-number'>21</span>
<span class='line-number'>22</span>
<span class='line-number'>23</span>
<span class='line-number'>24</span>
<span class='line-number'>25</span>
<span class='line-number'>26</span>
<span class='line-number'>27</span>
<span class='line-number'>28</span>
<span class='line-number'>29</span>
<span class='line-number'>30</span>
<span class='line-number'>31</span>
<span class='line-number'>32</span>
<span class='line-number'>33</span>
<span class='line-number'>34</span>
<span class='line-number'>35</span>
<span class='line-number'>36</span>
<span class='line-number'>37</span>
<span class='line-number'>38</span>
<span class='line-number'>39</span>
<span class='line-number'>40</span>
<span class='line-number'>41</span>
<span class='line-number'>42</span>
<span class='line-number'>43</span>
<span class='line-number'>44</span>
<span class='line-number'>45</span>
<span class='line-number'>46</span>
<span class='line-number'>47</span>
<span class='line-number'>48</span>
<span class='line-number'>49</span>
<span class='line-number'>50</span>
<span class='line-number'>51</span>
<span class='line-number'>52</span>
<span class='line-number'>53</span>
<span class='line-number'>54</span>
<span class='line-number'>55</span>
<span class='line-number'>56</span>
<span class='line-number'>57</span>
<span class='line-number'>58</span>
<span class='line-number'>59</span>
<span class='line-number'>60</span>
<span class='line-number'>61</span>
<span class='line-number'>62</span>
<span class='line-number'>63</span>
<span class='line-number'>64</span>
<span class='line-number'>65</span>
<span class='line-number'>66</span>
<span class='line-number'>67</span>
<span class='line-number'>68</span>
</pre></td><td class='code'><pre><code class='c'><span class='line'><span class="cm">/*</span>
</span><span class='line'><span class="cm"> This sketch is based on the basic MQTT example by</span>
</span><span class='line'><span class="cm"> http://knolleary.github.io/pubsubclient/</span>
</span><span class='line'><span class="cm">*/</span>
</span><span class='line'>
</span><span class='line'><span class="cp">#include &lt;SPI.h&gt;</span>
</span><span class='line'><span class="cp">#include &lt;Ethernet.h&gt;</span>
</span><span class='line'><span class="cp">#include &lt;PubSubClient.h&gt;</span>
</span><span class='line'>
</span><span class='line'><span class="cp">#define DEBUG 1 </span><span class="c1">// Debug output to serial console</span>
</span><span class='line'>
</span><span class='line'><span class="c1">// Device settings</span>
</span><span class='line'><span class="n">IPAddress</span> <span class="nf">deviceIp</span><span class="p">(</span><span class="mi">192</span><span class="p">,</span> <span class="mi">168</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">43</span><span class="p">);</span>
</span><span class='line'><span class="n">byte</span> <span class="n">deviceMac</span><span class="p">[]</span> <span class="o">=</span> <span class="p">{</span> <span class="mh">0xAB</span><span class="p">,</span> <span class="mh">0xCD</span><span class="p">,</span> <span class="mh">0xFE</span><span class="p">,</span> <span class="mh">0xFE</span><span class="p">,</span> <span class="mh">0xFE</span><span class="p">,</span> <span class="mh">0xFE</span> <span class="p">};</span>
</span><span class='line'><span class="kt">char</span><span class="o">*</span> <span class="n">deviceId</span> <span class="o">=</span> <span class="s">&quot;sensor01&quot;</span><span class="p">;</span> <span class="c1">// Name of the sensor</span>
</span><span class='line'><span class="kt">char</span><span class="o">*</span> <span class="n">stateTopic</span> <span class="o">=</span> <span class="s">&quot;home-assistant/sensor01/brightness&quot;</span><span class="p">;</span> <span class="c1">// MQTT topic where values are published</span>
</span><span class='line'><span class="kt">int</span> <span class="n">sensorPin</span> <span class="o">=</span> <span class="n">A0</span><span class="p">;</span> <span class="c1">// Pin to which the sensor is connected to</span>
</span><span class='line'><span class="kt">char</span> <span class="n">buf</span><span class="p">[</span><span class="mi">4</span><span class="p">];</span> <span class="c1">// Buffer to store the sensor value</span>
</span><span class='line'><span class="kt">int</span> <span class="n">updateInterval</span> <span class="o">=</span> <span class="mi">1000</span><span class="p">;</span> <span class="c1">// Interval in miliseconds</span>
</span><span class='line'>
</span><span class='line'><span class="c1">// MQTT server settings</span>
</span><span class='line'><span class="n">IPAddress</span> <span class="nf">mqttServer</span><span class="p">(</span><span class="mi">192</span><span class="p">,</span> <span class="mi">168</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">12</span><span class="p">);</span>
</span><span class='line'><span class="kt">int</span> <span class="n">mqttPort</span> <span class="o">=</span> <span class="mi">1883</span><span class="p">;</span>
</span><span class='line'>
</span><span class='line'><span class="n">EthernetClient</span> <span class="n">ethClient</span><span class="p">;</span>
</span><span class='line'><span class="n">PubSubClient</span> <span class="nf">client</span><span class="p">(</span><span class="n">ethClient</span><span class="p">);</span>
</span><span class='line'>
</span><span class='line'><span class="kt">void</span> <span class="nf">reconnect</span><span class="p">()</span> <span class="p">{</span>
</span><span class='line'> <span class="k">while</span> <span class="p">(</span><span class="o">!</span><span class="n">client</span><span class="p">.</span><span class="n">connected</span><span class="p">())</span> <span class="p">{</span>
</span><span class='line'><span class="cp">#if DEBUG</span>
</span><span class='line'> <span class="n">Serial</span><span class="p">.</span><span class="n">print</span><span class="p">(</span><span class="s">&quot;Attempting MQTT connection...&quot;</span><span class="p">);</span>
</span><span class='line'><span class="cp">#endif</span>
</span><span class='line'> <span class="k">if</span> <span class="p">(</span><span class="n">client</span><span class="p">.</span><span class="n">connect</span><span class="p">(</span><span class="n">deviceId</span><span class="p">))</span> <span class="p">{</span>
</span><span class='line'><span class="cp">#if DEBUG</span>
</span><span class='line'> <span class="n">Serial</span><span class="p">.</span><span class="n">println</span><span class="p">(</span><span class="s">&quot;connected&quot;</span><span class="p">);</span>
</span><span class='line'><span class="cp">#endif</span>
</span><span class='line'> <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
</span><span class='line'><span class="cp">#if DEBUG</span>
</span><span class='line'> <span class="n">Serial</span><span class="p">.</span><span class="n">print</span><span class="p">(</span><span class="s">&quot;failed, rc=&quot;</span><span class="p">);</span>
</span><span class='line'> <span class="n">Serial</span><span class="p">.</span><span class="n">print</span><span class="p">(</span><span class="n">client</span><span class="p">.</span><span class="n">state</span><span class="p">());</span>
</span><span class='line'> <span class="n">Serial</span><span class="p">.</span><span class="n">println</span><span class="p">(</span><span class="s">&quot; try again in 5 seconds&quot;</span><span class="p">);</span>
</span><span class='line'><span class="cp">#endif</span>
</span><span class='line'> <span class="n">delay</span><span class="p">(</span><span class="mi">5000</span><span class="p">);</span>
</span><span class='line'> <span class="p">}</span>
</span><span class='line'> <span class="p">}</span>
</span><span class='line'><span class="p">}</span>
</span><span class='line'>
</span><span class='line'><span class="kt">void</span> <span class="nf">setup</span><span class="p">()</span> <span class="p">{</span>
</span><span class='line'> <span class="n">Serial</span><span class="p">.</span><span class="n">begin</span><span class="p">(</span><span class="mi">57600</span><span class="p">);</span>
</span><span class='line'> <span class="n">client</span><span class="p">.</span><span class="n">setServer</span><span class="p">(</span><span class="n">mqttServer</span><span class="p">,</span> <span class="n">mqttPort</span><span class="p">);</span>
</span><span class='line'> <span class="n">Ethernet</span><span class="p">.</span><span class="n">begin</span><span class="p">(</span><span class="n">deviceMac</span><span class="p">,</span> <span class="n">deviceIp</span><span class="p">);</span>
</span><span class='line'> <span class="n">delay</span><span class="p">(</span><span class="mi">1500</span><span class="p">);</span>
</span><span class='line'><span class="p">}</span>
</span><span class='line'>
</span><span class='line'><span class="kt">void</span> <span class="nf">loop</span><span class="p">()</span> <span class="p">{</span>
</span><span class='line'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="n">client</span><span class="p">.</span><span class="n">connected</span><span class="p">())</span> <span class="p">{</span>
</span><span class='line'> <span class="n">reconnect</span><span class="p">();</span>
</span><span class='line'> <span class="p">}</span>
</span><span class='line'> <span class="n">client</span><span class="p">.</span><span class="n">loop</span><span class="p">();</span>
</span><span class='line'>
</span><span class='line'> <span class="kt">int</span> <span class="n">sensorValue</span> <span class="o">=</span> <span class="n">analogRead</span><span class="p">(</span><span class="n">sensorPin</span><span class="p">);</span>
</span><span class='line'><span class="cp">#if DEBUG</span>
</span><span class='line'> <span class="n">Serial</span><span class="p">.</span><span class="n">print</span><span class="p">(</span><span class="s">&quot;Sensor value: &quot;</span><span class="p">);</span>
</span><span class='line'> <span class="n">Serial</span><span class="p">.</span><span class="n">println</span><span class="p">(</span><span class="n">sensorValue</span><span class="p">);</span>
</span><span class='line'><span class="cp">#endif</span>
</span><span class='line'> <span class="n">client</span><span class="p">.</span><span class="n">publish</span><span class="p">(</span><span class="n">stateTopic</span><span class="p">,</span> <span class="n">itoa</span><span class="p">(</span><span class="n">sensorValue</span><span class="p">,</span> <span class="n">buf</span><span class="p">,</span> <span class="mi">10</span><span class="p">));</span>
</span><span class='line'> <span class="n">delay</span><span class="p">(</span><span class="n">updateInterval</span><span class="p">);</span>
</span><span class='line'><span class="p">}</span>
</span></code></pre></td></tr></table></div></figure>
<p>The Arduino will send the value of the sensor every second. To use the data in Home Assistant, add an additional MQTT sensor to the <code>configuration.yaml</code> file.</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
</pre></td><td class='code'><pre><code class='yaml'><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">platform</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">mqtt</span>
</span><span class='line'> <span class="l-Scalar-Plain">name</span><span class="p-Indicator">:</span> <span class="s">&quot;Brightness&quot;</span>
</span><span class='line'> <span class="l-Scalar-Plain">state_topic</span><span class="p-Indicator">:</span> <span class="s">&quot;home-assistant/sensor01/brightness&quot;</span>
</span><span class='line'> <span class="l-Scalar-Plain">unit_of_measurement</span><span class="p-Indicator">:</span> <span class="s">&quot;</span><span class="nv"> </span><span class="s">&quot;</span>
</span></code></pre></td></tr></table></div></figure>
<p>After a restart of Home Assistant the values of your Arduino will be available.</p>
<p class='img'>
<img src='/images/blog/2015-09-mqtt/arduino.png' />
The Brightness sensor
</p>
<p>I hope that this post could give you some ideas about the usage Home Assistant and MQTT. If you are working on a cool project that includes Home Assistant, please let us now.</p>
</article>
<section id="disqus">
<h3 class="indent title">Comments</h3>
<div id="disqus_thread" aria-live="polite"><noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
</div>
</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/09/11/different-ways-to-use-mqtt-with-home-assistant/"
data-counturl="https://home-assistant.io/blog/2015/09/11/different-ways-to-use-mqtt-with-home-assistant/" >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/09/11/different-ways-to-use-mqtt-with-home-assistant/"
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/08/31/version-7-revamped-ui-and-improved-distribution/">0.7: Better UI and improved distribution</a>
</li>
<li class="post">
<a href="/blog/2015/08/26/laundry-automation-with-moteino-mqtt-and-home-assistant/">Laundry Automation: insight and notifications</a>
</li>
<li class="post">
<a href="/blog/2015/08/17/verisure-and-modern-tp-link-router-support/">Verisure devices and modern TP-Link routers now supported</a>
</li>
<li class="post">
<a href="/blog/2015/08/09/mqtt-raspberry-pi-squeezebox-asuswrt-support/">MQTT, Rasperry PI, Logitech Squeezebox and ASUSWRT routers now supported</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://octopress.org">Octopress</a>, <a href='http://jekyllrb.com/'>Jekyll</a> and the <a href='https://github.com/coogie/oscailte'>Oscalite theme</a>. Hosted by <a href='https://pages.github.com/'>GitHub</a> and served by <a href='https://cloudflare.com'>CloudFlare</a>.</span>
</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/09/11/different-ways-to-use-mqtt-with-home-assistant/';
var disqus_url = 'https://home-assistant.io/blog/2015/09/11/different-ways-to-use-mqtt-with-home-assistant/';
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

@ -22,7 +22,7 @@
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/blog/archives/">
<meta property="og:type" content="website">
<meta property="og:description" content="Blog Index 2015 Aug 31 0.7: Better UI and improved distribution user-stories Aug 26 Laundry Automation: insight and notifications user-stories Aug 17 Verisure devices and modern TP-Link routers now &hellip;">
<meta property="og:description" content="Blog Index 2015 Sep 11 Using MQTT with Home Assistant how-to Aug 31 0.7: Better UI and improved distribution user-stories Aug 26 Laundry Automation: insight and notifications user-stories Aug 17 &hellip;">
<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 +114,43 @@
<article>
<div class="grid">
<div class="grid__item one-fifth palm-one-whole">
<time datetime="2015-09-11T02:19:38-07:00" pubdate>
<span class='month'>Sep</span> <span class='day'>11</span>
</time>
</div>
<div class="grid__item four-fifths palm-one-whole">
<h1 class="gamma"><a href="/blog/2015/09/11/different-ways-to-use-mqtt-with-home-assistant/">Using MQTT with Home Assistant</a></h1>
<footer class="meta">
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
<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">
<div class="grid__item one-fifth palm-one-whole">
@ -951,6 +988,12 @@
<ul class="divided">
<li class="post">
<a href="/blog/2015/09/11/different-ways-to-use-mqtt-with-home-assistant/">Using MQTT with Home Assistant</a>
</li>
<li class="post">
<a href="/blog/2015/08/31/version-7-revamped-ui-and-improved-distribution/">0.7: Better UI and improved distribution</a>
</li>
@ -974,12 +1017,6 @@
</li>
<li class="post">
<a href="/blog/2015/07/11/ip-cameras-arduino-kodi-efergy-support/">IP Cameras, Arduinos, Kodi and Efergy Energy Monitors now supported</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-09-10T12:38:32-07:00</updated>
<updated>2015-09-11T09:24:25-07:00</updated>
<id>https://home-assistant.io/</id>
<author>
<name><![CDATA[Paulus Schoutsen]]></name>

View file

@ -206,6 +206,12 @@
<ul class="divided">
<li class="post">
<a href="/blog/2015/09/11/different-ways-to-use-mqtt-with-home-assistant/">Using MQTT with Home Assistant</a>
</li>
<li class="post">
<a href="/blog/2015/08/31/version-7-revamped-ui-and-improved-distribution/">0.7: Better UI and improved distribution</a>
</li>
@ -229,12 +235,6 @@
</li>
<li class="post">
<a href="/blog/2015/07/11/ip-cameras-arduino-kodi-efergy-support/">IP Cameras, Arduinos, Kodi and Efergy Energy Monitors now supported</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-09-10T12:38:32-07:00</updated>
<updated>2015-09-11T09:24:25-07:00</updated>
<id>https://home-assistant.io/</id>
<author>
<name><![CDATA[Paulus Schoutsen]]></name>

View file

@ -206,6 +206,12 @@
<ul class="divided">
<li class="post">
<a href="/blog/2015/09/11/different-ways-to-use-mqtt-with-home-assistant/">Using MQTT with Home Assistant</a>
</li>
<li class="post">
<a href="/blog/2015/08/31/version-7-revamped-ui-and-improved-distribution/">0.7: Better UI and improved distribution</a>
</li>
@ -229,12 +235,6 @@
</li>
<li class="post">
<a href="/blog/2015/07/11/ip-cameras-arduino-kodi-efergy-support/">IP Cameras, Arduinos, Kodi and Efergy Energy Monitors now supported</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-09-10T12:38:32-07:00</updated>
<updated>2015-09-11T09:24:25-07:00</updated>
<id>https://home-assistant.io/</id>
<author>
<name><![CDATA[Paulus Schoutsen]]></name>

View file

@ -319,6 +319,12 @@
<ul class="divided">
<li class="post">
<a href="/blog/2015/09/11/different-ways-to-use-mqtt-with-home-assistant/">Using MQTT with Home Assistant</a>
</li>
<li class="post">
<a href="/blog/2015/08/31/version-7-revamped-ui-and-improved-distribution/">0.7: Better UI and improved distribution</a>
</li>
@ -342,12 +348,6 @@
</li>
<li class="post">
<a href="/blog/2015/07/11/ip-cameras-arduino-kodi-efergy-support/">IP Cameras, Arduinos, Kodi and Efergy Energy Monitors now supported</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-09-10T12:38:32-07:00</updated>
<updated>2015-09-11T09:24:25-07:00</updated>
<id>https://home-assistant.io/</id>
<author>
<name><![CDATA[Paulus Schoutsen]]></name>

View file

@ -243,6 +243,12 @@
<ul class="divided">
<li class="post">
<a href="/blog/2015/09/11/different-ways-to-use-mqtt-with-home-assistant/">Using MQTT with Home Assistant</a>
</li>
<li class="post">
<a href="/blog/2015/08/31/version-7-revamped-ui-and-improved-distribution/">0.7: Better UI and improved distribution</a>
</li>
@ -266,12 +272,6 @@
</li>
<li class="post">
<a href="/blog/2015/07/11/ip-cameras-arduino-kodi-efergy-support/">IP Cameras, Arduinos, Kodi and Efergy Energy Monitors now supported</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-09-10T12:38:32-07:00</updated>
<updated>2015-09-11T09:24:25-07:00</updated>
<id>https://home-assistant.io/</id>
<author>
<name><![CDATA[Paulus Schoutsen]]></name>

View file

@ -245,6 +245,12 @@
<ul class="divided">
<li class="post">
<a href="/blog/2015/09/11/different-ways-to-use-mqtt-with-home-assistant/">Using MQTT with Home Assistant</a>
</li>
<li class="post">
<a href="/blog/2015/08/31/version-7-revamped-ui-and-improved-distribution/">0.7: Better UI and improved distribution</a>
</li>
@ -268,12 +274,6 @@
</li>
<li class="post">
<a href="/blog/2015/07/11/ip-cameras-arduino-kodi-efergy-support/">IP Cameras, Arduinos, Kodi and Efergy Energy Monitors now supported</a>
</li>
</ul>
</section>

View file

@ -0,0 +1,212 @@
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<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-09-11T09:24:25-07:00</updated>
<id>https://home-assistant.io/</id>
<author>
<name><![CDATA[Paulus Schoutsen]]></name>
</author>
<generator uri="http://octopress.org/">Octopress</generator>
<entry>
<title type="html"><![CDATA[Using MQTT with Home Assistant]]></title>
<link href="https://home-assistant.io/blog/2015/09/11/different-ways-to-use-mqtt-with-home-assistant/"/>
<updated>2015-09-11T02:19:38-07:00</updated>
<id>https://home-assistant.io/blog/2015/09/11/different-ways-to-use-mqtt-with-home-assistant</id>
<content type="html"><![CDATA[<p><img src='https://home-assistant.io/images/supported_brands/mqtt.png' style='border:none; box-shadow: none; float: right;' height='80' />
The <a href="https://en.wikipedia.org/wiki/MQTT">MQTT</a> support was added to Home Assistant recently. The <a href="https://home-assistant.io/components/mqtt.html">MQTT component</a> will enable you to do all sort of things. Most likely you will use it to communicate with your devices. But Home Assistant doesn&rsquo;t care where the data is coming from or is limited to real hardware as long as there is MQTT support. This means that it doesn&rsquo;t matter if the data is coming from a human, a web service, or a device.</p>
<p>A great example is shown in a <a href="https://home-assistant.io/blog/2015/08/26/laundry-automation-with-moteino-mqtt-and-home-assistant/">Laundry Automation</a> post in this blog.</p>
<p>This post will give you a small overview of some other possibilities on how to use MQTT with Home Assistant.</p>
<!--more-->
<h3><a class='title-link' name='manual-usage' href='#manual-usage'></a> Manual usage </h3>
<p>The simplest but not the coolest way as a human to interact with a Home Assistant sensor is launching a command manually. Let&rsquo;s create a &ldquo;Mood&rdquo; sensor. For simplicity Home Assistant and the MQTT broker are both running on the same host. The needed configuration snipplets to add to the <code>configuration.yaml</code> file consists of two parts: one for the broker and one for the sensor.</p>
<pre><code class="yaml">mqtt:
broker: 127.0.0.1
sensor:
- platform: mqtt
name: "Fabian's Mood"
state_topic: "home-assistant/fabian/mood"
unit_of_measurement: " "
</code></pre>
<p>After a restart of Home Assistant the &ldquo;Mood&rdquo; sensor will show up in the frontend. For more details about the configuration of MQTT itself and the sensor, please refer to the <a href="https://home-assistant.io/components/mqtt.html">MQTT component</a> or the <a href="https://home-assistant.io/components/sensor.mqtt.html">MQTT sensor</a> documentation.</p>
<p>Now we can set the mood. The commandline tool (<code>mosquitto_pub</code>) which is shipped with <code>mosquitto</code> is used to send an MQTT message.</p>
<pre><code class="bash">mosquitto_pub -h 127.0.0.1 -t "home-assistant/fabian/mood" -m "bad"
</code></pre>
<p class='img'>
<img src='https://home-assistant.io/images/blog/2015-09-mqtt/mood.png' />
The Mood sensor
</p>
<h3><a class='title-link' name='python-mqtt-bindings' href='#python-mqtt-bindings'></a> Python MQTT bindings </h3>
<p>The last section was pretty boring, I know. Nobody wants to send MQTT messages by hand if there is a computer on the desk. If you are playing the lottery this section is for you. If not, read it anyway because the lottery is just an example :-).</p>
<p>This example is using the <a href="https://eclipse.org/paho/clients/python/">Paho MQTT Python binding</a> because those binding should be available on the host where Home Assistant is running. If you want to use this example on another machine, please make sure that the bindings are installed (<code>pip3 install paho-mqtt</code>).</p>
<p>The first step is to add an additional MQTT sensor to the <code>configuration.yaml</code> file. The sensor will be called &ldquo;Lottery&rdquo;.</p>
<pre><code class="yaml"> - platform: mqtt
name: "Lottery"
state_topic: "home-assistant/lottery/number"
unit_of_measurement: " "
</code></pre>
<p>Don&rsquo;t forget to restart Home Assistant to make the configuration active.</p>
<p>To play, we need numbers from 1 to 49 which can be marked on the ticket. Those numbers should be random and displayed in the Home Assistant frontend. The Python script below is another simple example on how to send MQTT messages from the commandline; this time in a loop. For further information and examples please check the <a href="https://eclipse.org/paho/clients/python/docs/">Paho MQTT</a> documentation.</p>
<pre><code class="python">#!/usr/bin/python3
#
import time
import random
import paho.mqtt.client as mqtt
import paho.mqtt.publish as publish
broker = '127.0.0.1'
state_topic = 'home-assistant/lottery/number'
delay = 5
# Send a single message to set the mood
publish.single('home-assistant/fabian/mood', 'good', hostname=broker)
# Send messages in a loop
client = mqtt.Client("ha-client")
client.connect(broker)
client.loop_start()
while True:
client.publish(state_topic, random.randrange(0, 50, 1))
time.sleep(delay)
</code></pre>
<p>Every 5 seconds a message with a new number is sent to the broker and picked up by Home Assistant. By the way, my mood is much better now.</p>
<p class='img'>
<img src='https://home-assistant.io/images/blog/2015-09-mqtt/lottery.png' />
The Lottery sensor
</p>
<p>With only a few lines of Python and an MQTT broker you can create your own &ldquo;smartdevice&rdquo; or send information to Home Assistant which you haven&rsquo;t think of. Of course this is not limited to Python. If there is an MQTT library available, the device can be used with Home Assistant now.</p>
<h3><a class='title-link' name='arduino' href='#arduino'></a> Arduino </h3>
<p>To get started with real hardware that is capable to send MQTT messages, the Arduino platform is an inexpensive way to do it. In this section an Arduino UNO with an Ethernet shield and a photo resistor is used. The photo resistor is connected to analog pin 0 (A0) and has an output from 0 to 1024.</p>
<p class='img'>
<img src='https://home-assistant.io/images/blog/2015-09-mqtt/arduino-shield.png' />
The Arduino UNO with Ethernet shield and photo resistor
</p>
<p>The <a href="http://knolleary.github.io/pubsubclient/">MQTT client</a> for the Arduino needs to be available in your Arduino IDE. Below you will find a sketch which could act as a starting point. Please modify the IP addresses, the MAC address, and the pin as needed and upload the sketch to your Arduino.</p>
<pre><code class="c">/*
This sketch is based on the basic MQTT example by
http://knolleary.github.io/pubsubclient/
*/
#include &lt;SPI.h&gt;
#include &lt;Ethernet.h&gt;
#include &lt;PubSubClient.h&gt;
#define DEBUG 1 // Debug output to serial console
// Device settings
IPAddress deviceIp(192, 168, 0, 43);
byte deviceMac[] = { 0xAB, 0xCD, 0xFE, 0xFE, 0xFE, 0xFE };
char* deviceId = "sensor01"; // Name of the sensor
char* stateTopic = "home-assistant/sensor01/brightness"; // MQTT topic where values are published
int sensorPin = A0; // Pin to which the sensor is connected to
char buf[4]; // Buffer to store the sensor value
int updateInterval = 1000; // Interval in miliseconds
// MQTT server settings
IPAddress mqttServer(192, 168, 0, 12);
int mqttPort = 1883;
EthernetClient ethClient;
PubSubClient client(ethClient);
void reconnect() {
while (!client.connected()) {
#if DEBUG
Serial.print("Attempting MQTT connection...");
#endif
if (client.connect(deviceId)) {
#if DEBUG
Serial.println("connected");
#endif
} else {
#if DEBUG
Serial.print("failed, rc=");
Serial.print(client.state());
Serial.println(" try again in 5 seconds");
#endif
delay(5000);
}
}
}
void setup() {
Serial.begin(57600);
client.setServer(mqttServer, mqttPort);
Ethernet.begin(deviceMac, deviceIp);
delay(1500);
}
void loop() {
if (!client.connected()) {
reconnect();
}
client.loop();
int sensorValue = analogRead(sensorPin);
#if DEBUG
Serial.print("Sensor value: ");
Serial.println(sensorValue);
#endif
client.publish(stateTopic, itoa(sensorValue, buf, 10));
delay(updateInterval);
}
</code></pre>
<p>The Arduino will send the value of the sensor every second. To use the data in Home Assistant, add an additional MQTT sensor to the <code>configuration.yaml</code> file.</p>
<pre><code class="yaml"> - platform: mqtt
name: "Brightness"
state_topic: "home-assistant/sensor01/brightness"
unit_of_measurement: " "
</code></pre>
<p>After a restart of Home Assistant the values of your Arduino will be available.</p>
<p class='img'>
<img src='https://home-assistant.io/images/blog/2015-09-mqtt/arduino.png' />
The Brightness sensor
</p>
<p>I hope that this post could give you some ideas about the usage Home Assistant and MQTT. If you are working on a cool project that includes Home Assistant, please let us now.</p>
]]></content>
</entry>
</feed>

View file

@ -0,0 +1,302 @@
<!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>Category: how-to - Home Assistant</title>
<meta name="author" content="Paulus Schoutsen">
<meta name="description" content="Category: how-to">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="Category: how-to">
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/blog/categories/how-to/">
<meta property="og:type" content="website">
<meta property="og:description" content="Category: 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">
<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.html'>Initial configuration</a></li>
<li><a href='/components/'>Component overview</a></li>
<li><a href='/getting-started/android.html'>Setting up Android</a></li>
</ul>
</li>
<li>
<a href="/developers/">Developers</a>
<ul>
<li><a href="/developers/architecture.html">Architecture</a></li>
<li><a href="/developers/frontend.html">Frontend development</a></li>
<li><a href="/developers/creating_components.html">
Creating components
</a></li>
<li><a href="/developers/add_new_platform.html">
Adding platform support
</a></li>
<li><a href="/developers/api.html">API</a></li>
<li><a href="/developers/credits.html">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">
Category: How-to
</h1>
</header>
<hr class="divider">
<div id="archive-list">
<h2>2015</h2>
<article>
<div class="grid">
<div class="grid__item one-fifth palm-one-whole">
<time datetime="2015-09-11T02:19:38-07:00" pubdate>
<span class='month'>Sep</span> <span class='day'>11</span>
</time>
</div>
<div class="grid__item four-fifths palm-one-whole">
<h1 class="gamma"><a href="/blog/2015/09/11/different-ways-to-use-mqtt-with-home-assistant/">Using MQTT with Home Assistant</a></h1>
<footer class="meta">
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
<li><a class='category' href='/blog/categories/how-to/'>how-to</a></li>
</ul>
</span>
</footer>
<hr class="divider">
</div>
</div>
</article>
</div>
</article>
</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/categories/how-to/index.html"
data-counturl="https://home-assistant.io/blog/categories/how-to/index.html" >Tweet</a>
<div class="g-plusone" data-size="standard"></div>
<div class="fb-share-button" style='top: -6px;'
data-href="https://home-assistant.io/blog/categories/how-to/index.html"
data-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/09/11/different-ways-to-use-mqtt-with-home-assistant/">Using MQTT with Home Assistant</a>
</li>
<li class="post">
<a href="/blog/2015/08/31/version-7-revamped-ui-and-improved-distribution/">0.7: Better UI and improved distribution</a>
</li>
<li class="post">
<a href="/blog/2015/08/26/laundry-automation-with-moteino-mqtt-and-home-assistant/">Laundry Automation: insight and notifications</a>
</li>
<li class="post">
<a href="/blog/2015/08/17/verisure-and-modern-tp-link-router-support/">Verisure devices and modern TP-Link routers now supported</a>
</li>
<li class="post">
<a href="/blog/2015/08/09/mqtt-raspberry-pi-squeezebox-asuswrt-support/">MQTT, Rasperry PI, Logitech Squeezebox and ASUSWRT routers now supported</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://octopress.org">Octopress</a>, <a href='http://jekyllrb.com/'>Jekyll</a> and the <a href='https://github.com/coogie/oscailte'>Oscalite theme</a>. Hosted by <a href='https://pages.github.com/'>GitHub</a> and served by <a href='https://cloudflare.com'>CloudFlare</a>.</span>
</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_script = 'count.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

@ -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-09-10T12:38:32-07:00</updated>
<updated>2015-09-11T09:24:25-07:00</updated>
<id>https://home-assistant.io/</id>
<author>
<name><![CDATA[Paulus Schoutsen]]></name>

View file

@ -502,6 +502,12 @@
<ul class="divided">
<li class="post">
<a href="/blog/2015/09/11/different-ways-to-use-mqtt-with-home-assistant/">Using MQTT with Home Assistant</a>
</li>
<li class="post">
<a href="/blog/2015/08/31/version-7-revamped-ui-and-improved-distribution/">0.7: Better UI and improved distribution</a>
</li>
@ -525,12 +531,6 @@
</li>
<li class="post">
<a href="/blog/2015/07/11/ip-cameras-arduino-kodi-efergy-support/">IP Cameras, Arduinos, Kodi and Efergy Energy Monitors now supported</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-09-10T12:38:32-07:00</updated>
<updated>2015-09-11T09:24:25-07:00</updated>
<id>https://home-assistant.io/</id>
<author>
<name><![CDATA[Paulus Schoutsen]]></name>

View file

@ -243,6 +243,12 @@
<ul class="divided">
<li class="post">
<a href="/blog/2015/09/11/different-ways-to-use-mqtt-with-home-assistant/">Using MQTT with Home Assistant</a>
</li>
<li class="post">
<a href="/blog/2015/08/31/version-7-revamped-ui-and-improved-distribution/">0.7: Better UI and improved distribution</a>
</li>
@ -266,12 +272,6 @@
</li>
<li class="post">
<a href="/blog/2015/07/11/ip-cameras-arduino-kodi-efergy-support/">IP Cameras, Arduinos, Kodi and Efergy Energy Monitors now supported</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-09-10T12:38:32-07:00</updated>
<updated>2015-09-11T09:24:25-07:00</updated>
<id>https://home-assistant.io/</id>
<author>
<name><![CDATA[Paulus Schoutsen]]></name>

View file

@ -206,6 +206,12 @@
<ul class="divided">
<li class="post">
<a href="/blog/2015/09/11/different-ways-to-use-mqtt-with-home-assistant/">Using MQTT with Home Assistant</a>
</li>
<li class="post">
<a href="/blog/2015/08/31/version-7-revamped-ui-and-improved-distribution/">0.7: Better UI and improved distribution</a>
</li>
@ -229,12 +235,6 @@
</li>
<li class="post">
<a href="/blog/2015/07/11/ip-cameras-arduino-kodi-efergy-support/">IP Cameras, Arduinos, Kodi and Efergy Energy Monitors now supported</a>
</li>
</ul>
</section>

View file

@ -22,7 +22,7 @@
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/blog/">
<meta property="og:type" content="website">
<meta property="og:description" content="0.7: Better UI and improved distribution August 31, 2015 Paulus Schoutsen four minutes reading time user-stories Comments As Home Assistant is gaining more and more users we started to feel the pain &hellip;">
<meta property="og:description" content="Using MQTT with Home Assistant September 11, 2015 Fabian Affolter 10 minutes reading time how-to Comments The MQTT support was added to Home Assistant recently. The MQTT component will enable you to &hellip;">
<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">
@ -96,6 +96,76 @@
<article class="listing">
<header>
<h1 class="beta">
<a href="/blog/2015/09/11/different-ways-to-use-mqtt-with-home-assistant/">Using MQTT with Home Assistant</a>
</h1>
<div class="meta clearfix">
<time datetime="2015-09-11T02:19:38-07:00" pubdate data-updated="true"><i class="icon-calendar"></i> September 11, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Fabian Affolter</span>
<span><i class='icon-time'></i> 10 minutes reading time</span>
<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/09/11/different-ways-to-use-mqtt-with-home-assistant/#disqus_thread"
>Comments</a>
</div>
</header>
<div class="entry-content clearfix">
<p><img src='/images/supported_brands/mqtt.png' style='border:none; box-shadow: none; float: right;' height='80' />
The <a href="https://en.wikipedia.org/wiki/MQTT">MQTT</a> support was added to Home Assistant recently. The <a href="https://home-assistant.io/components/mqtt.html">MQTT component</a> will enable you to do all sort of things. Most likely you will use it to communicate with your devices. But Home Assistant doesn&rsquo;t care where the data is coming from or is limited to real hardware as long as there is MQTT support. This means that it doesn&rsquo;t matter if the data is coming from a human, a web service, or a device.</p>
<p>A great example is shown in a <a href="https://home-assistant.io/blog/2015/08/26/laundry-automation-with-moteino-mqtt-and-home-assistant/">Laundry Automation</a> post in this blog.</p>
<p>This post will give you a small overview of some other possibilities on how to use MQTT with Home Assistant.</p>
<a class="btn pull-right" href="/blog/2015/09/11/different-ways-to-use-mqtt-with-home-assistant/#read-more">Read on &rarr;</a>
</div>
</article>
<hr>
<article class="listing">
<header>
@ -913,113 +983,6 @@ I (Paulus) have added a logbook component. The logbook component provides a diff
</article>
<hr>
<article class="listing">
<header>
<h1 class="beta">
<a href="/blog/2015/03/22/release-notes/">Release notes for March 22, 2015</a>
</h1>
<div class="meta clearfix">
<time datetime="2015-03-22T00:21:00-08:00" pubdate data-updated="true"><i class="icon-calendar"></i> March 22, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<span><i class='icon-time'></i> three minutes reading time</span>
<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/03/22/release-notes/#disqus_thread"
>Comments</a>
</div>
</header>
<div class="entry-content clearfix">
<p>A new version of Home Assistant has just been pushed out. It contains bugfixes contributed by <a href="https://github.com/jamespcole">jamespcole</a>, <a href="https://github.com/andythigpen">andythigpen</a>, <a href="https://github.com/trainman419">trainman419</a> and <a href="https://github.com/balloob">me</a>. It also adds a bunch of great new features:</p>
<p><strong>Script</strong><br>
Andythigpen has contributed a script component. This allows users to create a sequence of service calls and delays. Scripts can be started using the service <code>script/turn_on</code> and interrupted using the service <code>script/turn_off</code>. A separate page has been added to the frontend to see the status of your scripts.</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
<span class='line-number'>12</span>
<span class='line-number'>13</span>
<span class='line-number'>14</span>
<span class='line-number'>15</span>
<span class='line-number'>16</span>
<span class='line-number'>17</span>
</pre></td><td class='code'><pre><code class='yaml'><span class='line'><span class="c1"># Example configuration.yaml entry</span>
</span><span class='line'><span class="l-Scalar-Plain">script</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="c1"># Turns on the bedroom lights and then the living room lights 1 minute later</span>
</span><span class='line'> <span class="l-Scalar-Plain">wakeup</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">alias</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">Wake Up</span>
</span><span class='line'> <span class="l-Scalar-Plain">sequence</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">alias</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">Bedroom lights on</span>
</span><span class='line'> <span class="l-Scalar-Plain">execute_service</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">light.turn_on</span>
</span><span class='line'> <span class="l-Scalar-Plain">service_data</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">entity_id</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">group.bedroom</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">delay</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="c1"># supports seconds, milliseconds, minutes, hours, etc.</span>
</span><span class='line'> <span class="l-Scalar-Plain">minutes</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">1</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">alias</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">Living room lights on</span>
</span><span class='line'> <span class="l-Scalar-Plain">execute_service</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">light.turn_on</span>
</span><span class='line'> <span class="l-Scalar-Plain">service_data</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">entity_id</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">group.living_room</span>
</span></code></pre></td></tr></table></div></figure>
<a class="btn pull-right" href="/blog/2015/03/22/release-notes/#read-more">Read on &rarr;</a>
</div>
</article>
<hr>
<div class="pagination">

View file

@ -22,7 +22,7 @@
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/blog/posts/2/">
<meta property="og:type" content="website">
<meta property="og:description" content="Release notes for March 11, 2015 March 11, 2015 Paulus Schoutsen two minutes reading time release-notes Comments It has only been a little over a week since Theodor introduced YAML support for Home &hellip;">
<meta property="og:description" content="Release notes for March 22, 2015 March 22, 2015 Paulus Schoutsen three minutes reading time release-notes Comments A new version of Home Assistant has just been pushed out. It contains bugfixes &hellip;">
<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">
@ -96,6 +96,113 @@
<article class="listing">
<header>
<h1 class="beta">
<a href="/blog/2015/03/22/release-notes/">Release notes for March 22, 2015</a>
</h1>
<div class="meta clearfix">
<time datetime="2015-03-22T00:21:00-08:00" pubdate data-updated="true"><i class="icon-calendar"></i> March 22, 2015</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<span><i class='icon-time'></i> three minutes reading time</span>
<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/03/22/release-notes/#disqus_thread"
>Comments</a>
</div>
</header>
<div class="entry-content clearfix">
<p>A new version of Home Assistant has just been pushed out. It contains bugfixes contributed by <a href="https://github.com/jamespcole">jamespcole</a>, <a href="https://github.com/andythigpen">andythigpen</a>, <a href="https://github.com/trainman419">trainman419</a> and <a href="https://github.com/balloob">me</a>. It also adds a bunch of great new features:</p>
<p><strong>Script</strong><br>
Andythigpen has contributed a script component. This allows users to create a sequence of service calls and delays. Scripts can be started using the service <code>script/turn_on</code> and interrupted using the service <code>script/turn_off</code>. A separate page has been added to the frontend to see the status of your scripts.</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
<span class='line-number'>12</span>
<span class='line-number'>13</span>
<span class='line-number'>14</span>
<span class='line-number'>15</span>
<span class='line-number'>16</span>
<span class='line-number'>17</span>
</pre></td><td class='code'><pre><code class='yaml'><span class='line'><span class="c1"># Example configuration.yaml entry</span>
</span><span class='line'><span class="l-Scalar-Plain">script</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="c1"># Turns on the bedroom lights and then the living room lights 1 minute later</span>
</span><span class='line'> <span class="l-Scalar-Plain">wakeup</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">alias</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">Wake Up</span>
</span><span class='line'> <span class="l-Scalar-Plain">sequence</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">alias</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">Bedroom lights on</span>
</span><span class='line'> <span class="l-Scalar-Plain">execute_service</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">light.turn_on</span>
</span><span class='line'> <span class="l-Scalar-Plain">service_data</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">entity_id</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">group.bedroom</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">delay</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="c1"># supports seconds, milliseconds, minutes, hours, etc.</span>
</span><span class='line'> <span class="l-Scalar-Plain">minutes</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">1</span>
</span><span class='line'> <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">alias</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">Living room lights on</span>
</span><span class='line'> <span class="l-Scalar-Plain">execute_service</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">light.turn_on</span>
</span><span class='line'> <span class="l-Scalar-Plain">service_data</span><span class="p-Indicator">:</span>
</span><span class='line'> <span class="l-Scalar-Plain">entity_id</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">group.living_room</span>
</span></code></pre></td></tr></table></div></figure>
<a class="btn pull-right" href="/blog/2015/03/22/release-notes/#read-more">Read on &rarr;</a>
</div>
</article>
<hr>
<article class="listing">
<header>
@ -827,87 +934,6 @@ Home Assistant now supports <code>--open-ui</code> and <code>--demo-mode</code>
</article>
<hr>
<article class="listing">
<header>
<h1 class="beta">
<a href="/blog/2014/12/26/home-control-home-automation-and-the-smart-home/">Home Control, Automation &amp; the Smart Home</a>
</h1>
<div class="meta clearfix">
<time datetime="2014-12-26T10:23:13-08:00" pubdate data-updated="true"><i class="icon-calendar"></i> December 26, 2014</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<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/architecture/'>architecture</a></li>
</ul>
</span>
<a class='comments'
href="/blog/2014/12/26/home-control-home-automation-and-the-smart-home/#disqus_thread"
>Comments</a>
</div>
</header>
<div class="entry-content clearfix">
<p>The internet has been buzzing over the last year about home automation. A lot of different terms fly around like the internet of things, home automation and the smart home.
This article will try to explain how they all relate.</p>
<p>The first thing to introduce is the <strong>Internet of Things</strong> (IoT). This refers to a new generation of devices that cannot only be controlled by humans via buttons or remotes but also provide an interface to communicate with other devices and applications. For example, an IoT-capable coffee machine could receive commands to create different types of coffee and be able to broadcast the amount of water left in its resevoir.</p>
<p>There is no widely adopted open standard for smart device communication. This prevents a lot of devices to communicate with one another. And even if they could, most devices are not designed to manage other devices. To solve this we need a device to be able to communicate with and manage all these connected devices. This device is called a <strong>hub</strong>.</p>
<p>As a bare minimum a hub has to keep track of the state of each device and should be able to control them if possible. For example, it has to know which lights are on or off and offer a way to control the lights. For a sensor it only has to know the value. A hub with these capabilities offers <strong>home control</strong>.</p>
<p class='img'>
<a href='/images/screenshots/nexus_7_dashboard.png'>
<img alt='Hub dashboard example'
src='/images/screenshots/nexus_7_dashboard.png' />
</a>
Example of a hub&#8217;s dashboard. Showing the state of 2 persons, 4 lights and the sun.
</p>
<a class="btn pull-right" href="/blog/2014/12/26/home-control-home-automation-and-the-smart-home/#read-more">Read on &rarr;</a>
</div>
</article>
<hr>
<div class="pagination">

View file

@ -22,7 +22,7 @@
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/blog/posts/3/">
<meta property="og:type" content="website">
<meta property="og:description" content="Website launched! December 18, 2014 Paulus Schoutsen less than one minute reading time website Comments I finally took the time to setup a simple website to help people getting started with Home &hellip;">
<meta property="og:description" content="Home Control, Automation &amp; the Smart Home December 26, 2014 Paulus Schoutsen four minutes reading time architecture Comments The internet has been buzzing over the last year about home &hellip;">
<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">
@ -96,6 +96,87 @@
<article class="listing">
<header>
<h1 class="beta">
<a href="/blog/2014/12/26/home-control-home-automation-and-the-smart-home/">Home Control, Automation &amp; the Smart Home</a>
</h1>
<div class="meta clearfix">
<time datetime="2014-12-26T10:23:13-08:00" pubdate data-updated="true"><i class="icon-calendar"></i> December 26, 2014</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<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/architecture/'>architecture</a></li>
</ul>
</span>
<a class='comments'
href="/blog/2014/12/26/home-control-home-automation-and-the-smart-home/#disqus_thread"
>Comments</a>
</div>
</header>
<div class="entry-content clearfix">
<p>The internet has been buzzing over the last year about home automation. A lot of different terms fly around like the internet of things, home automation and the smart home.
This article will try to explain how they all relate.</p>
<p>The first thing to introduce is the <strong>Internet of Things</strong> (IoT). This refers to a new generation of devices that cannot only be controlled by humans via buttons or remotes but also provide an interface to communicate with other devices and applications. For example, an IoT-capable coffee machine could receive commands to create different types of coffee and be able to broadcast the amount of water left in its resevoir.</p>
<p>There is no widely adopted open standard for smart device communication. This prevents a lot of devices to communicate with one another. And even if they could, most devices are not designed to manage other devices. To solve this we need a device to be able to communicate with and manage all these connected devices. This device is called a <strong>hub</strong>.</p>
<p>As a bare minimum a hub has to keep track of the state of each device and should be able to control them if possible. For example, it has to know which lights are on or off and offer a way to control the lights. For a sensor it only has to know the value. A hub with these capabilities offers <strong>home control</strong>.</p>
<p class='img'>
<a href='/images/screenshots/nexus_7_dashboard.png'>
<img alt='Hub dashboard example'
src='/images/screenshots/nexus_7_dashboard.png' />
</a>
Example of a hub&#8217;s dashboard. Showing the state of 2 persons, 4 lights and the sun.
</p>
<a class="btn pull-right" href="/blog/2014/12/26/home-control-home-automation-and-the-smart-home/#read-more">Read on &rarr;</a>
</div>
</article>
<hr>
<article class="listing">
<header>

View file

@ -429,7 +429,7 @@ the manufacturers of these devices.
<a href="/components/wink.html"><img src='/images/supported_brands/wink.png' class='brand' alt="Wink" /></a>
<a href="/components/isy994.html"><img src='/images/supported_brands/universal_devices.png' class='brand' alt="ISY994" /></a>
<a href="/components/modbus.html"><img src='/images/supported_brands/modbus.png' class='brand' alt="Modbus" /></a>
<a href="/components/arduino.html"><img src='/images/supported_brands/arduino.png' class='brand' alt="Arduino" /></a></p>
<a href="/components/verisure.html"><img src='/images/supported_brands/verisure.png' class='brand' alt="Verisure" /></a></p>
<p class='note'>
Support for these devices is provided by the Home Assistant community and not

View file

@ -107,11 +107,11 @@
<p>Home Assistant is not available on the Play Store. Instead, Home Assistant leverages the new <a href="https://w3c.github.io/manifest/">manifest.json support</a> to allow Android devices to add the web application to your homescreen as if it was a native application.</p>
<ol>
<li>Open Chrome</li>
<li>Navigate to your Home Assistant instance</li>
<li>Click on the menu icon (three vertical dots)</li>
<li>Click on Add to Homescreen</li>
<li>A dialog will popup, click on Add</li>
<li> Open Chrome</li>
<li> Navigate to your Home Assistant instance</li>
<li> Click on the menu icon (three vertical dots)</li>
<li> Click on Add to Homescreen</li>
<li> A dialog will popup, click on Add</li>
</ol>

Binary file not shown.

After

Width:  |  Height:  |  Size: 461 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

View file

@ -1,438 +1,758 @@
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://home-assistant.io/blog/2015/09/11/different-ways-to-use-mqtt-with-home-assistant/</loc>
<lastmod>2015-09-11T02:19:38-07:00</lastmod>
<priority>0.8</priority>
</url>
<url>
<loc>https://home-assistant.io/blog/2015/08/31/version-7-revamped-ui-and-improved-distribution/</loc>
<lastmod>2015-08-31T14:12:00-07:00</lastmod>
<priority>0.8</priority>
</url>
<url>
<loc>https://home-assistant.io/blog/2015/08/26/laundry-automation-with-moteino-mqtt-and-home-assistant/</loc>
<lastmod>2015-08-26T08:12:00-07:00</lastmod>
<priority>0.8</priority>
</url>
<url>
<loc>https://home-assistant.io/blog/2015/08/17/verisure-and-modern-tp-link-router-support/</loc>
<lastmod>2015-08-17T20:00:00-07:00</lastmod>
<priority>0.8</priority>
</url>
<url>
<loc>https://home-assistant.io/blog/2015/08/09/mqtt-raspberry-pi-squeezebox-asuswrt-support/</loc>
<lastmod>2015-08-09T18:01:00-07:00</lastmod>
<priority>0.8</priority>
</url>
<url>
<loc>https://home-assistant.io/blog/2015/07/11/ip-cameras-arduino-kodi-efergy-support/</loc>
<lastmod>2015-07-11T01:37:00-07:00</lastmod>
<priority>0.8</priority>
</url>
<url>
<loc>https://home-assistant.io/blog/2015/06/10/release-notes/</loc>
<lastmod>2015-06-10T18:54:00-07:00</lastmod>
<priority>0.8</priority>
</url>
<url>
<loc>https://home-assistant.io/blog/2015/05/14/release-notes/</loc>
<lastmod>2015-05-14T22:25:00-07:00</lastmod>
<priority>0.8</priority>
</url>
<url>
<loc>https://home-assistant.io/blog/2015/05/09/utc-time-zone-awareness/</loc>
<lastmod>2015-05-09T23:08:00-07:00</lastmod>
<priority>0.8</priority>
</url>
<url>
<loc>https://home-assistant.io/blog/2015/04/25/release-notes/</loc>
<lastmod>2015-04-25T06:57:00-07:00</lastmod>
<priority>0.8</priority>
</url>
<url>
<loc>https://home-assistant.io/blog/2015/03/22/release-notes/</loc>
<lastmod>2015-03-22T00:21:00-08:00</lastmod>
<priority>0.8</priority>
</url>
<url>
<loc>https://home-assistant.io/blog/2015/03/11/release-notes/</loc>
<lastmod>2015-03-11T18:36:00-08:00</lastmod>
<priority>0.8</priority>
</url>
<url>
<loc>https://home-assistant.io/blog/2015/03/08/new-logo/</loc>
<lastmod>2015-03-08T23:16:10-07:00</lastmod>
<priority>0.8</priority>
</url>
<url>
<loc>https://home-assistant.io/blog/2015/03/01/home-assistant-migrating-to-yaml/</loc>
<lastmod>2015-03-01T11:38:00-08:00</lastmod>
<priority>0.8</priority>
</url>
<url>
<loc>https://home-assistant.io/blog/2015/02/24/streaming-updates/</loc>
<lastmod>2015-02-24T22:41:27-08:00</lastmod>
<priority>0.8</priority>
</url>
<url>
<loc>https://home-assistant.io/blog/2015/02/08/looking-at-the-past/</loc>
<lastmod>2015-02-08T09:01:23-08:00</lastmod>
<priority>0.8</priority>
</url>
<url>
<loc>https://home-assistant.io/blog/2015/01/24/release-notes/</loc>
<lastmod>2015-01-24T18:36:00-08:00</lastmod>
<priority>0.8</priority>
</url>
<url>
<loc>https://home-assistant.io/blog/2015/01/13/nest-in-da-house/</loc>
<lastmod>2015-01-13T08:29:04-08:00</lastmod>
<priority>0.8</priority>
</url>
<url>
<loc>https://home-assistant.io/blog/2015/01/11/bootstrapping-your-setup-with-discovery/</loc>
<lastmod>2015-01-11T21:49:08-08:00</lastmod>
<priority>0.8</priority>
</url>
<url>
<loc>https://home-assistant.io/blog/2015/01/04/hey-pushbullet-nice-talking-to-you/</loc>
<lastmod>2015-01-04T13:29:07-08:00</lastmod>
<priority>0.8</priority>
</url>
<url>
<loc>https://home-assistant.io/blog/2014/12/26/home-control-home-automation-and-the-smart-home/</loc>
<lastmod>2014-12-26T10:23:13-08:00</lastmod>
<priority>0.8</priority>
</url>
<url>
<loc>https://home-assistant.io/blog/2014/12/18/website-launched/</loc>
<lastmod>2014-12-18T23:24:45-08:00</lastmod>
<priority>0.8</priority>
</url>
<url>
<loc>https://home-assistant.io/developers/add_new_platform.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/getting-started/advanced.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/getting-started/android.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/developers/api.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/developers/architecture.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/arduino.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/automation.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/browser.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/camera.generic.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/getting-started/configuration.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/configurator.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/conversation.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/developers/creating_components.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/developers/credits.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/device_sun_light_trigger.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/device_tracker.actiontec.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/device_tracker.aruba.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/device_tracker.asuswrt.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/device_tracker.ddwrt.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/device_tracker.luci.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/device_tracker.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/device_tracker.netgear.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/device_tracker.nmap_scanner.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/device_tracker.thomson.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/device_tracker.tomato.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/device_tracker.tplink.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/discovery.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/downloader.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/developers/frontend.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/group.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/history.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/ifttt.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>1.0</priority>
</url>
<url>
<loc>https://home-assistant.io/blog/archives/</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/blog/</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/developers/</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/help/</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/getting-started/</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/isy994.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/keyboard.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/light.hue.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/light.limitlessled.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/light.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/logbook.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/media_player.cast.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/media_player.denon.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/media_player.kodi.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/media_player.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/media_player.mpd.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/media_player.squeezebox.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/modbus.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/mqtt.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/notify.file.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/notify.instapush.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/notify.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/notify.nma.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/notify.pushbullet.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/notify.pushover.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/notify.slack.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/notify.smtp.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/notify.syslog.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/notify.xmpp.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/developers/python_api.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/developers/rest_api.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/scene.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/scheduler.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/script.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/sensor.arest.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/sensor.bitcoin.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/sensor.dht.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/sensor.efergy.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/sensor.forecast.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/sensor.mqtt.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/sensor.mysensors.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/sensor.openweathermap.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/sensor.rfxtrx.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/sensor.rpi_gpio.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/sensor.sabnzbd.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/sensor.swiss_public_transport.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/sensor.systemmonitor.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/sensor.temper.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/sensor.time_date.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/sensor.transmission.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/simple_alarm.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/sun.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/switch.command_switch.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/switch.edimax.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/switch.hikvision.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/switch.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/switch.mqtt.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/switch.rpi_gpio.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/switch.transmission.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/switch.wemo.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/tellstick.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/thermostat.heat_control.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/thermostat.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/thermostat.nest.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/getting-started/troubleshooting-configuration.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/getting-started/troubleshooting.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/vera.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/verisure.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/developers/website.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/wink.html</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/components/zwave.html</loc>
</url>
<url>
<loc>https://home-assistant.io/blog/categories/website/</loc>
</url>
<url>
<loc>https://home-assistant.io/blog/categories/architecture/</loc>
</url>
<url>
<loc>https://home-assistant.io/blog/categories/component/</loc>
</url>
<url>
<loc>https://home-assistant.io/blog/categories/release-notes/</loc>
</url>
<url>
<loc>https://home-assistant.io/blog/categories/frontend/</loc>
</url>
<url>
<loc>https://home-assistant.io/blog/categories/core/</loc>
</url>
<url>
<loc>https://home-assistant.io/blog/categories/branding/</loc>
</url>
<url>
<loc>https://home-assistant.io/blog/categories/user-stories/</loc>
<lastmod>2015-09-11T09:24:25-07:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://home-assistant.io/demo/frontend.html</loc>
<lastmod>2015-09-10T12:34:31-07:00</lastmod>
<lastmod>2015-08-31T01:01:03-07:00</lastmod>
<priority>0.6</priority>
</url>
<url>
<loc>https://home-assistant.io/demo/index.html</loc>
<lastmod>2015-09-10T12:34:31-07:00</lastmod>
<lastmod>2015-08-31T01:01:03-07:00</lastmod>
<priority>0.6</priority>
</url>
<url>
<loc>https://home-assistant.io/googlef4f3693c209fe788.html</loc>
<lastmod>2015-07-14T18:47:00-07:00</lastmod>
<lastmod>2014-12-22T00:10:47-08:00</lastmod>
<priority>0.6</priority>
</url>
</urlset>

File diff suppressed because one or more lines are too long