Files
tischlerCtrl/agents/tapo/tapo-fork/tapo/Cargo.toml
seb 028763bdb2 feat(tapo-agent): add schedule/countdown timer API support
- 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.
2025-12-23 00:46:42 +01:00

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"] }