This commit is contained in:
2022-10-24 22:20:55 +02:00
parent 91ca707245
commit 2370faa718
3 changed files with 62 additions and 28 deletions

View File

@ -101,11 +101,17 @@ pub async fn lights_task(state: &State) {
ClientMessage::SetBulbWakeTime { id, day, time } => {
if let Err(e) = lights_state.update(|lights_state| {
let schedule = lights_state.wake_schedule.entry(id.clone()).or_default();
schedule.insert(day, time);
if let Some(time) = time {
schedule.insert(day, time);
}
else {
schedule.remove(&day);
}
}).await {
error!("Failed to save wake schedule: {e}");
};
if let Some(time) = time {
let handle = spawn(wake_task(
state.client_message.subscribe(),
cmd.clone(),
@ -113,8 +119,13 @@ pub async fn lights_task(state: &State) {
day,
time,
));
if let Some(old_handle) = wake_tasks.insert((id, day), handle) {
old_handle.abort();
}} else {
if let Some(old_handle) = wake_tasks.remove(&(id, day)) {
old_handle.abort();
}
}
}
_ => {}