use crate::tapo_vendor::error::{Error, TapoResponseError};
use crate::tapo_vendor::requests::{EmptyParams, TapoParams, TapoRequest};
use crate::tapo_vendor::responses::{
T31XResult, TemperatureHumidityRecords, TemperatureHumidityRecordsRaw,
};
tapo_child_handler! {
T31XHandler(T31XResult),
}
impl T31XHandler {
pub async fn get_temperature_humidity_records(
&self,
) -> Result<TemperatureHumidityRecords, Error> {
let request =
TapoRequest::GetTemperatureHumidityRecords(Box::new(TapoParams::new(EmptyParams)));
let result = self
.client
.read()
.await
.control_child::<TemperatureHumidityRecordsRaw>(self.device_id.clone(), request)
.await?
.ok_or_else(|| Error::Tapo(TapoResponseError::EmptyResult))?;
Ok(result.try_into()?)
}
}