[APP][Pro] TP-Link KASA LAN - Smart Plugs and Bulbs (WIFI)

Local control of TP-Link Kasa devices

Production version:
TP-Link KASA LAN

Test version:
TP-Link KASA LAN – Test :fast_forward:

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

  1. Confirm that the device works in the official Kasa app.
  2. Ensure that Homey and the Kasa device can communicate over the local network.
  3. Enable Third-Party Compatibility when required.
  4. In Homey, select Add device and choose TP-Link KASA LAN.
  5. Select the driver matching the exact model.
  6. Try automatic discovery first.
  7. If discovery is blocked, use manual IP-address pairing.
  8. For KS225, S500D, KS240 or authenticated EP10 firmware, configure a complete TP-Link account in the app Settings or during pairing.
  9. 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:

  1. Confirm that the device still works in the Kasa app.
  2. Verify that Homey can reach the device on the local network.
  3. Confirm that its IP address has not changed.
  4. Verify Third-Party Compatibility for legacy devices.
  5. For authenticated devices, test the default account on the app Settings page.
  6. Check device-specific credentials only if the device intentionally uses another TP-Link account.
  7. Restart the TP-Link KASA LAN app once.
  8. Reproduce the problem.
  9. 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. :+1: :tophat:

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:

This is an independent community integration and is not affiliated with or endorsed by TP-Link or Athom.

:heart: 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.

:heart: 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  | 72x72
Smart Presence
Wi-Fi presence detection
Xiaomi Mi Home | 72x72
Xiaomi Mi Home
Xiaomi Mi Home devices
Broadlink    | 72x72
Broadlink
IR, RF and smart devices
TP-Link KASA LAN |                     72x72
TP-Link KASA LAN
Local Kasa control
Yeelights LAN | 72x72
Yeelights LAN
Local Yeelight control
Xiaomi Miija | 72x72
Xiaomi Miija
Temperature and humidity sensors
Octoprint    |            72x72
Octoprint
Monitor your 3D printer
Virtual Radar | 72x72
Virtual Radar
ADS-B aircraft tracking
enigma2      | 72x72
enigma2
Control Enigma2 receivers

View all my Homey apps →

Just ordered 2x HS100 because the remote is too far for zwave so this will be the solution.
Edit.
They are working as expected.
now waiting for the new version so i can switch and test to homey 2.0

MY HS110 smartplugs lose connection and stop working in Homey.

Hi Wout,

Can you provide more details such as which version of Homey, which version of the app, etc.?

The first thing to check is if the ip address used by the plug has changed, the app does not automatically rediscover plugs if this happens. This is most likely your problem.

You can add a plug and see if any are discovered by the app at ‘new’ IP addresses. You can then either use the newly discovered ones, which means you lose the insights data, or change the IP address in the settings of your current plugs. :+1:

Homey Firmware Versie: 1.5.13
And 1.3.3 build 70 ios

IP adresses are the same

I have no idea what the problem may be, you are still not providing a lot of detail. The Homey version is clear, ‘1.3.3 build 70 ios’ sounds like an old version of the Kasa app, for Apple, but I am guessing here.

What have you tried so far? Do the plugs still work with the Kasa app? Have you tried re-adding the plugs in Homey, or restarting the app? You do realize that I am just a Homey user who happened to make a few apps, I am not getting paid to make apps or support them? No-one is donating anything either I might add.

v0.0.17 of the Homey app works for me with the latest TP link firmware for the plugs, and it appears to work for ~275 other users as well, so it is not a general/common problem.

@Aart_Hardeman, SDK1 apps may work on Homey V2. The TP Link app does not have any features which are unsupported in V2, so I am looking forward to the first person testing the app on V2 :wink:

In the meantime I have started some work on an SDK2 version of the app, so it will come at some point, probably before V2 is stable anyway.

I use Kasa version 2.7.1 build 594.

I Kasa it works fine.
After re adding it works fine for a while.

Restarting the app doesn’t make a difference? And you say the IP address remains the same, so you can ping the plugs after they stop working in Homey? How long does it take for the plugs to become unresponsive?

What you can do is download the app from the github link in the app store and install it via the ‘cli-method’. This will give debugging output which will probably shed some light on the cause of the problem.

I have looked in the guthub link.
But i dont understand what u mean with CLI method.

Have them reset and it works now.
But one of them works with the christmass tree. That one works bad.
Sometimes no respond.

Over to Homey 2.0
Zero problems with the app.0.0.17. Tnx.

Mmm, after publishing the SDK2 version in the store I am getting (Homey v2.0.0) crash reports… The app has been verified on Homey 1.5.13 as well as v2.0.0, but possibly something is going wrong with certain device types. Basically there is one driver for all the plugs, and another one for the bulbs. The other devices use the same driver with a subset of capabilities.

The crash reports are caused by (mainly) ‘connection refused’ errors, but I can’t tell for which devices. Let me know if you have any issues, and please give details on when it happens. And perhaps try the usual, restarting the app, removing and adding a device, etc.

I wonder/suspect if the issue may be affecting hs100 plugs and lb100/110/120 bulbs, please confirm if you have issues with one of these devices (or not, that could helpful to know as well ;-).

Hey anne, thank you for the update!

After update v1 this app crashes everyday.
After a restart it will work for a day.
I use three HS110 and sadly I updated to homey V2
With homey 1.5 I had no problems?

Hi Jimmy,

Each time an app crashes the developer gets a crash report in the mail. As mentioned above, I have seen several, unfortunately the crash reports aren’t very informative… So it’s good you post it on here, otherwise I can only guess what’s going on. In most cases the app gets a ‘connection refused’ or the TP Link device becomes unreachable.

I can’t reproduce the problem myself, apparently only a minority of users run into the issue, and they are all on Homey V2 (I haven’t updated yet).

The issue may be related to the feature I added that allows the app to deal with dynamic IP’s. I will update the app with an option to turn this on or off (by default leaving it off), to see if that makes a difference.

Lucky you. I have updated and all of my TP-Link smart plugs are unusable now. Any way to downgrade to the old Homey?

You can’t downgrade to 1.5.13 unfortunately.

You aren’t very specific about what exactly is happening with the plug, I guess the app crashes?

I will probably have a fix for the issue that crashes the app shortly.

The app crashes constantly as I already mentioned. Even trying to use any of plugs causes the crash. hence the are not usable at all. Pity you can’t downgrade. I have other devices e.g. Fibaro RGBW switch, Heatmiser hotwater controller they just stopped working. This means 3/4 of my all devices being controlled by Homey are peace of junk at the moment.

I meant piece - not peace.

@rafi And you have contacted athom about this right?

Yes, I have. On all of the issues. No fix so far.