← All projects
Homebridge TP-Link Tapo · Public GitHub · Home automation

Bring Kasa and Tapo devices together.

Homebridge TP-Link Tapo combines automatic discovery for legacy TP-Link/Kasa accessories with local control for configured Tapo plugs and lights in one Homebridge platform.

Home security camera, smart plug, and lamp connected on a local network.

One platform for two device families.

The platform retains legacy TP-Link/Kasa discovery and configuration while adding Tapo devices configured by IP address. It polls their state into HomeKit so supported plugs, switches, bulbs, and light strips can join the same smart-home workflow.

Local control across the devices you already own.

01 / Discover

Legacy device discovery

Automatically find supported TP-Link/Kasa plugs, switches, bulbs, and light strips on the local network.

02 / Add

Configured Tapo devices

Add supported Tapo plugs and lights by IP address using the device’s required account credentials and host information.

03 / Control

Local device protocol

Initialize Tapo entries locally and operate them without a cloud service at runtime.

04 / See

HomeKit state

Poll device state into HomeKit so accessories reflect their current status.

05 / Measure

Energy telemetry

Show energy data through custom characteristics on compatible legacy devices.

06 / Preserve

Existing configurations

Retain the legacy discovery and configuration behavior while adding the Tapo device stack.

Two device paths, one Homebridge home.

  1. DiscoverFind supported legacy TP-Link/Kasa devices automatically.
  2. ConfigureAdd supported Tapo devices by IP and required credentials.
  3. PollRead local device state into the platform.
  4. UseControl the resulting accessories through HomeKit.

Built for local device integration.

Legacy families

Supports the established TP-Link/Kasa device path for plugs, switches, bulbs, and light strips.

Tapo families

Supported devices include P100/P105 and P110 plugs, plus L510, L520, and L530 lights.

Runtime behavior

Tapo entries use required account credentials during local initialization, then use local device control at runtime.