Tapo

Crates Documentation CI license Crates.io\ Unofficial Tapo API Client. Works with TP-Link Tapo smart devices. Tested with light bulbs (L510, L530, L610, L630), light strips (L900, L920, L930), plugs (P100, P105, P110, P115), hubs (H100), switches (S200B) and sensors (T100, T110, T310, T315).

Device support

| Feature | GenericDevice | L510, L610 | L530, L630, L900 | L920, L930 | P100, P105 | P110, P115 | | --------------------- | ------------: | ---------: | ---------------: | ---------: | ---------: | ---------: | | on | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | off | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | getdeviceinfo | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | getdeviceusage | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | getenergyusage | | | | | | ✓ | | getenergydata | | | | | | ✓ | | getcurrentpower | | | | | | ✓ | | setbrightness | | ✓ | ✓ | ✓ | | | | setcolor | | | ✓ | ✓ | | | | sethuesaturation | | | ✓ | ✓ | | | | setcolortemperature | | | ✓ | ✓ | | | | setlightingeffect | | | | ✓ | | | | set() API * | | | ✓ | ✓ | | |

* The set() API allows multiple properties to be set in a single request.

Hub (H100) Support

| Feature | S200B | T100 | T110 | T310, T315 | | -------------------------------- | ------: | ------: | ------: | ---------: | | getdeviceinfo * | ✓ | ✓ | ✓ | ✓ | | gettemperaturehumidityrecords | | | | ✓ | | gettrigger_logs | ✓ | ✓ | ✓ | |

* Obtained by calling get_child_device_list on the hub device or get_device_info on a child handler.

Examples

```bash export TAPOUSERNAME= export TAPOPASSWORD= export IP_ADDRESS=

cargo run --example tapo_l530 ```

See all examples in /examples.

Wrapper API

tapo-rest is a REST wrapper of this library that can be deployed as a service or serve as an advanced example.

Contributing

Contributions are welcome and encouraged! See /CONTRIBUTING.md.

Troubleshooting

1. Installing openssl on Windows

With chocolatey

powershell choco install openssl

or with vcpkg

powershell git clone git@github.com:microsoft/vcpkg.git cd vcpkg ./bootstrap-vcpkg.bat ./vcpkg.exe install openssl-windows:x64-windows ./vcpkg.exe install openssl:x64-windows-static ./vcpkg.exe integrate install

Credits

Inspired by petretiandrea/plugp100.