Site updated at 2017-11-11 10:08:36 UTC

This commit is contained in:
Travis CI 2017-11-11 10:08:36 +00:00
parent c9b9a5c518
commit 6f9875f8b7
28 changed files with 145 additions and 149 deletions

View file

@ -4,7 +4,7 @@
<title><![CDATA[Home Assistant]]></title>
<link href="https://home-assistant.io/atom.xml" rel="self"/>
<link href="https://home-assistant.io/"/>
<updated>2017-11-11T09:15:17+00:00</updated>
<updated>2017-11-11T09:58:07+00:00</updated>
<id>https://home-assistant.io/</id>
<author>
<name><![CDATA[Home Assistant]]></name>
@ -28,58 +28,58 @@
<p>To check what your devices are sending, subscribe to the topic <code class="highlighter-rouge">+/devices/+/up</code> with a command-line tool like <code class="highlighter-rouge">mosquitto_sub</code>. The <code class="highlighter-rouge">&lt;Region&gt;</code> is the postfix of the <strong>Handler</strong> entry in your <strong>Application overview</strong>. <code class="highlighter-rouge">&lt;AppID&gt;</code> is the <strong>Application ID</strong> and <code class="highlighter-rouge">&lt;AppKey&gt;</code> is your access key.</p>
<p>``bash
$ mosquitto_sub -v -h <Region>.thethings.network -t '+/devices/+/up' -u '<AppID>' -P '<AppKey>'
{
"app_id": "ha-demo",
"dev_id": "device01",
"hardware_serial": "AJDJENDNHRBFBBT",
"port": 1,
[...]</AppKey></AppID></Region></p>
<div class="highlighter-rouge"><pre class="highlight"><code>
The payload contains details about the device itself and the sensor data. The sensor data is stored in `payload_fields`. Depending on the device configuration it may contain a single value or multiple values.
<div class="language-bash highlighter-rouge"><pre class="highlight"><code><span class="gp">$ </span>mosquitto_sub -v -h &lt;Region&gt;.thethings.network -t <span class="s1">'+/devices/+/up'</span> -u <span class="s1">'&lt;AppID&gt;'</span> -P <span class="s1">'&lt;AppKey&gt;'</span>
<span class="o">{</span>
<span class="s2">"app_id"</span>: <span class="s2">"ha-demo"</span>,
<span class="s2">"dev_id"</span>: <span class="s2">"device01"</span>,
<span class="s2">"hardware_serial"</span>: <span class="s2">"AJDJENDNHRBFBBT"</span>,
<span class="s2">"port"</span>: 1,
<span class="o">[</span>...]
</code></pre>
</div>
## &lt;a class='title-link' name='the-relay' href='#the-relay'&gt;&lt;/a&gt; The relay
<p>The payload contains details about the device itself and the sensor data. The sensor data is stored in <code class="highlighter-rouge">payload_fields</code>. Depending on the device configuration it may contain a single value or multiple values.</p>
To be able to work locally with the MQTT data that is received from the devices connected to TTN, we need to transfer it to the local broker. With this simple script below all messages from a given device are re-published on your local MQTT broker after they are received. Modify the script with your details as outlined in the previous section.
<h2><a class="title-link" name="the-relay" href="#the-relay"></a> The relay</h2>
```python
"""Relay MQTT messages from The Things Network to a local MQTT broker."""
import paho.mqtt.client as mqtt
import paho.mqtt.publish as publish
<p>To be able to work locally with the MQTT data that is received from the devices connected to TTN, we need to transfer it to the local broker. With this simple script below all messages from a given device are re-published on your local MQTT broker after they are received. Modify the script with your details as outlined in the previous section.</p>
DEVICE_NAME = '&lt;DeviceID&gt;'
<div class="language-python highlighter-rouge"><pre class="highlight"><code><span class="s">"""Relay MQTT messages from The Things Network to a local MQTT broker."""</span>
<span class="kn">import</span> <span class="nn">paho.mqtt.client</span> <span class="kn">as</span> <span class="nn">mqtt</span>
<span class="kn">import</span> <span class="nn">paho.mqtt.publish</span> <span class="kn">as</span> <span class="nn">publish</span>
TTN_BROKER = '&lt;Region&gt;.thethings.network'
TTN_USERNAME = '&lt;AppID&gt;'
TTN_PASSWORD = '&lt;AppKey&gt;'
TTN_TOPIC = '+/devices/{}/up'.format(DEVICE_NAME)
<span class="n">DEVICE_NAME</span> <span class="o">=</span> <span class="s">'&lt;DeviceID&gt;'</span>
LOCAL_BROKER = '192.168.0.2'
LOCAL_TOPIC = 'home/ttn/garden_temp'
<span class="n">TTN_BROKER</span> <span class="o">=</span> <span class="s">'&lt;Region&gt;.thethings.network'</span>
<span class="n">TTN_USERNAME</span> <span class="o">=</span> <span class="s">'&lt;AppID&gt;'</span>
<span class="n">TTN_PASSWORD</span> <span class="o">=</span> <span class="s">'&lt;AppKey&gt;'</span>
<span class="n">TTN_TOPIC</span> <span class="o">=</span> <span class="s">'+/devices/{}/up'</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">DEVICE_NAME</span><span class="p">)</span>
<span class="n">LOCAL_BROKER</span> <span class="o">=</span> <span class="s">'192.168.0.2'</span>
<span class="n">LOCAL_TOPIC</span> <span class="o">=</span> <span class="s">'home/ttn/garden_temp'</span>
def on_connect(client, userdata, flags, rc):
"""Subscribe to topic after connection to broker is made."""
print("Connected with result code", str(rc))
client.subscribe(TTN_TOPIC)
<span class="k">def</span> <span class="nf">on_connect</span><span class="p">(</span><span class="n">client</span><span class="p">,</span> <span class="n">userdata</span><span class="p">,</span> <span class="n">flags</span><span class="p">,</span> <span class="n">rc</span><span class="p">):</span>
<span class="s">"""Subscribe to topic after connection to broker is made."""</span>
<span class="k">print</span><span class="p">(</span><span class="s">"Connected with result code"</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">rc</span><span class="p">))</span>
<span class="n">client</span><span class="o">.</span><span class="n">subscribe</span><span class="p">(</span><span class="n">TTN_TOPIC</span><span class="p">)</span>
def on_message(client, userdata, msg):
"""Relay message to a different broker."""
publish.single(
LOCAL_TOPIC, payload=msg.payload, qos=0, retain=False,
hostname=LOCAL_BROKER, port=1883, client_id='ttn-local',
keepalive=60, will=None, auth=None, tls=None, protocol=mqtt.MQTTv311)
<span class="k">def</span> <span class="nf">on_message</span><span class="p">(</span><span class="n">client</span><span class="p">,</span> <span class="n">userdata</span><span class="p">,</span> <span class="n">msg</span><span class="p">):</span>
<span class="s">"""Relay message to a different broker."""</span>
<span class="n">publish</span><span class="o">.</span><span class="n">single</span><span class="p">(</span>
<span class="n">LOCAL_TOPIC</span><span class="p">,</span> <span class="n">payload</span><span class="o">=</span><span class="n">msg</span><span class="o">.</span><span class="n">payload</span><span class="p">,</span> <span class="n">qos</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">retain</span><span class="o">=</span><span class="bp">False</span><span class="p">,</span>
<span class="n">hostname</span><span class="o">=</span><span class="n">LOCAL_BROKER</span><span class="p">,</span> <span class="n">port</span><span class="o">=</span><span class="mi">1883</span><span class="p">,</span> <span class="n">client_id</span><span class="o">=</span><span class="s">'ttn-local'</span><span class="p">,</span>
<span class="n">keepalive</span><span class="o">=</span><span class="mi">60</span><span class="p">,</span> <span class="n">will</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">auth</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">tls</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">protocol</span><span class="o">=</span><span class="n">mqtt</span><span class="o">.</span><span class="n">MQTTv311</span><span class="p">)</span>
client = mqtt.Client()
client.username_pw_set(TTN_USERNAME, password=TTN_PASSWORD)
client.on_connect = on_connect
client.on_message = on_message
client.connect(TTN_BROKER, 1883, 60)
<span class="n">client</span> <span class="o">=</span> <span class="n">mqtt</span><span class="o">.</span><span class="n">Client</span><span class="p">()</span>
<span class="n">client</span><span class="o">.</span><span class="n">username_pw_set</span><span class="p">(</span><span class="n">TTN_USERNAME</span><span class="p">,</span> <span class="n">password</span><span class="o">=</span><span class="n">TTN_PASSWORD</span><span class="p">)</span>
<span class="n">client</span><span class="o">.</span><span class="n">on_connect</span> <span class="o">=</span> <span class="n">on_connect</span>
<span class="n">client</span><span class="o">.</span><span class="n">on_message</span> <span class="o">=</span> <span class="n">on_message</span>
<span class="n">client</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="n">TTN_BROKER</span><span class="p">,</span> <span class="mi">1883</span><span class="p">,</span> <span class="mi">60</span><span class="p">)</span>
client.loop_forever()
<span class="n">client</span><span class="o">.</span><span class="n">loop_forever</span><span class="p">()</span>
</code></pre>
</div>

View file

@ -74,7 +74,7 @@
<div class="meta clearfix">
<time datetime="2017-11-10T14:00:00+00:00" pubdate data-updated="true"><i class="icon-calendar"></i> November 10, 2017</time>
<span class="byline author vcard"><i class='icon-user'></i> Fabian Affolter</span>
<span><i class='icon-time'></i> six minutes reading time</span>
<span><i class='icon-time'></i> seven minutes reading time</span>
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
@ -91,58 +91,54 @@
<a name="read-more"></a>
<h2><a class="title-link" name="subscribe-to-the-ttn-broker" href="#subscribe-to-the-ttn-broker"></a> Subscribe to the TTN Broker</h2>
<p>To check what your devices are sending, subscribe to the topic <code class="highlighter-rouge">+/devices/+/up</code> with a command-line tool like <code class="highlighter-rouge">mosquitto_sub</code>. The <code class="highlighter-rouge">&lt;Region&gt;</code> is the postfix of the <strong>Handler</strong> entry in your <strong>Application overview</strong>. <code class="highlighter-rouge">&lt;AppID&gt;</code> is the <strong>Application ID</strong> and <code class="highlighter-rouge">&lt;AppKey&gt;</code> is your access key.</p>
<p>``bash
$ mosquitto_sub -v -h <Region>.thethings.network -t '+/devices/+/up' -u '<AppID>' -P '<AppKey>'
{
"app_id": "ha-demo",
"dev_id": "device01",
"hardware_serial": "AJDJENDNHRBFBBT",
"port": 1,
[...]</AppKey></AppID></Region></p>
<div class="highlighter-rouge"><pre class="highlight"><code>
The payload contains details about the device itself and the sensor data. The sensor data is stored in `payload_fields`. Depending on the device configuration it may contain a single value or multiple values.
<div class="language-bash highlighter-rouge"><pre class="highlight"><code><span class="gp">$ </span>mosquitto_sub -v -h &lt;Region&gt;.thethings.network -t <span class="s1">'+/devices/+/up'</span> -u <span class="s1">'&lt;AppID&gt;'</span> -P <span class="s1">'&lt;AppKey&gt;'</span>
<span class="o">{</span>
<span class="s2">"app_id"</span>: <span class="s2">"ha-demo"</span>,
<span class="s2">"dev_id"</span>: <span class="s2">"device01"</span>,
<span class="s2">"hardware_serial"</span>: <span class="s2">"AJDJENDNHRBFBBT"</span>,
<span class="s2">"port"</span>: 1,
<span class="o">[</span>...]
</code></pre>
</div>
<p>The payload contains details about the device itself and the sensor data. The sensor data is stored in <code class="highlighter-rouge">payload_fields</code>. Depending on the device configuration it may contain a single value or multiple values.</p>
<h2><a class="title-link" name="the-relay" href="#the-relay"></a> The relay</h2>
<p>To be able to work locally with the MQTT data that is received from the devices connected to TTN, we need to transfer it to the local broker. With this simple script below all messages from a given device are re-published on your local MQTT broker after they are received. Modify the script with your details as outlined in the previous section.</p>
<div class="language-python highlighter-rouge"><pre class="highlight"><code><span class="s">"""Relay MQTT messages from The Things Network to a local MQTT broker."""</span>
<span class="kn">import</span> <span class="nn">paho.mqtt.client</span> <span class="kn">as</span> <span class="nn">mqtt</span>
<span class="kn">import</span> <span class="nn">paho.mqtt.publish</span> <span class="kn">as</span> <span class="nn">publish</span>
## &lt;a class='title-link' name='the-relay' href='#the-relay'&gt;&lt;/a&gt; The relay
<span class="n">DEVICE_NAME</span> <span class="o">=</span> <span class="s">'&lt;DeviceID&gt;'</span>
To be able to work locally with the MQTT data that is received from the devices connected to TTN, we need to transfer it to the local broker. With this simple script below all messages from a given device are re-published on your local MQTT broker after they are received. Modify the script with your details as outlined in the previous section.
<span class="n">TTN_BROKER</span> <span class="o">=</span> <span class="s">'&lt;Region&gt;.thethings.network'</span>
<span class="n">TTN_USERNAME</span> <span class="o">=</span> <span class="s">'&lt;AppID&gt;'</span>
<span class="n">TTN_PASSWORD</span> <span class="o">=</span> <span class="s">'&lt;AppKey&gt;'</span>
<span class="n">TTN_TOPIC</span> <span class="o">=</span> <span class="s">'+/devices/{}/up'</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">DEVICE_NAME</span><span class="p">)</span>
```python
"""Relay MQTT messages from The Things Network to a local MQTT broker."""
import paho.mqtt.client as mqtt
import paho.mqtt.publish as publish
DEVICE_NAME = '&lt;DeviceID&gt;'
TTN_BROKER = '&lt;Region&gt;.thethings.network'
TTN_USERNAME = '&lt;AppID&gt;'
TTN_PASSWORD = '&lt;AppKey&gt;'
TTN_TOPIC = '+/devices/{}/up'.format(DEVICE_NAME)
LOCAL_BROKER = '192.168.0.2'
LOCAL_TOPIC = 'home/ttn/garden_temp'
<span class="n">LOCAL_BROKER</span> <span class="o">=</span> <span class="s">'192.168.0.2'</span>
<span class="n">LOCAL_TOPIC</span> <span class="o">=</span> <span class="s">'home/ttn/garden_temp'</span>
def on_connect(client, userdata, flags, rc):
"""Subscribe to topic after connection to broker is made."""
print("Connected with result code", str(rc))
client.subscribe(TTN_TOPIC)
<span class="k">def</span> <span class="nf">on_connect</span><span class="p">(</span><span class="n">client</span><span class="p">,</span> <span class="n">userdata</span><span class="p">,</span> <span class="n">flags</span><span class="p">,</span> <span class="n">rc</span><span class="p">):</span>
<span class="s">"""Subscribe to topic after connection to broker is made."""</span>
<span class="k">print</span><span class="p">(</span><span class="s">"Connected with result code"</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">rc</span><span class="p">))</span>
<span class="n">client</span><span class="o">.</span><span class="n">subscribe</span><span class="p">(</span><span class="n">TTN_TOPIC</span><span class="p">)</span>
def on_message(client, userdata, msg):
"""Relay message to a different broker."""
publish.single(
LOCAL_TOPIC, payload=msg.payload, qos=0, retain=False,
hostname=LOCAL_BROKER, port=1883, client_id='ttn-local',
keepalive=60, will=None, auth=None, tls=None, protocol=mqtt.MQTTv311)
<span class="k">def</span> <span class="nf">on_message</span><span class="p">(</span><span class="n">client</span><span class="p">,</span> <span class="n">userdata</span><span class="p">,</span> <span class="n">msg</span><span class="p">):</span>
<span class="s">"""Relay message to a different broker."""</span>
<span class="n">publish</span><span class="o">.</span><span class="n">single</span><span class="p">(</span>
<span class="n">LOCAL_TOPIC</span><span class="p">,</span> <span class="n">payload</span><span class="o">=</span><span class="n">msg</span><span class="o">.</span><span class="n">payload</span><span class="p">,</span> <span class="n">qos</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">retain</span><span class="o">=</span><span class="bp">False</span><span class="p">,</span>
<span class="n">hostname</span><span class="o">=</span><span class="n">LOCAL_BROKER</span><span class="p">,</span> <span class="n">port</span><span class="o">=</span><span class="mi">1883</span><span class="p">,</span> <span class="n">client_id</span><span class="o">=</span><span class="s">'ttn-local'</span><span class="p">,</span>
<span class="n">keepalive</span><span class="o">=</span><span class="mi">60</span><span class="p">,</span> <span class="n">will</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">auth</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">tls</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">protocol</span><span class="o">=</span><span class="n">mqtt</span><span class="o">.</span><span class="n">MQTTv311</span><span class="p">)</span>
client = mqtt.Client()
client.username_pw_set(TTN_USERNAME, password=TTN_PASSWORD)
client.on_connect = on_connect
client.on_message = on_message
client.connect(TTN_BROKER, 1883, 60)
<span class="n">client</span> <span class="o">=</span> <span class="n">mqtt</span><span class="o">.</span><span class="n">Client</span><span class="p">()</span>
<span class="n">client</span><span class="o">.</span><span class="n">username_pw_set</span><span class="p">(</span><span class="n">TTN_USERNAME</span><span class="p">,</span> <span class="n">password</span><span class="o">=</span><span class="n">TTN_PASSWORD</span><span class="p">)</span>
<span class="n">client</span><span class="o">.</span><span class="n">on_connect</span> <span class="o">=</span> <span class="n">on_connect</span>
<span class="n">client</span><span class="o">.</span><span class="n">on_message</span> <span class="o">=</span> <span class="n">on_message</span>
<span class="n">client</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="n">TTN_BROKER</span><span class="p">,</span> <span class="mi">1883</span><span class="p">,</span> <span class="mi">60</span><span class="p">)</span>
client.loop_forever()
<span class="n">client</span><span class="o">.</span><span class="n">loop_forever</span><span class="p">()</span>
</code></pre>
</div>
<p>Save it and run it. As soon as a MQTT message is received from your device you should see it on your local broker (here 192.168.0.2) if you subscribe to <code class="highlighter-rouge">#</code> or the topic given in the script above <code class="highlighter-rouge">home/ttn/garden_temp</code>.</p>

View file

@ -4,7 +4,7 @@
<title><![CDATA[Category: Announcements | Home Assistant]]></title>
<link href="https://home-assistant.io/blog/categories/announcements/atom.xml" rel="self"/>
<link href="https://home-assistant.io/"/>
<updated>2017-11-11T09:15:17+00:00</updated>
<updated>2017-11-11T09:58:07+00:00</updated>
<id>https://home-assistant.io/</id>
<author>
<name><![CDATA[Home Assistant]]></name>

View file

@ -4,7 +4,7 @@
<title><![CDATA[Category: Community | Home Assistant]]></title>
<link href="https://home-assistant.io/blog/categories/community/atom.xml" rel="self"/>
<link href="https://home-assistant.io/"/>
<updated>2017-11-11T09:15:17+00:00</updated>
<updated>2017-11-11T09:58:07+00:00</updated>
<id>https://home-assistant.io/</id>
<author>
<name><![CDATA[Home Assistant]]></name>

View file

@ -4,7 +4,7 @@
<title><![CDATA[Category: Device-Tracking | Home Assistant]]></title>
<link href="https://home-assistant.io/blog/categories/device-tracking/atom.xml" rel="self"/>
<link href="https://home-assistant.io/"/>
<updated>2017-11-11T09:15:17+00:00</updated>
<updated>2017-11-11T09:58:07+00:00</updated>
<id>https://home-assistant.io/</id>
<author>
<name><![CDATA[Home Assistant]]></name>

View file

@ -4,7 +4,7 @@
<title><![CDATA[Category: ESP8266 | Home Assistant]]></title>
<link href="https://home-assistant.io/blog/categories/esp8266/atom.xml" rel="self"/>
<link href="https://home-assistant.io/"/>
<updated>2017-11-11T09:15:17+00:00</updated>
<updated>2017-11-11T09:58:07+00:00</updated>
<id>https://home-assistant.io/</id>
<author>
<name><![CDATA[Home Assistant]]></name>

View file

@ -4,7 +4,7 @@
<title><![CDATA[Category: How-To | Home Assistant]]></title>
<link href="https://home-assistant.io/blog/categories/how-to/atom.xml" rel="self"/>
<link href="https://home-assistant.io/"/>
<updated>2017-11-11T09:15:17+00:00</updated>
<updated>2017-11-11T09:58:07+00:00</updated>
<id>https://home-assistant.io/</id>
<author>
<name><![CDATA[Home Assistant]]></name>
@ -28,7 +28,7 @@ At the moment Home Assistant only supports one [MQTT broker](/docs/mqtt/). This
To check what your devices are sending, subscribe to the topic `+/devices/+/up` with a command-line tool like `mosquitto_sub`. The `<Region>` is the postfix of the **Handler** entry in your **Application overview**. `<AppID>` is the **Application ID** and `<AppKey>` is your access key.
``bash
```bash
$ mosquitto_sub -v -h <Region>.thethings.network -t '+/devices/+/up' -u '<AppID>' -P '<AppKey>'
{
"app_id": "ha-demo",

View file

@ -4,7 +4,7 @@
<title><![CDATA[Category: iBeacons | Home Assistant]]></title>
<link href="https://home-assistant.io/blog/categories/ibeacons/atom.xml" rel="self"/>
<link href="https://home-assistant.io/"/>
<updated>2017-11-11T09:15:17+00:00</updated>
<updated>2017-11-11T09:58:07+00:00</updated>
<id>https://home-assistant.io/</id>
<author>
<name><![CDATA[Home Assistant]]></name>

View file

@ -4,7 +4,7 @@
<title><![CDATA[Category: Internet-of-Things | Home Assistant]]></title>
<link href="https://home-assistant.io/blog/categories/internet-of-things/atom.xml" rel="self"/>
<link href="https://home-assistant.io/"/>
<updated>2017-11-11T09:15:17+00:00</updated>
<updated>2017-11-11T09:58:07+00:00</updated>
<id>https://home-assistant.io/</id>
<author>
<name><![CDATA[Home Assistant]]></name>

View file

@ -4,7 +4,7 @@
<title><![CDATA[Category: IoT-Data | Home Assistant]]></title>
<link href="https://home-assistant.io/blog/categories/iot-data/atom.xml" rel="self"/>
<link href="https://home-assistant.io/"/>
<updated>2017-11-11T09:15:17+00:00</updated>
<updated>2017-11-11T09:58:07+00:00</updated>
<id>https://home-assistant.io/</id>
<author>
<name><![CDATA[Home Assistant]]></name>

View file

@ -4,7 +4,7 @@
<title><![CDATA[Category: Media | Home Assistant]]></title>
<link href="https://home-assistant.io/blog/categories/media/atom.xml" rel="self"/>
<link href="https://home-assistant.io/"/>
<updated>2017-11-11T09:15:17+00:00</updated>
<updated>2017-11-11T09:58:07+00:00</updated>
<id>https://home-assistant.io/</id>
<author>
<name><![CDATA[Home Assistant]]></name>

View file

@ -4,7 +4,7 @@
<title><![CDATA[Category: Merchandise | Home Assistant]]></title>
<link href="https://home-assistant.io/blog/categories/merchandise/atom.xml" rel="self"/>
<link href="https://home-assistant.io/"/>
<updated>2017-11-11T09:15:17+00:00</updated>
<updated>2017-11-11T09:58:07+00:00</updated>
<id>https://home-assistant.io/</id>
<author>
<name><![CDATA[Home Assistant]]></name>

View file

@ -4,7 +4,7 @@
<title><![CDATA[Category: Micropython | Home Assistant]]></title>
<link href="https://home-assistant.io/blog/categories/micropython/atom.xml" rel="self"/>
<link href="https://home-assistant.io/"/>
<updated>2017-11-11T09:15:17+00:00</updated>
<updated>2017-11-11T09:58:07+00:00</updated>
<id>https://home-assistant.io/</id>
<author>
<name><![CDATA[Home Assistant]]></name>

View file

@ -4,7 +4,7 @@
<title><![CDATA[Category: MQTT | Home Assistant]]></title>
<link href="https://home-assistant.io/blog/categories/mqtt/atom.xml" rel="self"/>
<link href="https://home-assistant.io/"/>
<updated>2017-11-11T09:15:17+00:00</updated>
<updated>2017-11-11T09:58:07+00:00</updated>
<id>https://home-assistant.io/</id>
<author>
<name><![CDATA[Home Assistant]]></name>

View file

@ -4,7 +4,7 @@
<title><![CDATA[Category: Organisation | Home Assistant]]></title>
<link href="https://home-assistant.io/blog/categories/organisation/atom.xml" rel="self"/>
<link href="https://home-assistant.io/"/>
<updated>2017-11-11T09:15:17+00:00</updated>
<updated>2017-11-11T09:58:07+00:00</updated>
<id>https://home-assistant.io/</id>
<author>
<name><![CDATA[Home Assistant]]></name>

View file

@ -4,7 +4,7 @@
<title><![CDATA[Category: OwnTracks | Home Assistant]]></title>
<link href="https://home-assistant.io/blog/categories/owntracks/atom.xml" rel="self"/>
<link href="https://home-assistant.io/"/>
<updated>2017-11-11T09:15:17+00:00</updated>
<updated>2017-11-11T09:58:07+00:00</updated>
<id>https://home-assistant.io/</id>
<author>
<name><![CDATA[Home Assistant]]></name>

View file

@ -4,7 +4,7 @@
<title><![CDATA[Category: Presence-Detection | Home Assistant]]></title>
<link href="https://home-assistant.io/blog/categories/presence-detection/atom.xml" rel="self"/>
<link href="https://home-assistant.io/"/>
<updated>2017-11-11T09:15:17+00:00</updated>
<updated>2017-11-11T09:58:07+00:00</updated>
<id>https://home-assistant.io/</id>
<author>
<name><![CDATA[Home Assistant]]></name>

View file

@ -4,7 +4,7 @@
<title><![CDATA[Category: Public-Service-Announcement | Home Assistant]]></title>
<link href="https://home-assistant.io/blog/categories/public-service-announcement/atom.xml" rel="self"/>
<link href="https://home-assistant.io/"/>
<updated>2017-11-11T09:15:17+00:00</updated>
<updated>2017-11-11T09:58:07+00:00</updated>
<id>https://home-assistant.io/</id>
<author>
<name><![CDATA[Home Assistant]]></name>

View file

@ -4,7 +4,7 @@
<title><![CDATA[Category: Release-Notes | Home Assistant]]></title>
<link href="https://home-assistant.io/blog/categories/release-notes/atom.xml" rel="self"/>
<link href="https://home-assistant.io/"/>
<updated>2017-11-11T09:15:17+00:00</updated>
<updated>2017-11-11T09:58:07+00:00</updated>
<id>https://home-assistant.io/</id>
<author>
<name><![CDATA[Home Assistant]]></name>

View file

@ -4,7 +4,7 @@
<title><![CDATA[Category: Survey | Home Assistant]]></title>
<link href="https://home-assistant.io/blog/categories/survey/atom.xml" rel="self"/>
<link href="https://home-assistant.io/"/>
<updated>2017-11-11T09:15:17+00:00</updated>
<updated>2017-11-11T09:58:07+00:00</updated>
<id>https://home-assistant.io/</id>
<author>
<name><![CDATA[Home Assistant]]></name>

View file

@ -4,7 +4,7 @@
<title><![CDATA[Category: Talks | Home Assistant]]></title>
<link href="https://home-assistant.io/blog/categories/talks/atom.xml" rel="self"/>
<link href="https://home-assistant.io/"/>
<updated>2017-11-11T09:15:17+00:00</updated>
<updated>2017-11-11T09:58:07+00:00</updated>
<id>https://home-assistant.io/</id>
<author>
<name><![CDATA[Home Assistant]]></name>

View file

@ -4,7 +4,7 @@
<title><![CDATA[Category: Technology | Home Assistant]]></title>
<link href="https://home-assistant.io/blog/categories/technology/atom.xml" rel="self"/>
<link href="https://home-assistant.io/"/>
<updated>2017-11-11T09:15:17+00:00</updated>
<updated>2017-11-11T09:58:07+00:00</updated>
<id>https://home-assistant.io/</id>
<author>
<name><![CDATA[Home Assistant]]></name>

View file

@ -4,7 +4,7 @@
<title><![CDATA[Category: User-Stories | Home Assistant]]></title>
<link href="https://home-assistant.io/blog/categories/user-stories/atom.xml" rel="self"/>
<link href="https://home-assistant.io/"/>
<updated>2017-11-11T09:15:17+00:00</updated>
<updated>2017-11-11T09:58:07+00:00</updated>
<id>https://home-assistant.io/</id>
<author>
<name><![CDATA[Home Assistant]]></name>

View file

@ -4,7 +4,7 @@
<title><![CDATA[Category: Video | Home Assistant]]></title>
<link href="https://home-assistant.io/blog/categories/video/atom.xml" rel="self"/>
<link href="https://home-assistant.io/"/>
<updated>2017-11-11T09:15:17+00:00</updated>
<updated>2017-11-11T09:58:07+00:00</updated>
<id>https://home-assistant.io/</id>
<author>
<name><![CDATA[Home Assistant]]></name>

View file

@ -4,7 +4,7 @@
<title><![CDATA[Category: Website | Home Assistant]]></title>
<link href="https://home-assistant.io/blog/categories/website/atom.xml" rel="self"/>
<link href="https://home-assistant.io/"/>
<updated>2017-11-11T09:15:17+00:00</updated>
<updated>2017-11-11T09:58:07+00:00</updated>
<id>https://home-assistant.io/</id>
<author>
<name><![CDATA[Home Assistant]]></name>

View file

@ -75,7 +75,7 @@
<div class="meta clearfix">
<time datetime="2017-11-10T12:00:00+00:00" pubdate data-updated="true"><i class="icon-calendar"></i> November 10, 2017</time>
<span class="byline author vcard"><i class='icon-user'></i> Fabian Affolter</span>
<span><i class='icon-time'></i> six minutes reading time</span>
<span><i class='icon-time'></i> seven minutes reading time</span>
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">

View file

@ -97,7 +97,7 @@ Importing those will work in <code class="highlighter-rouge">development: 1</cod
<span class="pi">-</span> <span class="s">/local/custom_ui/state-card-my-custom-light.html</span>
</code></pre>
</div>
<p><code class="highlighter-rouge">www\custom_ui\state-card-my-custom-light.html</code>:</p>
<p><code class="highlighter-rouge">www/custom_ui/state-card-my-custom-light.html</code>:</p>
<div class="language-javascript highlighter-rouge"><pre class="highlight"><code><span class="o">&lt;</span><span class="nx">dom</span><span class="o">-</span><span class="nx">module</span> <span class="nx">id</span><span class="o">=</span><span class="s1">'state-card-my-custom-light'</span><span class="o">&gt;</span>
<span class="o">&lt;</span><span class="nx">template</span><span class="o">&gt;</span>
<span class="o">&lt;</span><span class="nx">style</span><span class="o">&gt;</span>

View file

@ -3646,7 +3646,7 @@
</url>
<url>
<loc>https://home-assistant.io/components/switch.hook/</loc>
<lastmod>2017-11-11T09:15:17+00:00</lastmod>
<lastmod>2017-11-11T09:58:07+00:00</lastmod>
</url>
<url>
<loc>https://home-assistant.io/cookbook/automation_for_rainy_days/</loc>
@ -4314,99 +4314,99 @@
</url>
<url>
<loc>https://home-assistant.io/docs/autostart/init.d/</loc>
<lastmod>2017-11-11T09:15:17+00:00</lastmod>
<lastmod>2017-11-11T09:58:07+00:00</lastmod>
</url>
<url>
<loc>https://home-assistant.io/docs/ecosystem/appdaemon/</loc>
<lastmod>2017-11-11T09:15:17+00:00</lastmod>
<lastmod>2017-11-11T09:58:07+00:00</lastmod>
</url>
<url>
<loc>https://home-assistant.io/docs/ecosystem/appdaemon/api/</loc>
<lastmod>2017-11-11T09:15:17+00:00</lastmod>
<lastmod>2017-11-11T09:58:07+00:00</lastmod>
</url>
<url>
<loc>https://home-assistant.io/docs/ecosystem/appdaemon/configuration/</loc>
<lastmod>2017-11-11T09:15:17+00:00</lastmod>
<lastmod>2017-11-11T09:58:07+00:00</lastmod>
</url>
<url>
<loc>https://home-assistant.io/docs/ecosystem/appdaemon/example_apps/</loc>
<lastmod>2017-11-11T09:15:17+00:00</lastmod>
<lastmod>2017-11-11T09:58:07+00:00</lastmod>
</url>
<url>
<loc>https://home-assistant.io/docs/ecosystem/appdaemon/installation/</loc>
<lastmod>2017-11-11T09:15:17+00:00</lastmod>
<lastmod>2017-11-11T09:58:07+00:00</lastmod>
</url>
<url>
<loc>https://home-assistant.io/docs/ecosystem/appdaemon/operation/</loc>
<lastmod>2017-11-11T09:15:17+00:00</lastmod>
<lastmod>2017-11-11T09:58:07+00:00</lastmod>
</url>
<url>
<loc>https://home-assistant.io/docs/ecosystem/appdaemon/reboot/</loc>
<lastmod>2017-11-11T09:15:17+00:00</lastmod>
<lastmod>2017-11-11T09:58:07+00:00</lastmod>
</url>
<url>
<loc>https://home-assistant.io/docs/ecosystem/appdaemon/running/</loc>
<lastmod>2017-11-11T09:15:17+00:00</lastmod>
<lastmod>2017-11-11T09:58:07+00:00</lastmod>
</url>
<url>
<loc>https://home-assistant.io/docs/ecosystem/appdaemon/tutorial/</loc>
<lastmod>2017-11-11T09:15:17+00:00</lastmod>
<lastmod>2017-11-11T09:58:07+00:00</lastmod>
</url>
<url>
<loc>https://home-assistant.io/docs/ecosystem/appdaemon/updating/</loc>
<lastmod>2017-11-11T09:15:17+00:00</lastmod>
<lastmod>2017-11-11T09:58:07+00:00</lastmod>
</url>
<url>
<loc>https://home-assistant.io/docs/ecosystem/appdaemon/windows/</loc>
<lastmod>2017-11-11T09:15:17+00:00</lastmod>
<lastmod>2017-11-11T09:58:07+00:00</lastmod>
</url>
<url>
<loc>https://home-assistant.io/docs/ecosystem/certificates/</loc>
<lastmod>2017-11-11T09:15:17+00:00</lastmod>
<lastmod>2017-11-11T09:58:07+00:00</lastmod>
</url>
<url>
<loc>https://home-assistant.io/docs/ecosystem/hadashboard/</loc>
<lastmod>2017-11-11T09:15:17+00:00</lastmod>
<lastmod>2017-11-11T09:58:07+00:00</lastmod>
</url>
<url>
<loc>https://home-assistant.io/docs/ecosystem/hass-configurator/</loc>
<lastmod>2017-11-11T09:15:17+00:00</lastmod>
<lastmod>2017-11-11T09:58:07+00:00</lastmod>
</url>
<url>
<loc>https://home-assistant.io/docs/ecosystem/ios/</loc>
<lastmod>2017-11-11T09:15:17+00:00</lastmod>
<lastmod>2017-11-11T09:58:07+00:00</lastmod>
</url>
<url>
<loc>https://home-assistant.io/docs/ecosystem/nginx/</loc>
<lastmod>2017-11-11T09:15:17+00:00</lastmod>
<lastmod>2017-11-11T09:58:07+00:00</lastmod>
</url>
<url>
<loc>https://home-assistant.io/docs/ecosystem/notebooks/</loc>
<lastmod>2017-11-11T09:15:17+00:00</lastmod>
<lastmod>2017-11-11T09:58:07+00:00</lastmod>
</url>
<url>
<loc>https://home-assistant.io/docs/ecosystem/scenegen/</loc>
<lastmod>2017-11-11T09:15:17+00:00</lastmod>
<lastmod>2017-11-11T09:58:07+00:00</lastmod>
</url>
<url>
<loc>https://home-assistant.io/docs/ecosystem/synology/</loc>
<lastmod>2017-11-11T09:15:17+00:00</lastmod>
<lastmod>2017-11-11T09:58:07+00:00</lastmod>
</url>
<url>
<loc>https://home-assistant.io/docs/tools/</loc>
<lastmod>2017-11-11T09:15:17+00:00</lastmod>
<lastmod>2017-11-11T09:58:07+00:00</lastmod>
</url>
<url>
<loc>https://home-assistant.io/docs/tools/dev-tools/</loc>
<lastmod>2017-11-11T09:15:17+00:00</lastmod>
<lastmod>2017-11-11T09:58:07+00:00</lastmod>
</url>
<url>
<loc>https://home-assistant.io/docs/tools/hass/</loc>
<lastmod>2017-11-11T09:15:17+00:00</lastmod>
<lastmod>2017-11-11T09:58:07+00:00</lastmod>
</url>
<url>
<loc>https://home-assistant.io/docs/tools/scripts/</loc>
<lastmod>2017-11-11T09:15:17+00:00</lastmod>
<lastmod>2017-11-11T09:58:07+00:00</lastmod>
</url>
<url>
<loc>https://home-assistant.io/faq/after-upgrading/</loc>
@ -5511,62 +5511,62 @@
</url>
<url>
<loc>https://home-assistant.io/demo/frontend.html</loc>
<lastmod>2017-11-11T09:14:34+00:00</lastmod>
<lastmod>2017-11-11T09:57:24+00:00</lastmod>
</url>
<url>
<loc>https://home-assistant.io/demo/index.html</loc>
<lastmod>2017-11-11T09:14:34+00:00</lastmod>
<lastmod>2017-11-11T09:57:24+00:00</lastmod>
</url>
<url>
<loc>https://home-assistant.io/demo/panels/ha-panel-dev-event.html</loc>
<lastmod>2017-11-11T09:14:34+00:00</lastmod>
<lastmod>2017-11-11T09:57:24+00:00</lastmod>
</url>
<url>
<loc>https://home-assistant.io/demo/panels/ha-panel-dev-info.html</loc>
<lastmod>2017-11-11T09:14:34+00:00</lastmod>
<lastmod>2017-11-11T09:57:24+00:00</lastmod>
</url>
<url>
<loc>https://home-assistant.io/demo/panels/ha-panel-dev-service.html</loc>
<lastmod>2017-11-11T09:14:34+00:00</lastmod>
<lastmod>2017-11-11T09:57:24+00:00</lastmod>
</url>
<url>
<loc>https://home-assistant.io/demo/panels/ha-panel-dev-state.html</loc>
<lastmod>2017-11-11T09:14:34+00:00</lastmod>
<lastmod>2017-11-11T09:57:24+00:00</lastmod>
</url>
<url>
<loc>https://home-assistant.io/demo/panels/ha-panel-dev-template.html</loc>
<lastmod>2017-11-11T09:14:34+00:00</lastmod>
<lastmod>2017-11-11T09:57:24+00:00</lastmod>
</url>
<url>
<loc>https://home-assistant.io/demo/panels/ha-panel-history.html</loc>
<lastmod>2017-11-11T09:14:34+00:00</lastmod>
<lastmod>2017-11-11T09:57:24+00:00</lastmod>
</url>
<url>
<loc>https://home-assistant.io/demo/panels/ha-panel-iframe.html</loc>
<lastmod>2017-11-11T09:14:34+00:00</lastmod>
<lastmod>2017-11-11T09:57:24+00:00</lastmod>
</url>
<url>
<loc>https://home-assistant.io/demo/panels/ha-panel-logbook.html</loc>
<lastmod>2017-11-11T09:14:34+00:00</lastmod>
<lastmod>2017-11-11T09:57:24+00:00</lastmod>
</url>
<url>
<loc>https://home-assistant.io/demo/panels/ha-panel-map.html</loc>
<lastmod>2017-11-11T09:14:34+00:00</lastmod>
<lastmod>2017-11-11T09:57:24+00:00</lastmod>
</url>
<url>
<loc>https://home-assistant.io/googlef4f3693c209fe788.html</loc>
<lastmod>2017-11-11T09:14:34+00:00</lastmod>
<lastmod>2017-11-11T09:57:24+00:00</lastmod>
</url>
<url>
<loc>https://home-assistant.io/static/fonts/roboto/DESCRIPTION.en_us.html</loc>
<lastmod>2017-11-11T09:14:35+00:00</lastmod>
<lastmod>2017-11-11T09:57:24+00:00</lastmod>
</url>
<url>
<loc>https://home-assistant.io/static/fonts/robotomono/DESCRIPTION.en_us.html</loc>
<lastmod>2017-11-11T09:14:35+00:00</lastmod>
<lastmod>2017-11-11T09:57:24+00:00</lastmod>
</url>
<url>
<loc>https://home-assistant.io/static/mdi-demo.html</loc>
<lastmod>2017-11-11T09:14:35+00:00</lastmod>
<lastmod>2017-11-11T09:57:24+00:00</lastmod>
</url>
</urlset>