Expand description
Tapo API Client.
Tested with light bulbs (L510, L520, L530, L610, L630), light strips (L900, L920, L930), plugs (P100, P105, P110, P115, P300), hubs (H100), switches (S200B) and sensors (KE100, T100, T110, T300, T310, T315).
§Example with L530
use std::{env, thread, time::Duration};
use tapo::{requests::Color, ApiClient};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let tapo_username = env::var("TAPO_USERNAME")?;
let tapo_password = env::var("TAPO_PASSWORD")?;
let ip_address = env::var("IP_ADDRESS")?;
let device = ApiClient::new(tapo_username, tapo_password)
.l530(ip_address)
.await?;
println!("Turning device on...");
device.on().await?;
println!("Setting the brightness to 30%...");
device.set_brightness(30).await?;
println!("Setting the color to `Chocolate`...");
device.set_color(Color::Chocolate).await?;
println!("Waiting 2 seconds...");
thread::sleep(Duration::from_secs(2));
println!("Setting the color to `Deep Sky Blue` using the `hue` and `saturation`...");
device.set_hue_saturation(195, 100).await?;
println!("Waiting 2 seconds...");
thread::sleep(Duration::from_secs(2));
println!("Setting the color to `Incandescent` using the `color temperature`...");
device.set_color_temperature(2700).await?;
println!("Waiting 2 seconds...");
thread::sleep(Duration::from_secs(2));
println!("Using the `set` API to change multiple properties in a single request...");
device
.set()
.brightness(50)
.color(Color::HotPink)
.send(&device)
.await?;
println!("Waiting 2 seconds...");
thread::sleep(Duration::from_secs(2));
println!("Turning device off...");
device.off().await?;
let device_info = device.get_device_info().await?;
println!("Device info: {device_info:?}");
let device_usage = device.get_device_usage().await?;
println!("Device usage: {device_usage:?}");
Ok(())
}
See more examples.
Modules§
- Tapo request objects.
- Tapo response objects.
Structs§
- Tapo API Client. See examples.
- Handler for generic devices. It provides the functionality common to all Tapo devices.
- Handler for the H100 hubs.
- Handler for the KE100 devices.
- Handler for the P300 child plugs.
- Handler for the P300 devices.
- Handler for the L900 devices.
- Handler for the S200B devices.
- Handler for the T100 devices.
- Handler for the T110 devices.
- Handler for the T300 devices.
Enums§
- Tapo API Client Error.
- Plug Identifier.
- Response Error from the Tapo API.
Traits§
- Implemented by all ApiClient implementations.
- Implemented by all device handlers.