Site updated at 2016-08-22 08:21:42 UTC

This commit is contained in:
Travis CI 2016-08-22 08:21:43 +00:00
parent f9d65cbe57
commit 4acb07bf8e
559 changed files with 18878 additions and 21688 deletions

View file

@ -89,20 +89,18 @@
<hr class="divider">
<p>The <code>alarmdotcom</code> platform is consuming the information provided by a <a href="https://www.alarm.com/">Alarm.com</a>.</p>
<p>The <code class="highlighter-rouge">alarmdotcom</code> platform is consuming the information provided by a <a href="https://www.alarm.com/">Alarm.com</a>.</p>
<p>To enable this, add the following lines to your <code>configuration.yaml</code>:</p>
<p>To enable this, add the following lines to your <code class="highlighter-rouge">configuration.yaml</code>:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">alarm_control_panel</span>:
<span class="key">platform</span>: <span class="string"><span class="content">alarmdotcom</span></span>
<span class="key">name</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">HA Alarm</span><span class="delimiter">&quot;</span></span>
<span class="key">code</span>: <span class="string"><span class="content">PASSCODE</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>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">alarm_control_panel</span><span class="pi">:</span>
<span class="s">platform</span><span class="pi">:</span> <span class="s">alarmdotcom</span>
<span class="s">name</span><span class="pi">:</span> <span class="s2">"</span><span class="s">HA</span><span class="nv"> </span><span class="s">Alarm"</span>
<span class="s">code</span><span class="pi">:</span> <span class="s">PASSCODE</span>
<span class="s">username</span><span class="pi">:</span> <span class="s">YOUR_USERNAME</span>
<span class="s">password</span><span class="pi">:</span> <span class="s">YOUR_PASSWORD</span>
</code></pre>
</div>
<p>Configuration variables:</p>

View file

@ -89,7 +89,7 @@
<hr class="divider">
<p>The <code>envisalink</code> alarm control panel platform allows you to control your <a href="http://www.eyezon.com">Envisalink</a> alarms.</p>
<p>The <code class="highlighter-rouge">envisalink</code> alarm control panel platform allows you to control your <a href="http://www.eyezon.com">Envisalink</a> alarms.</p>
<p>The requirement is that you have setup your <a href="/components/envisalink/">Envisalink hub</a>.</p>

View file

@ -91,16 +91,14 @@
<p>This platform enables you to set manual alarms in Home Assistant.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">alarm_control_panel</span>:
<span class="key">platform</span>: <span class="string"><span class="content">manual</span></span>
<span class="key">name</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">HA Alarm</span><span class="delimiter">&quot;</span></span>
<span class="key">code</span>: <span class="string"><span class="content">PASSCODE</span></span>
<span class="key">pending_time</span>: <span class="string"><span class="content">60</span></span>
<span class="key">trigger_time</span>: <span class="string"><span class="content">120</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">alarm_control_panel</span><span class="pi">:</span>
<span class="s">platform</span><span class="pi">:</span> <span class="s">manual</span>
<span class="s">name</span><span class="pi">:</span> <span class="s2">"</span><span class="s">HA</span><span class="nv"> </span><span class="s">Alarm"</span>
<span class="s">code</span><span class="pi">:</span> <span class="s">PASSCODE</span>
<span class="s">pending_time</span><span class="pi">:</span> <span class="s">60</span>
<span class="s">trigger_time</span><span class="pi">:</span> <span class="s">120</span>
</code></pre>
</div>
<p>Configuration variables:</p>
@ -120,31 +118,29 @@
<p>Using sensors to trigger the alarm.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="key">automation</span>:
- <span class="string"><span class="content">alias: 'Trigger alarm while armed away'</span></span>
<span class="key">trigger</span>:
- <span class="string"><span class="content">platform: state</span></span>
<span class="key">entity_id</span>: <span class="string"><span class="content">sensor.pir1</span></span>
<span class="key">state</span>: <span class="string"><span class="content">'active'</span></span>
- <span class="string"><span class="content">platform: state</span></span>
<span class="key">entity_id</span>: <span class="string"><span class="content">sensor.pir2</span></span>
<span class="key">state</span>: <span class="string"><span class="content">'active'</span></span>
- <span class="string"><span class="content">platform: state</span></span>
<span class="key">entity_id</span>: <span class="string"><span class="content">sensor.door</span></span>
<span class="key">state</span>: <span class="string"><span class="content">'open'</span></span>
- <span class="string"><span class="content">platform: state</span></span>
<span class="key">entity_id</span>: <span class="string"><span class="content">sensor.window</span></span>
<span class="key">state</span>: <span class="string"><span class="content">'open'</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">alarm_control_panel.ha_alarm</span></span>
<span class="key">state</span>: <span class="string"><span class="content">armed_away</span></span>
<span class="key">action</span>:
<span class="key">service</span>: <span class="string"><span class="content">alarm_control_panel.alarm_trigger</span></span>
<span class="key">entity_id</span>: <span class="string"><span class="content">alarm_control_panel.ha_alarm</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="s">automation</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">alias</span><span class="pi">:</span> <span class="s1">'</span><span class="s">Trigger</span><span class="nv"> </span><span class="s">alarm</span><span class="nv"> </span><span class="s">while</span><span class="nv"> </span><span class="s">armed</span><span class="nv"> </span><span class="s">away'</span>
<span class="s">trigger</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">platform</span><span class="pi">:</span> <span class="s">state</span>
<span class="s">entity_id</span><span class="pi">:</span> <span class="s">sensor.pir1</span>
<span class="s">state</span><span class="pi">:</span> <span class="s1">'</span><span class="s">active'</span>
<span class="pi">-</span> <span class="s">platform</span><span class="pi">:</span> <span class="s">state</span>
<span class="s">entity_id</span><span class="pi">:</span> <span class="s">sensor.pir2</span>
<span class="s">state</span><span class="pi">:</span> <span class="s1">'</span><span class="s">active'</span>
<span class="pi">-</span> <span class="s">platform</span><span class="pi">:</span> <span class="s">state</span>
<span class="s">entity_id</span><span class="pi">:</span> <span class="s">sensor.door</span>
<span class="s">state</span><span class="pi">:</span> <span class="s1">'</span><span class="s">open'</span>
<span class="pi">-</span> <span class="s">platform</span><span class="pi">:</span> <span class="s">state</span>
<span class="s">entity_id</span><span class="pi">:</span> <span class="s">sensor.window</span>
<span class="s">state</span><span class="pi">:</span> <span class="s1">'</span><span class="s">open'</span>
<span class="s">condition</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">platform</span><span class="pi">:</span> <span class="s">state</span>
<span class="s">entity_id</span><span class="pi">:</span> <span class="s">alarm_control_panel.ha_alarm</span>
<span class="s">state</span><span class="pi">:</span> <span class="s">armed_away</span>
<span class="s">action</span><span class="pi">:</span>
<span class="s">service</span><span class="pi">:</span> <span class="s">alarm_control_panel.alarm_trigger</span>
<span class="s">entity_id</span><span class="pi">:</span> <span class="s">alarm_control_panel.ha_alarm</span>
</code></pre>
</div>

View file

@ -89,7 +89,7 @@
<hr class="divider">
<p>The <code>mqtt</code> alarm panel platform enables the possibility to control MQTT capable alarm panels. The Alarm icon will change state after receiving a new state from <code>state_topic</code>. If these messages are published with <em>RETAIN</em> flag, the MQTT alarm panel will receive an instant state update after subscription and will start with the correct state. Otherwise, the initial state will be <code>unknown</code>.</p>
<p>The <code class="highlighter-rouge">mqtt</code> alarm panel platform enables the possibility to control MQTT capable alarm panels. The Alarm icon will change state after receiving a new state from <code class="highlighter-rouge">state_topic</code>. If these messages are published with <em>RETAIN</em> flag, the MQTT alarm panel will receive an instant state update after subscription and will start with the correct state. Otherwise, the initial state will be <code class="highlighter-rouge">unknown</code>.</p>
<p>The component will accept the following states from your Alarm Panel (in lower case):</p>
@ -101,24 +101,22 @@
<li>triggered</li>
</ul>
<p>The component is able to control your Alarm Panel by publishing to the <code>command_topic</code> when a user interacts with the Home Assistant frontend.</p>
<p>The component is able to control your Alarm Panel by publishing to the <code class="highlighter-rouge">command_topic</code> when a user interacts with the Home Assistant frontend.</p>
<p>To enable this platform, add the following lines to your <code>configuration.yaml</code>:</p>
<p>To enable this platform, add the following lines to your <code class="highlighter-rouge">configuration.yaml</code>:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">alarm_control_panel</span>:
<span class="key">platform</span>: <span class="string"><span class="content">mqtt</span></span>
<span class="key">state_topic</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">home/alarm</span><span class="delimiter">&quot;</span></span>
<span class="key">command_topic</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">home/alarm/set</span><span class="delimiter">&quot;</span></span>
<span class="key">name</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">MQTT Alarm</span><span class="delimiter">&quot;</span></span>
<span class="key">qos</span>: <span class="string"><span class="content">0</span></span>
<span class="key">payload_disarm</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">DISARM</span><span class="delimiter">&quot;</span></span>
<span class="key">payload_arm_home</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">ARM_HOME</span><span class="delimiter">&quot;</span></span>
<span class="key">payload_arm_away</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">ARM_AWAY</span><span class="delimiter">&quot;</span></span>
<span class="key">code</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">mySecretCode</span><span class="delimiter">&quot;</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">alarm_control_panel</span><span class="pi">:</span>
<span class="s">platform</span><span class="pi">:</span> <span class="s">mqtt</span>
<span class="s">state_topic</span><span class="pi">:</span> <span class="s2">"</span><span class="s">home/alarm"</span>
<span class="s">command_topic</span><span class="pi">:</span> <span class="s2">"</span><span class="s">home/alarm/set"</span>
<span class="s">name</span><span class="pi">:</span> <span class="s2">"</span><span class="s">MQTT</span><span class="nv"> </span><span class="s">Alarm"</span>
<span class="s">qos</span><span class="pi">:</span> <span class="s">0</span>
<span class="s">payload_disarm</span><span class="pi">:</span> <span class="s2">"</span><span class="s">DISARM"</span>
<span class="s">payload_arm_home</span><span class="pi">:</span> <span class="s2">"</span><span class="s">ARM_HOME"</span>
<span class="s">payload_arm_away</span><span class="pi">:</span> <span class="s2">"</span><span class="s">ARM_AWAY"</span>
<span class="s">code</span><span class="pi">:</span> <span class="s2">"</span><span class="s">mySecretCode"</span>
</code></pre>
</div>
<p>Configuration variables:</p>

View file

@ -89,23 +89,21 @@
<hr class="divider">
<p>The <code>nx584</code> platform provides integration with GE, Caddx, Interlogix (and other brands) alarm panels that support the NX584 interface module (or have it built in). Supported panels include NX4/6/8/8E. Actual integration is done through <a href="http://github.com/kk7ds/pynx584">pynx584</a> which is required for this to work.</p>
<p>The <code class="highlighter-rouge">nx584</code> platform provides integration with GE, Caddx, Interlogix (and other brands) alarm panels that support the NX584 interface module (or have it built in). Supported panels include NX4/6/8/8E. Actual integration is done through <a href="http://github.com/kk7ds/pynx584">pynx584</a> which is required for this to work.</p>
<p>To enable this, add the following lines to your <code>configuration.yaml</code>:</p>
<p>To enable this, add the following lines to your <code class="highlighter-rouge">configuration.yaml</code>:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">alarm_control_panel</span>:
<span class="key">platform</span>: <span class="string"><span class="content">nx584</span></span>
<span class="key">host</span>: <span class="string"><span class="content">ADDRESS</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">alarm_control_panel</span><span class="pi">:</span>
<span class="s">platform</span><span class="pi">:</span> <span class="s">nx584</span>
<span class="s">host</span><span class="pi">:</span> <span class="s">ADDRESS</span>
</code></pre>
</div>
<p>Configuration variables:</p>
<ul>
<li><strong>host</strong> (<em>Optional</em>): This is the host connection string (host:port) for the nx584 server process. If unset, it is assumed to be <code>localhost:5007</code>, which will work if the server process is running on the same system as home-assistant.</li>
<li><strong>host</strong> (<em>Optional</em>): This is the host connection string (host:port) for the nx584 server process. If unset, it is assumed to be <code class="highlighter-rouge">localhost:5007</code>, which will work if the server process is running on the same system as home-assistant.</li>
</ul>

View file

@ -89,20 +89,18 @@
<hr class="divider">
<p>The <code>simplisafe</code> platform enables the ability to control a SimpliSafe control panel. <a href="http://simplisafe.com/">simplisafe.com</a>.</p>
<p>The <code class="highlighter-rouge">simplisafe</code> platform enables the ability to control a SimpliSafe control panel. <a href="http://simplisafe.com/">simplisafe.com</a>.</p>
<p>To enable this, add the following lines to your <code>configuration.yaml</code>:</p>
<p>To enable this, add the following lines to your <code class="highlighter-rouge">configuration.yaml</code>:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">alarm_control_panel</span>:
<span class="key">platform</span>: <span class="string"><span class="content">simplisafe</span></span>
<span class="key">name</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">HA Alarm</span><span class="delimiter">&quot;</span></span>
<span class="key">code</span>: <span class="string"><span class="content">PASSCODE</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>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">alarm_control_panel</span><span class="pi">:</span>
<span class="s">platform</span><span class="pi">:</span> <span class="s">simplisafe</span>
<span class="s">name</span><span class="pi">:</span> <span class="s2">"</span><span class="s">HA</span><span class="nv"> </span><span class="s">Alarm"</span>
<span class="s">code</span><span class="pi">:</span> <span class="s">PASSCODE</span>
<span class="s">username</span><span class="pi">:</span> <span class="s">YOUR_USERNAME</span>
<span class="s">password</span><span class="pi">:</span> <span class="s">YOUR_PASSWORD</span>
</code></pre>
</div>
<p>Configuration variables:</p>

View file

@ -93,23 +93,21 @@
<p>The requirement is that you have setup your <a href="/components/verisure/">Verisure hub</a>.</p>
<p>The <code>changed_by</code> attribute enables one to be able to take different actions depending on who armed/disarmed the alarm in <a href="/getting-started/automation/">automation</a>.</p>
<p>The <code class="highlighter-rouge">changed_by</code> attribute enables one to be able to take different actions depending on who armed/disarmed the alarm in <a href="/getting-started/automation/">automation</a>.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="key">automation</span>:
- <span class="string"><span class="content">alias: Alarm status changed</span></span>
<span class="key">trigger</span>:
- <span class="string"><span class="content">platform: state</span></span>
<span class="key">entity_id</span>: <span class="string"><span class="content">alarm_control_panel.alarm_1</span></span>
<span class="key">action</span>:
- <span class="string"><span class="content">service: notify.notify</span></span>
<span class="key">data_template</span>:
<span class="key">message</span>: <span class="string"><span class="delimiter">&gt;</span><span class="content">
Alarm changed from {{ trigger.from_state.state }}
to {{ trigger.to_state.state }}
by {{ trigger.to_state.attributes.changed_by }}</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="s">automation</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">alias</span><span class="pi">:</span> <span class="s">Alarm status changed</span>
<span class="s">trigger</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">platform</span><span class="pi">:</span> <span class="s">state</span>
<span class="s">entity_id</span><span class="pi">:</span> <span class="s">alarm_control_panel.alarm_1</span>
<span class="s">action</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">service</span><span class="pi">:</span> <span class="s">notify.notify</span>
<span class="s">data_template</span><span class="pi">:</span>
<span class="s">message</span><span class="pi">:</span> <span class="pi">&gt;</span>
<span class="no">Alarm changed from {{ trigger.from_state.state }}</span>
<span class="no">to {{ trigger.to_state.state }}</span>
<span class="no">by {{ trigger.to_state.attributes.changed_by }}</span>
</code></pre>
</div>

View file

@ -95,7 +95,7 @@
<p>Amazon has released <a href="https://echosim.io/">Echosim</a>, a website that simulates the Alexa service in your browser. That way it is easy to test your skills without having access to a physical Amazon Echo.</p>
<h3><a class="title-link" name="i-just-want-to-turn-devices-on-and-off-using-echo" href="#i-just-want-to-turn-devices-on-and-off-using-echo"></a> I just want to turn devices on and off using Echo</h3>
<h2><a class="title-link" name="i-just-want-to-turn-devices-on-and-off-using-echo" href="#i-just-want-to-turn-devices-on-and-off-using-echo"></a> I just want to turn devices on and off using Echo</h2>
<p>If you just want to be able to turn anything with a switch (like lights, switches, media players, etc) on and off, check out Michael Auchters <a href="https://github.com/auchter/haaska">Haaska</a> which integrates the <a href="https://developer.amazon.com/public/binaries/content/assets/html/alexa-lighting-api.html">Alexa Lighting API</a> into Home Assistant.</p>
@ -127,7 +127,7 @@
<p>Please note that you can use Haaska and the built-in Alexa component side-by-side without issue if you wish.</p>
<h3><a class="title-link" name="i-want-to-build-custom-commands-to-use-with-echo" href="#i-want-to-build-custom-commands-to-use-with-echo"></a> I want to build custom commands to use with Echo</h3>
<h2><a class="title-link" name="i-want-to-build-custom-commands-to-use-with-echo" href="#i-want-to-build-custom-commands-to-use-with-echo"></a> I want to build custom commands to use with Echo</h2>
<p>The built-in Alexa component allows you to integrate Home Assistant into Alexa/Amazon Echo. This component will allow you to query information and call services within Home Assistant by using your voice. Home Assistant offers no built-in sentences but offers a framework for you to define your own.</p>
@ -135,7 +135,8 @@
<iframe width="560" height="315" src="https://www.youtube.com/embed/1Ke3mtWd_cQ" frameborder="0" allowfullscreen=""></iframe>
</div>
<h4><a class="title-link" name="requirements-before-using" href="#requirements-before-using"></a> Requirements before using</h4>
<h3><a class="title-link" name="requirements" href="#requirements"></a> Requirements</h3>
<p>Amazon requires the endpoint of a skill to be hosted via SSL. Self-signed certificates are ok because our skills will only run in development mode. Read more on <a href="https://home-assistant.io/blog/2015/12/13/setup-encryption-using-lets-encrypt/">our blog</a> about how to set up encryption for Home Assistant. If you are unable to get HTTPS up and running, consider using <a href="https://forums.developer.amazon.com/forums/thread.jspa?messageID=18604">this AWS Lambda proxy for Alexa skills</a>.</p>
<p>To get started with Alexa skills:</p>
@ -158,42 +159,38 @@
</li>
</ul>
<h4><a class="title-link" name="configuring-your-amazon-alexa-skill" href="#configuring-your-amazon-alexa-skill"></a> Configuring your Amazon Alexa skill</h4>
<h3><a class="title-link" name="configuring-your-amazon-alexa-skill" href="#configuring-your-amazon-alexa-skill"></a> Configuring your Amazon Alexa skill</h3>
<p>Alexa works based on intents. Each intent has a name and variable slots. For example, a <code>LocateIntent</code> with a slot that contains a <code>User</code>. Example intent schema:</p>
<p>Alexa works based on intents. Each intent has a name and variable slots. For example, a <code class="highlighter-rouge">LocateIntent</code> with a slot that contains a <code class="highlighter-rouge">User</code>. Example intent schema:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>{
<span class="key"><span class="delimiter">&quot;</span><span class="content">intents</span><span class="delimiter">&quot;</span></span>: [
{
<span class="key"><span class="delimiter">&quot;</span><span class="content">intent</span><span class="delimiter">&quot;</span></span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">LocateIntent</span><span class="delimiter">&quot;</span></span>,
<span class="key"><span class="delimiter">&quot;</span><span class="content">slots</span><span class="delimiter">&quot;</span></span>: [
{
<span class="key"><span class="delimiter">&quot;</span><span class="content">name</span><span class="delimiter">&quot;</span></span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">User</span><span class="delimiter">&quot;</span></span>,
<span class="key"><span class="delimiter">&quot;</span><span class="content">type</span><span class="delimiter">&quot;</span></span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">AMAZON.US_FIRST_NAME</span><span class="delimiter">&quot;</span></span>
}]
},
{
<span class="key"><span class="delimiter">&quot;</span><span class="content">intent</span><span class="delimiter">&quot;</span></span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">WhereAreWeIntent</span><span class="delimiter">&quot;</span></span>,
<span class="key"><span class="delimiter">&quot;</span><span class="content">slots</span><span class="delimiter">&quot;</span></span>: []
}
]
}
</pre></div>
</div>
<div class="language-json highlighter-rouge"><pre class="highlight"><code><span class="p">{</span><span class="w">
</span><span class="nt">"intents"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
</span><span class="p">{</span><span class="w">
</span><span class="nt">"intent"</span><span class="p">:</span><span class="w"> </span><span class="s2">"LocateIntent"</span><span class="p">,</span><span class="w">
</span><span class="nt">"slots"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
</span><span class="p">{</span><span class="w">
</span><span class="nt">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"User"</span><span class="p">,</span><span class="w">
</span><span class="nt">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"AMAZON.US_FIRST_NAME"</span><span class="w">
</span><span class="p">}]</span><span class="w">
</span><span class="p">},</span><span class="w">
</span><span class="p">{</span><span class="w">
</span><span class="nt">"intent"</span><span class="p">:</span><span class="w"> </span><span class="s2">"WhereAreWeIntent"</span><span class="p">,</span><span class="w">
</span><span class="nt">"slots"</span><span class="p">:</span><span class="w"> </span><span class="p">[]</span><span class="w">
</span><span class="p">}</span><span class="w">
</span><span class="p">]</span><span class="w">
</span><span class="p">}</span><span class="w">
</span></code></pre>
</div>
<p>To bind these intents to sentences said by users you define utterances. Example utterances can look like this:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>LocateIntent Where is {User}
<div class="language-text highlighter-rouge"><pre class="highlight"><code>LocateIntent Where is {User}
LocateIntent Where's {User}
LocateIntent Where {User} is
LocateIntent Where did {User} go
WhereAreWeIntent where we are
</pre></div>
</div>
</code></pre>
</div>
<p>This means that we can now ask Alexa things like:</p>
@ -203,54 +200,51 @@ WhereAreWeIntent where we are
<li>Alexa, ask Home Assistant where we are</li>
</ul>
<h3><a class="title-link" name="configuring-home-assistant" href="#configuring-home-assistant"></a> Configuring Home Assistant</h3>
<h2><a class="title-link" name="configuring-home-assistant" href="#configuring-home-assistant"></a> Configuring Home Assistant</h2>
<p>Out of the box, the component will do nothing. You have to teach it about all intents you want it to answer to. The way it works is that the answer for each intent is based on <a href="/topics/templating/">templates</a> that you define. Each template will have access to the existing states via the <code>states</code> variable but will also have access to all variables defined in the intent.</p>
<p>Out of the box, the component will do nothing. You have to teach it about all intents you want it to answer to. The way it works is that the answer for each intent is based on <a href="/topics/templating/">templates</a> that you define. Each template will have access to the existing states via the <code class="highlighter-rouge">states</code> variable but will also have access to all variables defined in the intent.</p>
<p>You can use <a href="/topics/templating/">templates</a> for the values of <code>speech/text</code>, <code>card/title</code> and <code>card/content</code>.</p>
<p>You can use <a href="/topics/templating/">templates</a> for the values of <code class="highlighter-rouge">speech/text</code>, <code class="highlighter-rouge">card/title</code> and <code class="highlighter-rouge">card/content</code>.</p>
<p>Actions are using the <a href="/getting-started/scripts/">Home Assistant Script Syntax</a> and also have access to the variables from the intent.</p>
<p>Configuring the Alexa component for the above intents would look like this:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>
<span class="comment"># Example configuration.yaml entry</span>
<span class="key">alexa</span>:
<span class="key">intents</span>:
<span class="key">WhereAreWeIntent</span>:
<span class="key">speech</span>:
<span class="key">type</span>: <span class="string"><span class="content">plaintext</span></span>
<span class="key">text</span>: <span class="string"><span class="delimiter">&gt;</span><span class="content">
{%- if is_state('device_tracker.paulus', 'home') and
is_state('device_tracker.anne_therese', 'home') -%}
You are both home, you silly
{%- else -%}
Anne Therese is at {{ states(&quot;device_tracker.anne_therese&quot;) }} and
Paulus is at {{ states(&quot;device_tracker.paulus&quot;) }}
{% endif %}</span></span>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">alexa</span><span class="pi">:</span>
<span class="s">intents</span><span class="pi">:</span>
<span class="s">WhereAreWeIntent</span><span class="pi">:</span>
<span class="s">speech</span><span class="pi">:</span>
<span class="s">type</span><span class="pi">:</span> <span class="s">plaintext</span>
<span class="s">text</span><span class="pi">:</span> <span class="pi">&gt;</span>
<span class="no">{%- if is_state('device_tracker.paulus', 'home') and</span>
<span class="no">is_state('device_tracker.anne_therese', 'home') -%}</span>
<span class="no">You are both home, you silly</span>
<span class="no">{%- else -%}</span>
<span class="no">Anne Therese is at {{ states("device_tracker.anne_therese") }}</span>
<span class="no">and Paulus is at {{ states("device_tracker.paulus") }}</span>
<span class="no">{% endif %}</span>
<span class="key">LocateIntent</span>:
<span class="key">action</span>:
<span class="key">service</span>: <span class="string"><span class="content">notify.notify</span></span>
<span class="key">data_template</span>:
<span class="key">message</span>: <span class="string"><span class="content">The location of {{ User }} has been queried via Alexa.</span></span>
<span class="key">speech</span>:
<span class="key">type</span>: <span class="string"><span class="content">plaintext</span></span>
<span class="key">text</span>: <span class="string"><span class="delimiter">&gt;</span><span class="content">
{%- for state in states.device_tracker -%}
{%- if state.name.lower() == User.lower() -%}
{{ state.name }} is at {{ state.state }}
{%- endif -%}
{%- else -%}
I am sorry, I do not know where {{ User }} is.
{%- endfor -%}</span></span>
<span class="key">card</span>:
<span class="key">type</span>: <span class="string"><span class="content">simple</span></span>
<span class="key">title</span>: <span class="string"><span class="content">Sample title</span></span>
<span class="key">content</span>: <span class="string"><span class="content">Some more content</span></span>
</pre></div>
</div>
<span class="s">LocateIntent</span><span class="pi">:</span>
<span class="s">action</span><span class="pi">:</span>
<span class="s">service</span><span class="pi">:</span> <span class="s">notify.notify</span>
<span class="s">data_template</span><span class="pi">:</span>
<span class="s">message</span><span class="pi">:</span> <span class="s">The location of {{ User }} has been queried via Alexa.</span>
<span class="s">speech</span><span class="pi">:</span>
<span class="s">type</span><span class="pi">:</span> <span class="s">plaintext</span>
<span class="s">text</span><span class="pi">:</span> <span class="pi">&gt;</span>
<span class="no">{%- for state in states.device_tracker -%}</span>
<span class="no">{%- if state.name.lower() == User.lower() -%}</span>
<span class="no">{{ state.name }} is at {{ state.state }}</span>
<span class="no">{%- endif -%}</span>
<span class="no">{%- else -%}</span>
<span class="no">I am sorry, I do not know where {{ User }} is.</span>
<span class="no">{%- endfor -%}</span>
<span class="s">card</span><span class="pi">:</span>
<span class="s">type</span><span class="pi">:</span> <span class="s">simple</span>
<span class="s">title</span><span class="pi">:</span> <span class="s">Sample title</span>
<span class="s">content</span><span class="pi">:</span> <span class="s">Some more content</span>
</code></pre>
</div>
<h3><a class="title-link" name="working-with-scenes" href="#working-with-scenes"></a> Working With Scenes</h3>
@ -259,22 +253,20 @@ WhereAreWeIntent where we are
<p>First we will configure Alexa. In the Amazon Interaction module add this to the intent schema:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>{
<span class="key"><span class="delimiter">&quot;</span><span class="content">intent</span><span class="delimiter">&quot;</span></span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">ActivateSceneIntent</span><span class="delimiter">&quot;</span></span>,
<span class="key"><span class="delimiter">&quot;</span><span class="content">slots</span><span class="delimiter">&quot;</span></span>:
[
{
<span class="key"><span class="delimiter">&quot;</span><span class="content">name</span><span class="delimiter">&quot;</span></span> : <span class="string"><span class="delimiter">&quot;</span><span class="content">Scene</span><span class="delimiter">&quot;</span></span>,
<span class="key"><span class="delimiter">&quot;</span><span class="content">type</span><span class="delimiter">&quot;</span></span> : <span class="string"><span class="delimiter">&quot;</span><span class="content">Scenes</span><span class="delimiter">&quot;</span></span>
}
]
}
</pre></div>
</div>
<div class="language-json highlighter-rouge"><pre class="highlight"><code><span class="p">{</span><span class="w">
</span><span class="nt">"intent"</span><span class="p">:</span><span class="w"> </span><span class="s2">"ActivateSceneIntent"</span><span class="p">,</span><span class="w">
</span><span class="nt">"slots"</span><span class="p">:</span><span class="w">
</span><span class="p">[</span><span class="w">
</span><span class="p">{</span><span class="w">
</span><span class="nt">"name"</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="s2">"Scene"</span><span class="p">,</span><span class="w">
</span><span class="nt">"type"</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="s2">"Scenes"</span><span class="w">
</span><span class="p">}</span><span class="w">
</span><span class="p">]</span><span class="w">
</span><span class="p">}</span><span class="w">
</span></code></pre>
</div>
<p>Then create a custom slot type called <code>Scenes</code> listing every scene you want to control:</p>
<p>Then create a custom slot type called <code class="highlighter-rouge">Scenes</code> listing every scene you want to control:</p>
<p class="img">
<img src="/images/components/alexa/scene_slot.png" />
@ -284,52 +276,45 @@ Custom slot type for scene support.
<p>Add a sample utterance:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>ActivateSceneIntent activate {Scene}
</pre></div>
</div>
<div class="language-text highlighter-rouge"><pre class="highlight"><code>ActivateSceneIntent activate {Scene}
</code></pre>
</div>
<p>Then add the intent to your Alexa Section in your HA config file:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>
<span class="key">ActivateSceneIntent</span>:
<span class="key">action</span>:
<span class="key">service</span>: <span class="string"><span class="content">scene.turn_on</span></span>
<span class="key">data_template</span>:
<span class="key">entity_id</span>: <span class="string"><span class="content">scene.{{ Scene | replace(&quot; &quot;, &quot;_&quot;) }}</span></span>
<span class="key">speech</span>:
<span class="key">type</span>: <span class="string"><span class="content">plaintext</span></span>
<span class="key">text</span>: <span class="string"><span class="content">OK</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code> <span class="s">ActivateSceneIntent</span><span class="pi">:</span>
<span class="s">action</span><span class="pi">:</span>
<span class="s">service</span><span class="pi">:</span> <span class="s">scene.turn_on</span>
<span class="s">data_template</span><span class="pi">:</span>
<span class="s">entity_id</span><span class="pi">:</span> <span class="s">scene.{{ Scene | replace(" ", "_") }}</span>
<span class="s">speech</span><span class="pi">:</span>
<span class="s">type</span><span class="pi">:</span> <span class="s">plaintext</span>
<span class="s">text</span><span class="pi">:</span> <span class="s">OK</span>
</code></pre>
</div>
<p>Here we are using <a href="/topics/templating/">templates</a> to take the name we gave to Alexa e.g. <code>downstairs on</code> and replace the space with an underscore so it becomes <code>downstairs_on</code> as Home Assistant expects.</p>
<p>Here we are using <a href="/topics/templating/">templates</a> to take the name we gave to Alexa e.g. <code class="highlighter-rouge">downstairs on</code> and replace the space with an underscore so it becomes <code class="highlighter-rouge">downstairs_on</code> as Home Assistant expects.</p>
<p>Now say <code>Alexa ask homeassistant to activate &lt;some scene&gt;</code> and Alexa will activate that scene for you.</p>
<p>Now say <code class="highlighter-rouge">Alexa ask homeassistant to activate &lt;some scene&gt;</code> and Alexa will activate that scene for you.</p>
<h3><a class="title-link" name="adding-scripts" href="#adding-scripts"></a> Adding Scripts</h3>
<p>We can easily extend the above idea to work with scripts as well. As before, add an intent for scripts:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>{
<span class="key"><span class="delimiter">&quot;</span><span class="content">intent</span><span class="delimiter">&quot;</span></span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">RunScriptIntent</span><span class="delimiter">&quot;</span></span>,
<span class="key"><span class="delimiter">&quot;</span><span class="content">slots</span><span class="delimiter">&quot;</span></span>:
[
{
<span class="key"><span class="delimiter">&quot;</span><span class="content">name</span><span class="delimiter">&quot;</span></span> : <span class="string"><span class="delimiter">&quot;</span><span class="content">Script</span><span class="delimiter">&quot;</span></span>,
<span class="key"><span class="delimiter">&quot;</span><span class="content">type</span><span class="delimiter">&quot;</span></span> : <span class="string"><span class="delimiter">&quot;</span><span class="content">Scripts</span><span class="delimiter">&quot;</span></span>
}
]
}
</pre></div>
</div>
<div class="language-json highlighter-rouge"><pre class="highlight"><code><span class="p">{</span><span class="w">
</span><span class="nt">"intent"</span><span class="p">:</span><span class="w"> </span><span class="s2">"RunScriptIntent"</span><span class="p">,</span><span class="w">
</span><span class="nt">"slots"</span><span class="p">:</span><span class="w">
</span><span class="p">[</span><span class="w">
</span><span class="p">{</span><span class="w">
</span><span class="nt">"name"</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="s2">"Script"</span><span class="p">,</span><span class="w">
</span><span class="nt">"type"</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="s2">"Scripts"</span><span class="w">
</span><span class="p">}</span><span class="w">
</span><span class="p">]</span><span class="w">
</span><span class="p">}</span><span class="w">
</span></code></pre>
</div>
<p>Create a custom slot type called <code>Scripts</code> listing every script you want to run:</p>
<p>Create a custom slot type called <code class="highlighter-rouge">Scripts</code> listing every script you want to run:</p>
<p class="img">
<img src="/images/components/alexa/script_slot.png" />
@ -338,70 +323,63 @@ Custom slot type for script support.
<p>Add a sample utterance:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>RunScriptIntent run {Script}
</pre></div>
</div>
<div class="language-text highlighter-rouge"><pre class="highlight"><code>RunScriptIntent run {Script}
</code></pre>
</div>
<p>Then add the intent to your Alexa Section in your HA config file:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>
<span class="key">RunScriptIntent</span>:
<span class="key">action</span>:
<span class="key">service</span>: <span class="string"><span class="content">script.turn_on</span></span>
<span class="key">data_template</span>:
<span class="key">entity_id</span>: <span class="string"><span class="content">script.{{ Script | replace(&quot; &quot;, &quot;_&quot;) }}</span></span>
<span class="key">speech</span>:
<span class="key">type</span>: <span class="string"><span class="content">plaintext</span></span>
<span class="key">text</span>: <span class="string"><span class="content">OK</span></span>
</pre></div>
</div>
</div>
<p>Now say <code>Alexa ask homeassistant to run &lt;some script&gt;</code> and Alexa will run that script for you.</p>
<h3><a class="title-link" name="giving-alexa-some-personality" href="#giving-alexa-some-personality"></a> Giving Alexa Some Personality</h3>
<p>In the examples above, we told Alexa to say <code>OK</code> when she succesfully completed the task. This is effective but a little dull! We can again use <a href="/topics/templating/">templates</a> to spice things up a little.</p>
<p>First create a file called <code>alexa_confirm.yaml</code> with something like the following in it (go on, be creative!):</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>
&gt;
{{ [
&quot;OK&quot;,
&quot;Sure&quot;,
&quot;If you insist&quot;,
&quot;Done&quot;,
&quot;No worries&quot;,
&quot;I can do that&quot;,
&quot;Leave it to me&quot;,
&quot;Consider it done&quot;,
&quot;As you wish&quot;,
&quot;By your command&quot;,
&quot;Affirmative&quot;,
&quot;Yes oh revered one&quot;,
&quot;I will&quot;,
&quot;As you decree, so shall it be&quot;,
&quot;No Problem&quot;
] | random }}
</pre></div>
</div>
</div>
<p>Then, wherever you would but some simple text for a response like<code>OK</code>, replace it with a reference to the file so that:</p>
<pre><code>text: OK
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code> <span class="s">RunScriptIntent</span><span class="pi">:</span>
<span class="s">action</span><span class="pi">:</span>
<span class="s">service</span><span class="pi">:</span> <span class="s">script.turn_on</span>
<span class="s">data_template</span><span class="pi">:</span>
<span class="s">entity_id</span><span class="pi">:</span> <span class="s">script.{{ Script | replace(" ", "_") }}</span>
<span class="s">speech</span><span class="pi">:</span>
<span class="s">type</span><span class="pi">:</span> <span class="s">plaintext</span>
<span class="s">text</span><span class="pi">:</span> <span class="s">OK</span>
</code></pre>
</div>
<p>Now say <code class="highlighter-rouge">Alexa ask homeassistant to run &lt;some script&gt;</code> and Alexa will run that script for you.</p>
<h2><a class="title-link" name="giving-alexa-some-personality" href="#giving-alexa-some-personality"></a> Giving Alexa Some Personality</h2>
<p>In the examples above, we told Alexa to say <code class="highlighter-rouge">OK</code> when she succesfully completed the task. This is effective but a little dull! We can again use <a href="/topics/templating/">templates</a> to spice things up a little.</p>
<p>First create a file called <code class="highlighter-rouge">alexa_confirm.yaml</code> with something like the following in it (go on, be creative!):</p>
<div class="language-text highlighter-rouge"><pre class="highlight"><code> &gt;
{{ [
"OK",
"Sure",
"If you insist",
"Done",
"No worries",
"I can do that",
"Leave it to me",
"Consider it done",
"As you wish",
"By your command",
"Affirmative",
"Yes oh revered one",
"I will",
"As you decree, so shall it be",
"No Problem"
] | random }}
</code></pre>
</div>
<p>Then, wherever you would but some simple text for a response like<code class="highlighter-rouge">OK</code>, replace it with a reference to the file so that:</p>
<div class="highlighter-rouge"><pre class="highlight"><code>text: OK
</code></pre>
</div>
<p>becomes:</p>
<pre><code>text: !include alexa_confirm.yaml
<div class="highlighter-rouge"><pre class="highlight"><code>text: !include alexa_confirm.yaml
</code></pre>
</div>
<p>Alexa will now respond with a random phrase each time. You can use the include for as many different intents as you like so you only need to create the list once.</p>

