.. _output: Output Component ================ .. seo:: :description: Instructions for setting up generic outputs in ESPHome :image: folder-open.png Each platform of the ``output`` domain exposes some output to ESPHome. These are grouped into two categories: ``binary`` outputs (that can only be ON/OFF) and ``float`` outputs (like PWM, can output any rational value between 0 and 1). .. _config-output: Base Output Configuration ------------------------- Each output platform extends this configuration schema. .. code-block:: yaml # Example configuration entry output: - platform: ... id: my_output_id power_supply: power_supply_id inverted: False max_power: 0.75 Configuration variables: - **id** (**Required**, :ref:`config-id`): The id to use for this output component. - **power_supply** (*Optional*, :ref:`config-id`): The :doc:`power supply ` to connect to this output. When the output is enabled, the power supply will automatically be switched on too. - **inverted** (*Optional*, boolean): If the output should be treated as inverted. Defaults to ``False``. - **max_power** (*Optional*, float): Only for float outputs. Sets the maximum output value of this output platform. Each value will be multiplied by this. Must be in range from 0 to 1. Defaults to 1. .. _output-turn_on_action: ``output.turn_on`` Action ************************* This action turns the output with the given ID on when executed. .. code-block:: yaml on_...: then: - output.turn_on: relay_1 .. note:: This action can also be expressed in :ref:`lambdas `: .. code-block:: cpp id(relay_1).turn_on(); .. _output-turn_off_action: ``output.turn_off`` Action ************************** This action turns the output with the given ID off when executed. .. code-block:: yaml on_...: then: - output.turn_off: relay_1 .. note:: This action can also be expressed in :ref:`lambdas `: .. code-block:: cpp id(relay_1).turn_off(); .. _output-set_level_action: ``output.set_level`` Action *************************** This action sets the float output to the given level when executed. Note: This only works with floating point outputs like ESP8266 PWM or LEDC. .. code-block:: yaml on_...: then: - output.set_level: id: output_1 level: 50% .. note:: This action can also be expressed in :ref:`lambdas `: .. code-block:: cpp // range is 0.0 (off) to 1.0 (on) id(relay_1).set_level(0.5); Full Output Index ----------------- - :doc:`/components/switch/output` - :doc:`/components/power_supply` - :doc:`/components/light/binary` - :doc:`/components/light/monochromatic` - :doc:`/components/light/rgb` - :doc:`/components/fan/binary` - :doc:`/components/fan/speed` - :apiref:`output/binary_output.h`, :apiref:`output/float_output.h` - :ghedit:`Edit` .. toctree:: :maxdepth: 1 :glob: * .. disqus::