PCAL9535A I/O Expander


The pcal9535a integration is the base for all related pcal9535a platforms in Home Assistant. There is no setup needed for the integration itself, for the platforms, please check their corresponding sections.

One of the use cases is Seeed studio Raspberry Pi Relay Board.

For more details about the PCAL9535A I2C I/O port expander, you can find its datasheet here: PCAL9535A.

Binary Sensor

The pcal9535a binary sensor platform allows you to read sensor values from the I/O pins of your PCAL9535A I2C I/O expander.

The pin numbers are from 0 to 15, where: 0-7 correspond to port P0 (P0_0 - P0_7) and 8-15 to port P1 (P1_0 - P1_7).

Configuration

To use the I/O pins of an PCAL9535A connected to an I2C bus of your Raspberry Pi as binary sensors, add the following to your configuration.yaml file:

# Example configuration.yaml entry
binary_sensor:
  - platform: pcal9535a
    pins:
      0: PIR Office
      1: PIR Bedroom

Configuration Variables

i2c_bus integer(Optional, default: 1)

i2c bus number of PCAL9535A chip.

i2c_address integer(Optional, default: 0x20)

i2c address of PCAL9535A chip.

pins mapRequired

List of used pins.

pin: name integer | stringRequired

The pin numbers (from 0 to 15) and corresponding names.

invert_logic boolean(Optional)

If true, inverts the input logic to ACTIVE LOW.

Default:

false (ACTIVE HIGH)

pull_mode string(Optional, default: DISABLED)

Type of internal pull resistor to use. Options are UP - pull-up resistor, DOWN - pull-down resistor, DISABLED - resistors disconnected.

Switch

The pcal9535a switch platform allows you to write to the I/O pins of your PCAL9535A I2C I/O expander.

The pin numbers are from 0 to 15, where: 0-7 correspond to port P0 (P0_0 - P0_7) and 8-15 to port P1 (P1_0 - P1_7).

Configuration

To use the I/O pins of a PCAL9535A connected to an I2C bus of your Raspberry Pi as switches, add the following to your configuration.yaml file:

# Example configuration.yaml entry
switch:
  - platform: pcal9535a
    pins:
      11: Fan Office
      12: Light Desk

Configuration Variables

i2c_bus integer(Optional, default: 1)

i2c bus number of PCAL9535A chip.

i2c_address integer(Optional, default: 0x20)

i2c address of PCAL9535A chip.

pins listRequired

Array of used pins.

pin integer | stringRequired

The pin numbers (from 0 to 15) and corresponding names.

invert_logic boolean(Optional, default: false)

If true, inverts the output logic to ACTIVE LOW.

strength string(Optional, default: 1.0)

Control the output drive level of the GPIO. Each GPIO can be configured independently to one of the four possible output current levels. By programming these bits, the user is changing the number of transistor pairs or ‘fingers’ that drive the I/O pad. Options are 0.25, 0.5, 0.75, 1.0.