Site updated at 2016-02-09 07:50:16 UTC
This commit is contained in:
parent
c57d50c516
commit
3d44f30889
74 changed files with 2091 additions and 1108 deletions
558
atom.xml
558
atom.xml
|
@ -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>2016-02-08T17:11:51+00:00</updated>
|
||||
<updated>2016-02-09T07:49:53+00:00</updated>
|
||||
<id>https://home-assistant.io/</id>
|
||||
<author>
|
||||
<name><![CDATA[Paulus Schoutsen]]></name>
|
||||
|
@ -13,6 +13,240 @@
|
|||
<generator uri="http://octopress.org/">Octopress</generator>
|
||||
|
||||
|
||||
<entry>
|
||||
<title type="html"><![CDATA[Smarter SmartThings with MQTT and Home Assistant]]></title>
|
||||
<link href="https://home-assistant.io/blog/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/"/>
|
||||
<updated>2016-02-09T07:44:00+00:00</updated>
|
||||
<id>https://home-assistant.io/blog/2016/02/09/Smarter-Smart-Things-with-MQTT-and-Home-Assistant</id>
|
||||
<content type="html"><![CDATA[<p><em>This is a guest post by Home Assistant users <a href="https://github.com/jer">Jeremiah Wuenschel</a> and <a href="https://github.com/stjohnjohnson">St. John Johnson</a>.</em></p>
|
||||
|
||||
<p>So you own a <a href="http://smartthings.com">SmartThings</a> Hub. You probably bought it when you were looking to get into the whole Home Automation hobby because it worked with pretty much everything and offered you the ability to automate <strong>anything.</strong> After a week of ownership, you realized that building dashboards and automating required writing way more Groovy then you expected. Then one day you were browsing <a href="https://www.reddit.com/r/homeautomation">reddit</a> and discovered the amazingness that is Home Assistant! A solution that offered dashboards, graphs, working support for Nest, and REAL EASY automation!</p>
|
||||
|
||||
<p>You spent your weekend getting everything set up, showing it off to your significant other, but in the end you got stumped when it came to integrating with all your existing SmartThings toys. What do I do now? Should I buy another hub? Should I just buy a Z-Wave stick?</p>
|
||||
|
||||
<p>That’s where we came in. We wanted a solution that can bridge the awesomeness of Home Assistant with the SmartThings hub that works with almost everything.</p>
|
||||
|
||||
<p class="img">
|
||||
<img src="https://home-assistant.io/images/blog/2016-02-smartthings/splash.png" />
|
||||
</p>
|
||||
|
||||
<!--more-->
|
||||
|
||||
<h2>Glossary</h2>
|
||||
|
||||
<p>This is going to be a pretty detailed tutorial on setting up our SmartThings bridge. However, there are a couple key terms that <em>might</em> be new to you:</p>
|
||||
|
||||
<ul>
|
||||
<li><a href="https://en.wikipedia.org/wiki/MQTT">MQTT</a>: A lightweight message protocol for listening and publishing events that happen. Many home automation platforms have built in support for this <a href="https://home-assistant.io/components/mqtt/">(especially Home Assistant)</a>.</li>
|
||||
<li><a href="https://www.docker.com/">Docker</a>: A tool for running applications that are self-contained. No need for installing any dependencies or worrying about conflicts. Installs easily on Linux and OSX.</li>
|
||||
</ul>
|
||||
|
||||
<h2>Setting up the Bridge</h2>
|
||||
|
||||
<h3>MQTT</h3>
|
||||
|
||||
<p>Assuming that you already have Home Assistant and Smart Things running, you will first want to get an MQTT broker running. There are a handful of <a href="http://mosquitto.org/">MQTT</a> <a href="https://github.com/emqtt/emqttd">brokers</a> available in Open Source land. We chose <a href="http://www.mosca.io/">Mosca</a> for its simplicity.</p>
|
||||
|
||||
<p>There is very little you need to do to get Mosca running. The easiest approach is to use <a href="https://www.docker.com/">Docker</a>, and run a command like the following:</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre>$ docker run \
|
||||
-d \
|
||||
--name="mqtt" \
|
||||
-v /opt/mosca:/db \
|
||||
-p 1883:1883 \
|
||||
matteocollina/mosca
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>This will start Mosca up inside of a docker container, while keeping persistent storage for Mosca in <code>/opt/mosca</code>. The default configuration is the only thing we need to get things up and running.</p>
|
||||
|
||||
<p>If you don’t want to mess with Docker and can get node.js installed without trouble, the <a href="https://github.com/mcollina/mosca#standalone">standalone</a> instructions are all you need.</p>
|
||||
|
||||
<h3>MQTT Bridge</h3>
|
||||
|
||||
<p>This is the small piece of magic that bridges the gap between MQTT and SmartThings. It is a node.js app, and like Mosca it is probably easiest to install with Docker:</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre>$ docker run \
|
||||
-d \
|
||||
--name="mqtt-bridge" \
|
||||
-v /opt/mqtt-bridge:/config \
|
||||
-p 8080:8080 \
|
||||
stjohnjohnson/smartthings-mqtt-bridge
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>The code for this bridge is <a href="https://github.com/stjohnjohnson/smartthings-mqtt-bridge">on Github</a> if you want to start it up independently.</p>
|
||||
|
||||
<p>The MQTT Bridge only needs to know where your MQTT broker lives. If you are using these docker commands as-is, edit <code>/opt/mqtt-bridge/config.yml</code> to look like this:</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre><span class="head"><span class="head">---</span></span>
|
||||
<span class="key">mqtt</span>:
|
||||
<span class="key">host</span>: <span class="string"><span class="content"><IP of the host></span></span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>Restart the bridge, and you are ready to go:</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre>$ docker restart mqtt-bridge
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h3>SmartThings Device</h3>
|
||||
|
||||
<p>The next step (and possibly the most confusing) is the device type. Go to the <a href="https://graph.api.smartthings.com/ide/devices">Smart Things Device IDE</a> and <code>Create New Device Handler</code>. Choose <code>From Code</code> and paste in the <a href="https://github.com/stjohnjohnson/smartthings-mqtt-bridge/blob/master/devicetypes/stj/mqtt-bridge.src/mqtt-bridge.groovy">MQTT Bridge Device Code</a>. Click <code>Save</code>, <code>Publish</code>, and then <code>For Me</code>.</p>
|
||||
|
||||
<p>Now to install your new Device Handler. Go back to <code>My Devices</code> in the IDE, and click <code>New Device</code>. Enter a name, and pick any random set of characters for the Device Network Id (this will automatically update later). For Type, scroll to the bottom of the list and find your newly created <code>MQTT Bridge</code>. Fill in the other boxes however you like.</p>
|
||||
|
||||
<p>Go back to <code>My Devices</code>, and click on your new device in the list. This will bring up a page that allows you to edit your device’s Preferences. Click <code>edit</code> and fill in the 3 pieces of information it asks for.</p>
|
||||
|
||||
<ul>
|
||||
<li>MQTT Bridge IP Address: <IP address of the MQTT Bridge from the previous step></li>
|
||||
<li>MQTT Bridge Port: <8080 if you have changed nothing in the previous commands></li>
|
||||
<li>MQTT Bridge MAC Address: <Mac address of machine running the Bridge code></li>
|
||||
</ul>
|
||||
|
||||
<p>This will create the link between SmartThings and the MQTT Bridge.</p>
|
||||
|
||||
<h3>SmartThings App</h3>
|
||||
|
||||
<p>The last step is to setup the SmartApp. After this, any registered devices will start sending their events to MQTT.</p>
|
||||
|
||||
<p>Go to the <a href="https://graph.api.smartthings.com/ide/apps">Smart App IDE</a>. Click <code>New SmartApp</code>, followed by <code>From Code</code>. Paste in the <a href="https://github.com/stjohnjohnson/smartthings-mqtt-bridge/blob/master/smartapps/stj/mqtt-bridge.src/mqtt-bridge.groovy">MQTT Bridge SmartApp code</a> and click <code>Save</code>. Click <code>Publish</code> and then <code>For Me</code>. In the SmartThings mobile app, add the new SmartApp and configure it with your devices and MQTT Bridge device. Clicking <code>done</code> will subscribe SmartThings to your MQTT broker and begin 2-way propagation of events.</p>
|
||||
|
||||
<h3>Configure Home Assistant</h3>
|
||||
|
||||
<p>To add SmartThings devices to Home Assistant over MQTT, first enable MQTT in Home Assistant:</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre><span class="key">mqtt</span>:
|
||||
<span class="key">broker</span>: <span class="string"><span class="content">localhost</span></span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>Replace <code>localhost</code> with the location of the running MQTT Broker. Devices from the MQTT Bridge are published to the path <code>/smartthings/<Device Name>/<Atribute></code></p>
|
||||
|
||||
<p>For example, my Dimmer Z-Wave Lamp is called “Fireplace Lights” in SmartThings. The following topics are published:</p>
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Topic</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>/smartthings/Fireplace Lights/level</td>
|
||||
<td>Brightness (0-99)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>/smartthings/Fireplace Lights/switch</td>
|
||||
<td>Switch State (on/off)</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<p>Here is an example Home Assistant config:</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre><span class="key">switch</span>:
|
||||
<span class="key">platform</span>: <span class="string"><span class="content">mqtt</span></span>
|
||||
<span class="key">name</span>: <span class="string"><span class="delimiter">"</span><span class="content">Fireplace Lights</span><span class="delimiter">"</span></span>
|
||||
<span class="key">state_topic</span>: <span class="string"><span class="delimiter">"</span><span class="content">/smartthings/Fireplace Lights/switch</span><span class="delimiter">"</span></span>
|
||||
<span class="key">command_topic</span>: <span class="string"><span class="delimiter">"</span><span class="content">/smartthings/Fireplace Lights/switch</span><span class="delimiter">"</span></span>
|
||||
<span class="key">brightness_state_topic</span>: <span class="string"><span class="delimiter">"</span><span class="content">/smartthings/Fireplace Lights/level</span><span class="delimiter">"</span></span>
|
||||
<span class="key">brightness_command_topic</span>: <span class="string"><span class="delimiter">"</span><span class="content">/smartthings/Fireplace Lights/level</span><span class="delimiter">"</span></span>
|
||||
<span class="key">payload_on</span>: <span class="string"><span class="delimiter">"</span><span class="content">on</span><span class="delimiter">"</span></span>
|
||||
<span class="key">payload_off</span>: <span class="string"><span class="delimiter">"</span><span class="content">off</span><span class="delimiter">"</span></span>
|
||||
<span class="key">retain</span>: <span class="string"><span class="content">true</span></span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>We recommend <code>retain: true</code> for every MQTT device in order to keep states in sync when things become disconnected.</p>
|
||||
|
||||
<p>Start digging through the <a href="https://home-assistant.io/components/mqtt/">MQTT Components</a> in Home Assistant to find which components map to the new events being published to MQTT.</p>
|
||||
|
||||
<h3>Configuring with Docker-Compose</h3>
|
||||
|
||||
<p>Our personal preference for starting the whole suite of software is to use a single Docker-Compose file. Just create a file called <code>docker-compose.yml</code> like this:</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre><span class="key">mqtt</span>:
|
||||
<span class="key">image</span>: <span class="string"><span class="content">matteocollina/mosca</span></span>
|
||||
<span class="key">ports</span>:
|
||||
- <span class="string"><span class="content">1883:1883</span></span>
|
||||
|
||||
<span class="key">mqttbridge</span>:
|
||||
<span class="key">image</span>: <span class="string"><span class="content">stjohnjohnson/smartthings-mqtt-bridge</span></span>
|
||||
<span class="key">volumes</span>:
|
||||
- <span class="string"><span class="content">./mqtt-bridge:/config</span></span>
|
||||
<span class="key">ports</span>:
|
||||
- <span class="string"><span class="content">8080:8080</span></span>
|
||||
<span class="key">links</span>:
|
||||
- <span class="string"><span class="content">mqtt</span></span>
|
||||
|
||||
<span class="key">homeassistant</span>:
|
||||
<span class="key">image</span>: <span class="string"><span class="content">balloob/home-assistant</span></span>
|
||||
<span class="key">ports</span>:
|
||||
- <span class="string"><span class="content">80:80</span></span>
|
||||
<span class="key">volumes</span>:
|
||||
- <span class="string"><span class="content">./home-assistant:/config</span></span>
|
||||
- <span class="string"><span class="content">/etc/localtime:/etc/localtime:ro</span></span>
|
||||
<span class="key">links</span>:
|
||||
- <span class="string"><span class="content">mqtt</span></span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>This will start home-assistant, MQTT, and the Bridge, in dependency order. All config can reference the name of the docker container instead of using IP addresses (e.g. mqtt for the broker host in Home Assistant).</p>
|
||||
|
||||
<h3>How it works</h3>
|
||||
|
||||
<p><strong>HTTP Endpoint</strong>: There are really only 2 ways to communicate with the SmartThings hub that we could find. The easiest approach is to create a RESTful SmartApp authenticated with OAuth that provides state changes via HTTP directly. This approach is pretty straightforward to implement, but it requires communication with the SmartThings cloud service, and can’t be done entirely on your LAN. We hoped to keep all communication internal, and came up with a second approach.</p>
|
||||
|
||||
<p><strong>Custom Device Type:</strong> SmartThings custom device types allow developers to define handlers for HTTP events received directly over the local network by the SmartThings hub. Messages received are authenticated by MAC address, and can contain arbitrary strings in their payload. Since a Device Type is only ever tied to a single device, we need to add a SmartApp to the mix in order to translate events between individual devices and our special Home Assistant Bridge device. Here is what we have so far:</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre>Z-Wave Switch |
|
||||
Zigbee motion sensor |<---> Bridge App <---> Bridge Device Type <---> <Local network>
|
||||
Z-Wave light bulb |
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>On the Home Assistant side, there is a powerful platform available based on the MQTT lightweight message bus protocol. Everything from lights to switches to temperature sensors can be defined in Home Assistant as an MQTT component, so it makes for a convenient integration point. This requires an MQTT broker for handling the message bus, and one last piece to translate between the HTTP that SmartThings supports and MQTT.</p>
|
||||
|
||||
<p>Here is the final sequence of events:</p>
|
||||
|
||||
<p class="img">
|
||||
<a href="https://home-assistant.io/images/blog/2016-02-smartthings/SmartThings-HomeAssistant.png">
|
||||
<img src="https://home-assistant.io/images/blog/2016-02-smartthings/SmartThings-HomeAssistant.png" alt="SmartThings Bridge Sequence" />
|
||||
</a>
|
||||
SmartThings Bridge Sequence
|
||||
</p>
|
||||
|
||||
<p>There are a lot of stops along the way for these events, but each piece is a simple translation layer to shuttle the events between systems.</p>
|
||||
|
||||
<h3>Future Improvements</h3>
|
||||
<ul>
|
||||
<li><strong>Raspberry pi</strong>: There is a lot of interest in getting this running on the Raspberry Pi. It only requires binaries compiled for ARM, so we plan to get ARM-compatible versions of the containers going at some point.</li>
|
||||
<li><strong>Authentication for MQTT</strong>: At the moment, the MQTT bridge doesn’t understand how to authenticate to MQTT, so only unauthenticated MQTT is supported. This is mitigated to some degree if you use our Docker Compose config, because MQTT’s port is not actually shared publicly.</li>
|
||||
<li><strong>Authentication for MQTT Bridge</strong>: Right now the bridge expects that anyone subscribing is the SmartThings hub. This could use proper authentication.</li>
|
||||
</ul>
|
||||
|
||||
]]></content>
|
||||
</entry>
|
||||
|
||||
<entry>
|
||||
<title type="html"><![CDATA[0.12: Insteon, LIFX, Twitter and ZigBee]]></title>
|
||||
<link href="https://home-assistant.io/blog/2016/01/30/insteon-lifx-twitter-and-zigbee/"/>
|
||||
|
@ -1540,328 +1774,6 @@ Glances web server started on http://0.0.0.0:61208/
|
|||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
]]></content>
|
||||
</entry>
|
||||
|
||||
<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-11T09:19:38+00: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" /> <a href="https://en.wikipedia.org/wiki/MQTT">MQTT</a> support was added to Home Assistant recently. The <a href="https://home-assistant.io/components/mqtt/">MQTT component</a> will enable you to do all sort of things. Most likely you will use it to communicate with your devices. But Home Assistant doesn’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’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’s create a “Mood” sensor. For simplicity Home Assistant and the MQTT broker are both running on the same host. The needed configuration snipplets to add to the <code>configuration.yaml</code> file consists of two parts: one for the broker and one for the sensor.</p>
|
||||
|
||||
<div class="highlighter-coderay"><table class="CodeRay"><tr>
|
||||
<td class="line-numbers"><pre><a href="#n1" name="n1">1</a>
|
||||
<a href="#n2" name="n2">2</a>
|
||||
<a href="#n3" name="n3">3</a>
|
||||
<a href="#n4" name="n4">4</a>
|
||||
<a href="#n5" name="n5">5</a>
|
||||
<a href="#n6" name="n6">6</a>
|
||||
<a href="#n7" name="n7">7</a>
|
||||
</pre></td>
|
||||
<td class="code"><pre><span class="key">mqtt</span>:
|
||||
<span class="key">broker</span>: <span class="string"><span class="content">127.0.0.1</span></span>
|
||||
|
||||
<span class="key">sensor</span>:
|
||||
- <span class="string"><span class="content">platform: mqtt</span></span>
|
||||
<span class="key">name</span>: <span class="string"><span class="delimiter">"</span><span class="content">Fabian's Mood</span><span class="delimiter">"</span></span>
|
||||
<span class="key">state_topic</span>: <span class="string"><span class="delimiter">"</span><span class="content">home-assistant/fabian/mood</span><span class="delimiter">"</span></span>
|
||||
</pre></td>
|
||||
</tr></table>
|
||||
</div>
|
||||
|
||||
<p>After a restart of Home Assistant the “Mood” sensor will show up in the frontend. For more details about the configuration of MQTT itself and the sensor, please refer to the <a href="https://home-assistant.io/components/mqtt/">MQTT component</a> or the <a href="https://home-assistant.io/components/sensor.mqtt/">MQTT sensor</a> documentation.</p>
|
||||
|
||||
<p>Now we can set the mood. The commandline tool (<code>mosquitto_pub</code>) which is shipped with <code>mosquitto</code> is used to send an MQTT message.</p>
|
||||
|
||||
<div class="highlighter-coderay"><table class="CodeRay"><tr>
|
||||
<td class="line-numbers"><pre><a href="#n1" name="n1">1</a>
|
||||
</pre></td>
|
||||
<td class="code"><pre>$ mosquitto_pub -h 127.0.0.1 -t "home-assistant/fabian/mood" -m "bad"
|
||||
</pre></td>
|
||||
</tr></table>
|
||||
</div>
|
||||
|
||||
<p class="img">
|
||||
<img src="https://home-assistant.io/images/blog/2015-09-mqtt/mood.png" />
|
||||
The Mood sensor
|
||||
</p>
|
||||
|
||||
<p>This is a really bad example. Don’t do this in the real world because you won’t be able to create diagrams of historical data. Better use a numerical value.</p>
|
||||
|
||||
<h3><a class="title-link" name="python-mqtt-bindings" href="#python-mqtt-bindings"></a> Python MQTT bindings</h3>
|
||||
|
||||
<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 “Lottery” and the unit of measurement will be “No.”.</p>
|
||||
|
||||
<div class="highlighter-coderay"><table class="CodeRay"><tr>
|
||||
<td class="line-numbers"><pre><a href="#n1" name="n1">1</a>
|
||||
<a href="#n2" name="n2">2</a>
|
||||
<a href="#n3" name="n3">3</a>
|
||||
<a href="#n4" name="n4">4</a>
|
||||
</pre></td>
|
||||
<td class="code"><pre> - <span class="string"><span class="content">platform: mqtt</span></span>
|
||||
<span class="key">name</span>: <span class="string"><span class="delimiter">"</span><span class="content">Lottery</span><span class="delimiter">"</span></span>
|
||||
<span class="key">state_topic</span>: <span class="string"><span class="delimiter">"</span><span class="content">home-assistant/lottery/number</span><span class="delimiter">"</span></span>
|
||||
<span class="key">unit_of_measurement</span>: <span class="string"><span class="delimiter">"</span><span class="content">No.</span><span class="delimiter">"</span></span>
|
||||
</pre></td>
|
||||
</tr></table>
|
||||
</div>
|
||||
|
||||
<p>Don’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>
|
||||
|
||||
<div class="highlighter-coderay"><table class="CodeRay"><tr>
|
||||
<td class="line-numbers"><pre><a href="#n1" name="n1">1</a>
|
||||
<a href="#n2" name="n2">2</a>
|
||||
<a href="#n3" name="n3">3</a>
|
||||
<a href="#n4" name="n4">4</a>
|
||||
<a href="#n5" name="n5">5</a>
|
||||
<a href="#n6" name="n6">6</a>
|
||||
<a href="#n7" name="n7">7</a>
|
||||
<a href="#n8" name="n8">8</a>
|
||||
<a href="#n9" name="n9">9</a>
|
||||
<strong><a href="#n10" name="n10">10</a></strong>
|
||||
<a href="#n11" name="n11">11</a>
|
||||
<a href="#n12" name="n12">12</a>
|
||||
<a href="#n13" name="n13">13</a>
|
||||
<a href="#n14" name="n14">14</a>
|
||||
<a href="#n15" name="n15">15</a>
|
||||
<a href="#n16" name="n16">16</a>
|
||||
<a href="#n17" name="n17">17</a>
|
||||
<a href="#n18" name="n18">18</a>
|
||||
<a href="#n19" name="n19">19</a>
|
||||
<strong><a href="#n20" name="n20">20</a></strong>
|
||||
<a href="#n21" name="n21">21</a>
|
||||
<a href="#n22" name="n22">22</a>
|
||||
</pre></td>
|
||||
<td class="code"><pre><span class="comment">#!/usr/bin/python3</span>
|
||||
<span class="comment">#</span>
|
||||
<span class="keyword">import</span> <span class="include">time</span>
|
||||
<span class="keyword">import</span> <span class="include">random</span>
|
||||
<span class="keyword">import</span> <span class="include">paho.mqtt.client</span> <span class="keyword">as</span> mqtt
|
||||
<span class="keyword">import</span> <span class="include">paho.mqtt.publish</span> <span class="keyword">as</span> publish
|
||||
|
||||
broker = <span class="string"><span class="delimiter">'</span><span class="content">127.0.0.1</span><span class="delimiter">'</span></span>
|
||||
state_topic = <span class="string"><span class="delimiter">'</span><span class="content">home-assistant/lottery/number</span><span class="delimiter">'</span></span>
|
||||
delay = <span class="integer">5</span>
|
||||
|
||||
<span class="comment"># Send a single message to set the mood</span>
|
||||
publish.single(<span class="string"><span class="delimiter">'</span><span class="content">home-assistant/fabian/mood</span><span class="delimiter">'</span></span>, <span class="string"><span class="delimiter">'</span><span class="content">good</span><span class="delimiter">'</span></span>, hostname=broker)
|
||||
|
||||
<span class="comment"># Send messages in a loop</span>
|
||||
client = mqtt.Client(<span class="string"><span class="delimiter">"</span><span class="content">ha-client</span><span class="delimiter">"</span></span>)
|
||||
client.connect(broker)
|
||||
client.loop_start()
|
||||
|
||||
<span class="keyword">while</span> <span class="predefined-constant">True</span>:
|
||||
client.publish(state_topic, random.randrange(<span class="integer">0</span>, <span class="integer">50</span>, <span class="integer">1</span>))
|
||||
time.sleep(delay)
|
||||
</pre></td>
|
||||
</tr></table>
|
||||
</div>
|
||||
|
||||
<p>Every 5 seconds a message with a new number is sent to the broker and picked up by Home Assistant. By the way, my mood is much better now.</p>
|
||||
|
||||
<p class="img">
|
||||
<img src="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 “smartdevice” or send information to Home Assistant which you haven’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>
|
||||
|
||||
<div class="highlighter-coderay"><table class="CodeRay"><tr>
|
||||
<td class="line-numbers"><pre><a href="#n1" name="n1">1</a>
|
||||
<a href="#n2" name="n2">2</a>
|
||||
<a href="#n3" name="n3">3</a>
|
||||
<a href="#n4" name="n4">4</a>
|
||||
<a href="#n5" name="n5">5</a>
|
||||
<a href="#n6" name="n6">6</a>
|
||||
<a href="#n7" name="n7">7</a>
|
||||
<a href="#n8" name="n8">8</a>
|
||||
<a href="#n9" name="n9">9</a>
|
||||
<strong><a href="#n10" name="n10">10</a></strong>
|
||||
<a href="#n11" name="n11">11</a>
|
||||
<a href="#n12" name="n12">12</a>
|
||||
<a href="#n13" name="n13">13</a>
|
||||
<a href="#n14" name="n14">14</a>
|
||||
<a href="#n15" name="n15">15</a>
|
||||
<a href="#n16" name="n16">16</a>
|
||||
<a href="#n17" name="n17">17</a>
|
||||
<a href="#n18" name="n18">18</a>
|
||||
<a href="#n19" name="n19">19</a>
|
||||
<strong><a href="#n20" name="n20">20</a></strong>
|
||||
<a href="#n21" name="n21">21</a>
|
||||
<a href="#n22" name="n22">22</a>
|
||||
<a href="#n23" name="n23">23</a>
|
||||
<a href="#n24" name="n24">24</a>
|
||||
<a href="#n25" name="n25">25</a>
|
||||
<a href="#n26" name="n26">26</a>
|
||||
<a href="#n27" name="n27">27</a>
|
||||
<a href="#n28" name="n28">28</a>
|
||||
<a href="#n29" name="n29">29</a>
|
||||
<strong><a href="#n30" name="n30">30</a></strong>
|
||||
<a href="#n31" name="n31">31</a>
|
||||
<a href="#n32" name="n32">32</a>
|
||||
<a href="#n33" name="n33">33</a>
|
||||
<a href="#n34" name="n34">34</a>
|
||||
<a href="#n35" name="n35">35</a>
|
||||
<a href="#n36" name="n36">36</a>
|
||||
<a href="#n37" name="n37">37</a>
|
||||
<a href="#n38" name="n38">38</a>
|
||||
<a href="#n39" name="n39">39</a>
|
||||
<strong><a href="#n40" name="n40">40</a></strong>
|
||||
<a href="#n41" name="n41">41</a>
|
||||
<a href="#n42" name="n42">42</a>
|
||||
<a href="#n43" name="n43">43</a>
|
||||
<a href="#n44" name="n44">44</a>
|
||||
<a href="#n45" name="n45">45</a>
|
||||
<a href="#n46" name="n46">46</a>
|
||||
<a href="#n47" name="n47">47</a>
|
||||
<a href="#n48" name="n48">48</a>
|
||||
<a href="#n49" name="n49">49</a>
|
||||
<strong><a href="#n50" name="n50">50</a></strong>
|
||||
<a href="#n51" name="n51">51</a>
|
||||
<a href="#n52" name="n52">52</a>
|
||||
<a href="#n53" name="n53">53</a>
|
||||
<a href="#n54" name="n54">54</a>
|
||||
<a href="#n55" name="n55">55</a>
|
||||
<a href="#n56" name="n56">56</a>
|
||||
<a href="#n57" name="n57">57</a>
|
||||
<a href="#n58" name="n58">58</a>
|
||||
<a href="#n59" name="n59">59</a>
|
||||
<strong><a href="#n60" name="n60">60</a></strong>
|
||||
<a href="#n61" name="n61">61</a>
|
||||
<a href="#n62" name="n62">62</a>
|
||||
<a href="#n63" name="n63">63</a>
|
||||
<a href="#n64" name="n64">64</a>
|
||||
<a href="#n65" name="n65">65</a>
|
||||
<a href="#n66" name="n66">66</a>
|
||||
<a href="#n67" name="n67">67</a>
|
||||
<a href="#n68" name="n68">68</a>
|
||||
</pre></td>
|
||||
<td class="code"><pre><span class="comment">/*
|
||||
This sketch is based on the basic MQTT example by
|
||||
http://knolleary.github.io/pubsubclient/
|
||||
*/</span>
|
||||
|
||||
<span class="preprocessor">#include</span> <span class="include"><SPI.h></span>
|
||||
<span class="preprocessor">#include</span> <span class="include"><Ethernet.h></span>
|
||||
<span class="preprocessor">#include</span> <span class="include"><PubSubClient.h></span>
|
||||
|
||||
<span class="preprocessor">#define</span> DEBUG <span class="integer">1</span> <span class="comment">// Debug output to serial console</span>
|
||||
|
||||
<span class="comment">// Device settings</span>
|
||||
IPAddress deviceIp(<span class="integer">192</span>, <span class="integer">168</span>, <span class="integer">0</span>, <span class="integer">43</span>);
|
||||
byte deviceMac[] = { <span class="hex">0xAB</span>, <span class="hex">0xCD</span>, <span class="hex">0xFE</span>, <span class="hex">0xFE</span>, <span class="hex">0xFE</span>, <span class="hex">0xFE</span> };
|
||||
<span class="predefined-type">char</span>* deviceId = <span class="string"><span class="delimiter">"</span><span class="content">sensor01</span><span class="delimiter">"</span></span>; <span class="comment">// Name of the sensor</span>
|
||||
<span class="predefined-type">char</span>* stateTopic = <span class="string"><span class="delimiter">"</span><span class="content">home-assistant/sensor01/brightness</span><span class="delimiter">"</span></span>; <span class="comment">// MQTT topic where values are published</span>
|
||||
<span class="predefined-type">int</span> sensorPin = A0; <span class="comment">// Pin to which the sensor is connected to</span>
|
||||
<span class="predefined-type">char</span> buf[<span class="integer">4</span>]; <span class="comment">// Buffer to store the sensor value</span>
|
||||
<span class="predefined-type">int</span> updateInterval = <span class="integer">1000</span>; <span class="comment">// Interval in miliseconds</span>
|
||||
|
||||
<span class="comment">// MQTT server settings</span>
|
||||
IPAddress mqttServer(<span class="integer">192</span>, <span class="integer">168</span>, <span class="integer">0</span>, <span class="integer">12</span>);
|
||||
<span class="predefined-type">int</span> mqttPort = <span class="integer">1883</span>;
|
||||
|
||||
EthernetClient ethClient;
|
||||
PubSubClient client(ethClient);
|
||||
|
||||
<span class="directive">void</span> reconnect() {
|
||||
<span class="keyword">while</span> (!client.connected()) {
|
||||
<span class="preprocessor">#if</span> DEBUG
|
||||
Serial.print(<span class="string"><span class="delimiter">"</span><span class="content">Attempting MQTT connection...</span><span class="delimiter">"</span></span>);
|
||||
<span class="preprocessor">#endif</span>
|
||||
<span class="keyword">if</span> (client.connect(deviceId)) {
|
||||
<span class="preprocessor">#if</span> DEBUG
|
||||
Serial.println(<span class="string"><span class="delimiter">"</span><span class="content">connected</span><span class="delimiter">"</span></span>);
|
||||
<span class="preprocessor">#endif</span>
|
||||
} <span class="keyword">else</span> {
|
||||
<span class="preprocessor">#if</span> DEBUG
|
||||
Serial.print(<span class="string"><span class="delimiter">"</span><span class="content">failed, rc=</span><span class="delimiter">"</span></span>);
|
||||
Serial.print(client.state());
|
||||
Serial.println(<span class="string"><span class="delimiter">"</span><span class="content"> try again in 5 seconds</span><span class="delimiter">"</span></span>);
|
||||
<span class="preprocessor">#endif</span>
|
||||
delay(<span class="integer">5000</span>);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
<span class="directive">void</span> setup() {
|
||||
Serial.begin(<span class="integer">57600</span>);
|
||||
client.setServer(mqttServer, mqttPort);
|
||||
Ethernet.begin(deviceMac, deviceIp);
|
||||
delay(<span class="integer">1500</span>);
|
||||
}
|
||||
|
||||
<span class="directive">void</span> loop() {
|
||||
<span class="keyword">if</span> (!client.connected()) {
|
||||
reconnect();
|
||||
}
|
||||
client.loop();
|
||||
|
||||
<span class="predefined-type">int</span> sensorValue = analogRead(sensorPin);
|
||||
<span class="preprocessor">#if</span> DEBUG
|
||||
Serial.print(<span class="string"><span class="delimiter">"</span><span class="content">Sensor value: </span><span class="delimiter">"</span></span>);
|
||||
Serial.println(sensorValue);
|
||||
<span class="preprocessor">#endif</span>
|
||||
client.publish(stateTopic, itoa(sensorValue, buf, <span class="integer">10</span>));
|
||||
delay(updateInterval);
|
||||
}
|
||||
</pre></td>
|
||||
</tr></table>
|
||||
</div>
|
||||
|
||||
<p>The Arduino will send the value of the sensor every second. To use the data in Home Assistant, add an additional MQTT sensor to the <code>configuration.yaml</code> file.</p>
|
||||
|
||||
<div class="highlighter-coderay"><table class="CodeRay"><tr>
|
||||
<td class="line-numbers"><pre><a href="#n1" name="n1">1</a>
|
||||
<a href="#n2" name="n2">2</a>
|
||||
<a href="#n3" name="n3">3</a>
|
||||
<a href="#n4" name="n4">4</a>
|
||||
</pre></td>
|
||||
<td class="code"><pre> - <span class="string"><span class="content">platform: mqtt</span></span>
|
||||
<span class="key">name</span>: <span class="string"><span class="delimiter">"</span><span class="content">Brightness</span><span class="delimiter">"</span></span>
|
||||
<span class="key">state_topic</span>: <span class="string"><span class="delimiter">"</span><span class="content">home-assistant/sensor01/brightness</span><span class="delimiter">"</span></span>
|
||||
<span class="key">unit_of_measurement</span>: <span class="string"><span class="delimiter">"</span><span class="content">cd</span><span class="delimiter">"</span></span>
|
||||
</pre></td>
|
||||
</tr></table>
|
||||
</div>
|
||||
|
||||
<p>After a restart of Home Assistant the values of your Arduino will be available.</p>
|
||||
|
||||
<p class="img">
|
||||
<img src="https://home-assistant.io/images/blog/2015-09-mqtt/arduino.png" />
|
||||
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>
|
||||
|
||||
|
|
|
@ -203,6 +203,12 @@
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/">Smarter SmartThings with MQTT and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/30/insteon-lifx-twitter-and-zigbee/">0.12: Insteon, LIFX, Twitter and ZigBee</a>
|
||||
</li>
|
||||
|
@ -226,12 +232,6 @@
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -258,6 +258,12 @@ This article will try to explain how they all relate.</p>
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/">Smarter SmartThings with MQTT and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/30/insteon-lifx-twitter-and-zigbee/">0.12: Insteon, LIFX, Twitter and ZigBee</a>
|
||||
</li>
|
||||
|
@ -281,12 +287,6 @@ This article will try to explain how they all relate.</p>
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -242,6 +242,12 @@ api_key=ABCDEFGHJKLMNOPQRSTUVXYZ
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/">Smarter SmartThings with MQTT and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/30/insteon-lifx-twitter-and-zigbee/">0.12: Insteon, LIFX, Twitter and ZigBee</a>
|
||||
</li>
|
||||
|
@ -265,12 +271,6 @@ api_key=ABCDEFGHJKLMNOPQRSTUVXYZ
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -217,6 +217,12 @@
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/">Smarter SmartThings with MQTT and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/30/insteon-lifx-twitter-and-zigbee/">0.12: Insteon, LIFX, Twitter and ZigBee</a>
|
||||
</li>
|
||||
|
@ -240,12 +246,6 @@
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -220,6 +220,12 @@ password=YOUR_PASSWORD
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/">Smarter SmartThings with MQTT and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/30/insteon-lifx-twitter-and-zigbee/">0.12: Insteon, LIFX, Twitter and ZigBee</a>
|
||||
</li>
|
||||
|
@ -243,12 +249,6 @@ password=YOUR_PASSWORD
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -226,6 +226,12 @@ Home Assistant now supports <code>--open-ui</code> and <code>--demo-mode</code>
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/">Smarter SmartThings with MQTT and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/30/insteon-lifx-twitter-and-zigbee/">0.12: Insteon, LIFX, Twitter and ZigBee</a>
|
||||
</li>
|
||||
|
@ -249,12 +255,6 @@ Home Assistant now supports <code>--open-ui</code> and <code>--demo-mode</code>
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -234,6 +234,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/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/">Smarter SmartThings with MQTT and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/30/insteon-lifx-twitter-and-zigbee/">0.12: Insteon, LIFX, Twitter and ZigBee</a>
|
||||
</li>
|
||||
|
@ -257,12 +263,6 @@ Events are saved in a local database. Google Graphs is used to draw the graph. D
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -219,6 +219,12 @@
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/">Smarter SmartThings with MQTT and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/30/insteon-lifx-twitter-and-zigbee/">0.12: Insteon, LIFX, Twitter and ZigBee</a>
|
||||
</li>
|
||||
|
@ -242,12 +248,6 @@
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -209,6 +209,12 @@
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/">Smarter SmartThings with MQTT and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/30/insteon-lifx-twitter-and-zigbee/">0.12: Insteon, LIFX, Twitter and ZigBee</a>
|
||||
</li>
|
||||
|
@ -232,12 +238,6 @@
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -210,6 +210,12 @@ The old logo, the new detailed logo and the new simple logo.
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/">Smarter SmartThings with MQTT and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/30/insteon-lifx-twitter-and-zigbee/">0.12: Insteon, LIFX, Twitter and ZigBee</a>
|
||||
</li>
|
||||
|
@ -233,12 +239,6 @@ The old logo, the new detailed logo and the new simple logo.
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -249,6 +249,12 @@ An initial version of voice control for Home Assistant has landed. The current i
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/">Smarter SmartThings with MQTT and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/30/insteon-lifx-twitter-and-zigbee/">0.12: Insteon, LIFX, Twitter and ZigBee</a>
|
||||
</li>
|
||||
|
@ -272,12 +278,6 @@ An initial version of voice control for Home Assistant has landed. The current i
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -286,6 +286,12 @@ I (Paulus) have contributed a scene component. A user can create scenes that cap
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/">Smarter SmartThings with MQTT and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/30/insteon-lifx-twitter-and-zigbee/">0.12: Insteon, LIFX, Twitter and ZigBee</a>
|
||||
</li>
|
||||
|
@ -309,12 +315,6 @@ I (Paulus) have contributed a scene component. A user can create scenes that cap
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -297,6 +297,12 @@
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/">Smarter SmartThings with MQTT and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/30/insteon-lifx-twitter-and-zigbee/">0.12: Insteon, LIFX, Twitter and ZigBee</a>
|
||||
</li>
|
||||
|
@ -320,12 +326,6 @@
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -232,6 +232,12 @@
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/">Smarter SmartThings with MQTT and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/30/insteon-lifx-twitter-and-zigbee/">0.12: Insteon, LIFX, Twitter and ZigBee</a>
|
||||
</li>
|
||||
|
@ -255,12 +261,6 @@
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -324,6 +324,12 @@ Before diving into the newly supported devices and services, I want to highlight
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/">Smarter SmartThings with MQTT and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/30/insteon-lifx-twitter-and-zigbee/">0.12: Insteon, LIFX, Twitter and ZigBee</a>
|
||||
</li>
|
||||
|
@ -347,12 +353,6 @@ Before diving into the newly supported devices and services, I want to highlight
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -377,6 +377,12 @@ This switch platform allows you to control your motion detection setting on your
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/">Smarter SmartThings with MQTT and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/30/insteon-lifx-twitter-and-zigbee/">0.12: Insteon, LIFX, Twitter and ZigBee</a>
|
||||
</li>
|
||||
|
@ -400,12 +406,6 @@ This switch platform allows you to control your motion detection setting on your
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -329,6 +329,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/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/">Smarter SmartThings with MQTT and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/30/insteon-lifx-twitter-and-zigbee/">0.12: Insteon, LIFX, Twitter and ZigBee</a>
|
||||
</li>
|
||||
|
@ -352,12 +358,6 @@ Fabian has added support for <a href="https://forecast.io/">Forecast.io</a> to g
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -318,6 +318,12 @@ Support for Temper temperature sensors has been contributed by <a href="https://
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/">Smarter SmartThings with MQTT and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/30/insteon-lifx-twitter-and-zigbee/">0.12: Insteon, LIFX, Twitter and ZigBee</a>
|
||||
</li>
|
||||
|
@ -341,12 +347,6 @@ Support for Temper temperature sensors has been contributed by <a href="https://
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -228,6 +228,12 @@
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/">Smarter SmartThings with MQTT and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/30/insteon-lifx-twitter-and-zigbee/">0.12: Insteon, LIFX, Twitter and ZigBee</a>
|
||||
</li>
|
||||
|
@ -251,12 +257,6 @@
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -337,6 +337,12 @@
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/">Smarter SmartThings with MQTT and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/30/insteon-lifx-twitter-and-zigbee/">0.12: Insteon, LIFX, Twitter and ZigBee</a>
|
||||
</li>
|
||||
|
@ -360,12 +366,6 @@
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -315,6 +315,12 @@
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/">Smarter SmartThings with MQTT and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/30/insteon-lifx-twitter-and-zigbee/">0.12: Insteon, LIFX, Twitter and ZigBee</a>
|
||||
</li>
|
||||
|
@ -338,12 +344,6 @@
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -518,6 +518,12 @@ PubSubClient client(ethClient);
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/">Smarter SmartThings with MQTT and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/30/insteon-lifx-twitter-and-zigbee/">0.12: Insteon, LIFX, Twitter and ZigBee</a>
|
||||
</li>
|
||||
|
@ -541,12 +547,6 @@ PubSubClient client(ethClient);
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -377,6 +377,12 @@
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/">Smarter SmartThings with MQTT and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/30/insteon-lifx-twitter-and-zigbee/">0.12: Insteon, LIFX, Twitter and ZigBee</a>
|
||||
</li>
|
||||
|
@ -400,12 +406,6 @@
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -278,6 +278,12 @@ Glances web server started on http://0.0.0.0:61208/
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/">Smarter SmartThings with MQTT and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/30/insteon-lifx-twitter-and-zigbee/">0.12: Insteon, LIFX, Twitter and ZigBee</a>
|
||||
</li>
|
||||
|
@ -301,12 +307,6 @@ Glances web server started on http://0.0.0.0:61208/
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -257,6 +257,12 @@ Automation has gotten a lot of love. It now supports conditions, multiple trigge
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/">Smarter SmartThings with MQTT and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/30/insteon-lifx-twitter-and-zigbee/">0.12: Insteon, LIFX, Twitter and ZigBee</a>
|
||||
</li>
|
||||
|
@ -280,12 +286,6 @@ Automation has gotten a lot of love. It now supports conditions, multiple trigge
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -233,6 +233,12 @@ Map in Home Assistant showing two people and three zones (home, school, work)
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/">Smarter SmartThings with MQTT and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/30/insteon-lifx-twitter-and-zigbee/">0.12: Insteon, LIFX, Twitter and ZigBee</a>
|
||||
</li>
|
||||
|
@ -256,12 +262,6 @@ Map in Home Assistant showing two people and three zones (home, school, work)
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -564,6 +564,12 @@ Adafruit_HDC1000 hdc = Adafruit_HDC1000();
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/">Smarter SmartThings with MQTT and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/30/insteon-lifx-twitter-and-zigbee/">0.12: Insteon, LIFX, Twitter and ZigBee</a>
|
||||
</li>
|
||||
|
@ -587,12 +593,6 @@ Adafruit_HDC1000 hdc = Adafruit_HDC1000();
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -222,6 +222,12 @@
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/">Smarter SmartThings with MQTT and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/30/insteon-lifx-twitter-and-zigbee/">0.12: Insteon, LIFX, Twitter and ZigBee</a>
|
||||
</li>
|
||||
|
@ -245,12 +251,6 @@
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -244,6 +244,12 @@ This makes more sense as most people run Home Assistant as a daemon</p>
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/">Smarter SmartThings with MQTT and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/30/insteon-lifx-twitter-and-zigbee/">0.12: Insteon, LIFX, Twitter and ZigBee</a>
|
||||
</li>
|
||||
|
@ -267,12 +273,6 @@ This makes more sense as most people run Home Assistant as a daemon</p>
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -240,6 +240,12 @@
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/">Smarter SmartThings with MQTT and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/30/insteon-lifx-twitter-and-zigbee/">0.12: Insteon, LIFX, Twitter and ZigBee</a>
|
||||
</li>
|
||||
|
@ -263,12 +269,6 @@
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -280,6 +280,12 @@
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/">Smarter SmartThings with MQTT and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/30/insteon-lifx-twitter-and-zigbee/">0.12: Insteon, LIFX, Twitter and ZigBee</a>
|
||||
</li>
|
||||
|
@ -303,12 +309,6 @@
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -213,6 +213,12 @@
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/">Smarter SmartThings with MQTT and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/30/insteon-lifx-twitter-and-zigbee/">0.12: Insteon, LIFX, Twitter and ZigBee</a>
|
||||
</li>
|
||||
|
@ -236,12 +242,6 @@
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -222,6 +222,12 @@
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/">Smarter SmartThings with MQTT and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/30/insteon-lifx-twitter-and-zigbee/">0.12: Insteon, LIFX, Twitter and ZigBee</a>
|
||||
</li>
|
||||
|
@ -245,12 +251,6 @@
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -313,6 +313,12 @@ $ sudo systemctl status grafana-server
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/">Smarter SmartThings with MQTT and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/30/insteon-lifx-twitter-and-zigbee/">0.12: Insteon, LIFX, Twitter and ZigBee</a>
|
||||
</li>
|
||||
|
@ -336,12 +342,6 @@ $ sudo systemctl status grafana-server
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -263,6 +263,12 @@ requests.get(<span class="string"><span class="delimiter">'</span><span class="c
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/">Smarter SmartThings with MQTT and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/30/insteon-lifx-twitter-and-zigbee/">0.12: Insteon, LIFX, Twitter and ZigBee</a>
|
||||
</li>
|
||||
|
@ -286,12 +292,6 @@ requests.get(<span class="string"><span class="delimiter">'</span><span class="c
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -235,6 +235,12 @@ Philips Hue FAQ entries regarding 3rd party light bulbs.
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/">Smarter SmartThings with MQTT and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/30/insteon-lifx-twitter-and-zigbee/">0.12: Insteon, LIFX, Twitter and ZigBee</a>
|
||||
</li>
|
||||
|
@ -258,12 +264,6 @@ Philips Hue FAQ entries regarding 3rd party light bulbs.
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -300,6 +300,12 @@ sudo docker run -it --rm -p 443:443 -p 80:80 --name letsencrypt \
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/">Smarter SmartThings with MQTT and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/30/insteon-lifx-twitter-and-zigbee/">0.12: Insteon, LIFX, Twitter and ZigBee</a>
|
||||
</li>
|
||||
|
@ -323,8 +329,6 @@ sudo docker run -it --rm -p 443:443 -p 80:80 --name letsencrypt \
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -256,6 +256,12 @@
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/">Smarter SmartThings with MQTT and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/30/insteon-lifx-twitter-and-zigbee/">0.12: Insteon, LIFX, Twitter and ZigBee</a>
|
||||
</li>
|
||||
|
@ -275,12 +281,6 @@
|
|||
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -236,6 +236,12 @@
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/">Smarter SmartThings with MQTT and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/30/insteon-lifx-twitter-and-zigbee/">0.12: Insteon, LIFX, Twitter and ZigBee</a>
|
||||
</li>
|
||||
|
@ -255,12 +261,6 @@
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -240,6 +240,12 @@
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/">Smarter SmartThings with MQTT and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/30/insteon-lifx-twitter-and-zigbee/">0.12: Insteon, LIFX, Twitter and ZigBee</a>
|
||||
</li>
|
||||
|
@ -259,12 +265,6 @@
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -242,6 +242,12 @@ Example of the new views in the frontend. <a href="/components/group/">Learn mor
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/">Smarter SmartThings with MQTT and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
|
@ -261,12 +267,6 @@ Example of the new views in the frontend. <a href="/components/group/">Learn mor
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -0,0 +1,512 @@
|
|||
<!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>Smarter SmartThings with MQTT and Home Assistant - Home Assistant</title>
|
||||
<meta name="author" content="Paulus Schoutsen">
|
||||
<meta name="description" content="Jer and St. John describe how they connected SmartThings with Home Assistant.">
|
||||
|
||||
<meta name="viewport" content="width=device-width">
|
||||
<link rel="canonical" href="https://home-assistant.io/blog/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/">
|
||||
|
||||
<meta property="fb:app_id" content="338291289691179">
|
||||
<meta property="og:title" content="Smarter SmartThings with MQTT and Home Assistant">
|
||||
<meta property="og:site_name" content="Home Assistant">
|
||||
<meta property="og:url" content="https://home-assistant.io/blog/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/">
|
||||
<meta property="og:type" content="article">
|
||||
<meta property="og:description" content="Jer and St. John describe how they connected SmartThings with Home Assistant.">
|
||||
<meta property="og:image" content="https://home-assistant.io/images/blog/2016-02-smartthings/social.png">
|
||||
|
||||
<meta name="twitter:card" content="summary_large_image">
|
||||
<meta name="twitter:site" content="@home_assistant">
|
||||
|
||||
<meta name="twitter:title" content="Smarter SmartThings with MQTT and Home Assistant">
|
||||
<meta name="twitter:description" content="Jer and St. John describe how they connected SmartThings with Home Assistant.">
|
||||
<meta name="twitter:image" content="https://home-assistant.io/images/blog/2016-02-smartthings/social.png">
|
||||
|
||||
<link href="/stylesheets/screen.css" media="screen, projection" rel="stylesheet">
|
||||
<link href="/atom.xml" rel="alternate" title="Home Assistant" type="application/atom+xml">
|
||||
<link rel='shortcut icon' href='/images/favicon.ico' />
|
||||
<link rel='icon' type='image/png' href='/images/favicon-192x192.png' sizes='192x192' />
|
||||
</head>
|
||||
|
||||
<body >
|
||||
|
||||
<header>
|
||||
<div class="grid-wrapper">
|
||||
<div class="grid">
|
||||
|
||||
<div class="grid__item three-tenths lap-two-sixths palm-one-whole ha-title">
|
||||
<a href="/" class="site-title">
|
||||
<img width='40' src='/demo/favicon-192x192.png'>
|
||||
<span>Home Assistant</span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="grid__item seven-tenths lap-four-sixths palm-one-whole">
|
||||
<nav>
|
||||
<input type="checkbox" id="toggle">
|
||||
<label for="toggle" class="toggle" data-open="Main Menu" data-close="Close Menu"></label>
|
||||
<ul class="menu pull-right">
|
||||
<li>
|
||||
<a>Getting started <i class="icon icon-caret-down"></i></a>
|
||||
<ul>
|
||||
<li><a href='/getting-started/'>Installing Home Assistant</a></li>
|
||||
<li><a href='/getting-started/configuration/'>Configuration basics</a></li>
|
||||
<li><a href='/getting-started/devices/'>Adding devices</a></li>
|
||||
<li><a href='/getting-started/presence-detection/'>Presence detection</a></li>
|
||||
<li><a href='/getting-started/automation/'>Automation</a></li>
|
||||
<li><a href='/getting-started/templating/'>Templating</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href='/components/'>Components</a></li>
|
||||
<li><a href='/cookbook'>Examples</a></li>
|
||||
<li>
|
||||
<a>Developers <i class="icon icon-caret-down"></i></a>
|
||||
<ul>
|
||||
<li><a href="/developers/">Setup Development</a></li>
|
||||
<li><a href="/developers/architecture/">Architecture</a></li>
|
||||
<li><a href="/developers/frontend/">Frontend development</a></li>
|
||||
<li><a href="/developers/creating_components/">
|
||||
Creating components
|
||||
</a></li>
|
||||
<li><a href="/developers/add_new_platform/">
|
||||
Adding platform support
|
||||
</a></li>
|
||||
<li><a href="/developers/api/">API</a></li>
|
||||
<li><a href="/developers/credits/">Credits</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="/blog/">Blog</a></li>
|
||||
<li><a href="/help/">Need help?</a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
|
||||
|
||||
<div class="grid-wrapper">
|
||||
<div class="grid grid-center">
|
||||
|
||||
<div class="grid__item two-thirds lap-one-whole palm-one-whole">
|
||||
|
||||
|
||||
<article class="post">
|
||||
|
||||
<header>
|
||||
|
||||
<h1 class="title indent">Smarter SmartThings with MQTT and Home Assistant</h1>
|
||||
|
||||
|
||||
|
||||
<div class="meta clearfix">
|
||||
<time datetime="2016-02-09T07:44:00+00:00" pubdate data-updated="true"><i class="icon-calendar"></i> February 09, 2016</time>
|
||||
<span class="byline author vcard"><i class='icon-user'></i> Jeremiah Wuenschel and St. John Johnson</span>
|
||||
<span><i class='icon-time'></i> eight 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>
|
||||
|
||||
<li><a class='category' href='/blog/categories/mqtt/'>MQTT</a></li>
|
||||
|
||||
|
||||
</ul>
|
||||
</span>
|
||||
|
||||
<a class='comments'
|
||||
href="#disqus_thread"
|
||||
>Comments</a>
|
||||
|
||||
</div>
|
||||
|
||||
</header>
|
||||
|
||||
|
||||
<p><em>This is a guest post by Home Assistant users <a href="https://github.com/jer">Jeremiah Wuenschel</a> and <a href="https://github.com/stjohnjohnson">St. John Johnson</a>.</em></p>
|
||||
|
||||
<p>So you own a <a href="http://smartthings.com">SmartThings</a> Hub. You probably bought it when you were looking to get into the whole Home Automation hobby because it worked with pretty much everything and offered you the ability to automate <strong>anything.</strong> After a week of ownership, you realized that building dashboards and automating required writing way more Groovy then you expected. Then one day you were browsing <a href="https://www.reddit.com/r/homeautomation">reddit</a> and discovered the amazingness that is Home Assistant! A solution that offered dashboards, graphs, working support for Nest, and REAL EASY automation!</p>
|
||||
|
||||
<p>You spent your weekend getting everything set up, showing it off to your significant other, but in the end you got stumped when it came to integrating with all your existing SmartThings toys. What do I do now? Should I buy another hub? Should I just buy a Z-Wave stick?</p>
|
||||
|
||||
<p>That’s where we came in. We wanted a solution that can bridge the awesomeness of Home Assistant with the SmartThings hub that works with almost everything.</p>
|
||||
|
||||
<p class="img">
|
||||
<img src="/images/blog/2016-02-smartthings/splash.png" />
|
||||
</p>
|
||||
|
||||
<a name="read-more"></a>
|
||||
|
||||
<h2>Glossary</h2>
|
||||
|
||||
<p>This is going to be a pretty detailed tutorial on setting up our SmartThings bridge. However, there are a couple key terms that <em>might</em> be new to you:</p>
|
||||
|
||||
<ul>
|
||||
<li><a href="https://en.wikipedia.org/wiki/MQTT">MQTT</a>: A lightweight message protocol for listening and publishing events that happen. Many home automation platforms have built in support for this <a href="/components/mqtt/">(especially Home Assistant)</a>.</li>
|
||||
<li><a href="https://www.docker.com/">Docker</a>: A tool for running applications that are self-contained. No need for installing any dependencies or worrying about conflicts. Installs easily on Linux and OSX.</li>
|
||||
</ul>
|
||||
|
||||
<h2>Setting up the Bridge</h2>
|
||||
|
||||
<h3>MQTT</h3>
|
||||
|
||||
<p>Assuming that you already have Home Assistant and Smart Things running, you will first want to get an MQTT broker running. There are a handful of <a href="http://mosquitto.org/">MQTT</a> <a href="https://github.com/emqtt/emqttd">brokers</a> available in Open Source land. We chose <a href="http://www.mosca.io/">Mosca</a> for its simplicity.</p>
|
||||
|
||||
<p>There is very little you need to do to get Mosca running. The easiest approach is to use <a href="https://www.docker.com/">Docker</a>, and run a command like the following:</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre>$ docker run \
|
||||
-d \
|
||||
--name="mqtt" \
|
||||
-v /opt/mosca:/db \
|
||||
-p 1883:1883 \
|
||||
matteocollina/mosca
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>This will start Mosca up inside of a docker container, while keeping persistent storage for Mosca in <code>/opt/mosca</code>. The default configuration is the only thing we need to get things up and running.</p>
|
||||
|
||||
<p>If you don’t want to mess with Docker and can get node.js installed without trouble, the <a href="https://github.com/mcollina/mosca#standalone">standalone</a> instructions are all you need.</p>
|
||||
|
||||
<h3>MQTT Bridge</h3>
|
||||
|
||||
<p>This is the small piece of magic that bridges the gap between MQTT and SmartThings. It is a node.js app, and like Mosca it is probably easiest to install with Docker:</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre>$ docker run \
|
||||
-d \
|
||||
--name="mqtt-bridge" \
|
||||
-v /opt/mqtt-bridge:/config \
|
||||
-p 8080:8080 \
|
||||
stjohnjohnson/smartthings-mqtt-bridge
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>The code for this bridge is <a href="https://github.com/stjohnjohnson/smartthings-mqtt-bridge">on Github</a> if you want to start it up independently.</p>
|
||||
|
||||
<p>The MQTT Bridge only needs to know where your MQTT broker lives. If you are using these docker commands as-is, edit <code>/opt/mqtt-bridge/config.yml</code> to look like this:</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre><span class="head"><span class="head">---</span></span>
|
||||
<span class="key">mqtt</span>:
|
||||
<span class="key">host</span>: <span class="string"><span class="content"><IP of the host></span></span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>Restart the bridge, and you are ready to go:</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre>$ docker restart mqtt-bridge
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h3>SmartThings Device</h3>
|
||||
|
||||
<p>The next step (and possibly the most confusing) is the device type. Go to the <a href="https://graph.api.smartthings.com/ide/devices">Smart Things Device IDE</a> and <code>Create New Device Handler</code>. Choose <code>From Code</code> and paste in the <a href="https://github.com/stjohnjohnson/smartthings-mqtt-bridge/blob/master/devicetypes/stj/mqtt-bridge.src/mqtt-bridge.groovy">MQTT Bridge Device Code</a>. Click <code>Save</code>, <code>Publish</code>, and then <code>For Me</code>.</p>
|
||||
|
||||
<p>Now to install your new Device Handler. Go back to <code>My Devices</code> in the IDE, and click <code>New Device</code>. Enter a name, and pick any random set of characters for the Device Network Id (this will automatically update later). For Type, scroll to the bottom of the list and find your newly created <code>MQTT Bridge</code>. Fill in the other boxes however you like.</p>
|
||||
|
||||
<p>Go back to <code>My Devices</code>, and click on your new device in the list. This will bring up a page that allows you to edit your device’s Preferences. Click <code>edit</code> and fill in the 3 pieces of information it asks for.</p>
|
||||
|
||||
<ul>
|
||||
<li>MQTT Bridge IP Address: <IP address of the MQTT Bridge from the previous step></li>
|
||||
<li>MQTT Bridge Port: <8080 if you have changed nothing in the previous commands></li>
|
||||
<li>MQTT Bridge MAC Address: <Mac address of machine running the Bridge code></li>
|
||||
</ul>
|
||||
|
||||
<p>This will create the link between SmartThings and the MQTT Bridge.</p>
|
||||
|
||||
<h3>SmartThings App</h3>
|
||||
|
||||
<p>The last step is to setup the SmartApp. After this, any registered devices will start sending their events to MQTT.</p>
|
||||
|
||||
<p>Go to the <a href="https://graph.api.smartthings.com/ide/apps">Smart App IDE</a>. Click <code>New SmartApp</code>, followed by <code>From Code</code>. Paste in the <a href="https://github.com/stjohnjohnson/smartthings-mqtt-bridge/blob/master/smartapps/stj/mqtt-bridge.src/mqtt-bridge.groovy">MQTT Bridge SmartApp code</a> and click <code>Save</code>. Click <code>Publish</code> and then <code>For Me</code>. In the SmartThings mobile app, add the new SmartApp and configure it with your devices and MQTT Bridge device. Clicking <code>done</code> will subscribe SmartThings to your MQTT broker and begin 2-way propagation of events.</p>
|
||||
|
||||
<h3>Configure Home Assistant</h3>
|
||||
|
||||
<p>To add SmartThings devices to Home Assistant over MQTT, first enable MQTT in Home Assistant:</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre><span class="key">mqtt</span>:
|
||||
<span class="key">broker</span>: <span class="string"><span class="content">localhost</span></span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>Replace <code>localhost</code> with the location of the running MQTT Broker. Devices from the MQTT Bridge are published to the path <code>/smartthings/<Device Name>/<Atribute></code></p>
|
||||
|
||||
<p>For example, my Dimmer Z-Wave Lamp is called “Fireplace Lights” in SmartThings. The following topics are published:</p>
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Topic</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>/smartthings/Fireplace Lights/level</td>
|
||||
<td>Brightness (0-99)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>/smartthings/Fireplace Lights/switch</td>
|
||||
<td>Switch State (on/off)</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<p>Here is an example Home Assistant config:</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre><span class="key">switch</span>:
|
||||
<span class="key">platform</span>: <span class="string"><span class="content">mqtt</span></span>
|
||||
<span class="key">name</span>: <span class="string"><span class="delimiter">"</span><span class="content">Fireplace Lights</span><span class="delimiter">"</span></span>
|
||||
<span class="key">state_topic</span>: <span class="string"><span class="delimiter">"</span><span class="content">/smartthings/Fireplace Lights/switch</span><span class="delimiter">"</span></span>
|
||||
<span class="key">command_topic</span>: <span class="string"><span class="delimiter">"</span><span class="content">/smartthings/Fireplace Lights/switch</span><span class="delimiter">"</span></span>
|
||||
<span class="key">brightness_state_topic</span>: <span class="string"><span class="delimiter">"</span><span class="content">/smartthings/Fireplace Lights/level</span><span class="delimiter">"</span></span>
|
||||
<span class="key">brightness_command_topic</span>: <span class="string"><span class="delimiter">"</span><span class="content">/smartthings/Fireplace Lights/level</span><span class="delimiter">"</span></span>
|
||||
<span class="key">payload_on</span>: <span class="string"><span class="delimiter">"</span><span class="content">on</span><span class="delimiter">"</span></span>
|
||||
<span class="key">payload_off</span>: <span class="string"><span class="delimiter">"</span><span class="content">off</span><span class="delimiter">"</span></span>
|
||||
<span class="key">retain</span>: <span class="string"><span class="content">true</span></span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>We recommend <code>retain: true</code> for every MQTT device in order to keep states in sync when things become disconnected.</p>
|
||||
|
||||
<p>Start digging through the <a href="/components/mqtt/">MQTT Components</a> in Home Assistant to find which components map to the new events being published to MQTT.</p>
|
||||
|
||||
<h3>Configuring with Docker-Compose</h3>
|
||||
|
||||
<p>Our personal preference for starting the whole suite of software is to use a single Docker-Compose file. Just create a file called <code>docker-compose.yml</code> like this:</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre><span class="key">mqtt</span>:
|
||||
<span class="key">image</span>: <span class="string"><span class="content">matteocollina/mosca</span></span>
|
||||
<span class="key">ports</span>:
|
||||
- <span class="string"><span class="content">1883:1883</span></span>
|
||||
|
||||
<span class="key">mqttbridge</span>:
|
||||
<span class="key">image</span>: <span class="string"><span class="content">stjohnjohnson/smartthings-mqtt-bridge</span></span>
|
||||
<span class="key">volumes</span>:
|
||||
- <span class="string"><span class="content">./mqtt-bridge:/config</span></span>
|
||||
<span class="key">ports</span>:
|
||||
- <span class="string"><span class="content">8080:8080</span></span>
|
||||
<span class="key">links</span>:
|
||||
- <span class="string"><span class="content">mqtt</span></span>
|
||||
|
||||
<span class="key">homeassistant</span>:
|
||||
<span class="key">image</span>: <span class="string"><span class="content">balloob/home-assistant</span></span>
|
||||
<span class="key">ports</span>:
|
||||
- <span class="string"><span class="content">80:80</span></span>
|
||||
<span class="key">volumes</span>:
|
||||
- <span class="string"><span class="content">./home-assistant:/config</span></span>
|
||||
- <span class="string"><span class="content">/etc/localtime:/etc/localtime:ro</span></span>
|
||||
<span class="key">links</span>:
|
||||
- <span class="string"><span class="content">mqtt</span></span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>This will start home-assistant, MQTT, and the Bridge, in dependency order. All config can reference the name of the docker container instead of using IP addresses (e.g. mqtt for the broker host in Home Assistant).</p>
|
||||
|
||||
<h3>How it works</h3>
|
||||
|
||||
<p><strong>HTTP Endpoint</strong>: There are really only 2 ways to communicate with the SmartThings hub that we could find. The easiest approach is to create a RESTful SmartApp authenticated with OAuth that provides state changes via HTTP directly. This approach is pretty straightforward to implement, but it requires communication with the SmartThings cloud service, and can’t be done entirely on your LAN. We hoped to keep all communication internal, and came up with a second approach.</p>
|
||||
|
||||
<p><strong>Custom Device Type:</strong> SmartThings custom device types allow developers to define handlers for HTTP events received directly over the local network by the SmartThings hub. Messages received are authenticated by MAC address, and can contain arbitrary strings in their payload. Since a Device Type is only ever tied to a single device, we need to add a SmartApp to the mix in order to translate events between individual devices and our special Home Assistant Bridge device. Here is what we have so far:</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre>Z-Wave Switch |
|
||||
Zigbee motion sensor |<---> Bridge App <---> Bridge Device Type <---> <Local network>
|
||||
Z-Wave light bulb |
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>On the Home Assistant side, there is a powerful platform available based on the MQTT lightweight message bus protocol. Everything from lights to switches to temperature sensors can be defined in Home Assistant as an MQTT component, so it makes for a convenient integration point. This requires an MQTT broker for handling the message bus, and one last piece to translate between the HTTP that SmartThings supports and MQTT.</p>
|
||||
|
||||
<p>Here is the final sequence of events:</p>
|
||||
|
||||
<p class="img">
|
||||
<a href="/images/blog/2016-02-smartthings/SmartThings-HomeAssistant.png">
|
||||
<img src="/images/blog/2016-02-smartthings/SmartThings-HomeAssistant.png" alt="SmartThings Bridge Sequence" />
|
||||
</a>
|
||||
SmartThings Bridge Sequence
|
||||
</p>
|
||||
|
||||
<p>There are a lot of stops along the way for these events, but each piece is a simple translation layer to shuttle the events between systems.</p>
|
||||
|
||||
<h3>Future Improvements</h3>
|
||||
<ul>
|
||||
<li><strong>Raspberry pi</strong>: There is a lot of interest in getting this running on the Raspberry Pi. It only requires binaries compiled for ARM, so we plan to get ARM-compatible versions of the containers going at some point.</li>
|
||||
<li><strong>Authentication for MQTT</strong>: At the moment, the MQTT bridge doesn’t understand how to authenticate to MQTT, so only unauthenticated MQTT is supported. This is mitigated to some degree if you use our Docker Compose config, because MQTT’s port is not actually shared publicly.</li>
|
||||
<li><strong>Authentication for MQTT Bridge</strong>: Right now the bridge expects that anyone subscribing is the SmartThings hub. This could use proper authentication.</li>
|
||||
</ul>
|
||||
</article>
|
||||
|
||||
|
||||
<section id="disqus">
|
||||
<h3 class="indent title">Comments</h3>
|
||||
<div id="disqus_thread" aria-live="polite"><noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript></div>
|
||||
</section>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<aside id="sidebar" class="grid__item one-third lap-one-whole palm-one-whole">
|
||||
<div class="grid">
|
||||
|
||||
|
||||
<section class="aside-module grid__item one-whole lap-one-half">
|
||||
<h1 class="title delta">About Home Assistant</h1>
|
||||
<ul class="divided">
|
||||
<li>
|
||||
Home Assistant is an open-source home automation platform running on Python 3. Track and control all devices at home and automate control.
|
||||
</li>
|
||||
<li><a href='/getting-started/'>Get started with Home Assistant</a></li>
|
||||
<li><a href='/demo/'>Try the online demo</a></li>
|
||||
<li><a class="twitter-follow-button" href="https://twitter.com/Home_Assistant">Follow Home Assistant on Twitter</a></li>
|
||||
</ul>
|
||||
</section>
|
||||
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.async=true;js.src='//platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
|
||||
|
||||
|
||||
<section class="sharing aside-module grid__item one-whole lap-one-half">
|
||||
<h1 class="title delta">Share this post</h1>
|
||||
|
||||
<a href="//twitter.com/share"
|
||||
class="twitter-share-button"
|
||||
data-via="home_assistant"
|
||||
data-related="home_assistant"
|
||||
data-url="https://home-assistant.io/blog/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/"
|
||||
data-counturl="https://home-assistant.io/blog/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/" >Tweet</a>
|
||||
|
||||
|
||||
<div class="fb-share-button" style='top: -6px;'
|
||||
data-href="https://home-assistant.io/blog/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/"
|
||||
data-layout="button_count">
|
||||
</div>
|
||||
|
||||
|
||||
<div class="g-plusone" data-size="standard"></div>
|
||||
|
||||
</section>
|
||||
|
||||
<script src="https://apis.google.com/js/platform.js" async defer></script>
|
||||
<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.async = true;
|
||||
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">Recent Posts</h1>
|
||||
<ul class="divided">
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/30/insteon-lifx-twitter-and-zigbee/">0.12: Insteon, LIFX, Twitter and ZigBee</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/19/perfect-home-automation/">Perfect Home Automation</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/17/extended-support-for-diy-solutions/">0.11: Extended support for DIY solutions</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2015/12/22/amazon-echo-icloud-and-templates/">0.10: Amazon Echo, iCloud, Dweet.io, Twitch and templating support!</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
||||
</div>
|
||||
</aside>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<footer>
|
||||
<div class="grid-wrapper">
|
||||
<div class="grid">
|
||||
<div class="grid__item">
|
||||
<div class="copyright">
|
||||
<a rel="me" href='https://twitter.com/home_assistant'><i class="icon-twitter"></i></a>
|
||||
<a rel="me" href='https://github.com/balloob/home-assistant'><i class="icon-github"></i></a>
|
||||
|
||||
<div class="credit">
|
||||
Website powered by <a href='http://jekyllrb.com/'>Jekyll</a> and the <a href='https://github.com/coogie/oscailte'>Oscalite theme</a>.<br />
|
||||
Hosted by <a href='https://pages.github.com/'>GitHub</a> and served by <a href='https://cloudflare.com'>CloudFlare</a>.
|
||||
</div>
|
||||
</div>
|
||||
</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/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/';
|
||||
var disqus_url = 'https://home-assistant.io/blog/2016/02/09/smarter-smart-things-with-mqtt-and-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>
|
|
@ -122,6 +122,40 @@
|
|||
|
||||
<h2>2016</h2>
|
||||
|
||||
<article>
|
||||
<div class="grid">
|
||||
|
||||
<div class="grid__item one-fifth palm-one-whole">
|
||||
<time datetime="2016-02-09T07:44:00+00:00" pubdate>
|
||||
<span class='month'>Feb</span> <span class='day'>09</span>
|
||||
</time>
|
||||
</div>
|
||||
<div class="grid__item four-fifths palm-one-whole">
|
||||
<h1 class="gamma"><a href="/blog/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/">Smarter SmartThings with MQTT and 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>
|
||||
|
||||
<li><a class='category' href='/blog/categories/mqtt/'>MQTT</a></li>
|
||||
|
||||
|
||||
</ul>
|
||||
</span>
|
||||
</footer>
|
||||
|
||||
<hr class="divider">
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</article>
|
||||
|
||||
|
||||
|
||||
<article>
|
||||
<div class="grid">
|
||||
|
||||
|
@ -1513,6 +1547,12 @@
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/">Smarter SmartThings with MQTT and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/30/insteon-lifx-twitter-and-zigbee/">0.12: Insteon, LIFX, Twitter and ZigBee</a>
|
||||
</li>
|
||||
|
@ -1536,12 +1576,6 @@
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -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>2016-02-08T17:11:51+00:00</updated>
|
||||
<updated>2016-02-09T07:49:53+00:00</updated>
|
||||
<id>https://home-assistant.io/</id>
|
||||
<author>
|
||||
<name><![CDATA[Paulus Schoutsen]]></name>
|
||||
|
|
|
@ -254,6 +254,12 @@
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/">Smarter SmartThings with MQTT and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/30/insteon-lifx-twitter-and-zigbee/">0.12: Insteon, LIFX, Twitter and ZigBee</a>
|
||||
</li>
|
||||
|
@ -277,12 +283,6 @@
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -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>2016-02-08T17:11:51+00:00</updated>
|
||||
<updated>2016-02-09T07:49:53+00:00</updated>
|
||||
<id>https://home-assistant.io/</id>
|
||||
<author>
|
||||
<name><![CDATA[Paulus Schoutsen]]></name>
|
||||
|
|
|
@ -254,6 +254,12 @@
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/">Smarter SmartThings with MQTT and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/30/insteon-lifx-twitter-and-zigbee/">0.12: Insteon, LIFX, Twitter and ZigBee</a>
|
||||
</li>
|
||||
|
@ -277,12 +283,6 @@
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<title><![CDATA[Category: Community | Home Assistant]]></title>
|
||||
<link href="https://home-assistant.io/blog/categories/community/atom.xml" rel="self"/>
|
||||
<link href="https://home-assistant.io/"/>
|
||||
<updated>2016-02-08T17:11:51+00:00</updated>
|
||||
<updated>2016-02-09T07:49:53+00:00</updated>
|
||||
<id>https://home-assistant.io/</id>
|
||||
<author>
|
||||
<name><![CDATA[Paulus Schoutsen]]></name>
|
||||
|
|
|
@ -219,6 +219,12 @@
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/">Smarter SmartThings with MQTT and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/30/insteon-lifx-twitter-and-zigbee/">0.12: Insteon, LIFX, Twitter and ZigBee</a>
|
||||
</li>
|
||||
|
@ -242,12 +248,6 @@
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<title><![CDATA[Category: ESP8266 | Home Assistant]]></title>
|
||||
<link href="https://home-assistant.io/blog/categories/esp8266/atom.xml" rel="self"/>
|
||||
<link href="https://home-assistant.io/"/>
|
||||
<updated>2016-02-08T17:11:51+00:00</updated>
|
||||
<updated>2016-02-09T07:49:53+00:00</updated>
|
||||
<id>https://home-assistant.io/</id>
|
||||
<author>
|
||||
<name><![CDATA[Paulus Schoutsen]]></name>
|
||||
|
|
|
@ -223,6 +223,12 @@
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/">Smarter SmartThings with MQTT and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/30/insteon-lifx-twitter-and-zigbee/">0.12: Insteon, LIFX, Twitter and ZigBee</a>
|
||||
</li>
|
||||
|
@ -246,12 +252,6 @@
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<title><![CDATA[Category: How-To | Home Assistant]]></title>
|
||||
<link href="https://home-assistant.io/blog/categories/how-to/atom.xml" rel="self"/>
|
||||
<link href="https://home-assistant.io/"/>
|
||||
<updated>2016-02-08T17:11:51+00:00</updated>
|
||||
<updated>2016-02-09T07:49:53+00:00</updated>
|
||||
<id>https://home-assistant.io/</id>
|
||||
<author>
|
||||
<name><![CDATA[Paulus Schoutsen]]></name>
|
||||
|
@ -13,6 +13,240 @@
|
|||
<generator uri="http://octopress.org/">Octopress</generator>
|
||||
|
||||
|
||||
<entry>
|
||||
<title type="html"><![CDATA[Smarter SmartThings with MQTT and Home Assistant]]></title>
|
||||
<link href="https://home-assistant.io/blog/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/"/>
|
||||
<updated>2016-02-09T07:44:00+00:00</updated>
|
||||
<id>https://home-assistant.io/blog/2016/02/09/Smarter-Smart-Things-with-MQTT-and-Home-Assistant</id>
|
||||
<content type="html"><![CDATA[<p><em>This is a guest post by Home Assistant users <a href="https://github.com/jer">Jeremiah Wuenschel</a> and <a href="https://github.com/stjohnjohnson">St. John Johnson</a>.</em></p>
|
||||
|
||||
<p>So you own a <a href="http://smartthings.com">SmartThings</a> Hub. You probably bought it when you were looking to get into the whole Home Automation hobby because it worked with pretty much everything and offered you the ability to automate <strong>anything.</strong> After a week of ownership, you realized that building dashboards and automating required writing way more Groovy then you expected. Then one day you were browsing <a href="https://www.reddit.com/r/homeautomation">reddit</a> and discovered the amazingness that is Home Assistant! A solution that offered dashboards, graphs, working support for Nest, and REAL EASY automation!</p>
|
||||
|
||||
<p>You spent your weekend getting everything set up, showing it off to your significant other, but in the end you got stumped when it came to integrating with all your existing SmartThings toys. What do I do now? Should I buy another hub? Should I just buy a Z-Wave stick?</p>
|
||||
|
||||
<p>That’s where we came in. We wanted a solution that can bridge the awesomeness of Home Assistant with the SmartThings hub that works with almost everything.</p>
|
||||
|
||||
<p class="img">
|
||||
<img src="https://home-assistant.io/images/blog/2016-02-smartthings/splash.png" />
|
||||
</p>
|
||||
|
||||
<!--more-->
|
||||
|
||||
<h2>Glossary</h2>
|
||||
|
||||
<p>This is going to be a pretty detailed tutorial on setting up our SmartThings bridge. However, there are a couple key terms that <em>might</em> be new to you:</p>
|
||||
|
||||
<ul>
|
||||
<li><a href="https://en.wikipedia.org/wiki/MQTT">MQTT</a>: A lightweight message protocol for listening and publishing events that happen. Many home automation platforms have built in support for this <a href="/components/mqtt/">(especially Home Assistant)</a>.</li>
|
||||
<li><a href="https://www.docker.com/">Docker</a>: A tool for running applications that are self-contained. No need for installing any dependencies or worrying about conflicts. Installs easily on Linux and OSX.</li>
|
||||
</ul>
|
||||
|
||||
<h2>Setting up the Bridge</h2>
|
||||
|
||||
<h3>MQTT</h3>
|
||||
|
||||
<p>Assuming that you already have Home Assistant and Smart Things running, you will first want to get an MQTT broker running. There are a handful of <a href="http://mosquitto.org/">MQTT</a> <a href="https://github.com/emqtt/emqttd">brokers</a> available in Open Source land. We chose <a href="http://www.mosca.io/">Mosca</a> for its simplicity.</p>
|
||||
|
||||
<p>There is very little you need to do to get Mosca running. The easiest approach is to use <a href="https://www.docker.com/">Docker</a>, and run a command like the following:</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre>$ docker run \
|
||||
-d \
|
||||
--name="mqtt" \
|
||||
-v /opt/mosca:/db \
|
||||
-p 1883:1883 \
|
||||
matteocollina/mosca
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>This will start Mosca up inside of a docker container, while keeping persistent storage for Mosca in <code>/opt/mosca</code>. The default configuration is the only thing we need to get things up and running.</p>
|
||||
|
||||
<p>If you don’t want to mess with Docker and can get node.js installed without trouble, the <a href="https://github.com/mcollina/mosca#standalone">standalone</a> instructions are all you need.</p>
|
||||
|
||||
<h3>MQTT Bridge</h3>
|
||||
|
||||
<p>This is the small piece of magic that bridges the gap between MQTT and SmartThings. It is a node.js app, and like Mosca it is probably easiest to install with Docker:</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre>$ docker run \
|
||||
-d \
|
||||
--name="mqtt-bridge" \
|
||||
-v /opt/mqtt-bridge:/config \
|
||||
-p 8080:8080 \
|
||||
stjohnjohnson/smartthings-mqtt-bridge
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>The code for this bridge is <a href="https://github.com/stjohnjohnson/smartthings-mqtt-bridge">on Github</a> if you want to start it up independently.</p>
|
||||
|
||||
<p>The MQTT Bridge only needs to know where your MQTT broker lives. If you are using these docker commands as-is, edit <code>/opt/mqtt-bridge/config.yml</code> to look like this:</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre><span class="head"><span class="head">---</span></span>
|
||||
<span class="key">mqtt</span>:
|
||||
<span class="key">host</span>: <span class="string"><span class="content"><IP of the host></span></span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>Restart the bridge, and you are ready to go:</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre>$ docker restart mqtt-bridge
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h3>SmartThings Device</h3>
|
||||
|
||||
<p>The next step (and possibly the most confusing) is the device type. Go to the <a href="https://graph.api.smartthings.com/ide/devices">Smart Things Device IDE</a> and <code>Create New Device Handler</code>. Choose <code>From Code</code> and paste in the <a href="https://github.com/stjohnjohnson/smartthings-mqtt-bridge/blob/master/devicetypes/stj/mqtt-bridge.src/mqtt-bridge.groovy">MQTT Bridge Device Code</a>. Click <code>Save</code>, <code>Publish</code>, and then <code>For Me</code>.</p>
|
||||
|
||||
<p>Now to install your new Device Handler. Go back to <code>My Devices</code> in the IDE, and click <code>New Device</code>. Enter a name, and pick any random set of characters for the Device Network Id (this will automatically update later). For Type, scroll to the bottom of the list and find your newly created <code>MQTT Bridge</code>. Fill in the other boxes however you like.</p>
|
||||
|
||||
<p>Go back to <code>My Devices</code>, and click on your new device in the list. This will bring up a page that allows you to edit your device’s Preferences. Click <code>edit</code> and fill in the 3 pieces of information it asks for.</p>
|
||||
|
||||
<ul>
|
||||
<li>MQTT Bridge IP Address: <IP address of the MQTT Bridge from the previous step></li>
|
||||
<li>MQTT Bridge Port: <8080 if you have changed nothing in the previous commands></li>
|
||||
<li>MQTT Bridge MAC Address: <Mac address of machine running the Bridge code></li>
|
||||
</ul>
|
||||
|
||||
<p>This will create the link between SmartThings and the MQTT Bridge.</p>
|
||||
|
||||
<h3>SmartThings App</h3>
|
||||
|
||||
<p>The last step is to setup the SmartApp. After this, any registered devices will start sending their events to MQTT.</p>
|
||||
|
||||
<p>Go to the <a href="https://graph.api.smartthings.com/ide/apps">Smart App IDE</a>. Click <code>New SmartApp</code>, followed by <code>From Code</code>. Paste in the <a href="https://github.com/stjohnjohnson/smartthings-mqtt-bridge/blob/master/smartapps/stj/mqtt-bridge.src/mqtt-bridge.groovy">MQTT Bridge SmartApp code</a> and click <code>Save</code>. Click <code>Publish</code> and then <code>For Me</code>. In the SmartThings mobile app, add the new SmartApp and configure it with your devices and MQTT Bridge device. Clicking <code>done</code> will subscribe SmartThings to your MQTT broker and begin 2-way propagation of events.</p>
|
||||
|
||||
<h3>Configure Home Assistant</h3>
|
||||
|
||||
<p>To add SmartThings devices to Home Assistant over MQTT, first enable MQTT in Home Assistant:</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre><span class="key">mqtt</span>:
|
||||
<span class="key">broker</span>: <span class="string"><span class="content">localhost</span></span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>Replace <code>localhost</code> with the location of the running MQTT Broker. Devices from the MQTT Bridge are published to the path <code>/smartthings/<Device Name>/<Atribute></code></p>
|
||||
|
||||
<p>For example, my Dimmer Z-Wave Lamp is called “Fireplace Lights” in SmartThings. The following topics are published:</p>
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Topic</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>/smartthings/Fireplace Lights/level</td>
|
||||
<td>Brightness (0-99)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>/smartthings/Fireplace Lights/switch</td>
|
||||
<td>Switch State (on/off)</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<p>Here is an example Home Assistant config:</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre><span class="key">switch</span>:
|
||||
<span class="key">platform</span>: <span class="string"><span class="content">mqtt</span></span>
|
||||
<span class="key">name</span>: <span class="string"><span class="delimiter">"</span><span class="content">Fireplace Lights</span><span class="delimiter">"</span></span>
|
||||
<span class="key">state_topic</span>: <span class="string"><span class="delimiter">"</span><span class="content">/smartthings/Fireplace Lights/switch</span><span class="delimiter">"</span></span>
|
||||
<span class="key">command_topic</span>: <span class="string"><span class="delimiter">"</span><span class="content">/smartthings/Fireplace Lights/switch</span><span class="delimiter">"</span></span>
|
||||
<span class="key">brightness_state_topic</span>: <span class="string"><span class="delimiter">"</span><span class="content">/smartthings/Fireplace Lights/level</span><span class="delimiter">"</span></span>
|
||||
<span class="key">brightness_command_topic</span>: <span class="string"><span class="delimiter">"</span><span class="content">/smartthings/Fireplace Lights/level</span><span class="delimiter">"</span></span>
|
||||
<span class="key">payload_on</span>: <span class="string"><span class="delimiter">"</span><span class="content">on</span><span class="delimiter">"</span></span>
|
||||
<span class="key">payload_off</span>: <span class="string"><span class="delimiter">"</span><span class="content">off</span><span class="delimiter">"</span></span>
|
||||
<span class="key">retain</span>: <span class="string"><span class="content">true</span></span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>We recommend <code>retain: true</code> for every MQTT device in order to keep states in sync when things become disconnected.</p>
|
||||
|
||||
<p>Start digging through the <a href="/components/mqtt/">MQTT Components</a> in Home Assistant to find which components map to the new events being published to MQTT.</p>
|
||||
|
||||
<h3>Configuring with Docker-Compose</h3>
|
||||
|
||||
<p>Our personal preference for starting the whole suite of software is to use a single Docker-Compose file. Just create a file called <code>docker-compose.yml</code> like this:</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre><span class="key">mqtt</span>:
|
||||
<span class="key">image</span>: <span class="string"><span class="content">matteocollina/mosca</span></span>
|
||||
<span class="key">ports</span>:
|
||||
- <span class="string"><span class="content">1883:1883</span></span>
|
||||
|
||||
<span class="key">mqttbridge</span>:
|
||||
<span class="key">image</span>: <span class="string"><span class="content">stjohnjohnson/smartthings-mqtt-bridge</span></span>
|
||||
<span class="key">volumes</span>:
|
||||
- <span class="string"><span class="content">./mqtt-bridge:/config</span></span>
|
||||
<span class="key">ports</span>:
|
||||
- <span class="string"><span class="content">8080:8080</span></span>
|
||||
<span class="key">links</span>:
|
||||
- <span class="string"><span class="content">mqtt</span></span>
|
||||
|
||||
<span class="key">homeassistant</span>:
|
||||
<span class="key">image</span>: <span class="string"><span class="content">balloob/home-assistant</span></span>
|
||||
<span class="key">ports</span>:
|
||||
- <span class="string"><span class="content">80:80</span></span>
|
||||
<span class="key">volumes</span>:
|
||||
- <span class="string"><span class="content">./home-assistant:/config</span></span>
|
||||
- <span class="string"><span class="content">/etc/localtime:/etc/localtime:ro</span></span>
|
||||
<span class="key">links</span>:
|
||||
- <span class="string"><span class="content">mqtt</span></span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>This will start home-assistant, MQTT, and the Bridge, in dependency order. All config can reference the name of the docker container instead of using IP addresses (e.g. mqtt for the broker host in Home Assistant).</p>
|
||||
|
||||
<h3>How it works</h3>
|
||||
|
||||
<p><strong>HTTP Endpoint</strong>: There are really only 2 ways to communicate with the SmartThings hub that we could find. The easiest approach is to create a RESTful SmartApp authenticated with OAuth that provides state changes via HTTP directly. This approach is pretty straightforward to implement, but it requires communication with the SmartThings cloud service, and can’t be done entirely on your LAN. We hoped to keep all communication internal, and came up with a second approach.</p>
|
||||
|
||||
<p><strong>Custom Device Type:</strong> SmartThings custom device types allow developers to define handlers for HTTP events received directly over the local network by the SmartThings hub. Messages received are authenticated by MAC address, and can contain arbitrary strings in their payload. Since a Device Type is only ever tied to a single device, we need to add a SmartApp to the mix in order to translate events between individual devices and our special Home Assistant Bridge device. Here is what we have so far:</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre>Z-Wave Switch |
|
||||
Zigbee motion sensor |<---> Bridge App <---> Bridge Device Type <---> <Local network>
|
||||
Z-Wave light bulb |
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>On the Home Assistant side, there is a powerful platform available based on the MQTT lightweight message bus protocol. Everything from lights to switches to temperature sensors can be defined in Home Assistant as an MQTT component, so it makes for a convenient integration point. This requires an MQTT broker for handling the message bus, and one last piece to translate between the HTTP that SmartThings supports and MQTT.</p>
|
||||
|
||||
<p>Here is the final sequence of events:</p>
|
||||
|
||||
<p class="img">
|
||||
<a href="https://home-assistant.io/images/blog/2016-02-smartthings/SmartThings-HomeAssistant.png">
|
||||
<img src="https://home-assistant.io/images/blog/2016-02-smartthings/SmartThings-HomeAssistant.png" alt="SmartThings Bridge Sequence" />
|
||||
</a>
|
||||
SmartThings Bridge Sequence
|
||||
</p>
|
||||
|
||||
<p>There are a lot of stops along the way for these events, but each piece is a simple translation layer to shuttle the events between systems.</p>
|
||||
|
||||
<h3>Future Improvements</h3>
|
||||
<ul>
|
||||
<li><strong>Raspberry pi</strong>: There is a lot of interest in getting this running on the Raspberry Pi. It only requires binaries compiled for ARM, so we plan to get ARM-compatible versions of the containers going at some point.</li>
|
||||
<li><strong>Authentication for MQTT</strong>: At the moment, the MQTT bridge doesn’t understand how to authenticate to MQTT, so only unauthenticated MQTT is supported. This is mitigated to some degree if you use our Docker Compose config, because MQTT’s port is not actually shared publicly.</li>
|
||||
<li><strong>Authentication for MQTT Bridge</strong>: Right now the bridge expects that anyone subscribing is the SmartThings hub. This could use proper authentication.</li>
|
||||
</ul>
|
||||
|
||||
]]></content>
|
||||
</entry>
|
||||
|
||||
<entry>
|
||||
<title type="html"><![CDATA[Set up encryption using Let's Encrypt]]></title>
|
||||
<link href="https://home-assistant.io/blog/2015/12/13/setup-encryption-using-lets-encrypt/"/>
|
||||
|
@ -672,90 +906,6 @@ Adafruit_HDC1000 hdc = Adafruit_HDC1000();
|
|||
</pre></td>
|
||||
</tr></table>
|
||||
</div>
|
||||
]]></content>
|
||||
</entry>
|
||||
|
||||
<entry>
|
||||
<title type="html"><![CDATA[Remote Monitoring with Glances]]></title>
|
||||
<link href="https://home-assistant.io/blog/2015/09/18/monitoring-with-glances-and-home-assistant/"/>
|
||||
<updated>2015-09-18T09:00:00+00:00</updated>
|
||||
<id>https://home-assistant.io/blog/2015/09/18/monitoring-with-glances-and-home-assistant</id>
|
||||
<content type="html"><![CDATA[<p><img src="https://home-assistant.io/images/supported_brands/glances.png" style="border:none; box-shadow: none; float: right;" height="80" /><br />
|
||||
Inspried by a <a href="https://github.com/balloob/home-assistant/issues/310">feature requests</a> I started looking into the available options to do monitoring of remote hosts. The feature request is about displaying system information in a similar way than the <a href="/components/sensor.systemmonitor/">systemmonitor</a> sensor does it for the local system. After a while I started to think that it would be a nice addition for a small home network where no full-blown system monitoring setup is present.</p>
|
||||
|
||||
<!--more-->
|
||||
|
||||
<p>The basic problem is to get the data from the remote host. Starting with <a href="https://pypi.python.org/pypi/psutil">psutil</a> that is used by the systemmonitor sensor, a possible solution is only a click away and named <a href="https://github.com/nicolargo/glances">Glances</a>. Glances has a nice curses-based interface and a <a href="https://github.com/nicolargo/glances/wiki/The-Glances-RESTFULL-JSON-API">RESTful API</a>.</p>
|
||||
|
||||
<p>The <a href="/components/sensor.glances/">Glances sensor</a> sensor uses that API to get all needed data.</p>
|
||||
|
||||
<p>In this post a default Fedora 22 Workstation installation is used on the host that should be monitored. In fact, it doesn’t matter if the system is the local one or a remote one as long as Glances is available. With some adjustments it should work on your own systems too. The difference will be the package and the firewall management tools.</p>
|
||||
|
||||
<p>First some extra packages are needed beside Glances, especially the <a href="http://bottlepy.org/docs/dev/index.html">bottle</a> webserver. I guess that Glances is available for your distribution as well. Otherwise follow those <a href="https://github.com/nicolargo/glances#installation">instructions</a>.</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre>$ sudo dnf -y install glances python-bottle
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>On Fedora the Firewall settings are strict. Let’s open port 61208 to allow other hosts to connect to that port. This is not needed if you just want to observe your local machine.</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre>$ sudo firewall-cmd --permanent --add-port=61208/tcp
|
||||
$ sudo firewall-cmd --reload
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>Launch <code>glances</code> and keep an eye on the output.</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre>$ glances -w
|
||||
Glances web server started on http://0.0.0.0:61208/
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>Now browse to http://IP_ADRRESS:61208/. You should see the webified view of Glances.</p>
|
||||
|
||||
<p class="img">
|
||||
<img src="https://home-assistant.io/images/blog/2015-09-glances/web-glances.png" />
|
||||
Glances web interface
|
||||
</p>
|
||||
|
||||
<p>Another check is to access the API located at http://IP_ADRRESS:61208/api/2/mem/used and to confirm that a detail about your memory usage is provided as a JSON response. If so, you are good to proceed.</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre>$ curl -X GET http://IP_ADDRESS:61208/api/2/mem/used
|
||||
{"used": 203943936}
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>Add the <a href="/components/sensor.glances/">glances sensor</a> entry to your <code>configuration.yaml</code> file and restart Home Assistant then.</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
|
||||
- <span class="string"><span class="content">platform: glances</span></span>
|
||||
<span class="key">name</span>: <span class="string"><span class="content">NAS</span></span>
|
||||
<span class="key">host</span>: <span class="string"><span class="content">IP_ADDRESS</span></span>
|
||||
<span class="key">resources</span>:
|
||||
- <span class="string"><span class="content">'disk_use_percent'</span></span>
|
||||
- <span class="string"><span class="content">'disk_use'</span></span>
|
||||
- <span class="string"><span class="content">'disk_free'</span></span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>If there are no error in the log file then you should see your new sensors.</p>
|
||||
|
||||
<p class="img">
|
||||
<img src="https://home-assistant.io/images/blog/2015-09-glances/sensors.png" />
|
||||
The Glances sensors
|
||||
</p>
|
||||
|
||||
<p><a href="https://github.com/nicolargo/glances">Glances</a> has a couple of optional dependencies which are extenting the range of provided information. This means that it would be possible to get details about the RAID system, HDD temperature, IP addresses, sensors, etc., please create a <a href="https://github.com/balloob/home-assistant/pulls">Pull request</a> with your additions or a <a href="https://github.com/balloob/home-assistant/issues/new">Feature request</a> if you want see more details in your Home Assistant frontend.</p>
|
||||
]]></content>
|
||||
</entry>
|
||||
|
||||
|
|
|
@ -120,6 +120,43 @@
|
|||
|
||||
|
||||
|
||||
<h2>2016</h2>
|
||||
|
||||
<article>
|
||||
<div class="grid">
|
||||
|
||||
<div class="grid__item one-fifth palm-one-whole">
|
||||
<time datetime="2016-02-09T07:44:00+00:00" pubdate>
|
||||
<span class='month'>Feb</span> <span class='day'>09</span>
|
||||
</time>
|
||||
</div>
|
||||
<div class="grid__item four-fifths palm-one-whole">
|
||||
<h1 class="gamma"><a href="/blog/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/">Smarter SmartThings with MQTT and 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>
|
||||
|
||||
<li><a class='category' href='/blog/categories/mqtt/'>MQTT</a></li>
|
||||
|
||||
|
||||
</ul>
|
||||
</span>
|
||||
</footer>
|
||||
|
||||
<hr class="divider">
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</article>
|
||||
|
||||
|
||||
|
||||
|
||||
<h2>2015</h2>
|
||||
|
||||
<article>
|
||||
|
@ -419,6 +456,12 @@
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/">Smarter SmartThings with MQTT and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/30/insteon-lifx-twitter-and-zigbee/">0.12: Insteon, LIFX, Twitter and ZigBee</a>
|
||||
</li>
|
||||
|
@ -442,12 +485,6 @@
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<title><![CDATA[Category: MQTT | Home Assistant]]></title>
|
||||
<link href="https://home-assistant.io/blog/categories/mqtt/atom.xml" rel="self"/>
|
||||
<link href="https://home-assistant.io/"/>
|
||||
<updated>2016-02-08T17:11:51+00:00</updated>
|
||||
<updated>2016-02-09T07:49:53+00:00</updated>
|
||||
<id>https://home-assistant.io/</id>
|
||||
<author>
|
||||
<name><![CDATA[Paulus Schoutsen]]></name>
|
||||
|
@ -13,6 +13,240 @@
|
|||
<generator uri="http://octopress.org/">Octopress</generator>
|
||||
|
||||
|
||||
<entry>
|
||||
<title type="html"><![CDATA[Smarter SmartThings with MQTT and Home Assistant]]></title>
|
||||
<link href="https://home-assistant.io/blog/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/"/>
|
||||
<updated>2016-02-09T07:44:00+00:00</updated>
|
||||
<id>https://home-assistant.io/blog/2016/02/09/Smarter-Smart-Things-with-MQTT-and-Home-Assistant</id>
|
||||
<content type="html"><![CDATA[<p><em>This is a guest post by Home Assistant users <a href="https://github.com/jer">Jeremiah Wuenschel</a> and <a href="https://github.com/stjohnjohnson">St. John Johnson</a>.</em></p>
|
||||
|
||||
<p>So you own a <a href="http://smartthings.com">SmartThings</a> Hub. You probably bought it when you were looking to get into the whole Home Automation hobby because it worked with pretty much everything and offered you the ability to automate <strong>anything.</strong> After a week of ownership, you realized that building dashboards and automating required writing way more Groovy then you expected. Then one day you were browsing <a href="https://www.reddit.com/r/homeautomation">reddit</a> and discovered the amazingness that is Home Assistant! A solution that offered dashboards, graphs, working support for Nest, and REAL EASY automation!</p>
|
||||
|
||||
<p>You spent your weekend getting everything set up, showing it off to your significant other, but in the end you got stumped when it came to integrating with all your existing SmartThings toys. What do I do now? Should I buy another hub? Should I just buy a Z-Wave stick?</p>
|
||||
|
||||
<p>That’s where we came in. We wanted a solution that can bridge the awesomeness of Home Assistant with the SmartThings hub that works with almost everything.</p>
|
||||
|
||||
<p class="img">
|
||||
<img src="https://home-assistant.io/images/blog/2016-02-smartthings/splash.png" />
|
||||
</p>
|
||||
|
||||
<!--more-->
|
||||
|
||||
<h2>Glossary</h2>
|
||||
|
||||
<p>This is going to be a pretty detailed tutorial on setting up our SmartThings bridge. However, there are a couple key terms that <em>might</em> be new to you:</p>
|
||||
|
||||
<ul>
|
||||
<li><a href="https://en.wikipedia.org/wiki/MQTT">MQTT</a>: A lightweight message protocol for listening and publishing events that happen. Many home automation platforms have built in support for this <a href="/components/mqtt/">(especially Home Assistant)</a>.</li>
|
||||
<li><a href="https://www.docker.com/">Docker</a>: A tool for running applications that are self-contained. No need for installing any dependencies or worrying about conflicts. Installs easily on Linux and OSX.</li>
|
||||
</ul>
|
||||
|
||||
<h2>Setting up the Bridge</h2>
|
||||
|
||||
<h3>MQTT</h3>
|
||||
|
||||
<p>Assuming that you already have Home Assistant and Smart Things running, you will first want to get an MQTT broker running. There are a handful of <a href="http://mosquitto.org/">MQTT</a> <a href="https://github.com/emqtt/emqttd">brokers</a> available in Open Source land. We chose <a href="http://www.mosca.io/">Mosca</a> for its simplicity.</p>
|
||||
|
||||
<p>There is very little you need to do to get Mosca running. The easiest approach is to use <a href="https://www.docker.com/">Docker</a>, and run a command like the following:</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre>$ docker run \
|
||||
-d \
|
||||
--name="mqtt" \
|
||||
-v /opt/mosca:/db \
|
||||
-p 1883:1883 \
|
||||
matteocollina/mosca
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>This will start Mosca up inside of a docker container, while keeping persistent storage for Mosca in <code>/opt/mosca</code>. The default configuration is the only thing we need to get things up and running.</p>
|
||||
|
||||
<p>If you don’t want to mess with Docker and can get node.js installed without trouble, the <a href="https://github.com/mcollina/mosca#standalone">standalone</a> instructions are all you need.</p>
|
||||
|
||||
<h3>MQTT Bridge</h3>
|
||||
|
||||
<p>This is the small piece of magic that bridges the gap between MQTT and SmartThings. It is a node.js app, and like Mosca it is probably easiest to install with Docker:</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre>$ docker run \
|
||||
-d \
|
||||
--name="mqtt-bridge" \
|
||||
-v /opt/mqtt-bridge:/config \
|
||||
-p 8080:8080 \
|
||||
stjohnjohnson/smartthings-mqtt-bridge
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>The code for this bridge is <a href="https://github.com/stjohnjohnson/smartthings-mqtt-bridge">on Github</a> if you want to start it up independently.</p>
|
||||
|
||||
<p>The MQTT Bridge only needs to know where your MQTT broker lives. If you are using these docker commands as-is, edit <code>/opt/mqtt-bridge/config.yml</code> to look like this:</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre><span class="head"><span class="head">---</span></span>
|
||||
<span class="key">mqtt</span>:
|
||||
<span class="key">host</span>: <span class="string"><span class="content"><IP of the host></span></span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>Restart the bridge, and you are ready to go:</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre>$ docker restart mqtt-bridge
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h3>SmartThings Device</h3>
|
||||
|
||||
<p>The next step (and possibly the most confusing) is the device type. Go to the <a href="https://graph.api.smartthings.com/ide/devices">Smart Things Device IDE</a> and <code>Create New Device Handler</code>. Choose <code>From Code</code> and paste in the <a href="https://github.com/stjohnjohnson/smartthings-mqtt-bridge/blob/master/devicetypes/stj/mqtt-bridge.src/mqtt-bridge.groovy">MQTT Bridge Device Code</a>. Click <code>Save</code>, <code>Publish</code>, and then <code>For Me</code>.</p>
|
||||
|
||||
<p>Now to install your new Device Handler. Go back to <code>My Devices</code> in the IDE, and click <code>New Device</code>. Enter a name, and pick any random set of characters for the Device Network Id (this will automatically update later). For Type, scroll to the bottom of the list and find your newly created <code>MQTT Bridge</code>. Fill in the other boxes however you like.</p>
|
||||
|
||||
<p>Go back to <code>My Devices</code>, and click on your new device in the list. This will bring up a page that allows you to edit your device’s Preferences. Click <code>edit</code> and fill in the 3 pieces of information it asks for.</p>
|
||||
|
||||
<ul>
|
||||
<li>MQTT Bridge IP Address: <IP address of the MQTT Bridge from the previous step></li>
|
||||
<li>MQTT Bridge Port: <8080 if you have changed nothing in the previous commands></li>
|
||||
<li>MQTT Bridge MAC Address: <Mac address of machine running the Bridge code></li>
|
||||
</ul>
|
||||
|
||||
<p>This will create the link between SmartThings and the MQTT Bridge.</p>
|
||||
|
||||
<h3>SmartThings App</h3>
|
||||
|
||||
<p>The last step is to setup the SmartApp. After this, any registered devices will start sending their events to MQTT.</p>
|
||||
|
||||
<p>Go to the <a href="https://graph.api.smartthings.com/ide/apps">Smart App IDE</a>. Click <code>New SmartApp</code>, followed by <code>From Code</code>. Paste in the <a href="https://github.com/stjohnjohnson/smartthings-mqtt-bridge/blob/master/smartapps/stj/mqtt-bridge.src/mqtt-bridge.groovy">MQTT Bridge SmartApp code</a> and click <code>Save</code>. Click <code>Publish</code> and then <code>For Me</code>. In the SmartThings mobile app, add the new SmartApp and configure it with your devices and MQTT Bridge device. Clicking <code>done</code> will subscribe SmartThings to your MQTT broker and begin 2-way propagation of events.</p>
|
||||
|
||||
<h3>Configure Home Assistant</h3>
|
||||
|
||||
<p>To add SmartThings devices to Home Assistant over MQTT, first enable MQTT in Home Assistant:</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre><span class="key">mqtt</span>:
|
||||
<span class="key">broker</span>: <span class="string"><span class="content">localhost</span></span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>Replace <code>localhost</code> with the location of the running MQTT Broker. Devices from the MQTT Bridge are published to the path <code>/smartthings/<Device Name>/<Atribute></code></p>
|
||||
|
||||
<p>For example, my Dimmer Z-Wave Lamp is called “Fireplace Lights” in SmartThings. The following topics are published:</p>
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Topic</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>/smartthings/Fireplace Lights/level</td>
|
||||
<td>Brightness (0-99)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>/smartthings/Fireplace Lights/switch</td>
|
||||
<td>Switch State (on/off)</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<p>Here is an example Home Assistant config:</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre><span class="key">switch</span>:
|
||||
<span class="key">platform</span>: <span class="string"><span class="content">mqtt</span></span>
|
||||
<span class="key">name</span>: <span class="string"><span class="delimiter">"</span><span class="content">Fireplace Lights</span><span class="delimiter">"</span></span>
|
||||
<span class="key">state_topic</span>: <span class="string"><span class="delimiter">"</span><span class="content">/smartthings/Fireplace Lights/switch</span><span class="delimiter">"</span></span>
|
||||
<span class="key">command_topic</span>: <span class="string"><span class="delimiter">"</span><span class="content">/smartthings/Fireplace Lights/switch</span><span class="delimiter">"</span></span>
|
||||
<span class="key">brightness_state_topic</span>: <span class="string"><span class="delimiter">"</span><span class="content">/smartthings/Fireplace Lights/level</span><span class="delimiter">"</span></span>
|
||||
<span class="key">brightness_command_topic</span>: <span class="string"><span class="delimiter">"</span><span class="content">/smartthings/Fireplace Lights/level</span><span class="delimiter">"</span></span>
|
||||
<span class="key">payload_on</span>: <span class="string"><span class="delimiter">"</span><span class="content">on</span><span class="delimiter">"</span></span>
|
||||
<span class="key">payload_off</span>: <span class="string"><span class="delimiter">"</span><span class="content">off</span><span class="delimiter">"</span></span>
|
||||
<span class="key">retain</span>: <span class="string"><span class="content">true</span></span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>We recommend <code>retain: true</code> for every MQTT device in order to keep states in sync when things become disconnected.</p>
|
||||
|
||||
<p>Start digging through the <a href="/components/mqtt/">MQTT Components</a> in Home Assistant to find which components map to the new events being published to MQTT.</p>
|
||||
|
||||
<h3>Configuring with Docker-Compose</h3>
|
||||
|
||||
<p>Our personal preference for starting the whole suite of software is to use a single Docker-Compose file. Just create a file called <code>docker-compose.yml</code> like this:</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre><span class="key">mqtt</span>:
|
||||
<span class="key">image</span>: <span class="string"><span class="content">matteocollina/mosca</span></span>
|
||||
<span class="key">ports</span>:
|
||||
- <span class="string"><span class="content">1883:1883</span></span>
|
||||
|
||||
<span class="key">mqttbridge</span>:
|
||||
<span class="key">image</span>: <span class="string"><span class="content">stjohnjohnson/smartthings-mqtt-bridge</span></span>
|
||||
<span class="key">volumes</span>:
|
||||
- <span class="string"><span class="content">./mqtt-bridge:/config</span></span>
|
||||
<span class="key">ports</span>:
|
||||
- <span class="string"><span class="content">8080:8080</span></span>
|
||||
<span class="key">links</span>:
|
||||
- <span class="string"><span class="content">mqtt</span></span>
|
||||
|
||||
<span class="key">homeassistant</span>:
|
||||
<span class="key">image</span>: <span class="string"><span class="content">balloob/home-assistant</span></span>
|
||||
<span class="key">ports</span>:
|
||||
- <span class="string"><span class="content">80:80</span></span>
|
||||
<span class="key">volumes</span>:
|
||||
- <span class="string"><span class="content">./home-assistant:/config</span></span>
|
||||
- <span class="string"><span class="content">/etc/localtime:/etc/localtime:ro</span></span>
|
||||
<span class="key">links</span>:
|
||||
- <span class="string"><span class="content">mqtt</span></span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>This will start home-assistant, MQTT, and the Bridge, in dependency order. All config can reference the name of the docker container instead of using IP addresses (e.g. mqtt for the broker host in Home Assistant).</p>
|
||||
|
||||
<h3>How it works</h3>
|
||||
|
||||
<p><strong>HTTP Endpoint</strong>: There are really only 2 ways to communicate with the SmartThings hub that we could find. The easiest approach is to create a RESTful SmartApp authenticated with OAuth that provides state changes via HTTP directly. This approach is pretty straightforward to implement, but it requires communication with the SmartThings cloud service, and can’t be done entirely on your LAN. We hoped to keep all communication internal, and came up with a second approach.</p>
|
||||
|
||||
<p><strong>Custom Device Type:</strong> SmartThings custom device types allow developers to define handlers for HTTP events received directly over the local network by the SmartThings hub. Messages received are authenticated by MAC address, and can contain arbitrary strings in their payload. Since a Device Type is only ever tied to a single device, we need to add a SmartApp to the mix in order to translate events between individual devices and our special Home Assistant Bridge device. Here is what we have so far:</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre>Z-Wave Switch |
|
||||
Zigbee motion sensor |<---> Bridge App <---> Bridge Device Type <---> <Local network>
|
||||
Z-Wave light bulb |
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>On the Home Assistant side, there is a powerful platform available based on the MQTT lightweight message bus protocol. Everything from lights to switches to temperature sensors can be defined in Home Assistant as an MQTT component, so it makes for a convenient integration point. This requires an MQTT broker for handling the message bus, and one last piece to translate between the HTTP that SmartThings supports and MQTT.</p>
|
||||
|
||||
<p>Here is the final sequence of events:</p>
|
||||
|
||||
<p class="img">
|
||||
<a href="https://home-assistant.io/images/blog/2016-02-smartthings/SmartThings-HomeAssistant.png">
|
||||
<img src="https://home-assistant.io/images/blog/2016-02-smartthings/SmartThings-HomeAssistant.png" alt="SmartThings Bridge Sequence" />
|
||||
</a>
|
||||
SmartThings Bridge Sequence
|
||||
</p>
|
||||
|
||||
<p>There are a lot of stops along the way for these events, but each piece is a simple translation layer to shuttle the events between systems.</p>
|
||||
|
||||
<h3>Future Improvements</h3>
|
||||
<ul>
|
||||
<li><strong>Raspberry pi</strong>: There is a lot of interest in getting this running on the Raspberry Pi. It only requires binaries compiled for ARM, so we plan to get ARM-compatible versions of the containers going at some point.</li>
|
||||
<li><strong>Authentication for MQTT</strong>: At the moment, the MQTT bridge doesn’t understand how to authenticate to MQTT, so only unauthenticated MQTT is supported. This is mitigated to some degree if you use our Docker Compose config, because MQTT’s port is not actually shared publicly.</li>
|
||||
<li><strong>Authentication for MQTT Bridge</strong>: Right now the bridge expects that anyone subscribing is the SmartThings hub. This could use proper authentication.</li>
|
||||
</ul>
|
||||
|
||||
]]></content>
|
||||
</entry>
|
||||
|
||||
<entry>
|
||||
<title type="html"><![CDATA[Report the temperature with ESP8266 to MQTT]]></title>
|
||||
<link href="https://home-assistant.io/blog/2015/10/11/measure-temperature-with-esp8266-and-report-to-mqtt/"/>
|
||||
|
|
|
@ -120,6 +120,43 @@
|
|||
|
||||
|
||||
|
||||
<h2>2016</h2>
|
||||
|
||||
<article>
|
||||
<div class="grid">
|
||||
|
||||
<div class="grid__item one-fifth palm-one-whole">
|
||||
<time datetime="2016-02-09T07:44:00+00:00" pubdate>
|
||||
<span class='month'>Feb</span> <span class='day'>09</span>
|
||||
</time>
|
||||
</div>
|
||||
<div class="grid__item four-fifths palm-one-whole">
|
||||
<h1 class="gamma"><a href="/blog/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/">Smarter SmartThings with MQTT and 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>
|
||||
|
||||
<li><a class='category' href='/blog/categories/mqtt/'>MQTT</a></li>
|
||||
|
||||
|
||||
</ul>
|
||||
</span>
|
||||
</footer>
|
||||
|
||||
<hr class="divider">
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</article>
|
||||
|
||||
|
||||
|
||||
|
||||
<h2>2015</h2>
|
||||
|
||||
<article>
|
||||
|
@ -257,6 +294,12 @@
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/">Smarter SmartThings with MQTT and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/30/insteon-lifx-twitter-and-zigbee/">0.12: Insteon, LIFX, Twitter and ZigBee</a>
|
||||
</li>
|
||||
|
@ -280,12 +323,6 @@
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<title><![CDATA[Category: Public-Service-Announcement | Home Assistant]]></title>
|
||||
<link href="https://home-assistant.io/blog/categories/public-service-announcement/atom.xml" rel="self"/>
|
||||
<link href="https://home-assistant.io/"/>
|
||||
<updated>2016-02-08T17:11:51+00:00</updated>
|
||||
<updated>2016-02-09T07:49:53+00:00</updated>
|
||||
<id>https://home-assistant.io/</id>
|
||||
<author>
|
||||
<name><![CDATA[Paulus Schoutsen]]></name>
|
||||
|
|
|
@ -219,6 +219,12 @@
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/">Smarter SmartThings with MQTT and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/30/insteon-lifx-twitter-and-zigbee/">0.12: Insteon, LIFX, Twitter and ZigBee</a>
|
||||
</li>
|
||||
|
@ -242,12 +248,6 @@
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -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>2016-02-08T17:11:51+00:00</updated>
|
||||
<updated>2016-02-09T07:49:53+00:00</updated>
|
||||
<id>https://home-assistant.io/</id>
|
||||
<author>
|
||||
<name><![CDATA[Paulus Schoutsen]]></name>
|
||||
|
|
|
@ -1056,6 +1056,12 @@
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/">Smarter SmartThings with MQTT and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/30/insteon-lifx-twitter-and-zigbee/">0.12: Insteon, LIFX, Twitter and ZigBee</a>
|
||||
</li>
|
||||
|
@ -1079,12 +1085,6 @@
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<title><![CDATA[Category: Survey | Home Assistant]]></title>
|
||||
<link href="https://home-assistant.io/blog/categories/survey/atom.xml" rel="self"/>
|
||||
<link href="https://home-assistant.io/"/>
|
||||
<updated>2016-02-08T17:11:51+00:00</updated>
|
||||
<updated>2016-02-09T07:49:53+00:00</updated>
|
||||
<id>https://home-assistant.io/</id>
|
||||
<author>
|
||||
<name><![CDATA[Paulus Schoutsen]]></name>
|
||||
|
|
|
@ -219,6 +219,12 @@
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/">Smarter SmartThings with MQTT and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/30/insteon-lifx-twitter-and-zigbee/">0.12: Insteon, LIFX, Twitter and ZigBee</a>
|
||||
</li>
|
||||
|
@ -242,12 +248,6 @@
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -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>2016-02-08T17:11:51+00:00</updated>
|
||||
<updated>2016-02-09T07:49:53+00:00</updated>
|
||||
<id>https://home-assistant.io/</id>
|
||||
<author>
|
||||
<name><![CDATA[Paulus Schoutsen]]></name>
|
||||
|
|
|
@ -219,6 +219,12 @@
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/">Smarter SmartThings with MQTT and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/30/insteon-lifx-twitter-and-zigbee/">0.12: Insteon, LIFX, Twitter and ZigBee</a>
|
||||
</li>
|
||||
|
@ -242,12 +248,6 @@
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Let's Encrypt</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
107
blog/index.html
107
blog/index.html
|
@ -102,6 +102,62 @@
|
|||
|
||||
|
||||
|
||||
<article class="listing">
|
||||
<header>
|
||||
|
||||
<h1 class="beta">
|
||||
<a href="/blog/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/">Smarter SmartThings with MQTT and Home Assistant</a>
|
||||
</h1>
|
||||
|
||||
|
||||
|
||||
<div class="meta clearfix">
|
||||
<time datetime="2016-02-09T07:44:00+00:00" pubdate data-updated="true"><i class="icon-calendar"></i> February 09, 2016</time>
|
||||
<span class="byline author vcard"><i class='icon-user'></i> Jeremiah Wuenschel and St. John Johnson</span>
|
||||
<span><i class='icon-time'></i> eight 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>
|
||||
|
||||
<li><a class='category' href='/blog/categories/mqtt/'>MQTT</a></li>
|
||||
|
||||
|
||||
</ul>
|
||||
</span>
|
||||
|
||||
<a class='comments'
|
||||
href="/blog/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/#disqus_thread"
|
||||
>Comments</a>
|
||||
|
||||
</div>
|
||||
|
||||
</header>
|
||||
|
||||
|
||||
<div class="entry-content clearfix">
|
||||
<p><em>This is a guest post by Home Assistant users <a href="https://github.com/jer">Jeremiah Wuenschel</a> and <a href="https://github.com/stjohnjohnson">St. John Johnson</a>.</em></p>
|
||||
|
||||
<p>So you own a <a href="http://smartthings.com">SmartThings</a> Hub. You probably bought it when you were looking to get into the whole Home Automation hobby because it worked with pretty much everything and offered you the ability to automate <strong>anything.</strong> After a week of ownership, you realized that building dashboards and automating required writing way more Groovy then you expected. Then one day you were browsing <a href="https://www.reddit.com/r/homeautomation">reddit</a> and discovered the amazingness that is Home Assistant! A solution that offered dashboards, graphs, working support for Nest, and REAL EASY automation!</p>
|
||||
|
||||
<p>You spent your weekend getting everything set up, showing it off to your significant other, but in the end you got stumped when it came to integrating with all your existing SmartThings toys. What do I do now? Should I buy another hub? Should I just buy a Z-Wave stick?</p>
|
||||
|
||||
<p>That’s where we came in. We wanted a solution that can bridge the awesomeness of Home Assistant with the SmartThings hub that works with almost everything.</p>
|
||||
|
||||
<p class="img">
|
||||
<img src="/images/blog/2016-02-smartthings/splash.png" />
|
||||
</p>
|
||||
|
||||
|
||||
|
||||
<a class="btn pull-right" href="/blog/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/#read-more">Read on →</a>
|
||||
|
||||
</div>
|
||||
</article>
|
||||
<hr>
|
||||
|
||||
<article class="listing">
|
||||
<header>
|
||||
|
||||
|
@ -626,57 +682,6 @@ The <a href="https://influxdb.com/">InfluxDB</a> database is a so-called time se
|
|||
|
||||
|
||||
|
||||
</div>
|
||||
</article>
|
||||
<hr>
|
||||
|
||||
<article class="listing">
|
||||
<header>
|
||||
|
||||
<h1 class="beta">
|
||||
<a href="/blog/2015/12/05/community-highlights/">Community Highlights</a>
|
||||
</h1>
|
||||
|
||||
|
||||
|
||||
<div class="meta clearfix">
|
||||
<time datetime="2015-12-05T23:39:00+00:00" pubdate data-updated="true"><i class="icon-calendar"></i> December 5, 2015</time>
|
||||
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
|
||||
<span><i class='icon-time'></i> less than one minute reading time</span>
|
||||
<span>
|
||||
<i class="icon-tags"></i>
|
||||
<ul class="tags unstyled">
|
||||
|
||||
|
||||
<li><a class='category' href='/blog/categories/community/'>Community</a></li>
|
||||
|
||||
|
||||
</ul>
|
||||
</span>
|
||||
|
||||
<a class='comments'
|
||||
href="/blog/2015/12/05/community-highlights/#disqus_thread"
|
||||
>Comments</a>
|
||||
|
||||
</div>
|
||||
|
||||
</header>
|
||||
|
||||
|
||||
<div class="entry-content clearfix">
|
||||
<p>From time to time we come along things that are worth sharing with fellow Home Assisters. Here a list of some cool stuff from last week:</p>
|
||||
|
||||
<p>First is the public beta of <a href="https://letsencrypt.org/">Let’s Encrypt</a>. Let’s Encrypt is a new certificate authority that is free, automated and open. This means that it will now be very easy to secure your connection to Home Assistant while you are away from home. W1ll1am23 has written up <a href="https://automic.us/forum/viewtopic.php?f=4&t=29">a guide how to get started</a>.</p>
|
||||
|
||||
<p>The next thing is a show-off of some of the cool stuff people do with Home Assistant. This is miniconfig talking to Home Assistant using the Amazon Echo!</p>
|
||||
|
||||
<div class="videoWrapper">
|
||||
<iframe width="560" height="315" src="https://www.youtube.com/embed/9QQjklnSQKY" frameborder="0" allowfullscreen=""></iframe>
|
||||
</div>
|
||||
|
||||
<p>And last but not least, Midwestern Mac did a <a href="http://www.midwesternmac.com/blogs/jeff-geerling/raspberry-pi-microsd-card">microSD card performance comparison</a> for the Raspberry Pi. If you’re using a Pi, make sure to check it out!</p>
|
||||
|
||||
|
||||
</div>
|
||||
</article>
|
||||
<hr>
|
||||
|
|
|
@ -102,6 +102,57 @@
|
|||
|
||||
|
||||
|
||||
<article class="listing">
|
||||
<header>
|
||||
|
||||
<h1 class="beta">
|
||||
<a href="/blog/2015/12/05/community-highlights/">Community Highlights</a>
|
||||
</h1>
|
||||
|
||||
|
||||
|
||||
<div class="meta clearfix">
|
||||
<time datetime="2015-12-05T23:39:00+00:00" pubdate data-updated="true"><i class="icon-calendar"></i> December 5, 2015</time>
|
||||
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
|
||||
<span><i class='icon-time'></i> less than one minute reading time</span>
|
||||
<span>
|
||||
<i class="icon-tags"></i>
|
||||
<ul class="tags unstyled">
|
||||
|
||||
|
||||
<li><a class='category' href='/blog/categories/community/'>Community</a></li>
|
||||
|
||||
|
||||
</ul>
|
||||
</span>
|
||||
|
||||
<a class='comments'
|
||||
href="/blog/2015/12/05/community-highlights/#disqus_thread"
|
||||
>Comments</a>
|
||||
|
||||
</div>
|
||||
|
||||
</header>
|
||||
|
||||
|
||||
<div class="entry-content clearfix">
|
||||
<p>From time to time we come along things that are worth sharing with fellow Home Assisters. Here a list of some cool stuff from last week:</p>
|
||||
|
||||
<p>First is the public beta of <a href="https://letsencrypt.org/">Let’s Encrypt</a>. Let’s Encrypt is a new certificate authority that is free, automated and open. This means that it will now be very easy to secure your connection to Home Assistant while you are away from home. W1ll1am23 has written up <a href="https://automic.us/forum/viewtopic.php?f=4&t=29">a guide how to get started</a>.</p>
|
||||
|
||||
<p>The next thing is a show-off of some of the cool stuff people do with Home Assistant. This is miniconfig talking to Home Assistant using the Amazon Echo!</p>
|
||||
|
||||
<div class="videoWrapper">
|
||||
<iframe width="560" height="315" src="https://www.youtube.com/embed/9QQjklnSQKY" frameborder="0" allowfullscreen=""></iframe>
|
||||
</div>
|
||||
|
||||
<p>And last but not least, Midwestern Mac did a <a href="http://www.midwesternmac.com/blogs/jeff-geerling/raspberry-pi-microsd-card">microSD card performance comparison</a> for the Raspberry Pi. If you’re using a Pi, make sure to check it out!</p>
|
||||
|
||||
|
||||
</div>
|
||||
</article>
|
||||
<hr>
|
||||
|
||||
<article class="listing">
|
||||
<header>
|
||||
|
||||
|
@ -650,57 +701,6 @@ Inspried by a <a href="https://github.com/balloob/home-assistant/issues/310">fea
|
|||
</article>
|
||||
<hr>
|
||||
|
||||
<article class="listing">
|
||||
<header>
|
||||
|
||||
<h1 class="beta">
|
||||
<a href="/blog/2015/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-11T09:19:38+00:00" pubdate data-updated="true"><i class="icon-calendar"></i> September 11, 2015</time>
|
||||
<span class="byline author vcard"><i class='icon-user'></i> Fabian Affolter</span>
|
||||
<span><i class='icon-time'></i> nine minutes reading time</span>
|
||||
<span>
|
||||
<i class="icon-tags"></i>
|
||||
<ul class="tags unstyled">
|
||||
|
||||
|
||||
<li><a class='category' href='/blog/categories/how-to/'>How-To</a></li>
|
||||
|
||||
<li><a class='category' href='/blog/categories/mqtt/'>MQTT</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" /> <a href="https://en.wikipedia.org/wiki/MQTT">MQTT</a> support was added to Home Assistant recently. The <a href="https://home-assistant.io/components/mqtt/">MQTT component</a> will enable you to do all sort of things. Most likely you will use it to communicate with your devices. But Home Assistant doesn’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’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 →</a>
|
||||
|
||||
</div>
|
||||
</article>
|
||||
<hr>
|
||||
|
||||
|
||||
<div class="pagination">
|
||||
|
||||
|
|
|
@ -102,6 +102,57 @@
|
|||
|
||||
|
||||
|
||||
<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-11T09:19:38+00:00" pubdate data-updated="true"><i class="icon-calendar"></i> September 11, 2015</time>
|
||||
<span class="byline author vcard"><i class='icon-user'></i> Fabian Affolter</span>
|
||||
<span><i class='icon-time'></i> nine minutes reading time</span>
|
||||
<span>
|
||||
<i class="icon-tags"></i>
|
||||
<ul class="tags unstyled">
|
||||
|
||||
|
||||
<li><a class='category' href='/blog/categories/how-to/'>How-To</a></li>
|
||||
|
||||
<li><a class='category' href='/blog/categories/mqtt/'>MQTT</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" /> <a href="https://en.wikipedia.org/wiki/MQTT">MQTT</a> support was added to Home Assistant recently. The <a href="https://home-assistant.io/components/mqtt/">MQTT component</a> will enable you to do all sort of things. Most likely you will use it to communicate with your devices. But Home Assistant doesn’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’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 →</a>
|
||||
|
||||
</div>
|
||||
</article>
|
||||
<hr>
|
||||
|
||||
<article class="listing">
|
||||
<header>
|
||||
|
||||
|
@ -668,75 +719,6 @@ To update to the latest version, run <code>scripts/update</code>. Please report
|
|||
</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-22T08:21:00+00:00" pubdate data-updated="true"><i class="icon-calendar"></i> March 22, 2015</time>
|
||||
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
|
||||
<span><i class='icon-time'></i> two minutes reading time</span>
|
||||
<span>
|
||||
<i class="icon-tags"></i>
|
||||
<ul class="tags unstyled">
|
||||
|
||||
|
||||
<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>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
|
||||
<span class="key">script</span>:
|
||||
<span class="comment"># Turns on the bedroom lights and then the living room lights 1 minute later</span>
|
||||
<span class="key">wakeup</span>:
|
||||
<span class="key">alias</span>: <span class="string"><span class="content">Wake Up</span></span>
|
||||
<span class="key">sequence</span>:
|
||||
- <span class="string"><span class="content">alias: Bedroom lights on</span></span>
|
||||
<span class="key">execute_service</span>: <span class="string"><span class="content">light.turn_on</span></span>
|
||||
<span class="key">service_data</span>:
|
||||
<span class="key">entity_id</span>: <span class="string"><span class="content">group.bedroom</span></span>
|
||||
- <span class="string"><span class="content">delay:</span><span class="content">
|
||||
# supports seconds, milliseconds, minutes, hours, etc.
|
||||
minutes: 1</span></span>
|
||||
- <span class="string"><span class="content">alias: Living room lights on</span></span>
|
||||
<span class="key">execute_service</span>: <span class="string"><span class="content">light.turn_on</span></span>
|
||||
<span class="key">service_data</span>:
|
||||
<span class="key">entity_id</span>: <span class="string"><span class="content">group.living_room</span></span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<a class="btn pull-right" href="/blog/2015/03/22/release-notes/#read-more">Read on →</a>
|
||||
|
||||
</div>
|
||||
</article>
|
||||
<hr>
|
||||
|
||||
|
||||
<div class="pagination">
|
||||
|
||||
|
|
|
@ -102,6 +102,75 @@
|
|||
|
||||
|
||||
|
||||
<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-22T08:21:00+00:00" pubdate data-updated="true"><i class="icon-calendar"></i> March 22, 2015</time>
|
||||
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
|
||||
<span><i class='icon-time'></i> two minutes reading time</span>
|
||||
<span>
|
||||
<i class="icon-tags"></i>
|
||||
<ul class="tags unstyled">
|
||||
|
||||
|
||||
<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>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
|
||||
<span class="key">script</span>:
|
||||
<span class="comment"># Turns on the bedroom lights and then the living room lights 1 minute later</span>
|
||||
<span class="key">wakeup</span>:
|
||||
<span class="key">alias</span>: <span class="string"><span class="content">Wake Up</span></span>
|
||||
<span class="key">sequence</span>:
|
||||
- <span class="string"><span class="content">alias: Bedroom lights on</span></span>
|
||||
<span class="key">execute_service</span>: <span class="string"><span class="content">light.turn_on</span></span>
|
||||
<span class="key">service_data</span>:
|
||||
<span class="key">entity_id</span>: <span class="string"><span class="content">group.bedroom</span></span>
|
||||
- <span class="string"><span class="content">delay:</span><span class="content">
|
||||
# supports seconds, milliseconds, minutes, hours, etc.
|
||||
minutes: 1</span></span>
|
||||
- <span class="string"><span class="content">alias: Living room lights on</span></span>
|
||||
<span class="key">execute_service</span>: <span class="string"><span class="content">light.turn_on</span></span>
|
||||
<span class="key">service_data</span>:
|
||||
<span class="key">entity_id</span>: <span class="string"><span class="content">group.living_room</span></span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<a class="btn pull-right" href="/blog/2015/03/22/release-notes/#read-more">Read on →</a>
|
||||
|
||||
</div>
|
||||
</article>
|
||||
<hr>
|
||||
|
||||
<article class="listing">
|
||||
<header>
|
||||
|
||||
|
@ -627,64 +696,6 @@ password=YOUR_PASSWORD
|
|||
</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 & the Smart Home</a>
|
||||
</h1>
|
||||
|
||||
|
||||
|
||||
<div class="meta clearfix">
|
||||
<time datetime="2014-12-26T18:23:13+00: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.<br />
|
||||
This article will try to explain how they all relate.</p>
|
||||
|
||||
<p>The first thing to introduce is the <strong>Internet of Things</strong> (IoT). This refers to a new generation of devices that cannot only be controlled by humans via buttons or remotes but also provide an interface to communicate with other devices and applications. For example, an IoT-capable coffee machine could receive commands to create different types of coffee and be able to broadcast the amount of water left in its resevoir.</p>
|
||||
|
||||
<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’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 →</a>
|
||||
|
||||
</div>
|
||||
</article>
|
||||
<hr>
|
||||
|
||||
|
||||
<div class="pagination">
|
||||
|
||||
|
|
|
@ -102,6 +102,64 @@
|
|||
|
||||
|
||||
|
||||
<article class="listing">
|
||||
<header>
|
||||
|
||||
<h1 class="beta">
|
||||
<a href="/blog/2014/12/26/home-control-home-automation-and-the-smart-home/">Home Control, Automation & the Smart Home</a>
|
||||
</h1>
|
||||
|
||||
|
||||
|
||||
<div class="meta clearfix">
|
||||
<time datetime="2014-12-26T18:23:13+00: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.<br />
|
||||
This article will try to explain how they all relate.</p>
|
||||
|
||||
<p>The first thing to introduce is the <strong>Internet of Things</strong> (IoT). This refers to a new generation of devices that cannot only be controlled by humans via buttons or remotes but also provide an interface to communicate with other devices and applications. For example, an IoT-capable coffee machine could receive commands to create different types of coffee and be able to broadcast the amount of water left in its resevoir.</p>
|
||||
|
||||
<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’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 →</a>
|
||||
|
||||
</div>
|
||||
</article>
|
||||
<hr>
|
||||
|
||||
<article class="listing">
|
||||
<header>
|
||||
|
||||
|
|
BIN
images/blog/2016-02-smartthings/SmartThings-HomeAssistant.png
Normal file
BIN
images/blog/2016-02-smartthings/SmartThings-HomeAssistant.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 52 KiB |
BIN
images/blog/2016-02-smartthings/social.png
Normal file
BIN
images/blog/2016-02-smartthings/social.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 35 KiB |
BIN
images/blog/2016-02-smartthings/splash.png
Normal file
BIN
images/blog/2016-02-smartthings/splash.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 35 KiB |
BIN
images/supported_brands/smartthings.png
Normal file
BIN
images/supported_brands/smartthings.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 7.5 KiB |
315
sitemap.xml
315
sitemap.xml
|
@ -1,5 +1,9 @@
|
|||
<?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/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/</loc>
|
||||
<lastmod>2016-02-09T07:44:00+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/blog/2016/01/30/insteon-lifx-twitter-and-zigbee/</loc>
|
||||
<lastmod>2016-01-30T08:22:00+00:00</lastmod>
|
||||
|
@ -1031,620 +1035,623 @@
|
|||
<url>
|
||||
<loc>https://home-assistant.io/blog/2016/01/30/insteon-lifx-twitter-and-zigbee/</loc>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/blog/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/</loc>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/alarm_control_panel.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/alarm_control_panel.manual.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/alarm_control_panel.mqtt.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/arduino.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/automation.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/browser.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/camera.foscam.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/camera.generic.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/configurator.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/conversation.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/device_sun_light_trigger.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/device_tracker.actiontec.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/device_tracker.aruba.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/device_tracker.asuswrt.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/device_tracker.ddwrt.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/device_tracker.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/device_tracker.locative.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/device_tracker.luci.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/device_tracker.mqtt.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/device_tracker.netgear.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/device_tracker.nmap_scanner.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/device_tracker.owntracks.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/device_tracker.snmp.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/device_tracker.thomson.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/device_tracker.tomato.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/device_tracker.tplink.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/device_tracker.ubus.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/discovery.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/downloader.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/ecobee.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/group.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/history.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/ifttt.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/ifttt.manything.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/introduction.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/isy994.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/keyboard.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/light.blinksticklight.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/light.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/light.hue.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/light.hyperion.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/light.limitlessled.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/light.rfxtrx.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/light.tellstick.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/light.vera.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/light.wink.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/lock.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/lock.wink.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/logbook.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/media_player.cast.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/media_player.denon.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/media_player.firetv.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/media_player.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/media_player.itunes.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/media_player.kodi.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/media_player.mpd.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/media_player.plex.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/media_player.sonos.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/media_player.squeezebox.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/modbus.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/mqtt.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/notify.file.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/notify.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/notify.instapush.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/notify.nma.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/notify.pushbullet.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/notify.pushover.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/notify.slack.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/notify.smtp.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/notify.syslog.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/notify.telegram.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/notify.xmpp.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/rfxtrx.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/scene.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/script.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/sensor.arduino.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/sensor.arest.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/sensor.bitcoin.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/sensor.command_sensor.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/sensor.cpuspeed.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/sensor.dht.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/sensor.ecobee.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/sensor.efergy.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/sensor.forecast.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/sensor.glances.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/sensor.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/sensor.modbus.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/sensor.mqtt.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/sensor.mysensors.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/sensor.openweathermap.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/sensor.rest.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/sensor.rfxtrx.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/sensor.rpi_gpio.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/sensor.sabnzbd.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/sensor.swiss_public_transport.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/sensor.systemmonitor.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/sensor.tellstick.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/sensor.temper.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/sensor.time_date.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/sensor.transmission.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/sensor.vera.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/sensor.wink.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/sensor.worldclock.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/shell_command.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/simple_alarm.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/sun.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/switch.arduino.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/switch.arest.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/switch.command_switch.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/switch.edimax.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/switch.hikvision.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/switch.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/switch.modbus.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/switch.mqtt.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/switch.rest.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/switch.rfxtrx.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/switch.rpi_gpio.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/switch.tellstick.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/switch.transmission.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/switch.vera.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/switch.wemo.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/switch.wink.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/tellstick.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/thermostat.ecobee.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/thermostat.heat_control.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/thermostat.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/thermostat.nest.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/thermostat.radiotherm.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/vera.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/verisure.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/wink.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/zone.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/zwave.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/demo/frontend.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/demo/index.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/developers/add_new_platform.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/developers/api.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/developers/architecture.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/developers/creating_components.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/developers/credits.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/developers/frontend.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/developers/python_api.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/developers/rest_api.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/developers/website.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/getting-started/android.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/getting-started/automation.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/getting-started/autostart.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/getting-started/configuration.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/getting-started/devices.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/getting-started/presence-detection.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/getting-started/troubleshooting-configuration.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/getting-started/troubleshooting.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/googlef4f3693c209fe788.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/static/mdi-demo.html</loc>
|
||||
<lastmod>2016-02-08T17:11:10+00:00</lastmod>
|
||||
<lastmod>2016-02-09T07:48:13+00:00</lastmod>
|
||||
</url>
|
||||
</urlset>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue