GPIO Binary Sensor

The GPIO Binary Sensor platform allows you to use any input pin on your device as a binary sensor.

../../../_images/gpio-ui.png
# Example configuration entry
binary_sensor:
  - platform: gpio
    pin: D2
    name: "Living Room Window"
    device_class: window

Configuration variables:

  • pin (Required, Pin Schema): The pin to periodically check.
  • name (Required, string): The name of the binary sensor.
  • id (Optional, ID): Manually specify the ID used for code generation.
  • All other options from Binary Sensor and MQTT Component.

Note

For some applications such as reed switches you need to set the pin mode to INPUT_PULLUP like this:

binary_sensor:
  - platform: gpio
    pin:
      number: D2
      mode: INPUT_PULLUP
    name: ...

Inverting Values

Use the inverted property of the Pin Schema to invert the binary sensor:

# Example configuration entry
binary_sensor:
  - platform: gpio
    pin:
      number: D2
      inverted: True
    name: ...

Debouncing Values

Some binary sensors are a bit unstable and quickly transition between the ON and OFF state while they’re pressed. To fix this and debounce the signal, use the binary sensor filters:

# Example configuration entry
binary_sensor:
  - platform: gpio
    pin: D2
    name: ...
    filters:
      - delayed_on: 10ms

Above example will only make the signal go high if the button has stayed high for more than 10ms. Alternatively, below configuration will make the binary sensor publish an ON value immediately, but will wait 10ms before publishing an OFF value:

# Example configuration entry
binary_sensor:
  - platform: gpio
    pin: D2
    name: ...
    filters:
      - delayed_off: 10ms