Files
Dave Williams | DitroniX | G8PUO 9d15088c02 In Review
2026-06-13 12:55:24 +01:00

78 lines
1.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 (0x200x27 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