View file

@ -91,22 +91,20 @@
<p><a href="http://www.apcupsd.org/">APCUPSd</a> status information can be integrated into Home Assistant when the Network Information Server (NIS) <a href="http://www.apcupsd.org/manual/manual.html#nis-server-client-configuration-using-the-net-driver">is configured</a> is enabled on the APC device.</p>
<p>To enable this sensor, add the following lines to your <code>configuration.yaml</code>:</p>
<p>To enable this sensor, add the following lines to your <code class="highlighter-rouge">configuration.yaml</code>:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">apcupsd</span>:
<span class="key">host</span>: <span class="string"><span class="content">IP_ADDRESS</span></span>
<span class="key">port</span>: <span class="string"><span class="content">PORT</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">apcupsd</span><span class="pi">:</span>
<span class="s">host</span><span class="pi">:</span> <span class="s">IP_ADDRESS</span>
<span class="s">port</span><span class="pi">:</span> <span class="s">PORT</span>
</code></pre>
</div>
<p>Configuration variables:</p>
<ul>
<li><strong>host</strong> (<em>Optional</em>): The hostname/IP address on which the APCUPSd NIS is being served. Defaults to <code>localhost</code>.</li>
<li><strong>port</strong> (<em>Optional</em>): The port on which the APCUPSd NIS is listening. Defaults to <code>3551</code>.</li>
<li><strong>host</strong> (<em>Optional</em>): The hostname/IP address on which the APCUPSd NIS is being served. Defaults to <code class="highlighter-rouge">localhost</code>.</li>
<li><strong>port</strong> (<em>Optional</em>): The port on which the APCUPSd NIS is listening. Defaults to <code class="highlighter-rouge">3551</code>.</li>
</ul>

View file

@ -93,35 +93,31 @@
<p>There are a lot of extensions (so called <a href="https://www.arduino.cc/en/Main/ArduinoShields">shields</a>) available. Those shields can be plugged-in into the existing connectors and stacked on top of each other. This makes it possible to expand the capabilities of the Arduino boards.</p>
<p>The <code>arduino</code> component is designed to let you use a directly attached board to your Home Assistant host over USB.</p>
<p>The <code class="highlighter-rouge">arduino</code> component is designed to let you use a directly attached board to your Home Assistant host over USB.</p>
<p>You need to have the <a href="https://github.com/firmata/">Firmata firmware</a> on your board. Please upload the <code>StandardFirmata</code> sketch to your board, please refer to the <a href="https://www.arduino.cc/en/Main/Howto">Arduino documentation</a> for further information.</p>
<p>You need to have the <a href="https://github.com/firmata/">Firmata firmware</a> on your board. Please upload the <code class="highlighter-rouge">StandardFirmata</code> sketch to your board, please refer to the <a href="https://www.arduino.cc/en/Main/Howto">Arduino documentation</a> for further information.</p>
<p>To integrate an Arduino boards with Home Assistant, add the following section to your <code>configuration.yaml</code> file:</p>
<p>To integrate an Arduino boards with Home Assistant, add the following section to your <code class="highlighter-rouge">configuration.yaml</code> file:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">arduino</span>:
<span class="key">port</span>: <span class="string"><span class="content">/dev/ttyACM0</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">arduino</span><span class="pi">:</span>
<span class="s">port</span><span class="pi">:</span> <span class="s">/dev/ttyACM0</span>
</code></pre>
</div>
<p>Configuration variables:</p>
<ul>
<li><strong>port</strong> (<em>Required</em>): The port where your board is connected to your Home Assistant host. If you are using an original Arduino the port will be named <code>ttyACM*</code> otherwise <code>ttyUSB*</code>.</li>
<li><strong>port</strong> (<em>Required</em>): The port where your board is connected to your Home Assistant host. If you are using an original Arduino the port will be named <code class="highlighter-rouge">ttyACM*</code> otherwise <code class="highlighter-rouge">ttyUSB*</code>.</li>
</ul>
<p>The exact number can be determined with the command shown below.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>$ ls /dev/ttyACM*
</pre></div>
</div>
<div class="language-bash highlighter-rouge"><pre class="highlight"><code><span class="gp">$ </span>ls /dev/ttyACM<span class="k">*</span>
</code></pre>
</div>
<p>If thats not working, check your <code>dmesg</code> or <code>journalctl -f</code> output. Keep in mind that Arduino clones are often using a different name for the port (eg. <code>/dev/ttyUSB*</code>).</p>
<p>If thats not working, check your <code class="highlighter-rouge">dmesg</code> or <code class="highlighter-rouge">journalctl -f</code> output. Keep in mind that Arduino clones are often using a different name for the port (eg. <code class="highlighter-rouge">/dev/ttyUSB*</code>).</p>
<p class="note warning">
A word of caution: The Arduino boards are not storing states. This means that with every initialization the pins are set to off/low.

View file

@ -91,15 +91,13 @@
<p>In addition to the <a href="/components/sensor.apcupsd/">APCUPSd Sensor</a> devices, you may also create a device which is simply “on” when the UPS status is online and “off” at all other times.</p>
<p>To enable this sensor, add the following lines to your <code>configuration.yaml</code> file:</p>
<p>To enable this sensor, add the following lines to your <code class="highlighter-rouge">configuration.yaml</code> file:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">binary_sensor</span>:
<span class="key">platform</span>: <span class="string"><span class="content">apcupsd</span></span>
<span class="key">name</span>: <span class="string"><span class="content">UPS Online</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">binary_sensor</span><span class="pi">:</span>
<span class="s">platform</span><span class="pi">:</span> <span class="s">apcupsd</span>
<span class="s">name</span><span class="pi">:</span> <span class="s">UPS Online</span>
</code></pre>
</div>
<p>Configuration variables:</p>

View file

@ -89,19 +89,17 @@
<hr class="divider">
<p>The <code>arest</code> binary sensor platform allows you to get all data from your devices (like Arduinos with a ethernet/wifi connection, the ESP8266, and the Raspberry Pi) running the <a href="http://arest.io/">aREST</a> RESTful framework.</p>
<p>The <code class="highlighter-rouge">arest</code> binary sensor platform allows you to get all data from your devices (like Arduinos with a ethernet/wifi connection, the ESP8266, and the Raspberry Pi) running the <a href="http://arest.io/">aREST</a> RESTful framework.</p>
<p>To use your aREST binary sensor in your installation, add the following to your <code>configuration.yaml</code> file:</p>
<p>To use your aREST binary sensor in your installation, add the following to your <code class="highlighter-rouge">configuration.yaml</code> file:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">binary_sensor</span>:
<span class="key">platform</span>: <span class="string"><span class="content">arest</span></span>
<span class="key">resource</span>: <span class="string"><span class="content">http://IP_ADDRESS</span></span>
<span class="key">name</span>: <span class="string"><span class="content">Office Switch</span></span>
<span class="key">pin</span>: <span class="string"><span class="content">8</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">binary_sensor</span><span class="pi">:</span>
<span class="s">platform</span><span class="pi">:</span> <span class="s">arest</span>
<span class="s">resource</span><span class="pi">:</span> <span class="s">http://IP_ADDRESS</span>
<span class="s">name</span><span class="pi">:</span> <span class="s">Office Switch</span>
<span class="s">pin</span><span class="pi">:</span> <span class="s">8</span>
</code></pre>
</div>
<p>Configuration variables:</p>
@ -112,13 +110,11 @@
<li><strong>pin</strong> (<em>Required</em>): Number of the pin to monitor.</li>
</ul>
<p>Accessing the URL http://IP_ADDRESS/digital/PIN_NUMBER should give you the state of the pin inside a JSON response as <code>return_value</code>.</p>
<p>Accessing the URL http://IP_ADDRESS/digital/PIN_NUMBER should give you the state of the pin inside a JSON response as <code class="highlighter-rouge">return_value</code>.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>$ curl -X GET http://10.100.0.157/digital/9
{&quot;return_value&quot;: 0, &quot;id&quot;: &quot;office1&quot;, &quot;name&quot;: &quot;Office&quot;, &quot;connected&quot;: true}
</pre></div>
</div>
<div class="language-bash highlighter-rouge"><pre class="highlight"><code><span class="gp">$ </span>curl -X GET http://10.100.0.157/digital/9
<span class="o">{</span><span class="s2">"return_value"</span>: 0, <span class="s2">"id"</span>: <span class="s2">"office1"</span>, <span class="s2">"name"</span>: <span class="s2">"Office"</span>, <span class="s2">"connected"</span>: <span class="nb">true</span><span class="o">}</span>
</code></pre>
</div>
<p class="note">

View file

@ -89,18 +89,16 @@
<hr class="divider">
<p>The <code>bloomsky</code> binary sensor platform allows you to get data from your BloomSky device.</p>
<p>The <code class="highlighter-rouge">bloomsky</code> binary sensor platform allows you to get data from your BloomSky device.</p>
<p>To get your BloomSky binary sensors working with Home Assistant, follow the instructions for the <a href="/components/bloomsky/">BloomSky component</a> first.</p>
<p>To use your BloomSky binary sensor in your installation, add the following to your <code>configuration.yaml</code> file:</p>
<p>To use your BloomSky binary sensor in your installation, add the following to your <code class="highlighter-rouge">configuration.yaml</code> file:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">binary_sensor</span>:
- <span class="string"><span class="content">platform: bloomsky</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">binary_sensor</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">platform</span><span class="pi">:</span> <span class="s">bloomsky</span>
</code></pre>
</div>

View file

@ -89,22 +89,20 @@
<hr class="divider">
<p>The <code>command</code> binary sensor platform issues specific commands to get data.</p>
<p>The <code class="highlighter-rouge">command</code> binary sensor platform issues specific commands to get data.</p>
<p>To use your Command binary sensor in your installation, add the following to your <code>configuration.yaml</code> file:</p>
<p>To use your Command binary sensor in your installation, add the following to your <code class="highlighter-rouge">configuration.yaml</code> file:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">binary_sensor</span>:
<span class="key">platform</span>: <span class="string"><span class="content">command_line</span></span>
<span class="key">command</span>: <span class="string"><span class="content">cat /proc/sys/net/ipv4/ip_forward</span></span>
<span class="key">name</span>: <span class="string"><span class="content">'IP4 forwarding'</span></span>
<span class="key">sensor_class</span>: <span class="string"><span class="content">opening</span></span>
<span class="key">payload_on</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">1</span><span class="delimiter">&quot;</span></span>
<span class="key">payload_off</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">0</span><span class="delimiter">&quot;</span></span>
<span class="key">value_template</span>: <span class="string"><span class="content">'{{ value.x }}'</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">binary_sensor</span><span class="pi">:</span>
<span class="s">platform</span><span class="pi">:</span> <span class="s">command_line</span>
<span class="s">command</span><span class="pi">:</span> <span class="s">cat /proc/sys/net/ipv4/ip_forward</span>
<span class="s">name</span><span class="pi">:</span> <span class="s1">'</span><span class="s">IP4</span><span class="nv"> </span><span class="s">forwarding'</span>
<span class="s">sensor_class</span><span class="pi">:</span> <span class="s">opening</span>
<span class="s">payload_on</span><span class="pi">:</span> <span class="s2">"</span><span class="s">1"</span>
<span class="s">payload_off</span><span class="pi">:</span> <span class="s2">"</span><span class="s">0"</span>
<span class="s">value_template</span><span class="pi">:</span> <span class="s1">'</span><span class="s">{{</span><span class="nv"> </span><span class="s">value.x</span><span class="nv"> </span><span class="s">}}'</span>
</code></pre>
</div>
<p>Configuration variables:</p>
@ -126,44 +124,38 @@
<p>Check the state of an <a href="https://github.com/sickragetv/sickrage">SickRage</a> instance.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">binary_sensor</span>:
<span class="key">platform</span>: <span class="string"><span class="content">command_line</span></span>
<span class="key">command</span>: <span class="string"><span class="content">netstat -na | find &quot;33322&quot; | find /c &quot;LISTENING&quot; &gt; nul &amp;&amp; (echo &quot;Running&quot;) || (echo &quot;Not running&quot;)</span></span>
<span class="key">name</span>: <span class="string"><span class="content">'sickragerunning'</span></span>
<span class="key">payload_on</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">Running</span><span class="delimiter">&quot;</span></span>
<span class="key">payload_off</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">Not running</span><span class="delimiter">&quot;</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">binary_sensor</span><span class="pi">:</span>
<span class="s">platform</span><span class="pi">:</span> <span class="s">command_line</span>
<span class="s">command</span><span class="pi">:</span> <span class="s">netstat -na | find "33322" | find /c "LISTENING" &gt; nul &amp;&amp; (echo "Running") || (echo "Not running")</span>
<span class="s">name</span><span class="pi">:</span> <span class="s1">'</span><span class="s">sickragerunning'</span>
<span class="s">payload_on</span><span class="pi">:</span> <span class="s2">"</span><span class="s">Running"</span>
<span class="s">payload_off</span><span class="pi">:</span> <span class="s2">"</span><span class="s">Not</span><span class="nv"> </span><span class="s">running"</span>
</code></pre>
</div>
<h3><a class="title-link" name="check-rasplex" href="#check-rasplex"></a> Check RasPlex</h3>
<p>Check if <a href="http://www.rasplex.com/">RasPlex</a> is <code>online</code>.</p>
<p>Check if <a href="http://www.rasplex.com/">RasPlex</a> is <code class="highlighter-rouge">online</code>.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="key">binary_sensor</span>:
<span class="key">platform</span>: <span class="string"><span class="content">command_line</span></span>
<span class="key">command</span>: <span class="string"><span class="content">'ping -c 1 rasplex.local | grep &quot;1 received&quot; | wc -l'</span></span>
<span class="key">name</span>: <span class="string"><span class="content">'is_rasplex_online'</span></span>
<span class="key">payload_on</span>: <span class="string"><span class="content">1</span></span>
<span class="key">payload_off</span>: <span class="string"><span class="content">0</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="s">binary_sensor</span><span class="pi">:</span>
<span class="s">platform</span><span class="pi">:</span> <span class="s">command_line</span>
<span class="s">command</span><span class="pi">:</span> <span class="s1">'</span><span class="s">ping</span><span class="nv"> </span><span class="s">-c</span><span class="nv"> </span><span class="s">1</span><span class="nv"> </span><span class="s">rasplex.local</span><span class="nv"> </span><span class="s">|</span><span class="nv"> </span><span class="s">grep</span><span class="nv"> </span><span class="s">"1</span><span class="nv"> </span><span class="s">received"</span><span class="nv"> </span><span class="s">|</span><span class="nv"> </span><span class="s">wc</span><span class="nv"> </span><span class="s">-l'</span>
<span class="s">name</span><span class="pi">:</span> <span class="s1">'</span><span class="s">is_rasplex_online'</span>
<span class="s">payload_on</span><span class="pi">:</span> <span class="s">1</span>
<span class="s">payload_off</span><span class="pi">:</span> <span class="s">0</span>
</code></pre>
</div>
<p>An alternative solution could look like this:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="key">binary_sensor</span>:
<span class="key">platform</span>: <span class="string"><span class="content">command_line</span></span>
<span class="key">name</span>: <span class="string"><span class="content">Printer</span></span>
<span class="key">command</span>: <span class="string"><span class="content">ping -c 1 192.168.1.10 &amp;&gt; /dev/null &amp;&amp; echo success || echo fail</span></span>
<span class="key">payload_on</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">success</span><span class="delimiter">&quot;</span></span>
<span class="key">payload_off</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">fail</span><span class="delimiter">&quot;</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="s">binary_sensor</span><span class="pi">:</span>
<span class="s">platform</span><span class="pi">:</span> <span class="s">command_line</span>
<span class="s">name</span><span class="pi">:</span> <span class="s">Printer</span>
<span class="s">command</span><span class="pi">:</span> <span class="s">ping -c 1 192.168.1.10 &amp;&gt; /dev/null &amp;&amp; echo success || echo fail</span>
<span class="s">payload_on</span><span class="pi">:</span> <span class="s2">"</span><span class="s">success"</span>
<span class="s">payload_off</span><span class="pi">:</span> <span class="s2">"</span><span class="s">fail"</span>
</code></pre>
</div>

View file

@ -91,22 +91,20 @@
<p>This can typically be one of those batteryless wall switches. Currently only one type has been tested: Eltako FT55. Other devices will most likely not work without changing the Home-Asisstant code.</p>
<p>To use your EnOcean device, you first have to set up your <a href="/components/enocean/">EnOcean hub</a> and then add the following to your <code>configuration.yaml</code> file:</p>
<p>To use your EnOcean device, you first have to set up your <a href="/components/enocean/">EnOcean hub</a> and then add the following to your <code class="highlighter-rouge">configuration.yaml</code> file:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">binary_sensor</span>:
- <span class="string"><span class="content">platform: enocean</span></span>
<span class="key">id</span>: <span class="string"><span class="content">[0x01,0x90,0x84,0x3C]</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">binary_sensor</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">platform</span><span class="pi">:</span> <span class="s">enocean</span>
<span class="s">id</span><span class="pi">:</span> <span class="pi">[</span><span class="nv">0x01</span><span class="pi">,</span><span class="nv">0x90</span><span class="pi">,</span><span class="nv">0x84</span><span class="pi">,</span><span class="nv">0x3C</span><span class="pi">]</span>
</code></pre>
</div>
<p>Configuration variables:</p>
<ul>
<li><strong>id</strong> (<em>Required</em>): The ID of the device. This is the 4 bytes long number written on the dimmer.</li>
<li><strong>platform</strong> (<em>Required</em>): Set to <code>enocean</code>.</li>
<li><strong>platform</strong> (<em>Required</em>): Set to <code class="highlighter-rouge">enocean</code>.</li>
</ul>

View file

@ -89,7 +89,7 @@
<hr class="divider">
<p>The <code>envisalink</code> platform allows you to get data from your <a href="http://www.eyezon.com/">Envisalink</a> binary sensors from within Home Assistant.</p>
<p>The <code class="highlighter-rouge">envisalink</code> platform allows you to get data from your <a href="http://www.eyezon.com/">Envisalink</a> binary sensors from within Home Assistant.</p>
<p>The requirement is that you have setup your <a href="/components/envisalink/">Envisalink hub</a>.</p>

View file

@ -89,7 +89,7 @@
<hr class="divider">
<p>The <code>homematic</code> binary sensor platform lets you observe the state changes of binary <a href="http://www.homematic.com/">Homematic</a> sensors through Home Assistant.</p>
<p>The <code class="highlighter-rouge">homematic</code> binary sensor platform lets you observe the state changes of binary <a href="http://www.homematic.com/">Homematic</a> sensors through Home Assistant.</p>
<p>Devices will be configured automatically. Please refer to the <a href="/components/homematic/">component</a> configuration on how to setup Homematic.</p>

View file

@ -91,10 +91,8 @@
<p>The URL for a binary sensor looks like the example below:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>http://IP_ADDRESS:8123/api/states/binary_sensor.DEVICE_NAME
</pre></div>
</div>
<div class="language-bash highlighter-rouge"><pre class="highlight"><code>http://IP_ADDRESS:8123/api/states/binary_sensor.DEVICE_NAME
</code></pre>
</div>
<p class="note">
@ -103,70 +101,60 @@ You should choose a unique device name (DEVICE_NAME) to avoid clashes with other
<p>The JSON payload must contain the new state and can have a friendly name. The friendly name is used in the frontend to name the sensor.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>{<span class="key"><span class="delimiter">&quot;</span><span class="content">state</span><span class="delimiter">&quot;</span></span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">on</span><span class="delimiter">&quot;</span></span>, <span class="key"><span class="delimiter">&quot;</span><span class="content">attributes</span><span class="delimiter">&quot;</span></span>: {<span class="key"><span class="delimiter">&quot;</span><span class="content">friendly_name</span><span class="delimiter">&quot;</span></span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">Radio</span><span class="delimiter">&quot;</span></span>}}
</pre></div>
</div>
<div class="language-json highlighter-rouge"><pre class="highlight"><code><span class="p">{</span><span class="nt">"state"</span><span class="p">:</span><span class="w"> </span><span class="s2">"on"</span><span class="p">,</span><span class="w"> </span><span class="nt">"attributes"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="nt">"friendly_name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Radio"</span><span class="p">}}</span><span class="w">
</span></code></pre>
</div>
<p>For a quick test <code>curl</code> can be useful to “simulate” a device.</p>
<p>For a quick test <code class="highlighter-rouge">curl</code> can be useful to “simulate” a device.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>$ curl -X POST -H &quot;x-ha-access: YOUR_PASSWORD&quot; \
-H &quot;Content-Type: application/json&quot; \
-d '{&quot;state&quot;: &quot;off&quot;, &quot;attributes&quot;: {&quot;friendly_name&quot;: &quot;Radio&quot;}}' \
<div class="language-bash highlighter-rouge"><pre class="highlight"><code><span class="gp">$ </span>curl -X POST -H <span class="s2">"x-ha-access: YOUR_PASSWORD"</span> <span class="se">\</span>
-H <span class="s2">"Content-Type: application/json"</span> <span class="se">\</span>
-d <span class="s1">'{"state": "off", "attributes": {"friendly_name": "Radio"}}'</span> <span class="se">\</span>
http://localhost:8123/api/states/binary_sensor.radio
</pre></div>
</div>
</code></pre>
</div>
<p>To check if the sensor is working, use again <code>curl</code> to retrieve the <a href="/developers/rest_api/#get-apistatesltentity_id">current state</a>.</p>
<p>To check if the sensor is working, use again <code class="highlighter-rouge">curl</code> to retrieve the <a href="/developers/rest_api/#get-apistatesltentity_id">current state</a>.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>$ curl -X GET -H &quot;x-ha-access: YOUR_PASSWORD&quot; \
-H &quot;Content-Type: application/json&quot; \
<div class="language-bash highlighter-rouge"><pre class="highlight"><code><span class="gp">$ </span>curl -X GET -H <span class="s2">"x-ha-access: YOUR_PASSWORD"</span> <span class="se">\</span>
-H <span class="s2">"Content-Type: application/json"</span> <span class="se">\</span>
http://localhost:8123/api/states/binary_sensor.radio
{
&quot;attributes&quot;: {
&quot;friendly_name&quot;: &quot;Radio&quot;
},
&quot;entity_id&quot;: &quot;binary_sensor.radio&quot;,
&quot;last_changed&quot;: &quot;16:45:51 05-02-2016&quot;,
&quot;last_updated&quot;: &quot;16:45:51 05-02-2016&quot;,
&quot;state&quot;: &quot;off&quot;
}
</pre></div>
</div>
<span class="o">{</span>
<span class="s2">"attributes"</span>: <span class="o">{</span>
<span class="s2">"friendly_name"</span>: <span class="s2">"Radio"</span>
<span class="o">}</span>,
<span class="s2">"entity_id"</span>: <span class="s2">"binary_sensor.radio"</span>,
<span class="s2">"last_changed"</span>: <span class="s2">"16:45:51 05-02-2016"</span>,
<span class="s2">"last_updated"</span>: <span class="s2">"16:45:51 05-02-2016"</span>,
<span class="s2">"state"</span>: <span class="s2">"off"</span>
<span class="o">}</span>
</code></pre>
</div>
<h2><a class="title-link" name="examples" href="#examples"></a> Examples</h2>
<p>In this section you find some real life examples of how to use this sensor. Beside <code>curl</code>.</p>
<p>In this section you find some real life examples of how to use this sensor. Beside <code class="highlighter-rouge">curl</code>.</p>
<h3><a class="title-link" name="using-python-request-module" href="#using-python-request-module"></a> Using Python request module</h3>
<p>As already shown on the <a href="/developers/rest_api/">API</a> page, its very simple to use Python and the <a href="http://docs.python-requests.org/en/latest/">Requests</a> module for the interaction with Home Assistant.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>response = requests.post(
<span class="string"><span class="delimiter">'</span><span class="content">http://localhost:8123/api/states/binary_sensor.radio</span><span class="delimiter">'</span></span>,
headers={<span class="string"><span class="delimiter">'</span><span class="content">x-ha-access</span><span class="delimiter">'</span></span>: <span class="string"><span class="delimiter">'</span><span class="content">YOUR_PASSWORD</span><span class="delimiter">'</span></span>, <span class="string"><span class="delimiter">'</span><span class="content">content-type</span><span class="delimiter">'</span></span>: <span class="string"><span class="delimiter">'</span><span class="content">application/json</span><span class="delimiter">'</span></span>},
data=json.dumps({<span class="string"><span class="delimiter">'</span><span class="content">state</span><span class="delimiter">'</span></span>: <span class="string"><span class="delimiter">'</span><span class="content">on</span><span class="delimiter">'</span></span>, <span class="string"><span class="delimiter">'</span><span class="content">attributes</span><span class="delimiter">'</span></span>: {<span class="string"><span class="delimiter">'</span><span class="content">friendly_name</span><span class="delimiter">'</span></span>: <span class="string"><span class="delimiter">'</span><span class="content">Radio</span><span class="delimiter">'</span></span>}}))
print(response.text)
</pre></div>
</div>
<div class="language-python highlighter-rouge"><pre class="highlight"><code><span class="n">response</span> <span class="o">=</span> <span class="n">requests</span><span class="o">.</span><span class="n">post</span><span class="p">(</span>
<span class="s">'http://localhost:8123/api/states/binary_sensor.radio'</span><span class="p">,</span>
<span class="n">headers</span><span class="o">=</span><span class="p">{</span><span class="s">'x-ha-access'</span><span class="p">:</span> <span class="s">'YOUR_PASSWORD'</span><span class="p">,</span> <span class="s">'content-type'</span><span class="p">:</span> <span class="s">'application/json'</span><span class="p">},</span>
<span class="n">data</span><span class="o">=</span><span class="n">json</span><span class="o">.</span><span class="n">dumps</span><span class="p">({</span><span class="s">'state'</span><span class="p">:</span> <span class="s">'on'</span><span class="p">,</span> <span class="s">'attributes'</span><span class="p">:</span> <span class="p">{</span><span class="s">'friendly_name'</span><span class="p">:</span> <span class="s">'Radio'</span><span class="p">}}))</span>
<span class="k">print</span><span class="p">(</span><span class="n">response</span><span class="o">.</span><span class="n">text</span><span class="p">)</span>
</code></pre>
</div>
<h3><a class="title-link" name="using-httpie" href="#using-httpie"></a> Using <code>httpie</code></h3>
<h3><a class="title-link" name="using-httpie" href="#using-httpie"></a> Using <code class="highlighter-rouge">httpie</code></h3>
<p><a href="https://github.com/jkbrzt/httpie"><code>httpie</code></a> is a user-friendly CLI HTTP client.</p>
<p><a href="https://github.com/jkbrzt/httpie"><code class="highlighter-rouge">httpie</code></a> is a user-friendly CLI HTTP client.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>$ http -v POST http://localhost:8123/api/states/binary_sensor.radio \
x-ha-access:YOUR_PASSWORD content-type:application/json state=off \
attributes:='{&quot;friendly_name&quot;: &quot;Radio&quot;}'
</pre></div>
</div>
<div class="language-bash highlighter-rouge"><pre class="highlight"><code><span class="gp">$ </span>http -v POST http://localhost:8123/api/states/binary_sensor.radio <span class="se">\</span>
x-ha-access:YOUR_PASSWORD content-type:application/json <span class="nv">state</span><span class="o">=</span>off <span class="se">\</span>
attributes:<span class="o">=</span><span class="s1">'{"friendly_name": "Radio"}'</span>
</code></pre>
</div>

View file

@ -89,23 +89,21 @@
<hr class="divider">
<p>The <code>mqtt</code> binary sensor platform uses the MQTT message payload as the sensor value. If messages in this <code>state_topic</code> are published with <em>RETAIN</em> flag, the sensor will receive an instant update with the last known value. Otherwise, the initial state will be off.</p>
<p>The <code class="highlighter-rouge">mqtt</code> binary sensor platform uses the MQTT message payload as the sensor value. If messages in this <code class="highlighter-rouge">state_topic</code> are published with <em>RETAIN</em> flag, the sensor will receive an instant update with the last known value. Otherwise, the initial state will be off.</p>
<p>To use your MQTT binary sensor in your installation, add the following to your <code>configuration.yaml</code> file:</p>
<p>To use your MQTT binary sensor in your installation, add the following to your <code class="highlighter-rouge">configuration.yaml</code> file:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yml entry</span>
<span class="key">binary_sensor</span>:
<span class="key">platform</span>: <span class="string"><span class="content">mqtt</span></span>
<span class="key">state_topic</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">home-assistant/window/contact</span><span class="delimiter">&quot;</span></span>
<span class="key">name</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">MQTT Sensor</span><span class="delimiter">&quot;</span></span>
<span class="key">qos</span>: <span class="string"><span class="content">0</span></span>
<span class="key">payload_on</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">ON</span><span class="delimiter">&quot;</span></span>
<span class="key">payload_off</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">OFF</span><span class="delimiter">&quot;</span></span>
<span class="key">sensor_class</span>: <span class="string"><span class="content">opening</span></span>
<span class="key">value_template</span>: <span class="string"><span class="content">'{{ value.x }}'</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yml entry</span>
<span class="s">binary_sensor</span><span class="pi">:</span>
<span class="s">platform</span><span class="pi">:</span> <span class="s">mqtt</span>
<span class="s">state_topic</span><span class="pi">:</span> <span class="s2">"</span><span class="s">home-assistant/window/contact"</span>
<span class="s">name</span><span class="pi">:</span> <span class="s2">"</span><span class="s">MQTT</span><span class="nv"> </span><span class="s">Sensor"</span>
<span class="s">qos</span><span class="pi">:</span> <span class="s">0</span>
<span class="s">payload_on</span><span class="pi">:</span> <span class="s2">"</span><span class="s">ON"</span>
<span class="s">payload_off</span><span class="pi">:</span> <span class="s2">"</span><span class="s">OFF"</span>
<span class="s">sensor_class</span><span class="pi">:</span> <span class="s">opening</span>
<span class="s">value_template</span><span class="pi">:</span> <span class="s1">'</span><span class="s">{{</span><span class="nv"> </span><span class="s">value.x</span><span class="nv"> </span><span class="s">}}'</span>
</code></pre>
</div>
<p>Configuration variables:</p>
@ -120,12 +118,10 @@
<li><strong>value_template</strong> (<em>Optional</em>): Defines a <a href="/topics/templating/">template</a> to extract a value from the payload.</li>
</ul>
<p>For a quick check you can use the commandline tools shipped with <code>mosquitto</code> to send MQTT messages. Set the state of your sensor manually:</p>
<p>For a quick check you can use the commandline tools shipped with <code class="highlighter-rouge">mosquitto</code> to send MQTT messages. Set the state of your sensor manually:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>$ mosquitto_pub -h 127.0.0.1 -t home-assistant/window/contact -m &quot;OFF&quot;
</pre></div>
</div>
<div class="language-bash highlighter-rouge"><pre class="highlight"><code><span class="gp">$ </span>mosquitto_pub -h 127.0.0.1 -t home-assistant/window/contact -m <span class="s2">"OFF"</span>
</code></pre>
</div>

View file

@ -93,7 +93,7 @@
<p>The following sensor types are supported:</p>
<h5>MySensors version 1.4 and higher</h5>
<h4>MySensors version 1.4 and higher</h4>
<table>
<thead>
@ -118,7 +118,7 @@
</tbody>
</table>
<h5>MySensors version 1.5 and higher</h5>
<h4>MySensors version 1.5 and higher</h4>
<table>
<thead>
@ -155,8 +155,7 @@
<h3><a class="title-link" name="example-sketch" href="#example-sketch"></a> Example sketch</h3>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment">/**
<div class="language-cpp highlighter-rouge"><pre class="highlight"><code><span class="cm">/**
* Documentation: http://www.mysensors.org
* Support Forum: http://forum.mysensors.org
*
@ -164,43 +163,42 @@
*/</span>
<span class="preprocessor">#include</span> <span class="include">&lt;MySensor.h&gt;</span>
<span class="preprocessor">#include</span> <span class="include">&lt;SPI.h&gt;</span>
<span class="preprocessor">#include</span> <span class="include">&lt;Bounce2.h&gt;</span>
<span class="cp">#include &lt;MySensor.h&gt;
#include &lt;SPI.h&gt;
#include &lt;Bounce2.h&gt;
</span>
<span class="cp">#define SN "BinarySensor"
#define SV "1.0"
#define CHILD_ID 1
#define BUTTON_PIN 3 // Arduino Digital I/O pin for button/reed switch.
</span>
<span class="n">MySensor</span> <span class="n">gw</span><span class="p">;</span>
<span class="n">Bounce</span> <span class="n">debouncer</span> <span class="o">=</span> <span class="n">Bounce</span><span class="p">();</span>
<span class="n">MyMessage</span> <span class="n">msg</span><span class="p">(</span><span class="n">CHILD_ID</span><span class="p">,</span> <span class="n">V_TRIPPED</span><span class="p">);</span>
<span class="preprocessor">#define</span> SN <span class="string"><span class="delimiter">&quot;</span><span class="content">BinarySensor</span><span class="delimiter">&quot;</span></span>
<span class="preprocessor">#define</span> SV <span class="string"><span class="delimiter">&quot;</span><span class="content">1.0</span><span class="delimiter">&quot;</span></span>
<span class="preprocessor">#define</span> CHILD_ID <span class="integer">1</span>
<span class="preprocessor">#define</span> BUTTON_PIN <span class="integer">3</span> <span class="comment">// Arduino Digital I/O pin for button/reed switch.</span>
<span class="kt">void</span> <span class="nf">setup</span><span class="p">()</span>
<span class="p">{</span>
<span class="n">gw</span><span class="p">.</span><span class="n">begin</span><span class="p">();</span>
<span class="n">gw</span><span class="p">.</span><span class="n">sendSketchInfo</span><span class="p">(</span><span class="n">SN</span><span class="p">,</span> <span class="n">SV</span><span class="p">);</span>
<span class="c1">// Setup the button.
</span> <span class="n">pinMode</span><span class="p">(</span><span class="n">BUTTON_PIN</span><span class="p">,</span> <span class="n">INPUT_PULLUP</span><span class="p">);</span>
<span class="c1">// After setting up the button, setup debouncer.
</span> <span class="n">debouncer</span><span class="p">.</span><span class="n">attach</span><span class="p">(</span><span class="n">BUTTON_PIN</span><span class="p">);</span>
<span class="n">debouncer</span><span class="p">.</span><span class="n">interval</span><span class="p">(</span><span class="mi">5</span><span class="p">);</span>
<span class="n">gw</span><span class="p">.</span><span class="n">present</span><span class="p">(</span><span class="n">CHILD_ID</span><span class="p">,</span> <span class="n">S_DOOR</span><span class="p">);</span>
<span class="n">gw</span><span class="p">.</span><span class="n">send</span><span class="p">(</span><span class="n">msg</span><span class="p">.</span><span class="n">set</span><span class="p">(</span><span class="mi">0</span><span class="p">));</span>
<span class="p">}</span>
MySensor gw;
Bounce debouncer = Bounce();
MyMessage msg(CHILD_ID, V_TRIPPED);
<span class="directive">void</span> setup()
{
gw.begin();
gw.sendSketchInfo(SN, SV);
<span class="comment">// Setup the button.</span>
pinMode(BUTTON_PIN, INPUT_PULLUP);
<span class="comment">// After setting up the button, setup debouncer.</span>
debouncer.attach(BUTTON_PIN);
debouncer.interval(<span class="integer">5</span>);
gw.present(CHILD_ID, S_DOOR);
gw.send(msg.set(<span class="integer">0</span>));
}
<span class="directive">void</span> loop()
{
<span class="keyword">if</span> (debouncer.update()) {
<span class="comment">// Get the update value.</span>
<span class="predefined-type">int</span> value = debouncer.read();
<span class="comment">// Send in the new value.</span>
gw.send(msg.set(value == LOW ? <span class="integer">1</span> : <span class="integer">0</span>));
}
}
</pre></div>
</div>
<span class="kt">void</span> <span class="nf">loop</span><span class="p">()</span>
<span class="p">{</span>
<span class="k">if</span> <span class="p">(</span><span class="n">debouncer</span><span class="p">.</span><span class="n">update</span><span class="p">())</span> <span class="p">{</span>
<span class="c1">// Get the update value.
</span> <span class="kt">int</span> <span class="n">value</span> <span class="o">=</span> <span class="n">debouncer</span><span class="p">.</span><span class="n">read</span><span class="p">();</span>
<span class="c1">// Send in the new value.
</span> <span class="n">gw</span><span class="p">.</span><span class="n">send</span><span class="p">(</span><span class="n">msg</span><span class="p">.</span><span class="n">set</span><span class="p">(</span><span class="n">value</span> <span class="o">==</span> <span class="n">LOW</span> <span class="o">?</span> <span class="mi">1</span> <span class="o">:</span> <span class="mi">0</span><span class="p">));</span>
<span class="p">}</span>
<span class="p">}</span>
</code></pre>
</div>

