Site updated at 2016-02-18 06:59:04 UTC
This commit is contained in:
parent
4c9d901ffb
commit
736f29134f
74 changed files with 1583 additions and 1143 deletions
219
atom.xml
219
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-17T08:14:43+00:00</updated>
|
||||
<updated>2016-02-18T06:58:42+00:00</updated>
|
||||
<id>https://home-assistant.io/</id>
|
||||
<author>
|
||||
<name><![CDATA[Paulus Schoutsen]]></name>
|
||||
|
@ -13,6 +13,160 @@
|
|||
<generator uri="http://octopress.org/">Octopress</generator>
|
||||
|
||||
|
||||
<entry>
|
||||
<title type="html"><![CDATA[Multi-room audio with Snapcast, Mopidy, and Home Assistant]]></title>
|
||||
<link href="https://home-assistant.io/blog/2016/02/18/multi-room-audio-with-snapcast/"/>
|
||||
<updated>2016-02-18T05:10:56+00:00</updated>
|
||||
<id>https://home-assistant.io/blog/2016/02/18/multi-room-audio-with-snapcast</id>
|
||||
<content type="html"><![CDATA[<p>Would you like to listen to music in every room in your home, controlled from one source? Then multi-room audio is for you.</p>
|
||||
|
||||
<p>Multi-room audio can be achieved by having a computer attached to speakers in every room. On each computer, services run to play and/or control the audio. With this DIY approach, the kind of computer and speakers is very much up to you. It could be your desktop computer with attached powered speakers, your HTPC hooked up to your TV and receiver, a Raspberry Pi with Amp or DAC, or even an Android device.</p>
|
||||
|
||||
<p>You’ll need two key software packages, besides Home Assistant. The first is <a href="https://www.mopidy.com/">Mopidy</a>, a music server that can play local files, or connect to streaming music services like Spotify. The second is <a href="https://github.com/badaix/snapcast/">Snapcast</a>, which enables synchronized audio streaming across your network. Both can be integrated into Home Assistant. Each room audio device will run an instance of the Snapcast client, and optionally a Mopidy instance. Your server will run a special instance of Mopidy and the Snapcast server.</p>
|
||||
|
||||
<p>Finally, you also need a player to control Mopidy. Any MPD-compatible player will work, and there are several <a href="https://docs.mopidy.com/en/latest/ext/web/#ext-web">Mopidy-only web-based options</a> available. On Android, <a href="https://play.google.com/store/apps/details?id=se.anil.remotedy">Remotedy</a> is particularly nice since you can access multiple Mopidy instances in one place.</p>
|
||||
|
||||
<p>Home Assistant will provide device status, and volume control for each room. If you want to play music in all your rooms (on all your clients), access the server instance of Mopidy. If you want to play music only in a specific room, access that specific Mopidy instance. If you’re using a web UI for Mopidy, you can add links to each instance in Home Assistant with the <a href="https://home-assistant.io/components/weblink/">weblink</a> component.</p>
|
||||
|
||||
<p class="img">
|
||||
<img src="https://home-assistant.io/images/blog/2016-02-snapcast/diagram.png" />
|
||||
</p>
|
||||
|
||||
<!--more-->
|
||||
|
||||
<h2>Staging</h2>
|
||||
|
||||
<ul>
|
||||
<li><a href="https://www.mopidy.com/">Install</a> Mopidy (2.0.0 or greater)</li>
|
||||
<li><a href="https://github.com/badaix/snapcast/releases/">Download</a> and <a href="https://github.com/badaix/snapcast/tree/v0.5.0-beta-1#installation">Install</a> Snapcast (0.5.0 or greater)</li>
|
||||
</ul>
|
||||
|
||||
<h2>Configure Mopidy</h2>
|
||||
|
||||
<p>Mopidy can be run with multiple configuration files, each extending the previous file. This is helpful when we’re running multiple instances with varying functionality.</p>
|
||||
|
||||
<h3>core.conf</h3>
|
||||
<p>The core configuration is shared between all instances:</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre>[mpd]
|
||||
hostname = ::
|
||||
|
||||
[http]
|
||||
hostname = ::
|
||||
|
||||
[audio]
|
||||
output = alsasink
|
||||
|
||||
[spotify]
|
||||
username = <redacted>
|
||||
password = <redacted>
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h3>local.conf</h3>
|
||||
<p>Add the local configuration on computers that have local media files:</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre>[local]
|
||||
media_dir = <your/music/here>
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h3>snapcast.conf</h3>
|
||||
<p>Finally, the Mopidy instance that connects with Snapcast needs special configuration. Run on a different port to avoid conflicts if you have a second Mopidy instance running on your computer. The audio output is sent to a named pipe - Snapcast will read from there. Note that you may have to adjust the audio output attribute depending on your system and audio sources.</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre>[mpd]
|
||||
hostname = ::
|
||||
port = 6601
|
||||
|
||||
[http]
|
||||
hostname = ::
|
||||
port = 6681
|
||||
|
||||
[audio]
|
||||
output = audioresample ! audio/x-raw,rate=48000,channels=2,format=S16LE ! audioconvert ! wavenc ! filesink location=/tmp/snapfifo
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h2>Run Mopidy</h2>
|
||||
|
||||
<p>To run a room-specific instance:</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre>$ mopidy --config $CONF_DIR/core.conf
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>To run a room-specific instance with local media:</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre>$ mopidy --config $CONF_DIR/core.conf:$CONF_DIR/local.conf
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>To run the special Snapcast-connected instance (with local media):</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre>$ mopidy --config $CONF_DIR/core.conf:$CONF_DIR/local.conf:$CONF_DIR/snapcast.conf
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h2>Run Snapcast</h2>
|
||||
|
||||
<p>Start the <code>snapserver</code> on the same server running Mopidy with the snapcast configuration.</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre>$ snapserver # or use systemd
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>Start the <code>snapclient</code> on computers that will be playing audio.</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre>$ snapclient # or use systemd, add -h <server host> if necessary
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h2>Configure Snapcast</h2>
|
||||
|
||||
<p>There are a number of snapcast configuration options, but the one relevant to Home Assistant is the client names. You can set them in the snapserver configuration file, by default located at <code>~/.config/Snapcast/settings.json</code>. Only edit this file while the <code>snapserver</code> is not running. Modify the <code>name</code> JSON value to your liking - this is how the client will be named in Home Assistant.</p>
|
||||
|
||||
<h2>Configure Home Assistant</h2>
|
||||
|
||||
<p>Use the <a href="https://home-assistant.io/components/media_player.mpd/">mpd</a> and <a href="https://home-assistant.io/components/media_player.snapcast/">snapcast</a> components. Optionally, use <a href="https://home-assistant.io/components/weblink/">weblink</a> to provide easy access to a Mopidy web UI.</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre><span class="key">media_player</span>:
|
||||
- <span class="string"><span class="content">platform: snapcast</span></span>
|
||||
<span class="key">host</span>: <span class="string"><span class="content">xxxxx</span></span>
|
||||
- <span class="string"><span class="content">platform: mpd</span></span>
|
||||
<span class="key">server</span>: <span class="string"><span class="content">xxxx</span></span>
|
||||
<span class="key">location</span>: <span class="string"><span class="content">Multi-Room Controller</span></span>
|
||||
- <span class="string"><span class="content">platform: mpd</span></span>
|
||||
<span class="key">server</span>: <span class="string"><span class="content">xxx</span></span>
|
||||
<span class="key">location</span>: <span class="string"><span class="content">Room 1</span></span>
|
||||
|
||||
<span class="key">weblink</span>:
|
||||
<span class="key">entities</span>:
|
||||
- <span class="string"><span class="content">name: Multi-Room Player</span></span>
|
||||
<span class="key">url</span>: <span class="string"><span class="content">xxxx</span></span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
]]></content>
|
||||
</entry>
|
||||
|
||||
<entry>
|
||||
<title type="html"><![CDATA[0.13: Speedtest.net, Bloomsky, Splunk and Garage Doors]]></title>
|
||||
<link href="https://home-assistant.io/blog/2016/02/13/speedtest-bloomsky-splunk-and-garage-doors/"/>
|
||||
|
@ -1683,69 +1837,6 @@ Map in Home Assistant showing two people and three zones (home, school, work)
|
|||
<li>Fuzzy matching for scenes (<a href="https://github.com/pavoni">@pavoni</a>)</li>
|
||||
<li>Scene support for media player (<a href="https://github.com/maddox">@maddox</a>)</li>
|
||||
</ul>
|
||||
]]></content>
|
||||
</entry>
|
||||
|
||||
<entry>
|
||||
<title type="html"><![CDATA[Alarms, Sonos and iTunes now supported]]></title>
|
||||
<link href="https://home-assistant.io/blog/2015/09/19/alarm-sonos-and-itunes-support/"/>
|
||||
<updated>2015-09-19T21:47:00+00:00</updated>
|
||||
<id>https://home-assistant.io/blog/2015/09/19/alarm-sonos-and-itunes-support</id>
|
||||
<content type="html"><![CDATA[<p>It’s like someone opened a can of rock solid developers and emptied it above our <a href="https://gitter.im/balloob/home-assistant">chat channel</a> because it exploded with great conversations and solid contributions. Featured in release 0.7.3: Sonos, iTunes, Alarm component and Automation upgrade.</p>
|
||||
|
||||
<p>See <a href="https://github.com/balloob/home-assistant/releases/tag/0.7.3">GitHub</a> for more detailed release notes.</p>
|
||||
|
||||
<p><em>Migration note: the <code>scheduler</code> component has been removed in favor of the <code>automation</code> component.</em></p>
|
||||
|
||||
<p><strong>Sonos</strong><br />
|
||||
<img src="https://home-assistant.io/images/supported_brands/sonos.png" style="border:none; box-shadow: none; float: right;" height="50" /> Sonos support has been added by <a href="https://github.com/rhooper">@rhooper</a> and <a href="https://github.com/SEJeff">@SEJeff</a>. Home Assistant is now able to automatically detect Sonos devices in your network and set them up for you. It will allow you to control music playing on your Sonos and change the volume.</p>
|
||||
|
||||
<p><strong>iTunes and airplay speakers</strong><br />
|
||||
<img src="https://home-assistant.io/images/supported_brands/itunes.png" style="border:none; box-shadow: none; float: right;" height="50" /> <a href="https://github.com/maddox">@maddox</a> has contributed support for controlling iTunes and airplay speakers. For this to work you will have to run <a href="https://github.com/maddox/itunes-api">itunes-api</a> on your Mac as middleware.</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
|
||||
<span class="key">media_player</span>:
|
||||
<span class="key">platform</span>: <span class="string"><span class="content">itunes</span></span>
|
||||
<span class="key">name</span>: <span class="string"><span class="content">iTunes</span></span>
|
||||
<span class="key">host</span>: <span class="string"><span class="content">http://192.168.1.50</span></span>
|
||||
<span class="key">port</span>: <span class="string"><span class="content">8181</span></span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--more-->
|
||||
|
||||
<p><strong>Automation</strong><br />
|
||||
Automation has gotten a lot of love. It now supports conditions, multiple triggers and new types of triggers. The best to get started with it is to head over to the new <a href="https://home-assistant.io/getting-started/automation/">getting started with automation</a> page.</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre><span class="comment"># Example of entry in configuration.yaml</span>
|
||||
<span class="key">automation</span>:
|
||||
<span class="key">alias</span>: <span class="string"><span class="content">Light on in the evening</span></span>
|
||||
<span class="key">trigger</span>:
|
||||
- <span class="string"><span class="content">platform: sun</span></span>
|
||||
<span class="key">event</span>: <span class="string"><span class="content">sunset</span></span>
|
||||
<span class="key">offset</span>: <span class="string"><span class="delimiter">"</span><span class="content">-01:00:00</span><span class="delimiter">"</span></span>
|
||||
- <span class="string"><span class="content">platform: state</span></span>
|
||||
<span class="key">entity_id</span>: <span class="string"><span class="content">group.all_devices</span></span>
|
||||
<span class="key">state</span>: <span class="string"><span class="content">home</span></span>
|
||||
<span class="key">condition</span>:
|
||||
- <span class="string"><span class="content">platform: state</span></span>
|
||||
<span class="key">entity_id</span>: <span class="string"><span class="content">group.all_devices</span></span>
|
||||
<span class="key">state</span>: <span class="string"><span class="content">home</span></span>
|
||||
- <span class="string"><span class="content">platform: time</span></span>
|
||||
<span class="key">after</span>: <span class="string"><span class="delimiter">"</span><span class="content">16:00:00</span><span class="delimiter">"</span></span>
|
||||
<span class="key">before</span>: <span class="string"><span class="delimiter">"</span><span class="content">23:00:00</span><span class="delimiter">"</span></span>
|
||||
<span class="key">action</span>:
|
||||
<span class="key">service</span>: <span class="string"><span class="content">homeassistant.turn_on</span></span>
|
||||
<span class="key">entity_id</span>: <span class="string"><span class="content">group.living_room</span></span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p><strong>Verisure Alarms</strong><br />
|
||||
<img src="https://home-assistant.io/images/supported_brands/verisure.png" style="border:none; box-shadow: none; float: right;" height="50" /> We now support arming and disarming your verisure alarm from within Home Assistant thanks to added support by <a href="https://github.com/persandstrom">@persandstrom</a>.</p>
|
||||
]]></content>
|
||||
</entry>
|
||||
|
||||
|
|
|
@ -203,6 +203,12 @@
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/18/multi-room-audio-with-snapcast/">Multi-room audio with Snapcast, Mopidy, and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/13/speedtest-bloomsky-splunk-and-garage-doors/">0.13: Speedtest.net, Bloomsky, Splunk and Garage Doors</a>
|
||||
</li>
|
||||
|
@ -226,12 +232,6 @@
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/19/perfect-home-automation/">Perfect Home Automation</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/18/multi-room-audio-with-snapcast/">Multi-room audio with Snapcast, Mopidy, and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/13/speedtest-bloomsky-splunk-and-garage-doors/">0.13: Speedtest.net, Bloomsky, Splunk and Garage Doors</a>
|
||||
</li>
|
||||
|
@ -281,12 +287,6 @@ This article will try to explain how they all relate.</p>
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/19/perfect-home-automation/">Perfect Home Automation</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -242,6 +242,12 @@ api_key=ABCDEFGHJKLMNOPQRSTUVXYZ
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/18/multi-room-audio-with-snapcast/">Multi-room audio with Snapcast, Mopidy, and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/13/speedtest-bloomsky-splunk-and-garage-doors/">0.13: Speedtest.net, Bloomsky, Splunk and Garage Doors</a>
|
||||
</li>
|
||||
|
@ -265,12 +271,6 @@ api_key=ABCDEFGHJKLMNOPQRSTUVXYZ
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/19/perfect-home-automation/">Perfect Home Automation</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -217,6 +217,12 @@
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/18/multi-room-audio-with-snapcast/">Multi-room audio with Snapcast, Mopidy, and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/13/speedtest-bloomsky-splunk-and-garage-doors/">0.13: Speedtest.net, Bloomsky, Splunk and Garage Doors</a>
|
||||
</li>
|
||||
|
@ -240,12 +246,6 @@
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/19/perfect-home-automation/">Perfect Home Automation</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -220,6 +220,12 @@ password=YOUR_PASSWORD
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/18/multi-room-audio-with-snapcast/">Multi-room audio with Snapcast, Mopidy, and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/13/speedtest-bloomsky-splunk-and-garage-doors/">0.13: Speedtest.net, Bloomsky, Splunk and Garage Doors</a>
|
||||
</li>
|
||||
|
@ -243,12 +249,6 @@ password=YOUR_PASSWORD
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/19/perfect-home-automation/">Perfect Home Automation</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/18/multi-room-audio-with-snapcast/">Multi-room audio with Snapcast, Mopidy, and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/13/speedtest-bloomsky-splunk-and-garage-doors/">0.13: Speedtest.net, Bloomsky, Splunk and Garage Doors</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/2016/01/19/perfect-home-automation/">Perfect Home Automation</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/18/multi-room-audio-with-snapcast/">Multi-room audio with Snapcast, Mopidy, and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/13/speedtest-bloomsky-splunk-and-garage-doors/">0.13: Speedtest.net, Bloomsky, Splunk and Garage Doors</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/2016/01/19/perfect-home-automation/">Perfect Home Automation</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -219,6 +219,12 @@
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/18/multi-room-audio-with-snapcast/">Multi-room audio with Snapcast, Mopidy, and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/13/speedtest-bloomsky-splunk-and-garage-doors/">0.13: Speedtest.net, Bloomsky, Splunk and Garage Doors</a>
|
||||
</li>
|
||||
|
@ -242,12 +248,6 @@
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/19/perfect-home-automation/">Perfect Home Automation</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -209,6 +209,12 @@
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/18/multi-room-audio-with-snapcast/">Multi-room audio with Snapcast, Mopidy, and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/13/speedtest-bloomsky-splunk-and-garage-doors/">0.13: Speedtest.net, Bloomsky, Splunk and Garage Doors</a>
|
||||
</li>
|
||||
|
@ -232,12 +238,6 @@
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/19/perfect-home-automation/">Perfect Home Automation</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/18/multi-room-audio-with-snapcast/">Multi-room audio with Snapcast, Mopidy, and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/13/speedtest-bloomsky-splunk-and-garage-doors/">0.13: Speedtest.net, Bloomsky, Splunk and Garage Doors</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/2016/01/19/perfect-home-automation/">Perfect Home Automation</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/18/multi-room-audio-with-snapcast/">Multi-room audio with Snapcast, Mopidy, and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/13/speedtest-bloomsky-splunk-and-garage-doors/">0.13: Speedtest.net, Bloomsky, Splunk and Garage Doors</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/2016/01/19/perfect-home-automation/">Perfect Home Automation</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/18/multi-room-audio-with-snapcast/">Multi-room audio with Snapcast, Mopidy, and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/13/speedtest-bloomsky-splunk-and-garage-doors/">0.13: Speedtest.net, Bloomsky, Splunk and Garage Doors</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/2016/01/19/perfect-home-automation/">Perfect Home Automation</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -297,6 +297,12 @@
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/18/multi-room-audio-with-snapcast/">Multi-room audio with Snapcast, Mopidy, and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/13/speedtest-bloomsky-splunk-and-garage-doors/">0.13: Speedtest.net, Bloomsky, Splunk and Garage Doors</a>
|
||||
</li>
|
||||
|
@ -320,12 +326,6 @@
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/19/perfect-home-automation/">Perfect Home Automation</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -232,6 +232,12 @@
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/18/multi-room-audio-with-snapcast/">Multi-room audio with Snapcast, Mopidy, and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/13/speedtest-bloomsky-splunk-and-garage-doors/">0.13: Speedtest.net, Bloomsky, Splunk and Garage Doors</a>
|
||||
</li>
|
||||
|
@ -255,12 +261,6 @@
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/19/perfect-home-automation/">Perfect Home Automation</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/18/multi-room-audio-with-snapcast/">Multi-room audio with Snapcast, Mopidy, and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/13/speedtest-bloomsky-splunk-and-garage-doors/">0.13: Speedtest.net, Bloomsky, Splunk and Garage Doors</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/2016/01/19/perfect-home-automation/">Perfect Home Automation</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/18/multi-room-audio-with-snapcast/">Multi-room audio with Snapcast, Mopidy, and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/13/speedtest-bloomsky-splunk-and-garage-doors/">0.13: Speedtest.net, Bloomsky, Splunk and Garage Doors</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/2016/01/19/perfect-home-automation/">Perfect Home Automation</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/18/multi-room-audio-with-snapcast/">Multi-room audio with Snapcast, Mopidy, and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/13/speedtest-bloomsky-splunk-and-garage-doors/">0.13: Speedtest.net, Bloomsky, Splunk and Garage Doors</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/2016/01/19/perfect-home-automation/">Perfect Home Automation</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/18/multi-room-audio-with-snapcast/">Multi-room audio with Snapcast, Mopidy, and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/13/speedtest-bloomsky-splunk-and-garage-doors/">0.13: Speedtest.net, Bloomsky, Splunk and Garage Doors</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/2016/01/19/perfect-home-automation/">Perfect Home Automation</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -228,6 +228,12 @@
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/18/multi-room-audio-with-snapcast/">Multi-room audio with Snapcast, Mopidy, and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/13/speedtest-bloomsky-splunk-and-garage-doors/">0.13: Speedtest.net, Bloomsky, Splunk and Garage Doors</a>
|
||||
</li>
|
||||
|
@ -251,12 +257,6 @@
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/19/perfect-home-automation/">Perfect Home Automation</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -337,6 +337,12 @@
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/18/multi-room-audio-with-snapcast/">Multi-room audio with Snapcast, Mopidy, and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/13/speedtest-bloomsky-splunk-and-garage-doors/">0.13: Speedtest.net, Bloomsky, Splunk and Garage Doors</a>
|
||||
</li>
|
||||
|
@ -360,12 +366,6 @@
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/19/perfect-home-automation/">Perfect Home Automation</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -315,6 +315,12 @@
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/18/multi-room-audio-with-snapcast/">Multi-room audio with Snapcast, Mopidy, and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/13/speedtest-bloomsky-splunk-and-garage-doors/">0.13: Speedtest.net, Bloomsky, Splunk and Garage Doors</a>
|
||||
</li>
|
||||
|
@ -338,12 +344,6 @@
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/19/perfect-home-automation/">Perfect Home Automation</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -518,6 +518,12 @@ PubSubClient client(ethClient);
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/18/multi-room-audio-with-snapcast/">Multi-room audio with Snapcast, Mopidy, and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/13/speedtest-bloomsky-splunk-and-garage-doors/">0.13: Speedtest.net, Bloomsky, Splunk and Garage Doors</a>
|
||||
</li>
|
||||
|
@ -541,12 +547,6 @@ PubSubClient client(ethClient);
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/19/perfect-home-automation/">Perfect Home Automation</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -377,6 +377,12 @@
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/18/multi-room-audio-with-snapcast/">Multi-room audio with Snapcast, Mopidy, and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/13/speedtest-bloomsky-splunk-and-garage-doors/">0.13: Speedtest.net, Bloomsky, Splunk and Garage Doors</a>
|
||||
</li>
|
||||
|
@ -400,12 +406,6 @@
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/19/perfect-home-automation/">Perfect Home Automation</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/18/multi-room-audio-with-snapcast/">Multi-room audio with Snapcast, Mopidy, and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/13/speedtest-bloomsky-splunk-and-garage-doors/">0.13: Speedtest.net, Bloomsky, Splunk and Garage Doors</a>
|
||||
</li>
|
||||
|
@ -301,12 +307,6 @@ Glances web server started on http://0.0.0.0:61208/
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/19/perfect-home-automation/">Perfect Home Automation</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/18/multi-room-audio-with-snapcast/">Multi-room audio with Snapcast, Mopidy, and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/13/speedtest-bloomsky-splunk-and-garage-doors/">0.13: Speedtest.net, Bloomsky, Splunk and Garage Doors</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/2016/01/19/perfect-home-automation/">Perfect Home Automation</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/18/multi-room-audio-with-snapcast/">Multi-room audio with Snapcast, Mopidy, and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/13/speedtest-bloomsky-splunk-and-garage-doors/">0.13: Speedtest.net, Bloomsky, Splunk and Garage Doors</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/2016/01/19/perfect-home-automation/">Perfect Home Automation</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -564,6 +564,12 @@ Adafruit_HDC1000 hdc = Adafruit_HDC1000();
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/18/multi-room-audio-with-snapcast/">Multi-room audio with Snapcast, Mopidy, and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/13/speedtest-bloomsky-splunk-and-garage-doors/">0.13: Speedtest.net, Bloomsky, Splunk and Garage Doors</a>
|
||||
</li>
|
||||
|
@ -587,12 +593,6 @@ Adafruit_HDC1000 hdc = Adafruit_HDC1000();
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/19/perfect-home-automation/">Perfect Home Automation</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -222,6 +222,12 @@
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/18/multi-room-audio-with-snapcast/">Multi-room audio with Snapcast, Mopidy, and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/13/speedtest-bloomsky-splunk-and-garage-doors/">0.13: Speedtest.net, Bloomsky, Splunk and Garage Doors</a>
|
||||
</li>
|
||||
|
@ -245,12 +251,6 @@
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/19/perfect-home-automation/">Perfect Home Automation</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/18/multi-room-audio-with-snapcast/">Multi-room audio with Snapcast, Mopidy, and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/13/speedtest-bloomsky-splunk-and-garage-doors/">0.13: Speedtest.net, Bloomsky, Splunk and Garage Doors</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/2016/01/19/perfect-home-automation/">Perfect Home Automation</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -240,6 +240,12 @@
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/18/multi-room-audio-with-snapcast/">Multi-room audio with Snapcast, Mopidy, and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/13/speedtest-bloomsky-splunk-and-garage-doors/">0.13: Speedtest.net, Bloomsky, Splunk and Garage Doors</a>
|
||||
</li>
|
||||
|
@ -263,12 +269,6 @@
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/19/perfect-home-automation/">Perfect Home Automation</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -280,6 +280,12 @@
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/18/multi-room-audio-with-snapcast/">Multi-room audio with Snapcast, Mopidy, and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/13/speedtest-bloomsky-splunk-and-garage-doors/">0.13: Speedtest.net, Bloomsky, Splunk and Garage Doors</a>
|
||||
</li>
|
||||
|
@ -303,12 +309,6 @@
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/19/perfect-home-automation/">Perfect Home Automation</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -213,6 +213,12 @@
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/18/multi-room-audio-with-snapcast/">Multi-room audio with Snapcast, Mopidy, and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/13/speedtest-bloomsky-splunk-and-garage-doors/">0.13: Speedtest.net, Bloomsky, Splunk and Garage Doors</a>
|
||||
</li>
|
||||
|
@ -236,12 +242,6 @@
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/19/perfect-home-automation/">Perfect Home Automation</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -222,6 +222,12 @@
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/18/multi-room-audio-with-snapcast/">Multi-room audio with Snapcast, Mopidy, and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/13/speedtest-bloomsky-splunk-and-garage-doors/">0.13: Speedtest.net, Bloomsky, Splunk and Garage Doors</a>
|
||||
</li>
|
||||
|
@ -245,12 +251,6 @@
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/19/perfect-home-automation/">Perfect Home Automation</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -313,6 +313,12 @@ $ sudo systemctl status grafana-server
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/18/multi-room-audio-with-snapcast/">Multi-room audio with Snapcast, Mopidy, and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/13/speedtest-bloomsky-splunk-and-garage-doors/">0.13: Speedtest.net, Bloomsky, Splunk and Garage Doors</a>
|
||||
</li>
|
||||
|
@ -336,12 +342,6 @@ $ sudo systemctl status grafana-server
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/19/perfect-home-automation/">Perfect Home Automation</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/18/multi-room-audio-with-snapcast/">Multi-room audio with Snapcast, Mopidy, and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/13/speedtest-bloomsky-splunk-and-garage-doors/">0.13: Speedtest.net, Bloomsky, Splunk and Garage Doors</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/2016/01/19/perfect-home-automation/">Perfect Home Automation</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/18/multi-room-audio-with-snapcast/">Multi-room audio with Snapcast, Mopidy, and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/13/speedtest-bloomsky-splunk-and-garage-doors/">0.13: Speedtest.net, Bloomsky, Splunk and Garage Doors</a>
|
||||
</li>
|
||||
|
@ -258,12 +264,6 @@ Philips Hue FAQ entries regarding 3rd party light bulbs.
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/19/perfect-home-automation/">Perfect Home Automation</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/18/multi-room-audio-with-snapcast/">Multi-room audio with Snapcast, Mopidy, and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/13/speedtest-bloomsky-splunk-and-garage-doors/">0.13: Speedtest.net, Bloomsky, Splunk and Garage Doors</a>
|
||||
</li>
|
||||
|
@ -323,12 +329,6 @@ sudo docker run -it --rm -p 443:443 -p 80:80 --name letsencrypt \
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/19/perfect-home-automation/">Perfect Home Automation</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -256,6 +256,12 @@
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/18/multi-room-audio-with-snapcast/">Multi-room audio with Snapcast, Mopidy, and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/13/speedtest-bloomsky-splunk-and-garage-doors/">0.13: Speedtest.net, Bloomsky, Splunk and Garage Doors</a>
|
||||
</li>
|
||||
|
@ -279,12 +285,6 @@
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/19/perfect-home-automation/">Perfect Home Automation</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -236,6 +236,12 @@
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/18/multi-room-audio-with-snapcast/">Multi-room audio with Snapcast, Mopidy, and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/13/speedtest-bloomsky-splunk-and-garage-doors/">0.13: Speedtest.net, Bloomsky, Splunk and Garage Doors</a>
|
||||
</li>
|
||||
|
@ -259,12 +265,6 @@
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/19/perfect-home-automation/">Perfect Home Automation</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -240,6 +240,12 @@
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/18/multi-room-audio-with-snapcast/">Multi-room audio with Snapcast, Mopidy, and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/13/speedtest-bloomsky-splunk-and-garage-doors/">0.13: Speedtest.net, Bloomsky, Splunk and Garage Doors</a>
|
||||
</li>
|
||||
|
@ -263,8 +269,6 @@
|
|||
</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/18/multi-room-audio-with-snapcast/">Multi-room audio with Snapcast, Mopidy, and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/13/speedtest-bloomsky-splunk-and-garage-doors/">0.13: Speedtest.net, Bloomsky, Splunk and Garage Doors</a>
|
||||
</li>
|
||||
|
@ -261,12 +267,6 @@ Example of the new views in the frontend. <a href="/components/group/">Learn mor
|
|||
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/19/perfect-home-automation/">Perfect Home Automation</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -429,6 +429,12 @@ Z-Wave light bulb |
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/18/multi-room-audio-with-snapcast/">Multi-room audio with Snapcast, Mopidy, and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/13/speedtest-bloomsky-splunk-and-garage-doors/">0.13: Speedtest.net, Bloomsky, Splunk and Garage Doors</a>
|
||||
</li>
|
||||
|
@ -448,12 +454,6 @@ Z-Wave light bulb |
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/19/perfect-home-automation/">Perfect Home Automation</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -379,6 +379,12 @@
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/18/multi-room-audio-with-snapcast/">Multi-room audio with Snapcast, Mopidy, and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/13/speedtest-bloomsky-splunk-and-garage-doors/">0.13: Speedtest.net, Bloomsky, Splunk and Garage Doors</a>
|
||||
</li>
|
||||
|
@ -398,12 +404,6 @@
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/19/perfect-home-automation/">Perfect Home Automation</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -245,6 +245,12 @@
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/18/multi-room-audio-with-snapcast/">Multi-room audio with Snapcast, Mopidy, and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
|
@ -264,12 +270,6 @@
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/19/perfect-home-automation/">Perfect Home Automation</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
430
blog/2016/02/18/multi-room-audio-with-snapcast/index.html
Normal file
430
blog/2016/02/18/multi-room-audio-with-snapcast/index.html
Normal file
|
@ -0,0 +1,430 @@
|
|||
<!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>Multi-room audio with Snapcast, Mopidy, and Home Assistant - Home Assistant</title>
|
||||
<meta name="author" content="Paulus Schoutsen">
|
||||
<meta name="description" content="Home Assistant is an open-source home automation platform running on Python 3.">
|
||||
|
||||
<meta name="viewport" content="width=device-width">
|
||||
<link rel="canonical" href="https://home-assistant.io/blog/2016/02/18/multi-room-audio-with-snapcast/">
|
||||
|
||||
<meta property="fb:app_id" content="338291289691179">
|
||||
<meta property="og:title" content="Multi-room audio with Snapcast, Mopidy, and Home Assistant">
|
||||
<meta property="og:site_name" content="Home Assistant">
|
||||
<meta property="og:url" content="https://home-assistant.io/blog/2016/02/18/multi-room-audio-with-snapcast/">
|
||||
<meta property="og:type" content="article">
|
||||
<meta property="og:description" content="">
|
||||
<meta property="og:image" content="https://home-assistant.io/images/blog/2016-02-snapcast/diagram.png">
|
||||
|
||||
<meta name="twitter:card" content="summary_large_image">
|
||||
<meta name="twitter:site" content="@home_assistant">
|
||||
|
||||
<meta name="twitter:title" content="Multi-room audio with Snapcast, Mopidy, and Home Assistant">
|
||||
<meta name="twitter:description" content="">
|
||||
<meta name="twitter:image" content="https://home-assistant.io/images/blog/2016-02-snapcast/diagram.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">Multi-room audio with Snapcast, Mopidy, and Home Assistant</h1>
|
||||
|
||||
|
||||
|
||||
<div class="meta clearfix">
|
||||
<time datetime="2016-02-18T05:10:56+00:00" pubdate data-updated="true"><i class="icon-calendar"></i> February 18, 2016</time>
|
||||
<span class="byline author vcard"><i class='icon-user'></i> happyleavesaoc</span>
|
||||
<span><i class='icon-time'></i> four minutes reading time</span>
|
||||
<span>
|
||||
<i class="icon-tags"></i>
|
||||
<ul class="tags unstyled">
|
||||
|
||||
|
||||
<li><a class='category' href='/blog/categories/how-to/'>How-To</a></li>
|
||||
|
||||
|
||||
</ul>
|
||||
</span>
|
||||
|
||||
<a class='comments'
|
||||
href="#disqus_thread"
|
||||
>Comments</a>
|
||||
|
||||
</div>
|
||||
|
||||
</header>
|
||||
|
||||
|
||||
<p>Would you like to listen to music in every room in your home, controlled from one source? Then multi-room audio is for you.</p>
|
||||
|
||||
<p>Multi-room audio can be achieved by having a computer attached to speakers in every room. On each computer, services run to play and/or control the audio. With this DIY approach, the kind of computer and speakers is very much up to you. It could be your desktop computer with attached powered speakers, your HTPC hooked up to your TV and receiver, a Raspberry Pi with Amp or DAC, or even an Android device.</p>
|
||||
|
||||
<p>You’ll need two key software packages, besides Home Assistant. The first is <a href="https://www.mopidy.com/">Mopidy</a>, a music server that can play local files, or connect to streaming music services like Spotify. The second is <a href="https://github.com/badaix/snapcast/">Snapcast</a>, which enables synchronized audio streaming across your network. Both can be integrated into Home Assistant. Each room audio device will run an instance of the Snapcast client, and optionally a Mopidy instance. Your server will run a special instance of Mopidy and the Snapcast server.</p>
|
||||
|
||||
<p>Finally, you also need a player to control Mopidy. Any MPD-compatible player will work, and there are several <a href="https://docs.mopidy.com/en/latest/ext/web/#ext-web">Mopidy-only web-based options</a> available. On Android, <a href="https://play.google.com/store/apps/details?id=se.anil.remotedy">Remotedy</a> is particularly nice since you can access multiple Mopidy instances in one place.</p>
|
||||
|
||||
<p>Home Assistant will provide device status, and volume control for each room. If you want to play music in all your rooms (on all your clients), access the server instance of Mopidy. If you want to play music only in a specific room, access that specific Mopidy instance. If you’re using a web UI for Mopidy, you can add links to each instance in Home Assistant with the <a href="/components/weblink/">weblink</a> component.</p>
|
||||
|
||||
<p class="img">
|
||||
<img src="/images/blog/2016-02-snapcast/diagram.png" />
|
||||
</p>
|
||||
|
||||
<a name="read-more"></a>
|
||||
|
||||
<h2>Staging</h2>
|
||||
|
||||
<ul>
|
||||
<li><a href="https://www.mopidy.com/">Install</a> Mopidy (2.0.0 or greater)</li>
|
||||
<li><a href="https://github.com/badaix/snapcast/releases/">Download</a> and <a href="https://github.com/badaix/snapcast/tree/v0.5.0-beta-1#installation">Install</a> Snapcast (0.5.0 or greater)</li>
|
||||
</ul>
|
||||
|
||||
<h2>Configure Mopidy</h2>
|
||||
|
||||
<p>Mopidy can be run with multiple configuration files, each extending the previous file. This is helpful when we’re running multiple instances with varying functionality.</p>
|
||||
|
||||
<h3>core.conf</h3>
|
||||
<p>The core configuration is shared between all instances:</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre>[mpd]
|
||||
hostname = ::
|
||||
|
||||
[http]
|
||||
hostname = ::
|
||||
|
||||
[audio]
|
||||
output = alsasink
|
||||
|
||||
[spotify]
|
||||
username = <redacted>
|
||||
password = <redacted>
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h3>local.conf</h3>
|
||||
<p>Add the local configuration on computers that have local media files:</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre>[local]
|
||||
media_dir = <your/music/here>
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h3>snapcast.conf</h3>
|
||||
<p>Finally, the Mopidy instance that connects with Snapcast needs special configuration. Run on a different port to avoid conflicts if you have a second Mopidy instance running on your computer. The audio output is sent to a named pipe - Snapcast will read from there. Note that you may have to adjust the audio output attribute depending on your system and audio sources.</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre>[mpd]
|
||||
hostname = ::
|
||||
port = 6601
|
||||
|
||||
[http]
|
||||
hostname = ::
|
||||
port = 6681
|
||||
|
||||
[audio]
|
||||
output = audioresample ! audio/x-raw,rate=48000,channels=2,format=S16LE ! audioconvert ! wavenc ! filesink location=/tmp/snapfifo
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h2>Run Mopidy</h2>
|
||||
|
||||
<p>To run a room-specific instance:</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre>$ mopidy --config $CONF_DIR/core.conf
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>To run a room-specific instance with local media:</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre>$ mopidy --config $CONF_DIR/core.conf:$CONF_DIR/local.conf
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>To run the special Snapcast-connected instance (with local media):</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre>$ mopidy --config $CONF_DIR/core.conf:$CONF_DIR/local.conf:$CONF_DIR/snapcast.conf
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h2>Run Snapcast</h2>
|
||||
|
||||
<p>Start the <code>snapserver</code> on the same server running Mopidy with the snapcast configuration.</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre>$ snapserver # or use systemd
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>Start the <code>snapclient</code> on computers that will be playing audio.</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre>$ snapclient # or use systemd, add -h <server host> if necessary
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h2>Configure Snapcast</h2>
|
||||
|
||||
<p>There are a number of snapcast configuration options, but the one relevant to Home Assistant is the client names. You can set them in the snapserver configuration file, by default located at <code>~/.config/Snapcast/settings.json</code>. Only edit this file while the <code>snapserver</code> is not running. Modify the <code>name</code> JSON value to your liking - this is how the client will be named in Home Assistant.</p>
|
||||
|
||||
<h2>Configure Home Assistant</h2>
|
||||
|
||||
<p>Use the <a href="/components/media_player.mpd/">mpd</a> and <a href="/components/media_player.snapcast/">snapcast</a> components. Optionally, use <a href="/components/weblink/">weblink</a> to provide easy access to a Mopidy web UI.</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre><span class="key">media_player</span>:
|
||||
- <span class="string"><span class="content">platform: snapcast</span></span>
|
||||
<span class="key">host</span>: <span class="string"><span class="content">xxxxx</span></span>
|
||||
- <span class="string"><span class="content">platform: mpd</span></span>
|
||||
<span class="key">server</span>: <span class="string"><span class="content">xxxx</span></span>
|
||||
<span class="key">location</span>: <span class="string"><span class="content">Multi-Room Controller</span></span>
|
||||
- <span class="string"><span class="content">platform: mpd</span></span>
|
||||
<span class="key">server</span>: <span class="string"><span class="content">xxx</span></span>
|
||||
<span class="key">location</span>: <span class="string"><span class="content">Room 1</span></span>
|
||||
|
||||
<span class="key">weblink</span>:
|
||||
<span class="key">entities</span>:
|
||||
- <span class="string"><span class="content">name: Multi-Room Player</span></span>
|
||||
<span class="key">url</span>: <span class="string"><span class="content">xxxx</span></span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
</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/18/multi-room-audio-with-snapcast/"
|
||||
data-counturl="https://home-assistant.io/blog/2016/02/18/multi-room-audio-with-snapcast/" >Tweet</a>
|
||||
|
||||
|
||||
<div class="fb-share-button" style='top: -6px;'
|
||||
data-href="https://home-assistant.io/blog/2016/02/18/multi-room-audio-with-snapcast/"
|
||||
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/02/13/speedtest-bloomsky-splunk-and-garage-doors/">0.13: Speedtest.net, Bloomsky, Splunk and Garage Doors</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/12/classifying-the-internet-of-things/">Classifying the Internet of Things</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<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>
|
||||
|
||||
|
||||
</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/18/multi-room-audio-with-snapcast/';
|
||||
var disqus_url = 'https://home-assistant.io/blog/2016/02/18/multi-room-audio-with-snapcast/';
|
||||
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,38 @@
|
|||
|
||||
<h2>2016</h2>
|
||||
|
||||
<article>
|
||||
<div class="grid">
|
||||
|
||||
<div class="grid__item one-fifth palm-one-whole">
|
||||
<time datetime="2016-02-18T05:10:56+00:00" pubdate>
|
||||
<span class='month'>Feb</span> <span class='day'>18</span>
|
||||
</time>
|
||||
</div>
|
||||
<div class="grid__item four-fifths palm-one-whole">
|
||||
<h1 class="gamma"><a href="/blog/2016/02/18/multi-room-audio-with-snapcast/">Multi-room audio with Snapcast, Mopidy, 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>
|
||||
|
||||
|
||||
</ul>
|
||||
</span>
|
||||
</footer>
|
||||
|
||||
<hr class="divider">
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</article>
|
||||
|
||||
|
||||
|
||||
<article>
|
||||
<div class="grid">
|
||||
|
||||
|
@ -1611,6 +1643,12 @@
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/18/multi-room-audio-with-snapcast/">Multi-room audio with Snapcast, Mopidy, and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/13/speedtest-bloomsky-splunk-and-garage-doors/">0.13: Speedtest.net, Bloomsky, Splunk and Garage Doors</a>
|
||||
</li>
|
||||
|
@ -1634,12 +1672,6 @@
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/19/perfect-home-automation/">Perfect Home Automation</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-17T08:14:43+00:00</updated>
|
||||
<updated>2016-02-18T06:58:42+00:00</updated>
|
||||
<id>https://home-assistant.io/</id>
|
||||
<author>
|
||||
<name><![CDATA[Paulus Schoutsen]]></name>
|
||||
|
|
|
@ -286,6 +286,12 @@
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/18/multi-room-audio-with-snapcast/">Multi-room audio with Snapcast, Mopidy, and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/13/speedtest-bloomsky-splunk-and-garage-doors/">0.13: Speedtest.net, Bloomsky, Splunk and Garage Doors</a>
|
||||
</li>
|
||||
|
@ -309,12 +315,6 @@
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/19/perfect-home-automation/">Perfect Home Automation</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-17T08:14:43+00:00</updated>
|
||||
<updated>2016-02-18T06:58:42+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/18/multi-room-audio-with-snapcast/">Multi-room audio with Snapcast, Mopidy, and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/13/speedtest-bloomsky-splunk-and-garage-doors/">0.13: Speedtest.net, Bloomsky, Splunk and Garage Doors</a>
|
||||
</li>
|
||||
|
@ -277,12 +283,6 @@
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/19/perfect-home-automation/">Perfect Home Automation</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-17T08:14:43+00:00</updated>
|
||||
<updated>2016-02-18T06:58:42+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/18/multi-room-audio-with-snapcast/">Multi-room audio with Snapcast, Mopidy, and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/13/speedtest-bloomsky-splunk-and-garage-doors/">0.13: Speedtest.net, Bloomsky, Splunk and Garage Doors</a>
|
||||
</li>
|
||||
|
@ -242,12 +248,6 @@
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/19/perfect-home-automation/">Perfect Home Automation</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-17T08:14:43+00:00</updated>
|
||||
<updated>2016-02-18T06:58:42+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/18/multi-room-audio-with-snapcast/">Multi-room audio with Snapcast, Mopidy, and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/13/speedtest-bloomsky-splunk-and-garage-doors/">0.13: Speedtest.net, Bloomsky, Splunk and Garage Doors</a>
|
||||
</li>
|
||||
|
@ -246,12 +252,6 @@
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/19/perfect-home-automation/">Perfect Home Automation</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-17T08:14:43+00:00</updated>
|
||||
<updated>2016-02-18T06:58:42+00:00</updated>
|
||||
<id>https://home-assistant.io/</id>
|
||||
<author>
|
||||
<name><![CDATA[Paulus Schoutsen]]></name>
|
||||
|
@ -13,6 +13,160 @@
|
|||
<generator uri="http://octopress.org/">Octopress</generator>
|
||||
|
||||
|
||||
<entry>
|
||||
<title type="html"><![CDATA[Multi-room audio with Snapcast, Mopidy, and Home Assistant]]></title>
|
||||
<link href="https://home-assistant.io/blog/2016/02/18/multi-room-audio-with-snapcast/"/>
|
||||
<updated>2016-02-18T05:10:56+00:00</updated>
|
||||
<id>https://home-assistant.io/blog/2016/02/18/multi-room-audio-with-snapcast</id>
|
||||
<content type="html"><![CDATA[<p>Would you like to listen to music in every room in your home, controlled from one source? Then multi-room audio is for you.</p>
|
||||
|
||||
<p>Multi-room audio can be achieved by having a computer attached to speakers in every room. On each computer, services run to play and/or control the audio. With this DIY approach, the kind of computer and speakers is very much up to you. It could be your desktop computer with attached powered speakers, your HTPC hooked up to your TV and receiver, a Raspberry Pi with Amp or DAC, or even an Android device.</p>
|
||||
|
||||
<p>You’ll need two key software packages, besides Home Assistant. The first is <a href="https://www.mopidy.com/">Mopidy</a>, a music server that can play local files, or connect to streaming music services like Spotify. The second is <a href="https://github.com/badaix/snapcast/">Snapcast</a>, which enables synchronized audio streaming across your network. Both can be integrated into Home Assistant. Each room audio device will run an instance of the Snapcast client, and optionally a Mopidy instance. Your server will run a special instance of Mopidy and the Snapcast server.</p>
|
||||
|
||||
<p>Finally, you also need a player to control Mopidy. Any MPD-compatible player will work, and there are several <a href="https://docs.mopidy.com/en/latest/ext/web/#ext-web">Mopidy-only web-based options</a> available. On Android, <a href="https://play.google.com/store/apps/details?id=se.anil.remotedy">Remotedy</a> is particularly nice since you can access multiple Mopidy instances in one place.</p>
|
||||
|
||||
<p>Home Assistant will provide device status, and volume control for each room. If you want to play music in all your rooms (on all your clients), access the server instance of Mopidy. If you want to play music only in a specific room, access that specific Mopidy instance. If you’re using a web UI for Mopidy, you can add links to each instance in Home Assistant with the <a href="/components/weblink/">weblink</a> component.</p>
|
||||
|
||||
<p class="img">
|
||||
<img src="https://home-assistant.io/images/blog/2016-02-snapcast/diagram.png" />
|
||||
</p>
|
||||
|
||||
<!--more-->
|
||||
|
||||
<h2>Staging</h2>
|
||||
|
||||
<ul>
|
||||
<li><a href="https://www.mopidy.com/">Install</a> Mopidy (2.0.0 or greater)</li>
|
||||
<li><a href="https://github.com/badaix/snapcast/releases/">Download</a> and <a href="https://github.com/badaix/snapcast/tree/v0.5.0-beta-1#installation">Install</a> Snapcast (0.5.0 or greater)</li>
|
||||
</ul>
|
||||
|
||||
<h2>Configure Mopidy</h2>
|
||||
|
||||
<p>Mopidy can be run with multiple configuration files, each extending the previous file. This is helpful when we’re running multiple instances with varying functionality.</p>
|
||||
|
||||
<h3>core.conf</h3>
|
||||
<p>The core configuration is shared between all instances:</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre>[mpd]
|
||||
hostname = ::
|
||||
|
||||
[http]
|
||||
hostname = ::
|
||||
|
||||
[audio]
|
||||
output = alsasink
|
||||
|
||||
[spotify]
|
||||
username = <redacted>
|
||||
password = <redacted>
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h3>local.conf</h3>
|
||||
<p>Add the local configuration on computers that have local media files:</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre>[local]
|
||||
media_dir = <your/music/here>
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h3>snapcast.conf</h3>
|
||||
<p>Finally, the Mopidy instance that connects with Snapcast needs special configuration. Run on a different port to avoid conflicts if you have a second Mopidy instance running on your computer. The audio output is sent to a named pipe - Snapcast will read from there. Note that you may have to adjust the audio output attribute depending on your system and audio sources.</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre>[mpd]
|
||||
hostname = ::
|
||||
port = 6601
|
||||
|
||||
[http]
|
||||
hostname = ::
|
||||
port = 6681
|
||||
|
||||
[audio]
|
||||
output = audioresample ! audio/x-raw,rate=48000,channels=2,format=S16LE ! audioconvert ! wavenc ! filesink location=/tmp/snapfifo
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h2>Run Mopidy</h2>
|
||||
|
||||
<p>To run a room-specific instance:</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre>$ mopidy --config $CONF_DIR/core.conf
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>To run a room-specific instance with local media:</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre>$ mopidy --config $CONF_DIR/core.conf:$CONF_DIR/local.conf
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>To run the special Snapcast-connected instance (with local media):</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre>$ mopidy --config $CONF_DIR/core.conf:$CONF_DIR/local.conf:$CONF_DIR/snapcast.conf
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h2>Run Snapcast</h2>
|
||||
|
||||
<p>Start the <code>snapserver</code> on the same server running Mopidy with the snapcast configuration.</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre>$ snapserver # or use systemd
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>Start the <code>snapclient</code> on computers that will be playing audio.</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre>$ snapclient # or use systemd, add -h <server host> if necessary
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h2>Configure Snapcast</h2>
|
||||
|
||||
<p>There are a number of snapcast configuration options, but the one relevant to Home Assistant is the client names. You can set them in the snapserver configuration file, by default located at <code>~/.config/Snapcast/settings.json</code>. Only edit this file while the <code>snapserver</code> is not running. Modify the <code>name</code> JSON value to your liking - this is how the client will be named in Home Assistant.</p>
|
||||
|
||||
<h2>Configure Home Assistant</h2>
|
||||
|
||||
<p>Use the <a href="/components/media_player.mpd/">mpd</a> and <a href="/components/media_player.snapcast/">snapcast</a> components. Optionally, use <a href="/components/weblink/">weblink</a> to provide easy access to a Mopidy web UI.</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre><span class="key">media_player</span>:
|
||||
- <span class="string"><span class="content">platform: snapcast</span></span>
|
||||
<span class="key">host</span>: <span class="string"><span class="content">xxxxx</span></span>
|
||||
- <span class="string"><span class="content">platform: mpd</span></span>
|
||||
<span class="key">server</span>: <span class="string"><span class="content">xxxx</span></span>
|
||||
<span class="key">location</span>: <span class="string"><span class="content">Multi-Room Controller</span></span>
|
||||
- <span class="string"><span class="content">platform: mpd</span></span>
|
||||
<span class="key">server</span>: <span class="string"><span class="content">xxx</span></span>
|
||||
<span class="key">location</span>: <span class="string"><span class="content">Room 1</span></span>
|
||||
|
||||
<span class="key">weblink</span>:
|
||||
<span class="key">entities</span>:
|
||||
- <span class="string"><span class="content">name: Multi-Room Player</span></span>
|
||||
<span class="key">url</span>: <span class="string"><span class="content">xxxx</span></span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
]]></content>
|
||||
</entry>
|
||||
|
||||
<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/"/>
|
||||
|
@ -540,372 +694,6 @@ $ sudo systemctl status grafana-server
|
|||
Grafana Temperature graph
|
||||
</p>
|
||||
|
||||
]]></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/"/>
|
||||
<updated>2015-10-11T19:10:00+00:00</updated>
|
||||
<id>https://home-assistant.io/blog/2015/10/11/measure-temperature-with-esp8266-and-report-to-mqtt</id>
|
||||
<content type="html"><![CDATA[
|
||||
<p>I recently learned about the ESP8266, a $5 chip that includes WiFi and is Arduino compatible. This means that all your DIY projects can now be done for a fraction of the price.</p>
|
||||
|
||||
<p>For this tutorial, I’ll walk through how to get going with ESP8266, get the temperature and humidity and report it to MQTT where Home Asssistant can pick it up.</p>
|
||||
|
||||
<p class="img">
|
||||
<img src="https://home-assistant.io/images/blog/2015-10-esp8266-temp/setup.png" />
|
||||
Picture of the final setup (+ 2 LED for decoration)
|
||||
</p>
|
||||
|
||||
<p class="img">
|
||||
<img src="https://home-assistant.io/images/blog/2015-10-esp8266-temp/ha-sensor.png" />
|
||||
Home Assistant will keep track of historical values and allow you to integrate it into automation.
|
||||
</p>
|
||||
|
||||
<!--more-->
|
||||
|
||||
<h3>Components</h3>
|
||||
|
||||
<p>I’ve been using Adafruit for my shopping:</p>
|
||||
|
||||
<ul>
|
||||
<li><a href="http://www.adafruit.com/product/2471">Adafruit HUZZAH ESP8266 Breakout</a> (<a href="https://learn.adafruit.com/adafruit-huzzah-esp8266-breakout/assembly">assembly instructions</a>)</li>
|
||||
<li><a href="http://www.adafruit.com/product/2635">Adafruit HDC1008 Temperature & Humidity Sensor Breakout Board</a> (<a href="https://learn.adafruit.com/adafruit-hdc1008-temperature-and-humidity-sensor-breakout/assembly">assembly instructions</a>)</li>
|
||||
<li><a href="/components/mqtt/#picking-a-broker">MQTT server</a></li>
|
||||
</ul>
|
||||
|
||||
<p><em>Besides this, you will need the usual hardware prototype equipment: a breadboard, some wires, soldering iron + wire, Serial USB cable.</em></p>
|
||||
|
||||
<h3>Connections</h3>
|
||||
|
||||
<p>On your breadboard, make the following connections from your ESP8266 to the HDC1008:</p>
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>ESP8266</th>
|
||||
<th>HDC1008</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>GND</td>
|
||||
<td>GND</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>3V</td>
|
||||
<td>Vin</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>14</td>
|
||||
<td>SCL</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>#2</td>
|
||||
<td>SDA</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<p><em>I picked <code>#2</code> and <code>14</code> myself, you can configure them in the sketch.</em></p>
|
||||
|
||||
<h3>Preparing your IDE</h3>
|
||||
|
||||
<p>Follow <a href="https://github.com/esp8266/Arduino#installing-with-boards-manager">these instructions</a> on how to install and prepare the Arduino IDE for ESP8266 development.</p>
|
||||
|
||||
<p>After you’re done installing, open the Arduino IDE, in the menu click on <code>sketch</code> -> <code>include library</code> -> <code>manage libraries</code> and install the following libraries:</p>
|
||||
|
||||
<ul>
|
||||
<li>PubSubClient by Nick ‘O Leary</li>
|
||||
<li>Adafruit HDC1000</li>
|
||||
</ul>
|
||||
|
||||
<h3>Sketch</h3>
|
||||
|
||||
<p>If you have followed the previous steps, you’re all set.</p>
|
||||
|
||||
<ul>
|
||||
<li>Open Arduino IDE and create a new sketch (<code>File</code> -> <code>New</code>)</li>
|
||||
<li>Copy and paste the below sketch to the Arduino IDE</li>
|
||||
<li>Adjust the values line 6 - 14 to match your setup</li>
|
||||
<li>Optional: If you want to connect to an MQTT server without a username or password, adjust line 63.</li>
|
||||
<li>To have the ESP8266 accept our new sketch, we have to put it in upload mode. On the ESP8266 device keep the GPIO0 button pressed while pressing the reset button. The red led will glow half bright to indicate it is in upload mode.</li>
|
||||
<li>Press the upload button in Arduino IDE</li>
|
||||
<li>Open the serial monitor (<code>Tools</code> -> <code>Serial Monitor</code>) to see the output from your device</li>
|
||||
</ul>
|
||||
|
||||
<p>This sketch will connect to your WiFi network and MQTT broker. It will read the temperature and humidity from the sensor every second. It will report it to the MQTT server if the difference is > 1 since last reported value. Reports to the MQTT broker are sent with retain set to <code>True</code>. This means that anyone connecting to the MQTT topic will automatically be notified of the last reported value.</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>
|
||||
<a href="#n69" name="n69">69</a>
|
||||
<strong><a href="#n70" name="n70">70</a></strong>
|
||||
<a href="#n71" name="n71">71</a>
|
||||
<a href="#n72" name="n72">72</a>
|
||||
<a href="#n73" name="n73">73</a>
|
||||
<a href="#n74" name="n74">74</a>
|
||||
<a href="#n75" name="n75">75</a>
|
||||
<a href="#n76" name="n76">76</a>
|
||||
<a href="#n77" name="n77">77</a>
|
||||
<a href="#n78" name="n78">78</a>
|
||||
<a href="#n79" name="n79">79</a>
|
||||
<strong><a href="#n80" name="n80">80</a></strong>
|
||||
<a href="#n81" name="n81">81</a>
|
||||
<a href="#n82" name="n82">82</a>
|
||||
<a href="#n83" name="n83">83</a>
|
||||
<a href="#n84" name="n84">84</a>
|
||||
<a href="#n85" name="n85">85</a>
|
||||
<a href="#n86" name="n86">86</a>
|
||||
<a href="#n87" name="n87">87</a>
|
||||
<a href="#n88" name="n88">88</a>
|
||||
<a href="#n89" name="n89">89</a>
|
||||
<strong><a href="#n90" name="n90">90</a></strong>
|
||||
<a href="#n91" name="n91">91</a>
|
||||
<a href="#n92" name="n92">92</a>
|
||||
<a href="#n93" name="n93">93</a>
|
||||
<a href="#n94" name="n94">94</a>
|
||||
<a href="#n95" name="n95">95</a>
|
||||
<a href="#n96" name="n96">96</a>
|
||||
<a href="#n97" name="n97">97</a>
|
||||
<a href="#n98" name="n98">98</a>
|
||||
<a href="#n99" name="n99">99</a>
|
||||
<strong><a href="#n100" name="n100">100</a></strong>
|
||||
<a href="#n101" name="n101">101</a>
|
||||
<a href="#n102" name="n102">102</a>
|
||||
<a href="#n103" name="n103">103</a>
|
||||
<a href="#n104" name="n104">104</a>
|
||||
<a href="#n105" name="n105">105</a>
|
||||
<a href="#n106" name="n106">106</a>
|
||||
<a href="#n107" name="n107">107</a>
|
||||
<a href="#n108" name="n108">108</a>
|
||||
<a href="#n109" name="n109">109</a>
|
||||
</pre></td>
|
||||
<td class="code"><pre><span class="preprocessor">#include</span> <span class="include"><ESP8266WiFi.h></span>
|
||||
<span class="preprocessor">#include</span> <span class="include"><Wire.h></span>
|
||||
<span class="preprocessor">#include</span> <span class="include"><PubSubClient.h></span>
|
||||
<span class="preprocessor">#include</span> <span class="include"><Adafruit_HDC1000.h></span>
|
||||
|
||||
<span class="preprocessor">#define</span> wifi_ssid <span class="string"><span class="delimiter">"</span><span class="content">YOUR WIFI SSID</span><span class="delimiter">"</span></span>
|
||||
<span class="preprocessor">#define</span> wifi_password <span class="string"><span class="delimiter">"</span><span class="content">WIFI PASSWORD</span><span class="delimiter">"</span></span>
|
||||
|
||||
<span class="preprocessor">#define</span> mqtt_server <span class="string"><span class="delimiter">"</span><span class="content">YOUR_MQTT_SERVER_HOST</span><span class="delimiter">"</span></span>
|
||||
<span class="preprocessor">#define</span> mqtt_user <span class="string"><span class="delimiter">"</span><span class="content">your_username</span><span class="delimiter">"</span></span>
|
||||
<span class="preprocessor">#define</span> mqtt_password <span class="string"><span class="delimiter">"</span><span class="content">your_password</span><span class="delimiter">"</span></span>
|
||||
|
||||
<span class="preprocessor">#define</span> humidity_topic <span class="string"><span class="delimiter">"</span><span class="content">sensor/humidity</span><span class="delimiter">"</span></span>
|
||||
<span class="preprocessor">#define</span> temperature_topic <span class="string"><span class="delimiter">"</span><span class="content">sensor/temperature</span><span class="delimiter">"</span></span>
|
||||
|
||||
WiFiClient espClient;
|
||||
PubSubClient client(espClient);
|
||||
Adafruit_HDC1000 hdc = Adafruit_HDC1000();
|
||||
|
||||
<span class="directive">void</span> setup() {
|
||||
Serial.begin(<span class="integer">115200</span>);
|
||||
setup_wifi();
|
||||
client.setServer(mqtt_server, <span class="integer">1883</span>);
|
||||
|
||||
<span class="comment">// Set SDA and SDL ports</span>
|
||||
Wire.begin(<span class="integer">2</span>, <span class="integer">14</span>);
|
||||
|
||||
<span class="comment">// Start sensor</span>
|
||||
<span class="keyword">if</span> (!hdc.begin()) {
|
||||
Serial.println(<span class="string"><span class="delimiter">"</span><span class="content">Couldn't find sensor!</span><span class="delimiter">"</span></span>);
|
||||
<span class="keyword">while</span> (<span class="integer">1</span>);
|
||||
}}
|
||||
|
||||
<span class="directive">void</span> setup_wifi() {
|
||||
delay(<span class="integer">10</span>);
|
||||
<span class="comment">// We start by connecting to a WiFi network</span>
|
||||
Serial.println();
|
||||
Serial.print(<span class="string"><span class="delimiter">"</span><span class="content">Connecting to </span><span class="delimiter">"</span></span>);
|
||||
Serial.println(wifi_ssid);
|
||||
|
||||
WiFi.begin(wifi_ssid, wifi_password);
|
||||
|
||||
<span class="keyword">while</span> (WiFi.status() != WL_CONNECTED) {
|
||||
delay(<span class="integer">500</span>);
|
||||
Serial.print(<span class="string"><span class="delimiter">"</span><span class="content">.</span><span class="delimiter">"</span></span>);
|
||||
}
|
||||
|
||||
Serial.println(<span class="string"><span class="delimiter">"</span><span class="delimiter">"</span></span>);
|
||||
Serial.println(<span class="string"><span class="delimiter">"</span><span class="content">WiFi connected</span><span class="delimiter">"</span></span>);
|
||||
Serial.println(<span class="string"><span class="delimiter">"</span><span class="content">IP address: </span><span class="delimiter">"</span></span>);
|
||||
Serial.println(WiFi.localIP());
|
||||
}
|
||||
|
||||
<span class="directive">void</span> reconnect() {
|
||||
<span class="comment">// Loop until we're reconnected</span>
|
||||
<span class="keyword">while</span> (!client.connected()) {
|
||||
Serial.print(<span class="string"><span class="delimiter">"</span><span class="content">Attempting MQTT connection...</span><span class="delimiter">"</span></span>);
|
||||
<span class="comment">// Attempt to connect</span>
|
||||
<span class="comment">// If you do not want to use a username and password, change next line to</span>
|
||||
<span class="comment">// if (client.connect("ESP8266Client")) {</span>
|
||||
<span class="keyword">if</span> (client.connect(<span class="string"><span class="delimiter">"</span><span class="content">ESP8266Client</span><span class="delimiter">"</span></span>, mqtt_user, mqtt_password)) {
|
||||
Serial.println(<span class="string"><span class="delimiter">"</span><span class="content">connected</span><span class="delimiter">"</span></span>);
|
||||
} <span class="keyword">else</span> {
|
||||
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="comment">// Wait 5 seconds before retrying</span>
|
||||
delay(<span class="integer">5000</span>);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
<span class="predefined-type">bool</span> checkBound(<span class="predefined-type">float</span> newValue, <span class="predefined-type">float</span> prevValue, <span class="predefined-type">float</span> maxDiff) {
|
||||
<span class="keyword">return</span> newValue < prevValue - maxDiff || newValue > prevValue + maxDiff;
|
||||
}
|
||||
|
||||
<span class="predefined-type">long</span> lastMsg = <span class="integer">0</span>;
|
||||
<span class="predefined-type">float</span> temp = <span class="float">0</span><span class="float">.0</span>;
|
||||
<span class="predefined-type">float</span> hum = <span class="float">0</span><span class="float">.0</span>;
|
||||
<span class="predefined-type">float</span> diff = <span class="float">1</span><span class="float">.0</span>;
|
||||
|
||||
<span class="directive">void</span> loop() {
|
||||
<span class="keyword">if</span> (!client.connected()) {
|
||||
reconnect();
|
||||
}
|
||||
client.loop();
|
||||
|
||||
<span class="predefined-type">long</span> now = millis();
|
||||
<span class="keyword">if</span> (now - lastMsg > <span class="integer">1000</span>) {
|
||||
lastMsg = now;
|
||||
|
||||
<span class="predefined-type">float</span> newTemp = hdc.readTemperature();
|
||||
<span class="predefined-type">float</span> newHum = hdc.readHumidity();
|
||||
|
||||
<span class="keyword">if</span> (checkBound(newTemp, temp, diff)) {
|
||||
temp = newTemp;
|
||||
Serial.print(<span class="string"><span class="delimiter">"</span><span class="content">New temperature:</span><span class="delimiter">"</span></span>);
|
||||
Serial.println(String(temp).c_str());
|
||||
client.publish(temperature_topic, String(temp).c_str(), <span class="predefined-constant">true</span>);
|
||||
}
|
||||
|
||||
<span class="keyword">if</span> (checkBound(newHum, hum, diff)) {
|
||||
hum = newHum;
|
||||
Serial.print(<span class="string"><span class="delimiter">"</span><span class="content">New humidity:</span><span class="delimiter">"</span></span>);
|
||||
Serial.println(String(hum).c_str());
|
||||
client.publish(humidity_topic, String(hum).c_str(), <span class="predefined-constant">true</span>);
|
||||
}
|
||||
}
|
||||
}
|
||||
</pre></td>
|
||||
</tr></table>
|
||||
</div>
|
||||
|
||||
<h3>Configuring Home Assistant</h3>
|
||||
|
||||
<p>The last step is to integrate the sensor values into Home Assistant. This can be done by setting up Home Assistant to connect to the MQTT broker and subscribe to the sensor topics.</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>
|
||||
</pre></td>
|
||||
<td class="code"><pre><span class="key">mqtt</span>:
|
||||
<span class="key">broker</span>: <span class="string"><span class="content">YOUR_MQTT_SERVER_HOST</span></span>
|
||||
<span class="key">username</span>: <span class="string"><span class="content">your_username</span></span>
|
||||
<span class="key">password</span>: <span class="string"><span class="content">your_password</span></span>
|
||||
|
||||
<span class="key">sensor</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">Temperature</span><span class="delimiter">"</span></span>
|
||||
<span class="key">state_topic</span>: <span class="string"><span class="delimiter">"</span><span class="content">sensor/temperature</span><span class="delimiter">"</span></span>
|
||||
<span class="key">qos</span>: <span class="string"><span class="content">0</span></span>
|
||||
<span class="key">unit_of_measurement</span>: <span class="string"><span class="delimiter">"</span><span class="content">ºC</span><span class="delimiter">"</span></span>
|
||||
|
||||
<span class="key">sensor 2</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">Humidity</span><span class="delimiter">"</span></span>
|
||||
<span class="key">state_topic</span>: <span class="string"><span class="delimiter">"</span><span class="content">sensor/humidity</span><span class="delimiter">"</span></span>
|
||||
<span class="key">qos</span>: <span class="string"><span class="content">0</span></span>
|
||||
<span class="key">unit_of_measurement</span>: <span class="string"><span class="delimiter">"</span><span class="content">%</span><span class="delimiter">"</span></span>
|
||||
</pre></td>
|
||||
</tr></table>
|
||||
</div>
|
||||
]]></content>
|
||||
</entry>
|
||||
|
||||
|
|
|
@ -122,6 +122,38 @@
|
|||
|
||||
<h2>2016</h2>
|
||||
|
||||
<article>
|
||||
<div class="grid">
|
||||
|
||||
<div class="grid__item one-fifth palm-one-whole">
|
||||
<time datetime="2016-02-18T05:10:56+00:00" pubdate>
|
||||
<span class='month'>Feb</span> <span class='day'>18</span>
|
||||
</time>
|
||||
</div>
|
||||
<div class="grid__item four-fifths palm-one-whole">
|
||||
<h1 class="gamma"><a href="/blog/2016/02/18/multi-room-audio-with-snapcast/">Multi-room audio with Snapcast, Mopidy, 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>
|
||||
|
||||
|
||||
</ul>
|
||||
</span>
|
||||
</footer>
|
||||
|
||||
<hr class="divider">
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</article>
|
||||
|
||||
|
||||
|
||||
<article>
|
||||
<div class="grid">
|
||||
|
||||
|
@ -456,6 +488,12 @@
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/18/multi-room-audio-with-snapcast/">Multi-room audio with Snapcast, Mopidy, and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/13/speedtest-bloomsky-splunk-and-garage-doors/">0.13: Speedtest.net, Bloomsky, Splunk and Garage Doors</a>
|
||||
</li>
|
||||
|
@ -479,12 +517,6 @@
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/19/perfect-home-automation/">Perfect Home Automation</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-17T08:14:43+00:00</updated>
|
||||
<updated>2016-02-18T06:58:42+00:00</updated>
|
||||
<id>https://home-assistant.io/</id>
|
||||
<author>
|
||||
<name><![CDATA[Paulus Schoutsen]]></name>
|
||||
|
|
|
@ -294,6 +294,12 @@
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/18/multi-room-audio-with-snapcast/">Multi-room audio with Snapcast, Mopidy, and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/13/speedtest-bloomsky-splunk-and-garage-doors/">0.13: Speedtest.net, Bloomsky, Splunk and Garage Doors</a>
|
||||
</li>
|
||||
|
@ -317,12 +323,6 @@
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/19/perfect-home-automation/">Perfect Home Automation</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-17T08:14:43+00:00</updated>
|
||||
<updated>2016-02-18T06:58:42+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/18/multi-room-audio-with-snapcast/">Multi-room audio with Snapcast, Mopidy, and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/13/speedtest-bloomsky-splunk-and-garage-doors/">0.13: Speedtest.net, Bloomsky, Splunk and Garage Doors</a>
|
||||
</li>
|
||||
|
@ -242,12 +248,6 @@
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/19/perfect-home-automation/">Perfect Home Automation</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-17T08:14:43+00:00</updated>
|
||||
<updated>2016-02-18T06:58:42+00:00</updated>
|
||||
<id>https://home-assistant.io/</id>
|
||||
<author>
|
||||
<name><![CDATA[Paulus Schoutsen]]></name>
|
||||
|
|
|
@ -1088,6 +1088,12 @@
|
|||
<ul class="divided">
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/18/multi-room-audio-with-snapcast/">Multi-room audio with Snapcast, Mopidy, and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/13/speedtest-bloomsky-splunk-and-garage-doors/">0.13: Speedtest.net, Bloomsky, Splunk and Garage Doors</a>
|
||||
</li>
|
||||
|
@ -1111,12 +1117,6 @@
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/19/perfect-home-automation/">Perfect Home Automation</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-17T08:14:43+00:00</updated>
|
||||
<updated>2016-02-18T06:58:42+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/18/multi-room-audio-with-snapcast/">Multi-room audio with Snapcast, Mopidy, and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/13/speedtest-bloomsky-splunk-and-garage-doors/">0.13: Speedtest.net, Bloomsky, Splunk and Garage Doors</a>
|
||||
</li>
|
||||
|
@ -242,12 +248,6 @@
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/19/perfect-home-automation/">Perfect Home Automation</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-17T08:14:43+00:00</updated>
|
||||
<updated>2016-02-18T06:58:42+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/18/multi-room-audio-with-snapcast/">Multi-room audio with Snapcast, Mopidy, and Home Assistant</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/02/13/speedtest-bloomsky-splunk-and-garage-doors/">0.13: Speedtest.net, Bloomsky, Splunk and Garage Doors</a>
|
||||
</li>
|
||||
|
@ -242,12 +248,6 @@
|
|||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="post">
|
||||
<a href="/blog/2016/01/19/perfect-home-automation/">Perfect Home Automation</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
|
103
blog/index.html
103
blog/index.html
|
@ -102,6 +102,62 @@
|
|||
|
||||
|
||||
|
||||
<article class="listing">
|
||||
<header>
|
||||
|
||||
<h1 class="beta">
|
||||
<a href="/blog/2016/02/18/multi-room-audio-with-snapcast/">Multi-room audio with Snapcast, Mopidy, and Home Assistant</a>
|
||||
</h1>
|
||||
|
||||
|
||||
|
||||
<div class="meta clearfix">
|
||||
<time datetime="2016-02-18T05:10:56+00:00" pubdate data-updated="true"><i class="icon-calendar"></i> February 18, 2016</time>
|
||||
<span class="byline author vcard"><i class='icon-user'></i> happyleavesaoc</span>
|
||||
<span><i class='icon-time'></i> four minutes reading time</span>
|
||||
<span>
|
||||
<i class="icon-tags"></i>
|
||||
<ul class="tags unstyled">
|
||||
|
||||
|
||||
<li><a class='category' href='/blog/categories/how-to/'>How-To</a></li>
|
||||
|
||||
|
||||
</ul>
|
||||
</span>
|
||||
|
||||
<a class='comments'
|
||||
href="/blog/2016/02/18/multi-room-audio-with-snapcast/#disqus_thread"
|
||||
>Comments</a>
|
||||
|
||||
</div>
|
||||
|
||||
</header>
|
||||
|
||||
|
||||
<div class="entry-content clearfix">
|
||||
<p>Would you like to listen to music in every room in your home, controlled from one source? Then multi-room audio is for you.</p>
|
||||
|
||||
<p>Multi-room audio can be achieved by having a computer attached to speakers in every room. On each computer, services run to play and/or control the audio. With this DIY approach, the kind of computer and speakers is very much up to you. It could be your desktop computer with attached powered speakers, your HTPC hooked up to your TV and receiver, a Raspberry Pi with Amp or DAC, or even an Android device.</p>
|
||||
|
||||
<p>You’ll need two key software packages, besides Home Assistant. The first is <a href="https://www.mopidy.com/">Mopidy</a>, a music server that can play local files, or connect to streaming music services like Spotify. The second is <a href="https://github.com/badaix/snapcast/">Snapcast</a>, which enables synchronized audio streaming across your network. Both can be integrated into Home Assistant. Each room audio device will run an instance of the Snapcast client, and optionally a Mopidy instance. Your server will run a special instance of Mopidy and the Snapcast server.</p>
|
||||
|
||||
<p>Finally, you also need a player to control Mopidy. Any MPD-compatible player will work, and there are several <a href="https://docs.mopidy.com/en/latest/ext/web/#ext-web">Mopidy-only web-based options</a> available. On Android, <a href="https://play.google.com/store/apps/details?id=se.anil.remotedy">Remotedy</a> is particularly nice since you can access multiple Mopidy instances in one place.</p>
|
||||
|
||||
<p>Home Assistant will provide device status, and volume control for each room. If you want to play music in all your rooms (on all your clients), access the server instance of Mopidy. If you want to play music only in a specific room, access that specific Mopidy instance. If you’re using a web UI for Mopidy, you can add links to each instance in Home Assistant with the <a href="/components/weblink/">weblink</a> component.</p>
|
||||
|
||||
<p class="img">
|
||||
<img src="/images/blog/2016-02-snapcast/diagram.png" />
|
||||
</p>
|
||||
|
||||
|
||||
|
||||
<a class="btn pull-right" href="/blog/2016/02/18/multi-room-audio-with-snapcast/#read-more">Read on →</a>
|
||||
|
||||
</div>
|
||||
</article>
|
||||
<hr>
|
||||
|
||||
<article class="listing">
|
||||
<header>
|
||||
|
||||
|
@ -718,53 +774,6 @@ Philips Hue FAQ entries regarding reversing the decision.
|
|||
</article>
|
||||
<hr>
|
||||
|
||||
<article class="listing">
|
||||
<header>
|
||||
|
||||
<h1 class="beta">
|
||||
<a href="/blog/2015/12/10/activating-tasker-tasks-from-home-assistant-using-command-line-switches/">Activating Tasker tasks from Home Assistant using command line switches</a>
|
||||
</h1>
|
||||
|
||||
|
||||
|
||||
<div class="meta clearfix">
|
||||
<time datetime="2015-12-10T10:39:41+00:00" pubdate data-updated="true"><i class="icon-calendar"></i> December 10, 2015</time>
|
||||
<span class="byline author vcard"><i class='icon-user'></i> Rowan Hine</span>
|
||||
<span><i class='icon-time'></i> three minutes reading time</span>
|
||||
<span>
|
||||
<i class="icon-tags"></i>
|
||||
<ul class="tags unstyled">
|
||||
|
||||
|
||||
<li><a class='category' href='/blog/categories/how-to/'>How-To</a></li>
|
||||
|
||||
|
||||
</ul>
|
||||
</span>
|
||||
|
||||
<a class='comments'
|
||||
href="/blog/2015/12/10/activating-tasker-tasks-from-home-assistant-using-command-line-switches/#disqus_thread"
|
||||
>Comments</a>
|
||||
|
||||
</div>
|
||||
|
||||
</header>
|
||||
|
||||
|
||||
<div class="entry-content clearfix">
|
||||
<p><img src="/images/blog/2015-12-tasker/tasker-logo.png" style="clear: right; border:none; box-shadow: none; float: right; margin-bottom: 12px;" width="200" /><br />
|
||||
In this tutorial I will explain how you can activate Tasker tasks from Home Assistant command line switches. We are going to set up a switch that when toggled will make your Android device say either “On” or “Off”.</p>
|
||||
|
||||
<p>You could also do this with the automation component instead so whenever you put your house to sleep mode for example your Android device will open up Google Play Books or the Kindle app ready for you to read as well as dimming your lights, but this tutorial is all about the switches.</p>
|
||||
|
||||
|
||||
|
||||
<a class="btn pull-right" href="/blog/2015/12/10/activating-tasker-tasks-from-home-assistant-using-command-line-switches/#read-more">Read on →</a>
|
||||
|
||||
</div>
|
||||
</article>
|
||||
<hr>
|
||||
|
||||
|
||||
<div class="pagination">
|
||||
|
||||
|
|
|
@ -102,6 +102,53 @@
|
|||
|
||||
|
||||
|
||||
<article class="listing">
|
||||
<header>
|
||||
|
||||
<h1 class="beta">
|
||||
<a href="/blog/2015/12/10/activating-tasker-tasks-from-home-assistant-using-command-line-switches/">Activating Tasker tasks from Home Assistant using command line switches</a>
|
||||
</h1>
|
||||
|
||||
|
||||
|
||||
<div class="meta clearfix">
|
||||
<time datetime="2015-12-10T10:39:41+00:00" pubdate data-updated="true"><i class="icon-calendar"></i> December 10, 2015</time>
|
||||
<span class="byline author vcard"><i class='icon-user'></i> Rowan Hine</span>
|
||||
<span><i class='icon-time'></i> three minutes reading time</span>
|
||||
<span>
|
||||
<i class="icon-tags"></i>
|
||||
<ul class="tags unstyled">
|
||||
|
||||
|
||||
<li><a class='category' href='/blog/categories/how-to/'>How-To</a></li>
|
||||
|
||||
|
||||
</ul>
|
||||
</span>
|
||||
|
||||
<a class='comments'
|
||||
href="/blog/2015/12/10/activating-tasker-tasks-from-home-assistant-using-command-line-switches/#disqus_thread"
|
||||
>Comments</a>
|
||||
|
||||
</div>
|
||||
|
||||
</header>
|
||||
|
||||
|
||||
<div class="entry-content clearfix">
|
||||
<p><img src="/images/blog/2015-12-tasker/tasker-logo.png" style="clear: right; border:none; box-shadow: none; float: right; margin-bottom: 12px;" width="200" /><br />
|
||||
In this tutorial I will explain how you can activate Tasker tasks from Home Assistant command line switches. We are going to set up a switch that when toggled will make your Android device say either “On” or “Off”.</p>
|
||||
|
||||
<p>You could also do this with the automation component instead so whenever you put your house to sleep mode for example your Android device will open up Google Play Books or the Kindle app ready for you to read as well as dimming your lights, but this tutorial is all about the switches.</p>
|
||||
|
||||
|
||||
|
||||
<a class="btn pull-right" href="/blog/2015/12/10/activating-tasker-tasks-from-home-assistant-using-command-line-switches/#read-more">Read on →</a>
|
||||
|
||||
</div>
|
||||
</article>
|
||||
<hr>
|
||||
|
||||
<article class="listing">
|
||||
<header>
|
||||
|
||||
|
@ -645,71 +692,6 @@ Map in Home Assistant showing two people and three zones (home, school, work)
|
|||
</article>
|
||||
<hr>
|
||||
|
||||
<article class="listing">
|
||||
<header>
|
||||
|
||||
<h1 class="beta">
|
||||
<a href="/blog/2015/09/19/alarm-sonos-and-itunes-support/">Alarms, Sonos and iTunes now supported</a>
|
||||
</h1>
|
||||
|
||||
|
||||
|
||||
<div class="meta clearfix">
|
||||
<time datetime="2015-09-19T21:47:00+00:00" pubdate data-updated="true"><i class="icon-calendar"></i> September 19, 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/09/19/alarm-sonos-and-itunes-support/#disqus_thread"
|
||||
>Comments</a>
|
||||
|
||||
</div>
|
||||
|
||||
</header>
|
||||
|
||||
|
||||
<div class="entry-content clearfix">
|
||||
<p>It’s like someone opened a can of rock solid developers and emptied it above our <a href="https://gitter.im/balloob/home-assistant">chat channel</a> because it exploded with great conversations and solid contributions. Featured in release 0.7.3: Sonos, iTunes, Alarm component and Automation upgrade.</p>
|
||||
|
||||
<p>See <a href="https://github.com/balloob/home-assistant/releases/tag/0.7.3">GitHub</a> for more detailed release notes.</p>
|
||||
|
||||
<p><em>Migration note: the <code>scheduler</code> component has been removed in favor of the <code>automation</code> component.</em></p>
|
||||
|
||||
<p><strong>Sonos</strong><br />
|
||||
<img src="/images/supported_brands/sonos.png" style="border:none; box-shadow: none; float: right;" height="50" /> Sonos support has been added by <a href="https://github.com/rhooper">@rhooper</a> and <a href="https://github.com/SEJeff">@SEJeff</a>. Home Assistant is now able to automatically detect Sonos devices in your network and set them up for you. It will allow you to control music playing on your Sonos and change the volume.</p>
|
||||
|
||||
<p><strong>iTunes and airplay speakers</strong><br />
|
||||
<img src="/images/supported_brands/itunes.png" style="border:none; box-shadow: none; float: right;" height="50" /> <a href="https://github.com/maddox">@maddox</a> has contributed support for controlling iTunes and airplay speakers. For this to work you will have to run <a href="https://github.com/maddox/itunes-api">itunes-api</a> on your Mac as middleware.</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
|
||||
<span class="key">media_player</span>:
|
||||
<span class="key">platform</span>: <span class="string"><span class="content">itunes</span></span>
|
||||
<span class="key">name</span>: <span class="string"><span class="content">iTunes</span></span>
|
||||
<span class="key">host</span>: <span class="string"><span class="content">http://192.168.1.50</span></span>
|
||||
<span class="key">port</span>: <span class="string"><span class="content">8181</span></span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<a class="btn pull-right" href="/blog/2015/09/19/alarm-sonos-and-itunes-support/#read-more">Read on →</a>
|
||||
|
||||
</div>
|
||||
</article>
|
||||
<hr>
|
||||
|
||||
|
||||
<div class="pagination">
|
||||
|
||||
|
|
|
@ -102,6 +102,71 @@
|
|||
|
||||
|
||||
|
||||
<article class="listing">
|
||||
<header>
|
||||
|
||||
<h1 class="beta">
|
||||
<a href="/blog/2015/09/19/alarm-sonos-and-itunes-support/">Alarms, Sonos and iTunes now supported</a>
|
||||
</h1>
|
||||
|
||||
|
||||
|
||||
<div class="meta clearfix">
|
||||
<time datetime="2015-09-19T21:47:00+00:00" pubdate data-updated="true"><i class="icon-calendar"></i> September 19, 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/09/19/alarm-sonos-and-itunes-support/#disqus_thread"
|
||||
>Comments</a>
|
||||
|
||||
</div>
|
||||
|
||||
</header>
|
||||
|
||||
|
||||
<div class="entry-content clearfix">
|
||||
<p>It’s like someone opened a can of rock solid developers and emptied it above our <a href="https://gitter.im/balloob/home-assistant">chat channel</a> because it exploded with great conversations and solid contributions. Featured in release 0.7.3: Sonos, iTunes, Alarm component and Automation upgrade.</p>
|
||||
|
||||
<p>See <a href="https://github.com/balloob/home-assistant/releases/tag/0.7.3">GitHub</a> for more detailed release notes.</p>
|
||||
|
||||
<p><em>Migration note: the <code>scheduler</code> component has been removed in favor of the <code>automation</code> component.</em></p>
|
||||
|
||||
<p><strong>Sonos</strong><br />
|
||||
<img src="/images/supported_brands/sonos.png" style="border:none; box-shadow: none; float: right;" height="50" /> Sonos support has been added by <a href="https://github.com/rhooper">@rhooper</a> and <a href="https://github.com/SEJeff">@SEJeff</a>. Home Assistant is now able to automatically detect Sonos devices in your network and set them up for you. It will allow you to control music playing on your Sonos and change the volume.</p>
|
||||
|
||||
<p><strong>iTunes and airplay speakers</strong><br />
|
||||
<img src="/images/supported_brands/itunes.png" style="border:none; box-shadow: none; float: right;" height="50" /> <a href="https://github.com/maddox">@maddox</a> has contributed support for controlling iTunes and airplay speakers. For this to work you will have to run <a href="https://github.com/maddox/itunes-api">itunes-api</a> on your Mac as middleware.</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
|
||||
<span class="key">media_player</span>:
|
||||
<span class="key">platform</span>: <span class="string"><span class="content">itunes</span></span>
|
||||
<span class="key">name</span>: <span class="string"><span class="content">iTunes</span></span>
|
||||
<span class="key">host</span>: <span class="string"><span class="content">http://192.168.1.50</span></span>
|
||||
<span class="key">port</span>: <span class="string"><span class="content">8181</span></span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<a class="btn pull-right" href="/blog/2015/09/19/alarm-sonos-and-itunes-support/#read-more">Read on →</a>
|
||||
|
||||
</div>
|
||||
</article>
|
||||
<hr>
|
||||
|
||||
<article class="listing">
|
||||
<header>
|
||||
|
||||
|
@ -622,58 +687,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/05/14/release-notes/">Release notes for May 14, 2015</a>
|
||||
</h1>
|
||||
|
||||
|
||||
|
||||
<div class="meta clearfix">
|
||||
<time datetime="2015-05-14T22:25:00+00:00" pubdate data-updated="true"><i class="icon-calendar"></i> May 14, 2015</time>
|
||||
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
|
||||
<span><i class='icon-time'></i> three minutes reading time</span>
|
||||
<span>
|
||||
<i class="icon-tags"></i>
|
||||
<ul class="tags unstyled">
|
||||
|
||||
|
||||
<li><a class='category' href='/blog/categories/release-notes/'>Release-Notes</a></li>
|
||||
|
||||
|
||||
</ul>
|
||||
</span>
|
||||
|
||||
<a class='comments'
|
||||
href="/blog/2015/05/14/release-notes/#disqus_thread"
|
||||
>Comments</a>
|
||||
|
||||
</div>
|
||||
|
||||
</header>
|
||||
|
||||
|
||||
<div class="entry-content clearfix">
|
||||
<p>Almost three busy weeks have past since the last release. We used this time to finally make the overhaul to use UTC as the internal date time format. We added a bunch of test coverage in the process to make sure the transition went smoothly. Pleas see <a href="/blog/2015/05/09/utc-time-zone-awareness/#backwards-incompatible-stuff">the blog post about the UTC refactor</a> for backwards incompatible changes.</p>
|
||||
|
||||
<p>This release includes a significant startup boost for the frontend and a fix for Wemo discovery after their latest firmware upgrade.</p>
|
||||
|
||||
<p>I would like to give a big shout out to our newest contributor <a href="https://github.com/fabaff">fabaff</a> for taking the time to improve the documentation.</p>
|
||||
|
||||
<p class="note">
|
||||
To update to the latest version, run <code>scripts/update</code>. Please report any issues on <a href="https://github.com/balloob/home-assistant/issues">GitHub</a>.
|
||||
</p>
|
||||
|
||||
|
||||
|
||||
<a class="btn pull-right" href="/blog/2015/05/14/release-notes/#read-more">Read on →</a>
|
||||
|
||||
</div>
|
||||
</article>
|
||||
<hr>
|
||||
|
||||
|
||||
<div class="pagination">
|
||||
|
||||
|
|
|
@ -102,6 +102,58 @@
|
|||
|
||||
|
||||
|
||||
<article class="listing">
|
||||
<header>
|
||||
|
||||
<h1 class="beta">
|
||||
<a href="/blog/2015/05/14/release-notes/">Release notes for May 14, 2015</a>
|
||||
</h1>
|
||||
|
||||
|
||||
|
||||
<div class="meta clearfix">
|
||||
<time datetime="2015-05-14T22:25:00+00:00" pubdate data-updated="true"><i class="icon-calendar"></i> May 14, 2015</time>
|
||||
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
|
||||
<span><i class='icon-time'></i> three minutes reading time</span>
|
||||
<span>
|
||||
<i class="icon-tags"></i>
|
||||
<ul class="tags unstyled">
|
||||
|
||||
|
||||
<li><a class='category' href='/blog/categories/release-notes/'>Release-Notes</a></li>
|
||||
|
||||
|
||||
</ul>
|
||||
</span>
|
||||
|
||||
<a class='comments'
|
||||
href="/blog/2015/05/14/release-notes/#disqus_thread"
|
||||
>Comments</a>
|
||||
|
||||
</div>
|
||||
|
||||
</header>
|
||||
|
||||
|
||||
<div class="entry-content clearfix">
|
||||
<p>Almost three busy weeks have past since the last release. We used this time to finally make the overhaul to use UTC as the internal date time format. We added a bunch of test coverage in the process to make sure the transition went smoothly. Pleas see <a href="/blog/2015/05/09/utc-time-zone-awareness/#backwards-incompatible-stuff">the blog post about the UTC refactor</a> for backwards incompatible changes.</p>
|
||||
|
||||
<p>This release includes a significant startup boost for the frontend and a fix for Wemo discovery after their latest firmware upgrade.</p>
|
||||
|
||||
<p>I would like to give a big shout out to our newest contributor <a href="https://github.com/fabaff">fabaff</a> for taking the time to improve the documentation.</p>
|
||||
|
||||
<p class="note">
|
||||
To update to the latest version, run <code>scripts/update</code>. Please report any issues on <a href="https://github.com/balloob/home-assistant/issues">GitHub</a>.
|
||||
</p>
|
||||
|
||||
|
||||
|
||||
<a class="btn pull-right" href="/blog/2015/05/14/release-notes/#read-more">Read on →</a>
|
||||
|
||||
</div>
|
||||
</article>
|
||||
<hr>
|
||||
|
||||
<article class="listing">
|
||||
<header>
|
||||
|
||||
|
@ -670,64 +722,6 @@ Home Assistant should now throw better errors and offer solutions if you do not
|
|||
Home Assistant now supports <code>--open-ui</code> and <code>--demo-mode</code> command line properties to open the browser automatically and have something to show. Home Assistant now supports to be run without a password, allowing the interface to login automatically on launch.</p>
|
||||
|
||||
|
||||
</div>
|
||||
</article>
|
||||
<hr>
|
||||
|
||||
<article class="listing">
|
||||
<header>
|
||||
|
||||
<h1 class="beta">
|
||||
<a href="/blog/2015/01/13/nest-in-da-house/">Nest in the house!</a>
|
||||
</h1>
|
||||
|
||||
|
||||
|
||||
<div class="meta clearfix">
|
||||
<time datetime="2015-01-13T16:29:04+00:00" pubdate data-updated="true"><i class="icon-calendar"></i> January 13, 2015</time>
|
||||
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
|
||||
<span><i class='icon-time'></i> less than one minute reading time</span>
|
||||
<span>
|
||||
<i class="icon-tags"></i>
|
||||
<ul class="tags unstyled">
|
||||
|
||||
|
||||
<li><a class='category' href='/blog/categories/release-notes/'>Release-Notes</a></li>
|
||||
|
||||
|
||||
</ul>
|
||||
</span>
|
||||
|
||||
<a class='comments'
|
||||
href="/blog/2015/01/13/nest-in-da-house/#disqus_thread"
|
||||
>Comments</a>
|
||||
|
||||
</div>
|
||||
|
||||
</header>
|
||||
|
||||
|
||||
<div class="entry-content clearfix">
|
||||
<p>For thet majority of its existence, Home Assistant primary focus was on presence detection, lights and switches. But not anymore as we’re expanding the supported devices. Today, we’re proud to introduce Nest Thermostat integration for Home Assistant contributed by <a href="https://github.com/sfiorini">Stefano Fiorini</a>!</p>
|
||||
|
||||
<p class="img">
|
||||
<img src="/images/screenshots/nest-thermostat-card.png" />
|
||||
</p>
|
||||
|
||||
<p>The new integration exists out of two parts: a generic thermostat component and a Nest platform implementation. The initial version implements provides a read-only card and services to control it. The plan is in the future to add temperature and away mode controls from the thermostat card and more info dialog. Internally, we are using the Python package <a href="https://github.com/jkoelker/python-nest">python-nest by jkoelker</a> to talk to the Nest.</p>
|
||||
|
||||
<p>If you own a Nest thermostat, add the following lines to your <code>home-assistant.conf</code>:</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre>[thermostat]
|
||||
platform=nest
|
||||
username=YOUR_USERNAME
|
||||
password=YOUR_PASSWORD
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</article>
|
||||
<hr>
|
||||
|
|
|
@ -102,6 +102,64 @@
|
|||
|
||||
|
||||
|
||||
<article class="listing">
|
||||
<header>
|
||||
|
||||
<h1 class="beta">
|
||||
<a href="/blog/2015/01/13/nest-in-da-house/">Nest in the house!</a>
|
||||
</h1>
|
||||
|
||||
|
||||
|
||||
<div class="meta clearfix">
|
||||
<time datetime="2015-01-13T16:29:04+00:00" pubdate data-updated="true"><i class="icon-calendar"></i> January 13, 2015</time>
|
||||
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
|
||||
<span><i class='icon-time'></i> less than one minute reading time</span>
|
||||
<span>
|
||||
<i class="icon-tags"></i>
|
||||
<ul class="tags unstyled">
|
||||
|
||||
|
||||
<li><a class='category' href='/blog/categories/release-notes/'>Release-Notes</a></li>
|
||||
|
||||
|
||||
</ul>
|
||||
</span>
|
||||
|
||||
<a class='comments'
|
||||
href="/blog/2015/01/13/nest-in-da-house/#disqus_thread"
|
||||
>Comments</a>
|
||||
|
||||
</div>
|
||||
|
||||
</header>
|
||||
|
||||
|
||||
<div class="entry-content clearfix">
|
||||
<p>For thet majority of its existence, Home Assistant primary focus was on presence detection, lights and switches. But not anymore as we’re expanding the supported devices. Today, we’re proud to introduce Nest Thermostat integration for Home Assistant contributed by <a href="https://github.com/sfiorini">Stefano Fiorini</a>!</p>
|
||||
|
||||
<p class="img">
|
||||
<img src="/images/screenshots/nest-thermostat-card.png" />
|
||||
</p>
|
||||
|
||||
<p>The new integration exists out of two parts: a generic thermostat component and a Nest platform implementation. The initial version implements provides a read-only card and services to control it. The plan is in the future to add temperature and away mode controls from the thermostat card and more info dialog. Internally, we are using the Python package <a href="https://github.com/jkoelker/python-nest">python-nest by jkoelker</a> to talk to the Nest.</p>
|
||||
|
||||
<p>If you own a Nest thermostat, add the following lines to your <code>home-assistant.conf</code>:</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre>[thermostat]
|
||||
platform=nest
|
||||
username=YOUR_USERNAME
|
||||
password=YOUR_PASSWORD
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</article>
|
||||
<hr>
|
||||
|
||||
<article class="listing">
|
||||
<header>
|
||||
|
||||
|
|
BIN
images/blog/2016-02-snapcast/diagram.png
Normal file
BIN
images/blog/2016-02-snapcast/diagram.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 24 KiB |
317
sitemap.xml
317
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/18/multi-room-audio-with-snapcast/</loc>
|
||||
<lastmod>2016-02-18T05:10:56+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/blog/2016/02/13/speedtest-bloomsky-splunk-and-garage-doors/</loc>
|
||||
<lastmod>2016-02-13T06:15:00+00:00</lastmod>
|
||||
|
@ -1148,624 +1152,627 @@
|
|||
<url>
|
||||
<loc>https://home-assistant.io/blog/2016/02/13/speedtest-bloomsky-splunk-and-garage-doors/</loc>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/blog/2016/02/18/multi-room-audio-with-snapcast/</loc>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/alarm_control_panel.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/alarm_control_panel.manual.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/alarm_control_panel.mqtt.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/arduino.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/automation.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/browser.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/camera.foscam.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/camera.generic.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/configurator.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/conversation.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/device_sun_light_trigger.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/device_tracker.actiontec.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/device_tracker.aruba.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/device_tracker.asuswrt.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/device_tracker.ddwrt.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/device_tracker.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/device_tracker.locative.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/device_tracker.luci.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/device_tracker.mqtt.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/device_tracker.netgear.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/device_tracker.nmap_scanner.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/device_tracker.owntracks.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/device_tracker.snmp.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/device_tracker.thomson.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/device_tracker.tomato.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/device_tracker.tplink.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/device_tracker.ubus.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/discovery.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/downloader.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/ecobee.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/group.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/history.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/ifttt.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/ifttt.manything.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/introduction.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/isy994.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/keyboard.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/light.blinksticklight.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/light.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/light.hue.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/light.hyperion.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/light.limitlessled.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/light.rfxtrx.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/light.tellstick.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/light.vera.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/light.wink.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/lock.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/lock.wink.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/logbook.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/media_player.cast.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/media_player.denon.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/media_player.firetv.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/media_player.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/media_player.itunes.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/media_player.kodi.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/media_player.mpd.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/media_player.plex.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/media_player.sonos.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/media_player.squeezebox.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/modbus.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/mqtt.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/notify.file.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/notify.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/notify.instapush.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/notify.nma.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/notify.pushbullet.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/notify.pushover.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/notify.slack.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/notify.smtp.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/notify.syslog.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/notify.telegram.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/notify.xmpp.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/rfxtrx.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/scene.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/script.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/sensor.arduino.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/sensor.arest.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/sensor.bitcoin.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/sensor.command_sensor.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/sensor.cpuspeed.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/sensor.dht.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/sensor.ecobee.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/sensor.efergy.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/sensor.forecast.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/sensor.glances.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/sensor.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/sensor.modbus.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/sensor.mqtt.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/sensor.mysensors.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/sensor.openweathermap.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/sensor.rest.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/sensor.rfxtrx.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/sensor.rpi_gpio.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/sensor.sabnzbd.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/sensor.speedtest.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/sensor.swiss_public_transport.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/sensor.systemmonitor.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/sensor.tellstick.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/sensor.temper.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/sensor.time_date.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/sensor.transmission.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/sensor.vera.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/sensor.wink.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/sensor.worldclock.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/shell_command.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/simple_alarm.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/sun.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/switch.arduino.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/switch.arest.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/switch.command_switch.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/switch.edimax.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/switch.hikvision.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/switch.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/switch.modbus.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/switch.mqtt.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/switch.rest.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/switch.rfxtrx.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/switch.rpi_gpio.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/switch.tellstick.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/switch.transmission.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/switch.vera.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/switch.wemo.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/switch.wink.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/tellstick.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/thermostat.ecobee.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/thermostat.heat_control.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/thermostat.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/thermostat.nest.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/thermostat.radiotherm.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/vera.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/verisure.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/wink.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/zone.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/components/zwave.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/demo/frontend.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/demo/index.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/developers/add_new_platform.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/developers/api.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/developers/architecture.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/developers/creating_components.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/developers/credits.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/developers/frontend.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/developers/python_api.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/developers/rest_api.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/developers/website.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/getting-started/android.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/getting-started/automation.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/getting-started/autostart.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/getting-started/configuration.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/getting-started/devices.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/getting-started/presence-detection.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/getting-started/troubleshooting-configuration.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/getting-started/troubleshooting.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/googlef4f3693c209fe788.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://home-assistant.io/static/mdi-demo.html</loc>
|
||||
<lastmod>2016-02-17T08:13:32+00:00</lastmod>
|
||||
<lastmod>2016-02-18T06:58:04+00:00</lastmod>
|
||||
</url>
|
||||
</urlset>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue