slight refactoring of hacky hue routine
This commit is contained in:
39
src/main.rs
39
src/main.rs
@@ -126,20 +126,35 @@ fn play_chime() {
|
||||
};
|
||||
}
|
||||
|
||||
fn hue_base(reqwest: &reqwest::Client) -> reqwest::RequestBuilder {
|
||||
reqwest.put(&format!("http://{}/api/{}/lights/10/state", HUE_ADDRESS, HUE_KEY))
|
||||
async fn hue_base(reqwest: &reqwest::Client, body: &'static str, delay_millis: u64) {
|
||||
let _ = reqwest.put(&format!("http://{}/api/{}/lights/10/state", HUE_ADDRESS, HUE_KEY))
|
||||
.body(body).send().await;
|
||||
delay_for(Duration::from_millis(delay_millis)).await;
|
||||
}
|
||||
|
||||
async fn flash_patio(reqwest: &reqwest::Client) {
|
||||
for _ in 0..5 {
|
||||
let _ = hue_base(reqwest).body(r#"{"transitiontime":0,"sat":254, "bri":254,"hue":2125}"#) // orange
|
||||
.send().await;
|
||||
delay_for(Duration::from_millis(250)).await;
|
||||
let _ = hue_base(reqwest).body(r#"{"transitiontime":0,"hue":25500}"#) // green
|
||||
.send().await;
|
||||
delay_for(Duration::from_millis(250)).await;
|
||||
let _ = hue_base(reqwest).body(r#"{"transitiontime":0,"hue":56228}"#) // purple
|
||||
.send().await;
|
||||
delay_for(Duration::from_millis(250)).await;
|
||||
hue_base(reqwest,
|
||||
r#"{"transitiontime":0,"bri":254,"sat":254}"#, // resaturate
|
||||
250).await;
|
||||
for _ in 0..2 {
|
||||
hue_base(reqwest,
|
||||
r#"{"transitiontime":0,"hue":2125}"#, // orange
|
||||
250).await;
|
||||
hue_base(reqwest,
|
||||
r#"{"transitiontime":0,"hue":25500}"#, // green
|
||||
250).await;
|
||||
hue_base(reqwest,
|
||||
r#"{"transitiontime":0,"hue":56228}"#, // purple
|
||||
250).await;
|
||||
}
|
||||
delay_for(Duration::from_millis(250)).await;
|
||||
hue_base(reqwest,
|
||||
r#"{"transitiontime":20,"bri":20}"#, // fade
|
||||
2_250).await;
|
||||
hue_base(reqwest,
|
||||
r#"{"transitiontime":1,"bri":20,"sat":0}"#, // desaturate
|
||||
250).await;
|
||||
hue_base(reqwest,
|
||||
r#"{"transitiontime":40,"bri":180,"sat":0}"#, // fade up
|
||||
4_000).await;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user