View file

@ -89,26 +89,24 @@
<hr class="divider">
<p>The <code>nest</code> binary sensor platform let you monitor various states of a thermostat from <a href="https://nest.com">Nest</a>.</p>
<p>The <code class="highlighter-rouge">nest</code> binary sensor platform let you monitor various states of a thermostat from <a href="https://nest.com">Nest</a>.</p>
<p>To set it up, add the following information to your <code>configuration.yaml</code> file:</p>
<p>To set it up, add the following information to your <code class="highlighter-rouge">configuration.yaml</code> file:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="key">binary_sensor</span>:
<span class="key">platform</span>: <span class="string"><span class="content">nest</span></span>
<span class="key">monitored_conditions</span>:
- <span class="string"><span class="content">'fan'</span></span>
- <span class="string"><span class="content">'hvac_ac_state'</span></span>
- <span class="string"><span class="content">'hvac_heater_state'</span></span>
- <span class="string"><span class="content">'hvac_aux_heater_state'</span></span>
- <span class="string"><span class="content">'hvac_heat_x2_state'</span></span>
- <span class="string"><span class="content">'hvac_heat_x3_state'</span></span>
- <span class="string"><span class="content">'hvac_alt_heat_state'</span></span>
- <span class="string"><span class="content">'hvac_alt_heat_x2_state'</span></span>
- <span class="string"><span class="content">'hvac_emer_heat_state'</span></span>
- <span class="string"><span class="content">'online'</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="s">binary_sensor</span><span class="pi">:</span>
<span class="s">platform</span><span class="pi">:</span> <span class="s">nest</span>
<span class="s">monitored_conditions</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s1">'</span><span class="s">fan'</span>
<span class="pi">-</span> <span class="s1">'</span><span class="s">hvac_ac_state'</span>
<span class="pi">-</span> <span class="s1">'</span><span class="s">hvac_heater_state'</span>
<span class="pi">-</span> <span class="s1">'</span><span class="s">hvac_aux_heater_state'</span>
<span class="pi">-</span> <span class="s1">'</span><span class="s">hvac_heat_x2_state'</span>
<span class="pi">-</span> <span class="s1">'</span><span class="s">hvac_heat_x3_state'</span>
<span class="pi">-</span> <span class="s1">'</span><span class="s">hvac_alt_heat_state'</span>
<span class="pi">-</span> <span class="s1">'</span><span class="s">hvac_alt_heat_x2_state'</span>
<span class="pi">-</span> <span class="s1">'</span><span class="s">hvac_emer_heat_state'</span>
<span class="pi">-</span> <span class="s1">'</span><span class="s">online'</span>
</code></pre>
</div>
<p>Configuration variables:</p>

View file

@ -89,48 +89,44 @@
<hr class="divider">
<p>The <code>nx584</code> platform provides integration with GE, Caddx, Interlogix (and other brands) alarm panels that support the NX584 interface module (or have it built in). Supported panels include NX4/6/8/8E. Actual integration is done through <a href="http://github.com/kk7ds/pynx584">pynx584</a> which is required for this to work.</p>
<p>The <code class="highlighter-rouge">nx584</code> platform provides integration with GE, Caddx, Interlogix (and other brands) alarm panels that support the NX584 interface module (or have it built in). Supported panels include NX4/6/8/8E. Actual integration is done through <a href="http://github.com/kk7ds/pynx584">pynx584</a> which is required for this to work.</p>
<p>Enabling this sensor platform exposes all of your zones as binary sensors, which provides visibility through the UI as well as the ability to trigger automation actions instantly when something happens like a door opening, or a motion sensor trigger.</p>
<p>To enable this, add the following lines to your <code>configuration.yaml</code>:</p>
<p>To enable this, add the following lines to your <code class="highlighter-rouge">configuration.yaml</code>:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="key">binary_sensor</span>:
<span class="key">platform</span>: <span class="string"><span class="content">nx584</span></span>
<span class="key">host</span>: <span class="string"><span class="content">ADDRESS</span></span>
<span class="key">exclude_zones</span>:
- <span class="string"><span class="content">ZONE ...</span></span>
<span class="key">zone_types</span>:
<span class="key">ZONE</span>: <span class="string"><span class="content">TYPE</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="s">binary_sensor</span><span class="pi">:</span>
<span class="s">platform</span><span class="pi">:</span> <span class="s">nx584</span>
<span class="s">host</span><span class="pi">:</span> <span class="s">ADDRESS</span>
<span class="s">exclude_zones</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">ZONE ...</span>
<span class="s">zone_types</span><span class="pi">:</span>
<span class="s">ZONE</span><span class="pi">:</span> <span class="s">TYPE</span>
</code></pre>
</div>
<p>Configuration variables:</p>
<ul>
<li><strong>host</strong> (<em>Optional</em>): This is the host connection string (host:port) for the nx584 server process. If unset, it is assumed to be <code>localhost:5007</code>, which will work if the server process is running on the same system as home-assistant.</li>
<li><strong>host</strong> (<em>Optional</em>): This is the host connection string (host:port) for the nx584 server process. If unset, it is assumed to be <code class="highlighter-rouge">localhost:5007</code>, which will work if the server process is running on the same system as home-assistant.</li>
<li><strong>exclude_zones</strong> (<em>Optional</em>): This is a list of zone numbers that should be excluded. Use this to avoid exposing a zone that is of no interest, unconnected, etc.</li>
<li><strong>zone_types</strong> (<em>Optional</em>): This is a list of zone numbers mapped to zone types. Use this to designate zones as doors, motion sensors, smoke detectors, etc. The list of available zone types relevant to alarm zones are: <code>opening</code>, <code>motion</code>, <code>gas</code>, <code>smoke</code>, <code>moisture</code>, <code>safety</code>.</li>
<li><strong>zone_types</strong> (<em>Optional</em>): This is a list of zone numbers mapped to zone types. Use this to designate zones as doors, motion sensors, smoke detectors, etc. The list of available zone types relevant to alarm zones are: <code class="highlighter-rouge">opening</code>, <code class="highlighter-rouge">motion</code>, <code class="highlighter-rouge">gas</code>, <code class="highlighter-rouge">smoke</code>, <code class="highlighter-rouge">moisture</code>, <code class="highlighter-rouge">safety</code>.</li>
</ul>
<p>Example configuration:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="key">binary_sensor</span>:
<span class="key">platform</span>: <span class="string"><span class="content">nx584</span></span>
<span class="key">host</span>: <span class="string"><span class="content">192.168.1.10:5007</span></span>
<span class="key">exclude_zones</span>:
- <span class="string"><span class="content">3</span></span>
- <span class="string"><span class="content">5</span></span>
<span class="key">zone_types</span>:
<span class="key">1</span>: <span class="string"><span class="content">opening</span></span>
<span class="key">2</span>: <span class="string"><span class="content">opening</span></span>
<span class="key">4</span>: <span class="string"><span class="content">motion</span></span>
<span class="key">6</span>: <span class="string"><span class="content">moisture</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="s">binary_sensor</span><span class="pi">:</span>
<span class="s">platform</span><span class="pi">:</span> <span class="s">nx584</span>
<span class="s">host</span><span class="pi">:</span> <span class="s">192.168.1.10:5007</span>
<span class="s">exclude_zones</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">3</span>
<span class="pi">-</span> <span class="s">5</span>
<span class="s">zone_types</span><span class="pi">:</span>
<span class="s">1</span><span class="pi">:</span> <span class="s">opening</span>
<span class="s">2</span><span class="pi">:</span> <span class="s">opening</span>
<span class="s">4</span><span class="pi">:</span> <span class="s">motion</span>
<span class="s">6</span><span class="pi">:</span> <span class="s">moisture</span>
</code></pre>
</div>

View file

@ -89,18 +89,16 @@
<hr class="divider">
<p>The <code>OctoPrint</code> binary sensor platform let you monitor if your 3D printer is printing or if there was a printing error.</p>
<p>The <code class="highlighter-rouge">OctoPrint</code> binary sensor platform let you monitor if your 3D printer is printing or if there was a printing error.</p>
<p>To set it up, add the following information to your <code>configuration.yaml</code> file:</p>
<p>To set it up, add the following information to your <code class="highlighter-rouge">configuration.yaml</code> file:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="key">binary_sensor</span>:
<span class="key">platform</span>: <span class="string"><span class="content">octoprint</span></span>
<span class="key">monitored_conditions</span>:
- <span class="string"><span class="content">Printing</span></span>
- <span class="string"><span class="content">Printing Error</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="s">binary_sensor</span><span class="pi">:</span>
<span class="s">platform</span><span class="pi">:</span> <span class="s">octoprint</span>
<span class="s">monitored_conditions</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">Printing</span>
<span class="pi">-</span> <span class="s">Printing Error</span>
</code></pre>
</div>
<p>Configuration variables:</p>

View file

@ -89,51 +89,45 @@
<hr class="divider">
<p>The <code>rest</code> binary sensor platform is consuming a given endpoint which is exposed by a <a href="https://en.wikipedia.org/wiki/Representational_state_transfer">RESTful API</a> of a device, an application, or a web service. The binary sensor has support for GET and POST requests.</p>
<p>The <code class="highlighter-rouge">rest</code> binary sensor platform is consuming a given endpoint which is exposed by a <a href="https://en.wikipedia.org/wiki/Representational_state_transfer">RESTful API</a> of a device, an application, or a web service. The binary sensor has support for GET and POST requests.</p>
<p>The JSON messages can contain different values like <code>1</code>, <code>"1"</code>, <code>TRUE</code>, <code>true</code>, <code>on</code>, or <code>open</code>. If the value is nested then use a <a href="/topics/templating/">template</a>.</p>
<p>The JSON messages can contain different values like <code class="highlighter-rouge">1</code>, <code class="highlighter-rouge">"1"</code>, <code class="highlighter-rouge">TRUE</code>, <code class="highlighter-rouge">true</code>, <code class="highlighter-rouge">on</code>, or <code class="highlighter-rouge">open</code>. If the value is nested then use a <a href="/topics/templating/">template</a>.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>{
<span class="key"><span class="delimiter">&quot;</span><span class="content">name</span><span class="delimiter">&quot;</span></span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">Binary sensor</span><span class="delimiter">&quot;</span></span>,
<span class="key"><span class="delimiter">&quot;</span><span class="content">state</span><span class="delimiter">&quot;</span></span>: {
<span class="key"><span class="delimiter">&quot;</span><span class="content">open</span><span class="delimiter">&quot;</span></span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">true</span><span class="delimiter">&quot;</span></span>,
<span class="key"><span class="delimiter">&quot;</span><span class="content">timestamp</span><span class="delimiter">&quot;</span></span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">2016-06-20 15:42:52.926733</span><span class="delimiter">&quot;</span></span>
}
}
</pre></div>
</div>
<div class="language-json highlighter-rouge"><pre class="highlight"><code><span class="p">{</span><span class="w">
</span><span class="nt">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Binary sensor"</span><span class="p">,</span><span class="w">
</span><span class="nt">"state"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
</span><span class="nt">"open"</span><span class="p">:</span><span class="w"> </span><span class="s2">"true"</span><span class="p">,</span><span class="w">
</span><span class="nt">"timestamp"</span><span class="p">:</span><span class="w"> </span><span class="s2">"2016-06-20 15:42:52.926733"</span><span class="w">
</span><span class="p">}</span><span class="w">
</span><span class="p">}</span><span class="w">
</span></code></pre>
</div>
<p>To enable this sensor, add the following lines to your <code>configuration.yaml</code> file for a GET request:</p>
<p>To enable this sensor, add the following lines to your <code class="highlighter-rouge">configuration.yaml</code> file for a GET request:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">binary_sensor</span>:
<span class="key">platform</span>: <span class="string"><span class="content">rest</span></span>
<span class="key">resource</span>: <span class="string"><span class="content">http://IP_ADDRESS/ENDPOINT</span></span>
<span class="key">method</span>: <span class="string"><span class="content">GET</span></span>
<span class="key">name</span>: <span class="string"><span class="content">REST GET binary sensor</span></span>
<span class="key">sensor_class</span>: <span class="string"><span class="content">opening</span></span>
<span class="key">value_template</span>: <span class="string"><span class="content">'{{ value_json.state }}'</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">binary_sensor</span><span class="pi">:</span>
<span class="s">platform</span><span class="pi">:</span> <span class="s">rest</span>
<span class="s">resource</span><span class="pi">:</span> <span class="s">http://IP_ADDRESS/ENDPOINT</span>
<span class="s">method</span><span class="pi">:</span> <span class="s">GET</span>
<span class="s">name</span><span class="pi">:</span> <span class="s">REST GET binary sensor</span>
<span class="s">sensor_class</span><span class="pi">:</span> <span class="s">opening</span>
<span class="s">value_template</span><span class="pi">:</span> <span class="s1">'</span><span class="s">{{</span><span class="nv"> </span><span class="s">value_json.state</span><span class="nv"> </span><span class="s">}}'</span>
</code></pre>
</div>
<p>or for a POST request:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">binary_sensor</span>:
<span class="key">platform</span>: <span class="string"><span class="content">rest</span></span>
<span class="key">resource</span>: <span class="string"><span class="content">http://IP_ADDRESS/ENDPOINT</span></span>
<span class="key">method</span>: <span class="string"><span class="content">POST</span></span>
<span class="key">name</span>: <span class="string"><span class="content">REST POST binary sensor</span></span>
<span class="key">sensor_class</span>: <span class="string"><span class="content">opening</span></span>
<span class="key">value_template</span>: <span class="string"><span class="content">'{{ value_json.state }}'</span></span>
<span class="key">payload</span>: <span class="string"><span class="content">'{ &quot;device&quot; : &quot;door&quot; }'</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">binary_sensor</span><span class="pi">:</span>
<span class="s">platform</span><span class="pi">:</span> <span class="s">rest</span>
<span class="s">resource</span><span class="pi">:</span> <span class="s">http://IP_ADDRESS/ENDPOINT</span>
<span class="s">method</span><span class="pi">:</span> <span class="s">POST</span>
<span class="s">name</span><span class="pi">:</span> <span class="s">REST POST binary sensor</span>
<span class="s">sensor_class</span><span class="pi">:</span> <span class="s">opening</span>
<span class="s">value_template</span><span class="pi">:</span> <span class="s1">'</span><span class="s">{{</span><span class="nv"> </span><span class="s">value_json.state</span><span class="nv"> </span><span class="s">}}'</span>
<span class="s">payload</span><span class="pi">:</span> <span class="s1">'</span><span class="s">{</span><span class="nv"> </span><span class="s">"device"</span><span class="nv"> </span><span class="s">:</span><span class="nv"> </span><span class="s">"door"</span><span class="nv"> </span><span class="s">}'</span>
</code></pre>
</div>
<p>Configuration variables:</p>

View file

@ -89,22 +89,20 @@
<hr class="divider">
<p>The <code>rpi_gpio</code> binary sensor platform allows you to read sensor values of the GPIOs of your <a href="https://www.raspberrypi.org/">Raspberry Pi</a>.</p>
<p>The <code class="highlighter-rouge">rpi_gpio</code> binary sensor platform allows you to read sensor values of the GPIOs of your <a href="https://www.raspberrypi.org/">Raspberry Pi</a>.</p>
<p>To use your Raspberry Pis GPIO in your installation, add the following to your <code>configuration.yaml</code> file:</p>
<p>To use your Raspberry Pis GPIO in your installation, add the following to your <code class="highlighter-rouge">configuration.yaml</code> file:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">binary_sensor</span>:
<span class="key">platform</span>: <span class="string"><span class="content">rpi_gpio</span></span>
<span class="key">ports</span>:
<span class="key">11</span>: <span class="string"><span class="content">PIR Office</span></span>
<span class="key">12</span>: <span class="string"><span class="content">PIR Bedroom</span></span>
<span class="key">pull_mode</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">UP</span><span class="delimiter">&quot;</span></span>
<span class="key">bouncetime</span>: <span class="string"><span class="content">50</span></span>
<span class="key">invert_logic</span>: <span class="string"><span class="content">false</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">binary_sensor</span><span class="pi">:</span>
<span class="s">platform</span><span class="pi">:</span> <span class="s">rpi_gpio</span>
<span class="s">ports</span><span class="pi">:</span>
<span class="s">11</span><span class="pi">:</span> <span class="s">PIR Office</span>
<span class="s">12</span><span class="pi">:</span> <span class="s">PIR Bedroom</span>
<span class="s">pull_mode</span><span class="pi">:</span> <span class="s2">"</span><span class="s">UP"</span>
<span class="s">bouncetime</span><span class="pi">:</span> <span class="s">50</span>
<span class="s">invert_logic</span><span class="pi">:</span> <span class="s">false</span>
</code></pre>
</div>
<p>Configuration variables:</p>

View file

@ -89,24 +89,22 @@
<hr class="divider">
<p>The TCP Binary Sensor is a type of <a href="/components/sensor.tcp/">TCP Sensor</a> which is either “off” or “on”. In order to use this sensor type, in addition to the configuration for the TCP Sensor, you must supply a <code>value_on</code> value to represent what is returned when the device is turned on.</p>
<p>The TCP Binary Sensor is a type of <a href="/components/sensor.tcp/">TCP Sensor</a> which is either “off” or “on”. In order to use this sensor type, in addition to the configuration for the TCP Sensor, you must supply a <code class="highlighter-rouge">value_on</code> value to represent what is returned when the device is turned on.</p>
<p>To enable this sensor, add the following lines to your <code>configuration.yaml</code>:</p>
<p>To enable this sensor, add the following lines to your <code class="highlighter-rouge">configuration.yaml</code>:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="key">binary_sensor</span>:
<span class="comment"># Example configuration.yaml entry</span>
<span class="key">platform</span>: <span class="string"><span class="content">tcp</span></span>
<span class="key">name</span>: <span class="string"><span class="content">TCP Binary Sensor</span></span>
<span class="key">host</span>: <span class="string"><span class="content">IP_ADDRESS</span></span>
<span class="key">port</span>: <span class="string"><span class="content">PORT</span></span>
<span class="key">payload</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">r State\n</span><span class="delimiter">&quot;</span></span>
<span class="key">value_on</span>: <span class="string"><span class="content">1</span></span>
<span class="key">timeout</span>: <span class="string"><span class="content">5</span></span>
<span class="key">value_template</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">{{ value.split(';')[0] }}</span><span class="delimiter">&quot;</span></span>
<span class="key">buffer_size</span>: <span class="string"><span class="content">BUFFER_SIZE</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="s">binary_sensor</span><span class="pi">:</span>
<span class="c1"># Example configuration.yaml entry</span>
<span class="s">platform</span><span class="pi">:</span> <span class="s">tcp</span>
<span class="s">name</span><span class="pi">:</span> <span class="s">TCP Binary Sensor</span>
<span class="s">host</span><span class="pi">:</span> <span class="s">IP_ADDRESS</span>
<span class="s">port</span><span class="pi">:</span> <span class="s">PORT</span>
<span class="s">payload</span><span class="pi">:</span> <span class="s2">"</span><span class="s">r</span><span class="nv"> </span><span class="s">State</span><span class="se">\n</span><span class="s">"</span>
<span class="s">value_on</span><span class="pi">:</span> <span class="s">1</span>
<span class="s">timeout</span><span class="pi">:</span> <span class="s">5</span>
<span class="s">value_template</span><span class="pi">:</span> <span class="s2">"</span><span class="s">{{</span><span class="nv"> </span><span class="s">value.split(';')[0]</span><span class="nv"> </span><span class="s">}}"</span>
<span class="s">buffer_size</span><span class="pi">:</span> <span class="s">BUFFER_SIZE</span>
</code></pre>
</div>
<p>Configuration options for the a TCP Sensor:</p>

View file

@ -89,20 +89,18 @@
<hr class="divider">
<p>The <code>template</code> platform supports sensors which breaks out the state and <code>state_attributes</code> from other entities.</p>
<p>The <code class="highlighter-rouge">template</code> platform supports sensors which breaks out the state and <code class="highlighter-rouge">state_attributes</code> from other entities.</p>
<p>To enable Template binary sensors in your installation, add the following to your <code>configuration.yaml</code> file:</p>
<p>To enable Template binary sensors in your installation, add the following to your <code class="highlighter-rouge">configuration.yaml</code> file:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">binary_sensor</span>:
- <span class="string"><span class="content">platform: template</span></span>
<span class="key">sensors</span>:
<span class="key">sun_up</span>:
<span class="key">value_template</span>: <span class="string"><span class="content">'{{ states.sun.sun.attributes.elevation &gt; 0}}'</span></span>
<span class="key">friendly_name</span>: <span class="string"><span class="content">'Sun is up'</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">binary_sensor</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">platform</span><span class="pi">:</span> <span class="s">template</span>
<span class="s">sensors</span><span class="pi">:</span>
<span class="s">sun_up</span><span class="pi">:</span>
<span class="s">value_template</span><span class="pi">:</span> <span class="s1">'</span><span class="s">{{</span><span class="nv"> </span><span class="s">states.sun.sun.attributes.elevation</span><span class="nv"> </span><span class="s">&gt;</span><span class="nv"> </span><span class="s">0}}'</span>
<span class="s">friendly_name</span><span class="pi">:</span> <span class="s1">'</span><span class="s">Sun</span><span class="nv"> </span><span class="s">is</span><span class="nv"> </span><span class="s">up'</span>
</code></pre>
</div>
<p>Configuration variables:</p>
@ -124,36 +122,32 @@
<h3><a class="title-link" name="sensor-threshold" href="#sensor-threshold"></a> Sensor threshold</h3>
<p>This example indicates true if a sensor is above a given threshold. Assuming a sensor of <code>furnace</code> that provides a current reading for the fan motor, we can determine if the furnace is running by checking that it is over some threshold:</p>
<p>This example indicates true if a sensor is above a given threshold. Assuming a sensor of <code class="highlighter-rouge">furnace</code> that provides a current reading for the fan motor, we can determine if the furnace is running by checking that it is over some threshold:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="key">sensor</span>:
- <span class="string"><span class="content">platform: template</span></span>
<span class="key">sensors</span>:
<span class="key">furnace_on</span>:
<span class="key">value_template</span>: <span class="string"><span class="content">{{ states.sensor.furnace.state &gt; 2.5 }}</span></span>
<span class="key">friendly_name</span>: <span class="string"><span class="content">'Furnace Running</span></span>
<span class="key">sensor_class</span>: <span class="string"><span class="content">heat</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="s">sensor</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">platform</span><span class="pi">:</span> <span class="s">template</span>
<span class="s">sensors</span><span class="pi">:</span>
<span class="s">furnace_on</span><span class="pi">:</span>
<span class="s">value_template</span><span class="pi">:</span> <span class="pi">{{</span> <span class="nv">states.sensor.furnace.state &gt; 2.5</span> <span class="pi">}}</span>
<span class="s">friendly_name</span><span class="pi">:</span> <span class="s1">'</span><span class="s">Furnace</span><span class="nv"> </span><span class="s">Running</span>
<span class="s">sensor_class:</span><span class="nv"> </span><span class="s">heat</span>
</code></pre>
</div>
<h3><a class="title-link" name="switch-as-sensor" href="#switch-as-sensor"></a> Switch as sensor</h3>
<p>Some movement sensors and door/window sensors will appear as a switch. By using a template binary sensor, the switch can be displayed as a binary sensors. The original switch can then be hidden by <a href="/getting-started/customizing-devices/">customizing.</a></p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="key">binary_sensor</span>:
- <span class="string"><span class="content">platform: template </span></span>
<span class="key">sensors</span>:
<span class="key">movement</span>:
<span class="key">value_template</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">{{ states.switch.movement.state == 'on' }}</span><span class="delimiter">&quot;</span></span>
<span class="key">sensor_class</span>: <span class="string"><span class="content">motion</span></span>
<span class="key">door</span>:
<span class="key">value_template</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">{{ states.switch.door.state == 'on' }}</span><span class="delimiter">&quot;</span></span>
<span class="key">sensor_class</span>: <span class="string"><span class="content">opening</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="s">binary_sensor</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">platform</span><span class="pi">:</span> <span class="s">template</span>
<span class="s">sensors</span><span class="pi">:</span>
<span class="s">movement</span><span class="pi">:</span>
<span class="s">value_template</span><span class="pi">:</span> <span class="s2">"</span><span class="s">{{</span><span class="nv"> </span><span class="s">states.switch.movement.state</span><span class="nv"> </span><span class="s">==</span><span class="nv"> </span><span class="s">'on'</span><span class="nv"> </span><span class="s">}}"</span>
<span class="s">sensor_class</span><span class="pi">:</span> <span class="s">motion</span>
<span class="s">door</span><span class="pi">:</span>
<span class="s">value_template</span><span class="pi">:</span> <span class="s2">"</span><span class="s">{{</span><span class="nv"> </span><span class="s">states.switch.door.state</span><span class="nv"> </span><span class="s">==</span><span class="nv"> </span><span class="s">'on'</span><span class="nv"> </span><span class="s">}}"</span>
<span class="s">sensor_class</span><span class="pi">:</span> <span class="s">opening</span>
</code></pre>
</div>

View file

@ -89,7 +89,7 @@
<hr class="divider">
<p>The <code>vera</code> platform allows you to get data from your <a href="http://getvera.com/">Vera</a> binary sensors from within Home Assistant.</p>
<p>The <code class="highlighter-rouge">vera</code> platform allows you to get data from your <a href="http://getvera.com/">Vera</a> binary sensors from within Home Assistant.</p>
<p>They will be automatically discovered if the vera component is loaded.</p>

View file

@ -89,30 +89,28 @@
<hr class="divider">
<p>A <code>zigbee</code> binary sensor in this context is a device connected to one of the digital input pins on a <a href="http://www.zigbee.org/">ZigBee</a> module. The states reported by such a device are limited to on or off. By default, a binary sensor is considered on when the ZigBee devices digital input pin is held high and considered off when it is held low. This behaviour can be inverted by setting the <code>on_state</code> configuration variable to <code>low</code>.</p>
<p>A <code class="highlighter-rouge">zigbee</code> binary sensor in this context is a device connected to one of the digital input pins on a <a href="http://www.zigbee.org/">ZigBee</a> module. The states reported by such a device are limited to on or off. By default, a binary sensor is considered on when the ZigBee devices digital input pin is held high and considered off when it is held low. This behaviour can be inverted by setting the <code class="highlighter-rouge">on_state</code> configuration variable to <code class="highlighter-rouge">low</code>.</p>
<p>To enable the ZigBee binary sensors in your installation, add the following lines to your <code>configuration.yaml</code>:</p>
<p>To enable the ZigBee binary sensors in your installation, add the following lines to your <code class="highlighter-rouge">configuration.yaml</code>:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">binary_sensor</span>:
- <span class="string"><span class="content">platform: zigbee</span></span>
<span class="key">name</span>: <span class="string"><span class="content">Hallway PIR Sensor</span></span>
<span class="key">pin</span>: <span class="string"><span class="content">0</span></span>
<span class="key">address</span>: <span class="string"><span class="content">0013A20040892FA2</span></span>
<span class="key">on_state</span>: <span class="string"><span class="content">low</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">binary_sensor</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">platform</span><span class="pi">:</span> <span class="s">zigbee</span>
<span class="s">name</span><span class="pi">:</span> <span class="s">Hallway PIR Sensor</span>
<span class="s">pin</span><span class="pi">:</span> <span class="s">0</span>
<span class="s">address</span><span class="pi">:</span> <span class="s">0013A20040892FA2</span>
<span class="s">on_state</span><span class="pi">:</span> <span class="s">low</span>
</code></pre>
</div>
<p>Configuration variables:</p>
<ul>
<li><strong>name</strong> (<em>Required</em>): The name youd like to give the binary sensor in Home Assistant.</li>
<li><strong>platform</strong> (<em>Required</em>): Set to <code>zigbee</code>.</li>
<li><strong>platform</strong> (<em>Required</em>): Set to <code class="highlighter-rouge">zigbee</code>.</li>
<li><strong>pin</strong> (<em>Required</em>): The number identifying which pin to use.</li>
<li><strong>address</strong>: The long 64bit address of the remote ZigBee device whose digital input pin youd like to sample. Do not include this variable if you want to sample the local ZigBee devices pins.</li>
<li><strong>on_state</strong>: Either <code>high</code> (default) or <code>low</code>, depicting whether the binary sensor is considered on when the pin is high or low.</li>
<li><strong>on_state</strong>: Either <code class="highlighter-rouge">high</code> (default) or <code class="highlighter-rouge">low</code>, depicting whether the binary sensor is considered on when the pin is high or low.</li>
</ul>

View file

@ -93,7 +93,7 @@
<p>Knowing that there are only two states allows Home Assistant to represent the sensor better in the frontend.</p>
<p>Most binary sensors support the <code>SENSOR_CLASSES</code> which let you specify the type of your sensor. The following types are supported:</p>
<p>Most binary sensors support the <code class="highlighter-rouge">SENSOR_CLASSES</code> which let you specify the type of your sensor. The following types are supported:</p>
<ul>
<li><strong>None</strong>: Generic on/off</li>

View file

@ -89,22 +89,20 @@
<hr class="divider">
<p>The <code>bloomsky</code> component allows you to access your <a href="http://www.insteon.com/">BloomSky</a> weather stations <a href="/components/sensor.bloomsky">sensors</a> and <a href="/components/camera.bloomsky">camera</a> from Home Assistant.</p>
<p>The <code class="highlighter-rouge">bloomsky</code> component allows you to access your <a href="http://www.insteon.com/">BloomSky</a> weather stations <a href="/components/sensor.bloomsky">sensors</a> and <a href="/components/camera.bloomsky">camera</a> from Home Assistant.</p>
<p>To integrate your BloomSky hub with Home Assistant, add the following section to your <code>configuration.yaml</code> file:</p>
<p>To integrate your BloomSky hub with Home Assistant, add the following section to your <code class="highlighter-rouge">configuration.yaml</code> file:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">bloomsky</span>:
<span class="key">api_key</span>: <span class="string"><span class="content">YOUR_API_KEY</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">bloomsky</span><span class="pi">:</span>
<span class="s">api_key</span><span class="pi">:</span> <span class="s">YOUR_API_KEY</span>
</code></pre>
</div>
<p>Configuration variables:</p>
<ul>
<li><strong>api_key</strong> <em>Required</em>: Your BloomSky API key, obtained from your <a href="https://dashboard.bloomsky.com">BloomSky dashboard</a> (click <code>developers</code> in the bottom left of the screen)</li>
<li><strong>api_key</strong> <em>Required</em>: Your BloomSky API key, obtained from your <a href="https://dashboard.bloomsky.com">BloomSky dashboard</a> (click <code class="highlighter-rouge">developers</code> in the bottom left of the screen)</li>
</ul>

View file

