This commit is contained in:
Alex Janka 2024-02-23 18:08:32 +11:00
parent 1711b3d6ea
commit 2104a2f0b0

View file

@ -1,7 +1,7 @@
#[macro_use] #[macro_use]
extern crate rocket; extern crate rocket;
use std::{collections::HashMap, path::PathBuf}; use std::{collections::HashMap, path::PathBuf, time::Duration};
use clap::Parser; use clap::Parser;
use homekit_controller::{ConnectedDevice, HomekitError, ServiceType}; use homekit_controller::{ConnectedDevice, HomekitError, ServiceType};
@ -45,7 +45,18 @@ async fn init(pairing_data: PathBuf) -> Result<HashMap<String, ConnectedDevice>,
let devices = homekit_controller::load(pairing_data)?; let devices = homekit_controller::load(pairing_data)?;
let mut connected_devices = HashMap::new(); let mut connected_devices = HashMap::new();
for (k, v) in devices { for (k, v) in devices {
connected_devices.insert(k, v.connect().await?); let mut num = 0;
let connected = loop {
if let Ok(v) = v.connect().await {
break Some(v);
}
num += 1;
if num > 10 {
break None;
}
tokio::time::sleep(Duration::from_millis(100)).await;
};
connected_devices.insert(k, connected.ok_or(HomekitError::DeviceNotFound)?);
} }
Ok(connected_devices) Ok(connected_devices)
} else { } else {