A Rust library for easy interfacing with Yeelight products, including LAN light discovery with multicast and SSDP, with intended implementation of all major parts of the Yeelight Third-party Control Protocol.
Unless otherwise specified, methods to adjust the light's parameters have the method name and behavior exactly as specified in the above spec.
```rust use std::time::Duration; use std::thread::sleep;
use yeelibrs::{YeeClient, Light, YeeError}; use yeelibrs::fields::{PowerStatus, Transition};
fn main() -> Result<(), YeeError> {
let client = YeeClient::new()?;
let mut lights: Vec
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()?;
}
}
```
See main.rs for some more examples.
set_ct_abx
set_rgb
set_hsv
set_bright
set_power
toggle
adjust_bright
adjust_ct
Licensed under either of
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.