Skip to main content

tapo/api/child_devices/
s210_handler.rs

1use crate::error::{Error, TapoResponseError};
2use crate::requests::{EmptyParams, TapoParams, TapoRequest};
3use crate::responses::{DeviceUsageResult, S210Result};
4
5tapo_child_handler! {
6    /// Handler for the [S210](https://www.tapo.com/en/search/?q=S210) devices.
7    S210Handler(S210Result),
8    on_off,
9}
10
11impl S210Handler {
12    /// Returns *device usage* as [`DeviceUsageResult`].
13    pub async fn get_device_usage(&self) -> Result<DeviceUsageResult, Error> {
14        let request = TapoRequest::GetDeviceUsage(TapoParams::new(EmptyParams));
15
16        self.client
17            .read()
18            .await
19            .control_child(self.device_id.clone(), request)
20            .await?
21            .ok_or_else(|| Error::Tapo(TapoResponseError::EmptyResult))
22    }
23}