1 个不稳定版本
0.1.0 | 2021年2月28日 |
---|
#1239 在 硬件支持
13KB
246 行
vesync-rs
这个包允许您访问和控制您的 VeSync 智能插座,例如,Etekcity 智能插头。您必须有一个 VeSync 账户(这需要您安装他们的 iOS 或 Android 应用程序)才能使用此包。
[depenencies]
vesync = "0.1"
use vesync_rs::{VeSyncAccount, VeSyncdevice, DeviceStatus};
const VESYNC_ACCOUNT: &str = "[email protected]";
const VESYNC_KEY: &str = "my-secret-password";
fn main() -> Result<(), ()> {
let account = VeSyncAccount::login(VESYNC_ACCOUNT, VESYNC_KEY)?;
let devices = account.devices()?;
let outside_light = devices
.iter()
.find(|device| device.cid == "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee")
.unwrap();
// Toggle the state of the device
outside_light.device_toggle()?;
match outside_light.deviceStatus {
DeviceStatus::On => println!("Outside light is on"),
DeviceStatus::Off => println!("Outside light is off"),
DeviceStatus::Unknown => println!("🤷♂️"), // toggle will update state, so this *should* be unreachable
};
Ok(())
}
待办事项
- 切换到
nanoserde
- 改进初始
vesync-rs
API - 加强 VeSync API 类型(尽可能使用枚举而不是字符串)
- 调查亮度(调暗)API
变更日志
- 切换到
attohttpc
。这减少了构建的包数量从 106 个到 62 个,构建时间从大约 1 分 30 秒到 55 秒。 - 更新 API 以(希望)更符合习惯。
- 添加了使用
accountID
和tk
直接创建VeSyncAccount
的能力(即,无需登录)。这允许您将 这些 值添加到源代码中,而不是使用原始凭证
let account = VeSyncAccount { accountID: "1234".to_string(), tk: "ABCXYZ==".to_string() };
- 添加了从账户和
cid
创建VeSyncDevice
的能力
let mut inside_light = VeSyncDevice::from_id(&account, "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee");
inside_light.update();
依赖关系
~2.3–3.5MB
~94K SLoC