diff --git a/dashboard/src/home_assistant.rs b/dashboard/src/home_assistant.rs index 6b8ad67..4d7c9a6 100644 --- a/dashboard/src/home_assistant.rs +++ b/dashboard/src/home_assistant.rs @@ -123,8 +123,14 @@ pub async fn hass( let s2c_tx = s2c_tx.clone(); async move { loop { - let ha_client = HaClient::from_environment().unwrap(); - let events = ha_client.fetch_calendar_events().unwrap(); + let Ok(ha_client) = HaClient::from_environment() else { + sleep(Duration::from_secs(30)).await; + continue; + }; + let Ok(events) = ha_client.fetch_calendar_events() else { + sleep(Duration::from_secs(30)).await; + continue; + }; s2c_tx.send(EventMessage::CalendarUpdated(events)).ok(); sleep(Duration::from_secs(30)).await; } diff --git a/dashboard/src/ui.rs b/dashboard/src/ui.rs index 8639534..a5de969 100644 --- a/dashboard/src/ui.rs +++ b/dashboard/src/ui.rs @@ -26,15 +26,15 @@ macro_rules! apply_model { let data = $app .[](); - let model = data + if let Some(model) = data .as_any() - .downcast_ref::>() - .unwrap(); + .downcast_ref::>() { - for entity in $entities.iter().filter($filter) { - match model.iter().position(|item| item.id == entity.entity_id) { - Some(index) => model.set_row_data(index, entity.into()), - None => model.push(entity.into()), + for entity in $entities.iter().filter($filter) { + match model.iter().position(|item| item.id == entity.entity_id) { + Some(index) => model.set_row_data(index, entity.into()), + None => model.push(entity.into()), + } } } } diff --git a/trekstor/src/lib.rs b/trekstor/src/lib.rs index 03b513e..19eec3c 100644 --- a/trekstor/src/lib.rs +++ b/trekstor/src/lib.rs @@ -99,7 +99,7 @@ impl Platform for Trekstor { position: LogicalPosition::new(input.x as f32, input.y as f32), button: slint::platform::PointerEventButton::Left, }) - .unwrap(); + .ok(); } if input.is_just_released(KeyCode::BTN_TOUCH) { @@ -108,7 +108,7 @@ impl Platform for Trekstor { position: LogicalPosition::new(input.x as f32, input.y as f32), button: slint::platform::PointerEventButton::Left, }) - .unwrap(); + .ok(); } if input.is_down(KeyCode::BTN_TOUCH) { @@ -116,7 +116,7 @@ impl Platform for Trekstor { .try_dispatch_event(WindowEvent::PointerMoved { position: LogicalPosition::new(input.x as f32, input.y as f32), }) - .unwrap(); + .ok(); } if self.quit_flag.load(Ordering::SeqCst) {