Class Discover
- Namespace
- KasaTapoClient
- Assembly
- KasaTapoClient.dll
Provides discovery helpers similar to python-kasa's Discover entry point.
public static class Discover
- Inheritance
-
Discover
- Inherited Members
Methods
ConnectAsync(DeviceConfiguration, bool, CancellationToken)
Connects using a complete device configuration and optionally loads the initial device state.
public static Task<KasaDevice> ConnectAsync(DeviceConfiguration configuration, bool updateState, CancellationToken cancellationToken = default)
Parameters
configurationDeviceConfigurationThe device configuration.
updateStatebooltrue to load device state before returning; otherwise, false.
cancellationTokenCancellationTokenThe cancellation token for the operation.
Returns
- Task<KasaDevice>
A device instance ready for direct commands.
Exceptions
- TimeoutException
Thrown when automatic transport resolution cannot obtain a matching discovery result for the configured host.
ConnectAsync(DeviceConfiguration, CancellationToken)
Connects using a complete device configuration and returns a ready-to-use device instance.
public static Task<KasaDevice> ConnectAsync(DeviceConfiguration configuration, CancellationToken cancellationToken = default)
Parameters
configurationDeviceConfigurationThe device configuration.
cancellationTokenCancellationTokenThe cancellation token for the operation.
Returns
- Task<KasaDevice>
A device instance with current system information loaded.
Exceptions
- TimeoutException
Thrown when automatic transport resolution cannot obtain a matching discovery result for the configured host.
ConnectAsync(DiscoveryResult, bool, DeviceCredentials?, TimeSpan?, CancellationToken)
Connects to a discovered device using the connection parameters parsed from its discovery result.
public static Task<KasaDevice> ConnectAsync(DiscoveryResult discoveryResult, bool updateState = true, DeviceCredentials? credentials = null, TimeSpan? timeout = null, CancellationToken cancellationToken = default)
Parameters
discoveryResultDiscoveryResultThe discovery result to connect with.
updateStatebooltrue to load device state before returning; otherwise, false.
credentialsDeviceCredentialsOptional credentials used by newer authenticated devices.
timeoutTimeSpan?The per-operation timeout. If null, a five second timeout is used.
cancellationTokenCancellationTokenThe cancellation token for the operation.
Returns
- Task<KasaDevice>
A connected device instance.
Exceptions
- ArgumentNullException
Thrown when
discoveryResultis null.
CreateConfiguration(DiscoveryResult, DeviceCredentials?, TimeSpan?)
Creates a device configuration directly from a discovery result.
public static DeviceConfiguration CreateConfiguration(DiscoveryResult discoveryResult, DeviceCredentials? credentials = null, TimeSpan? timeout = null)
Parameters
discoveryResultDiscoveryResultThe discovery result to convert.
credentialsDeviceCredentialsOptional credentials used by newer authenticated devices.
timeoutTimeSpan?The per-operation timeout. If null, a five second timeout is used.
Returns
- DeviceConfiguration
A device configuration derived from the discovery metadata.
Exceptions
- ArgumentNullException
Thrown when
discoveryResultis null.
DiscoverAsync(TimeSpan?, string, CancellationToken)
Broadcasts a discovery request and returns all responses collected within the timeout window.
public static Task<IReadOnlyList<DiscoveryResult>> DiscoverAsync(TimeSpan? timeout = null, string target = "255.255.255.255", CancellationToken cancellationToken = default)
Parameters
timeoutTimeSpan?The discovery timeout. If null, a three second timeout is used.
targetstringThe discovery target address. The default is the IPv4 broadcast address.
cancellationTokenCancellationTokenThe cancellation token for the operation.
Returns
- Task<IReadOnlyList<DiscoveryResult>>
A read-only collection of discovery responses.
Exceptions
- OperationCanceledException
Thrown when the discovery operation is canceled.
DiscoverSingleAsync(string, int, DeviceCredentials?, DeviceConnectionOptions?, TimeSpan?, CancellationToken)
Connects to a single device host and returns a ready-to-use device instance.
public static Task<KasaDevice> DiscoverSingleAsync(string host, int port = 9999, DeviceCredentials? credentials = null, DeviceConnectionOptions? connectionOptions = null, TimeSpan? timeout = null, CancellationToken cancellationToken = default)
Parameters
hoststringThe device host name or IP address.
portintThe device control port.
credentialsDeviceCredentialsOptional credentials used by newer authenticated devices.
connectionOptionsDeviceConnectionOptionsTransport-specific connection options used to select the device protocol.
timeoutTimeSpan?The per-operation timeout. If null, a five second timeout is used.
cancellationTokenCancellationTokenThe cancellation token for the operation.
Returns
- Task<KasaDevice>
A device instance with current system information loaded.
Exceptions
- TimeoutException
Thrown when automatic transport resolution cannot obtain a matching discovery result for
host.