GPIO Switch =========== .. seo:: :description: Instructions for setting up GPIO pin switches in ESPHome that control GPIO outputs. :image: pin.png The ``gpio`` switch platform allows you to use any pin on your node as a switch. You can for example hook up a relay to a GPIO pin and use it through this platform. .. figure:: images/gpio-ui.png :align: center :width: 80.0% .. code-block:: yaml # Example configuration entry switch: - platform: gpio pin: 25 name: "Living Room Dehumidifier" Configuration variables: ------------------------ - **pin** (**Required**, :ref:`Pin Schema `): The GPIO pin to use for the switch. - **name** (**Required**, string): The name for the switch. - **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation. - **restore_mode** (*Optional*): Control how the GPIO Switch attempts to restore state on bootup. For restoring on ESP8266s, also see ``esp8266_restore_from_flash`` in the :doc:`esphome section `. - ``RESTORE_DEFAULT_OFF`` (Default) - Attempt to restore state and default to OFF if not possible to restore. - ``RESTORE_DEFAULT_ON`` - Attempt to restore state and default to ON. - ``ALWAYS_OFF`` - Always initialize the pin as OFF on bootup. - ``ALWAYS_ON`` - Always initialize the pin as ON on bootup. - **interlock** (*Optional*, list): A list of other GPIO switches in an interlock group. See :ref:`switch-gpio-interlocking`. - All other options from :ref:`Switch `. Active Low Switch ----------------- To create an active-low switch (one that is turned off by default), use the :ref:`Pin Schema `: .. code-block:: yaml # Example configuration entry switch: - platform: gpio pin: number: 25 inverted: yes Momentary Switch ---------------- To create momentary switches, for example switches that toggle a pin for a moment, you can use :doc:`template switches