Tapo C225 V2 (EU/2.0) firmware 1.3.1 causes SSL handshake failure in Home Assistant while C225 EU/1.0 firmware 1.2.2 works correctly
Summary
I would like to report what appears to be a reproducible compatibility issue between the latest firmware of the TP-Link Tapo C225 V2 and the Home Assistant TP-Link Smart Home integration (python-kasa).
I own three Tapo C225 cameras installed in the same environment.
Two cameras are the newer EU/2.0 (HVIN: Tapo C225V2) hardware revision and both are running firmware 1.3.1.
The third camera is the older EU/1.0 hardware revision running firmware 1.2.2.
The two V2 cameras consistently fail with an SSL handshake error while the older camera continues to work perfectly.
Because all cameras are installed in the same Home Assistant instance, on the same local network and using the same TP-Link account, this provides a direct comparison under nearly identical conditions.
Home Assistant Environment
Installation Method: Home Assistant OS
Home Assistant Core: 2026.7.2
Supervisor: 2026.07.3
Operating System: 18.1
Frontend: 20260624.5
The system is fully up to date.
Camera Inventory
Working Camera
Model: Tapo C225
Hardware Revision: EU/1.0
HVIN: Tapo C225
Firmware: 1.2.2
Serial Number: 2241ADN000741
MAC Address: 74-FE-CE-2B-FE-26
Status:
Works perfectly with the native Home Assistant TP-Link Smart Home integration.
The root cause of this one is already identified in #1724 — it is a cipher-suite mismatch, not a certificate or account problem, which is why your EU/1.0 on 1.2.2 keeps working while the two EU/2.0 units on 1.3.1 fail.
The newer firmware restricts port 443 to ECDHE-only suites, while SslAesTransport in python-kasa offers only static-RSA ones (AES256-GCM-SHA384, AES256-SHA256, AES128-GCM-SHA256, AES128-SHA256, AES256-SHA). The intersection is empty, so the camera answers with handshake_failure. Your older camera predates that firmware change and still accepts the static-RSA suites.
I can confirm the same failure and the same fix on a C225 (login_version: 3) with python-kasa 0.10.2 — details and a per-cipher breakdown in #1724. Adding ECDHE-RSA-AES128-GCM-SHA256 / ECDHE-RSA-AES256-GCM-SHA384 to that list takes the entry from setup_retry to loaded; the static-RSA entries stay so older units are unaffected.
You can verify it on your own units without changing anything:
nmap --script ssl-enum-ciphers -p 443 <camera-ip>
The 1.3.1 cameras should list only TLS_ECDHE_RSA_WITH_AES_*, and the 1.2.2 one should also offer the static-RSA suites.
Worth closing this as a duplicate of #1724 so the discussion stays in one place.
TP-Link has now provided firmware 1.3.2 Build 260716 Rel.32412n, and after updating both affected C225 V2 cameras from 1.3.1 to 1.3.2, the Home Assistant integration works normally again without any changes on the Home Assistant/python-kasa side. The SSL handshake errors have completely disappeared.
TP-Link specifically told me that this new firmware “may resolve this issue”, so it appears they were aware of the problem and addressed it in firmware 1.3.2.
Thank you for the detailed explanation and for identifying the cipher-suite mismatch. I agree that this issue can be closed as a duplicate of #1724.
Activity
Nino6689 commented on Aug 6, 2026
The root cause of this one is already identified in #1724 — it is a cipher-suite mismatch, not a certificate or account problem, which is why your EU/1.0 on 1.2.2 keeps working while the two EU/2.0 units on 1.3.1 fail.
The newer firmware restricts port 443 to ECDHE-only suites, while SslAesTransport in python-kasa offers only static-RSA ones (AES256-GCM-SHA384, AES256-SHA256, AES128-GCM-SHA256, AES128-SHA256, AES256-SHA). The intersection is empty, so the camera answers with handshake_failure. Your older camera predates that firmware change and still accepts the static-RSA suites.
I can confirm the same failure and the same fix on a C225 (login_version: 3) with python-kasa 0.10.2 — details and a per-cipher breakdown in #1724. Adding ECDHE-RSA-AES128-GCM-SHA256 / ECDHE-RSA-AES256-GCM-SHA384 to that list takes the entry from setup_retry to loaded; the static-RSA entries stay so older units are unaffected.
You can verify it on your own units without changing anything:
The 1.3.1 cameras should list only TLS_ECDHE_RSA_WITH_AES_*, and the 1.2.2 one should also offer the static-RSA suites.
Worth closing this as a duplicate of #1724 so the discussion stays in one place.
mhddf2y4gf-jpg commented on Aug 7, 2026
TP-Link has now provided firmware 1.3.2 Build 260716 Rel.32412n, and after updating both affected C225 V2 cameras from 1.3.1 to 1.3.2, the Home Assistant integration works normally again without any changes on the Home Assistant/python-kasa side. The SSL handshake errors have completely disappeared.
TP-Link specifically told me that this new firmware “may resolve this issue”, so it appears they were aware of the problem and addressed it in firmware 1.3.2.
Thank you for the detailed explanation and for identifying the cipher-suite mismatch. I agree that this issue can be closed as a duplicate of #1724.