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 `): The action that should be performed when the state of the output is updated. - All other options from :ref:`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`. See Also -------- - :doc:`/components/output/index` - :ref:`automation` - :ghedit:`Edit`