GPIO Switch

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.

https://d33wubrfki0l68.cloudfront.net/8c2829a1f478b7ec3cc32fd31c296c6c128a0379/11155/_images/gpio-ui1.png
# Example configuration entry
switch:
  - platform: gpio
    pin: 25
    name: "Living Room Dehumidifier"

Configuration variables:

  • pin (Required, Pin Schema): The GPIO pin to use for the switch.

  • name (Required, string): The name for the switch.

  • id (Optional, ID): Manually specify the ID used for code generation.

  • restore_mode (Optional): Control how the GPIO Switch attempts to restore state on bootup.

    • 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.
  • All other options from Switch and MQTT Component.

To create an active-low switch (one that is turned off by default), use the Pin Schema:

# Example configuration entry
switch:
  - platform: gpio
    pin:
      number: 25
      inverted: yes

To create momentary switches, for example switches that toggle a pin for a moment, you can use template switches.

An example that uses a single relay to activate a remote control button. The button can only start or stop the motor of the gate. In itself, the button or remote can not know if it opens or closes the gate. The relay simulates the button press for 500ms.

# Example configuration entry
switch:
  - platform: gpio
    pin: 25
    id: relay
  - platform: template
    name: "Gate Remote"
    icon: "mdi:gate"
    optimistic: no
    turn_on_action:
    - switch.turn_on: relay
    - delay: 500ms
    - switch.turn_off: relay
https://d33wubrfki0l68.cloudfront.net/436fcae990a636877ee2c5c87a967a61e352d234/1b141/_images/gate-remote-ui.png