@ -89,18 +89,16 @@
<hr class="divider">
<p>The <code>browser</code> component provides a service to open URLs in the default browser on the host machine.</p>
<p>The <code class="highlighter-rouge">browser</code> component provides a service to open URLs in the default browser on the host machine.</p>
<p>To load this component, add the following lines to your <code>configuration.yaml</code>:</p>
<p>To load this component, add the following lines to your <code class="highlighter-rouge">configuration.yaml</code>:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">browser</span>:
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">browser</span><span class="pi">:</span>
</code></pre>
</div>
<h4><a class="title-link" name="service-browserbrowse_url" href="#service-browserbrowse_url"></a> Service <code>browser/browse_url</code></h4>
<h4><a class="title-link" name="service-browserbrowse_url" href="#service-browserbrowse_url"></a> Service <code class="highlighter-rouge">browser/browse_url</code></h4>
<table>
<thead>
@ -112,7 +110,7 @@
</thead>
<tbody>
<tr>
<td><code>url</code></td>
<td><code class="highlighter-rouge">url</code></td>
<td>no</td>
<td>The url to open</td>
</tr>
@ -123,10 +121,8 @@
<p>To use this service, choose <strong>Call Service</strong> from the <strong>Developer Tools</strong>. Choose the service <em>browser/browse_url</em> from the list of <strong>Available services:</strong> and enter the URL into the <strong>Service Data</strong> field and hit <strong>CALL SERVICE</strong>.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>{<span class="key"><span class="delimiter">&quot;</span><span class="content">url</span><span class="delimiter">&quot;</span></span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">http://www.google.com</span><span class="delimiter">&quot;</span></span>}
</pre></div>
</div>
<div class="language-json highlighter-rouge"><pre class="highlight"><code><span class="p">{</span><span class="nt">"url"</span><span class="p">:</span><span class="w"> </span><span class="s2">"http://www.google.com"</span><span class="p">}</span><span class="w">
</span></code></pre>
</div>
<p>This will open the given URL on the host machine.</p>

View file

@ -89,16 +89,14 @@
<hr class="divider">
<p>The <code>bloomsky</code> camera component allows you to view the current photo created by the camera in the <a href="https://www.bloomsky.com">BloomSky</a> weather station. This can work in concert with <a href="/components/sensor.bloomsky">BloomSky sensors</a>.</p>
<p>The <code class="highlighter-rouge">bloomsky</code> camera component allows you to view the current photo created by the camera in the <a href="https://www.bloomsky.com">BloomSky</a> weather station. This can work in concert with <a href="/components/sensor.bloomsky">BloomSky sensors</a>.</p>
<p>To enable this camera in your installation, set up the <a href="/components/bloomsky">BloomSky component</a> with your API key and add the following to your <code>configuration.yaml</code> file:</p>
<p>To enable this camera in your installation, set up the <a href="/components/bloomsky">BloomSky component</a> with your API key and add the following to your <code class="highlighter-rouge">configuration.yaml</code> file:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">camera</span>:
<span class="key">platform</span>: <span class="string"><span class="content">bloomsky</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">camera</span><span class="pi">:</span>
<span class="s">platform</span><span class="pi">:</span> <span class="s">bloomsky</span>
</code></pre>
</div>

View file

@ -89,24 +89,22 @@
<hr class="divider">
<p>The <code>ffmpeg</code> platform allows you to use every video feed with <a href="http://www.ffmpeg.org/">FFmpeg</a> as camera in Home Assistant.</p>
<p>The <code class="highlighter-rouge">ffmpeg</code> platform allows you to use every video feed with <a href="http://www.ffmpeg.org/">FFmpeg</a> as camera in Home Assistant.</p>
<p class="note">
You need a ffmpeg binary in your system path. On debain 8 you can install it from backports. If you want HW support on raspberry you need self build from source. Windows binary are avilable on ffmpeg homepage.
</p>
<p>To enable your FFmpeg feed in your installation, add the following to your <code>configuration.yaml</code> file:</p>
<p>To enable your FFmpeg feed in your installation, add the following to your <code class="highlighter-rouge">configuration.yaml</code> file:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">camera</span>:
- <span class="string"><span class="content">platform: ffmpeg</span></span>
<span class="key">input</span>: <span class="string"><span class="content">FFMPEG_SUPPORTED_INPUT</span></span>
<span class="key">name</span>: <span class="string"><span class="content">FFmpeg</span></span>
<span class="key">ffmpeg_bin</span>: <span class="string"><span class="content">/usr/bin/ffmpeg</span></span>
<span class="key">extra_arguments</span>: <span class="string"><span class="content">-q:v 2</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">camera</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">platform</span><span class="pi">:</span> <span class="s">ffmpeg</span>
<span class="s">input</span><span class="pi">:</span> <span class="s">FFMPEG_SUPPORTED_INPUT</span>
<span class="s">name</span><span class="pi">:</span> <span class="s">FFmpeg</span>
<span class="s">ffmpeg_bin</span><span class="pi">:</span> <span class="s">/usr/bin/ffmpeg</span>
<span class="s">extra_arguments</span><span class="pi">:</span> <span class="s">-q:v 2</span>
</code></pre>
</div>
<p>Configuration variables:</p>
@ -120,7 +118,7 @@ You need a ffmpeg binary in your system path. On debain 8 you can install it fro
<h3><a class="title-link" name="image-quality" href="#image-quality"></a> Image quality</h3>
<p>You can control the <code>image quality</code> with <a href="https://www.ffmpeg.org/ffmpeg-codecs.html#jpeg2000"><code>extra_arguments</code></a> <code>-q:v 2-32</code> or with lossless option <code>-pred 1</code>.</p>
<p>You can control the <code class="highlighter-rouge">image quality</code> with <a href="https://www.ffmpeg.org/ffmpeg-codecs.html#jpeg2000"><code class="highlighter-rouge">extra_arguments</code></a> <code class="highlighter-rouge">-q:v 2-32</code> or with lossless option <code class="highlighter-rouge">-pred 1</code>.</p>

View file

@ -89,21 +89,19 @@
<hr class="divider">
<p>The <code>foscam</code> platform allows you to watch the live stream of your <a href="http://www.foscam.com/">Foscam</a> IP camera in Home Assistant.</p>
<p>The <code class="highlighter-rouge">foscam</code> platform allows you to watch the live stream of your <a href="http://www.foscam.com/">Foscam</a> IP camera in Home Assistant.</p>
<p>To enable your Foscam IP camera in your installation, add the following to your <code>configuration.yaml</code> file:</p>
<p>To enable your Foscam IP camera in your installation, add the following to your <code class="highlighter-rouge">configuration.yaml</code> file:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">camera</span>:
<span class="key">platform</span>: <span class="string"><span class="content">foscam</span></span>
<span class="key">ip</span>: <span class="string"><span class="content">IP_ADDRESS</span></span>
<span class="key">name</span>: <span class="string"><span class="content">Door Camera</span></span>
<span class="key">port</span>: <span class="string"><span class="content">88</span></span>
<span class="key">username</span>: <span class="string"><span class="content">USERNAME</span></span>
<span class="key">password</span>: <span class="string"><span class="content">PASSWORD</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">camera</span><span class="pi">:</span>
<span class="s">platform</span><span class="pi">:</span> <span class="s">foscam</span>
<span class="s">ip</span><span class="pi">:</span> <span class="s">IP_ADDRESS</span>
<span class="s">name</span><span class="pi">:</span> <span class="s">Door Camera</span>
<span class="s">port</span><span class="pi">:</span> <span class="s">88</span>
<span class="s">username</span><span class="pi">:</span> <span class="s">USERNAME</span>
<span class="s">password</span><span class="pi">:</span> <span class="s">PASSWORD</span>
</code></pre>
</div>
<p>Configuration variables:</p>

View file

@ -89,22 +89,20 @@
<hr class="divider">
<p>The <code>generic</code> camera platform allows you to integrate any IP camera into Home Assistant. It supports fetching images from a url with optional HTTP authentication.</p>
<p>The <code class="highlighter-rouge">generic</code> camera platform allows you to integrate any IP camera into Home Assistant. It supports fetching images from a url with optional HTTP authentication.</p>
<p>Home Assistant will serve the images via its server, making it possible to view your IP cameras while outside of your network. The endpoint is <code>/api/camera_proxy/camera.[name]?time=[timestamp]</code>.</p>
<p>Home Assistant will serve the images via its server, making it possible to view your IP cameras while outside of your network. The endpoint is <code class="highlighter-rouge">/api/camera_proxy/camera.[name]?time=[timestamp]</code>.</p>
<p>To enable this camera in your installation, add the following to your <code>configuration.yaml</code> file:</p>
<p>To enable this camera in your installation, add the following to your <code class="highlighter-rouge">configuration.yaml</code> file:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">camera</span>:
<span class="key">platform</span>: <span class="string"><span class="content">generic</span></span>
<span class="key">still_image_url</span>: <span class="string"><span class="content">http://194.218.96.92/jpg/image.jpg</span></span>
<span class="key">name</span>: <span class="string"><span class="content">my sample camera</span></span>
<span class="key">username</span>: <span class="string"><span class="content">USERNAME</span></span>
<span class="key">password</span>: <span class="string"><span class="content">PASSWORD</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">camera</span><span class="pi">:</span>
<span class="s">platform</span><span class="pi">:</span> <span class="s">generic</span>
<span class="s">still_image_url</span><span class="pi">:</span> <span class="s">http://194.218.96.92/jpg/image.jpg</span>
<span class="s">name</span><span class="pi">:</span> <span class="s">my sample camera</span>
<span class="s">username</span><span class="pi">:</span> <span class="s">USERNAME</span>
<span class="s">password</span><span class="pi">:</span> <span class="s">PASSWORD</span>
</code></pre>
</div>
<p>Configuration variables:</p>

View file

@ -89,20 +89,18 @@
<hr class="divider">
<p>The <code>local_file</code> camera platform allows you to integrate any readable image file from disk into Home Assistant as a camera. If the image is updated on the file system the image displayed in Home Assistant will also be updated.</p>
<p>The <code class="highlighter-rouge">local_file</code> camera platform allows you to integrate any readable image file from disk into Home Assistant as a camera. If the image is updated on the file system the image displayed in Home Assistant will also be updated.</p>
<p>This can for example be used with various camera platforms that save a temporary images locally. It can also be used to display a graph that you render periodically and will then be displayed in Home Assistant.</p>
<p>To enable this camera in your installation, add the following to your <code>configuration.yaml</code> file:</p>
<p>To enable this camera in your installation, add the following to your <code class="highlighter-rouge">configuration.yaml</code> file:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">camera</span>:
<span class="key">platform</span>: <span class="string"><span class="content">local_file</span></span>
<span class="key">name</span>: <span class="string"><span class="content">Local File</span></span>
<span class="key">file_path</span>: <span class="string"><span class="content">/tmp/image.jpg</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">camera</span><span class="pi">:</span>
<span class="s">platform</span><span class="pi">:</span> <span class="s">local_file</span>
<span class="s">name</span><span class="pi">:</span> <span class="s">Local File</span>
<span class="s">file_path</span><span class="pi">:</span> <span class="s">/tmp/image.jpg</span>
</code></pre>
</div>
<p>Configuration variables:</p>
@ -113,7 +111,7 @@
</ul>
<p class="note">
The given <code>file_path</code> must be an existing file because the camera platform setup make a readable check on it.
The given <code class="highlighter-rouge">file_path</code> must be an existing file because the camera platform setup make a readable check on it.
</p>

View file

@ -89,22 +89,20 @@
<hr class="divider">
<p>The <code>mjpeg</code> camera platform allows you to integrate IP cameras which are capable to stream their video with MJPEG into Home Assistant.</p>
<p>The <code class="highlighter-rouge">mjpeg</code> camera platform allows you to integrate IP cameras which are capable to stream their video with MJPEG into Home Assistant.</p>
<p>Home Assistant will serve the images via its server, making it possible to view your IP cameras while outside of your network. The endpoint is <code>/api/camera_proxy/camera.[name]?time=[timestamp]</code>.</p>
<p>Home Assistant will serve the images via its server, making it possible to view your IP cameras while outside of your network. The endpoint is <code class="highlighter-rouge">/api/camera_proxy/camera.[name]?time=[timestamp]</code>.</p>
<p>To enable this camera in your installation, add the following to your <code>configuration.yaml</code> file:</p>
<p>To enable this camera in your installation, add the following to your <code class="highlighter-rouge">configuration.yaml</code> file:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">camera</span>:
<span class="key">platform</span>: <span class="string"><span class="content">mjpeg</span></span>
<span class="key">mjpeg_url</span>: <span class="string"><span class="content">http://192.168.1.92/mjpeg</span></span>
<span class="key">name</span>: <span class="string"><span class="content">my sample camera</span></span>
<span class="key">username</span>: <span class="string"><span class="content">USERNAME</span></span>
<span class="key">password</span>: <span class="string"><span class="content">PASSWORD</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">camera</span><span class="pi">:</span>
<span class="s">platform</span><span class="pi">:</span> <span class="s">mjpeg</span>
<span class="s">mjpeg_url</span><span class="pi">:</span> <span class="s">http://192.168.1.92/mjpeg</span>
<span class="s">name</span><span class="pi">:</span> <span class="s">my sample camera</span>
<span class="s">username</span><span class="pi">:</span> <span class="s">USERNAME</span>
<span class="s">password</span><span class="pi">:</span> <span class="s">PASSWORD</span>
</code></pre>
</div>
<p>Configuration variables:</p>

View file

@ -89,20 +89,18 @@
<hr class="divider">
<p>The <code>netatmo</code> camera platform is consuming the information provided by a <a href="https://www.netatmo.com">Netatmo Welcome</a> camera. This component allows you to view the current photo created by the Camera.</p>
<p>The <code class="highlighter-rouge">netatmo</code> camera platform is consuming the information provided by a <a href="https://www.netatmo.com">Netatmo Welcome</a> camera. This component allows you to view the current photo created by the Camera.</p>
<p>To enable the Netatmo camera, add the following lines to your <code>configuration.yaml</code>:</p>
<p>To enable the Netatmo camera, add the following lines to your <code class="highlighter-rouge">configuration.yaml</code>:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">camera</span>:
<span class="key">platform</span>: <span class="string"><span class="content">netatmo</span></span>
<span class="key">home</span>: <span class="string"><span class="content">home_name</span></span>
<span class="key">cameras</span>:
- <span class="string"><span class="content">camera_name1</span></span>
- <span class="string"><span class="content">camera_name2</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">camera</span><span class="pi">:</span>
<span class="s">platform</span><span class="pi">:</span> <span class="s">netatmo</span>
<span class="s">home</span><span class="pi">:</span> <span class="s">home_name</span>
<span class="s">cameras</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">camera_name1</span>
<span class="pi">-</span> <span class="s">camera_name2</span>
</code></pre>
</div>
<p>Configuration variables:</p>

View file

@ -89,25 +89,23 @@
<hr class="divider">
<p>The <code>rpi</code> platform allows you to integrate the Raspberry Pi camera into Home Assistant. This component uses the application <a href="https://www.raspberrypi.org/documentation/usage/camera/raspicam/raspistill.md"><code>raspistill</code></a> to store the image from camera.</p>
<p>The <code class="highlighter-rouge">rpi</code> platform allows you to integrate the Raspberry Pi camera into Home Assistant. This component uses the application <a href="https://www.raspberrypi.org/documentation/usage/camera/raspicam/raspistill.md"><code class="highlighter-rouge">raspistill</code></a> to store the image from camera.</p>
<p>To enable this camera in your installation, add the following to your <code>configuration.yaml</code> file:</p>
<p>To enable this camera in your installation, add the following to your <code class="highlighter-rouge">configuration.yaml</code> file:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">camera</span>:
<span class="key">platform</span>: <span class="string"><span class="content">rpi_camera</span></span>
<span class="key">name</span>: <span class="string"><span class="content">Raspberry Pi Camera</span></span>
<span class="key">image_width</span>: <span class="string"><span class="content">640</span></span>
<span class="key">image_height</span>: <span class="string"><span class="content">480</span></span>
<span class="key">image_quality</span>: <span class="string"><span class="content">7</span></span>
<span class="key">image_rotation</span>: <span class="string"><span class="content">0</span></span>
<span class="key">timelapse</span>: <span class="string"><span class="content">1000</span></span>
<span class="key">horizontal_flip</span>: <span class="string"><span class="content">0</span></span>
<span class="key">vertical_flip</span>: <span class="string"><span class="content">0</span></span>
<span class="key">file_path</span>: <span class="string"><span class="content">/tmp/image.jpg</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">camera</span><span class="pi">:</span>
<span class="s">platform</span><span class="pi">:</span> <span class="s">rpi_camera</span>
<span class="s">name</span><span class="pi">:</span> <span class="s">Raspberry Pi Camera</span>
<span class="s">image_width</span><span class="pi">:</span> <span class="s">640</span>
<span class="s">image_height</span><span class="pi">:</span> <span class="s">480</span>
<span class="s">image_quality</span><span class="pi">:</span> <span class="s">7</span>
<span class="s">image_rotation</span><span class="pi">:</span> <span class="s">0</span>
<span class="s">timelapse</span><span class="pi">:</span> <span class="s">1000</span>
<span class="s">horizontal_flip</span><span class="pi">:</span> <span class="s">0</span>
<span class="s">vertical_flip</span><span class="pi">:</span> <span class="s">0</span>
<span class="s">file_path</span><span class="pi">:</span> <span class="s">/tmp/image.jpg</span>
</code></pre>
</div>
<p>Configuration variables:</p>
@ -126,12 +124,10 @@
<p>The given <strong>file_path</strong> must be an existing file because the camera platform setup make a writeable check on it.</p>
<p>Ensure that the user who is running Home Assistant is in the video group. Eg. for the user <code>hass</code>:</p>
<p>Ensure that the user who is running Home Assistant is in the video group. Eg. for the user <code class="highlighter-rouge">hass</code>:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>$ sudo usermod -a -G video hass
</pre></div>
</div>
<div class="language-bash highlighter-rouge"><pre class="highlight"><code><span class="gp">$ </span>sudo usermod -a -G video hass
</code></pre>
</div>

View file

@ -89,19 +89,17 @@
<hr class="divider">
<p>The <code>uvc</code> component allows you to integrate <a href="https://www.ubnt.com/unifi-video/unifi-video-camera/">UniFi Video Camera (UVC)</a> into Home Assistant.</p>
<p>The <code class="highlighter-rouge">uvc</code> component allows you to integrate <a href="https://www.ubnt.com/unifi-video/unifi-video-camera/">UniFi Video Camera (UVC)</a> into Home Assistant.</p>
<p>To enable a UVC camera in your installation, add the following to your <code>configuration.yaml</code> file:</p>
<p>To enable a UVC camera in your installation, add the following to your <code class="highlighter-rouge">configuration.yaml</code> file:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">camera</span>:
<span class="key">platform</span>: <span class="string"><span class="content">uvc</span></span>
<span class="key">nvr</span>: <span class="string"><span class="content">IP_ADDRESS</span></span>
<span class="key">port</span>: <span class="string"><span class="content">PORT</span></span>
<span class="key">key</span>: <span class="string"><span class="content">APIKEY</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">camera</span><span class="pi">:</span>
<span class="s">platform</span><span class="pi">:</span> <span class="s">uvc</span>
<span class="s">nvr</span><span class="pi">:</span> <span class="s">IP_ADDRESS</span>
<span class="s">port</span><span class="pi">:</span> <span class="s">PORT</span>
<span class="s">key</span><span class="pi">:</span> <span class="s">APIKEY</span>
</code></pre>
</div>
<p>Configuration variables:</p>

View file

@ -89,15 +89,13 @@
<hr class="divider">
<p>The conversation component can process sentences into commands for Home Assistant. It is currently limited to parsing commands in the format <code>turn &lt;Friendly Name&gt; &lt;on/off&gt;</code>.</p>
<p>The conversation component can process sentences into commands for Home Assistant. It is currently limited to parsing commands in the format <code class="highlighter-rouge">turn &lt;Friendly Name&gt; &lt;on/off&gt;</code>.</p>
<p>To enable the conversion option in your installation, add the following to your <code>configuration.yaml</code> file:</p>
<p>To enable the conversion option in your installation, add the following to your <code class="highlighter-rouge">configuration.yaml</code> file:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">conversation</span>:
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">conversation</span><span class="pi">:</span>
</code></pre>
</div>
<p>When this component is active and you are using a supported browser voice commands will be activated in the frontend. Browse to <a href="/demo/">the demo</a> using Chrome or Chromium to see it in action.</p>

View file

@ -89,32 +89,30 @@
<hr class="divider">
<p>The <code>demo</code> platform allows you to use components which are providing a demo of their implementation. The demo entities are dummies but show you how the acutal platform looks like. This way you can run own demonstration instance like the online <a href="https://home-assistant.io/demo/">Home Assistant demo</a> or <code>hass --demo-mode</code> but combined with your own real/functional platforms.</p>
<p>The <code class="highlighter-rouge">demo</code> platform allows you to use components which are providing a demo of their implementation. The demo entities are dummies but show you how the acutal platform looks like. This way you can run own demonstration instance like the online <a href="https://home-assistant.io/demo/">Home Assistant demo</a> or <code class="highlighter-rouge">hass --demo-mode</code> but combined with your own real/functional platforms.</p>
<p>Available demo platforms:</p>
<ul>
<li><a href="/components/alarm_control_panel/">Alarm control panel</a> (<code>alarm_control_panel</code>)</li>
<li><a href="/components/binary_sensor/">Binary sensor</a> (<code>binary_sensor</code>)</li>
<li><a href="/components/camera/">Camera</a> (<code>camera</code>)</li>
<li><a href="/components/garage_door/">Garage door</a> (<code>garage_door</code>)</li>
<li><a href="/components/light/">Light</a> (<code>light</code>)</li>
<li><a href="/components/lock/">Lock</a> (<code>lock</code>)</li>
<li><a href="/components/notify/">Notification</a> (<code>notify</code>)</li>
<li><a href="/components/rollershutter/">Roller shutter</a> (<code>rollershutter</code>)</li>
<li><a href="/components/sensor/">Sensor</a> (<code>sensor</code>)</li>
<li><a href="/components/switch/">Switch</a> (<code>switch</code>)</li>
<li><a href="/components/thermostat/">Thermostat</a> (<code>thermostat</code>)</li>
<li><a href="/components/alarm_control_panel/">Alarm control panel</a> (<code class="highlighter-rouge">alarm_control_panel</code>)</li>
<li><a href="/components/binary_sensor/">Binary sensor</a> (<code class="highlighter-rouge">binary_sensor</code>)</li>
<li><a href="/components/camera/">Camera</a> (<code class="highlighter-rouge">camera</code>)</li>
<li><a href="/components/garage_door/">Garage door</a> (<code class="highlighter-rouge">garage_door</code>)</li>
<li><a href="/components/light/">Light</a> (<code class="highlighter-rouge">light</code>)</li>
<li><a href="/components/lock/">Lock</a> (<code class="highlighter-rouge">lock</code>)</li>
<li><a href="/components/notify/">Notification</a> (<code class="highlighter-rouge">notify</code>)</li>
<li><a href="/components/rollershutter/">Roller shutter</a> (<code class="highlighter-rouge">rollershutter</code>)</li>
<li><a href="/components/sensor/">Sensor</a> (<code class="highlighter-rouge">sensor</code>)</li>
<li><a href="/components/switch/">Switch</a> (<code class="highlighter-rouge">switch</code>)</li>
<li><a href="/components/thermostat/">Thermostat</a> (<code class="highlighter-rouge">thermostat</code>)</li>
</ul>
<p>To integrate a demo platform in Home Assistant, add the following section to your <code>configuration.yaml</code> file:</p>
<p>To integrate a demo platform in Home Assistant, add the following section to your <code class="highlighter-rouge">configuration.yaml</code> file:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
[<span class="key">component]</span>:
- <span class="string"><span class="content">platform: demo</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="pi">[</span><span class="nv">component</span><span class="pi">]:</span>
<span class="pi">-</span> <span class="s">platform</span><span class="pi">:</span> <span class="s">demo</span>
</code></pre>
</div>
<p>Configuration variables:</p>

View file

@ -89,7 +89,7 @@
<hr class="divider">
<p>Home Assistant has a built-in component called <code>device_sun_light_trigger</code> to help you automate your lights. The component will:</p>
<p>Home Assistant has a built-in component called <code class="highlighter-rouge">device_sun_light_trigger</code> to help you automate your lights. The component will:</p>
<ul>
<li>Fade in the lights when the sun is setting and there are people home</li>
@ -99,17 +99,15 @@
<p>This component requires the components <a href="/components/sun/">sun</a>, <a href="/components/device_tracker/">device_tracker</a> and <a href="/components/light/">light</a> to be enabled.</p>
<p>To enable this component, add the following lines to your <code>configuration.yaml</code> file:</p>
<p>To enable this component, add the following lines to your <code class="highlighter-rouge">configuration.yaml</code> file:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">device_sun_light_trigger</span>:
<span class="key">light_group</span>: <span class="string"><span class="content">group.living_room</span></span>
<span class="key">light_profile</span>: <span class="string"><span class="content">relax</span></span>
<span class="key">device_group</span>: <span class="string"><span class="content">group.my_devices</span></span>
<span class="key">disable_turn_off</span>: <span class="string"><span class="content">1</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">device_sun_light_trigger</span><span class="pi">:</span>
<span class="s">light_group</span><span class="pi">:</span> <span class="s">group.living_room</span>
<span class="s">light_profile</span><span class="pi">:</span> <span class="s">relax</span>
<span class="s">device_group</span><span class="pi">:</span> <span class="s">group.my_devices</span>
<span class="s">disable_turn_off</span><span class="pi">:</span> <span class="s">1</span>
</code></pre>
</div>
<p>Configuration variables:</p>

View file

@ -101,17 +101,15 @@
This device tracker needs telnet to be enabled on the router.
</p>
<p>To use this device tracker in your installation, add the following to your <code>configuration.yaml</code> file:</p>
<p>To use this device tracker in your installation, add the following to your <code class="highlighter-rouge">configuration.yaml</code> file:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">device_tracker</span>:
<span class="key">platform</span>: <span class="string"><span class="content">actiontec</span></span>
<span class="key">host</span>: <span class="string"><span class="content">YOUR_ROUTER_IP</span></span>
<span class="key">username</span>: <span class="string"><span class="content">YOUR_ADMIN_USERNAME</span></span>
<span class="key">password</span>: <span class="string"><span class="content">YOUR_ADMIN_PASSWORD</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">device_tracker</span><span class="pi">:</span>
<span class="s">platform</span><span class="pi">:</span> <span class="s">actiontec</span>
<span class="s">host</span><span class="pi">:</span> <span class="s">YOUR_ROUTER_IP</span>
<span class="s">username</span><span class="pi">:</span> <span class="s">YOUR_ADMIN_USERNAME</span>
<span class="s">password</span><span class="pi">:</span> <span class="s">YOUR_ADMIN_PASSWORD</span>
</code></pre>
</div>
<p>Configuration variables:</p>

View file

@ -101,17 +101,15 @@
This device tracker needs telnet to be enabled on the router.
</p>
<p>To use this device tracker in your installation, add the following to your <code>configuration.yaml</code> file:</p>
<p>To use this device tracker in your installation, add the following to your <code class="highlighter-rouge">configuration.yaml</code> file:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">device_tracker</span>:
<span class="key">platform</span>: <span class="string"><span class="content">aruba</span></span>
<span class="key">host</span>: <span class="string"><span class="content">YOUR_ROUTER_IP</span></span>
<span class="key">username</span>: <span class="string"><span class="content">YOUR_ADMIN_USERNAME</span></span>
<span class="key">password</span>: <span class="string"><span class="content">YOUR_ADMIN_PASSWORD</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">device_tracker</span><span class="pi">:</span>
<span class="s">platform</span><span class="pi">:</span> <span class="s">aruba</span>
<span class="s">host</span><span class="pi">:</span> <span class="s">YOUR_ROUTER_IP</span>
<span class="s">username</span><span class="pi">:</span> <span class="s">YOUR_ADMIN_USERNAME</span>
<span class="s">password</span><span class="pi">:</span> <span class="s">YOUR_ADMIN_PASSWORD</span>
</code></pre>
</div>
<p>Configuration variables:</p>

View file

@ -89,36 +89,34 @@
<hr class="divider">
<p>The <code>asuswrt</code> platform offers presence detection by looking at connected devices to a <a href="http://event.asus.com/2013/nw/ASUSWRT/">ASUSWRT</a> based router.</p>
<p>The <code class="highlighter-rouge">asuswrt</code> platform offers presence detection by looking at connected devices to a <a href="http://event.asus.com/2013/nw/ASUSWRT/">ASUSWRT</a> based router.</p>
<p>To use an ASUSWRT router in your installation, add the following to your <code>configuration.yaml</code> file:</p>
<p>To use an ASUSWRT router in your installation, add the following to your <code class="highlighter-rouge">configuration.yaml</code> file:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">device_tracker</span>:
<span class="key">platform</span>: <span class="string"><span class="content">asuswrt</span></span>
<span class="key">host</span>: <span class="string"><span class="content">YOUR_ROUTER_IP</span></span>
<span class="key">protocol</span>: <span class="string"><span class="content">telnet</span></span>
<span class="key">mode</span>: <span class="string"><span class="content">router</span></span>
<span class="key">username</span>: <span class="string"><span class="content">YOUR_ADMIN_USERNAME</span></span>
<span class="key">password</span>: <span class="string"><span class="content">YOUR_ADMIN_PASSWORD</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">device_tracker</span><span class="pi">:</span>
<span class="s">platform</span><span class="pi">:</span> <span class="s">asuswrt</span>
<span class="s">host</span><span class="pi">:</span> <span class="s">YOUR_ROUTER_IP</span>
<span class="s">protocol</span><span class="pi">:</span> <span class="s">telnet</span>
<span class="s">mode</span><span class="pi">:</span> <span class="s">router</span>
<span class="s">username</span><span class="pi">:</span> <span class="s">YOUR_ADMIN_USERNAME</span>
<span class="s">password</span><span class="pi">:</span> <span class="s">YOUR_ADMIN_PASSWORD</span>
</code></pre>
</div>
<p>Configuration variables:</p>
<ul>
<li><strong>host</strong> (<em>Required</em>): The IP address of your router, eg. 192.168.1.1.</li>
<li><strong>protocol</strong> (<em>Optional</em>): The protocol (<code>ssh</code> or <code>telnet</code>) to use. Defaults to <code>ssh</code>.</li>
<li><strong>mode</strong> (<em>Optional</em>): The operating mode of the router (<code>router</code> or <code>ap</code>). Defaults to <code>router</code>.</li>
<li><strong>protocol</strong> (<em>Optional</em>): The protocol (<code class="highlighter-rouge">ssh</code> or <code class="highlighter-rouge">telnet</code>) to use. Defaults to <code class="highlighter-rouge">ssh</code>.</li>
<li><strong>mode</strong> (<em>Optional</em>): The operating mode of the router (<code class="highlighter-rouge">router</code> or <code class="highlighter-rouge">ap</code>). Defaults to <code class="highlighter-rouge">router</code>.</li>
<li><strong>username</strong> (<em>Required</em>: The username of an user with administrative privileges, usually <em>admin</em>.</li>
<li><strong>password</strong> (<em>Optional</em>): The password for your given admin account (use this if no SSH key is given).</li>
<li><strong>ssh_key</strong> (<em>Optional</em>): The path to your SSH private key file associated with your given admin account (instead of password).</li>
</ul>
<p class="note warning">
You need to enable telnet on your router if you choose to use <code>protocol: telnet</code>.
You need to enable telnet on your router if you choose to use <code class="highlighter-rouge">protocol: telnet</code>.
</p>
<p>See the <a href="/components/device_tracker/">device tracker component page</a> for instructions how to configure the people to be tracked.</p>

View file

@ -89,23 +89,21 @@
<hr class="divider">
<p>This tracker discovers new devices on boot and tracks bluetooth devices periodically based on interval_seconds value. It is not required to pair the devices with each other! <br />
Devices discovered are stored with bt_ as the prefix for device mac addresses in <code>known_devices.yaml</code>.</p>
<p>This tracker discovers new devices on boot and tracks bluetooth devices periodically based on interval_seconds value. It is not required to pair the devices with each other!
Devices discovered are stored with bt_ as the prefix for device mac addresses in <code class="highlighter-rouge">known_devices.yaml</code>.</p>
<p class="note">
Requires PyBluez. If you are on Raspbian, make sure you first install <code>bluetooth</code> and <code>libbluetooth-dev</code> by running <code>sudo apt install bluetooth libbluetooth-dev</code>
Requires PyBluez. If you are on Raspbian, make sure you first install <code class="highlighter-rouge">bluetooth</code> and <code class="highlighter-rouge">libbluetooth-dev</code> by running <code class="highlighter-rouge">sudo apt install bluetooth libbluetooth-dev</code>
</p>
<p>To use the Bluetooth tracker in your installation, add the following to your <code>configuration.yaml</code> file:</p>
<p>To use the Bluetooth tracker in your installation, add the following to your <code class="highlighter-rouge">configuration.yaml</code> file:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="key">device_tracker</span>:
<span class="key">platform</span>: <span class="string"><span class="content">bluetooth_tracker</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="s">device_tracker</span><span class="pi">:</span>
<span class="s">platform</span><span class="pi">:</span> <span class="s">bluetooth_tracker</span>
</code></pre>
</div>
<p>In some cases it can be that your device is not discovered. In that case let your phone scan for BT devices while you restart HA. Just hit Scan on your phone all the time until HA is fully restarted and the device should appear in <code>known_devices.yaml</code>.</p>
<p>In some cases it can be that your device is not discovered. In that case let your phone scan for BT devices while you restart HA. Just hit Scan on your phone all the time until HA is fully restarted and the device should appear in <code class="highlighter-rouge">known_devices.yaml</code>.</p>
<p>For additional configuration variables check the <a href="/components/device_tracker/">Device tracker page</a>.</p>

View file

@ -91,18 +91,16 @@
<p>This platform offers presence detection by looking at connected devices to a <a href="https://en.wikipedia.org/wiki/BT_Home_Hub">BT Home Hub 5</a> based router.</p>
<p>To use a BT Home Hub 5 router in your installation, add the following to your <code>configuration.yaml</code> file:</p>
<p>To use a BT Home Hub 5 router in your installation, add the following to your <code class="highlighter-rouge">configuration.yaml</code> file:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">device_tracker</span>:
<span class="key">platform</span>: <span class="string"><span class="content">bt_home_hub_5</span></span>
<span class="key">host</span>: <span class="string"><span class="content">192.168.1.254</span></span>
<span class="key">interval_seconds</span>: <span class="string"><span class="content">10</span></span>
<span class="key">consider_home</span>: <span class="string"><span class="content">180</span></span>
<span class="key">track_new_devices</span>: <span class="string"><span class="content">yes</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">device_tracker</span><span class="pi">:</span>
<span class="s">platform</span><span class="pi">:</span> <span class="s">bt_home_hub_5</span>
<span class="s">host</span><span class="pi">:</span> <span class="s">192.168.1.254</span>
<span class="s">interval_seconds</span><span class="pi">:</span> <span class="s">10</span>
<span class="s">consider_home</span><span class="pi">:</span> <span class="s">180</span>
<span class="s">track_new_devices</span><span class="pi">:</span> <span class="s">yes</span>
</code></pre>
</div>
<p>Configuration variables:</p>

View file

@ -91,17 +91,15 @@
<p>This platform offers presence detection by looking at connected devices to a <a href="http://www.dd-wrt.com/site/index">DD-WRT</a> based router.</p>
<p>To use a DD-WRT router in your installation, add the following to your <code>configuration.yaml</code> file:</p>
<p>To use a DD-WRT router in your installation, add the following to your <code class="highlighter-rouge">configuration.yaml</code> file:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">device_tracker</span>:
<span class="key">platform</span>: <span class="string"><span class="content">ddwrt</span></span>
<span class="key">host</span>: <span class="string"><span class="content">ROUTER_IP_ADDRESS</span></span>
<span class="key">username</span>: <span class="string"><span class="content">YOUR_ADMIN_USERNAME</span></span>
<span class="key">password</span>: <span class="string"><span class="content">YOUR_ADMIN_PASSWORD</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">device_tracker</span><span class="pi">:</span>
<span class="s">platform</span><span class="pi">:</span> <span class="s">ddwrt</span>
<span class="s">host</span><span class="pi">:</span> <span class="s">ROUTER_IP_ADDRESS</span>
<span class="s">username</span><span class="pi">:</span> <span class="s">YOUR_ADMIN_USERNAME</span>
<span class="s">password</span><span class="pi">:</span> <span class="s">YOUR_ADMIN_PASSWORD</span>
</code></pre>
</div>
<p>Configuration variables:</p>

View file

@ -89,23 +89,21 @@
<hr class="divider">
<p>The <code>fritz</code> platform offers presence detection by looking at connected devices to a <a href="http://avm.de/produkte/fritzbox/">AVM Fritz!Box</a> based router.</p>
<p>The <code class="highlighter-rouge">fritz</code> platform offers presence detection by looking at connected devices to a <a href="http://avm.de/produkte/fritzbox/">AVM Fritz!Box</a> based router.</p>
<p class="note warning">
It might be necessary to install additional packages: <code>$ sudo apt-get install libxslt-dev libxml2-dev python3-lxml</code>
</p>
<p>To use an Fritz!Box router in your installation, add the following to your <code>configuration.yaml</code> file:</p>
<p>To use an Fritz!Box router in your installation, add the following to your <code class="highlighter-rouge">configuration.yaml</code> file:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">device_tracker</span>:
<span class="key">platform</span>: <span class="string"><span class="content">fritz</span></span>
<span class="key">host</span>: <span class="string"><span class="content">YOUR_ROUTER_IP</span></span>
<span class="key">username</span>: <span class="string"><span class="content">YOUR_ADMIN_USERNAME</span></span>
<span class="key">password</span>: <span class="string"><span class="content">YOUR_ADMIN_PASSWORD</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">device_tracker</span><span class="pi">:</span>
<span class="s">platform</span><span class="pi">:</span> <span class="s">fritz</span>
<span class="s">host</span><span class="pi">:</span> <span class="s">YOUR_ROUTER_IP</span>
<span class="s">username</span><span class="pi">:</span> <span class="s">YOUR_ADMIN_USERNAME</span>
<span class="s">password</span><span class="pi">:</span> <span class="s">YOUR_ADMIN_PASSWORD</span>
</code></pre>
</div>
<p>Configuration variables:</p>

View file

@ -89,20 +89,18 @@
<hr class="divider">
<p>The <code>icloud</code> platform allows you to detect presence using the <a href="https://www.icloud.com/">iCloud</a> service. iCloud allows users to track their location on iOS devices.</p>
<p>The <code class="highlighter-rouge">icloud</code> platform allows you to detect presence using the <a href="https://www.icloud.com/">iCloud</a> service. iCloud allows users to track their location on iOS devices.</p>
<p>It does require that your device is registered with “Find My iPhone”.</p>
<p>To integrate iCloud in Home Assistant, add the following section to your <code>configuration.yaml</code> file:</p>
<p>To integrate iCloud in Home Assistant, add the following section to your <code class="highlighter-rouge">configuration.yaml</code> file:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">device_tracker</span>:
<span class="key">platform</span>: <span class="string"><span class="content">icloud</span></span>
<span class="key">username</span>: <span class="string"><span class="content">USERNAME</span></span>
<span class="key">password</span>: <span class="string"><span class="content">PASSWORD</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">device_tracker</span><span class="pi">:</span>
<span class="s">platform</span><span class="pi">:</span> <span class="s">icloud</span>
<span class="s">username</span><span class="pi">:</span> <span class="s">USERNAME</span>
<span class="s">password</span><span class="pi">:</span> <span class="s">PASSWORD</span>
</code></pre>
</div>
<p>Configuration variables:</p>

View file

@ -89,16 +89,14 @@
<hr class="divider">
<p>This platform allows you to detect presence using <a href="https://my.locative.io/">Locative</a>. Locative is an open source app for <a href="https://github.com/LocativeHQ/ios-app">iOS</a> and <a href="https://github.com/LocativeHQ/Locative-Android">Android</a> that allows users to set up a <code>GET</code> or <code>POST</code> request when a geofence is entered or exited. This can be configured with Home Assistant to update your location.</p>
<p>This platform allows you to detect presence using <a href="https://my.locative.io/">Locative</a>. Locative is an open source app for <a href="https://github.com/LocativeHQ/ios-app">iOS</a> and <a href="https://github.com/LocativeHQ/Locative-Android">Android</a> that allows users to set up a <code class="highlighter-rouge">GET</code> or <code class="highlighter-rouge">POST</code> request when a geofence is entered or exited. This can be configured with Home Assistant to update your location.</p>
<p>To integrate Locative in Home Assistant, add the following section to your <code>configuration.yaml</code> file:</p>
<p>To integrate Locative in Home Assistant, add the following section to your <code class="highlighter-rouge">configuration.yaml</code> file:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">device_tracker</span>:
<span class="key">platform</span>: <span class="string"><span class="content">locative</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">device_tracker</span><span class="pi">:</span>
<span class="s">platform</span><span class="pi">:</span> <span class="s">locative</span>
</code></pre>
</div>
<p>Install on your smartphone:</p>
@ -108,7 +106,7 @@
<li><a href="https://itunes.apple.com/us/app/geofancy/id725198453">iOS</a></li>
</ul>
<p>To configure Locative, you must set up the app to send a <code>GET</code> request to your Home Assistant server at <code>http://&lt;ha_server&gt;/api/locative</code>. Make sure to include the API password if you have configured a password in Home Assistant (add <code>?api_password=&lt;password&gt;</code> to the end of the URL). When you enter or exit a geofence, Locative will send a <code>GET</code> request to that URL, updating Home Assistant.</p>
<p>To configure Locative, you must set up the app to send a <code class="highlighter-rouge">GET</code> request to your Home Assistant server at <code class="highlighter-rouge">http://&lt;ha_server&gt;/api/locative</code>. Make sure to include the API password if you have configured a password in Home Assistant (add <code class="highlighter-rouge">?api_password=&lt;password&gt;</code> to the end of the URL). When you enter or exit a geofence, Locative will send a <code class="highlighter-rouge">GET</code> request to that URL, updating Home Assistant.</p>
<p class="img">
<img src="/images/screenshots/locative.png" />
@ -116,7 +114,7 @@
<p>When you enter a geofence, your location name in Home Assistant will be set to the name of the geofence in Locative. When you exit a geofence, your location name in Home Assistant will be set to “not home”.</p>
<p>To use Locative in combination with another device tracker, such as <a href="/components/device_tracker.nmap_scanner/">nmap</a> or <a href="/components/device_tracker.netgear/">Netgear</a>, fill in the <code>mac</code> field to the Locative entry in <code>known_devices.yaml</code> with the MAC address of the device you want to track. The state of the device will be determined by the source that reported last.</p>
<p>To use Locative in combination with another device tracker, such as <a href="/components/device_tracker.nmap_scanner/">nmap</a> or <a href="/components/device_tracker.netgear/">Netgear</a>, fill in the <code class="highlighter-rouge">mac</code> field to the Locative entry in <code class="highlighter-rouge">known_devices.yaml</code> with the MAC address of the device you want to track. The state of the device will be determined by the source that reported last.</p>
</article>

View file

@ -95,23 +95,19 @@
<p>Before this scanner can be used you have to install the luci RPC package on OpenWRT:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>opkg install luci-mod-rpc
</pre></div>
</div>
<div class="language-bash highlighter-rouge"><pre class="highlight"><code>opkg install luci-mod-rpc
</code></pre>
</div>
<p>To use this device tracker in your installation, add the following to your <code>configuration.yaml</code> file:</p>
<p>To use this device tracker in your installation, add the following to your <code class="highlighter-rouge">configuration.yaml</code> file:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">device_tracker</span>:
<span class="key">platform</span>: <span class="string"><span class="content">luci</span></span>
<span class="key">host</span>: <span class="string"><span class="content">ROUTER_IP_ADDRESS</span></span>
<span class="key">username</span>: <span class="string"><span class="content">YOUR_ADMIN_USERNAME</span></span>
<span class="key">password</span>: <span class="string"><span class="content">YOUR_ADMIN_PASSWORD</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">device_tracker</span><span class="pi">:</span>
<span class="s">platform</span><span class="pi">:</span> <span class="s">luci</span>
<span class="s">host</span><span class="pi">:</span> <span class="s">ROUTER_IP_ADDRESS</span>
<span class="s">username</span><span class="pi">:</span> <span class="s">YOUR_ADMIN_USERNAME</span>
<span class="s">password</span><span class="pi">:</span> <span class="s">YOUR_ADMIN_PASSWORD</span>
</code></pre>
</div>
<p>Configuration variables:</p>

View file

@ -89,20 +89,18 @@
<hr class="divider">
<p>The <code>mqtt</code> device tracker platform allows you to detect presence by monitoring an MQTT topic for new locations. To use this platform, you specify a unique topic for each device.</p>
<p>The <code class="highlighter-rouge">mqtt</code> device tracker platform allows you to detect presence by monitoring an MQTT topic for new locations. To use this platform, you specify a unique topic for each device.</p>
<p>To use this device tracker in your installation, add the following to your <code>configuration.yaml</code> file:</p>
<p>To use this device tracker in your installation, add the following to your <code class="highlighter-rouge">configuration.yaml</code> file:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">device_tracker</span>:
<span class="key">platform</span>: <span class="string"><span class="content">mqtt</span></span>
<span class="key">qos</span>: <span class="string"><span class="content">1</span></span>
<span class="key">devices</span>:
<span class="key">paulus_oneplus</span>: <span class="string"><span class="content">/location/paulus</span></span>
<span class="key">annetherese_n4</span>: <span class="string"><span class="content">/location/annetherese</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">device_tracker</span><span class="pi">:</span>
<span class="s">platform</span><span class="pi">:</span> <span class="s">mqtt</span>
<span class="s">qos</span><span class="pi">:</span> <span class="s">1</span>
<span class="s">devices</span><span class="pi">:</span>
<span class="s">paulus_oneplus</span><span class="pi">:</span> <span class="s">/location/paulus</span>
<span class="s">annetherese_n4</span><span class="pi">:</span> <span class="s">/location/annetherese</span>
</code></pre>
</div>
<p>Configuration variables:</p>
@ -114,13 +112,11 @@
<p>Example JSON you can publish to the topic (e.g. via mqtt.publish service):</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>{
<span class="key"><span class="delimiter">&quot;</span><span class="content">topic</span><span class="delimiter">&quot;</span></span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">/location/paulus</span><span class="delimiter">&quot;</span></span>,
<span class="key"><span class="delimiter">&quot;</span><span class="content">payload</span><span class="delimiter">&quot;</span></span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">home</span><span class="delimiter">&quot;</span></span>
}
</pre></div>
</div>
<div class="language-json highlighter-rouge"><pre class="highlight"><code><span class="p">{</span><span class="w">
</span><span class="nt">"topic"</span><span class="p">:</span><span class="w"> </span><span class="s2">"/location/paulus"</span><span class="p">,</span><span class="w">
</span><span class="nt">"payload"</span><span class="p">:</span><span class="w"> </span><span class="s2">"home"</span><span class="w">
</span><span class="p">}</span><span class="w">
</span></code></pre>
</div>

View file

@ -91,18 +91,16 @@
<p>This platform allows you to detect presence by looking at connected devices to a <a href="http://www.netgear.com/">Netgear</a> device.</p>
<p>To use this device tracker in your installation, add the following to your <code>configuration.yaml</code> file:</p>
<p>To use this device tracker in your installation, add the following to your <code class="highlighter-rouge">configuration.yaml</code> file:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">device_tracker</span>:
<span class="key">platform</span>: <span class="string"><span class="content">netgear</span></span>
<span class="key">host</span>: <span class="string"><span class="content">YOUR_ROUTER_IP</span></span>
<span class="key">username</span>: <span class="string"><span class="content">YOUR_ADMIN_USERNAME</span></span>
<span class="key">password</span>: <span class="string"><span class="content">YOUR_ADMIN_PASSWORD</span></span>
<span class="key">port</span>: <span class="string"><span class="content">YOUR_ROUTER_PORT</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">device_tracker</span><span class="pi">:</span>
<span class="s">platform</span><span class="pi">:</span> <span class="s">netgear</span>
<span class="s">host</span><span class="pi">:</span> <span class="s">YOUR_ROUTER_IP</span>
<span class="s">username</span><span class="pi">:</span> <span class="s">YOUR_ADMIN_USERNAME</span>
<span class="s">password</span><span class="pi">:</span> <span class="s">YOUR_ADMIN_PASSWORD</span>
<span class="s">port</span><span class="pi">:</span> <span class="s">YOUR_ROUTER_PORT</span>
</code></pre>
</div>
<p>Configuration variables:</p>

View file

@ -89,20 +89,18 @@
<hr class="divider">
<p>As an alternative to the router-based device tracking, it is possible to directly scan the network for devices by using Nmap. The IP addresses to scan can be specified in any format that Nmap understands, including the network-prefix notation (<code>192.168.1.1/24</code>) and the range notation (<code>192.168.1.1-255</code>).</p>
<p>As an alternative to the router-based device tracking, it is possible to directly scan the network for devices by using Nmap. The IP addresses to scan can be specified in any format that Nmap understands, including the network-prefix notation (<code class="highlighter-rouge">192.168.1.1/24</code>) and the range notation (<code class="highlighter-rouge">192.168.1.1-255</code>).</p>
<p>If youre on Debian or Ubuntu, you might have to install the packages for <code>arp</code> and <code>nmap</code>. Do so by running <code>apt-get install net-tools nmap</code>. On a Fedora host run <code>sudo dnf -y install nmap</code>.</p>
<p>If youre on Debian or Ubuntu, you might have to install the packages for <code class="highlighter-rouge">arp</code> and <code class="highlighter-rouge">nmap</code>. Do so by running <code class="highlighter-rouge">apt-get install net-tools nmap</code>. On a Fedora host run <code class="highlighter-rouge">sudo dnf -y install nmap</code>.</p>
<p>To use this device tracker in your installation, add the following to your <code>configuration.yaml</code> file:</p>
<p>To use this device tracker in your installation, add the following to your <code class="highlighter-rouge">configuration.yaml</code> file:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">device_tracker</span>:
<span class="key">platform</span>: <span class="string"><span class="content">nmap_tracker</span></span>
<span class="key">hosts</span>: <span class="string"><span class="content">192.168.1.1/24</span></span>
<span class="key">home_interval</span>: <span class="string"><span class="content">10</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">device_tracker</span><span class="pi">:</span>
<span class="s">platform</span><span class="pi">:</span> <span class="s">nmap_tracker</span>
<span class="s">hosts</span><span class="pi">:</span> <span class="s">192.168.1.1/24</span>
<span class="s">home_interval</span><span class="pi">:</span> <span class="s">10</span>
</code></pre>
</div>
<p>Configuration variables:</p>

View file

@ -93,15 +93,13 @@
<p>This component requires <a href="/components/mqtt/">the MQTT component</a> to be set up and works very well together with <a href="/components/zone/">the zone component</a>.</p>
<p>To integrate Owntracks in Home Assistant, add the following section to your <code>configuration.yaml</code> file:</p>
<p>To integrate Owntracks in Home Assistant, add the following section to your <code class="highlighter-rouge">configuration.yaml</code> file:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">device_tracker</span>:
<span class="key">platform</span>: <span class="string"><span class="content">owntracks</span></span>
<span class="key">max_gps_accuracy</span>: <span class="string"><span class="content">200</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">device_tracker</span><span class="pi">:</span>
<span class="s">platform</span><span class="pi">:</span> <span class="s">owntracks</span>
<span class="s">max_gps_accuracy</span><span class="pi">:</span> <span class="s">200</span>
</code></pre>
</div>
<p>Configuration variables:</p>
@ -111,37 +109,37 @@
</ul>
<h3><a class="title-link" name="using-owntracks-with-other-device-trackers" href="#using-owntracks-with-other-device-trackers"></a> Using Owntracks with other device trackers</h3>
<p>Owntracks can also be used with other device trackers, such as <a href="/components/device_tracker.nmap_scanner/">Nmap</a> or <a href="/components/device_tracker.netgear/">Netgear</a>. To do this, fill in the <code>mac</code> field to the Owntracks entry in <code>known_devices.yaml</code> with the MAC address of the device you want to track. This way the state of the device will be determined by the source that reported last. The naming convention for known device list is <code>&lt;username&gt;_&lt;device-id&gt;</code> and could be set in app configuration. More details about this config can found in <a href="/components/device_tracker/">device tracker</a>.</p>
<p>Owntracks can also be used with other device trackers, such as <a href="/components/device_tracker.nmap_scanner/">Nmap</a> or <a href="/components/device_tracker.netgear/">Netgear</a>. To do this, fill in the <code class="highlighter-rouge">mac</code> field to the Owntracks entry in <code class="highlighter-rouge">known_devices.yaml</code> with the MAC address of the device you want to track. This way the state of the device will be determined by the source that reported last. The naming convention for known device list is <code class="highlighter-rouge">&lt;username&gt;_&lt;device-id&gt;</code> and could be set in app configuration. More details about this config can found in <a href="/components/device_tracker/">device tracker</a>.</p>
<h3><a class="title-link" name="using-owntracks-regions" href="#using-owntracks-regions"></a> Using Owntracks regions</h3>
<p>Owntracks can track regions, and send region entry and exit information to Home Assistant(HA). You set up a region in the Owntracks app which you should name the same as your HA Zone, and then make sure to turn on the <code>share</code> option for the region in the owntracks app. Please see the <a href="http://owntracks.org/booklet/guide/waypoints/">owntracks documentation</a></p>
<p>Owntracks can track regions, and send region entry and exit information to Home Assistant(HA). You set up a region in the Owntracks app which you should name the same as your HA Zone, and then make sure to turn on the <code class="highlighter-rouge">share</code> option for the region in the owntracks app. Please see the <a href="http://owntracks.org/booklet/guide/waypoints/">owntracks documentation</a></p>
<p>Home Assistant will use the enter and leave messages to set your zone location. Your location will be set to the center of zone when you enter. Location updates from OwnTracks will be ignored while you are inside a zone.</p>
<p>When you exit a zone, Home Assistant will start using location updates to track you again. To make sure that Home Assistant correctly exits a zone (which it calculates based on your GPS co-ordinates), you may want to set your Zone radius in HA to be slightly smaller that the Owntracks region radius.</p>
<h3><a class="title-link" name="using-owntracks-regions---forcing-owntracks-to-update-using" href="#using-owntracks-regions---forcing-owntracks-to-update-using"></a> Using Owntracks regions - forcing Owntracks to update using iBeacons</h3>
<p>When run in the usual <code>significant changes mode</code> (which is kind to your phone battery), Owntracks sometimes doesnt update your location as quickly as youd like when you arrive at a zone. This can be annoying if you want to trigger an automation when you get home. You can improve the situation using iBeacons.</p>
<p>When run in the usual <code class="highlighter-rouge">significant changes mode</code> (which is kind to your phone battery), Owntracks sometimes doesnt update your location as quickly as youd like when you arrive at a zone. This can be annoying if you want to trigger an automation when you get home. You can improve the situation using iBeacons.</p>
<p>iBeacons are simple bluetooth devices that send out an “Im here” message. They are supported by IOS and some Android devices. Owntracks explain more <a href="http://owntracks.org/booklet/guide/beacons/">here</a></p>
<p>When you enter an iBeacon region, Owntracks will send a <code>region enter</code> message to HA as described above. So if you want to have an event triggered when you arrive home, you can put an iBeacon outside your front door. If you set up an OwnTracks iBeacon region called <code>home</code> then getting close to the beacon will trigger an update to HA that will set your zone to be <code>home</code>.</p>
<p>When you enter an iBeacon region, Owntracks will send a <code class="highlighter-rouge">region enter</code> message to HA as described above. So if you want to have an event triggered when you arrive home, you can put an iBeacon outside your front door. If you set up an OwnTracks iBeacon region called <code class="highlighter-rouge">home</code> then getting close to the beacon will trigger an update to HA that will set your zone to be <code class="highlighter-rouge">home</code>.</p>
<p>When you exit an iBeacon region HA will switch back to using GPS to determine your location. Depending on the size of your zone, and the accuracy of your GPS location this may change your HA zone.</p>
<p>Sometimes Owntracks will lose connection with an iBeacon for a few seconds. If you name your beacon starting with <code>-</code> Owntracks will wait longer before deciding it has exited the beacon zone. HA will ignore the <code>-</code> when it matches the Owntracks region with Zones. So if you call your Owntracks region <code>-home</code> then HA will recognise it as <code>home</code>, but you will have a more stable iBeacon connection.</p>
<p>Sometimes Owntracks will lose connection with an iBeacon for a few seconds. If you name your beacon starting with <code class="highlighter-rouge">-</code> Owntracks will wait longer before deciding it has exited the beacon zone. HA will ignore the <code class="highlighter-rouge">-</code> when it matches the Owntracks region with Zones. So if you call your Owntracks region <code class="highlighter-rouge">-home</code> then HA will recognise it as <code class="highlighter-rouge">home</code>, but you will have a more stable iBeacon connection.</p>
<h3><a class="title-link" name="using-owntracks-ibeacons-to-track-devices" href="#using-owntracks-ibeacons-to-track-devices"></a> Using Owntracks iBeacons to track devices</h3>
<p>iBeacons dont need to be stationary. You could put one on your key ring, or in your car.</p>
<p>When your phone sees a mobile iBeacon that it knows about, it will tell HA the location of that iBeacon. If your phone moves while you are connected to the iBeacon, HA will update the location of the iBeacon. But when your phone loses the connection, HA will stop updating the iBeacon location.</p>
<p>To use mobile iBeacons with HA, you just set up a region that doesnt match your Zone names. If HA sees an entry event for a iBeacon region that doesnt match a Zone name (say <code>keys</code>) - it will start tracking it, calling the device <code>device_tracker.beacon_keys</code>).</p>
<p>To use mobile iBeacons with HA, you just set up a region that doesnt match your Zone names. If HA sees an entry event for a iBeacon region that doesnt match a Zone name (say <code class="highlighter-rouge">keys</code>) - it will start tracking it, calling the device <code class="highlighter-rouge">device_tracker.beacon_keys</code>).</p>
<p>This allows you to write zone automations for devices that cant track themselves (for example <code>alert me if I leave the house and my keys are still at home</code>). Another example would be <code>open the gates if my car arrives home</code>.</p>
<p>This allows you to write zone automations for devices that cant track themselves (for example <code class="highlighter-rouge">alert me if I leave the house and my keys are still at home</code>). Another example would be <code class="highlighter-rouge">open the gates if my car arrives home</code>.</p>
<h3><a class="title-link" name="using-mobile-and-fixed-ibeacons-together" href="#using-mobile-and-fixed-ibeacons-together"></a> Using mobile and fixed iBeacons together</h3>
<p>You can use iBeacons of both types together, so if you have a Zone <code>drive</code> with an iBeacon region called <code>-drive</code> and you arrive home with a mobile iBeacon called <code>-car</code>, then <code>device_tracker.beacon_car</code> will be set to a state of <code>drive</code>.</p>
<p>You can use iBeacons of both types together, so if you have a Zone <code class="highlighter-rouge">drive</code> with an iBeacon region called <code class="highlighter-rouge">-drive</code> and you arrive home with a mobile iBeacon called <code class="highlighter-rouge">-car</code>, then <code class="highlighter-rouge">device_tracker.beacon_car</code> will be set to a state of <code class="highlighter-rouge">drive</code>.</p>

