Table of Contents

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

configuration DeviceConfiguration

The device configuration.

updateState bool

true to load device state before returning; otherwise, false.

cancellationToken CancellationToken

The 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

configuration DeviceConfiguration

The device configuration.

cancellationToken CancellationToken

The 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

discoveryResult DiscoveryResult

The discovery result to connect with.

updateState bool

true to load device state before returning; otherwise, false.

credentials DeviceCredentials

Optional credentials used by newer authenticated devices.

timeout TimeSpan?

The per-operation timeout. If null, a five second timeout is used.

cancellationToken CancellationToken

The cancellation token for the operation.

Returns

Task<KasaDevice>

A connected device instance.

Exceptions

ArgumentNullException

Thrown when discoveryResult is 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

discoveryResult DiscoveryResult

The discovery result to convert.

credentials DeviceCredentials

Optional credentials used by newer authenticated devices.

timeout TimeSpan?

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 discoveryResult is 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

timeout TimeSpan?

The discovery timeout. If null, a three second timeout is used.

target string

The discovery target address. The default is the IPv4 broadcast address.

cancellationToken CancellationToken

The 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

host string

The device host name or IP address.

port int

The device control port.

credentials DeviceCredentials

Optional credentials used by newer authenticated devices.

connectionOptions DeviceConnectionOptions

Transport-specific connection options used to select the device protocol.

timeout TimeSpan?

The per-operation timeout. If null, a five second timeout is used.

cancellationToken CancellationToken

The 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.