- Fork tapo crate to add missing schedule/timer APIs - Add get_countdown_rules, get_schedule_rules, get_next_event methods - New readings: countdown_active, countdown_remain, schedule_count, schedule_active_count, next_event_time - Add local compilation to build script alongside cross-compilation - Implement offline polling - device collection continues when server disconnects - Add more device readings: on_time, signal_level, rssi, runtime_today/month, energy_month Vendored tapo fork in tapo-fork/ with minimal changes to add schedule APIs.
52 lines
1.7 KiB
TOML
52 lines
1.7 KiB
TOML
[package]
|
|
name = "tapo"
|
|
version = "0.8.8"
|
|
edition = "2024"
|
|
rust-version = "1.88"
|
|
license = "MIT"
|
|
authors = ["Mihai Dinculescu <mihai.dinculescu@outlook.com>"]
|
|
description = "Unofficial Tapo API Client. Works with TP-Link Tapo smart devices. Tested with light bulbs (L510, L520, L530, L535, L610, L630), light strips (L900, L920, L930), plugs (P100, P105, P110, P110M, P115), power strips (P300, P304M, P306, P316M), hubs (H100), switches (S200B) and sensors (KE100, T100, T110, T300, T310, T315)."
|
|
keywords = ["IOT", "tapo", "smart-home", "smart-bulb", "smart-plug"]
|
|
categories = ["hardware-support", "embedded", "development-tools"]
|
|
readme = "README.md"
|
|
repository = "https://github.com/mihai-dinculescu/tapo"
|
|
|
|
[features]
|
|
default = []
|
|
python = ["dep:pyo3"]
|
|
|
|
[dependencies]
|
|
anyhow = { workspace = true }
|
|
async-trait = "0.1"
|
|
chrono = { workspace = true, features = ["clock", "serde"] }
|
|
crc32fast = "1.5"
|
|
itertools = "0.14"
|
|
lazy_static = "1.5"
|
|
log = { workspace = true }
|
|
reqwest = { version = "0.12", default-features = false, features = ["cookies", "json"] }
|
|
serde = { workspace = true, features = ["derive", "serde_derive"] }
|
|
serde_json = { workspace = true }
|
|
serde_with = "3.16"
|
|
thiserror = "2.0"
|
|
tokio = { workspace = true, features = ["sync"] }
|
|
tokio-stream = "0.1"
|
|
uuid = { version = "1.18", features = ["serde", "v4"] }
|
|
|
|
# security
|
|
aes = "0.8"
|
|
base16ct = { version = "0.3", features = ["alloc"] }
|
|
base64 = "0.22"
|
|
cbc = { version = "0.1", features = ["alloc"] }
|
|
rsa = { version = "0.9", features = ["getrandom"] }
|
|
sha1 = "0.10"
|
|
sha2 = "0.10"
|
|
|
|
# FFI
|
|
pyo3 = { workspace = true, features = ["serde", "chrono"], optional = true }
|
|
|
|
[dev-dependencies]
|
|
once_cell = "1.21"
|
|
pretty_env_logger = "0.5"
|
|
rand = "0.8"
|
|
tokio = { workspace = true, features = ["rt-multi-thread", "macros"] }
|