View file

@ -95,31 +95,31 @@
This device tracker needs SNMP to be enabled on the router.
</p>
<p>OID examples:<br />
- Mikrotik: <code>1.3.6.1.4.1.14988.1.1.1.2.1.1</code> (confirmed, unknown RouterOS version/model)<br />
- Mikrotik: <code>1.3.6.1.2.1.4.22.1.2</code> (confirmed, RouterOS 6.x on RB2011)<br />
- Aruba: <code>1.3.6.1.4.1.14823.2.3.3.1.2.4.1.2</code> (untested)<br />
- BiPAC 7800DXL: <code>1.3.6.1.2.1.17.7.1.2.2.1.1</code> (confirmed on firmware 2.32e)<br />
- OpenWrt: <code>1.3.6.1.2.1.4.22.1.2</code> (tested on Chaos Calmer 15.05 firmware, need to install snmpd package)<br />
- pfSense: <code>1.3.6.1.2.1.4.22.1.2</code> (tested on 2.2.4-RELEASE, need to enable SNMP service)</p>
<p>OID examples:</p>
<ul>
<li>Mikrotik: <code class="highlighter-rouge">1.3.6.1.4.1.14988.1.1.1.2.1.1</code> (confirmed, unknown RouterOS version/model)</li>
<li>Mikrotik: <code class="highlighter-rouge">1.3.6.1.2.1.4.22.1.2</code> (confirmed, RouterOS 6.x on RB2011)</li>
<li>Aruba: <code class="highlighter-rouge">1.3.6.1.4.1.14823.2.3.3.1.2.4.1.2</code> (untested)</li>
<li>BiPAC 7800DXL: <code class="highlighter-rouge">1.3.6.1.2.1.17.7.1.2.2.1.1</code> (confirmed on firmware 2.32e)</li>
<li>OpenWrt: <code class="highlighter-rouge">1.3.6.1.2.1.4.22.1.2</code> (tested on Chaos Calmer 15.05 firmware, need to install snmpd package)</li>
<li>pfSense: <code class="highlighter-rouge">1.3.6.1.2.1.4.22.1.2</code> (tested on 2.2.4-RELEASE, need to enable SNMP service)</li>
</ul>
<p>To use the SNMP platform in your installation, add the following to your <code>configuration.yaml</code> file:</p>
<p>To use the SNMP platform in your installation, add the following to your <code class="highlighter-rouge">configuration.yaml</code> file:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">device_tracker</span>:
<span class="key">platform</span>: <span class="string"><span class="content">snmp</span></span>
<span class="key">host</span>: <span class="string"><span class="content">192.168.1.1</span></span>
<span class="key">community</span>: <span class="string"><span class="content">public</span></span>
<span class="key">baseoid</span>: <span class="string"><span class="content">1.3.6.1.4.1.14988.1.1.1.2.1.1</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">device_tracker</span><span class="pi">:</span>
<span class="s">platform</span><span class="pi">:</span> <span class="s">snmp</span>
<span class="s">host</span><span class="pi">:</span> <span class="s">192.168.1.1</span>
<span class="s">community</span><span class="pi">:</span> <span class="s">public</span>
<span class="s">baseoid</span><span class="pi">:</span> <span class="s">1.3.6.1.4.1.14988.1.1.1.2.1.1</span>
</code></pre>
</div>
<p>Configuration variables:</p>
<ul>
<li><strong>host</strong> (<em>Required</em>): The IP address of the router, eg. 192.168.1.1.</li>
<li><strong>community</strong> (<em>Required</em>): The SNMP community which is set for the device. Most devices have a default community set to to <code>public</code> with read-only permission (which is sufficient).</li>
<li><strong>community</strong> (<em>Required</em>): The SNMP community which is set for the device. Most devices have a default community set to to <code class="highlighter-rouge">public</code> with read-only permission (which is sufficient).</li>
<li><strong>baseoid</strong> (<em>Required</em>): The OID prefix where wireless client registrations can be found, usually vendor specific. Its advised to use the numerical notation. To find this base OID, check vendor documentation or check the MIB file for your device.</li>
</ul>

View file

@ -93,17 +93,15 @@
<p>This platform allows you to detect presence by looking at connected devices to a <a href="http://www.technicolor.com">Thomson</a> device.</p>
<p>To use this device tracker in your installation, add the following to your <code>configuration.yaml</code> file:</p>
<p>To use this device tracker in your installation, add the following to your <code class="highlighter-rouge">configuration.yaml</code> file:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">device_tracker</span>:
<span class="key">platform</span>: <span class="string"><span class="content">thomson</span></span>
<span class="key">host</span>: <span class="string"><span class="content">YOUR_ROUTER_IP</span></span>
<span class="key">username</span>: <span class="string"><span class="content">YOUR_ADMIN_USERNAME</span></span>
<span class="key">password</span>: <span class="string"><span class="content">YOUR_ADMIN_PASSWORD</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">device_tracker</span><span class="pi">:</span>
<span class="s">platform</span><span class="pi">:</span> <span class="s">thomson</span>
<span class="s">host</span><span class="pi">:</span> <span class="s">YOUR_ROUTER_IP</span>
<span class="s">username</span><span class="pi">:</span> <span class="s">YOUR_ADMIN_USERNAME</span>
<span class="s">password</span><span class="pi">:</span> <span class="s">YOUR_ADMIN_PASSWORD</span>
</code></pre>
</div>
<p>Configuration variables:</p>

View file

@ -89,20 +89,18 @@
<hr class="divider">
<p>Tomato requires an extra config variable called <code>http_id</code>. The value can be obtained by logging in to the Tomato admin interface and search for <code>http_id</code> in the page source code.</p>
<p>Tomato requires an extra config variable called <code class="highlighter-rouge">http_id</code>. The value can be obtained by logging in to the Tomato admin interface and search for <code class="highlighter-rouge">http_id</code> in the page source code.</p>
<p>To use this device tracker in your installation, add the following to your <code>configuration.yaml</code> file:</p>
<p>To use this device tracker in your installation, add the following to your <code class="highlighter-rouge">configuration.yaml</code> file:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">device_tracker</span>:
<span class="key">platform</span>: <span class="string"><span class="content">tomato</span></span>
<span class="key">host</span>: <span class="string"><span class="content">YOUR_ROUTER_IP_ADDRESS</span></span>
<span class="key">username</span>: <span class="string"><span class="content">YOUR_ADMIN_USERNAME</span></span>
<span class="key">password</span>: <span class="string"><span class="content">YOUR_ADMIN_PASSWORD</span></span>
<span class="key">http_id</span>: <span class="string"><span class="content">YOUR_HTTP_ID</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">device_tracker</span><span class="pi">:</span>
<span class="s">platform</span><span class="pi">:</span> <span class="s">tomato</span>
<span class="s">host</span><span class="pi">:</span> <span class="s">YOUR_ROUTER_IP_ADDRESS</span>
<span class="s">username</span><span class="pi">:</span> <span class="s">YOUR_ADMIN_USERNAME</span>
<span class="s">password</span><span class="pi">:</span> <span class="s">YOUR_ADMIN_PASSWORD</span>
<span class="s">http_id</span><span class="pi">:</span> <span class="s">YOUR_HTTP_ID</span>
</code></pre>
</div>
<p>Configuration variables:</p>
@ -111,7 +109,7 @@
<li><strong>host</strong> (<em>Required</em>): The IP address of your router, e.g. 192.168.1.1.</li>
<li><strong>username</strong> (<em>Required</em>: The username of an user with administrative privileges, usually <em>admin</em>.</li>
<li><strong>password</strong> (<em>Required</em>): The password for your given admin account.</li>
<li><strong>http_id</strong> (<em>Required</em>): The value can be obtained by logging in to the Tomato admin interface and search for <code>http_id</code> in the page source code.</li>
<li><strong>http_id</strong> (<em>Required</em>): The value can be obtained by logging in to the Tomato admin interface and search for <code class="highlighter-rouge">http_id</code> in the page source code.</li>
</ul>
<p>See the <a href="/components/device_tracker/">device tracker component page</a> for instructions how to configure the people to be tracked.</p>

View file

@ -91,15 +91,13 @@
<p>This platform allows you to detect presence by looking at connected devices to a <a href="https://www.tp-link.com">TP-Link</a> device. This includes the ArcherC9 line.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">device_tracker</span>:
<span class="key">platform</span>: <span class="string"><span class="content">tplink</span></span>
<span class="key">host</span>: <span class="string"><span class="content">YOUR_ROUTER_IP</span></span>
<span class="key">username</span>: <span class="string"><span class="content">YOUR_ADMIN_USERNAME</span></span>
<span class="key">password</span>: <span class="string"><span class="content">YOUR_ADMIN_PASSWORD</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">device_tracker</span><span class="pi">:</span>
<span class="s">platform</span><span class="pi">:</span> <span class="s">tplink</span>
<span class="s">host</span><span class="pi">:</span> <span class="s">YOUR_ROUTER_IP</span>
<span class="s">username</span><span class="pi">:</span> <span class="s">YOUR_ADMIN_USERNAME</span>
<span class="s">password</span><span class="pi">:</span> <span class="s">YOUR_ADMIN_PASSWORD</span>
</code></pre>
</div>
<p>Configuration variables:</p>
@ -117,7 +115,7 @@
<li>Type in the password you use to login into the passsword field.</li>
<li>Click somewhere else on the page so that the password field is not selected anymore.</li>
<li>Open the JavaScript console of your browser (usually by pressing F12 and then clicking on “Console”).</li>
<li>Type <code>document.getElementById("login-password").value;</code>.</li>
<li>Type <code class="highlighter-rouge">document.getElementById("login-password").value;</code>.</li>
<li>Copy the returned value to your Home Assistant configuration as password.</li>
</ol>

View file

@ -95,59 +95,49 @@
<p>Before this scanner can be used you have to install the ubus RPC package on OpenWRT:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>opkg install rpcd-mod-file
</pre></div>
</div>
<div class="language-bash highlighter-rouge"><pre class="highlight"><code>opkg install rpcd-mod-file
</code></pre>
</div>
<p>And create a read-only user to be used by setting up the ACL file <code>/usr/share/rpcd/acl.d/user.json</code>.</p>
<p>And create a read-only user to be used by setting up the ACL file <code class="highlighter-rouge">/usr/share/rpcd/acl.d/user.json</code>.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>{
<span class="key"><span class="delimiter">&quot;</span><span class="content">user</span><span class="delimiter">&quot;</span></span>: {
<span class="key"><span class="delimiter">&quot;</span><span class="content">description</span><span class="delimiter">&quot;</span></span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">Read only user access role</span><span class="delimiter">&quot;</span></span>,
<span class="key"><span class="delimiter">&quot;</span><span class="content">read</span><span class="delimiter">&quot;</span></span>: {
<span class="key"><span class="delimiter">&quot;</span><span class="content">ubus</span><span class="delimiter">&quot;</span></span>: {
<span class="key"><span class="delimiter">&quot;</span><span class="content">*</span><span class="delimiter">&quot;</span></span>: [ <span class="string"><span class="delimiter">&quot;</span><span class="content">*</span><span class="delimiter">&quot;</span></span> ]
},
<span class="key"><span class="delimiter">&quot;</span><span class="content">uci</span><span class="delimiter">&quot;</span></span>: [ <span class="string"><span class="delimiter">&quot;</span><span class="content">*</span><span class="delimiter">&quot;</span></span> ]
},
<span class="key"><span class="delimiter">&quot;</span><span class="content">write</span><span class="delimiter">&quot;</span></span>: {}
}
}
</pre></div>
</div>
<div class="language-json highlighter-rouge"><pre class="highlight"><code><span class="p">{</span><span class="w">
</span><span class="nt">"user"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
</span><span class="nt">"description"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Read only user access role"</span><span class="p">,</span><span class="w">
</span><span class="nt">"read"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
</span><span class="nt">"ubus"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
</span><span class="nt">"*"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="s2">"*"</span><span class="w"> </span><span class="p">]</span><span class="w">
</span><span class="p">},</span><span class="w">
</span><span class="nt">"uci"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="s2">"*"</span><span class="w"> </span><span class="p">]</span><span class="w">
</span><span class="p">},</span><span class="w">
</span><span class="nt">"write"</span><span class="p">:</span><span class="w"> </span><span class="p">{}</span><span class="w">
</span><span class="p">}</span><span class="w">
</span><span class="p">}</span><span class="w">
</span></code></pre>
</div>
<p>Restart the services.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre># /etc/init.d/rpcd restart &amp;&amp; /etc/init.d/uhttpd restart
</pre></div>
</div>
<div class="language-bash highlighter-rouge"><pre class="highlight"><code><span class="c"># /etc/init.d/rpcd restart &amp;&amp; /etc/init.d/uhttpd restart</span>
</code></pre>
</div>
<p>Check if the <code>file</code> namespaces is registered with the RPC server.</p>
<p>Check if the <code class="highlighter-rouge">file</code> namespaces is registered with the RPC server.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre># ubus list | grep file
<div class="language-bash highlighter-rouge"><pre class="highlight"><code><span class="c"># ubus list | grep file</span>
file
</pre></div>
</div>
</code></pre>
</div>
<p>After this is done, add the following to your <code>configuration.yaml</code> file:</p>
<p>After this is done, add the following to your <code class="highlighter-rouge">configuration.yaml</code> file:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">device_tracker</span>:
<span class="key">platform</span>: <span class="string"><span class="content">ubus</span></span>
<span class="key">host</span>: <span class="string"><span class="content">ROUTER_IP_ADDRESS</span></span>
<span class="key">username</span>: <span class="string"><span class="content">YOUR_ADMIN_USERNAME</span></span>
<span class="key">password</span>: <span class="string"><span class="content">YOUR_ADMIN_PASSWORD</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">device_tracker</span><span class="pi">:</span>
<span class="s">platform</span><span class="pi">:</span> <span class="s">ubus</span>
<span class="s">host</span><span class="pi">:</span> <span class="s">ROUTER_IP_ADDRESS</span>
<span class="s">username</span><span class="pi">:</span> <span class="s">YOUR_ADMIN_USERNAME</span>
<span class="s">password</span><span class="pi">:</span> <span class="s">YOUR_ADMIN_PASSWORD</span>
</code></pre>
</div>
<p>Configuration variables:</p>

View file

@ -91,19 +91,17 @@
<p>This platform allows you to detect presence by looking at connected devices to a <a href="http://ubnt.com/">Ubiquiti</a> <a href="https://www.ubnt.com/enterprise/#unifi">Unifi</a> controller.</p>
<p>To use this device tracker in your installation, add the following to your <code>configuration.yaml</code> file:</p>
<p>To use this device tracker in your installation, add the following to your <code class="highlighter-rouge">configuration.yaml</code> file:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">device_tracker</span>:
<span class="key">platform</span>: <span class="string"><span class="content">unifi</span></span>
<span class="key">host</span>: <span class="string"><span class="content">CONTROLLER</span></span>
<span class="key">port</span>: <span class="string"><span class="content">PORT</span></span>
<span class="key">username</span>: <span class="string"><span class="content">YOUR_ADMIN_USERNAME</span></span>
<span class="key">password</span>: <span class="string"><span class="content">YOUR_ADMIN_PASSWORD</span></span>
<span class="key">site_id</span>: <span class="string"><span class="content">SITE_ID</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">device_tracker</span><span class="pi">:</span>
<span class="s">platform</span><span class="pi">:</span> <span class="s">unifi</span>
<span class="s">host</span><span class="pi">:</span> <span class="s">CONTROLLER</span>
<span class="s">port</span><span class="pi">:</span> <span class="s">PORT</span>
<span class="s">username</span><span class="pi">:</span> <span class="s">YOUR_ADMIN_USERNAME</span>
<span class="s">password</span><span class="pi">:</span> <span class="s">YOUR_ADMIN_PASSWORD</span>
<span class="s">site_id</span><span class="pi">:</span> <span class="s">SITE_ID</span>
</code></pre>
</div>
<p>Configuration variables:</p>

View file

@ -93,46 +93,42 @@
<p>There are also trackers available which uses different technologies like <a href="/components/mqtt/">MQTT</a> or <a href="/components/device_tracker.nmap_scanner/">Nmap</a> to scan the network for devices.</p>
<p>To get started add the following lines to your <code>configuration.yaml</code> (example for Netgear):</p>
<p>To get started add the following lines to your <code class="highlighter-rouge">configuration.yaml</code> (example for Netgear):</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry for Netgear device</span>
<span class="key">device_tracker</span>:
<span class="key">platform</span>: <span class="string"><span class="content">netgear</span></span>
<span class="key">host</span>: <span class="string"><span class="content">192.168.1.1</span></span>
<span class="key">username</span>: <span class="string"><span class="content">admin</span></span>
<span class="key">password</span>: <span class="string"><span class="content">YOUR_PASSWORD</span></span>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry for Netgear device</span>
<span class="s">device_tracker</span><span class="pi">:</span>
<span class="s">platform</span><span class="pi">:</span> <span class="s">netgear</span>
<span class="s">host</span><span class="pi">:</span> <span class="s">192.168.1.1</span>
<span class="s">username</span><span class="pi">:</span> <span class="s">admin</span>
<span class="s">password</span><span class="pi">:</span> <span class="s">YOUR_PASSWORD</span>
<span class="comment"># Optional configuration</span>
<span class="c1"># Optional configuration</span>
<span class="comment"># If new discovered devices are tracked by default (default: yes)</span>
<span class="key">track_new_devices</span>: <span class="string"><span class="content">yes</span></span>
<span class="comment"># Seconds between each scan for new devices (default: 12)</span>
<span class="key">interval_seconds</span>: <span class="string"><span class="content">12</span></span>
<span class="comment"># Seconds to wait till marking someone as not home after not being seen</span>
<span class="comment"># (default: 180)</span>
<span class="key">consider_home</span>: <span class="string"><span class="content">180</span></span>
</pre></div>
</div>
<span class="c1"># If new discovered devices are tracked by default (default: yes)</span>
<span class="s">track_new_devices</span><span class="pi">:</span> <span class="s">yes</span>
<span class="c1"># Seconds between each scan for new devices (default: 12)</span>
<span class="s">interval_seconds</span><span class="pi">:</span> <span class="s">12</span>
<span class="c1"># Seconds to wait till marking someone as not home after not being seen</span>
<span class="c1"># (default: 180)</span>
<span class="s">consider_home</span><span class="pi">:</span> <span class="s">180</span>
</code></pre>
</div>
<p>Once tracked, a file will be created in your config dir called <code>known_devices.yaml</code>. Edit this file to adjust which devices to be tracked. Here you can also setup a URL for each device to be used as the entity picture and set whether the device will be show in the UI when in the away state.</p>
<p>Once tracked, a file will be created in your config dir called <code class="highlighter-rouge">known_devices.yaml</code>. Edit this file to adjust which devices to be tracked. Here you can also setup a URL for each device to be used as the entity picture and set whether the device will be show in the UI when in the away state.</p>
<p>Multiple device trackers can be used in parallel, such as <a href="/components/device_tracker.owntracks/">Owntracks</a> and <a href="/components/device_tracker.nmap_scanner/">Nmap</a>. The state of the device will be determined by the source that reported last. Device tracker will look for global settings (<code>track_new_devices</code>, <code>consider_home</code>, and <code>home_interval</code>) under the configuration of the first platform.</p>
<p>Multiple device trackers can be used in parallel, such as <a href="/components/device_tracker.owntracks/">Owntracks</a> and <a href="/components/device_tracker.nmap_scanner/">Nmap</a>. The state of the device will be determined by the source that reported last. Device tracker will look for global settings (<code class="highlighter-rouge">track_new_devices</code>, <code class="highlighter-rouge">consider_home</code>, and <code class="highlighter-rouge">home_interval</code>) under the configuration of the first platform.</p>
<p>The optional <code>consider_home</code> entry is useful for households with Apple iOS devices that go into sleep mode while still at home to conserve battery life. iPhones will occasionally drop off the network and then re-appear. <code>consider_home</code> helps prevent false alarms in presence detection when using IP scanners such as nmap.</p>
<p>The optional <code class="highlighter-rouge">consider_home</code> entry is useful for households with Apple iOS devices that go into sleep mode while still at home to conserve battery life. iPhones will occasionally drop off the network and then re-appear. <code class="highlighter-rouge">consider_home</code> helps prevent false alarms in presence detection when using IP scanners such as nmap.</p>
<p>To add Nmap tracking just add the MAC address to the OwnTracks or iCloud device <code>mac:</code> configuration. To use both OwnTracks and Nmap you could use the following example:</p>
<p>To add Nmap tracking just add the MAC address to the OwnTracks or iCloud device <code class="highlighter-rouge">mac:</code> configuration. To use both OwnTracks and Nmap you could use the following example:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="key">owntracksdevicename</span>:
<span class="key">name</span>: <span class="string"><span class="content">Friendly Name!</span></span>
<span class="key">mac</span>: <span class="string"><span class="content">EA:AA:55:E7:C6:94</span></span>
<span class="key">picture</span>:
<span class="key">track</span>: <span class="string"><span class="content">yes</span></span>
<span class="key">hide_if_away</span>: <span class="string"><span class="content">no</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="s">owntracksdevicename</span><span class="pi">:</span>
<span class="s">name</span><span class="pi">:</span> <span class="s">Friendly Name!</span>
<span class="s">mac</span><span class="pi">:</span> <span class="s">EA:AA:55:E7:C6:94</span>
<span class="s">picture</span><span class="pi">:</span>
<span class="s">track</span><span class="pi">:</span> <span class="s">yes</span>
<span class="s">hide_if_away</span><span class="pi">:</span> <span class="s">no</span>
</code></pre>
</div>

View file

