diff --git a/src/main.rs b/src/main.rs index 00b0f11..482e486 100644 --- a/src/main.rs +++ b/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; }