Tweak light waker behaviour

This commit is contained in:
2024-03-27 08:58:25 +01:00
parent 35f3aa76f6
commit 2af82804c0

View File

@ -27,6 +27,8 @@ impl Waker {
}
const TIME_FMT: &str = "%H:%M";
const WAKE_TARGET_BRIGHTNESS: u8 = 75;
const WAKE_TARGET_TEMPERATURE: u8 = 60;
impl LightScript for Waker {
fn get_params(&mut self, bulb: &BulbId) -> BulbPrefs {
@ -116,9 +118,8 @@ async fn wake_task(manager: BulbManager, id: BulbId, day: Weekday, time: NaiveTi
let r = manager
.until_interrupted(id.clone(), async {
// slowly turn up brightness of bulb
for brightness in (1..=75).map(|i| (i as f32) * 0.01) {
//sleep(Duration::from_secs(12)).await;
sleep(Duration::from_millis(500)).await;
for brightness in (1..=WAKE_TARGET_BRIGHTNESS).map(|i| (i as f32) * 0.01) {
sleep(Duration::from_secs(12)).await;
manager
.send_command(BulbCommand::SetColor(
@ -130,6 +131,21 @@ async fn wake_task(manager: BulbManager, id: BulbId, day: Weekday, time: NaiveTi
))
.await
}
// slowly turn up temperature of bulb
for temperature in (1..=WAKE_TARGET_TEMPERATURE).map(|i| (i as f32) * 0.01) {
sleep(Duration::from_secs(12)).await;
manager
.send_command(BulbCommand::SetColor(
BulbSelector::Id(id.clone()),
BulbColor::Kelvin {
t: temperature,
b: WAKE_TARGET_BRIGHTNESS as f32 * 0.01,
},
))
.await
}
})
.await;