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,23 +89,21 @@
<hr class="divider">
<p>The <code>template</code> platform supports sensors which breaks out <code>state_attributes</code> from other entities.</p>
<p>The <code class="highlighter-rouge">template</code> platform supports sensors which breaks out <code class="highlighter-rouge">state_attributes</code> from other entities.</p>
<p>To enable Template sensors in your installation, add the following to your <code>configuration.yaml</code> file:</p>
<p>To enable Template 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">sensor</span>:
- <span class="string"><span class="content">platform: template</span></span>
<span class="key">sensors</span>:
<span class="key">solar_angle</span>:
<span class="key">value_template</span>: <span class="string"><span class="content">'{{ states.sun.sun.attributes.elevation }}'</span></span>
<span class="key">friendly_name</span>: <span class="string"><span class="content">'Sun angle'</span></span>
<span class="key">unit_of_measurement</span>: <span class="string"><span class="content">'degrees'</span></span>
<span class="key">sunrise</span>:
<span class="key">value_template</span>: <span class="string"><span class="content">'{{ states.sun.sun.attributes.next_rising }}'</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">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">solar_angle</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">}}'</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">angle'</span>
<span class="s">unit_of_measurement</span><span class="pi">:</span> <span class="s1">'</span><span class="s">degrees'</span>
<span class="s">sunrise</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.next_rising</span><span class="nv"> </span><span class="s">}}'</span>
</code></pre>
</div>
<p>Configuration variables:</p>
@ -129,52 +127,44 @@
<p>This example shows the sun angle in the frontend.</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">solar_angle</span>:
<span class="key">value_template</span>: <span class="string"><span class="content">'{{ &quot;%+.1f&quot;|format(states.sun.sun.attributes.elevation) }}'</span></span>
<span class="key">friendly_name</span>: <span class="string"><span class="content">'Sun Angle'</span></span>
<span class="key">unit_of_measurement</span>: <span class="string"><span class="content">'°'</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">solar_angle</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">"%+.1f"|format(states.sun.sun.attributes.elevation)</span><span class="nv"> </span><span class="s">}}'</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">Angle'</span>
<span class="s">unit_of_measurement</span><span class="pi">:</span> <span class="s1">'</span><span class="s">°'</span>
</code></pre>
</div>
<h3><a class="title-link" name="renaming-sensor-output" href="#renaming-sensor-output"></a> Renaming sensor output</h3>
<p>If you dont like the wording of a sensor output then the template sensor can help too. Lets rename the output of the <a href="/components/sun/">Sun component</a> as a simple example:</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">sun_state</span>:
<span class="key">value_template</span>: <span class="string"><span class="content">'{% if is_state(&quot;sun.sun&quot;, &quot;above_horizon&quot;) %}up{% else %}down{% endif %}'</span></span>
<span class="key">friendly_name</span>: <span class="string"><span class="content">'Sun state'</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">sun_state</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">if</span><span class="nv"> </span><span class="s">is_state("sun.sun",</span><span class="nv"> </span><span class="s">"above_horizon")</span><span class="nv"> </span><span class="s">%}up{%</span><span class="nv"> </span><span class="s">else</span><span class="nv"> </span><span class="s">%}down{%</span><span class="nv"> </span><span class="s">endif</span><span class="nv"> </span><span class="s">%}'</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">state'</span>
</code></pre>
</div>
<p>Processes monitored by the <a href="/components/sensor.systemmonitor/">System Monitor sensor</a> show <code>on</code> or <code>off</code> if they are running or not. This example shows how the output of a monitored <code>glances</code> process can be renamed.</p>
<p>Processes monitored by the <a href="/components/sensor.systemmonitor/">System Monitor sensor</a> show <code class="highlighter-rouge">on</code> or <code class="highlighter-rouge">off</code> if they are running or not. This example shows how the output of a monitored <code class="highlighter-rouge">glances</code> process can be renamed.</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">glances</span>:
<span class="key">value_template</span>: <span class="string"><span class="content">'{% if is_state(&quot;sensor.process_glances&quot;, &quot;off&quot;) %}not running{% else %}running{% endif %}'</span></span>
<span class="key">friendly_name</span>: <span class="string"><span class="content">'Glances'</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">glances</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">if</span><span class="nv"> </span><span class="s">is_state("sensor.process_glances",</span><span class="nv"> </span><span class="s">"off")</span><span class="nv"> </span><span class="s">%}not</span><span class="nv"> </span><span class="s">running{%</span><span class="nv"> </span><span class="s">else</span><span class="nv"> </span><span class="s">%}running{%</span><span class="nv"> </span><span class="s">endif</span><span class="nv"> </span><span class="s">%}'</span>
<span class="s">friendly_name</span><span class="pi">:</span> <span class="s1">'</span><span class="s">Glances'</span>
</code></pre>
</div>
<p>By comparing the details published on the <a href="/topics/templating/">template</a> page the same can be archived with a different approach:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="key">value_template</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">{%if states.sensor.ENTITY_ID.state == 'on' %}running{%elif states.switch.ENTITY_ID.state == 'off' %}not running{% endif %}</span><span class="delimiter">&quot;</span></span>
</pre></div>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="s">value_template</span><span class="pi">:</span> <span class="s2">"</span><span class="s">{%if</span><span class="nv"> </span><span class="s">states.sensor.ENTITY_ID.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">%}running{%elif</span><span class="nv"> </span><span class="s">states.switch.ENTITY_ID.state</span><span class="nv"> </span><span class="s">==</span><span class="nv"> </span><span class="s">'off'</span><span class="nv"> </span><span class="s">%}not</span><span class="nv"> </span><span class="s">running{%</span><span class="nv"> </span><span class="s">endif</span><span class="nv"> </span><span class="s">%}"</span>
</code></pre>
</div>
<p>The <a href="/components/binary_sensor.template/">Binary template sensor</a> is the one in similar cases if you prefer to see an icon instead of text.</p>
@ -183,27 +173,25 @@
<p>This example shows a multiple line template with and if test. It looks at a sensing switch and shows on/off in the frontend.</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">kettle</span>:
<span class="key">friendly_name</span>: <span class="string"><span class="content">'Kettle'</span></span>
<span class="key">value_template</span>: <span class="string"><span class="delimiter">&gt;-</span><span class="content">
{%- if is_state(&quot;switch.kettle&quot;, &quot;off&quot;) %}
off
{% elif states.switch.kettle.attributes.kwh &lt; 1000 %}
standby
{% elif is_state(&quot;switch.kettle&quot;, &quot;on&quot;) %}
on
{% else %}
failed
{%- endif %}</span></span>
<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">kettle</span><span class="pi">:</span>
<span class="s">friendly_name</span><span class="pi">:</span> <span class="s1">'</span><span class="s">Kettle'</span>
<span class="s">value_template</span><span class="pi">:</span> <span class="pi">&gt;-</span>
<span class="no">{%- if is_state("switch.kettle", "off") %}</span>
<span class="no">off</span>
<span class="no">{% elif states.switch.kettle.attributes.kwh &lt; 1000 %}</span>
<span class="no">standby</span>
<span class="no">{% elif is_state("switch.kettle", "on") %}</span>
<span class="no">on</span>
<span class="no">{% else %}</span>
<span class="no">failed</span>
<span class="no">{%- endif %}</span>
<span class="key">next_sensor</span>:
[<span class="error">...]</span>
</pre></div>
</div>
<span class="s">next_sensor</span><span class="pi">:</span>
<span class="pi">[</span><span class="nv">...</span><span class="pi">]</span>
</code></pre>
</div>
<p class="note">
@ -214,20 +202,18 @@ Please note the blank line to close the multi-line template.
<p>With a template sensor its easy to convert given values into others if the unit of measurement dont fit your needs.</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">transmission_down_speed_kbps</span>:
<span class="key">value_template</span>: <span class="string"><span class="content">'{{ states.sensor.transmission_down_speed.state | multiply(1024) }}'</span></span>
<span class="key">friendly_name</span>: <span class="string"><span class="content">'Transmission Down Speed'</span></span>
<span class="key">unit_of_measurement</span>: <span class="string"><span class="content">'kB/s'</span></span>
<span class="key">transmission_up_speed_kbps</span>:
<span class="key">value_template</span>: <span class="string"><span class="content">'{{ states.sensor.transmission_up_speed.state | multiply(1024) }}'</span></span>
<span class="key">friendly_name</span>: <span class="string"><span class="content">'Transmission Up Speed'</span></span>
<span class="key">unit_of_measurement</span>: <span class="string"><span class="content">'kB/s'</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">transmission_down_speed_kbps</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.sensor.transmission_down_speed.state</span><span class="nv"> </span><span class="s">|</span><span class="nv"> </span><span class="s">multiply(1024)</span><span class="nv"> </span><span class="s">}}'</span>
<span class="s">friendly_name</span><span class="pi">:</span> <span class="s1">'</span><span class="s">Transmission</span><span class="nv"> </span><span class="s">Down</span><span class="nv"> </span><span class="s">Speed'</span>
<span class="s">unit_of_measurement</span><span class="pi">:</span> <span class="s1">'</span><span class="s">kB/s'</span>
<span class="s">transmission_up_speed_kbps</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.sensor.transmission_up_speed.state</span><span class="nv"> </span><span class="s">|</span><span class="nv"> </span><span class="s">multiply(1024)</span><span class="nv"> </span><span class="s">}}'</span>
<span class="s">friendly_name</span><span class="pi">:</span> <span class="s1">'</span><span class="s">Transmission</span><span class="nv"> </span><span class="s">Up</span><span class="nv"> </span><span class="s">Speed'</span>
<span class="s">unit_of_measurement</span><span class="pi">:</span> <span class="s1">'</span><span class="s">kB/s'</span>
</code></pre>
</div>