dickydoouk / tp-link-tapo-connect

Unofficial Node.js library for connecting to TP-Link Tapo devices. Currently limited to the P100 & P105 smart plugs and L510E smart bulbs.
112 stars 39 forks source link

Bulb Firmware 1.1 Changes Encryption to KLAP #41

Closed DaveGut closed 8 months ago

DaveGut commented 1 year ago

This will affect this implementation. Tapo has apparently change the encryption type to KLAP (from AES) in version 1.1 of the Tapo Bulb firmware. This will break the handshake and login methods.

New port 20002 return for a bulb is below. see element encrypt_type.

[device_id:8f696a16cf11fd74dd32040e121dxxxx, owner:0D8E1ED8A10E5D767EAB6EA910E2xxxx, device_type:SMART.TAPOBULB, device_model:L530E(US), ip:192.168.50.70, mac:1C-61-B4-B6-BE-FA, is_support_iot_cloud:true, obd_src:tplink, factory_default:false, mgt_encrypt_schm:[is_support_https:false, encrypt_type:KLAP, http_port:80, lv:2]]

FrancoisDucrot commented 8 months ago

Hi, Any news ? My plugs have been updated (P100, P110, P115), and getDeviceInfo crashes [homebridge-ip-autopower] Error: Unexpected Error Code: 1003 (undefined) at checkError (/Users/xxxxxx/project/node_modules/tp-link-tapo-connect/dist/api.js:444:28) at /Users/xxxxxx/project/node_modules/tp-link-tapo-connect/dist/api.js:182:40 at step (/Users/xxxxxx/project/node_modules/tp-link-tapo-connect/dist/api.js:67:23) at Object.next (/Users/xxxxxx/project/node_modules/tp-link-tapo-connect/dist/api.js:48:53) at fulfilled (/Users/xxxxxx/project/node_modules/tp-link-tapo-connect/dist/api.js:39:58) at process.processTicksAndRejections (node:internal/process/task_queues:95:5)

dickydoouk commented 8 months ago

This should now work using the latest version 2 of the library. Note there are some breaking api changes that will need to be resolved but hopefully all for the better. See the migration guide in the Readme.md