esphome-docs/esphomeyaml/components/binary_sensor/gpio.rst

102 lines
2.6 KiB
ReStructuredText
Raw Normal View History

2018-05-13 11:37:02 +02:00
GPIO Binary Sensor
==================
2018-11-14 22:12:27 +01:00
.. seo::
:description: Instructions for setting up GPIO binary sensors with esphomelib.
:image: pin.png
2018-11-14 22:12:27 +01:00
2018-05-13 11:37:02 +02:00
The GPIO Binary Sensor platform allows you to use any input pin on your
device as a binary sensor.
2018-06-01 18:10:00 +02:00
.. figure:: images/gpio-ui.png
:align: center
:width: 80.0%
2018-05-13 11:37:02 +02:00
.. code-block:: yaml
2018-05-13 11:37:02 +02:00
# Example configuration entry
binary_sensor:
- platform: gpio
pin: D2
name: "Living Room Window"
device_class: window
Configuration variables:
2018-08-24 22:44:01 +02:00
------------------------
2018-05-13 11:37:02 +02:00
2018-06-01 18:10:00 +02:00
- **pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The pin to periodically check.
- **name** (**Required**, string): The name of the binary sensor.
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
- All other options from :ref:`Binary Sensor <config-binary_sensor>`
and :ref:`MQTT Component <config-mqtt-component>`.
2018-06-13 22:38:49 +02:00
.. note::
For some applications such as reed switches you need to set the pin mode to ``INPUT_PULLUP``
like this:
.. code-block:: yaml
2018-06-13 22:38:49 +02:00
binary_sensor:
- platform: gpio
pin:
number: D2
mode: INPUT_PULLUP
name: ...
Inverting Values
2018-08-24 22:44:01 +02:00
----------------
2018-06-13 22:38:49 +02:00
Use the ``inverted`` property of the :ref:`Pin Schema <config-pin_schema>` to invert the binary
sensor:
.. code-block:: yaml
2018-06-13 22:38:49 +02:00
# Example configuration entry
binary_sensor:
- platform: gpio
pin:
number: D2
inverted: True
name: ...
Debouncing Values
2018-08-24 22:44:01 +02:00
-----------------
2018-06-13 22:38:49 +02:00
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 :ref:`binary sensor filters <binary_sensor-filters>`:
.. code-block:: yaml
2018-06-13 22:38:49 +02:00
# 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:
.. code-block:: yaml
2018-06-13 22:38:49 +02:00
# Example configuration entry
binary_sensor:
- platform: gpio
pin: D2
name: ...
filters:
- delayed_off: 10ms
2018-06-01 18:10:00 +02:00
See Also
2018-08-24 22:44:01 +02:00
--------
2018-06-01 18:10:00 +02:00
- :doc:`/esphomeyaml/components/binary_sensor/index`
- :ref:`config-pin_schema`
- :doc:`API Reference </api/binary_sensor/gpio>`
2018-06-04 08:17:22 +02:00
- `Edit this page on GitHub <https://github.com/OttoWinter/esphomedocs/blob/current/esphomeyaml/components/binary_sensor/gpio.rst>`__
2018-10-12 16:33:22 +02:00
.. disqus::