Local control of TP-Link Kasa devices
Production version:
TP-Link KASA LAN
Test version:
TP-Link KASA LAN – Test ![]()
Source code:
About the app
TP-Link KASA LAN connects supported TP-Link Kasa plugs, outlets, power strips, wall switches, dimmers, bulbs and light strips to Homey Pro.
Everyday device control takes place directly over your local network. Supported devices can therefore be controlled from the Homey app and used in Flows without sending each command through TP-Link’s cloud.
Depending on the model, the app supports:
- Automatic LAN discovery
- Manual IP-address pairing
- Recovery after an IP-address change
- On/off and dimming controls
- Color and color-temperature controls
- LED and night-mode controls
- Power, current, voltage and energy measurements
- Motion and ambient-light measurements
- Multi-outlet and multi-channel devices
- Authenticated and encrypted local communication on selected newer models
- Device-specific triggers, conditions and actions for Homey Flows
This app supports TP-Link Kasa devices only. It does not support TP-Link Tapo devices unless a particular model is explicitly listed as supported.
Similar-looking devices or regional variants are not automatically compatible. The exact model identifier, hardware revision and firmware version can affect support.
Production and test versions
The test version may contain support for newer devices and protocols before these changes are promoted to production.
The latest development adds:
- Authenticated local control for newer Kasa devices
- KLAP transport support for KS225
- AES transport support for S500D and KS240
- Authenticated EP10 firmware support
- Improved HS220 transport compatibility
- KS240 fan and light channels as separate Homey devices
- Experimental HS107 dual-outlet support
- Improved automatic IP rediscovery
- Reduced polling connections
- Staggered device startup to prevent connection bursts
- Improved diagnostic logging
Users of the test version are encouraged to report both successful results and failures, especially for newer authenticated models.
Supported devices
Features vary by model, hardware revision and firmware version.
| Category | Supported models | Main Homey features |
|---|---|---|
| Plugs and outlets | HS100, HS103, HS105, HS110, EP10, EP25, KP105, KP115, KP200, KP303 | On/off, LED control and energy measurements on supported models |
| Dual-outlet plug | HS107 | Both outlets paired separately, independent on/off control and shared LED control; no energy monitoring |
| Power strips and outdoor outlets | HS300, EP40, KP400 | Separately controlled outlets, LED control and energy measurements where supported |
| Dimmable outdoor plug | KP405 | On/off, dimming and LED control |
| Wall switches and dimmers | ES20M, HS200, HS210, HS220, KS225, KS230, S500D | On/off, dimming, LED control and model-specific measurements |
| Motion and ambient-light switch | KS200M | On/off, LED control, motion alarm and ambient-light measurement |
| Fan and light controller | KS240 | Fan and light channels added as separate Homey devices, with independent on/off and level control |
| Smart bulbs | LB100, LB110, LB120, LB130, KL50, KL60, KL110, KL120, KL125, KL130 | On/off, dimming, color temperature, color and lighting modes where supported |
| Light strips | KL400, KL430 | On/off, dimming, color temperature, color and lighting modes |
The list represents models recognised by the current application. A device with a similar name or appearance is not necessarily compatible.
Network requirements
Homey and the TP-Link device must be able to communicate with each other over the local network.
Communication may fail when:
- Homey and the Kasa device are placed in isolated VLANs
- Wi-Fi client isolation is enabled
- The Kasa device is connected to an isolated guest network
- A firewall blocks communication between Homey and the device
- Broadcast or discovery traffic is blocked
- The device’s IP address has changed
IP-address recommendation
Reserve a fixed IP address for every Kasa device in your router’s DHCP configuration whenever possible.
If a DHCP reservation is not possible, enable the dynamic IP address option in the Homey device settings. The app will then attempt to rediscover the device when its stored IP address no longer responds.
Recent test versions include improved IP rediscovery with timeout recovery, isolated discovery sessions and safer retry handling.
Third-Party Compatibility
Some legacy Kasa devices and firmware versions require Third-Party Compatibility to be enabled in the official Kasa mobile app.
Before reporting a legacy device as unreachable, verify that this option is enabled:
The precise location and name of this option can vary between versions of the Kasa mobile app.
Authenticated Kasa devices
Newer Kasa devices may no longer accept the original unencrypted local protocol. This does not necessarily mean that they require cloud control for every command.
The app supports authenticated local connections for selected models:
- KS225 using the KLAP transport
- S500D using the AES transport
- KS240 using the AES transport
- EP10 models or firmware using an authenticated transport
- Improved transport handling for newer HS220 variants
Your TP-Link account credentials are used to authenticate the encrypted local connection. Everyday control then continues over the local network.
Configuring credentials
A default TP-Link account can be configured once on the app’s Settings page.
This account is used by authenticated devices unless a device has its own account override. The password is not written to application logs.
A separate account can be assigned to an individual device during pairing or through its Advanced Settings. Clearing both device-specific credential fields returns the device to the app-wide default account.
Existing devices with older locally stored credentials can be migrated deliberately using the adoption option on the app Settings page.
Never publish your TP-Link credentials, Homey credentials, access tokens or remote-access information in this topic or in a GitHub issue.
Pairing a device
- Confirm that the device works in the official Kasa app.
- Ensure that Homey and the Kasa device can communicate over the local network.
- Enable Third-Party Compatibility when required.
- In Homey, select Add device and choose TP-Link KASA LAN.
- Select the driver matching the exact model.
- Try automatic discovery first.
- If discovery is blocked, use manual IP-address pairing.
- For KS225, S500D, KS240 or authenticated EP10 firmware, configure a complete TP-Link account in the app Settings or during pairing.
- Select the devices or individual channels that you want to add.
Pairing validates authenticated credentials against the selected physical device before it is saved.
The HS107 exposes both physical outlets as separate Homey socket devices. The outlets share the device’s parent-level status LED and do not provide energy measurements.
The KS240 exposes the fan and light as separate Homey devices.
Troubleshooting
If an existing device stops responding, do not remove it immediately. Removing and adding a device again may affect existing Flows, device history and Insights.
Check the following first:
- Confirm that the device still works in the Kasa app.
- Verify that Homey can reach the device on the local network.
- Confirm that its IP address has not changed.
- Verify Third-Party Compatibility for legacy devices.
- For authenticated devices, test the default account on the app Settings page.
- Check device-specific credentials only if the device intentionally uses another TP-Link account.
- Restart the TP-Link KASA LAN app once.
- Reproduce the problem.
- Immediately create an application diagnostic report.
When reporting a problem, include:
- Diagnostic-report ID
- Exact TP-Link model
- Hardware revision
- Firmware version
- Homey model and firmware version
- TP-Link KASA LAN app version
- Production or test channel
- Whether the device is newly paired or was previously working
- Automatic or manual-IP pairing
- Whether Third-Party Compatibility is enabled
- The exact failed action
- The approximate time of the failure
- Whether the device still works in the official Kasa app
For normal support, troubleshooting and pairing questions, use this Homey Community topic.
GitHub should primarily be used for confirmed application bugs and development-related issues:
Community testing
Real-device testing remains important because the same model can use different hardware or firmware revisions.
Reports from owners of the following models are especially useful:
- KS225
- S500D
- KS240
- EP10 with authenticated firmware
- ES20M
- HS107
- HS110
- HS220
- KS230
Please test pairing, controls, status updates, application restart recovery and existing Flows. Successful results are just as useful as failure reports. When something fails, always include a diagnostic-report ID.
Credits
Special thanks to the original main developer, Anne Baretta, for creating and maintaining the foundation of this application.
![]()
The current app uses a maintained fork of Patrick Seal’s tplink-smarthome-api and builds on earlier TP-Link protocol research by the open-source community.
Related projects:
- GitHub - shaarkys/tplink-smarthome-api: TP-Link Smarthome WiFi API · GitHub
- GitHub - plasticrake/tplink-smarthome-api: TP-Link Smarthome WiFi API · GitHub
- linuxscripts/tp-link-hs100-smartplug at master · ggeorgovassilis/linuxscripts · GitHub
- https://www.softscheck.com/en/blog/tp-link-reverse-engineering/
- https://github.com/DaveGut/TP-Link-Bulbs
This is an independent community integration and is not affiliated with or endorsed by TP-Link or Athom.
Community development and appreciation
These Homey Community apps are developed and maintained in my spare time. They are free to use, and contributions are never required.
Did you know? In my experience maintaining community Homey apps, only a very small proportion of users choose to support their development financially—even when a new device integration or specific feature has been implemented at their request.
Contributions are entirely optional, but they are a meaningful way to recognise the time invested in development, testing, compatibility updates and ongoing user support.
Send an optional thank-you via PayPal
A contribution does not unlock additional features or affect the support you receive. It is simply a way to say thank you.
Other Homey apps I maintain
![]() Smart Presence Wi-Fi presence detection |
![]() Xiaomi Mi Home Xiaomi Mi Home devices |
![]() Broadlink IR, RF and smart devices |
|||
![]() TP-Link KASA LAN Local Kasa control |
![]() Yeelights LAN Local Yeelight control |
![]() Xiaomi Miija Temperature and humidity sensors |
|||
![]() Octoprint Monitor your 3D printer |
![]() Virtual Radar ADS-B aircraft tracking |
![]() enigma2 Control Enigma2 receivers |












