esphome-docs/components/output/template.rst

83 lines
2.2 KiB
ReStructuredText

Template Output
===============
.. seo::
:description: Instructions for setting up template outputs with ESPHome.
:image: description.png
The ``template`` output component can be used to create templated binary and float outputs in ESPHome.
.. code-block:: yaml
# Example configuration entry
output:
- platform: template
id: outputsplit
type: float
write_action:
- output.set_level:
id: output1
level: !lambda return state;
- output.set_level:
id: output2
level: !lambda return state;
- platform: esp8266_pwm
id: output1
pin: GPIO12
inverted: true
- platform: esp8266_pwm
id: output2
pin: GPIO14
inverted: true
Configuration variables:
------------------------
- **id** (**Required**, :ref:`config-id`): The id to use for this output component.
- **type** (**Required**, string): The type of output. One of ``binary`` and ``float``.
- **on_write_action** (*Required*, :ref:`Action <config-action>`): The action that should
be performed when the state of the output is updated.
- All other options from :ref:`Output <config-output>`.
See :apiclass:`output::BinaryOutput` and :apiclass:`output::FloatOutput`.
.. warning::
This is an **output component** and will not be visible from the frontend. Output components are intermediary
components that can be attached to for example lights.
.. _output-template-on_write_action:
``output.template.on_write`` Action
-----------------------------------
When the state for this output is updated, the on_write action is executed.
It is possible to access the state value inside Lambdas:
.. code-block:: yaml
- platform: template
id: my_output
type: float
write_action:
- if:
condition:
lambda: return ((state > 0) && (state < .4));
then:
- output.turn_on: button_off
- delay: 500ms
- output.turn_off: button_off
Complete example from the cookbook: :doc:`Sonoff Dual Light Switch</cookbook/sonoff-dual-light-switch>`.
See Also
--------
- :doc:`/components/output/index`
- :ref:`automation`
- :ghedit:`Edit`