Kasa EP25 smart switch not being found

Manufacturer: Tp-link / Kasa
Model: EP25 - Smart plug with energy monitoring
Firmware Version: 1.0.1 Build 230614 Rel. 150219
Hardware Version: 2.6

I bought a few Kasa EP25 smart plugs with energy monitoring and according to TP-Link Smart Home - Home Assistant it should be supported. Also looking at the forums others have had success with it.

After checking python-kasa where the supported list comes from it is not on the list. I believe its old name was KP125 which is on the list.

I installed python-kasa and the follow came up for the EP25:

kasa discover --show-unsupported
…
Found unsupported device (tapo/unknown encryption): {‘result’: {‘device_id’: ‘e2d738643fff8d048046dd0e00000000’, ‘owner’: ‘043452B2A8CC4580D540547400000000’, ‘device_type’: ‘SMART.KASAPLUG’, ‘device_model’: ‘EP25(US)’, ‘ip’: ‘192.168.X.X’, ‘mac’: ‘3C-52-A1-XX-XX-XX’, ‘is_support_iot_cloud’: True, ‘obd_src’: ‘apple’, ‘factory_default’: False, ‘mgt_encrypt_schm’: {‘is_support_https’: False, ‘encrypt_type’: ‘AES’, ‘http_port’: 80, ‘lv’: 2}}, ‘error_code’: 0}

I also had a KP125M plugged in:

Found unsupported device (tapo/unknown encryption): {‘result’: {‘device_id’: ‘6749b7b733d26dac34627b4800000000’, ‘owner’: ‘043452B2A8CC4580D5405400000000’, ‘device_type’: ‘SMART.KASAPLUG’, ‘device_model’: ‘KP125M(US)’, ‘ip’: ‘192.168.X.X’, ‘mac’: ‘5C-62-8B-X-XX-XX’, ‘is_support_iot_cloud’: True, ‘obd_src’: ‘tplink’, ‘factory_default’: False, ‘mgt_encrypt_schm’: {‘is_support_https’: False, ‘encrypt_type’: ‘AES’, ‘http_port’: 80, ‘lv’: 2}}, ‘error_code’: 0}

If some else with a working EP25 run the command above and see if the device_name changed…

Apart from that this could be a pull request.

After a little digging, the 9999 port used is no longer available like other Kasa devices. Instead there is a 80 port for a health check and 52434,?

curl -vvvv 192.168.X.XX:52434

  • Trying 192.168.X.XX:52434…
  • Connected to 192.168.X.XX (192.168.X.XX) port 52434 (#0)

GET / HTTP/1.1
Host: 192.168.X.XX:52434
User-Agent: curl/8.1.2
Accept: /

< HTTP/1.1 470 Connection Authorization Required
< Content-Length: 0
<

  • Connection #0 to host 192.168.X.XX left intact

Looks like a new auth system

Just picked up a new 4 pack of EP25 from the same Amazon listing I bought a week before, version 1.1 on the old, 2.6 on the new one. New ones wont connect in HA or Sense

2 Likes

Same problem here, and same version numbers… I’m guessing that the newer firmware uses whatever new control API the KP125Ms are using that’s still being sorted out. The linked comment on the KP125M Matter support issue on the python-kasa repo mentions pull requests 509 and 552, which seem to have to do with implementing support for the new API. Not sure where things sit beyond that though.

Frustrating to say the least… I know this is open-source and that these things take time, but I hate it when companies force our hand like this and just break the existing functionality.

Editing to also add - PR 552 also mentions a discussion opened a couple weeks ago specifically about these issues with the EP25s:

Same issue here. Brand new set of EP25.
1.0.1 Build
230614
Rel. 150219
Hardware version 2.6

1 Like

Same issue here. Just bought a 4-pack of EP25.

1.0.1 Build 230614 Rel. 150219
Hardware version 2.6

Just like all my other Kasa plugs, I set a fixed IP address for the EP25 plug and tried to add it. Nothing.

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.