use crate::tapo_vendor::error::{Error, TapoResponseError};
use crate::tapo_vendor::requests::{EmptyParams, TapoParams, TapoRequest};
use crate::tapo_vendor::responses::{DeviceUsageResult, S210Result};
tapo_child_handler! {
S210Handler(S210Result),
on_off,
}
impl S210Handler {
pub async fn get_device_usage(&self) -> Result<DeviceUsageResult, Error> {
let request = TapoRequest::GetDeviceUsage(TapoParams::new(EmptyParams));
self.client
.read()
.await
.control_child(self.device_id.clone(), request)
.await?
.ok_or_else(|| Error::Tapo(TapoResponseError::EmptyResult))
}
}