78 lines
1.7 KiB
Markdown
78 lines
1.7 KiB
Markdown
# TCA6408 ESPHome Component
|
||
|
||
Full-featured custom component for the **TCA6408** 8-bit I²C I/O Expander.
|
||
|
||
**This is work in progress and under test**
|
||
|
||
## Features
|
||
|
||
- 8 bidirectional GPIO pins
|
||
- Hardware polarity inversion support (inputs)
|
||
- Interrupt-driven inputs (active-low INT pin)
|
||
- Efficient cached GPIO expander
|
||
- Polling fallback mode
|
||
- Compatible with ESP32 (including C3/C5/C6), ESP8266, etc.
|
||
|
||
The INT pin on TCA6408 is open-drain active-low — connect a pull-up resistor (or use internal pull-up on ESP).
|
||
|
||
## Installation
|
||
|
||
1. Download or clone this component into your ESPHome project:
|
||
```bash
|
||
mkdir -p custom_components
|
||
cp -r TCA6408/custom_components/tca6408 custom_components/
|
||
## Basic Configuration
|
||
|
||
i2c:
|
||
sda: GPIO4
|
||
scl: GPIO5
|
||
scan: true
|
||
frequency: 400kHz
|
||
|
||
custom_components:
|
||
- source:
|
||
type: local
|
||
path: custom_components/tca6408
|
||
|
||
tca6408:
|
||
- id: tca6408_hub
|
||
address: 0x20 # Default: 0x20 (0x20–0x27 depending on ADDR pins)
|
||
interrupt_pin: GPIO6 # Recommended for fast input response
|
||
|
||
## Example: Outputs (Switches)
|
||
|
||
switch:
|
||
- platform: gpio
|
||
name: "TCA6408 Output 0"
|
||
pin:
|
||
tca6408: tca6408_hub
|
||
number: 0
|
||
mode: OUTPUT
|
||
|
||
- platform: gpio
|
||
name: "TCA6408 Relay (Active Low)"
|
||
pin:
|
||
tca6408: tca6408_hub
|
||
number: 1
|
||
mode: OUTPUT
|
||
inverted: true
|
||
|
||
## Example: Inputs (Binary Sensors) with Interrupt
|
||
|
||
binary_sensor:
|
||
- platform: gpio
|
||
name: "Door Sensor"
|
||
pin:
|
||
tca6408: tca6408_hub
|
||
number: 3
|
||
mode: INPUT
|
||
inverted: true # Uses hardware polarity inversion
|
||
|
||
- platform: gpio
|
||
name: "Push Button"
|
||
pin:
|
||
tca6408: tca6408_hub
|
||
number: 4
|
||
mode: INPUT
|
||
|