Site updated at 2016-08-22 08:21:42 UTC
This commit is contained in:
parent
f9d65cbe57
commit
4acb07bf8e
559 changed files with 18878 additions and 21688 deletions
|
@ -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">'{{ "%+.1f"|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 don’t like the wording of a sensor output then the template sensor can help too. Let’s 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("sun.sun", "above_horizon") %}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("sensor.process_glances", "off") %}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">"</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">"</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">>-</span><span class="content">
|
||||
{%- if is_state("switch.kettle", "off") %}
|
||||
off
|
||||
{% elif states.switch.kettle.attributes.kwh < 1000 %}
|
||||
standby
|
||||
{% elif is_state("switch.kettle", "on") %}
|
||||
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">>-</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 < 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 it’s easy to convert given values into others if the unit of measurement don’t 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>
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue