Technology

Tapo v0.11.1 Brings TPAP Support Into ApiClient for Rust and Python

Martin HollowayPublished 18m ago3 min readBased on 2 sources
Reading level
Tapo v0.11.1 Brings TPAP Support Into ApiClient for Rust and Python
Image by Pexels from Pixabay

Version v0.11.1 of the Tapo library adds TPAP support to ApiClient for Rust and Python. GitHub Releases

The cover includes lights, plugs, power strips, hubs and cameras on recent firmware. Those devices require TPAP when the Third-Party Compatibility option is switched off in the Tapo app. GitHub Releases On current firmware, that toggle selects the required protocol.

The same release updates ApiClient::discover_devices, the function that scans the local network for devices. It now returns devices that speak TPAP like any other device, instead of reporting an UnsupportedProtocol error. Discovery is uniform, and callers get a usable device object through the standard path.

On the Python side, distribution is through PyPI. The PyPI tapo page shows a release dated October 2, 2026. It lists version 0.10.0 as released on September 28, 2026.

The broader context here is what unified support removes from daily work. When a new protocol is exposed only through a lower-level or separate client, every caller carries the branching logic. Connection setup, retry, discovery filtering and type handling all fork. Moving TPAP behind ApiClient collapses that fork for common operations. For teams that maintain automations across mixed device fleets, that means fewer code paths to test and document.

Looking at deployment, the link between firmware and the app toggle needs explicit testing. Recent firmware makes TPAP mandatory when Third-Party Compatibility is off, while discovery in v0.11.1 treats TPAP speakers as normal results. In practice, test two states. One is compatibility off, where TPAP is required and discovery should now work. The other is compatibility on, where older protocol behavior may still be present. Logging the discovered protocol with device model and firmware during rollout will make mismatches easier to isolate.

In my view, this is a useful maintenance release. It adds no new device category or interaction model. It keeps existing local control workflows working as firmware defaults shift. Anyone who has maintained smart home integrations over several years will recognize the pattern. Protocols evolve, defaults tighten, and client libraries absorb the difference so application logic can stay stable. For Rust and Python users of ApiClient, v0.11.1 restores that stability for TPAP-only setups without a separate discovery workaround.