Skip to content

TP15 authentication failure after upgrade to firmware 1.4.2 #1653

@dpw13

Description

@dpw13

All of my TP15s updated to the following firmware the morning of (I believe) Feb 4th. Since then I've been unable to access them using python-kasa (and all of my Home Assistant integrations for these devices has failed as well).

1.4.2 Build 251204 Rel.103056

Running kasa -v -d discover:

...
DEBUG:kasa.device_factory:Finding protocol for 192.168.3.80
DEBUG:kasa.device_factory:Finding protocol for DeviceFamily.SmartTapoPlug
DEBUG:kasa.device_factory:Finding transport for SMART.AES
DEBUG:kasa.transports.aestransport:Created AES transport for 192.168.3.80
DEBUG:kasa.discover:[DISCOVERY] 192.168.3.80 << {'error_code': 0,
 'result': {'device_id': 'REDACTED',
            'device_model': 'TP15(US)',
            'device_type': 'SMART.TAPOPLUG',
            'factory_default': False,
            'ip': '192.168.3.80',
            'is_support_iot_cloud': True,
            'mac': '7C-F1-7E-00-00-00',
            'mgt_encrypt_schm': {'encrypt_type': 'AES',
                                 'http_port': 80,
                                 'is_support_https': False,
                                 'lv': 2},
            'obd_src': 'matter',
            'owner': 'REDACTED',
            'protocol_version': 1,
            'tpap_preferred': False}}
DEBUG:kasa.device:Initializing 192.168.3.80 of type <class 'kasa.smart.smartdevice.SmartDevice'>
...
DEBUG:kasa.protocols.smartprotocol:192.168.3.80 multi-request-batch-1-of-1 >> '{"method"(12 results) 18:35:58 [100/1016]
_milis":1770510958484,"terminal_uuid":"yBlTFZ60fa3oz1F4QpkwoA==","params":{"requests":[{"method":"component_nego"},{"met
hod":"get_device_info"},{"method":"get_connect_cloud_state"}]}}'
DEBUG:kasa.transports.aestransport:Will perform handshaking...
DEBUG:kasa.httpclient:Posting to http://192.168.3.80/app
DEBUG:kasa.transports.aestransport:Generating keypair
DEBUG:kasa.transports.aestransport:Handshake request: {'method': 'handshake', 'params': {'key': '-----BEGIN PUBLIC KEY--
---\nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDDXR6r/fU60VJaw5rhmvf8ckEk1xr891tm9jXHxQ9BRCddNu7mYQvaG++o6mF1wZsHRTe+dSMMdi+
kMwe7bvUMkAHJ8WLdkkTCtbQxjacxFoevadQh5EhznPn30JbHfitbW7gWX0xIAL5JK9YKcJIx5ahlP47CXq6nxTYgVCfdcwIDAQAB\n-----END PUBLIC K
EY-----\n'}}
DEBUG:kasa.transports.aestransport:Device responded with: {'error_code': 1003}
DEBUG:kasa.protocols.smartprotocol:Unable to authenticate with 192.168.3.80, not retrying: Unable to complete handshake:
 192.168.3.80: TRANSPORT_UNKNOWN_CREDENTIALS_ERROR(1003) (error_code=TRANSPORT_UNKNOWN_CREDENTIALS_ERROR)
== Authentication failed for device ==
        == Discovery Result ==
        Device Type:        SMART.TAPOPLUG
        Device Model:       TP15(US)
        IP:                 192.168.3.80
        MAC:                7C-F1-7E-3C-B8-8E
        Device Id (hash):   xxxxxxxxx
        Owner (hash):       xxxxxxxxx
        Supports IOT Cloud: True
        OBD Src:            matter
        Encrypt Type:       AES
        HTTP Port:          80
        Login version:      2

My guess is that the device doesn't like the public key for some reason. Edit: that doesn't really make sense. I tried 2048-bit keys just for the sake of trying, but that had no impact. I have no idea what's wrong.

I can move these devices to Matter, but I think restoring functionality for these devices through python-kasa is still important. I'll see if I can get a packet capture of working authentication to the devices from the app.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions