#light #iot #lan #yeelight #ssdp

bin+lib yeelib_rs

轻松查找并与 Yeelight 物联网智能灯进行接口交互

2 个版本

0.1.1 2021 年 3 月 11 日
0.1.0 2021 年 1 月 21 日

#4 in #ssdp

MIT/Apache

47KB
1K SLoC

yeelib_rs

Crates.io badge License

yeelib_rs 是一个 Rust 库,用于轻松与 Yeelight 产品进行接口交互,包括通过组播和 SSDP 进行 LAN 灯泡发现,旨在实现 Yeelight 第三方控制协议的所有主要部分。

入门

除非另有说明,调整灯光参数的方法与方法名和行为完全与上述规范中指定的一致。

use std::time::Duration;
use std::thread::sleep;

use yeelib_rs::{YeeClient, Light, YeeError};
use yeelib_rs::fields::{PowerStatus, Transition};

fn main() -> Result<(), YeeError> {
    let client = YeeClient::new()?;
    let mut lights: Vec<Light> = client.find_lights(Duration::from_secs(1));

    for light in lights.iter_mut() {
        light.set_power(PowerStatus::On, Transition::sudden())?;
        sleep(Duration::from_secs(1));

        light.set_bright(50, Transition::sudden())?;
        sleep(Duration::from_secs(1));

        light.set_ct_abx(3500,
                         Transition::smooth(Duration::from_millis(400))
                             .unwrap())?;
        sleep(Duration::from_secs(2));

        light.toggle()?;
    }
}

请参阅 main.rs 以获取更多示例。

目前支持的方法

set_ct_abx
set_rgb
set_hsv
set_bright
set_power
toggle
adjust_bright
adjust_ct

待办事项

  • 记录每个组件
  • 扁平化公共导出
  • 完成 API 实现
  • 提高测试覆盖率
  • 处理 API 错误

许可

根据您的选择,许可协议为以下之一

贡献

除非您明确声明,否则根据 Apache-2.0 许可证定义,您有意提交给作品的所有贡献,将按上述方式双重许可,不附加任何额外条款或条件。

依赖项

~3–4.5MB
~88K SLoC