@ -91,31 +91,27 @@
<p>The Home Assistant discovery protocol is a lightweight feature that introduces support for Home Assistant servers to be discoverable. This will allow <a href="https://github.com/balloob/micropython-home-assistant">Home Assistant instances</a> running with <a href="https://micropython.org/">MicroPython</a> to get started without any required configuration (Example from the <a href="https://github.com/balloob/micropython-home-assistant">MicroPython Home Assistant</a> documentation):</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="keyword">from</span> <span class="include">homeassistant.discovery</span> <span class="keyword">import</span> <span class="include">get_instance</span>()
<div class="language-python highlighter-rouge"><pre class="highlight"><code><span class="kn">from</span> <span class="nn">homeassistant.discovery</span> <span class="kn">import</span> <span class="n">get_instance</span><span class="p">()</span>
hass = get_instance()
<span class="n">hass</span> <span class="o">=</span> <span class="n">get_instance</span><span class="p">()</span>
<span class="keyword">for</span> state <span class="keyword">in</span> hass.states():
print(state)
</pre></div>
</div>
<span class="k">for</span> <span class="n">state</span> <span class="ow">in</span> <span class="n">hass</span><span class="o">.</span><span class="n">states</span><span class="p">():</span>
<span class="k">print</span><span class="p">(</span><span class="n">state</span><span class="p">)</span>
</code></pre>
</div>
<p>To enable <code>discovery</code> in your installation, add the following to your <code>configuration.yaml</code> file:</p>
<p>To enable <code class="highlighter-rouge">discovery</code> in your installation, add the following to your <code class="highlighter-rouge">configuration.yaml</code> file:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yml entry</span>
<span class="key">discoverable</span>:
<span class="key">expose_password</span>: <span class="string"><span class="content">yes</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yml entry</span>
<span class="s">discoverable</span><span class="pi">:</span>
<span class="s">expose_password</span><span class="pi">:</span> <span class="s">yes</span>
</code></pre>
</div>
<p>Configuration variables:</p>
<ul>
<li><strong>expose_password</strong> (<em>Optional</em>): It is up to the user to expose the password in the discovery response (Default: off). If password not exposed, uHA instances will have to provide it (<code>get_instance('my password')</code>).</li>
<li><strong>expose_password</strong> (<em>Optional</em>): It is up to the user to expose the password in the discovery response (Default: off). If password not exposed, uHA instances will have to provide it (<code class="highlighter-rouge">get_instance('my password')</code>).</li>
</ul>

View file

@ -89,7 +89,7 @@
<hr class="divider">
<p>Home Assistant can discover and automatically configure zeroconf/mDNS and uPnP devices on your network. Currently the <code>discovery</code> component can detect:</p>
<p>Home Assistant can discover and automatically configure zeroconf/mDNS and uPnP devices on your network. Currently the <code class="highlighter-rouge">discovery</code> component can detect:</p>
<ul>
<li>Google Chromecast</li>
@ -101,18 +101,16 @@
<p>It will be able to add Google Chromecasts and Belkin WeMo switches automatically, for Philips Hue it will require some configuration from the user.</p>
<p>To load this component, add the following lines to your <code>configuration.yaml</code>:</p>
<p>To load this component, add the following lines to your <code class="highlighter-rouge">configuration.yaml</code>:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">discovery</span>:
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">discovery</span><span class="pi">:</span>
</code></pre>
</div>
<p class="note">
The home-assistant server must be on the same network as the devices for uPnP discovery to work.
If running home-assistant in a docker container use switch <code>--net=host</code> to put it on the hosts network.
If running home-assistant in a docker container use switch <code class="highlighter-rouge">--net=host</code> to put it on the hosts network.
</p>
<p>If you are developing a new platform, please read <a href="/developers/add_new_platform/#discovery">how to make your platform discoverable</a>.</p>
@ -126,7 +124,7 @@ If you are on Windows and youre using Python 3.5, download the Netifaces depe
</p>
<p class="note">
If you see <code>Not initializing discovery because could not install dependency netdisco==0.6.1</code> in the logs, you will need to install the <code>python3-dev</code> or <code>python3-devel</code> package on your system manually (eg. <code>sudo apt-get install python3-dev</code> or <code>sudo dnf -y install python3-devel</code>). On the next restart of home-assistant, discovery should work. If you still get an error, check if you have a compiler (<code>gcc</code>) available on your system.
If you see <code class="highlighter-rouge">Not initializing discovery because could not install dependency netdisco==0.6.1</code> in the logs, you will need to install the <code class="highlighter-rouge">python3-dev</code> or <code class="highlighter-rouge">python3-devel</code> package on your system manually (eg. <code class="highlighter-rouge">sudo apt-get install python3-dev</code> or <code class="highlighter-rouge">sudo dnf -y install python3-devel</code>). On the next restart of home-assistant, discovery should work. If you still get an error, check if you have a compiler (<code class="highlighter-rouge">gcc</code>) available on your system.
</p>

View file

