pub struct HubHandler { /* private fields */ }Expand description
Handler for the H100 devices.
Implementations§
Source§impl HubHandler
impl HubHandler
Sourcepub async fn refresh_session(&mut self) -> Result<&mut Self, Error>
pub async fn refresh_session(&mut self) -> Result<&mut Self, Error>
Refreshes the authentication session.
Sourcepub async fn get_device_info(&self) -> Result<DeviceInfoHubResult, Error>
pub async fn get_device_info(&self) -> Result<DeviceInfoHubResult, Error>
Returns device info as DeviceInfoHubResult.
It is not guaranteed to contain all the properties returned from the Tapo API.
If the deserialization fails, or if a property that you care about it’s not present, try [HubHandler::get_device_info_json].
Source§impl HubHandler
impl HubHandler
Sourcepub async fn device_reboot(&self, delay_s: u16) -> Result<(), Error>
pub async fn device_reboot(&self, delay_s: u16) -> Result<(), Error>
Reboots the device.
Notes:
- Using a very small delay (e.g. 0 seconds) may cause a
ConnectionResetorTimedOuterror as the device reboots immediately. - Using a larger delay (e.g. 2-3 seconds) allows the device to respond before rebooting, reducing the chance of errors.
- With larger delays, the method completes successfully before the device reboots. However, subsequent commands may fail if sent during the reboot process or before the device reconnects to the network.
§Arguments
delay_s- The delay in seconds before the device is rebooted.
Sourcepub async fn device_reset(&self) -> Result<(), Error>
pub async fn device_reset(&self) -> Result<(), Error>
Hardware resets the device.
Warning: This action will reset the device to its factory settings. The connection to the Wi-Fi network and the Tapo app will be lost, and the device will need to be reconfigured.
This feature is especially useful when the device is difficult to access and requires reconfiguration.
Source§impl HubHandler
Hub handler methods.
impl HubHandler
Hub handler methods.
Sourcepub async fn get_child_device_list(
&self,
) -> Result<Vec<ChildDeviceHubResult>, Error>
pub async fn get_child_device_list( &self, ) -> Result<Vec<ChildDeviceHubResult>, Error>
Returns child device list as ChildDeviceHubResult.
It is not guaranteed to contain all the properties returned from the Tapo API
or to support all the possible devices connected to the hub.
If the deserialization fails, or if a property that you care about it’s not present, try [HubHandler::get_child_device_list_json].
Sourcepub async fn play_alarm(
&self,
ringtone: AlarmRingtone,
volume: AlarmVolume,
duration: AlarmDuration,
) -> Result<(), Error>
pub async fn play_alarm( &self, ringtone: AlarmRingtone, volume: AlarmVolume, duration: AlarmDuration, ) -> Result<(), Error>
Start playing the hub alarm.
Sourcepub async fn stop_alarm(&self) -> Result<(), Error>
pub async fn stop_alarm(&self) -> Result<(), Error>
Stop playing the hub alarm, if it’s currently playing.
Source§impl HubHandler
Child device handler builders.
impl HubHandler
Child device handler builders.
Sourcepub async fn ke100(&self, identifier: HubDevice) -> Result<KE100Handler, Error>
pub async fn ke100(&self, identifier: HubDevice) -> Result<KE100Handler, Error>
Returns a KE100Handler for the given HubDevice.
§Arguments
identifier- a hub device identifier
§Example
// Connect to the hub
let hub = ApiClient::new("tapo-username@example.com", "tapo-password")
.h100("192.168.1.100")
.await?;
// Get a handler for the child device
let device_id = "0000000000000000000000000000000000000000".to_string();
let device = hub.ke100(HubDevice::ByDeviceId(device_id)).await?;
// Get the device info of the child device
let device_info = device.get_device_info().await?;Sourcepub async fn s200(&self, identifier: HubDevice) -> Result<S200Handler, Error>
pub async fn s200(&self, identifier: HubDevice) -> Result<S200Handler, Error>
Returns a S200Handler for the given HubDevice.
§Arguments
identifier- a hub device identifier
§Example
// Connect to the hub
let hub = ApiClient::new("tapo-username@example.com", "tapo-password")
.h100("192.168.1.100")
.await?;
// Get a handler for the child device
let device_id = "0000000000000000000000000000000000000000".to_string();
let device = hub.s200(HubDevice::ByDeviceId(device_id)).await?;
// Get the device info of the child device
let device_info = device.get_device_info().await?;Sourcepub async fn t100(&self, identifier: HubDevice) -> Result<T100Handler, Error>
pub async fn t100(&self, identifier: HubDevice) -> Result<T100Handler, Error>
Returns a T100Handler for the given HubDevice.
§Arguments
identifier- a hub device identifier
§Example
// Connect to the hub
let hub = ApiClient::new("tapo-username@example.com", "tapo-password")
.h100("192.168.1.100")
.await?;
// Get a handler for the child device
let device_id = "0000000000000000000000000000000000000000".to_string();
let device = hub.t100(HubDevice::ByDeviceId(device_id)).await?;
// Get the device info of the child device
let device_info = device.get_device_info().await?;Sourcepub async fn t110(&self, identifier: HubDevice) -> Result<T110Handler, Error>
pub async fn t110(&self, identifier: HubDevice) -> Result<T110Handler, Error>
Returns a T110Handler for the given HubDevice.
§Arguments
identifier- a hub device identifier
§Example
// Connect to the hub
let hub = ApiClient::new("tapo-username@example.com", "tapo-password")
.h100("192.168.1.100")
.await?;
// Get a handler for the child device
let device_id = "0000000000000000000000000000000000000000".to_string();
let device = hub.t110(HubDevice::ByDeviceId(device_id)).await?;
// Get the device info of the child device
let device_info = device.get_device_info().await?;Sourcepub async fn t300(&self, identifier: HubDevice) -> Result<T300Handler, Error>
pub async fn t300(&self, identifier: HubDevice) -> Result<T300Handler, Error>
Returns a T300Handler for the given HubDevice.
§Arguments
identifier- a hub device identifier
§Example
// Connect to the hub
let hub = ApiClient::new("tapo-username@example.com", "tapo-password")
.h100("192.168.1.100")
.await?;
// Get a handler for the child device
let device_id = "0000000000000000000000000000000000000000".to_string();
let device = hub.t300(HubDevice::ByDeviceId(device_id)).await?;
// Get the device info of the child device
let device_info = device.get_device_info().await?;Sourcepub async fn t31x(&self, identifier: HubDevice) -> Result<T31XHandler, Error>
pub async fn t31x(&self, identifier: HubDevice) -> Result<T31XHandler, Error>
Returns a T31XHandler for the given HubDevice.
§Arguments
identifier- a hub device identifier
§Example
// Connect to the hub
let hub = ApiClient::new("tapo-username@example.com", "tapo-password")
.h100("192.168.1.100")
.await?;
// Get a handler for the child device
let device_id = "0000000000000000000000000000000000000000".to_string();
let device = hub.t31x(HubDevice::ByDeviceId(device_id)).await?;
// Get the device info of the child device
let device_info = device.get_device_info().await?;Trait Implementations§
Source§impl Debug for HubHandler
impl Debug for HubHandler
Source§impl From<GenericDeviceHandler> for HubHandler
impl From<GenericDeviceHandler> for HubHandler
Source§fn from(value: GenericDeviceHandler) -> Self
fn from(value: GenericDeviceHandler) -> Self
Source§impl HandlerExt for HubHandler
impl HandlerExt for HubHandler
Source§fn get_client<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = RwLockReadGuard<'_, dyn ApiClientExt>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_client<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = RwLockReadGuard<'_, dyn ApiClientExt>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Auto Trait Implementations§
impl Freeze for HubHandler
impl !RefUnwindSafe for HubHandler
impl Send for HubHandler
impl Sync for HubHandler
impl Unpin for HubHandler
impl UnsafeUnpin for HubHandler
impl !UnwindSafe for HubHandler
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more