PCF8574 I/O Expander ==================== .. seo:: :description: Instructions for setting up PCF8574 digital port expanders in ESPHome. :image: pcf8574.jpg The PCF8574 component allows you to use PCF8574 or PCF8575 I/O expanders (`datasheet `__, `Sparkfun`_) in ESPHome. It uses :ref:`I²C Bus ` for communication. Once configured, you can use any of the 8 pins (PCF8574) or 16 pins (PCF8575) as pins for your projects. Within ESPHome they emulate a real internal GPIO pin and can therefore be used with many of ESPHome's components such as the GPIO binary sensor or GPIO switch. Any option accepting a :ref:`Pin Schema ` can theoretically be used, but some more complicated components that do communication through this I/O expander will not work. .. figure:: images/pcf8574-full.jpg :align: center :width: 80.0% PCF8574 I/O Expander. .. _Sparkfun: https://www.sparkfun.com/products/retired/8130 .. code-block:: yaml # Example configuration entry pcf8574: - id: 'pcf8574_hub' address: 0x21 pcf8575: False # Individual outputs switch: - platform: gpio name: "PCF8574 Pin #0" pin: pcf8574: pcf8574_hub # Use pin number 0 number: 0 # One of INPUT or OUTPUT mode: OUTPUT inverted: False Configuration variables: ~~~~~~~~~~~~~~~~~~~~~~~~ - **id** (**Required**, :ref:`config-id`): The id to use for this PCF8574 component. - **address** (*Optional*, int): The I²C address of the driver. Defaults to ``0x21``. - **pcf8575** (*Optional*, boolean): Whether this is a 16-pin PCF8575. Defaults to ``False``. See Also -------- - :ref:`i2c` - :doc:`switch/gpio` - :doc:`binary_sensor/gpio` - `PCF8574 Arduino Library `__ by `Fabien Batteix `__ - :apiref:`pcf8574/pcf8574.h` - :ghedit:`Edit`