555 lines
26 KiB
HTML
555 lines
26 KiB
HTML
<!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>Plex - Home Assistant</title>
|
||
<meta name="author" content="Home Assistant">
|
||
<meta name="description" content="Instructions how to integrate Plex into Home Assistant.">
|
||
<meta name="viewport" content="width=device-width">
|
||
<link rel="canonical" href="https://home-assistant.io/components/media_player.plex/">
|
||
<meta property="fb:app_id" content="338291289691179">
|
||
<meta property="og:title" content="Plex">
|
||
<meta property="og:site_name" content="Home Assistant">
|
||
<meta property="og:url" content="https://home-assistant.io/components/media_player.plex/">
|
||
<meta property="og:type" content="article">
|
||
<meta property="og:description" content="Instructions how to integrate Plex into Home Assistant.">
|
||
<meta property="og:image" content="https://home-assistant.io/images/default-social.png">
|
||
<meta name="twitter:card" content="summary_large_image">
|
||
<meta name="twitter:site" content="@home_assistant">
|
||
<meta name="twitter:title" content="Plex">
|
||
<meta name="twitter:description" content="Instructions how to integrate Plex into Home Assistant.">
|
||
<meta name="twitter:image" content="https://home-assistant.io/images/default-social.png">
|
||
<link href="/stylesheets/screen.css" media="screen, projection, print" 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 class='site-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 href="/getting-started/">Getting started</a></li>
|
||
<li><a href="/components/">Components</a></li>
|
||
<li><a href="/docs/">Docs</a></li>
|
||
<li><a href="/cookbook/">Examples</a></li>
|
||
<li><a href="/developers/">Developers</a></li>
|
||
<li><a href="/blog/">Blog</a></li>
|
||
<li><a href="/help/">Need help?</a></li>
|
||
<li><a href='#' class='show-search'><i class="icon-search"></i></a></li>
|
||
</ul>
|
||
</nav>
|
||
<div class='search-container' style='display: none'>
|
||
<div class='search'>
|
||
<i class="icon-search"></i>
|
||
<input id='search' placeholder='Search the docs…'>
|
||
<a href='#' class='close'><i class="icon-remove-sign"></i></a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</header>
|
||
<div class="grid-wrapper">
|
||
<div class="grid grid-center">
|
||
<div class="grid__item two-thirds lap-one-whole palm-one-whole">
|
||
<article class="page">
|
||
<header>
|
||
<h1 class="title indent">
|
||
Plex
|
||
</h1>
|
||
</header>
|
||
<hr class="divider">
|
||
<p>The <code class="highlighter-rouge">plex</code> platform allows you to connect a <a href="https://plex.tv">Plex Media Server</a> to Home Assistant. It will allow you to control media playback and see the current playing item.</p>
|
||
<h2><a class="title-link" name="setup" href="#setup"></a> Setup</h2>
|
||
<p>The preferred way to setup the Plex platform is by enabling the <a href="/components/discovery/">discovery component</a> which requires GDM enabled on your Plex server.</p>
|
||
<p>If your Plex server has local authentication enabled or multiple users defined, Home Assistant requires an authentication token to be entered in the frontend. Press “CONFIGURE” to do it.</p>
|
||
<p class="img">
|
||
<img src="/images/screenshots/plex-configure.png" />
|
||
</p>
|
||
<p>If you don’t know your token, see <a href="https://support.plex.tv/hc/en-us/articles/204059436">Finding your account token / X-Plex-Token</a>.</p>
|
||
<p>If your server enforces SSL connections, write “<code class="highlighter-rouge">on</code>” or “<code class="highlighter-rouge">true</code>” in the <em>“Use SSL”</em> field. If it does not have a valid SSL certificate available but you still want to use it, write “<code class="highlighter-rouge">on</code>” or “<code class="highlighter-rouge">true</code>” in the <em>“Do not verify SSL”</em> field as well.</p>
|
||
<p class="img">
|
||
<img src="/images/screenshots/plex-token.png" />
|
||
</p>
|
||
<p>You can also enable the plex platform directly by adding the following lines to your <code class="highlighter-rouge">configuration.yaml</code>:</p>
|
||
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
|
||
<span class="s">media_player</span><span class="pi">:</span>
|
||
<span class="pi">-</span> <span class="s">platform</span><span class="pi">:</span> <span class="s">plex</span>
|
||
</code></pre>
|
||
</div>
|
||
<p>In case <a href="/components/discovery/">discovery</a> does not work (GDM disabled or non-local plex server), you can create <code class="highlighter-rouge">~/.homeassistant/plex.conf</code> manually.</p>
|
||
<div class="language-json highlighter-rouge"><pre class="highlight"><code><span class="p">{</span><span class="nt">"IP_ADDRESS:PORT"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="nt">"token"</span><span class="p">:</span><span class="w"> </span><span class="s2">"TOKEN"</span><span class="p">,</span><span class="w"> </span><span class="nt">"ssl"</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span><span class="w"> </span><span class="nt">"verify"</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="p">}}</span><span class="w">
|
||
</span></code></pre>
|
||
</div>
|
||
<ul>
|
||
<li><strong>IP_ADDRESS</strong> (<em>Required</em>): IP address of the Plex Media Server.</li>
|
||
<li><strong>PORT</strong> (<em>Required</em>): Port where Plex is listening. Default is 32400.</li>
|
||
<li><strong>TOKEN</strong> (<em>Optional</em>): Only if authentication is required. Set to <code class="highlighter-rouge">null</code> (without quotes) otherwise.</li>
|
||
<li><strong>ssl</strong> (<em>Optional</em>): Whether to use SSL/TLS or not. Defaults to <code class="highlighter-rouge">False</code> if not present.</li>
|
||
<li><strong>verify</strong> (<em>Optional</em>): Perform a verification of the certificate. To allow invalid or self-signed SSL certificates set it to <code class="highlighter-rouge">False</code>. Defaults to <code class="highlighter-rouge">True</code> if not present.</li>
|
||
</ul>
|
||
<h2><a class="title-link" name="customization" href="#customization"></a> Customization</h2>
|
||
<p>You can customize the Plex component by adding any of the variables below to your configuration:</p>
|
||
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
|
||
<span class="s">media_player</span><span class="pi">:</span>
|
||
<span class="pi">-</span> <span class="s">platform</span><span class="pi">:</span> <span class="s">plex</span>
|
||
<span class="s">entity_namespace</span><span class="pi">:</span> <span class="s1">'</span><span class="s">plex'</span>
|
||
<span class="s">include_non_clients</span><span class="pi">:</span> <span class="s">true</span>
|
||
<span class="s">scan_interval</span><span class="pi">:</span> <span class="s">5</span>
|
||
<span class="s">show_all_controls</span><span class="pi">:</span> <span class="s">false</span>
|
||
<span class="s">use_custom_entity_ids</span><span class="pi">:</span> <span class="s">true</span>
|
||
<span class="s">use_episode_art</span><span class="pi">:</span> <span class="s">true</span>
|
||
</code></pre>
|
||
</div>
|
||
<ul>
|
||
<li><strong>entity_namespace</strong> (<em>Optional</em>): Prefix for entity ID’s. Defaults to <code class="highlighter-rouge">null</code>. Useful when using overlapping components (ex. Apple TV and Plex components when you have Apple TV’s you use as Plex clients). Go from <em>media_player.playroom2</em> to <em>media_player.plex_playroom</em></li>
|
||
<li><strong>include_non_clients</strong> (<em>Optional</em>): Display non-recontrollable clients (ex. remote clients, PlexConnect Apple TV’s). Defaults to <code class="highlighter-rouge">false</code>.</li>
|
||
<li><strong>scan_interval</strong> (<em>Optional</em>): Amount in seconds in between polling for device’s current activity. Defaults to <code class="highlighter-rouge">10</code> seconds.</li>
|
||
<li><strong>show_all_controls</strong> (<em>Optional</em>): Forces all controls to display. Defaults to <code class="highlighter-rouge">false</code>. Ignores dynamic controls (ex. show volume controls for client A but not for client B) based on detected client capabilities. This option allows you to override this detection if you suspect it to be incorrect.</li>
|
||
<li><strong>use_custom_entity_ids</strong> (<em>Optional</em>): Name Entity ID’s by client ID’s instead of friendly names. Defaults to <code class="highlighter-rouge">false</code>. HA assigns entity ID’s on a first come first serve basis. When you have identically named devices connecting (ex. media_player.plex_web_safari, media_player.plex_web_safari2), you can’t reliably distinguish and or predict which device is which. This option avoids this issue by using unique client ID’s (ex. media_player.dy4hdna2drhn).</li>
|
||
<li><strong>use_episode_art</strong> (<em>Optional</em>): Display TV episode art instead of TV show art. Defaults to <code class="highlighter-rouge">false</code>.</li>
|
||
</ul>
|
||
<h3><a class="title-link" name="service-play_media" href="#service-play_media"></a> Service <code class="highlighter-rouge">play_media</code></h3>
|
||
<p>Plays a song, playlist, TV episode, or video on a connected client.</p>
|
||
<h4>Music</h4>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Service data attribute</th>
|
||
<th>Optional</th>
|
||
<th>Description</th>
|
||
<th>Example</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><code class="highlighter-rouge">entity_id</code></td>
|
||
<td>no</td>
|
||
<td><code class="highlighter-rouge">entity_id</code> of the client</td>
|
||
<td>media_player.theater_plex</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code class="highlighter-rouge">media_content_id</code></td>
|
||
<td>no</td>
|
||
<td>Quote escaped JSON with <code class="highlighter-rouge">library_name</code>, <code class="highlighter-rouge">artist_name</code>, <code class="highlighter-rouge">album_name</code>, <code class="highlighter-rouge">track_name</code>, <code class="highlighter-rouge">shuffle</code> (0 or 1).</td>
|
||
<td>{ \“library_name\” : \“My Music\”, \“artist_name\” : \“Adele\”, \“album_name\” : \“25\”, \“track_name\” : \“hello\”, \“shuffle\”: \“0\” }</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code class="highlighter-rouge">media_content_type</code></td>
|
||
<td>no</td>
|
||
<td>Type of media to play, in this case <code class="highlighter-rouge">MUSIC</code></td>
|
||
<td>MUSIC</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h4>Playlist</h4>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Service data attribute</th>
|
||
<th>Optional</th>
|
||
<th>Description</th>
|
||
<th>Example</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><code class="highlighter-rouge">entity_id</code></td>
|
||
<td>no</td>
|
||
<td><code class="highlighter-rouge">entity_id</code> of the client</td>
|
||
<td>media_player.theater_plex</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code class="highlighter-rouge">media_content_id</code></td>
|
||
<td>no</td>
|
||
<td>Quote escaped JSON with <code class="highlighter-rouge">playlist_name</code>, <code class="highlighter-rouge">shuffle</code> (0 or 1).</td>
|
||
<td>{ \“playlist_name\” : \“The Best of Disco\” \“shuffle\”: \“0\” }</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code class="highlighter-rouge">media_content_type</code></td>
|
||
<td>no</td>
|
||
<td>Type of media to play, in this case <code class="highlighter-rouge">PLAYLIST</code></td>
|
||
<td>PLAYLIST</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h4>TV Episode</h4>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Service data attribute</th>
|
||
<th>Optional</th>
|
||
<th>Description</th>
|
||
<th>Example</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><code class="highlighter-rouge">entity_id</code></td>
|
||
<td>no</td>
|
||
<td><code class="highlighter-rouge">entity_id</code> of the client</td>
|
||
<td>media_player.theater_plex</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code class="highlighter-rouge">media_content_id</code></td>
|
||
<td>no</td>
|
||
<td>Quote escaped JSON with <code class="highlighter-rouge">library_name</code>, <code class="highlighter-rouge">show_name</code>, <code class="highlighter-rouge">season_number</code>, <code class="highlighter-rouge">episode_number</code>, <code class="highlighter-rouge">shuffle</code> (0 or 1).</td>
|
||
<td>{ \“library_name\” : \“Adult TV\”, \“show_name\” : \“Rick and Morty\”, \“season_number\” : 2, \“episode_number\” : 5, \“shuffle\”: \“0\” }</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code class="highlighter-rouge">media_content_type</code></td>
|
||
<td>no</td>
|
||
<td>Type of media to play, in this case <code class="highlighter-rouge">EPISODE</code></td>
|
||
<td>EPISODE</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h4>Video</h4>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Service data attribute</th>
|
||
<th>Optional</th>
|
||
<th>Description</th>
|
||
<th>Example</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><code class="highlighter-rouge">entity_id</code></td>
|
||
<td>no</td>
|
||
<td><code class="highlighter-rouge">entity_id</code> of the client</td>
|
||
<td>media_player.theater_plex</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code class="highlighter-rouge">media_content_id</code></td>
|
||
<td>no</td>
|
||
<td>Quote escaped JSON with <code class="highlighter-rouge">library_name</code>, <code class="highlighter-rouge">video_name</code>, <code class="highlighter-rouge">shuffle</code> (0 or 1).</td>
|
||
<td>{ \“library_name\” : \“Adult Movies\”, \“video_name\” : \“Blade\”, \“shuffle\”: \“0\” }</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code class="highlighter-rouge">media_content_type</code></td>
|
||
<td>no</td>
|
||
<td>Type of media to play, in this case <code class="highlighter-rouge">VIDEO</code></td>
|
||
<td>VIDEO</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h3>Compatibility</h3>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Client</th>
|
||
<th>Limitations</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>Any (when all controls disabled)</td>
|
||
<td>A stop button will appear but is not functional.</td>
|
||
</tr>
|
||
<tr>
|
||
<td>Any (when casting)</td>
|
||
<td>Controlling playback will work but with error logging.</td>
|
||
</tr>
|
||
<tr>
|
||
<td>Any (remote client)</td>
|
||
<td>Controls disabled.</td>
|
||
</tr>
|
||
<tr>
|
||
<td>Apple TV (PlexConnect)</td>
|
||
<td>Controls disabled. Music does not work.</td>
|
||
</tr>
|
||
<tr>
|
||
<td>iOS</td>
|
||
<td>None</td>
|
||
</tr>
|
||
<tr>
|
||
<td>NVidia Shield</td>
|
||
<td>Mute disabled. Volume set below 2 will cause error logging. Controlling playback when the Shield is both a client and a server will work but with error logging</td>
|
||
</tr>
|
||
<tr>
|
||
<td>Plex Web</td>
|
||
<td>None</td>
|
||
</tr>
|
||
<tr>
|
||
<td>Tivo Plex App</td>
|
||
<td>Only play, pause, stop/off controls enabled</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h3><a class="title-link" name="notes" href="#notes"></a> Notes</h3>
|
||
<ul>
|
||
<li>At this moment, the Plex platform only supports one Plex Media Server.</li>
|
||
<li>
|
||
<p>It is possible to get errors that look like the following.</p>
|
||
<div class="highlighter-rouge"><pre class="highlight"><code>ERROR:plexapi:http://192.168.1.10:32400: ('Connection aborted.', BadStatusLine("''",))
|
||
INFO:homeassistant.components.media_player.plex:No server found at: http://192.168.1.10:32400
|
||
</code></pre>
|
||
</div>
|
||
<p>If this occurs, check the setting <code class="highlighter-rouge">Server</code>><code class="highlighter-rouge">Network</code>><code class="highlighter-rouge">Secure connections</code> in your Plex Media Server: if it is set to <code class="highlighter-rouge">Preferred</code> or <code class="highlighter-rouge">Required</code>, you may need to manually set the <code class="highlighter-rouge">ssl</code> and <code class="highlighter-rouge">verify</code> booleans in the <code class="highlighter-rouge">plex.conf</code> file to, respectively, <code class="highlighter-rouge">true</code> and <code class="highlighter-rouge">false</code>. See the <strong>“Setup”</strong> section above for details.</p>
|
||
</li>
|
||
</ul>
|
||
</article>
|
||
</div>
|
||
<aside id="sidebar" class="grid__item one-third lap-one-whole palm-one-whole">
|
||
<div class="grid">
|
||
<section class="aside-module grid__item one-whole lap-one-half">
|
||
<div class='edit-github'><a href='https://github.com/home-assistant/home-assistant.github.io/tree/current/source/_components/media_player.plex.markdown'>Edit this page on GitHub</a></div>
|
||
<div class='brand-logo-container section'>
|
||
<img src='/images/supported_brands/plex.png' />
|
||
</div>
|
||
<div class='section'>
|
||
IoT class<sup><a href='/blog/2016/02/12/classifying-the-internet-of-things/#classifiers'><i class="icon-info-sign"></i></a></sup>: Local Polling
|
||
</div>
|
||
<div class='section'>
|
||
Introduced in release: 0.7.4
|
||
</div>
|
||
<div class='section'>
|
||
Source:
|
||
<a href='https://github.com/home-assistant/home-assistant/blob/master/homeassistant/components/media_player/plex.py'>media_player/plex.py</a>
|
||
</div>
|
||
<div class='section'>
|
||
This is a platform for
|
||
<a href='/components/media_player/'>the Media Player component</a>.
|
||
</div>
|
||
<div class='section'>
|
||
<h1 class='title delta'>Related components</h1>
|
||
<ul class='divided'>
|
||
<li><a href='/components/sensor.plex/'>
|
||
Plex Activity Monitor
|
||
</a></li>
|
||
</ul>
|
||
</div>
|
||
<div class='section'>
|
||
<h1 class="title delta">Category Media Player</h1>
|
||
<ul class='divided'>
|
||
<li>
|
||
<a href='/components/media_player.anthemav/'>Anthem A/V Receivers</a>
|
||
</li>
|
||
<li>
|
||
<a href='/components/media_player.apple_tv/'>Apple TV Media Player</a>
|
||
</li>
|
||
<li>
|
||
<a href='/components/media_player.bluesound/'>Bluesound</a>
|
||
</li>
|
||
<li>
|
||
<a href='/components/media_player.clementine/'>Clementine Music Player</a>
|
||
</li>
|
||
<li>
|
||
<a href='/components/media_player.denonavr/'>Denon AVR Network Receivers</a>
|
||
</li>
|
||
<li>
|
||
<a href='/components/media_player.denon/'>Denon Network Receivers</a>
|
||
</li>
|
||
<li>
|
||
<a href='/components/media_player.directv/'>DirecTV</a>
|
||
</li>
|
||
<li>
|
||
<a href='/components/media_player.dunehd/'>DuneHD media players</a>
|
||
</li>
|
||
<li>
|
||
<a href='/components/media_player.emby/'>Emby</a>
|
||
</li>
|
||
<li>
|
||
<a href='/components/media_player.firetv/'>FireTV</a>
|
||
</li>
|
||
<li>
|
||
<a href='/components/media_player.frontier_silicon/'>Frontier Silicon Internet Radios</a>
|
||
</li>
|
||
<li>
|
||
<a href='/components/media_player.cast/'>Google Cast</a>
|
||
</li>
|
||
<li>
|
||
<a href='/components/media_player.gpmdp/'>Google Play Music Desktop Player</a>
|
||
</li>
|
||
<li>
|
||
<a href='/components/media_player.gstreamer/'>Gstreamer</a>
|
||
</li>
|
||
<li>
|
||
<a href='/components/media_player.kodi/'>Kodi</a>
|
||
</li>
|
||
<li>
|
||
<a href='/components/media_player.lg_netcast/'>LG Netcast TV</a>
|
||
</li>
|
||
<li>
|
||
<a href='/components/media_player.webostv/'>LG webOS Smart TV</a>
|
||
</li>
|
||
<li>
|
||
<a href='/components/media_player.openhome/'>Linn / Openhome</a>
|
||
</li>
|
||
<li>
|
||
<a href='/components/media_player.squeezebox/'>Logitech Squeezebox</a>
|
||
</li>
|
||
<li>
|
||
<a href='/components/media_player.ue_smart_radio/'>Logitech UE Smart Radio</a>
|
||
</li>
|
||
<li>
|
||
<a href='/components/media_player.mpchc/'>MPC-HC</a>
|
||
</li>
|
||
<li>
|
||
<a href='/components/media_extractor/'>Media Extractor</a>
|
||
</li>
|
||
<li>
|
||
<a href='/components/media_player.monoprice/'>Monoprice 6-Zone Amplifier</a>
|
||
</li>
|
||
<li>
|
||
<a href='/components/media_player.mpd/'>Music Player Daemon (MPD)</a>
|
||
</li>
|
||
<li>
|
||
<a href='/components/media_player.nad/'>NAD</a>
|
||
</li>
|
||
<li>
|
||
<a href='/components/media_player.nadtcp/'>NAD tcp</a>
|
||
</li>
|
||
<li>
|
||
<a href='/components/media_player.onkyo/'>Onkyo</a>
|
||
</li>
|
||
<li>
|
||
<a href='/components/media_player.liveboxplaytv/'>Orange Livebox Play TV</a>
|
||
</li>
|
||
<li>
|
||
<a href='/components/media_player.panasonic_viera/'>Panasonic Viera TV</a>
|
||
</li>
|
||
<li>
|
||
<a href='/components/media_player.pandora/'>Pandora</a>
|
||
</li>
|
||
<li>
|
||
<a href='/components/media_player.philips_js/'>Philips TV</a>
|
||
</li>
|
||
<li>
|
||
<a href='/components/media_player.pioneer/'>Pioneer Network Receivers</a>
|
||
</li>
|
||
<li>
|
||
Plex
|
||
</li>
|
||
<li>
|
||
<a href='/components/sensor.plex/'>Plex Activity Monitor</a>
|
||
</li>
|
||
<li>
|
||
<a href='/components/media_player.roku/'>Roku</a>
|
||
</li>
|
||
<li>
|
||
<a href='/components/media_player.russound_rio/'>Russound RIO</a>
|
||
</li>
|
||
<li>
|
||
<a href='/components/media_player.russound_rnet/'>Russound RNET</a>
|
||
</li>
|
||
<li>
|
||
<a href='/components/media_player.samsungtv/'>Samsung Smart TV</a>
|
||
</li>
|
||
<li>
|
||
<a href='/components/media_player.aquostv/'>Sharp Aquos TV</a>
|
||
</li>
|
||
<li>
|
||
<a href='/components/media_player.snapcast/'>Snapcast</a>
|
||
</li>
|
||
<li>
|
||
<a href='/components/media_player.sonos/'>Sonos</a>
|
||
</li>
|
||
<li>
|
||
<a href='/components/media_player.braviatv/'>Sony Bravia TV</a>
|
||
</li>
|
||
<li>
|
||
<a href='/components/media_player.soundtouch/'>Soundtouch</a>
|
||
</li>
|
||
<li>
|
||
<a href='/components/media_player.spotify/'>Spotify</a>
|
||
</li>
|
||
<li>
|
||
<a href='/components/media_player.universal/'>Universal</a>
|
||
</li>
|
||
<li>
|
||
<a href='/components/media_player.vlc/'>VLC</a>
|
||
</li>
|
||
<li>
|
||
<a href='/components/media_player.vizio/'>Vizio SmartCast TV</a>
|
||
</li>
|
||
<li>
|
||
<a href='/components/media_player.volumio/'>Volumio Media Player</a>
|
||
</li>
|
||
<li>
|
||
<a href='/components/media_player.yamaha_musiccast/'>Yamaha MusicCast Receivers</a>
|
||
</li>
|
||
<li>
|
||
<a href='/components/media_player.yamaha/'>Yamaha Network Receivers</a>
|
||
</li>
|
||
<li>
|
||
<a href='/components/media_player.ziggo_mediabox_xl/'>Ziggo Mediabox XL</a>
|
||
</li>
|
||
<li>
|
||
<a href='/components/media_player.cmus/'>cmus</a>
|
||
</li>
|
||
<li>
|
||
<a href='/components/media_player.itunes/'>iTunes</a>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</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://facebook.com/homeassistantio'><i class="icon-facebook"></i></a>
|
||
<a rel="me" href='https://plus.google.com/110560654828510104551'><i class="icon-google-plus"></i></a>
|
||
<a rel="me" href='https://github.com/home-assistant/home-assistant'><i class="icon-github"></i></a>
|
||
<div class="credit">
|
||
Contact us at <a href='mailto:hello@home-assistant.io'>hello@home-assistant.io</a> (no support!).<br>
|
||
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>
|
||
<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png" /></a><br /><span xmlns:dct="http://purl.org/dc/terms/" property="dct:title">home-assistant.io</span> is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/">Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License</a>.
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</footer>
|
||
<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>
|
||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.css" />
|
||
<script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script>
|
||
<script type="text/javascript">
|
||
docsearch({
|
||
apiKey: 'ae96d94b201c5444c8a443093edf3efb',
|
||
indexName: 'home-assistant',
|
||
inputSelector: '#search',
|
||
debug: false // Set debug to true if you want to inspect the dropdown
|
||
});
|
||
document.querySelector('.search .close').addEventListener('click', function(ev) {
|
||
ev.preventDefault();
|
||
document.querySelector('.search-container').style.display = 'none';
|
||
});
|
||
document.querySelector('.show-search').addEventListener('click', function(ev) {
|
||
ev.preventDefault();
|
||
document.querySelector('.search-container').style.display = 'block';
|
||
document.getElementById('toggle').checked = false;
|
||
document.querySelector('.search-container input').focus();
|
||
});
|
||
</script>
|
||
</body>
|
||
</html>
|