8 个版本
0.1.30 | 2023年5月10日 |
---|---|
0.1.29 | 2022年10月24日 |
0.1.28 | 2022年6月25日 |
0.1.22 | 2022年2月3日 |
#444 in 网页编程
68 每月下载量
用于 lifx-api-server
230KB
3K SLoC
lifx-rs
描述
一个同步 + 异步库,用于与官方 LIFX-API 和非官方离线 API 进行通信。
LIFX-API 支持的方法
- 列出灯光
- 设置状态
- 设置多个状态
- 状态差异
- 切换电源
- 呼吸效果
- 移动效果
- 变形效果
- 火焰效果
- 脉冲效果
- 关闭效果
- 清洁(HEV)
- 列出场景
- 验证颜色
非官方离线 API 支持的方法
- 列出灯光
- 设置状态
- 设置多个状态
要使用离线功能,请使用非官方 API 服务器
如何使用库
将以下行添加到您的 cargo.toml 文件中
lifx-rs = "0.1.30"
示例
extern crate lifx_rs as lifx;
fn main() {
let key = "xxx".to_string();
let mut api_endpoints: Vec<String> = Vec::new();
// Official API
api_endpoints.push(format!("https://api.lifx.com"));
// lifx-server-api (Un-Official)
api_endpoints.push(format!("https://127.0.0.1:8089"));
let config = lifx::LifxConfig{
access_token: key.clone(),
api_endpoints: api_endpoints
};
// Build an "OffState" to set
let mut off_state = lifx::State::new();
off_state.power = Some(format!("off"));
// Turn off all lights
lifx::Light::set_state_by_selector(config.clone(), format!("all"), off_state);
let all_lights = lifx::Light::list_all(config.clone());
match all_lights {
Ok(lights) => {
println!("{:?}",lights.clone());
let mut state = lifx::State::new();
state.power = Some(format!("on"));
state.brightness = Some(1.0);
for light in lights {
let results = light.set_state(config.clone(), state.clone());
println!("{:?}",results);
}
},
Err(e) => println!("{}",e)
}
}
异步示例
extern crate lifx_rs as lifx;
#[tokio::main]
async fn main() {
let key = "xxx".to_string();
let mut api_endpoints: Vec<String> = Vec::new();
// Official API
api_endpoints.push(format!("https://api.lifx.com"));
// lifx-server-api (Un-Official)
api_endpoints.push(format!("https://127.0.0.1:8089"));
let config = lifx::LifxConfig{
access_token: key.clone(),
api_endpoints: api_endpoints
};
// Build "OffState" to set
let mut off_state = lifx::State::new();
off_state.power = Some(format!("off"));
// Turn off all lights
lifx::Light::async_set_state_by_selector(config.clone(), format!("all"), off_state).await;
}
许可证
Apache 2.0 或 MIT 许可协议下发布。
通过以下方式支持并关注我的工作:
购买我的 NFT
查看我的 GitHub
关注我的 Facebook 页面
订阅我的 Patreon
或者捐赠加密货币
- ADA: addr1qyp299a45tgvveh83tcxlf7ds3yaeh969yt3v882lvxfkkv4e0f46qvr4wzj8ty5c05jyffzq8a9pfwz9dl6m0raac7s4rac48
- ALGO: VQ5EK4GA3IUTGSPNGV64UANBUVFAIVBXVL5UUCNZSDH544XIMF7BAHEDM4
- ATOM: cosmos1wm7lummcealk0fxn3x9tm8hg7xsyuz06ul5fw9
- BTC: bc1qh5p3rff4vxnv23vg0hw8pf3gmz3qgc029cekxz
- ETH: 0x7A66beaebF7D0d17598d37525e63f524CfD23452
- ERC20: 0x7A66beaebF7D0d17598d37525e63f524CfD23452
- XLM: GCJAUMCO2L7PTYMXELQ6GHBTF25MCQKEBNSND2C4QMUPTSVCPEN3LCOG
- XTZ: tz1SgJppPn56whprsDDGcqR4fxqCr2PXvg1R
依赖项
~9–23MB
~360K SLoC