Kasa EP25 smart switch not being found

Same here with the same stats as @njtj

I had a ton of issues getting my KP125M to connect to HA even following this thread. I gave up and am waiting for HA to support this new auth system. When it connects to Google Home with Matter the Kasa app immediately finds the mac address of the new device. I tried to do the Docker container matter server but something is wrong. I don’t really want to connect with matter anyways as I want the energy monitoring.

Well shoot!
Same situation here.

Looks like active work going on…good news.

2 Likes

Glad it’s being worked on. I just got 2 and they won’t connect either :frowning:

The support for these is now available in the git master branch (GitHub - python-kasa/python-kasa: 🏠🤖 Python API for TP-Link Kasa Smarthome products) and there is a PR to update the tplink integration to allow adding these devices that require authentication.

If you want, you can enable notifications on to get notified when the support gets merged :slight_smile:

It is also working for me. I do not know how to help with the integration but I created a temporary solution to send data to Home Assistant via a webhook using a Raspberry Pi. This version only sends the power value but it should be easy to extend as needed. It is inefficient because it starts Python each time but at least, I get access to the data. Hopefully, it can be useful to others (I redacted the IP addresses and passwords). Suggestions for improvements are of course welcome.

Assuming a homeassistant user, I created the plug.sh script below under the bin directory:

#!/bin/sh

PLUG_IP=x.x.x.x
[email protected]
PLUG_PASSWORD=SomePassword

HA_IP=y.y.y.y
HA_WEBHOOK=SomeWebhook

PREVIOUS_WATT=-1

cd /home/homeassistant/python-kasa

while :
do
  JSON=`../.local/bin/poetry run kasa --host $PLUG_IP --username "$PLUG_USERNAME" --password "$PLUG_PASSWORD" --json`
  POWER_DATA=`echo "$JSON" | grep current_power`
  POWER_WATT=`echo "$POWER_DATA" | tail -n 1 | cut -f 2 --delimiter=:`
  if [ "$PREVIOUS_WATT" != "$POWER_WATT" ]; then
    POWER_MILLIWATT=`echo "$POWER_DATA" | head -n 1 | cut -f 2 --delimiter=:`
    /usr/bin/curl -X POST -d "power=${POWER_MILLIWATT}&unit=mW" http://$HA_IP:8123/api/webhook/$HA_WEBHOOK
    PREVIOUS_WATT="$POWER_WATT"
    sleep 10s
  fi
done

And I added the line below to /etc/rc.local so that the script is launched when the Pi starts.

sudo -u homeassistant nice -n 19 /home/homeassistant/bin/plug.sh & > /var/log/plug.log 2>&1 

Can someone share how we can install this in Home Assistant?

The PR is now merged, so the simplest way is just waiting for the next release which will support these out of the box.

How to confirm this?
The most recent release notes don’t mention this, and trying to add by IP still fails.

Sorry, I meant the next feature release (2024.2). The beta is starting some time today, so feel free to test and report back :slight_smile:

Awesome!
Im still new to this - but just joined the beta channel. Looking forward to testing this tonight.

1 Like

I can confirm as of tonight it still doesn’t work. Why do these companies do this and force folks to no longer purchase their products? Personally, I would embrace folks like HASS providing the support, I don’t have to develop and maintain an app then and folks like this community will purchase those things in droves. They need to look at companies like Shelly and learn the lessons of Chamberlain.

I updated to the latest beta core (2024.2.0b8) last night and was able to get the TP-Link Kasa smart switch integration to find and connect to my EP25s. One of them was on a separate VLAN and wasn’t auto-discovered, but I was still able to connect by entering the IP of that device. I did have to do authentication for the first device, but it must have stored it for the remainder.

I have one of them on a VLAN that has no out-going internet allowed. I wanted to use it as a local device only. When in this mode if the device loses power it seems I have to go through the whole setup process again. It could be that I didn’t wait long enough after plugging it back in, but just thought I would mention it.

Yes, the integration stores the username & the password until the next reboot to make it simpler to add multiple devices without re-typing the credentials. Each individual config entry (i.e., individual device) will only store a hash from the credentials that keep working as long as the username & the password remain unchanged.

I don’t have this device, but I haven’t seen this issue on any of my test devices that use the authenticated protocol, so it’s hard to say what could be the problem.

Thanks for the reply! I’ll try again and see if it was user error. I am guessing it was. :slight_smile:

1 Like

I went to 2024.2.0 and tada, it also discovered one of my new EP25 devices. I should have restarted Home Assistant, but instead I just plugged in the other 3 EP25 devices, then added them 1 by 1 by IP address (that I looked up in the Kasa app under Device Info).

Yay! I wasn’t a fan of the authentication for the first one I added. I’m glad it didn’t keep asking for authentication for my 2nd, 3rd, and 4th EP25s as I added them.

1 Like

I did notice that the new paddle type of Pico Remote doesn’t get recognized correctly yet, details here:

This was user error. My device had poor wifi signal and was dropping off because of that. After getting better signal to it, I haven’t had anymore issues even after unplugging it and plugging it back in. Thanks!

I don’t see alot of posts where the EP25 setup was done without the KASA app. Although the python-kasa readme documents a procedure for setting up a TP-LINK device without the cloud it doesn’t seem to completely work for me. Has anyone attempted to set up an EP25 (without cloud) AND integrate it successfully into HA?

Using the python-kasa CLI I can discover my virgin EP25 and do a ‘wifi scan’ successfully but ‘wifi join’ will fail.