@ -89,32 +89,28 @@
<hr class="divider">
<p>The <code>downloader</code> component provides a service to download files. It will raise an error and not continue to set itself up when the download directory does not exist.</p>
<p>The <code class="highlighter-rouge">downloader</code> component provides a service to download files. It will raise an error and not continue to set itself up when the download directory does not exist.</p>
<p>To enable it, add the following lines to your <code>configuration.yaml</code> file:</p>
<p>To enable it, add the following lines to your <code class="highlighter-rouge">configuration.yaml</code> file:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">downloader</span>:
<span class="key">download_dir</span>: <span class="string"><span class="content">downloads</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">downloader</span><span class="pi">:</span>
<span class="s">download_dir</span><span class="pi">:</span> <span class="s">downloads</span>
</code></pre>
</div>
<p>Configuration variables:</p>
<ul>
<li><strong>download_dir</strong> (<em>Required</em>): If the path is not absolute, its assumed to be relative to the Home Assistant configuration directory (eg. <code>.homeassistant/downloads</code>).</li>
<li><strong>download_dir</strong> (<em>Required</em>): If the path is not absolute, its assumed to be relative to the Home Assistant configuration directory (eg. <code class="highlighter-rouge">.homeassistant/downloads</code>).</li>
</ul>
<h3><a class="title-link" name="use-the-service" href="#use-the-service"></a> Use the service</h3>
<p>Go the the “Developer Tools”, then to “Call Service”, and choose <code>downloader/download_file</code> from the list of available services. Fill the “Service Data” field as shown in the example below and hit “CALL SERVICE”.</p>
<p>Go the the “Developer Tools”, then to “Call Service”, and choose <code class="highlighter-rouge">downloader/download_file</code> from the list of available services. Fill the “Service Data” field as shown in the example below and hit “CALL SERVICE”.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>{<span class="key"><span class="delimiter">&quot;</span><span class="content">url</span><span class="delimiter">&quot;</span></span>:<span class="string"><span class="delimiter">&quot;</span><span class="content">http://domain.tld/path/to/file</span><span class="delimiter">&quot;</span></span>}
</pre></div>
</div>
<div class="language-json highlighter-rouge"><pre class="highlight"><code><span class="p">{</span><span class="nt">"url"</span><span class="p">:</span><span class="s2">"http://domain.tld/path/to/file"</span><span class="p">}</span><span class="w">
</span></code></pre>
</div>
<p>This will download the file from the given URL.</p>
@ -129,7 +125,7 @@
</thead>
<tbody>
<tr>
<td><code>url</code></td>
<td><code class="highlighter-rouge">url</code></td>
<td>no</td>
<td>The url of the file to download.</td>
</tr>

View file

@ -89,7 +89,7 @@
<hr class="divider">
<p>The <code>dweet</code> component makes it possible to transfer details collected with Home Assistant to <a href="http://dweet.io/">Dweet.io</a> and visualize them with <a href="https://freeboard.io">freeboard.io</a>. Keep in mind that your information will be public!</p>
<p>The <code class="highlighter-rouge">dweet</code> component makes it possible to transfer details collected with Home Assistant to <a href="http://dweet.io/">Dweet.io</a> and visualize them with <a href="https://freeboard.io">freeboard.io</a>. Keep in mind that your information will be public!</p>
<p class="img">
<img src="/images/screenshots/dweet-freeboard.png" />
@ -99,19 +99,17 @@
The publishing interval is limited to 1 second. This means that its possible to missing fast changes.
</p>
<p>To use the <code>deweet</code> component in your installation, add the following to your <code>configuration.yaml</code> file:</p>
<p>To use the <code class="highlighter-rouge">deweet</code> component in your installation, add the following to your <code class="highlighter-rouge">configuration.yaml</code> file:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">dweet</span>:
<span class="key">name</span>: <span class="string"><span class="content">HAExport</span></span>
<span class="key">whitelist</span>:
- <span class="string"><span class="content">input_slider.brightness</span></span>
- <span class="string"><span class="content">input_boolean.notify_home</span></span>
- <span class="string"><span class="content">sensor.weather_temperature</span></span>
- <span class="string"><span class="content">sensor.cpu</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">dweet</span><span class="pi">:</span>
<span class="s">name</span><span class="pi">:</span> <span class="s">HAExport</span>
<span class="s">whitelist</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">input_slider.brightness</span>
<span class="pi">-</span> <span class="s">input_boolean.notify_home</span>
<span class="pi">-</span> <span class="s">sensor.weather_temperature</span>
<span class="pi">-</span> <span class="s">sensor.cpu</span>
</code></pre>
</div>
<p>Configuration variables:</p>

View file

@ -95,14 +95,12 @@
<p>The first time you run Home-Assistant with this component it will give you a PIN code that you need to authorize in the <a href="https://www.ecobee.com/consumerportal/index.html">ecobee consumer portal</a>. You can do this by clicking Add Application in the My Apps section in the sidebar. Enter the PIN code from the Home Assistant screeen. To get the PIN code select the item in the Ecobee card. If you do not have an Ecobee card, you may be using groups with default_view that dont show the card. To get around this you can temporarily comment out the default_view section and restart Home Assistant. Once you enter the PIN on the Ecobee site, wait approximately 5 minutes and then click on the I have authorized the app link at the bottom of the Ecobee popup window. If everything worked correctly, you should now be able to restart Home Assistant again to see the full Ecobee card with all of the sensors populated. Now you can re-enable your default_view (if you had to disable it) and add the Ecobee sensors to a group and/or view.</p>
<p>To set it up, add the following information to your <code>configuration.yaml</code> file:</p>
<p>To set it up, add the following information to your <code class="highlighter-rouge">configuration.yaml</code> file:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="key">ecobee</span>:
<span class="key">api_key</span>: <span class="string"><span class="content">asdfghjklqwertyuiopzxcvbnm </span></span>
<span class="key">hold_temp</span>: <span class="string"><span class="content">True</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="s">ecobee</span><span class="pi">:</span>
<span class="s">api_key</span><span class="pi">:</span> <span class="s">asdfghjklqwertyuiopzxcvbnm</span>
<span class="s">hold_temp</span><span class="pi">:</span> <span class="s">True</span>
</code></pre>
</div>
<p>Configuration variables:</p>

View file

@ -91,7 +91,7 @@
<p>The <a href="https://en.wikipedia.org/wiki/EnOcean">EnOcean</a> standard is supported by many different vendors. There are switches and sensors of many different kinds, and typically they employ energy harvesting to get power such that no batteries are unnecessary.</p>
<p>The <code>enocean</code> component adds support for some of these devices. You will need a controller like the <a href="https://www.enocean.com/en/enocean_modules/usb-300-oem/">USB300</a> in order for it to work.</p>
<p>The <code class="highlighter-rouge">enocean</code> component adds support for some of these devices. You will need a controller like the <a href="https://www.enocean.com/en/enocean_modules/usb-300-oem/">USB300</a> in order for it to work.</p>
<p>There is currently support for the following device types within Home Assistant:</p>
@ -114,12 +114,10 @@
<h1>Configuration</h1>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">enocean</span>:
<span class="key">device</span>: <span class="string"><span class="content">/dev/ttyUSB0</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">enocean</span><span class="pi">:</span>
<span class="s">device</span><span class="pi">:</span> <span class="s">/dev/ttyUSB0</span>
</code></pre>
</div>
<p>If no device is specified, the default will be <strong>/dev/ttyUSB0</strong></p>

View file

@ -89,7 +89,7 @@
<hr class="divider">
<p>This component will allow Home Assistant users who own either a DSC or Honeywell alarm panel to leverage their alarm system and its sensors to provide Home Assistant with rich information about their homes.<br />
<p>This component will allow Home Assistant users who own either a DSC or Honeywell alarm panel to leverage their alarm system and its sensors to provide Home Assistant with rich information about their homes.
Connectivity between Home Assistant and the alarm panel is accomplished through a device produced by Eyez On, known as the Envisalink. The Envisalink evl3 and evl4 boards provide a TCP/IP interface to the alarm panel, where it emulates an alarm keypad. This board also exposes a raw TCP/IP based API, upon which this component is built. Currently, the Envisalink version 4 is the latest model. This component supports both the evl3 and the evl4.</p>
<p>Please visit the <a href="http://www.eyezon.com/">eyezon website</a> for further information about the evl3 and evl4 boards.</p>
@ -106,12 +106,12 @@ Connectivity between Home Assistant and the alarm panel is accomplished through
<h2>Configuration</h2>
<p>An <code>envisalink</code> section must be present in the <code>configuration.yaml</code> file and contain the following options as required:</p>
<p>An <code class="highlighter-rouge">envisalink</code> section must be present in the <code class="highlighter-rouge">configuration.yaml</code> file and contain the following options as required:</p>
<h3>Required Parameters</h3>
<ul>
<li><strong>host</strong>: The IP address of the Envisalink device on your home network.</li>
<li><strong>panel_type</strong>: <code>HONEYWELL</code> or <code>DSC</code>, depending upon which alarm system you have.</li>
<li><strong>panel_type</strong>: <code class="highlighter-rouge">HONEYWELL</code> or <code class="highlighter-rouge">DSC</code>, depending upon which alarm system you have.</li>
<li><strong>user_name</strong>: Which username to authenticate with when connecting to the device. On a Honeywell alarm panel, the username/password are the same.</li>
<li><strong>password</strong>: Which password to authenticate with when connecting to the device.</li>
<li><strong>code</strong>: Your alarm panels code, for authenticating user input during arm/disarm.</li>
@ -119,45 +119,43 @@ Connectivity between Home Assistant and the alarm panel is accomplished through
<h3>Optional Parameters</h3>
<ul>
<li><strong>port</strong>: Which network port to connect with. Default: <code>4025</code></li>
<li><strong>evl_version</strong>: 3 for evl3, or 4 for evl4. Default: <code>3</code></li>
<li><strong>keepalive_interval</strong>: This is a periodic heartbeat signal (measured in seconds) sent to your Envisalink board to keep it from restarting. This is required for DSC and Honeywell systems. Default: <code>60</code> seconds</li>
<li><strong>zonedump_interval</strong>: This is an interval (measured in seconds) where the evl will dump out all zone statuses. This is required for Honeywell systems, which do not properly send zone closure events. DSC boards do not technically need this. Default: <code>30</code></li>
<li><strong>port</strong>: Which network port to connect with. Default: <code class="highlighter-rouge">4025</code></li>
<li><strong>evl_version</strong>: 3 for evl3, or 4 for evl4. Default: <code class="highlighter-rouge">3</code></li>
<li><strong>keepalive_interval</strong>: This is a periodic heartbeat signal (measured in seconds) sent to your Envisalink board to keep it from restarting. This is required for DSC and Honeywell systems. Default: <code class="highlighter-rouge">60</code> seconds</li>
<li><strong>zonedump_interval</strong>: This is an interval (measured in seconds) where the evl will dump out all zone statuses. This is required for Honeywell systems, which do not properly send zone closure events. DSC boards do not technically need this. Default: <code class="highlighter-rouge">30</code></li>
<li><strong>zones</strong>: Envisalink boards have no way to tell us which zones are actually in use, so each zone must be configured in Home Assistant. For each zone, at least a name must be given. <em>Note- if no zones are specified, Home Assistant will not load any binary_sensor components.</em></li>
<li><strong>partitions</strong>: Again, Envisalink boards do not tell us what is in use, and what is not, so each partition must be configured with a partition name. If no partition parameter is specified, then no alarm_panel or sensor components are loaded.</li>
</ul>
<h4>Example</h4>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="key">envisalink</span>:
<span class="comment">#optional</span>
<span class="key">port</span>: <span class="string"><span class="content">4025</span></span>
<span class="key">evl_version</span>: <span class="string"><span class="content">3</span></span>
<span class="key">keepalive_interval</span>: <span class="string"><span class="content">60</span></span>
<span class="key">zonedump_interval</span>: <span class="string"><span class="content">30</span></span>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="s">envisalink</span><span class="pi">:</span>
<span class="c1">#optional</span>
<span class="s">port</span><span class="pi">:</span> <span class="s">4025</span>
<span class="s">evl_version</span><span class="pi">:</span> <span class="s">3</span>
<span class="s">keepalive_interval</span><span class="pi">:</span> <span class="s">60</span>
<span class="s">zonedump_interval</span><span class="pi">:</span> <span class="s">30</span>
<span class="comment">#required</span>
<span class="key">host</span>: <span class="string"><span class="content">&lt;envisalink IP address&gt;</span></span>
<span class="key">panel_type</span>: <span class="string"><span class="content">HONEYWELL or DSC</span></span>
<span class="key">user_name</span>: <span class="string"><span class="content">&lt;pass&gt;</span></span>
<span class="key">password</span>: <span class="string"><span class="content">&lt;pass&gt;</span></span>
<span class="key">code</span>: <span class="string"><span class="content">'1234'</span></span>
<span class="c1">#required</span>
<span class="s">host</span><span class="pi">:</span> <span class="s">&lt;envisalink IP address&gt;</span>
<span class="s">panel_type</span><span class="pi">:</span> <span class="s">HONEYWELL or DSC</span>
<span class="s">user_name</span><span class="pi">:</span> <span class="s">&lt;pass&gt;</span>
<span class="s">password</span><span class="pi">:</span> <span class="s">&lt;pass&gt;</span>
<span class="s">code</span><span class="pi">:</span> <span class="s1">'</span><span class="s">1234'</span>
<span class="key">zones</span>:
<span class="key">11</span>:
<span class="key">name</span>: <span class="string"><span class="content">'Back Door'</span></span>
<span class="key">type</span>: <span class="string"><span class="content">'opening'</span></span>
<span class="s">zones</span><span class="pi">:</span>
<span class="s">11</span><span class="pi">:</span>
<span class="s">name</span><span class="pi">:</span> <span class="s1">'</span><span class="s">Back</span><span class="nv"> </span><span class="s">Door'</span>
<span class="s">type</span><span class="pi">:</span> <span class="s1">'</span><span class="s">opening'</span>
<span class="key">21</span>:
<span class="key">name</span>: <span class="string"><span class="content">'First Floor Motion'</span></span>
<span class="key">type</span>: <span class="string"><span class="content">'motion'</span></span>
<span class="s">21</span><span class="pi">:</span>
<span class="s">name</span><span class="pi">:</span> <span class="s1">'</span><span class="s">First</span><span class="nv"> </span><span class="s">Floor</span><span class="nv"> </span><span class="s">Motion'</span>
<span class="s">type</span><span class="pi">:</span> <span class="s1">'</span><span class="s">motion'</span>
<span class="key">partitions</span>:
<span class="key">1</span>:
<span class="key">name</span>: <span class="string"><span class="content">'Home Alarm'</span></span>
</pre></div>
</div>
<span class="s">partitions</span><span class="pi">:</span>
<span class="s">1</span><span class="pi">:</span>
<span class="s">name</span><span class="pi">:</span> <span class="s1">'</span><span class="s">Home</span><span class="nv"> </span><span class="s">Alarm'</span>
</code></pre>
</div>

View file

@ -91,16 +91,14 @@
<p>Add an RSS/Atom feed reader that polls feeds every hour and sends new entries into the event bus.</p>
<p>To use RSS feeds in your installation, add the following to your <code>configuration.yaml</code> file:</p>
<p>To use RSS feeds in your installation, add the following to your <code class="highlighter-rouge">configuration.yaml</code> file:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">feedreader</span>:
<span class="key">urls</span>:
- <span class="string"><span class="content">https://home-assistant.io/atom.xml</span></span>
- <span class="string"><span class="content">https://github.com/blog.atom</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">feedreader</span><span class="pi">:</span>
<span class="s">urls</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">https://home-assistant.io/atom.xml</span>
<span class="pi">-</span> <span class="s">https://github.com/blog.atom</span>
</code></pre>
</div>
<p>Configuration variables:</p>
@ -111,26 +109,22 @@
<p>Feedreader events can be used out of the box to trigger automation actions, e.g.:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="key">automation</span>:
- <span class="string"><span class="content">alias: Trigger action when new element(s) in RSS feed</span></span>
<span class="key">trigger</span>:
<span class="key">platform</span>: <span class="string"><span class="content">event</span></span>
<span class="key">event_type</span>: <span class="string"><span class="content">feedreader</span></span>
<span class="key">action</span>:
<span class="key">service</span>: <span class="string"><span class="content">script.turn_on</span></span>
<span class="key">entity_id</span>: <span class="string"><span class="content">script.my_action</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="s">automation</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">alias</span><span class="pi">:</span> <span class="s">Trigger action when new element(s) in RSS feed</span>
<span class="s">trigger</span><span class="pi">:</span>
<span class="s">platform</span><span class="pi">:</span> <span class="s">event</span>
<span class="s">event_type</span><span class="pi">:</span> <span class="s">feedreader</span>
<span class="s">action</span><span class="pi">:</span>
<span class="s">service</span><span class="pi">:</span> <span class="s">script.turn_on</span>
<span class="s">entity_id</span><span class="pi">:</span> <span class="s">script.my_action</span>
</code></pre>
</div>
<p>For more advanced use cases, a custom component registering to the <code>feedreader</code> event type could be used instead:</p>
<p>For more advanced use cases, a custom component registering to the <code class="highlighter-rouge">feedreader</code> event type could be used instead:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>EVENT_FEEDREADER = <span class="string"><span class="delimiter">&quot;</span><span class="content">feedreader</span><span class="delimiter">&quot;</span></span>
hass.bus.listen(EVENT_FEEDREADER, event_listener)
</pre></div>
</div>
<div class="language-python highlighter-rouge"><pre class="highlight"><code><span class="n">EVENT_FEEDREADER</span> <span class="o">=</span> <span class="s">"feedreader"</span>
<span class="n">hass</span><span class="o">.</span><span class="n">bus</span><span class="o">.</span><span class="n">listen</span><span class="p">(</span><span class="n">EVENT_FEEDREADER</span><span class="p">,</span> <span class="n">event_listener</span><span class="p">)</span>
</code></pre>
</div>
<p>To get started developing custom components, please refer to the <a href="/developers">developers</a> documentation</p>

View file

@ -89,15 +89,13 @@
<hr class="divider">
<p>The <code>foursquare</code> component accepts pushes from the Foursquare <a href="https://developer.foursquare.com/overview/realtime">Real-Time API</a> and a service to check users in on Swarm.</p>
<p>The <code class="highlighter-rouge">foursquare</code> component accepts pushes from the Foursquare <a href="https://developer.foursquare.com/overview/realtime">Real-Time API</a> and a service to check users in on Swarm.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">foursquare</span>:
<span class="key">access_token</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">&lt;foursquare access token&gt;</span><span class="delimiter">&quot;</span></span>
<span class="key">push_secret</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">&lt;foursquare push secret&gt;</span><span class="delimiter">&quot;</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">foursquare</span><span class="pi">:</span>
<span class="s">access_token</span><span class="pi">:</span> <span class="s2">"</span><span class="s">&lt;foursquare</span><span class="nv"> </span><span class="s">access</span><span class="nv"> </span><span class="s">token&gt;"</span>
<span class="s">push_secret</span><span class="pi">:</span> <span class="s2">"</span><span class="s">&lt;foursquare</span><span class="nv"> </span><span class="s">push</span><span class="nv"> </span><span class="s">secret&gt;"</span>
</code></pre>
</div>
<p>Configuration variables:</p>
@ -109,26 +107,24 @@
<h4><a class="title-link" name="real-time-api" href="#real-time-api"></a> Real-Time API</h4>
<p>The component accepts pushes from Foursquare at <code>/api/foursquare</code>. The route does not require authentication.</p>
<p>The component accepts pushes from Foursquare at <code class="highlighter-rouge">/api/foursquare</code>. The route does not require authentication.</p>
<p>Foursquare checkin events can be used out of the box to trigger automation actions, e.g.:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="key">automation</span>:
- <span class="string"><span class="content">alias: Trigger action when you check into a venue.</span></span>
<span class="key">trigger</span>:
<span class="key">platform</span>: <span class="string"><span class="content">event</span></span>
<span class="key">event_type</span>: <span class="string"><span class="content">foursquare.push</span></span>
<span class="key">action</span>:
<span class="key">service</span>: <span class="string"><span class="content">script.turn_on</span></span>
<span class="key">entity_id</span>: <span class="string"><span class="content">script.my_action</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="s">automation</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">alias</span><span class="pi">:</span> <span class="s">Trigger action when you check into a venue.</span>
<span class="s">trigger</span><span class="pi">:</span>
<span class="s">platform</span><span class="pi">:</span> <span class="s">event</span>
<span class="s">event_type</span><span class="pi">:</span> <span class="s">foursquare.push</span>
<span class="s">action</span><span class="pi">:</span>
<span class="s">service</span><span class="pi">:</span> <span class="s">script.turn_on</span>
<span class="s">entity_id</span><span class="pi">:</span> <span class="s">script.my_action</span>
</code></pre>
</div>
<h4><a class="title-link" name="check-ins" href="#check-ins"></a> Check ins</h4>
<p>To check a user in, use the <code>foursquare/checkin</code> service.</p>
<p>To check a user in, use the <code class="highlighter-rouge">foursquare/checkin</code> service.</p>
<p>Parameters:</p>

View file

@ -89,33 +89,31 @@
<hr class="divider">
<p>The <code>mqtt</code> garage door platform let you control your MQTT enabled garage door.</p>
<p>The <code class="highlighter-rouge">mqtt</code> garage door platform let you control your MQTT enabled garage door.</p>
<p>In an ideal scenario, the MQTT device will have a state topic to publish state changes. If these messages are published with RETAIN flag, the MQTT switch will receive an instant state update after subscription and will start with correct state. Otherwise, the initial state of the switch will be false/off.</p>
<p>When a state topic is not available, the switch will work in optimistic mode. In this mode, the switch will immediately change state after every command. Otherwise, the switch will wait for state confirmation from device (message from <code>state_topic</code>).</p>
<p>When a state topic is not available, the switch will work in optimistic mode. In this mode, the switch will immediately change state after every command. Otherwise, the switch will wait for state confirmation from device (message from <code class="highlighter-rouge">state_topic</code>).</p>
<p>Optimistic mode can be forced, even if state topic is available. Try to enable it, if experiencing incorrect switch operation.</p>
<p>To use your MQTT binary sensor in your installation, add the following to your <code>configuration.yaml</code> file:</p>
<p>To use your MQTT binary sensor in your installation, add the following to your <code class="highlighter-rouge">configuration.yaml</code> file:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yml entry</span>
<span class="key">garage_door</span>:
<span class="key">platform</span>: <span class="string"><span class="content">mqtt</span></span>
<span class="key">state_topic</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">home-assistant/garage-door</span><span class="delimiter">&quot;</span></span>
<span class="key">command_topic</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">home-assistant/garage-door/set</span><span class="delimiter">&quot;</span></span>
<span class="key">name</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">MQTT Sensor</span><span class="delimiter">&quot;</span></span>
<span class="key">optimistic</span>: <span class="string"><span class="content">false</span></span>
<span class="key">qos</span>: <span class="string"><span class="content">0</span></span>
<span class="key">retain</span>: <span class="string"><span class="content">true</span></span>
<span class="key">state_open</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">STATE_OPEN</span><span class="delimiter">&quot;</span></span>
<span class="key">state_closed</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">STATE_CLOSED</span><span class="delimiter">&quot;</span></span>
<span class="key">service_open</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">SERVICE_OPEN</span><span class="delimiter">&quot;</span></span>
<span class="key">service_close</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">SERVICE_CLOSE</span><span class="delimiter">&quot;</span></span>
<span class="key">value_template</span>: <span class="string"><span class="content">'{{ value.x }}'</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yml entry</span>
<span class="s">garage_door</span><span class="pi">:</span>
<span class="s">platform</span><span class="pi">:</span> <span class="s">mqtt</span>
<span class="s">state_topic</span><span class="pi">:</span> <span class="s2">"</span><span class="s">home-assistant/garage-door"</span>
<span class="s">command_topic</span><span class="pi">:</span> <span class="s2">"</span><span class="s">home-assistant/garage-door/set"</span>
<span class="s">name</span><span class="pi">:</span> <span class="s2">"</span><span class="s">MQTT</span><span class="nv"> </span><span class="s">Sensor"</span>
<span class="s">optimistic</span><span class="pi">:</span> <span class="s">false</span>
<span class="s">qos</span><span class="pi">:</span> <span class="s">0</span>
<span class="s">retain</span><span class="pi">:</span> <span class="s">true</span>
<span class="s">state_open</span><span class="pi">:</span> <span class="s2">"</span><span class="s">STATE_OPEN"</span>
<span class="s">state_closed</span><span class="pi">:</span> <span class="s2">"</span><span class="s">STATE_CLOSED"</span>
<span class="s">service_open</span><span class="pi">:</span> <span class="s2">"</span><span class="s">SERVICE_OPEN"</span>
<span class="s">service_close</span><span class="pi">:</span> <span class="s2">"</span><span class="s">SERVICE_CLOSE"</span>
<span class="s">value_template</span><span class="pi">:</span> <span class="s1">'</span><span class="s">{{</span><span class="nv"> </span><span class="s">value.x</span><span class="nv"> </span><span class="s">}}'</span>
</code></pre>
</div>
<p>Configuration variables:</p>
@ -133,12 +131,10 @@
<li><strong>value_template</strong> (<em>Optional</em>): Defines a <a href="/topics/templating/">template</a> to extract a value from the payload.</li>
</ul>
<p>For a quick check you can use the commandline tools shipped with <code>mosquitto</code> to send MQTT messages. Set the state of your sensor manually:</p>
<p>For a quick check you can use the commandline tools shipped with <code class="highlighter-rouge">mosquitto</code> to send MQTT messages. Set the state of your sensor manually:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>$ mosquitto_pub -h 127.0.0.1 -t home-assistant/garage-door/set -m &quot;OFF&quot;
</pre></div>
</div>
<div class="language-bash highlighter-rouge"><pre class="highlight"><code><span class="gp">$ </span>mosquitto_pub -h 127.0.0.1 -t home-assistant/garage-door/set -m <span class="s2">"OFF"</span>
</code></pre>
</div>

View file

@ -89,29 +89,29 @@
<hr class="divider">
<p>The <code>rpi_gpio</code> garage door platform allows you to use a Raspberry Pi to control your Garage door.</p>
<p>The <code class="highlighter-rouge">rpi_gpio</code> garage door platform allows you to use a Raspberry Pi to control your Garage door.</p>
<p>It uses two pins on the Raspberry Pi. <br />
- The <code>state_pin</code> will detect if the door is closed, and<br />
- the <code>relay_pin</code> will trigger the door to open or close.</p>
<p>It uses two pins on the Raspberry Pi.</p>
<ul>
<li>The <code class="highlighter-rouge">state_pin</code> will detect if the door is closed, and</li>
<li>the <code class="highlighter-rouge">relay_pin</code> will trigger the door to open or close.</li>
</ul>
<p>Although you do not need Andrews Hillidays software controller when you run Home Assistant, he has written clear instructions on how to hook your garage door &amp; sensors up to your Raspberry Pi, which can be found <a href="https://github.com/andrewshilliday/garage-door-controller#hardware-setup">here</a>.</p>
<p>To enable Raspberry Pi Garage doors in your installation, add the following to your <code>configuration.yaml</code> file:</p>
<p>To enable Raspberry Pi Garage doors in your installation, add the following to your <code class="highlighter-rouge">configuration.yaml</code> file:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">garage_door</span>:
<span class="key">platform</span>: <span class="string"><span class="content">rpi_gpio</span></span>
<span class="key">doors</span>:
- <span class="string"><span class="content">relay_pin: 10</span></span>
<span class="key">state_pin</span>: <span class="string"><span class="content">11</span></span>
<span class="key">name</span>: <span class="string"><span class="content">'Left door'</span></span>
- <span class="string"><span class="content">relay_pin: 12</span></span>
<span class="key">state_pin</span>: <span class="string"><span class="content">13</span></span>
<span class="key">name</span>: <span class="string"><span class="content">'Right door'</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">garage_door</span><span class="pi">:</span>
<span class="s">platform</span><span class="pi">:</span> <span class="s">rpi_gpio</span>
<span class="s">doors</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">relay_pin</span><span class="pi">:</span> <span class="s">10</span>
<span class="s">state_pin</span><span class="pi">:</span> <span class="s">11</span>
<span class="s">name</span><span class="pi">:</span> <span class="s1">'</span><span class="s">Left</span><span class="nv"> </span><span class="s">door'</span>
<span class="pi">-</span> <span class="s">relay_pin</span><span class="pi">:</span> <span class="s">12</span>
<span class="s">state_pin</span><span class="pi">:</span> <span class="s">13</span>
<span class="s">name</span><span class="pi">:</span> <span class="s1">'</span><span class="s">Right</span><span class="nv"> </span><span class="s">door'</span>
</code></pre>
</div>
<p>Configuration variables:</p>

View file

@ -97,7 +97,7 @@
<p>As part of our agreement with Chamberlain, third-party access to control Chamberlain garage doors has been restricted. Please contact Chamberlain directly to inquire about permissions.</p>
</blockquote>
<p>~~The Wink garage door platform allows you to control your <a href="http://www.wink.com/">Wink</a> enabled garage door.~~</p>
<p><del>The Wink garage door platform allows you to control your <a href="http://www.wink.com/">Wink</a> enabled garage door.</del></p>
<p>The requirement is that you have setup your <a href="/components/wink/">Wink hub</a>.</p>

View file

@ -89,26 +89,24 @@
<hr class="divider">
<p>The <code>graphite</code> component records all events and state changes and feeds the data to a <a href="http://graphite.wikidot.com/">graphite</a> instance.</p>
<p>The <code class="highlighter-rouge">graphite</code> component records all events and state changes and feeds the data to a <a href="http://graphite.wikidot.com/">graphite</a> instance.</p>
<p>To enable this component, add the following lines to your <code>configuration.yaml</code>:</p>
<p>To enable this component, add the following lines to your <code class="highlighter-rouge">configuration.yaml</code>:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">graphite</span>:
<span class="key">host</span>: <span class="string"><span class="content">IP_ADDRESS</span></span>
<span class="key">port</span>: <span class="string"><span class="content">2003</span></span>
<span class="key">prefix</span>: <span class="string"><span class="content">ha</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">graphite</span><span class="pi">:</span>
<span class="s">host</span><span class="pi">:</span> <span class="s">IP_ADDRESS</span>
<span class="s">port</span><span class="pi">:</span> <span class="s">2003</span>
<span class="s">prefix</span><span class="pi">:</span> <span class="s">ha</span>
</code></pre>
</div>
<p>Configuration variables:</p>
<ul>
<li><strong>host</strong> (<em>Option</em>): IP address of your graphite host, eg. http://192.168.1.10. Defaults to <code>localhost</code></li>
<li><strong>host</strong> (<em>Option</em>): IP address of your graphite host, eg. http://192.168.1.10. Defaults to <code class="highlighter-rouge">localhost</code></li>
<li><strong>port</strong> (<em>Optional</em>): Port to use. Defaults to 2003.</li>
<li><strong>prefix</strong> (<em>Optional</em>): Prefix is the metric prefix in graphite. Defaults to <code>ha</code>.</li>
<li><strong>prefix</strong> (<em>Optional</em>): Prefix is the metric prefix in graphite. Defaults to <code class="highlighter-rouge">ha</code>.</li>
</ul>

View file

@ -89,36 +89,34 @@
<hr class="divider">
<p>Groups allow the user to combine multiple entities into one. A group can be promoted to a <strong>view</strong> by setting the <code>view</code> option to <code>yes</code>. This will make the group available as a new tab in the frontend.</p>
<p>Groups allow the user to combine multiple entities into one. A group can be promoted to a <strong>view</strong> by setting the <code class="highlighter-rouge">view</code> option to <code class="highlighter-rouge">yes</code>. This will make the group available as a new tab in the frontend.</p>
<p>Check the <strong>Set State</strong> page from the <strong>Developer Tools</strong> and browse the <strong>Current entities:</strong> listing for all available entities.</p>
<p>By default, every group appears in the HOME tab. If you name a group <code>default_view</code> it will REPLACE the contents of the HOME tab so you can customize it as you wish.</p>
<p>By default, every group appears in the HOME tab. If you name a group <code class="highlighter-rouge">default_view</code> it will REPLACE the contents of the HOME tab so you can customize it as you wish.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">group</span>:
<span class="key">default_view</span>:
<span class="key">view</span>: <span class="string"><span class="content">yes</span></span>
<span class="key">entities</span>:
- <span class="string"><span class="content">group.awesome_people</span></span>
- <span class="string"><span class="content">group.climate</span></span>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">group</span><span class="pi">:</span>
<span class="s">default_view</span><span class="pi">:</span>
<span class="s">view</span><span class="pi">:</span> <span class="s">yes</span>
<span class="s">entities</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">group.awesome_people</span>
<span class="pi">-</span> <span class="s">group.climate</span>
<span class="key">kitchen</span>:
<span class="key">name</span>: <span class="string"><span class="content">Kitchen</span></span>
<span class="key">entities</span>:
- <span class="string"><span class="content">switch.kitchen_pin_3</span></span>
<span class="key">upstairs</span>:
<span class="key">name</span>: <span class="string"><span class="content">Kids</span></span>
<span class="key">icon</span>: <span class="string"><span class="content">mdi:account-multiple</span></span>
<span class="key">view</span>: <span class="string"><span class="content">yes</span></span>
<span class="key">entities</span>:
- <span class="string"><span class="content">input_boolean.notify_home</span></span>
- <span class="string"><span class="content">camera.demo_camera</span></span>
- <span class="string"><span class="content">device_tracker.demo_paulus</span></span>
- <span class="string"><span class="content">group.garden</span></span>
</pre></div>
</div>
<span class="s">kitchen</span><span class="pi">:</span>
<span class="s">name</span><span class="pi">:</span> <span class="s">Kitchen</span>
<span class="s">entities</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">switch.kitchen_pin_3</span>
<span class="s">upstairs</span><span class="pi">:</span>
<span class="s">name</span><span class="pi">:</span> <span class="s">Kids</span>
<span class="s">icon</span><span class="pi">:</span> <span class="s">mdi:account-multiple</span>
<span class="s">view</span><span class="pi">:</span> <span class="s">yes</span>
<span class="s">entities</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">input_boolean.notify_home</span>
<span class="pi">-</span> <span class="s">camera.demo_camera</span>
<span class="pi">-</span> <span class="s">device_tracker.demo_paulus</span>
<span class="pi">-</span> <span class="s">group.garden</span>
</code></pre>
</div>
<p>Configuration variables:</p>
@ -137,26 +135,24 @@ Example of groups shown as views in the frontend.
<p>If all entities in a group are switches or lights then Home Assistant adds a switch at the top of the card that turns them all on/off at once.</p>
<p>You can create views (tabs) that contain other groups. <br />
Notice in the example below that in order to refer to the group “Living Room”, you use <code>group.living_room</code> (lowercase and spaces replaced with underscores).</p>
<p>You can create views (tabs) that contain other groups.<br />
Notice in the example below that in order to refer to the group “Living Room”, you use <code class="highlighter-rouge">group.living_room</code> (lowercase and spaces replaced with underscores).</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry that shows two groups, referred to in a view group (tab)</span>
<span class="key">Living Room</span>:
<span class="key">entities</span>:
- <span class="string"><span class="content">light.light_family_1</span></span>
- <span class="string"><span class="content">binary_sensor.motion_living</span></span>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry that shows two groups, referred to in a view group (tab)</span>
<span class="s">Living Room</span><span class="pi">:</span>
<span class="s">entities</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">light.light_family_1</span>
<span class="pi">-</span> <span class="s">binary_sensor.motion_living</span>
<span class="key">Bedroom</span>: <span class="string"><span class="content">light.light_bedroom, switch.sleeping</span></span>
<span class="s">Bedroom</span><span class="pi">:</span> <span class="s">light.light_bedroom, switch.sleeping</span>
<span class="key">Rooms</span>:
<span class="key">view</span>: <span class="string"><span class="content">yes </span></span>
<span class="key">name</span>: <span class="string"><span class="content">Rooms</span></span>
<span class="key">entities</span>:
- <span class="string"><span class="content">group.living_room </span></span>
- <span class="string"><span class="content">group.bedroom </span></span>
</pre></div>
</div>
<span class="s">Rooms</span><span class="pi">:</span>
<span class="s">view</span><span class="pi">:</span> <span class="s">yes</span>
<span class="s">name</span><span class="pi">:</span> <span class="s">Rooms</span>
<span class="s">entities</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">group.living_room</span>
<span class="pi">-</span> <span class="s">group.bedroom</span>
</code></pre>
</div>

View file

@ -89,7 +89,7 @@
<hr class="divider">
<p>The CEC component provides services that allow selecting the active device, powering on all devices, and setting all devices to standby. Devices are defined in the configuration file by associating HDMI port number and a device name. Connected devices that provide further HDMI ports, such as Soundbars and AVRs are also supported. Devices are listed from the perspective of the CEC-enabled Home Assistant device. Any connected device can be listed, regardless of whether it supports CEC. Ideally the HDMI port number on your device will map correctly the CEC physical address. If it does not, use <code>cec-client</code> (part of the <code>libcec</code> package) to listen to traffic on the CEC bus and discover the correct numbers.</p>
<p>The CEC component provides services that allow selecting the active device, powering on all devices, and setting all devices to standby. Devices are defined in the configuration file by associating HDMI port number and a device name. Connected devices that provide further HDMI ports, such as Soundbars and AVRs are also supported. Devices are listed from the perspective of the CEC-enabled Home Assistant device. Any connected device can be listed, regardless of whether it supports CEC. Ideally the HDMI port number on your device will map correctly the CEC physical address. If it does not, use <code class="highlighter-rouge">cec-client</code> (part of the <code class="highlighter-rouge">libcec</code> package) to listen to traffic on the CEC bus and discover the correct numbers.</p>
<h2><a class="title-link" name="cec-setup" href="#cec-setup"></a> CEC Setup</h2>
@ -99,77 +99,67 @@
<h3><a class="title-link" name="libcec" href="#libcec"></a> libcec</h3>
<p><a href="https://github.com/Pulse-Eight/libcec">libcec</a> must be installed for this component to work. Follow the installation instructions for your environment, provided at the link. <code>libcec</code> installs Python 3 bindings by default as a system Python module. If you are running Home Assistant in a <a href="/getting-started/installation-virtualenv/">Python virtual environment</a>, make sure it can access the system module, by either symlinking it or using the <code>--system-site-packages</code> flag.</p>
<p><a href="https://github.com/Pulse-Eight/libcec">libcec</a> must be installed for this component to work. Follow the installation instructions for your environment, provided at the link. <code class="highlighter-rouge">libcec</code> installs Python 3 bindings by default as a system Python module. If you are running Home Assistant in a <a href="/getting-started/installation-virtualenv/">Python virtual environment</a>, make sure it can access the system module, by either symlinking it or using the <code class="highlighter-rouge">--system-site-packages</code> flag.</p>
<h4><a class="title-link" name="symlinking-into-virtual-environment" href="#symlinking-into-virtual-environment"></a> Symlinking into virtual environment</h4>
<p>Create a symlink to the <code>cec</code> installation.</p>
<p>Create a symlink to the <code class="highlighter-rouge">cec</code> installation.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>$ ln -s /usr/local/lib/python3.4/dist-packages/cec /path/to/your/venv/lib/python3.4/site-packages
</pre></div>
</div>
<div class="language-bash highlighter-rouge"><pre class="highlight"><code><span class="gp">$ </span>ln -s /usr/local/lib/python3.4/dist-packages/cec /path/to/your/venv/lib/python3.4/site-packages
</code></pre>
</div>
<p>For the default virtual environment of a <a href="/getting-started/installation-raspberry-pi-all-in-one/">Raspberry Pi AIO</a> the command would be as follows.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>$ ln -s /usr/local/lib/python3.4/dist-packages/cec /srv/hass/hass_venv/lib/python3.4/site-packages
</pre></div>
</div>
<div class="language-bash highlighter-rouge"><pre class="highlight"><code><span class="gp">$ </span>ln -s /usr/local/lib/python3.4/dist-packages/cec /srv/hass/hass_venv/lib/python3.4/site-packages
</code></pre>
</div>
<p class="note">If after symlinking and adding <code>hdmi_cec:</code> to your configuration you are getting the following error in your logs,
<code>* failed to open vchiq instance</code> you will also need to add the user account Home Asssistant runs under, to the <code>video</code> group. To add the Home Assisitants user account to the <code>video</code> group, run the following command. <code>$ usermod -a -G video &lt;hass_user_account&gt;</code>
<p class="note">If after symlinking and adding <code class="highlighter-rouge">hdmi_cec:</code> to your configuration you are getting the following error in your logs,
<code class="highlighter-rouge">* failed to open vchiq instance</code> you will also need to add the user account Home Asssistant runs under, to the <code class="highlighter-rouge">video</code> group. To add the Home Assisitants user account to the <code class="highlighter-rouge">video</code> group, run the following command. <code class="highlighter-rouge">$ usermod -a -G video &lt;hass_user_account&gt;</code>
</p>
<h2><a class="title-link" name="configuration-example" href="#configuration-example"></a> Configuration Example</h2>
<p>In the following example, a Pi Zero running Home Assistant is on a TVs HDMI port 1. HDMI port 2 is attached to a AV receiver. Three devices are attached to the AV receiver on HDMI ports 1 through 3.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="key">hdmi_cec</span>:
<span class="key">devices</span>:
<span class="key">1</span>: <span class="string"><span class="content">Pi Zero</span></span>
<span class="key">2</span>:
<span class="key">1</span>: <span class="string"><span class="content">Fire TV Stick</span></span>
<span class="key">2</span>: <span class="string"><span class="content">Chromecast</span></span>
<span class="key">3</span>: <span class="string"><span class="content">Another Device</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="s">hdmi_cec</span><span class="pi">:</span>
<span class="s">devices</span><span class="pi">:</span>
<span class="s">1</span><span class="pi">:</span> <span class="s">Pi Zero</span>
<span class="s">2</span><span class="pi">:</span>
<span class="s">1</span><span class="pi">:</span> <span class="s">Fire TV Stick</span>
<span class="s">2</span><span class="pi">:</span> <span class="s">Chromecast</span>
<span class="s">3</span><span class="pi">:</span> <span class="s">Another Device</span>
</code></pre>
</div>
<h2><a class="title-link" name="services" href="#services"></a> Services</h2>
<h3><a class="title-link" name="select-device" href="#select-device"></a> Select Device</h3>
<p>Call the <code>hdmi_cec/select_device</code> service with the name of the device to select, for example:</p>
<p>Call the <code class="highlighter-rouge">hdmi_cec/select_device</code> service with the name of the device to select, for example:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>{
<span class="key"><span class="delimiter">&quot;</span><span class="content">device</span><span class="delimiter">&quot;</span></span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">Chromecast</span><span class="delimiter">&quot;</span></span>
}
</pre></div>
</div>
<div class="language-json highlighter-rouge"><pre class="highlight"><code><span class="p">{</span><span class="w">
</span><span class="nt">"device"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Chromecast"</span><span class="w">
</span><span class="p">}</span><span class="w">
</span></code></pre>
</div>
<p>So an Automation action using the example above would look something like this.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="key">action</span>:
<span class="key">service</span>: <span class="string"><span class="content">hdmi_cec.select_device</span><span class="content">
data:
device: Chromecast</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="s">action</span><span class="pi">:</span>
<span class="s">service</span><span class="pi">:</span> <span class="s">hdmi_cec.select_device</span>
<span class="s">data</span><span class="pi">:</span>
<span class="s">device</span><span class="pi">:</span> <span class="s">Chromecast</span>
</code></pre>
</div>
<h3><a class="title-link" name="power-on" href="#power-on"></a> Power On</h3>
<p>Call the <code>hdmi_cec/power_on</code> service (no arguments) to power on any devices that support this function.</p>
<p>Call the <code class="highlighter-rouge">hdmi_cec/power_on</code> service (no arguments) to power on any devices that support this function.</p>
<h3><a class="title-link" name="standby" href="#standby"></a> Standby</h3>
<p>Call the <code>hdmi_cec/standby</code> service (no arguments) to place in standby any devices that support this function.</p>
<p>Call the <code class="highlighter-rouge">hdmi_cec/standby</code> service (no arguments) to place in standby any devices that support this function.</p>
<h2><a class="title-link" name="useful-references" href="#useful-references"></a> Useful References</h2>

View file

@ -89,15 +89,13 @@
<hr class="divider">
<p>The <code>history</code> component will track everything that is going on within Home Assistant and allows the user to browse through it.</p>
<p>The <code class="highlighter-rouge">history</code> component will track everything that is going on within Home Assistant and allows the user to browse through it.</p>
<p>To enable the history option in your installation, add the following to your <code>configuration.yaml</code> file:</p>
<p>To enable the history option in your installation, add the following to your <code class="highlighter-rouge">configuration.yaml</code> file:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">history</span>:
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">history</span><span class="pi">:</span>
</code></pre>
</div>
<p class="img">
@ -112,34 +110,32 @@ Events are saved in a local database. Google Graphs is used to draw the graph. D
<h4><a class="title-link" name="implementation-details" href="#implementation-details"></a> Implementation details</h4>
<p>The history is stored in a SQLite database <code>home-assistant.db</code> within your config directory.</p>
<p>The history is stored in a SQLite database <code class="highlighter-rouge">home-assistant.db</code> within your config directory.</p>
<ul>
<li>events table is all events except <code>time_changed</code> that happened while recorder component was running.</li>
<li>states table contains all the <code>new_state</code> values of <code>state_changed</code> events.</li>
<li>events table is all events except <code class="highlighter-rouge">time_changed</code> that happened while recorder component was running.</li>
<li>states table contains all the <code class="highlighter-rouge">new_state</code> values of <code class="highlighter-rouge">state_changed</code> events.</li>
<li>Inside the states table you have:
<ul>
<li><code>entity_id</code>: the entity_id of the entity</li>
<li><code>state</code>: the state of the entity</li>
<li><code>attributes</code>: JSON of the state attributes</li>
<li><code>last_changed</code>: timestamp last time the state has changed. A state_changed event can happen when just attributes change.</li>
<li><code>last_updated</code>: timestamp anything has changed (state, attributes)</li>
<li><code>created</code>: timestamp this entry was inserted into the database</li>
<li><code class="highlighter-rouge">entity_id</code>: the entity_id of the entity</li>
<li><code class="highlighter-rouge">state</code>: the state of the entity</li>
<li><code class="highlighter-rouge">attributes</code>: JSON of the state attributes</li>
<li><code class="highlighter-rouge">last_changed</code>: timestamp last time the state has changed. A state_changed event can happen when just attributes change.</li>
<li><code class="highlighter-rouge">last_updated</code>: timestamp anything has changed (state, attributes)</li>
<li><code class="highlighter-rouge">created</code>: timestamp this entry was inserted into the database</li>
</ul>
</li>
</ul>
<p>When the history component queries the states table it only selects states where the state has changed: <code>WHERE last_changed=last_updated</code></p>
<p>When the history component queries the states table it only selects states where the state has changed: <code class="highlighter-rouge">WHERE last_changed=last_updated</code></p>
<h4><a class="title-link" name="on-dates" href="#on-dates"></a> On dates</h4>
<p>SQLite databases do not support native dates. Thats why all the dates are saved in seconds since the UNIX epoch. Convert them manually using this site or in Python:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="keyword">from</span> <span class="include">datetime</span> <span class="keyword">import</span> <span class="include">datetime</span>
datetime.fromtimestamp(<span class="integer">1422830502</span>)
</pre></div>
</div>
<div class="language-python highlighter-rouge"><pre class="highlight"><code><span class="kn">from</span> <span class="nn">datetime</span> <span class="kn">import</span> <span class="n">datetime</span>
<span class="n">datetime</span><span class="o">.</span><span class="n">fromtimestamp</span><span class="p">(</span><span class="mi">1422830502</span><span class="p">)</span>
</code></pre>
</div>
<h4><a class="title-link" name="api" href="#api"></a> API</h4>

View file

@ -103,19 +103,17 @@
<p>If you want to see if a specific device you have is supported, head over to the <a href="https://github.com/danielperna84/pyhomematic/tree/master/pyhomematic/devicetypes">pyhomematic</a> repository and browse through the sourcecode. A dictionary with the device identifiers (e.g. HM-Sec-SC-2) can be found within the relevant modules near the bottom.</p>
<p>We automatically detect all devices we currently support and try to generate useful names. If you enable name-resolving, we try to fetch names from Metadata (Homegear), via JSON-RPC or the XML-API you may have installed on your CCU. Since this may fail this is disabled by default.<br />
<p>We automatically detect all devices we currently support and try to generate useful names. If you enable name-resolving, we try to fetch names from Metadata (Homegear), via JSON-RPC or the XML-API you may have installed on your CCU. Since this may fail this is disabled by default.
You can manually override the created entities be using Home Assistants <a href="https://home-assistant.io/getting-started/customizing-devices/">Customizing</a> feature. With it you are able to hide entities you dont need to see within the UI.</p>
<p>To set up the component, add the following information to your <code>configuration.yaml</code> file:</p>
<p>To set up the component, add the following information to your <code class="highlighter-rouge">configuration.yaml</code> file:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="key">homematic</span>:
<span class="key">local_ip</span>: <span class="string"><span class="content">127.0.0.1</span></span>
<span class="key">local_port</span>: <span class="string"><span class="content">8943</span></span>
<span class="key">remote_ip</span>: <span class="string"><span class="content">127.0.0.1</span></span>
<span class="key">remote_port</span>: <span class="string"><span class="content">2001</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="s">homematic</span><span class="pi">:</span>
<span class="s">local_ip</span><span class="pi">:</span> <span class="s">127.0.0.1</span>
<span class="s">local_port</span><span class="pi">:</span> <span class="s">8943</span>
<span class="s">remote_ip</span><span class="pi">:</span> <span class="s">127.0.0.1</span>
<span class="s">remote_port</span><span class="pi">:</span> <span class="s">2001</span>
</code></pre>
</div>
<p>Configuration variables:</p>
@ -125,13 +123,13 @@ You can manually override the created entities be using Home Assistants <a href=
<li><strong>local_port</strong> (<em>Optional</em>): Port for connection with Home Assistant. Defaults to 8943.</li>
<li><strong>remote_ip</strong> (<em>Required</em>): IP of CCU/Homegear</li>
<li><strong>remote_port</strong> (<em>Optional</em>): Port of Homegear/CCU XML-RPC Server (usually 2001)</li>
<li><strong>resolvenames</strong> (<em>Optional</em>): &lt;metadata, json, xml&gt; Try to fetch device names. Defaults to <code>False</code> if not specified.</li>
<li><strong>resolvenames</strong> (<em>Optional</em>): &lt;metadata, json, xml&gt; Try to fetch device names. Defaults to <code class="highlighter-rouge">False</code> if not specified.</li>
<li><strong>username</strong> (<em>Optional</em>): When fetching names via JSON-RPC, you need to specify a user with guest-access to the CCU.</li>
<li><strong>password</strong> (<em>Optional</em>): When fetching names via JSON-RPC, you need to specify the password of the user you have configured above.</li>
<li><strong>delay</strong> (<em>Optional</em>): <float> Delay fetching of current state per deivce on startup. Used to prevent overloading of the CCU. Defaults to 0.5.</float></li>
<li><strong>delay</strong> (<em>Optional</em>): <Float> Delay fetching of current state per deivce on startup. Used to prevent overloading of the CCU. Defaults to 0.5.</Float></li>
</ul>
<p>To further explain the <code>resolvenames</code> option:<br />
<p>To further explain the <code class="highlighter-rouge">resolvenames</code> option:
We use three approaches to fetch the names of devices. Each assumes you have properly named your devices in your existing Homematic setup. As a general advice: Use ASCII for your devices names. Home Assistant wont include non-ASCII characters in entity-names.</p>
<ol>
@ -144,51 +142,47 @@ We use three approaches to fetch the names of devices. Each assumes you have pro
<p><strong>Devices with buttons</strong></p>
<p>Devices with buttons (e.g. HM-Sen-MDIR-WM55, remote controls) may not be fully visible in the UI. This is intended, as buttons dont serve any value here and all they do is trigger events.<br />
As an example:<br />
The HM-Sen-MDIR-WM55 motion detector will be displayed as 2 entities. A motion sensor and a brightness sensor. On top of that we have 2 sets (one set per button) of 4 events: PRESS_SHORT, PRESS_LONG, PRESS_CONT, PRESS_LONG_RELEASE. Be aware, that there are devices which dont provide all of these events. But in general: if you can press it, it at least has PRESS_SHORT.<br />
<p>Devices with buttons (e.g. HM-Sen-MDIR-WM55, remote controls) may not be fully visible in the UI. This is intended, as buttons dont serve any value here and all they do is trigger events.
As an example:
The HM-Sen-MDIR-WM55 motion detector will be displayed as 2 entities. A motion sensor and a brightness sensor. On top of that we have 2 sets (one set per button) of 4 events: PRESS_SHORT, PRESS_LONG, PRESS_CONT, PRESS_LONG_RELEASE. Be aware, that there are devices which dont provide all of these events. But in general: if you can press it, it at least has PRESS_SHORT.
Heres an example of how to use these events for automations:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="key">automation</span>:
<span class="key">trigger</span>:
<span class="key">platform</span>: <span class="string"><span class="content">event</span></span>
<span class="key">event_type</span>: <span class="string"><span class="content">homematic.keypress</span></span>
<span class="key">event_data</span>:
<span class="key">name</span>: <span class="string"><span class="content">Kitchen Switch</span></span>
<span class="key">channel</span>: <span class="string"><span class="content">1</span></span>
<span class="key">param</span>: <span class="string"><span class="content">PRESS_SHORT</span></span>
<span class="key">action</span>:
<span class="key">service</span>: <span class="string"><span class="content">switch.turn_on</span></span>
<span class="key">entity_id</span>: <span class="string"><span class="content">switch.Kitchen_Ambience</span></span>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="s">automation</span><span class="pi">:</span>
<span class="s">trigger</span><span class="pi">:</span>
<span class="s">platform</span><span class="pi">:</span> <span class="s">event</span>
<span class="s">event_type</span><span class="pi">:</span> <span class="s">homematic.keypress</span>
<span class="s">event_data</span><span class="pi">:</span>
<span class="s">name</span><span class="pi">:</span> <span class="s">Kitchen Switch</span>
<span class="s">channel</span><span class="pi">:</span> <span class="s">1</span>
<span class="s">param</span><span class="pi">:</span> <span class="s">PRESS_SHORT</span>
<span class="s">action</span><span class="pi">:</span>
<span class="s">service</span><span class="pi">:</span> <span class="s">switch.turn_on</span>
<span class="s">entity_id</span><span class="pi">:</span> <span class="s">switch.Kitchen_Ambience</span>
</pre></div>
</div>
</code></pre>
</div>
<p>The channel parameter is equal to the channel of the button you are configuring the automation for. You can view the available channels in the UI you use to pair your devices.<br />
<p>The channel parameter is equal to the channel of the button you are configuring the automation for. You can view the available channels in the UI you use to pair your devices.
The name depends on if you chose to resolve names or not. If not, it will be the device ID (e.g. LEQ1234657). If you chose to resolve names (and that is successful), it will be the name you have set in your CCU or in the metadata (e.g. “Kitchen Switch”).</p>
<p><strong>Other events</strong></p>
<p><em>homematic.keypress</em> see above.<br />
<p><em>homematic.keypress</em> see above.
<em>homematic.impulse</em> for impulse sensors with event_data name and channel.</p>
<p><strong>Service</strong></p>
<p><em>homematic/virtualkey</em> simulate a keypress on CCU/Homegear with device or virtual keys.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="head"><span class="head">...</span></span>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="nn">...</span>
<span class="key">action</span>:
<span class="key">service</span>: <span class="string"><span class="content">homematic.virtualkey</span></span>
<span class="key">data</span>:
<span class="key">address</span>: <span class="string"><span class="content">BidCoS-RF</span></span>
<span class="key">channel</span>: <span class="string"><span class="content">1</span></span>
<span class="key">param</span>: <span class="string"><span class="content">PRESS_LONG</span></span>
</pre></div>
</div>
<span class="s">action</span><span class="pi">:</span>
<span class="s">service</span><span class="pi">:</span> <span class="s">homematic.virtualkey</span>
<span class="s">data</span><span class="pi">:</span>
<span class="s">address</span><span class="pi">:</span> <span class="s">BidCoS-RF</span>
<span class="s">channel</span><span class="pi">:</span> <span class="s">1</span>
<span class="s">param</span><span class="pi">:</span> <span class="s">PRESS_LONG</span>
</code></pre>
</div>

View file

@ -89,24 +89,22 @@
<hr class="divider">
<p>The <code>http</code> component serves all files and data required for the Home Assistant frontend. You only need to add this to your configuration file if you want to change any of the default settings.</p>
<p>The <code class="highlighter-rouge">http</code> component serves all files and data required for the Home Assistant frontend. You only need to add this to your configuration file if you want to change any of the default settings.</p>
<p class="note warning">
Its HIGHLY recommended that you set the <code>api_password</code>, especially if you are planning to expose your installation to the internet.
Its HIGHLY recommended that you set the <code class="highlighter-rouge">api_password</code>, especially if you are planning to expose your installation to the internet.
</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">http</span>:
<span class="key">api_password</span>: <span class="string"><span class="content">YOUR_PASSWORD</span></span>
<span class="key">server_port</span>: <span class="string"><span class="content">12345</span></span>
<span class="key">ssl_certificate</span>: <span class="string"><span class="content">/etc/letsencrypt/live/hass.example.com/fullchain.pem</span></span>
<span class="key">ssl_key</span>: <span class="string"><span class="content">/etc/letsencrypt/live/hass.example.com/privkey.pem</span></span>
<span class="key">cors_allowed_origins</span>:
- <span class="string"><span class="content">https://google.com</span></span>
- <span class="string"><span class="content">https://home-assistant.io</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">http</span><span class="pi">:</span>
<span class="s">api_password</span><span class="pi">:</span> <span class="s">YOUR_PASSWORD</span>
<span class="s">server_port</span><span class="pi">:</span> <span class="s">12345</span>
<span class="s">ssl_certificate</span><span class="pi">:</span> <span class="s">/etc/letsencrypt/live/hass.example.com/fullchain.pem</span>
<span class="s">ssl_key</span><span class="pi">:</span> <span class="s">/etc/letsencrypt/live/hass.example.com/privkey.pem</span>
<span class="s">cors_allowed_origins</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">https://google.com</span>
<span class="pi">-</span> <span class="s">https://home-assistant.io</span>
</code></pre>
</div>
<p>Configuration variables:</p>
@ -118,14 +116,14 @@ Its HIGHLY recommended that you set the <code>api_password</code>, especially
<li><strong>development</strong> (<em>Optional</em>): Disable caching and load unvulcanized assets. Useful for Frontend development.</li>
<li><strong>ssl_certificate</strong> (<em>Optional</em>): Path to your TLS/SSL certificate to serve Home Assistant over a secure connection.</li>
<li><strong>ssl_key</strong> (<em>Optional</em>): Path to your TLS/SSL key to serve Home Assistant over a secure connection.</li>
<li><strong>cors_allowed_origins</strong> (<em>Optional</em>): A list of origin domain names to allow <a href="https://en.wikipedia.org/wiki/Cross-origin_resource_sharing">CORS</a> requests from. Enabling this will set the <code>Access-Control-Allow-Origin</code> header to the Origin header if it is found in the list, and the <code>Access-Control-Allow-Headers</code> header to <code>Origin, Accept, X-Requested-With, Content-type, X-HA-access</code>. You must provide the exact Origin, i.e. <code>https://home-assistant.io</code> will allow requests from <code>https://home-assistant.io</code> but <strong>not</strong> <code>http://home-assistant.io</code>.</li>
<li><strong>cors_allowed_origins</strong> (<em>Optional</em>): A list of origin domain names to allow <a href="https://en.wikipedia.org/wiki/Cross-origin_resource_sharing">CORS</a> requests from. Enabling this will set the <code class="highlighter-rouge">Access-Control-Allow-Origin</code> header to the Origin header if it is found in the list, and the <code class="highlighter-rouge">Access-Control-Allow-Headers</code> header to <code class="highlighter-rouge">Origin, Accept, X-Requested-With, Content-type, X-HA-access</code>. You must provide the exact Origin, i.e. <code class="highlighter-rouge">https://home-assistant.io</code> will allow requests from <code class="highlighter-rouge">https://home-assistant.io</code> but <strong>not</strong> <code class="highlighter-rouge">http://home-assistant.io</code>.</li>
</ul>
<p>The <a href="/blog/2015/12/13/setup-encryption-using-lets-encrypt/">Set up encryption using Lets Encrypt</a> blog post gives you details about the encryption of your traffic using free certificates from <a href="https://letsencrypt.org/">Lets Encrypt</a>.</p>
<p>On top of the <code>http</code> component is a <a href="/developers/rest_api/">REST API</a> and a <a href="/developers/python_api/">Python API</a> available. There is also support for <a href="/developers/server_sent_events/">Server-sent events</a> available.</p>
<p>On top of the <code class="highlighter-rouge">http</code> component is a <a href="/developers/rest_api/">REST API</a> and a <a href="/developers/python_api/">Python API</a> available. There is also support for <a href="/developers/server_sent_events/">Server-sent events</a> available.</p>
<p>The <code>http</code> platforms are not real platforms within the meaning of the terminology used around Home Assistant. Home Assistants <a href="/developers/rest_api/">REST API</a> sends and receives messages over HTTP.</p>
<p>The <code class="highlighter-rouge">http</code> platforms are not real platforms within the meaning of the terminology used around Home Assistant. Home Assistants <a href="/developers/rest_api/">REST API</a> sends and receives messages over HTTP.</p>
<p>To use those kind of <a href="/components/sensor.http/">sensors</a> or <a href="components/binary_sensor.http/">binary sensors</a> in your installation no configuration in Home Assistant is needed. All configuration is done on the devices themselves. This means that you must be able to edit the target URL or endpoint and the payload. The entity will be created after the first message has arrived.</p>

View file

@ -89,7 +89,7 @@
<hr class="divider">
<p>To get your Z-Wave <code>hvac</code> devices working with Home Assistant, follow the instructions for the general <a href="/components/zwave/">Z-Wave component</a> and the <a href="/components/hvac/">HVAC component</a>.</p>
<p>To get your Z-Wave <code class="highlighter-rouge">hvac</code> devices working with Home Assistant, follow the instructions for the general <a href="/components/zwave/">Z-Wave component</a> and the <a href="/components/hvac/">HVAC component</a>.</p>
</article>

View file

@ -89,16 +89,14 @@
<hr class="divider">
<p>The <code>hvac</code> component is built for the controlling and monitoring of HVAC (heating, ventilating, and air conditioning) devices.</p>
<p>The <code class="highlighter-rouge">hvac</code> component is built for the controlling and monitoring of HVAC (heating, ventilating, and air conditioning) devices.</p>
<p>To enable this component, pick one of the platforms and add it to your <code>configuration.yaml</code>:</p>
<p>To enable this component, pick one of the platforms and add it to your <code class="highlighter-rouge">configuration.yaml</code>:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">hvac</span>:
<span class="key">platform</span>: <span class="string"><span class="content">demo</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">hvac</span><span class="pi">:</span>
<span class="s">platform</span><span class="pi">:</span> <span class="s">demo</span>
</code></pre>
</div>

View file

@ -95,44 +95,42 @@
<p>After setting up IFTTT, Maker Channel and ManyThing Channel, you can use the following examples to configure Home Assistant.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">automation</span>:
- <span class="string"><span class="content">alias: 'ManyThing Recording ON'</span></span>
<span class="comment"># This calls an IFTTT recipe to turn on recording of the ManyThing Camera</span>
<span class="comment"># if we leave the house during the day.</span>
<span class="key">trigger</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">'not_home'</span></span>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">automation</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">alias</span><span class="pi">:</span> <span class="s1">'</span><span class="s">ManyThing</span><span class="nv"> </span><span class="s">Recording</span><span class="nv"> </span><span class="s">ON'</span>
<span class="c1"># This calls an IFTTT recipe to turn on recording of the ManyThing Camera</span>
<span class="c1"># if we leave the house during the day.</span>
<span class="s">trigger</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">platform</span><span class="pi">:</span> <span class="s">state</span>
<span class="s">entity_id</span><span class="pi">:</span> <span class="s">group.all_devices</span>
<span class="s">state</span><span class="pi">:</span> <span class="s1">'</span><span class="s">not_home'</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">sun.sun</span></span>
<span class="key">state</span>: <span class="string"><span class="content">'above_horizon'</span></span>
<span class="s">condition</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">platform</span><span class="pi">:</span> <span class="s">state</span>
<span class="s">entity_id</span><span class="pi">:</span> <span class="s">sun.sun</span>
<span class="s">state</span><span class="pi">:</span> <span class="s1">'</span><span class="s">above_horizon'</span>
<span class="key">action</span>:
<span class="key">service</span>: <span class="string"><span class="content">ifttt.trigger</span></span>
<span class="key">data</span>: <span class="string"><span class="content">{&quot;event&quot;:&quot;manything_on&quot;}</span></span>
<span class="s">action</span><span class="pi">:</span>
<span class="s">service</span><span class="pi">:</span> <span class="s">ifttt.trigger</span>
<span class="s">data</span><span class="pi">:</span> <span class="pi">{</span><span class="s2">"</span><span class="s">event"</span><span class="pi">:</span><span class="s2">"</span><span class="s">manything_on"</span><span class="pi">}</span>
- <span class="string"><span class="content">alias: 'ManyThing Recording OFF'</span></span>
<span class="comment"># This calls an IFTTT recipe to turn off recording of the ManyThing Camera</span>
<span class="comment"># when we are home unless it's nighttime.</span>
<span class="key">trigger</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: state</span></span>
<span class="key">entity_id</span>: <span class="string"><span class="content">sun.sun</span></span>
<span class="key">state</span>: <span class="string"><span class="content">'above_horizon'</span></span>
<span class="pi">-</span> <span class="s">alias</span><span class="pi">:</span> <span class="s1">'</span><span class="s">ManyThing</span><span class="nv"> </span><span class="s">Recording</span><span class="nv"> </span><span class="s">OFF'</span>
<span class="c1"># This calls an IFTTT recipe to turn off recording of the ManyThing Camera</span>
<span class="c1"># when we are home unless it's nighttime.</span>
<span class="s">trigger</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">platform</span><span class="pi">:</span> <span class="s">state</span>
<span class="s">entity_id</span><span class="pi">:</span> <span class="s">group.all_devices</span>
<span class="s">state</span><span class="pi">:</span> <span class="s1">'</span><span class="s">home'</span>
<span class="pi">-</span> <span class="s">platform</span><span class="pi">:</span> <span class="s">state</span>
<span class="s">entity_id</span><span class="pi">:</span> <span class="s">sun.sun</span>
<span class="s">state</span><span class="pi">:</span> <span class="s1">'</span><span class="s">above_horizon'</span>
<span class="key">condition</span>: <span class="string"><span class="content">use_trigger_values</span></span>
<span class="s">condition</span><span class="pi">:</span> <span class="s">use_trigger_values</span>
<span class="key">action</span>:
<span class="key">service</span>: <span class="string"><span class="content">ifttt.trigger</span></span>
<span class="key">data</span>: <span class="string"><span class="content">{&quot;event&quot;:&quot;manything_off&quot;}</span></span>
</pre></div>
</div>
<span class="s">action</span><span class="pi">:</span>
<span class="s">service</span><span class="pi">:</span> <span class="s">ifttt.trigger</span>
<span class="s">data</span><span class="pi">:</span> <span class="pi">{</span><span class="s2">"</span><span class="s">event"</span><span class="pi">:</span><span class="s2">"</span><span class="s">manything_off"</span><span class="pi">}</span>
</code></pre>
</div>
<h3><a class="title-link" name="setting-up-a-recipe" href="#setting-up-a-recipe"></a> Setting up a recipe</h3>
@ -140,7 +138,7 @@
<p class="img">
<img src="/images/components/ifttt/IFTTT_manything_trigger.png" />
You need to setup a unique trigger for each event you sent to IFTTT.
For ManyThing support, you need to set up an <code>on</code> and <code>off</code> event.
For ManyThing support, you need to set up an <code class="highlighter-rouge">on</code> and <code class="highlighter-rouge">off</code> event.
</p>
<h3><a class="title-link" name="testing-your-trigger" href="#testing-your-trigger"></a> Testing your trigger</h3>
@ -157,15 +155,15 @@ For ManyThing support, you need to set up an <code>on</code> and <code>off</code
<tbody>
<tr>
<td>domain</td>
<td><code>ifttt</code></td>
<td><code class="highlighter-rouge">ifttt</code></td>
</tr>
<tr>
<td>service</td>
<td><code>trigger</code></td>
<td><code class="highlighter-rouge">trigger</code></td>
</tr>
<tr>
<td>Service Data</td>
<td><code>{"event": "manything_on"}</code></td>
<td><code class="highlighter-rouge"><span class="p">{</span><span class="nt">"event"</span><span class="p">:</span><span class="w"> </span><span class="s2">"manything_on"</span><span class="p">}</span></code></td>
</tr>
</tbody>
</table>

View file

@ -91,12 +91,10 @@
<p><a href="https://ifttt.com">IFTTT</a> is a web service that allows users to create chains of simple conditional statements, so called “recipes”. With the IFTTT component you can trigger recipes through the “maker” channel. See the <a href="/blog/2015/09/13/home-assistant-meets-ifttt/">announcement blog post</a> for examples how to use it.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">ifttt</span>:
<span class="key">key</span>: <span class="string"><span class="content">xxxxx-x-xxxxxxxxxxxxx</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">ifttt</span><span class="pi">:</span>
<span class="s">key</span><span class="pi">:</span> <span class="s">xxxxx-x-xxxxxxxxxxxxx</span>
</code></pre>
</div>
<p>Key is your API key which can be obtained by viewing the properties of the <a href="https://ifttt.com/maker">Maker Channel</a>.</p>
@ -106,7 +104,7 @@
Property screen of the Maker Channel
</p>
<p>Once you have added your key to <code>configuration.yaml</code>, restart your Home Assistant server. This will load up the IFTTT component and make a service available to trigger events in IFTTT.</p>
<p>Once you have added your key to <code class="highlighter-rouge">configuration.yaml</code>, restart your Home Assistant server. This will load up the IFTTT component and make a service available to trigger events in IFTTT.</p>
<p class="note">
After restarting the server, be sure to watch the console for any logging errors that show up in red, white or yellow.
@ -126,15 +124,15 @@ After restarting the server, be sure to watch the console for any logging errors
<tbody>
<tr>
<td>domain</td>
<td><code>ifttt</code></td>
<td><code class="highlighter-rouge">ifttt</code></td>
</tr>
<tr>
<td>service</td>
<td><code>trigger</code></td>
<td><code class="highlighter-rouge">trigger</code></td>
</tr>
<tr>
<td>Service Data</td>
<td><code>{"event": "EventName", "value1": "Hello World"}</code></td>
<td><code class="highlighter-rouge"><span class="p">{</span><span class="nt">"event"</span><span class="p">:</span><span class="w"> </span><span class="s2">"EventName"</span><span class="p">,</span><span class="w"> </span><span class="nt">"value1"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Hello World"</span><span class="p">}</span></code></td>
</tr>
</tbody>
</table>

View file

@ -103,7 +103,7 @@ Support for these components is provided by the Home Assistant community.
<div class="grid__item one-sixth lap-one-whole palm-one-whole">
<div class="filter-button-group">
<a href='#all' class="btn">All (349)</a>
<a href='#all' class="btn">All (364)</a>
<a href='#featured' class="btn featured">Featured</a>

View file

@ -89,30 +89,28 @@
<hr class="divider">
<p>The <code>influxdb</code> component makes it possible to transfer all state changes to an external <a href="https://influxdb.com/">InfluxDB</a> database. For more details, <a href="/blog/2015/12/07/influxdb-and-grafana/">see the blog post on InfluxDB</a>.</p>
<p>The <code class="highlighter-rouge">influxdb</code> component makes it possible to transfer all state changes to an external <a href="https://influxdb.com/">InfluxDB</a> database. For more details, <a href="/blog/2015/12/07/influxdb-and-grafana/">see the blog post on InfluxDB</a>.</p>
<p>To use the <code>influxdb</code> component in your installation, add the following to your <code>configuration.yaml</code> file:</p>
<p>To use the <code class="highlighter-rouge">influxdb</code> component in your installation, add the following to your <code class="highlighter-rouge">configuration.yaml</code> file:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">influxdb</span>:
<span class="key">host</span>: <span class="string"><span class="content">DB_HOST_IP_ADDRESS</span></span>
<span class="key">port</span>: <span class="string"><span class="content">20000</span></span>
<span class="key">database</span>: <span class="string"><span class="content">DB_TO_STORE_EVENTS</span></span>
<span class="key">username</span>: <span class="string"><span class="content">MY_USERNAME</span></span>
<span class="key">password</span>: <span class="string"><span class="content">MY_PASSWORD</span></span>
<span class="key">ssl</span>: <span class="string"><span class="content">true</span></span>
<span class="key">verify_ssl</span>: <span class="string"><span class="content">true</span></span>
<span class="key">blacklist</span>:
- <span class="string"><span class="content">entity.id1</span></span>
- <span class="string"><span class="content">entity.id2</span></span>
<span class="key">whitelist</span>:
- <span class="string"><span class="content">entity.id3</span></span>
- <span class="string"><span class="content">entity.id4</span></span>
<span class="key">tags</span>:
- <span class="string"><span class="content">instance: prod</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">influxdb</span><span class="pi">:</span>
<span class="s">host</span><span class="pi">:</span> <span class="s">DB_HOST_IP_ADDRESS</span>
<span class="s">port</span><span class="pi">:</span> <span class="s">20000</span>
<span class="s">database</span><span class="pi">:</span> <span class="s">DB_TO_STORE_EVENTS</span>
<span class="s">username</span><span class="pi">:</span> <span class="s">MY_USERNAME</span>
<span class="s">password</span><span class="pi">:</span> <span class="s">MY_PASSWORD</span>
<span class="s">ssl</span><span class="pi">:</span> <span class="s">true</span>
<span class="s">verify_ssl</span><span class="pi">:</span> <span class="s">true</span>
<span class="s">blacklist</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">entity.id1</span>
<span class="pi">-</span> <span class="s">entity.id2</span>
<span class="s">whitelist</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">entity.id3</span>
<span class="pi">-</span> <span class="s">entity.id4</span>
<span class="s">tags</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">instance</span><span class="pi">:</span> <span class="s">prod</span>
</code></pre>
</div>
<p>Configuration variables:</p>
@ -120,7 +118,7 @@
<ul>
<li><strong>host</strong> (<em>Required</em>): IP address of your database host, eg. http://192.168.1.10.</li>
<li><strong>port</strong> (<em>Optional</em>): Port to use. Defaults to 8086.</li>
<li><strong>database</strong> (<em>Optional</em>): Name of the database to use. Defaults to <code>home_assistant</code>. The database must already exist.</li>
<li><strong>database</strong> (<em>Optional</em>): Name of the database to use. Defaults to <code class="highlighter-rouge">home_assistant</code>. The database must already exist.</li>
<li><strong>username</strong> (<em>Optional</em>): The username of the database user.</li>
<li><strong>password</strong> (<em>Optional</em>): The password for the database user account.</li>
<li><strong>ssl</strong> (<em>Optional</em>): Use https instead of http to connect. Defaults to false.</li>

View file

@ -89,17 +89,15 @@
<hr class="divider">
<p>The <code>input_boolean</code> component allows the user to define boolean values that can be controlled via the frontend and can be used within conditions of automation. This can for example be used to disable or enable certain automations.</p>
<p>The <code class="highlighter-rouge">input_boolean</code> component allows the user to define boolean values that can be controlled via the frontend and can be used within conditions of automation. This can for example be used to disable or enable certain automations.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">input_boolean</span>:
<span class="key">notify_home</span>:
<span class="key">name</span>: <span class="string"><span class="content">Notify when someone arrives home</span></span>
<span class="key">initial</span>: <span class="string"><span class="content">off</span></span>
<span class="key">icon</span>: <span class="string"><span class="content">mdi:car</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">input_boolean</span><span class="pi">:</span>
<span class="s">notify_home</span><span class="pi">:</span>
<span class="s">name</span><span class="pi">:</span> <span class="s">Notify when someone arrives home</span>
<span class="s">initial</span><span class="pi">:</span> <span class="s">off</span>
<span class="s">icon</span><span class="pi">:</span> <span class="s">mdi:car</span>
</code></pre>
</div>
<p>Configuration variables:</p>
@ -111,28 +109,26 @@
<li><strong>icon</strong> (<em>Optional</em>): Icon for entry.</li>
</ul>
<p>Pick an icon that you can find on <a href="https://materialdesignicons.com/">materialdesignicons.com</a> to use for your input and prefix the name with <code>mdi:</code>. For example <code>mdi:car</code>, <code>mdi:ambulance</code>, or <code>mdi:motorbike</code>.</p>
<p>Pick an icon that you can find on <a href="https://materialdesignicons.com/">materialdesignicons.com</a> to use for your input and prefix the name with <code class="highlighter-rouge">mdi:</code>. For example <code class="highlighter-rouge">mdi:car</code>, <code class="highlighter-rouge">mdi:ambulance</code>, or <code class="highlighter-rouge">mdi:motorbike</code>.</p>
<p>Heres an example of an automation using the above input_boolean. This action will only occur if the switch is on.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="key">automation</span>:
<span class="key">alias</span>: <span class="string"><span class="content">Arriving home</span></span>
<span class="key">trigger</span>:
<span class="key">platform</span>: <span class="string"><span class="content">state</span></span>
<span class="key">entity_id</span>: <span class="string"><span class="content">binary_sensor.motion_garage</span></span>
<span class="key">to</span>: <span class="string"><span class="content">'on'</span></span>
<span class="key">condition</span>:
<span class="key">platform</span>: <span class="string"><span class="content">state</span></span>
<span class="key">entity_id</span>: <span class="string"><span class="content">input_boolean.notify_home</span></span>
<span class="key">state</span>: <span class="string"><span class="content">'on'</span></span>
<span class="key">action</span>:
<span class="key">service</span>: <span class="string"><span class="content">notify.pushbullet</span></span>
<span class="key">data</span>:
<span class="key">title</span>: <span class="string"><span class="delimiter">&quot;</span><span class="delimiter">&quot;</span></span>
<span class="key">message</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">Honey, I'm home!</span><span class="delimiter">&quot;</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="s">automation</span><span class="pi">:</span>
<span class="s">alias</span><span class="pi">:</span> <span class="s">Arriving home</span>
<span class="s">trigger</span><span class="pi">:</span>
<span class="s">platform</span><span class="pi">:</span> <span class="s">state</span>
<span class="s">entity_id</span><span class="pi">:</span> <span class="s">binary_sensor.motion_garage</span>
<span class="s">to</span><span class="pi">:</span> <span class="s1">'</span><span class="s">on'</span>
<span class="s">condition</span><span class="pi">:</span>
<span class="s">platform</span><span class="pi">:</span> <span class="s">state</span>
<span class="s">entity_id</span><span class="pi">:</span> <span class="s">input_boolean.notify_home</span>
<span class="s">state</span><span class="pi">:</span> <span class="s1">'</span><span class="s">on'</span>
<span class="s">action</span><span class="pi">:</span>
<span class="s">service</span><span class="pi">:</span> <span class="s">notify.pushbullet</span>
<span class="s">data</span><span class="pi">:</span>
<span class="s">title</span><span class="pi">:</span> <span class="s2">"</span><span class="s">"</span>
<span class="s">message</span><span class="pi">:</span> <span class="s2">"</span><span class="s">Honey,</span><span class="nv"> </span><span class="s">I'm</span><span class="nv"> </span><span class="s">home!"</span>
</code></pre>
</div>

View file

@ -89,27 +89,25 @@
<hr class="divider">
<p>The <code>input_select</code> component allows the user to define a list of values that can be selected via the frontend and can be used within conditions of automation. When a user selectes a new item, a state transition event is generated. This state event can be used in an <code>automation</code> trigger.</p>
<p>The <code class="highlighter-rouge">input_select</code> component allows the user to define a list of values that can be selected via the frontend and can be used within conditions of automation. When a user selectes a new item, a state transition event is generated. This state event can be used in an <code class="highlighter-rouge">automation</code> trigger.</p>
<p>To enable this platform, add the following lines to your <code>configuration.yaml</code>:</p>
<p>To enable this platform, add the following lines to your <code class="highlighter-rouge">configuration.yaml</code>:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">input_select</span>:
<span class="key">who_cooks</span>:
<span class="key">name</span>: <span class="string"><span class="content">Who cooks today</span></span>
<span class="key">options</span>:
- <span class="string"><span class="content">Paulus</span></span>
- <span class="string"><span class="content">Anne Therese</span></span>
<span class="key">initial</span>: <span class="string"><span class="content">Anne Therese</span></span>
<span class="key">icon</span>: <span class="string"><span class="content">mdi:panda</span></span>
<span class="key">living_room_preset</span>:
<span class="key">options</span>:
- <span class="string"><span class="content">Visitors</span></span>
- <span class="string"><span class="content">Visitors with kids</span></span>
- <span class="string"><span class="content">Home Alone</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">input_select</span><span class="pi">:</span>
<span class="s">who_cooks</span><span class="pi">:</span>
<span class="s">name</span><span class="pi">:</span> <span class="s">Who cooks today</span>
<span class="s">options</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">Paulus</span>
<span class="pi">-</span> <span class="s">Anne Therese</span>
<span class="s">initial</span><span class="pi">:</span> <span class="s">Anne Therese</span>
<span class="s">icon</span><span class="pi">:</span> <span class="s">mdi:panda</span>
<span class="s">living_room_preset</span><span class="pi">:</span>
<span class="s">options</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">Visitors</span>
<span class="pi">-</span> <span class="s">Visitors with kids</span>
<span class="pi">-</span> <span class="s">Home Alone</span>
</code></pre>
</div>
<p>Configuration variables:</p>
@ -122,7 +120,7 @@
<li><strong>icon</strong> (<em>Optional</em>): Icon for entry.</li>
</ul>
<p>Pick an icon that you can find on <a href="https://materialdesignicons.com/">materialdesignicons.com</a> to use for your input and prefix the name with <code>mdi:</code>. For example <code>mdi:car</code>, <code>mdi:ambulance</code>, or <code>mdi:motorbike</code>.</p>
<p>Pick an icon that you can find on <a href="https://materialdesignicons.com/">materialdesignicons.com</a> to use for your input and prefix the name with <code class="highlighter-rouge">mdi:</code>. For example <code class="highlighter-rouge">mdi:car</code>, <code class="highlighter-rouge">mdi:ambulance</code>, or <code class="highlighter-rouge">mdi:motorbike</code>.</p>

View file

@ -89,19 +89,17 @@
<hr class="divider">
<p>The <code>input_slider</code> component allows the user to define values that can be controlled via the frontend and can be used within conditions of automation. Changes to the slider generate state events. These state events can be utilized as <code>automation</code> triggers as well.</p>
<p>The <code class="highlighter-rouge">input_slider</code> component allows the user to define values that can be controlled via the frontend and can be used within conditions of automation. Changes to the slider generate state events. These state events can be utilized as <code class="highlighter-rouge">automation</code> triggers as well.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">input_slider</span>:
<span class="key">slider1</span>:
<span class="key">name</span>: <span class="string"><span class="content">Slider 1</span></span>
<span class="key">initial</span>: <span class="string"><span class="content">30</span></span>
<span class="key">min</span>: <span class="string"><span class="content">-20</span></span>
<span class="key">max</span>: <span class="string"><span class="content">35</span></span>
<span class="key">step</span>: <span class="string"><span class="content">1</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">input_slider</span><span class="pi">:</span>
<span class="s">slider1</span><span class="pi">:</span>
<span class="s">name</span><span class="pi">:</span> <span class="s">Slider 1</span>
<span class="s">initial</span><span class="pi">:</span> <span class="s">30</span>
<span class="s">min</span><span class="pi">:</span> <span class="s">-20</span>
<span class="s">max</span><span class="pi">:</span> <span class="s">35</span>
<span class="s">step</span><span class="pi">:</span> <span class="s">1</span>
</code></pre>
</div>
<p>Configuration variables:</p>
@ -117,82 +115,78 @@
<h2><a class="title-link" name="automation-examples" href="#automation-examples"></a> Automation Examples</h2>
<p>Heres an example of <code>input_slider</code> being used as a trigger in an automation.</p>
<p>Heres an example of <code class="highlighter-rouge">input_slider</code> being used as a trigger in an automation.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>
<span class="comment"># Example configuration.yaml entry using 'input_slider' as a trigger in an automation</span>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code>
<span class="c1"># Example configuration.yaml entry using 'input_slider' as a trigger in an automation</span>
<span class="comment"># Define input_slider</span>
<span class="key">input_slider</span>:
<span class="key">bedroom_brightness</span>:
<span class="key">name</span>: <span class="string"><span class="content">Brightness</span></span>
<span class="key">initial</span>: <span class="string"><span class="content">254</span></span>
<span class="key">min</span>: <span class="string"><span class="content">0</span></span>
<span class="key">max</span>: <span class="string"><span class="content">254</span></span>
<span class="key">step</span>: <span class="string"><span class="content">1</span></span>
<span class="c1"># Define input_slider</span>
<span class="s">input_slider</span><span class="pi">:</span>
<span class="s">bedroom_brightness</span><span class="pi">:</span>
<span class="s">name</span><span class="pi">:</span> <span class="s">Brightness</span>
<span class="s">initial</span><span class="pi">:</span> <span class="s">254</span>
<span class="s">min</span><span class="pi">:</span> <span class="s">0</span>
<span class="s">max</span><span class="pi">:</span> <span class="s">254</span>
<span class="s">step</span><span class="pi">:</span> <span class="s">1</span>
<span class="comment"># Automation. </span>
<span class="key">automation</span>:
- <span class="string"><span class="content">alias: Bedroom Light - Adjust Brightness</span></span>
<span class="key">trigger</span>:
<span class="key">platform</span>: <span class="string"><span class="content">state</span></span>
<span class="key">entity_id</span>: <span class="string"><span class="content">input_slider.bedroom_brightness</span></span>
<span class="key">action</span>:
- <span class="string"><span class="content">service: light.turn_on</span></span>
<span class="comment"># Note the use of 'data_template:' below rather than the normal 'data:' if you weren't using an input variable</span>
<span class="key">data_template</span>:
<span class="key">entity_id</span>: <span class="string"><span class="content">light.bedroom</span></span>
<span class="key">brightness</span>: <span class="string"><span class="content">'{{ trigger.to_state.state | int }}'</span></span>
<span class="c1"># Automation. </span>
<span class="s">automation</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">alias</span><span class="pi">:</span> <span class="s">Bedroom Light - Adjust Brightness</span>
<span class="s">trigger</span><span class="pi">:</span>
<span class="s">platform</span><span class="pi">:</span> <span class="s">state</span>
<span class="s">entity_id</span><span class="pi">:</span> <span class="s">input_slider.bedroom_brightness</span>
<span class="s">action</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">service</span><span class="pi">:</span> <span class="s">light.turn_on</span>
<span class="c1"># Note the use of 'data_template:' below rather than the normal 'data:' if you weren't using an input variable</span>
<span class="s">data_template</span><span class="pi">:</span>
<span class="s">entity_id</span><span class="pi">:</span> <span class="s">light.bedroom</span>
<span class="s">brightness</span><span class="pi">:</span> <span class="s1">'</span><span class="s">{{</span><span class="nv"> </span><span class="s">trigger.to_state.state</span><span class="nv"> </span><span class="s">|</span><span class="nv"> </span><span class="s">int</span><span class="nv"> </span><span class="s">}}'</span>
</pre></div>
</div>
</code></pre>
</div>
<p>Another code example using <code>input_slider</code>, this time being used in an action in an automation.</p>
<p>Another code example using <code class="highlighter-rouge">input_slider</code>, this time being used in an action in an automation.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>
<span class="comment"># Example configuration.yaml entry using 'input_slider' in an action in an automation</span>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code>
<span class="c1"># Example configuration.yaml entry using 'input_slider' in an action in an automation</span>
<span class="comment"># Define 'input_select'</span>
<span class="key">input_select</span>:
<span class="key">scene_bedroom</span>:
<span class="key">name</span>: <span class="string"><span class="content">Scene</span></span>
<span class="key">options</span>:
- <span class="string"><span class="content">Select</span></span>
- <span class="string"><span class="content">Concentrate</span></span>
- <span class="string"><span class="content">Energize</span></span>
- <span class="string"><span class="content">Reading</span></span>
- <span class="string"><span class="content">Relax</span></span>
- <span class="string"><span class="content">'OFF'</span></span>
<span class="key">initial</span>: <span class="string"><span class="content">'Select'</span></span>
<span class="c1"># Define 'input_select'</span>
<span class="s">input_select</span><span class="pi">:</span>
<span class="s">scene_bedroom</span><span class="pi">:</span>
<span class="s">name</span><span class="pi">:</span> <span class="s">Scene</span>
<span class="s">options</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">Select</span>
<span class="pi">-</span> <span class="s">Concentrate</span>
<span class="pi">-</span> <span class="s">Energize</span>
<span class="pi">-</span> <span class="s">Reading</span>
<span class="pi">-</span> <span class="s">Relax</span>
<span class="pi">-</span> <span class="s1">'</span><span class="s">OFF'</span>
<span class="s">initial</span><span class="pi">:</span> <span class="s1">'</span><span class="s">Select'</span>
<span class="comment"># Define input_slider</span>
<span class="key">input_slider</span>:
<span class="key">bedroom_brightness</span>:
<span class="key">name</span>: <span class="string"><span class="content">Brightness</span></span>
<span class="key">initial</span>: <span class="string"><span class="content">254</span></span>
<span class="key">min</span>: <span class="string"><span class="content">0</span></span>
<span class="key">max</span>: <span class="string"><span class="content">254</span></span>
<span class="key">step</span>: <span class="string"><span class="content">1</span></span>
<span class="c1"># Define input_slider</span>
<span class="s">input_slider</span><span class="pi">:</span>
<span class="s">bedroom_brightness</span><span class="pi">:</span>
<span class="s">name</span><span class="pi">:</span> <span class="s">Brightness</span>
<span class="s">initial</span><span class="pi">:</span> <span class="s">254</span>
<span class="s">min</span><span class="pi">:</span> <span class="s">0</span>
<span class="s">max</span><span class="pi">:</span> <span class="s">254</span>
<span class="s">step</span><span class="pi">:</span> <span class="s">1</span>
<span class="comment"># Automation. </span>
<span class="key">automation</span>:
- <span class="string"><span class="content">alias: Bedroom Light - Custom</span></span>
<span class="key">trigger</span>:
<span class="key">platform</span>: <span class="string"><span class="content">state</span></span>
<span class="key">entity_id</span>: <span class="string"><span class="content">input_select.scene_bedroom</span></span>
<span class="key">to</span>: <span class="string"><span class="content">CUSTOM</span></span>
<span class="key">action</span>:
- <span class="string"><span class="content">service: light.turn_on</span></span>
<span class="comment"># Again, note the use of 'data_template:' rather than the normal 'data:' if you weren't using an input variable.</span>
<span class="key">data_template</span>:
<span class="key">entity_id</span>: <span class="string"><span class="content">light.bedroom</span></span>
<span class="key">brightness</span>: <span class="string"><span class="content">'{{ states.input_slider.bedroom_brightness.state | int }}'</span></span>
<span class="c1"># Automation. </span>
<span class="s">automation</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">alias</span><span class="pi">:</span> <span class="s">Bedroom Light - Custom</span>
<span class="s">trigger</span><span class="pi">:</span>
<span class="s">platform</span><span class="pi">:</span> <span class="s">state</span>
<span class="s">entity_id</span><span class="pi">:</span> <span class="s">input_select.scene_bedroom</span>
<span class="s">to</span><span class="pi">:</span> <span class="s">CUSTOM</span>
<span class="s">action</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">service</span><span class="pi">:</span> <span class="s">light.turn_on</span>
<span class="c1"># Again, note the use of 'data_template:' rather than the normal 'data:' if you weren't using an input variable.</span>
<span class="s">data_template</span><span class="pi">:</span>
<span class="s">entity_id</span><span class="pi">:</span> <span class="s">light.bedroom</span>
<span class="s">brightness</span><span class="pi">:</span> <span class="s1">'</span><span class="s">{{</span><span class="nv"> </span><span class="s">states.input_slider.bedroom_brightness.state</span><span class="nv"> </span><span class="s">|</span><span class="nv"> </span><span class="s">int</span><span class="nv"> </span><span class="s">}}'</span>
</pre></div>
</div>
</code></pre>
</div>

View file

@ -89,20 +89,18 @@
<hr class="divider">
<p>The <code>insteon</code> component lets you use your <a href="http://www.insteon.com/insteon-hub/">Insteon Hub</a> with Home Assistant.</p>
<p>The <code class="highlighter-rouge">insteon</code> component lets you use your <a href="http://www.insteon.com/insteon-hub/">Insteon Hub</a> with Home Assistant.</p>
<p>You will need to obtain an Insteon REST API key from the <a href="http://www.insteon.com/become-an-insteon-developer">Insteon Developer program</a> to use this component.</p>
<p>To integrate your Insteon Hub with Home Assistant, add the following section to your <code>configuration.yaml</code> file:</p>
<p>To integrate your Insteon Hub with Home Assistant, add the following section to your <code class="highlighter-rouge">configuration.yaml</code> file:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">insteon_hub</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">api_key</span>: <span class="string"><span class="content">YOUR_API_KEY</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">insteon_hub</span><span class="pi">:</span>
<span class="s">username</span><span class="pi">:</span> <span class="s">YOUR_USERNAME</span>
<span class="s">password</span><span class="pi">:</span> <span class="s">YOUR_PASSWORD</span>
<span class="s">api_key</span><span class="pi">:</span> <span class="s">YOUR_API_KEY</span>
</code></pre>
</div>
<p>Configuration variables:</p>

View file

@ -93,14 +93,12 @@
<p>The introduction component is loaded by default on a new Home Assistant instance.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">introduction</span>:
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">introduction</span><span class="pi">:</span>
</code></pre>
</div>
<p>To disable this component, remove the <code>introduction:</code> entry from your <code>configuration.yaml</code> file.</p>
<p>To disable this component, remove the <code class="highlighter-rouge">introduction:</code> entry from your <code class="highlighter-rouge">configuration.yaml</code> file.</p>
</article>

View file

@ -89,26 +89,24 @@
<hr class="divider">
<p>The ISY994 is a home automation controller that is capable of controlling Insteon and X10 devices. The controller is also capable of controlling Z-Wave devices but that functionality has not yet been confirmed with Home Assistant.<br />
<p>The ISY994 is a home automation controller that is capable of controlling Insteon and X10 devices. The controller is also capable of controlling Z-Wave devices but that functionality has not yet been confirmed with Home Assistant.
The ISY994 controller is manufactured by <a href="https://www.universal-devices.com/residential/isy994i-series/">Universal Devices</a>.</p>
<h3><a class="title-link" name="basic-configuration" href="#basic-configuration"></a> Basic Configuration</h3>
<p>Home Assistant is capable of communicating with any switch, sensor, and light that is configured on the controller. Using the programs on the controller, custom switches and sensors can also be created.</p>
<p>To integrate your ISY994 controller with Home Assistant, add the following section to your <code>configuration.yaml</code> file:</p>
<p>To integrate your ISY994 controller with Home Assistant, add the following section to your <code class="highlighter-rouge">configuration.yaml</code> file:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">isy994</span>:
<span class="key">host</span>: <span class="string"><span class="content">ISY_ADDRESS</span></span>
<span class="key">username</span>: <span class="string"><span class="content">ISY_USERNAME</span></span>
<span class="key">password</span>: <span class="string"><span class="content">ISY_PASSWORD</span></span>
<span class="key">sensor_string</span>: <span class="string"><span class="content">SENSOR_STRING</span></span>
<span class="key">hidden_string</span>: <span class="string"><span class="content">HIDDEN_STRING</span></span>
<span class="key">tls</span>: <span class="string"><span class="content">TLS_VERSION</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">isy994</span><span class="pi">:</span>
<span class="s">host</span><span class="pi">:</span> <span class="s">ISY_ADDRESS</span>
<span class="s">username</span><span class="pi">:</span> <span class="s">ISY_USERNAME</span>
<span class="s">password</span><span class="pi">:</span> <span class="s">ISY_PASSWORD</span>
<span class="s">sensor_string</span><span class="pi">:</span> <span class="s">SENSOR_STRING</span>
<span class="s">hidden_string</span><span class="pi">:</span> <span class="s">HIDDEN_STRING</span>
<span class="s">tls</span><span class="pi">:</span> <span class="s">TLS_VERSION</span>
</code></pre>
</div>
<p>Configuration variables:</p>

View file

@ -93,29 +93,25 @@
<p>In the configuartion.yaml you need to provide the device id of the target device. If you want to send to a group of devices, you need to provide an api key. You can find you device id and api key <a href="https://joinjoaomgcd.appspot.com/">here</a>.</p>
<p>To set it up, add the following information to your <code>configuration.yaml</code> file:</p>
<p>To set it up, add the following information to your <code class="highlighter-rouge">configuration.yaml</code> file:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="key">notify</span>:
- <span class="string"><span class="content">platform: joaoapps_join</span></span>
<span class="key">device_id</span>: <span class="string"><span class="content">d5asdfasdf54645h45h368761dfe5gt8a</span></span>
<span class="key">name</span>: <span class="string"><span class="content">droid *optional</span></span>
<span class="key">api_key</span>: <span class="string"><span class="content">asd97823jb628a34fwsdfwefd5384345tf2d *optional</span></span>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="s">notify</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">platform</span><span class="pi">:</span> <span class="s">joaoapps_join</span>
<span class="s">device_id</span><span class="pi">:</span> <span class="s">d5asdfasdf54645h45h368761dfe5gt8a</span>
<span class="s">name</span><span class="pi">:</span> <span class="s">droid *optional</span>
<span class="s">api_key</span><span class="pi">:</span> <span class="s">asd97823jb628a34fwsdfwefd5384345tf2d *optional</span>
<span class="key">joaoapps_join</span>:
- <span class="string"><span class="content">name: android</span></span>
<span class="key">device_id</span>: <span class="string"><span class="content">group.android</span></span>
<span class="key">api_key</span>: <span class="string"><span class="content">asd97823jb628a34fwsdfwefd5384345tf2d</span></span>
</pre></div>
</div>
<span class="s">joaoapps_join</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">name</span><span class="pi">:</span> <span class="s">android</span>
<span class="s">device_id</span><span class="pi">:</span> <span class="s">group.android</span>
<span class="s">api_key</span><span class="pi">:</span> <span class="s">asd97823jb628a34fwsdfwefd5384345tf2d</span>
</code></pre>
</div>
<p>The notify service has a few optional parameters such as icon and smallicon. You can use them like so:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>{<span class="key"><span class="delimiter">&quot;</span><span class="content">message</span><span class="delimiter">&quot;</span></span>:<span class="string"><span class="delimiter">&quot;</span><span class="content">Hello!</span><span class="delimiter">&quot;</span></span>,<span class="key"><span class="delimiter">&quot;</span><span class="content">title</span><span class="delimiter">&quot;</span></span>:<span class="string"><span class="delimiter">&quot;</span><span class="content">From Hass</span><span class="delimiter">&quot;</span></span>,<span class="key"><span class="delimiter">&quot;</span><span class="content">data</span><span class="delimiter">&quot;</span></span>:{<span class="key"><span class="delimiter">&quot;</span><span class="content">icon</span><span class="delimiter">&quot;</span></span>:<span class="string"><span class="delimiter">&quot;</span><span class="content">https://goo.gl/KVqcYi</span><span class="delimiter">&quot;</span></span>,<span class="key"><span class="delimiter">&quot;</span><span class="content">smallicon</span><span class="delimiter">&quot;</span></span>:<span class="string"><span class="delimiter">&quot;</span><span class="content">http://goo.gl/AU4Wf1</span><span class="delimiter">&quot;</span></span>}}
</pre></div>
</div>
<div class="language-json highlighter-rouge"><pre class="highlight"><code><span class="p">{</span><span class="nt">"message"</span><span class="p">:</span><span class="s2">"Hello!"</span><span class="p">,</span><span class="nt">"title"</span><span class="p">:</span><span class="s2">"From Hass"</span><span class="p">,</span><span class="nt">"data"</span><span class="p">:{</span><span class="nt">"icon"</span><span class="p">:</span><span class="s2">"https://goo.gl/KVqcYi"</span><span class="p">,</span><span class="nt">"smallicon"</span><span class="p">:</span><span class="s2">"http://goo.gl/AU4Wf1"</span><span class="p">}}</span><span class="w">
</span></code></pre>
</div>
<p>The services exposed in the joaoapps_join component can be used with the service data described below:</p>

View file

@ -89,33 +89,29 @@
<hr class="divider">
<p>The <code>keyboard</code> component simulates key presses on the host machine. It currently offers the following Buttons as a Service (BaaS):</p>
<p>The <code class="highlighter-rouge">keyboard</code> component simulates key presses on the host machine. It currently offers the following Buttons as a Service (BaaS):</p>
<ul>
<li><code>keyboard/volume_up</code></li>
<li><code>keyboard/volume_down</code></li>
<li><code>keyboard/volume_mute</code></li>
<li><code>keyboard/media_play_pause</code></li>
<li><code>keyboard/media_next_track</code></li>
<li><code>keyboard/media_prev_track</code></li>
<li><code class="highlighter-rouge">keyboard/volume_up</code></li>
<li><code class="highlighter-rouge">keyboard/volume_down</code></li>
<li><code class="highlighter-rouge">keyboard/volume_mute</code></li>
<li><code class="highlighter-rouge">keyboard/media_play_pause</code></li>
<li><code class="highlighter-rouge">keyboard/media_next_track</code></li>
<li><code class="highlighter-rouge">keyboard/media_prev_track</code></li>
</ul>
<p>To load this component, add the following lines to your <code>configuration.yaml</code>:</p>
<p>To load this component, add the following lines to your <code class="highlighter-rouge">configuration.yaml</code>:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="key">keyboard</span>:
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="s">keyboard</span><span class="pi">:</span>
</code></pre>
</div>
<h2><a class="title-link" name="dependencies" href="#dependencies"></a> Dependencies</h2>
<p>You may need to install platform-specific <a href="https://github.com/PyUserInput/PyUserInput#dependencies">dependencies for PyUserInput</a> in order to use the keyboard component. In most cases this can be done by running:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre>$ pip3 install [package name]
</pre></div>
</div>
<div class="language-bash highlighter-rouge"><pre class="highlight"><code><span class="gp">$ </span>pip3 install <span class="o">[</span>package name]
</code></pre>
</div>
<h4><a class="title-link" name="windows" href="#windows"></a> Windows</h4>

View file

@ -99,19 +99,17 @@
<li><a href="/components/thermostat.knx">Thermostat</a></li>
</ul>
<p>A <code>knx</code> section must be present in the <code>configuration.yaml</code> file and contain the following options as required:</p>
<p>A <code class="highlighter-rouge">knx</code> section must be present in the <code class="highlighter-rouge">configuration.yaml</code> file and contain the following options as required:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="key">knx</span>:
<span class="key">host</span>: <span class="string"><span class="content">IP_ADDRESS</span></span>
<span class="key">port</span>: <span class="string"><span class="content">PORT</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="s">knx</span><span class="pi">:</span>
<span class="s">host</span><span class="pi">:</span> <span class="s">IP_ADDRESS</span>
<span class="s">port</span><span class="pi">:</span> <span class="s">PORT</span>
</code></pre>
</div>
<ul>
<li><strong>host</strong> (<em>Required</em>): The IP address of the KNX/IP interface to use. You can use “0.0.0.0” if your KNX/IP gateway supports discovery.</li>
<li><strong>port</strong> (<em>Optional</em>): The UDP port number. Defaults to <code>3671</code>.</li>
<li><strong>port</strong> (<em>Optional</em>): The UDP port number. Defaults to <code class="highlighter-rouge">3671</code>.</li>
</ul>

View file

@ -89,18 +89,16 @@
<hr class="divider">
<p>The <code>blinkstick</code> platform let you can control your <a href="https://www.blinkstick.com/">Blinkstick</a> lights from within Home Assistant.</p>
<p>The <code class="highlighter-rouge">blinkstick</code> platform let you can control your <a href="https://www.blinkstick.com/">Blinkstick</a> lights from within Home Assistant.</p>
<p>To add blinkstick to your installation, add the following to your <code>configuration.yaml</code> file:</p>
<p>To add blinkstick to your installation, add the following to your <code class="highlighter-rouge">configuration.yaml</code> file:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">light</span>:
<span class="key">platform</span>: <span class="string"><span class="content">blinksticklight</span></span>
<span class="key">serial</span>: <span class="string"><span class="content">BS000795-1.1</span></span>
<span class="key">name</span>: <span class="string"><span class="content">Living Room</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">light</span><span class="pi">:</span>
<span class="s">platform</span><span class="pi">:</span> <span class="s">blinksticklight</span>
<span class="s">serial</span><span class="pi">:</span> <span class="s">BS000795-1.1</span>
<span class="s">name</span><span class="pi">:</span> <span class="s">Living Room</span>
</code></pre>
</div>
<p>Configuration variables:</p>

View file

@ -91,17 +91,15 @@
<p>An EnOcean light can take many formes. Currently only one type has been tested: Eltako FUD61 dimmer.</p>
<p>To use your EnOcean device, you first have to set up your <a href="../enocean">EnOcean hub</a> and then add the following to your <code>configuration.yaml</code> file:</p>
<p>To use your EnOcean device, you first have to set up your <a href="../enocean">EnOcean hub</a> and then add the following to your <code class="highlighter-rouge">configuration.yaml</code> file:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">light</span>:
- <span class="string"><span class="content">name: Living_room</span></span>
<span class="key">platform</span>: <span class="string"><span class="content">enocean</span></span>
<span class="key">id</span>: <span class="string"><span class="content">[0x01,0x90,0x84,0x3C]</span></span>
<span class="key">sender_id</span>: <span class="string"><span class="content">[0xFF,0xC6,0xEA,0x04]</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">light</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">name</span><span class="pi">:</span> <span class="s">Living_room</span>
<span class="s">platform</span><span class="pi">:</span> <span class="s">enocean</span>
<span class="s">id</span><span class="pi">:</span> <span class="pi">[</span><span class="nv">0x01</span><span class="pi">,</span><span class="nv">0x90</span><span class="pi">,</span><span class="nv">0x84</span><span class="pi">,</span><span class="nv">0x3C</span><span class="pi">]</span>
<span class="s">sender_id</span><span class="pi">:</span> <span class="pi">[</span><span class="nv">0xFF</span><span class="pi">,</span><span class="nv">0xC6</span><span class="pi">,</span><span class="nv">0xEA</span><span class="pi">,</span><span class="nv">0x04</span><span class="pi">]</span>
</code></pre>
</div>
<p>Configuration variables:</p>
@ -109,7 +107,7 @@
<ul>
<li><strong>id</strong> (<em>Required</em>): The ID of the device. This is the 4 bytes long number written on the dimmer.</li>
<li><strong>sender_id</strong> (<em>Required</em>): The Sender ID of the device. This is a 4 bytes long number.</li>
<li><strong>platform</strong> (<em>Required</em>): Set to <code>enocean</code>.</li>
<li><strong>platform</strong> (<em>Required</em>): Set to <code class="highlighter-rouge">enocean</code>.</li>
<li><strong>name</strong> (<em>Required</em>): An identifier for the switch</li>
</ul>

Some files were not shown because too many files have changed in this diff Show more