PCF8574 I/O Expander

The PCF8574 component allows you to use PCF8574 or PCF8575 I/O expanders (datasheet, Sparkfun) in esphomeyaml. It uses 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 esphomelib they emulate a real internal GPIO pin and can therefore be used with many of esphomelib’s components such as the GPIO binary sensor or GPIO switch.

Any option accepting a Pin Schema can theoretically be used, but some more complicated components that do communication through this I/O expander will not work.

../../_images/pcf8574-full.jpg

PCF8574 I/O Expander.

# 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, INPUT_PULLUP or OUTPUT
      mode: OUTPUT
      inverted: False

Configuration variables:

  • id (Required, 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.