Table of Contents

Class RainPointCloudClient

Namespace
RainPointClient
Assembly
RainPointClient.dll

A RainPoint Home / Smart+ cloud client. All network operations are explicit.

public sealed class RainPointCloudClient : IDisposable
Inheritance
RainPointCloudClient
Implements
Inherited Members

Remarks

Sign in explicitly before reading or controlling devices. No command is automatically retried. A caller-supplied HttpClient remains owned by the caller; configure its timeout and redirect policy. Finish outstanding operations before disposing this client.

Constructors

RainPointCloudClient(HttpClient?, Uri?)

Creates a cloud client with optional caller-managed HTTP transport and service origin.

public RainPointCloudClient(HttpClient? httpClient = null, Uri? serviceAddress = null)

Parameters

httpClient HttpClient

Optional caller-owned HTTP transport, which is not disposed by this client. Null creates an owned transport.

serviceAddress Uri

Optional absolute HTTPS service origin without user information, path, query or fragment; null uses the default regional origin.

Exceptions

ArgumentException

The service address must be an HTTPS origin.

Properties

AccountProfile

Profile observed at sign-in. Null after an attempted profile write; sign in again for a fresh observation.

public RainPointAccountProfile? AccountProfile { get; }

Property Value

RainPointAccountProfile

CanRefreshSession

Gets whether the current session has a refresh token available for an explicit renewal attempt.

public bool CanRefreshSession { get; }

Property Value

bool

HasValidSession

Gets whether the locally held session is within its calculated expiry; this does not probe server validity.

public bool HasValidSession { get; }

Property Value

bool

NotificationPreferences

The sign-in observation, or null if omitted or already used for a write. Sign in again to refresh. Other app sessions may change it. Cloud acceptance does not prove notification delivery.

public RainPointNotificationPreferences? NotificationPreferences { get; }

Property Value

RainPointNotificationPreferences

SessionExpiresAt

Local session expiry; a server-side rejection can invalidate a session earlier.

public DateTimeOffset? SessionExpiresAt { get; }

Property Value

DateTimeOffset?

Methods

AddTimerScheduleAsync(RainPointHub, RainPointScheduleSnapshot, RainPointCycleAndSoakSchedule, CancellationToken)

Adds a cycle-and-soak plan. Read a fresh snapshot before each edit.

public Task AddTimerScheduleAsync(RainPointHub hub, RainPointScheduleSnapshot expected, RainPointCycleAndSoakSchedule schedule, CancellationToken cancellationToken = default)

Parameters

hub RainPointHub

A hub discovered through its home in the current account; its child list identifies valid RF addresses and models.

expected RainPointScheduleSnapshot

An unused, current schedule snapshot observation from this session. Read again after any submitted write attempt.

schedule RainPointCycleAndSoakSchedule

The complete typed plan to validate and encode.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task

A task that completes when the operation finishes. A successful cloud write is not physical-device confirmation.

Exceptions

RainPointException

The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

AddTimerScheduleAsync(RainPointHub, RainPointScheduleSnapshot, RainPointIrrigationSchedule, CancellationToken)

Adds a normal-irrigation plan, preserving other plans and settings. Read a fresh snapshot before each edit.

public Task AddTimerScheduleAsync(RainPointHub hub, RainPointScheduleSnapshot expected, RainPointIrrigationSchedule schedule, CancellationToken cancellationToken = default)

Parameters

hub RainPointHub

A hub discovered through its home in the current account; its child list identifies valid RF addresses and models.

expected RainPointScheduleSnapshot

An unused, current schedule snapshot observation from this session. Read again after any submitted write attempt.

schedule RainPointIrrigationSchedule

The complete typed plan to validate and encode.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task

A task that completes when the operation finishes. A successful cloud write is not physical-device confirmation.

Exceptions

RainPointException

The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

AddTimerScheduleAsync(RainPointHub, RainPointScheduleSnapshot, RainPointMistingSchedule, CancellationToken)

Adds a misting plan. Read a fresh snapshot before each edit.

public Task AddTimerScheduleAsync(RainPointHub hub, RainPointScheduleSnapshot expected, RainPointMistingSchedule schedule, CancellationToken cancellationToken = default)

Parameters

hub RainPointHub

A hub discovered through its home in the current account; its child list identifies valid RF addresses and models.

expected RainPointScheduleSnapshot

An unused, current schedule snapshot observation from this session. Read again after any submitted write attempt.

schedule RainPointMistingSchedule

The complete typed plan to validate and encode.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task

A task that completes when the operation finishes. A successful cloud write is not physical-device confirmation.

Exceptions

RainPointException

The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

BroadcastTimeAsync(RainPointHub, CancellationToken)

Requests a one-shot hub time broadcast; it does not actuate a valve.

public Task<RainPointCommandOutcome> BroadcastTimeAsync(RainPointHub hub, CancellationToken cancellationToken = default)

Parameters

hub RainPointHub

A hub discovered through its home in the current account; its child list identifies valid RF addresses and models.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task<RainPointCommandOutcome>

A task containing the typed command outcome result.

Exceptions

RainPointException

The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

CancelDevicePairingAsync(RainPointHub, CancellationToken)

Cancels RF discovery. Does not undo devices already paired; rediscover the hub afterwards.

public Task CancelDevicePairingAsync(RainPointHub hub, CancellationToken cancellationToken = default)

Parameters

hub RainPointHub

A hub discovered through its home in the current account; its child list identifies valid RF addresses and models.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task

A task that completes when the operation finishes. A successful cloud write is not physical-device confirmation.

Exceptions

RainPointException

The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

ChangePasswordAsync(string, string, CancellationToken)

Changes the signed-in account password. Stop automatic recovery first. Any submitted attempt clears the local session; sign in explicitly to reconcile uncertainty.

public Task ChangePasswordAsync(string oldPassword, string newPassword, CancellationToken cancellationToken = default)

Parameters

oldPassword string

The current account password.

newPassword string

The replacement account password.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task

A task that completes when the operation finishes. A successful cloud write is not physical-device confirmation.

Exceptions

ArgumentException

The new password must differ.

InvalidOperationException

Stop automatic recovery before changing account credentials.

RainPointException

The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

CreateHomeAsync(string, string, IReadOnlyList<string>, CancellationToken)

Creates a home with the specified IANA time-zone name and room names. No retry is performed.

public Task<RainPointHomeDetails> CreateHomeAsync(string name, string timeZoneName, IReadOnlyList<string> rooms, CancellationToken cancellationToken = default)

Parameters

name string

The nonempty display name to assign.

timeZoneName string

The IANA time-zone name reported in the vendor catalog.

rooms IReadOnlyList<string>

Distinct, nonempty names of the rooms to create.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task<RainPointHomeDetails>

A task containing the typed home details result.

Exceptions

ArgumentNullException

A required argument is null.

ArgumentException

Room names must be nonempty and distinct.

RainPointException

The accepted home creation did not return an identifier. Discover homes before retrying. The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

CreateRoomAsync(RainPointHomeDetails, string, CancellationToken)

Creates a named room in the observed home.

public Task CreateRoomAsync(RainPointHomeDetails expected, string name, CancellationToken cancellationToken = default)

Parameters

expected RainPointHomeDetails

An unused, current home details observation from this session. Read again after any submitted write attempt.

name string

The nonempty display name to assign.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task

A task that completes when the operation finishes. A successful cloud write is not physical-device confirmation.

Exceptions

RainPointException

The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

CreateSceneAsync(RainPointHub, RainPointSceneDraft, CancellationToken)

Saves a new scene which may be active immediately. This can cause future watering, delays or notifications. Discover again after any attempt; never retry an uncertain creation blindly.

public Task CreateSceneAsync(RainPointHub executingHub, RainPointSceneDraft draft, CancellationToken cancellationToken = default)

Parameters

executingHub RainPointHub

A discovered hub with reported scene-execution capability.

draft RainPointSceneDraft

The complete scene definition to save; saving can activate future automation immediately.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task

A task that completes when the operation finishes. A successful cloud write is not physical-device confirmation.

Exceptions

ArgumentNullException

A required argument is null.

RainPointException

The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

DeleteHomeAsync(RainPointHomeDetails, CancellationToken)

Deletes a home. This can remove access to its devices and cannot be undone by this client.

public Task DeleteHomeAsync(RainPointHomeDetails expected, CancellationToken cancellationToken = default)

Parameters

expected RainPointHomeDetails

An unused, current home details observation from this session. Read again after any submitted write attempt.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task

A task that completes when the operation finishes. A successful cloud write is not physical-device confirmation.

Exceptions

RainPointException

The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

DeleteRoomAsync(RainPointHomeDetails, long, CancellationToken)

Deletes the selected room. This is explicit and never automatically retried.

public Task DeleteRoomAsync(RainPointHomeDetails expected, long roomId, CancellationToken cancellationToken = default)

Parameters

expected RainPointHomeDetails

An unused, current home details observation from this session. Read again after any submitted write attempt.

roomId long

The positive identifier of a room in the observed home.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task

A task that completes when the operation finishes. A successful cloud write is not physical-device confirmation.

Exceptions

RainPointException

The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

DeleteSceneAsync(RainPointScene, CancellationToken)

Deletes an observed scene without retrying the write; this does not issue valve-stop commands.

public Task DeleteSceneAsync(RainPointScene expected, CancellationToken cancellationToken = default)

Parameters

expected RainPointScene

An unused, current scene observation from this session. Read again after any submitted write attempt.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task

A task that completes when the operation finishes. A successful cloud write is not physical-device confirmation.

Exceptions

RainPointException

The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

DeleteTimerScheduleAsync(RainPointHub, RainPointScheduleSnapshot, int, CancellationToken)

Deletes one saved plan, preserving other plans and settings.

public Task DeleteTimerScheduleAsync(RainPointHub hub, RainPointScheduleSnapshot expected, int index, CancellationToken cancellationToken = default)

Parameters

hub RainPointHub

A hub discovered through its home in the current account; its child list identifies valid RF addresses and models.

expected RainPointScheduleSnapshot

An unused, current schedule snapshot observation from this session. Read again after any submitted write attempt.

index int

The zero-based plan position in this snapshot, not a durable plan identifier.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task

A task that completes when the operation finishes. A successful cloud write is not physical-device confirmation.

Exceptions

RainPointException

The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

Dispose()

Releases resources owned by this client; finish outstanding operations and stop background workers first.

public void Dispose()

GetAvailableSoilSensorsAsync(RainPointHub, RainPointScheduleSnapshot, CancellationToken)

Reads compatible, currently unassigned HCS005FRF/HCS021FRF sensors on this hub. Does not pair devices.

public Task<IReadOnlyList<RainPointDevice>> GetAvailableSoilSensorsAsync(RainPointHub hub, RainPointScheduleSnapshot expected, CancellationToken cancellationToken = default)

Parameters

hub RainPointHub

A hub discovered through its home in the current account; its child list identifies valid RF addresses and models.

expected RainPointScheduleSnapshot

An unused, current schedule snapshot observation from this session. Read again after any submitted write attempt.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task<IReadOnlyList<RainPointDevice>>

A task containing the requested device records.

Exceptions

RainPointException

Rediscover the hub before selecting a sensor. Timer settings changed. Reload before selecting a sensor. Ambiguous sensor address. Rediscover paired devices. The service rejects the request or returns an unusable response.

NotSupportedException

Another zone's sensor assignment is unreadable. Cannot verify sensor assignments on another unsupported watering device.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

GetEventsAsync(long, RainPointEventQuery?, CancellationToken)

Reads one event page for a home, with optional hub, address, zone, code and cloud-timestamp filters. Zone queries may include timer-wide power-on events with Zone=0.

public Task<RainPointEventPage> GetEventsAsync(long homeId, RainPointEventQuery? query = null, CancellationToken cancellationToken = default)

Parameters

homeId long

The positive cloud home identifier.

query RainPointEventQuery

Optional history filters and a bounded result limit; null uses the default query.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task<RainPointEventPage>

A task containing the typed event page result.

Remarks

No automatic pagination or deduplication. An empty result does not establish the service's retention period.

Exceptions

ArgumentException

Use a positive home/hub, nonnegative address/zone/code, ordered bounds and a limit of 1–50. Address requires hub; zone requires address.

RainPointException

Event history exceeded the requested page limit. Event history contained invalid metadata or mismatched addressing/filter codes. The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

GetHomeAsync(long, CancellationToken)

Reads a home-management snapshot, including rooms, permissions and display preferences.

public Task<RainPointHomeDetails> GetHomeAsync(long homeId, CancellationToken cancellationToken = default)

Parameters

homeId long

The positive cloud home identifier.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task<RainPointHomeDetails>

A task containing the typed home details result.

Exceptions

RainPointException

Invalid home or room identity. The service rejects the request or returns an unusable response.

InvalidOperationException

Session changed during home read.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

GetHomeOptionsAsync(CancellationToken)

Reads the vendor's supported currency and weather-condition catalog.

public Task<RainPointHomeOptions> GetHomeOptionsAsync(CancellationToken cancellationToken = default)

Parameters

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task<RainPointHomeOptions>

A task containing the typed home options result.

Exceptions

RainPointException

Home option catalog is missing or ambiguous. The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

GetHomesAsync(CancellationToken)

Lists the cloud homes accessible to the authenticated account.

public Task<IReadOnlyList<RainPointHome>> GetHomesAsync(CancellationToken cancellationToken = default)

Parameters

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task<IReadOnlyList<RainPointHome>>

A task containing the requested home records.

Exceptions

RainPointException

The home list contained an invalid identifier. The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

GetHubFirmwareAsync(RainPointHub, CancellationToken)

Reads installed and offered hub firmware metadata without installing an update.

public Task<RainPointFirmwareStatus> GetHubFirmwareAsync(RainPointHub hub, CancellationToken cancellationToken = default)

Parameters

hub RainPointHub

A hub discovered through its home in the current account; its child list identifies valid RF addresses and models.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task<RainPointFirmwareStatus>

A task containing the typed firmware status result.

Exceptions

RainPointException

The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

GetHubStatusAsync(RainPointHub, CancellationToken)

Reads hub connectivity, Wi-Fi signal and all supported timers in one cloud request.

public Task<RainPointHubStatus> GetHubStatusAsync(RainPointHub hub, CancellationToken cancellationToken = default)

Parameters

hub RainPointHub

A hub discovered through its home in the current account; its child list identifies valid RF addresses and models.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task<RainPointHubStatus>

A task containing the typed hub status result.

Exceptions

RainPointException

The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

GetHubsAsync(long, CancellationToken)

Discovers a home's hubs and paired children, validating their identifiers and RF addresses.

public Task<IReadOnlyList<RainPointHub>> GetHubsAsync(long homeId, CancellationToken cancellationToken = default)

Parameters

homeId long

The positive cloud home identifier.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task<IReadOnlyList<RainPointHub>>

A task containing the requested hub records.

Exceptions

ArgumentOutOfRangeException

An argument is outside the supported range described above.

RainPointException

The device list contained invalid or ambiguous addressing. The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

GetInvitationsAsync(CancellationToken)

Lists the pending home invitations visible to the signed-in account.

public Task<IReadOnlyList<RainPointInvitation>> GetInvitationsAsync(CancellationToken cancellationToken = default)

Parameters

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task<IReadOnlyList<RainPointInvitation>>

A task containing the requested invitation records.

Exceptions

RainPointException

Invalid invitation identity. The service rejects the request or returns an unusable response.

InvalidOperationException

Session changed during invitation read.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

GetMembersAsync(long, CancellationToken)

Lists members and their reported privileges for a home.

public Task<IReadOnlyList<RainPointMember>> GetMembersAsync(long homeId, CancellationToken cancellationToken = default)

Parameters

homeId long

The positive cloud home identifier.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task<IReadOnlyList<RainPointMember>>

A task containing the requested member records.

Exceptions

RainPointException

Invalid member identity. The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

GetProductCatalogAsync(CancellationToken)

Reads the RainPoint appCode-2 catalog, preserving distinct model-code variants.

public Task<RainPointProductCatalog> GetProductCatalogAsync(CancellationToken cancellationToken = default)

Parameters

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task<RainPointProductCatalog>

A task containing the typed product catalog result.

Exceptions

RainPointException

The product catalog contains invalid or duplicate model variants. The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

GetRegistrationEmailAsync(string, string, CancellationToken)

Obtains the vendor's manual registration-email instructions without sending an email.

public Task<RainPointRegistrationEmail> GetRegistrationEmailAsync(string email, string areaCode, CancellationToken cancellationToken = default)

Parameters

email string

The account email address.

areaCode string

The account country calling code as digits without a plus sign.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task<RainPointRegistrationEmail>

A task containing the typed registration email result.

Exceptions

RainPointException

Registration email instructions are incomplete. The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

GetRoomDevicesAsync(RainPointHomeDetails, long, CancellationToken)

Resolves both current device-ID and legacy RF-address room assignments. Unsupported assignments fail explicitly.

public Task<IReadOnlyList<RainPointRoomDevice>> GetRoomDevicesAsync(RainPointHomeDetails home, long roomId, CancellationToken cancellationToken = default)

Parameters

home RainPointHomeDetails

A current home-management observation from the authenticated session.

roomId long

The positive identifier of a room in the observed home.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task<IReadOnlyList<RainPointRoomDevice>>

A task containing the requested room device records.

Exceptions

RainPointException

Unsupported room device assignment. Room references an unavailable hub. Unsupported room child assignment. Room child identity is unavailable or ambiguous. Unsupported room zone assignment. Duplicate room assignments. The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

GetSceneAsync(long, long, CancellationToken)

Reads a full scene observation, retaining unsupported components for guarded edit decisions.

public Task<RainPointScene> GetSceneAsync(long homeId, long sceneId, CancellationToken cancellationToken = default)

Parameters

homeId long

The positive cloud home identifier.

sceneId long

The cloud scene identifier; null leaves scene history unfiltered where permitted.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task<RainPointScene>

A task containing the typed scene result.

Exceptions

ArgumentException

Select a scene belonging to this home.

RainPointException

Scene details are incomplete or have a different identity. The service rejects the request or returns an unusable response.

InvalidOperationException

Session changed during the scene read.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

GetSceneDevicesAsync(long, CancellationToken)

Reads devices and their product-catalog scene capabilities. Plain discovery does not supply the catalog flags.

public Task<IReadOnlyList<RainPointHub>> GetSceneDevicesAsync(long homeId, CancellationToken cancellationToken = default)

Parameters

homeId long

The positive cloud home identifier.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task<IReadOnlyList<RainPointHub>>

A task containing the requested hub records.

Exceptions

InvalidOperationException

Session changed during capability discovery.

RainPointException

The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

GetSceneHistoryAsync(long, DateTimeOffset, DateTimeOffset, int, int, long?, CancellationToken)

Reads one bounded zero-based page of scene history using UTC instants. History retention after scene deletion is controlled by the service and is not guaranteed.

public Task<RainPointSceneLogPage> GetSceneHistoryAsync(long homeId, DateTimeOffset from, DateTimeOffset through, int page = 0, int pageSize = 50, long? sceneId = null, CancellationToken cancellationToken = default)

Parameters

homeId long

The positive cloud home identifier.

from DateTimeOffset

The inclusive lower cloud-timestamp bound, after the Unix epoch.

through DateTimeOffset

The inclusive upper cloud-timestamp bound, after the Unix epoch.

page int

The zero-based page index.

pageSize int

The requested maximum records per page, from 1 through 100 for scene history.

sceneId long?

The cloud scene identifier; null leaves scene history unfiltered where permitted.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task<RainPointSceneLogPage>

A task containing the typed scene log page result.

Exceptions

ArgumentOutOfRangeException

An argument is outside the supported range described above.

ArgumentException

Use an ordered date range after the Unix epoch.

RainPointException

Scene history has incomplete, duplicate or out-of-scope records. Scene action results did not match the expected model. Scene action results are incomplete. The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

GetScenesAsync(long, CancellationToken)

Lists scene summaries for the selected home.

public Task<IReadOnlyList<RainPointSceneSummary>> GetScenesAsync(long homeId, CancellationToken cancellationToken = default)

Parameters

homeId long

The positive cloud home identifier.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task<IReadOnlyList<RainPointSceneSummary>>

A task containing the requested scene summary records.

Exceptions

RainPointException

The scene list contains invalid or duplicate identities. The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

GetTimeZonesAsync(CancellationToken)

Reads the vendor's IANA time-zone catalog independently of Windows time-zone identifiers.

public Task<IReadOnlyList<RainPointTimeZone>> GetTimeZonesAsync(CancellationToken cancellationToken = default)

Parameters

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task<IReadOnlyList<RainPointTimeZone>>

A task containing the requested time zone records.

Exceptions

RainPointException

The time-zone catalog is incomplete. The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

GetTimerFirmwareAsync(RainPointHub, int, CancellationToken)

Reads firmware metadata for a paired timer without installing an update.

public Task<RainPointFirmwareStatus> GetTimerFirmwareAsync(RainPointHub hub, int address, CancellationToken cancellationToken = default)

Parameters

hub RainPointHub

A hub discovered through its home in the current account; its child list identifies valid RF addresses and models.

address int

The paired child's RF address within its hub, distinct from its cloud database ID.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task<RainPointFirmwareStatus>

A task containing the typed firmware status result.

Exceptions

ArgumentException

The discovered timer has no usable cloud sub-device identifier.

RainPointException

The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

GetTimerSchedulesAsync(RainPointHub, int, int, CancellationToken)

Reads fresh saved schedules for a supported HTV145FRF, HTV245FRF or HTV345FRF zone. Sends no configuration or valve commands.

public Task<RainPointScheduleSnapshot> GetTimerSchedulesAsync(RainPointHub hub, int address, int zone, CancellationToken cancellationToken = default)

Parameters

hub RainPointHub

A hub discovered through its home in the current account; its child list identifies valid RF addresses and models.

address int

The paired child's RF address within its hub, distinct from its cloud database ID.

zone int

The one-based zone number on the selected timer.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task<RainPointScheduleSnapshot>

A task containing the typed schedule snapshot result.

Exceptions

RainPointException

The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

GetTimerStatusAsync(RainPointHub, int, CancellationToken)

Reads a supported RF timer through its discovered parent hub.

public Task<RainPointTimerStatus> GetTimerStatusAsync(RainPointHub hub, int address, CancellationToken cancellationToken = default)

Parameters

hub RainPointHub

A hub discovered through its home in the current account; its child list identifies valid RF addresses and models.

address int

The paired child's RF address within its hub, distinct from its cloud database ID.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task<RainPointTimerStatus>

A task containing the typed timer status result.

Exceptions

RainPointException

The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

GetTimerWaterUsageAsync(RainPointHub, int, int, RainPointUsagePeriod, DateTime, DateTime, CancellationToken)

Reads sparse daily or monthly water totals for one timer zone. Dates are inclusive home-calendar dates, not UTC instants.

public Task<IReadOnlyList<RainPointWaterUsage>> GetTimerWaterUsageAsync(RainPointHub hub, int address, int zone, RainPointUsagePeriod period, DateTime startDate, DateTime endDate, CancellationToken cancellationToken = default)

Parameters

hub RainPointHub

A hub discovered through its home in the current account; its child list identifies valid RF addresses and models.

address int

The paired child's RF address within its hub, distinct from its cloud database ID.

zone int

The one-based zone number on the selected timer.

period RainPointUsagePeriod

Daily or monthly aggregation of water usage.

startDate DateTime

The inclusive first home-calendar date at midnight with Unspecified kind.

endDate DateTime

The inclusive final home-calendar date at midnight with Unspecified kind.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task<IReadOnlyList<RainPointWaterUsage>>

A task containing the requested water usage records.

Remarks

Use Unspecified midnight dates. Requests are limited to 30 days or one calendar year, matching the app's chart windows. Monthly buckets can cover a partial month; no missing periods are filled.

Exceptions

ArgumentOutOfRangeException

An argument is outside the supported range described above.

ArgumentException

Use an ordered home-calendar range of at most 30 days or one year, with Unspecified midnight dates.

RainPointException

Water history contained an invalid, duplicate or out-of-range calendar bucket. The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

GetWeatherAsync(RainPointHomeDetails, RainPointWeatherAccess, int, int, CancellationToken)

Reads the vendor weather service for the home's coordinates, up to 48 hours and 7 days. Requires separately supplied weather signing credentials; no vendor secret is embedded.

public Task<RainPointWeather> GetWeatherAsync(RainPointHomeDetails home, RainPointWeatherAccess access, int hours = 48, int days = 7, CancellationToken cancellationToken = default)

Parameters

home RainPointHomeDetails

A current home-management observation from the authenticated session.

access RainPointWeatherAccess

Caller-supplied weather-service signing credentials, separate from the RainPoint login.

hours int

The requested hourly-forecast horizon, up to 48 hours.

days int

The requested daily-forecast horizon, up to seven days.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task<RainPointWeather>

A task containing the typed weather result.

Exceptions

ArgumentNullException

A required argument is null.

ArgumentException

The home has no usable coordinates.

ArgumentOutOfRangeException

An argument is outside the supported range described above.

InvalidOperationException

Read the home in this session before requesting weather.

RainPointException

Weather response contained a null forecast item. The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

GetZoneProfileAsync(RainPointHub, int, int, CancellationToken)

Reads one zone's saved recommendation preferences without creating a watering plan.

public Task<RainPointZoneProfileSnapshot> GetZoneProfileAsync(RainPointHub hub, int address, int zone, CancellationToken cancellationToken = default)

Parameters

hub RainPointHub

A hub discovered through its home in the current account; its child list identifies valid RF addresses and models.

address int

The paired child's RF address within its hub, distinct from its cloud database ID.

zone int

The one-based zone number on the selected timer.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task<RainPointZoneProfileSnapshot>

A task containing the typed zone profile snapshot result.

Exceptions

RainPointException

The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

GetZoneProfileCatalogAsync(CancellationToken)

Lists the vendor's recommendation-profile categories and options.

public Task<IReadOnlyList<RainPointProfileCategory>> GetZoneProfileCatalogAsync(CancellationToken cancellationToken = default)

Parameters

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task<IReadOnlyList<RainPointProfileCategory>>

A task containing the requested profile category records.

Exceptions

RainPointException

Invalid profile catalog. Duplicate profile option identifier. The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

GetZoneRecommendationsAsync(RainPointHub, int, int, CancellationToken)

Reads cloud watering recommendations for a zone without applying them or enabling watering.

public Task<IReadOnlyList<RainPointWateringRecommendation>> GetZoneRecommendationsAsync(RainPointHub hub, int address, int zone, CancellationToken cancellationToken = default)

Parameters

hub RainPointHub

A hub discovered through its home in the current account; its child list identifies valid RF addresses and models.

address int

The paired child's RF address within its hub, distinct from its cloud database ID.

zone int

The one-based zone number on the selected timer.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task<IReadOnlyList<RainPointWateringRecommendation>>

A task containing the requested watering recommendation records.

Exceptions

RainPointException

Invalid watering recommendation. The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

InviteMemberAsync(RainPointHomeDetails, string, CancellationToken)

Sends a home invitation to an already registered email account. Caller must explicitly intend to send it.

public Task InviteMemberAsync(RainPointHomeDetails expected, string email, CancellationToken cancellationToken = default)

Parameters

expected RainPointHomeDetails

An unused, current home details observation from this session. Read again after any submitted write attempt.

email string

The account email address.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task

A task that completes when the operation finishes. A successful cloud write is not physical-device confirmation.

Exceptions

ArgumentException

Use an email address without a display name.

RainPointException

The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

LeaveHomeAsync(RainPointHomeDetails, CancellationToken)

Leaves a shared home.

public Task LeaveHomeAsync(RainPointHomeDetails expected, CancellationToken cancellationToken = default)

Parameters

expected RainPointHomeDetails

An unused, current home details observation from this session. Read again after any submitted write attempt.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task

A task that completes when the operation finishes. A successful cloud write is not physical-device confirmation.

Exceptions

RainPointException

The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

LoginAsync(string, string, string, CancellationToken)

Logs into appCode 2. Area code is the account's country calling code, e.g. "44".

public Task LoginAsync(string email, string password, string areaCode, CancellationToken cancellationToken = default)

Parameters

email string

The account email address.

password string

The account password; it is not persisted or logged by the client.

areaCode string

The account country calling code as digits without a plus sign.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task

A task that completes when the operation finishes. A successful cloud write is not physical-device confirmation.

Remarks

Credentials are not retained. A login can displace an existing app session on the same account.

Exceptions

InvalidOperationException

Stop session recovery before signing in explicitly.

RainPointException

The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

LogoutAsync(CancellationToken)

Logs out remotely and clears the matching local session even if the request fails.

public Task LogoutAsync(CancellationToken cancellationToken = default)

Parameters

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task

A task that completes when the operation finishes. A successful cloud write is not physical-device confirmation.

Exceptions

InvalidOperationException

Stop session recovery before signing out.

RainPointException

The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

RefreshSessionAsync(CancellationToken)

Refreshes the session using its refresh token, without retaining or resending the password.

public Task RefreshSessionAsync(CancellationToken cancellationToken = default)

Parameters

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task

A task that completes when the operation finishes. A successful cloud write is not physical-device confirmation.

Remarks

Explicit operation: no watering command is retried. Expiry must be supplied by the server.

Exceptions

InvalidOperationException

There is no session to refresh. The session has no refresh token; sign in again. The session was invalidated while its refresh was pending; sign in again.

RainPointException

The refresh response did not contain a usable session and expiry. The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

RegisterEmailAsync(RainPointVerifiedEmail, string, string, string, string?, CancellationToken)

Registers the verified email. The caller must obtain the user's agreement and supply their selected country. Never automatically retries.

public Task RegisterEmailAsync(RainPointVerifiedEmail verified, string password, string countryIsoCode, string deviceId, string? agreementVersion = null, CancellationToken cancellationToken = default)

Parameters

verified RainPointVerifiedEmail

An unused verification result from this client matching the account and requested operation.

password string

The account password; it is not persisted or logged by the client.

countryIsoCode string

The caller-selected country ISO code for registration.

deviceId string

The caller-selected app/device identity for the account operation.

agreementVersion string

The accepted agreement version, where supplied by the registration flow.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task

A task that completes when the operation finishes. A successful cloud write is not physical-device confirmation.

Exceptions

ArgumentException

Use a two-letter uppercase country code.

RainPointException

The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

RemoveDeviceAsync(RainPointHomeDetails, RainPointHub, int, CancellationToken)

Removes a supported paired child, clearing matching soil-sensor associations on every supported timer zone in the same request. Unknown sibling families are rejected because their relationships cannot be safely updated.

public Task RemoveDeviceAsync(RainPointHomeDetails home, RainPointHub expected, int address, CancellationToken cancellationToken = default)

Parameters

home RainPointHomeDetails

A current home-management observation from the authenticated session.

expected RainPointHub

An unused, current hub observation from this session. Read again after any submitted write attempt.

address int

The paired child's RF address within its hub, distinct from its cloud database ID.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task

A task that completes when the operation finishes. A successful cloud write is not physical-device confirmation.

Exceptions

NotSupportedException

Removal requires known timer/sensor siblings with complete cloud identities. A remaining zone's sensor relationship cannot be read.

ArgumentException

Choose a discovered child address.

RainPointException

The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

RemoveHubAsync(RainPointHomeDetails, RainPointHub, CancellationToken)

Removes the hub and its children from the home. Requires a fresh home/hub observation; never retries.

public Task RemoveHubAsync(RainPointHomeDetails home, RainPointHub expected, CancellationToken cancellationToken = default)

Parameters

home RainPointHomeDetails

A current home-management observation from the authenticated session.

expected RainPointHub

An unused, current hub observation from this session. Read again after any submitted write attempt.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task

A task that completes when the operation finishes. A successful cloud write is not physical-device confirmation.

Exceptions

RainPointException

The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

RemoveMemberAsync(RainPointHomeDetails, RainPointMember, CancellationToken)

Removes the selected member from the home after validating the observed membership.

public Task RemoveMemberAsync(RainPointHomeDetails expectedHome, RainPointMember expectedMember, CancellationToken cancellationToken = default)

Parameters

expectedHome RainPointHomeDetails

The current home-management observation used to validate permissions and detect conflicting changes.

expectedMember RainPointMember

The observed member belonging to the selected home.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task

A task that completes when the operation finishes. A successful cloud write is not physical-device confirmation.

Exceptions

RainPointException

The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

RenameDeviceAsync(RainPointHomeDetails, RainPointHub, int, string, CancellationToken)

Changes the assigned name of a paired child identified by its RF address.

public Task RenameDeviceAsync(RainPointHomeDetails home, RainPointHub hub, int address, string name, CancellationToken cancellationToken = default)

Parameters

home RainPointHomeDetails

A current home-management observation from the authenticated session.

hub RainPointHub

A hub discovered through its home in the current account; its child list identifies valid RF addresses and models.

address int

The paired child's RF address within its hub, distinct from its cloud database ID.

name string

The nonempty display name to assign.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task

A task that completes when the operation finishes. A successful cloud write is not physical-device confirmation.

Exceptions

RainPointException

The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

RenameHomeAsync(RainPointHomeDetails, string, CancellationToken)

Changes a home's display name using a current home-management observation.

public Task RenameHomeAsync(RainPointHomeDetails expected, string name, CancellationToken cancellationToken = default)

Parameters

expected RainPointHomeDetails

An unused, current home details observation from this session. Read again after any submitted write attempt.

name string

The nonempty display name to assign.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task

A task that completes when the operation finishes. A successful cloud write is not physical-device confirmation.

Exceptions

RainPointException

The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

RenameHubAsync(RainPointHomeDetails, RainPointHub, string, CancellationToken)

Changes the assigned hub name after validating the observed home and hub.

public Task RenameHubAsync(RainPointHomeDetails home, RainPointHub expected, string name, CancellationToken cancellationToken = default)

Parameters

home RainPointHomeDetails

A current home-management observation from the authenticated session.

expected RainPointHub

An unused, current hub observation from this session. Read again after any submitted write attempt.

name string

The nonempty display name to assign.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task

A task that completes when the operation finishes. A successful cloud write is not physical-device confirmation.

Exceptions

RainPointException

The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

RenameRoomAsync(RainPointHomeDetails, long, string, CancellationToken)

Renames an existing room in the observed home.

public Task RenameRoomAsync(RainPointHomeDetails expected, long roomId, string name, CancellationToken cancellationToken = default)

Parameters

expected RainPointHomeDetails

An unused, current home details observation from this session. Read again after any submitted write attempt.

roomId long

The positive identifier of a room in the observed home.

name string

The nonempty display name to assign.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task

A task that completes when the operation finishes. A successful cloud write is not physical-device confirmation.

Exceptions

RainPointException

The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

ReplaceSceneAsync(RainPointScene, RainPointHub, RainPointSceneDraft, CancellationToken)

Replaces the entire scene definition, including effective dates and conditions. Saving can activate automation; no automatic replay occurs.

public Task ReplaceSceneAsync(RainPointScene expected, RainPointHub executingHub, RainPointSceneDraft replacement, CancellationToken cancellationToken = default)

Parameters

expected RainPointScene

An unused, current scene observation from this session. Read again after any submitted write attempt.

executingHub RainPointHub

A discovered hub with reported scene-execution capability.

replacement RainPointSceneDraft

The complete supported replacement definition, including all intended conditions and actions.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task

A task that completes when the operation finishes. A successful cloud write is not physical-device confirmation.

Exceptions

ArgumentNullException

A required argument is null.

ArgumentException

The scene and executing hub must belong to the same home.

RainPointException

The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

ResetPasswordByEmailAsync(RainPointVerifiedEmail, string, CancellationToken)

Submits one password-reset attempt using a matching verified email token.

public Task ResetPasswordByEmailAsync(RainPointVerifiedEmail verified, string newPassword, CancellationToken cancellationToken = default)

Parameters

verified RainPointVerifiedEmail

An unused verification result from this client matching the account and requested operation.

newPassword string

The replacement account password.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task

A task that completes when the operation finishes. A successful cloud write is not physical-device confirmation.

Exceptions

RainPointException

The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

RespondToInvitationAsync(RainPointInvitation, bool, CancellationToken)

Accepts or declines a discovered invitation. Changes membership and never retries.

public Task RespondToInvitationAsync(RainPointInvitation expected, bool accept, CancellationToken cancellationToken = default)

Parameters

expected RainPointInvitation

An unused, current invitation observation from this session. Read again after any submitted write attempt.

accept bool

True to accept the invitation; false to decline it.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task

A task that completes when the operation finishes. A successful cloud write is not physical-device confirmation.

Exceptions

ArgumentNullException

A required argument is null.

InvalidOperationException

Read invitations in the current session. Read invitations again after an attempt. Invitation or session changed.

RainPointException

The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

SendEmailVerificationCodeAsync(string, string, RainPointEmailVerificationPurpose, CancellationToken)

Requests that the service email a verification code for registration or password reset.

public Task SendEmailVerificationCodeAsync(string email, string areaCode, RainPointEmailVerificationPurpose purpose, CancellationToken cancellationToken = default)

Parameters

email string

The account email address.

areaCode string

The account country calling code as digits without a plus sign.

purpose RainPointEmailVerificationPurpose

The registration or password-reset purpose of the verification.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task

A task that completes when the operation finishes. A successful cloud write is not physical-device confirmation.

Exceptions

RainPointException

The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

SetAccountNicknameAsync(RainPointAccountProfile, string, CancellationToken)

Changes the nickname from a matching account-profile observation without replaying the write.

public Task SetAccountNicknameAsync(RainPointAccountProfile expected, string nickname, CancellationToken cancellationToken = default)

Parameters

expected RainPointAccountProfile

An unused, current account profile observation from this session. Read again after any submitted write attempt.

nickname string

The new account display nickname.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task

A task that completes when the operation finishes. A successful cloud write is not physical-device confirmation.

Exceptions

RainPointException

The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

SetAccountPhotoAsync(RainPointAccountProfile, Uri, CancellationToken)

Associates an already uploaded HTTPS profile image. This does not upload or fetch a local image.

public Task SetAccountPhotoAsync(RainPointAccountProfile expected, Uri photo, CancellationToken cancellationToken = default)

Parameters

expected RainPointAccountProfile

An unused, current account profile observation from this session. Read again after any submitted write attempt.

photo Uri

The HTTPS address of an already uploaded profile image; the method does not upload or fetch an image.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task

A task that completes when the operation finishes. A successful cloud write is not physical-device confirmation.

Exceptions

ArgumentException

Use an absolute HTTPS image URL.

RainPointException

The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

SetAutomaticTimeBroadcastAsync(RainPointHub, bool, CancellationToken)

Changes the hub's automatic time-broadcast setting, preserving unrelated settings.

public Task SetAutomaticTimeBroadcastAsync(RainPointHub hub, bool enabled, CancellationToken cancellationToken = default)

Parameters

hub RainPointHub

A hub discovered through its home in the current account; its child list identifies valid RF addresses and models.

enabled bool

Whether the selected feature or saved plan should be enabled.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task

A task that completes when the operation finishes. A successful cloud write is not physical-device confirmation.

Remarks

Reads fresh settings before writing. The result is a cloud acknowledgement, not RF delivery confirmation.

Exceptions

ArgumentException

Use a discovered hub with its home identifier.

RainPointException

The hub's current settings could not be uniquely located. The hub's time-broadcast setting is unreadable. The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

SetHomeCurrencyAsync(RainPointHomeDetails, RainPointCurrency, CancellationToken)

Sets the home's currency to an entry from the vendor options catalog.

public Task SetHomeCurrencyAsync(RainPointHomeDetails expected, RainPointCurrency currency, CancellationToken cancellationToken = default)

Parameters

expected RainPointHomeDetails

An unused, current home details observation from this session. Read again after any submitted write attempt.

currency RainPointCurrency

The selected currency entry from the vendor home-options catalog.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task

A task that completes when the operation finishes. A successful cloud write is not physical-device confirmation.

Exceptions

ArgumentNullException

A required argument is null.

InvalidOperationException

The selected currency is no longer in the catalog.

RainPointException

The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

SetHomeDisplayUnitsAsync(RainPointHomeDetails, RainPointDisplayUnits, CancellationToken)

Changes app display preferences while preserving unrelated home settings and encoded flags.

public Task SetHomeDisplayUnitsAsync(RainPointHomeDetails expected, RainPointDisplayUnits units, CancellationToken cancellationToken = default)

Parameters

expected RainPointHomeDetails

An unused, current home details observation from this session. Read again after any submitted write attempt.

units RainPointDisplayUnits

The desired app display preferences; typed client readings retain their documented units.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task

A task that completes when the operation finishes. A successful cloud write is not physical-device confirmation.

Exceptions

ArgumentNullException

A required argument is null.

InvalidOperationException

Display units are missing or unsupported.

RainPointException

The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

SetHomeLocationAsync(RainPointHomeDetails, decimal, decimal, CancellationToken)

Sets the home's coordinates for location-dependent features such as weather.

public Task SetHomeLocationAsync(RainPointHomeDetails expected, decimal latitude, decimal longitude, CancellationToken cancellationToken = default)

Parameters

expected RainPointHomeDetails

An unused, current home details observation from this session. Read again after any submitted write attempt.

latitude decimal

Latitude in decimal degrees, from -90 through 90.

longitude decimal

Longitude in decimal degrees, from -180 through 180.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task

A task that completes when the operation finishes. A successful cloud write is not physical-device confirmation.

Exceptions

ArgumentOutOfRangeException

An argument is outside the supported range described above.

RainPointException

The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

SetHomeTimeZoneAsync(RainPointHomeDetails, string, CancellationToken)

Changes the home time zone. This changes the interpretation of scheduled local times.

public Task SetHomeTimeZoneAsync(RainPointHomeDetails expected, string timeZoneName, CancellationToken cancellationToken = default)

Parameters

expected RainPointHomeDetails

An unused, current home details observation from this session. Read again after any submitted write attempt.

timeZoneName string

The IANA time-zone name reported in the vendor catalog.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task

A task that completes when the operation finishes. A successful cloud write is not physical-device confirmation.

Exceptions

ArgumentNullException

A required argument is null.

ArgumentException

Select an IANA time-zone name from the vendor catalog.

RainPointException

The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

SetMemberRoleAsync(RainPointHomeDetails, RainPointMember, RainPointMemberRole, CancellationToken)

Changes a discovered non-owner member's role after validating current home permissions.

public Task SetMemberRoleAsync(RainPointHomeDetails expectedHome, RainPointMember expectedMember, RainPointMemberRole role, CancellationToken cancellationToken = default)

Parameters

expectedHome RainPointHomeDetails

The current home-management observation used to validate permissions and detect conflicting changes.

expectedMember RainPointMember

The observed member belonging to the selected home.

role RainPointMemberRole

The supported membership role to assign; ownership transfer uses its separate operation.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task

A task that completes when the operation finishes. A successful cloud write is not physical-device confirmation.

Exceptions

ArgumentOutOfRangeException

An argument is outside the supported range described above.

RainPointException

The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

SetNotificationPreferencesAsync(RainPointNotificationPreferences, bool, bool, CancellationToken)

Changes the two known notification flags, preserving unknown bits from sign-in. One attempt per observation.

public Task SetNotificationPreferencesAsync(RainPointNotificationPreferences expected, bool mobileEnabled, bool emailEnabled, CancellationToken cancellationToken = default)

Parameters

expected RainPointNotificationPreferences

An unused, current notification preferences observation from this session. Read again after any submitted write attempt.

mobileEnabled bool

Whether the known mobile-notification preference should be enabled.

emailEnabled bool

Whether the known email-notification preference should be enabled.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task

A task that completes when the operation finishes. A successful cloud write is not physical-device confirmation.

Exceptions

ArgumentNullException

A required argument is null.

InvalidOperationException

Use this session's sign-in notification observation. Sign in again before another notification write.

RainPointException

The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

SetRfChannelAsync(RainPointHub, int, CancellationToken)

Changes the hub RF receive channel (1..3). May interrupt communication with paired devices.

public Task SetRfChannelAsync(RainPointHub hub, int channel, CancellationToken cancellationToken = default)

Parameters

hub RainPointHub

A hub discovered through its home in the current account; its child list identifies valid RF addresses and models.

channel int

The supported RF receive channel number, from 1 through 3; this is not a Wi-Fi channel.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task

A task that completes when the operation finishes. A successful cloud write is not physical-device confirmation.

Remarks

Uses a discovered hub as the expected channel/identity snapshot, reads again before writing, and consumes that snapshot after one write attempt. Read again after any attempted write. Completion is cloud acceptance, not RF delivery; concurrent updates are not atomic.

Exceptions

ArgumentOutOfRangeException

RF channel must be 1, 2 or 3.

ArgumentException

Use a discovered hub with a known RF channel and home.

InvalidOperationException

This channel snapshot has already been used. Read again before another write. Hub identity or RF channel changed. Read again before writing.

RainPointException

The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

SetRoomDevicesAsync(RainPointHomeDetails, long, IReadOnlyList<RainPointRoomDevice>, CancellationToken)

Replaces only the selected room's assignments using discovered devices, including zones 1–3.

public Task SetRoomDevicesAsync(RainPointHomeDetails expected, long roomId, IReadOnlyList<RainPointRoomDevice> assignments, CancellationToken cancellationToken = default)

Parameters

expected RainPointHomeDetails

An unused, current home details observation from this session. Read again after any submitted write attempt.

roomId long

The positive identifier of a room in the observed home.

assignments IReadOnlyList<RainPointRoomDevice>

The complete replacement room assignments, using discovered hubs, children and optional zones.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task

A task that completes when the operation finishes. A successful cloud write is not physical-device confirmation.

Exceptions

ArgumentNullException

A required argument is null.

ArgumentException

Assignments must be present and distinct. Assignment hub is not in this home. Assignment child or zone is unavailable.

RainPointException

The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

SetSceneEnabledAsync(RainPointScene, bool, CancellationToken)

Changes the scene's switch. Enabling authorizes future actions; disabling does not stop an active valve.

public Task SetSceneEnabledAsync(RainPointScene expected, bool enabled, CancellationToken cancellationToken = default)

Parameters

expected RainPointScene

An unused, current scene observation from this session. Read again after any submitted write attempt.

enabled bool

Whether the selected feature or saved plan should be enabled.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task

A task that completes when the operation finishes. A successful cloud write is not physical-device confirmation.

Exceptions

RainPointException

The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

SetTimerDefaultWateringDurationAsync(RainPointHub, RainPointScheduleSnapshot, TimeSpan?, CancellationToken)

Sets the saved default watering duration, 1..720 whole minutes. Null restores the app-default sentinel. Sends no valve command.

public Task SetTimerDefaultWateringDurationAsync(RainPointHub hub, RainPointScheduleSnapshot expected, TimeSpan? duration, CancellationToken cancellationToken = default)

Parameters

hub RainPointHub

A hub discovered through its home in the current account; its child list identifies valid RF addresses and models.

expected RainPointScheduleSnapshot

An unused, current schedule snapshot observation from this session. Read again after any submitted write attempt.

duration TimeSpan?

The configured watering duration; use the operation's documented range and mode-specific treatment of pauses.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task

A task that completes when the operation finishes. A successful cloud write is not physical-device confirmation.

Exceptions

RainPointException

The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

SetTimerFlowCalibrationAsync(RainPointHub, RainPointScheduleSnapshot, int, CancellationToken)

Sets one zone's signed flow-calibration percentage (-20..20), preserving every other configuration byte. Sends no valve command.

public Task SetTimerFlowCalibrationAsync(RainPointHub hub, RainPointScheduleSnapshot expected, int percentage, CancellationToken cancellationToken = default)

Parameters

hub RainPointHub

A hub discovered through its home in the current account; its child list identifies valid RF addresses and models.

expected RainPointScheduleSnapshot

An unused, current schedule snapshot observation from this session. Read again after any submitted write attempt.

percentage int

The signed flow-calibration correction in percent, from -20 through 20.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task

A task that completes when the operation finishes. A successful cloud write is not physical-device confirmation.

Remarks

Use a fresh snapshot for each write. The client does not apply this correction again to reported litres. Cloud acceptance does not prove physical measurement accuracy.

Exceptions

RainPointException

The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

SetTimerMistingDefaultsAsync(RainPointHub, RainPointScheduleSnapshot, TimeSpan?, TimeSpan?, CancellationToken)

Sets saved misting on/off defaults, each 5..3600 whole seconds. A null value restores that field's app-default sentinel. Does not start misting.

public Task SetTimerMistingDefaultsAsync(RainPointHub hub, RainPointScheduleSnapshot expected, TimeSpan? runTime, TimeSpan? interval, CancellationToken cancellationToken = default)

Parameters

hub RainPointHub

A hub discovered through its home in the current account; its child list identifies valid RF addresses and models.

expected RainPointScheduleSnapshot

An unused, current schedule snapshot observation from this session. Read again after any submitted write attempt.

runTime TimeSpan?

The saved misting burst duration, from 5 through 3600 whole seconds, or null for the app-default sentinel.

interval TimeSpan?

The saved misting pause interval, or null for the app-default sentinel.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task

A task that completes when the operation finishes. A successful cloud write is not physical-device confirmation.

Exceptions

RainPointException

The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

SetTimerMoistureStopAsync(RainPointHub, RainPointScheduleSnapshot, int?, CancellationToken)

Sets the saved moisture stop threshold (1..100%), or disables it with null. Requires an associated sensor to enable.

public Task SetTimerMoistureStopAsync(RainPointHub hub, RainPointScheduleSnapshot expected, int? percent, CancellationToken cancellationToken = default)

Parameters

hub RainPointHub

A hub discovered through its home in the current account; its child list identifies valid RF addresses and models.

expected RainPointScheduleSnapshot

An unused, current schedule snapshot observation from this session. Read again after any submitted write attempt.

percent int?

The soil-moisture stop threshold from 1 through 100 percent, or null to disable it.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task

A task that completes when the operation finishes. A successful cloud write is not physical-device confirmation.

Exceptions

RainPointException

The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

SetTimerMoistureWateringRuleAsync(RainPointHub, RainPointScheduleSnapshot, RainPointMoistureWateringRule, CancellationToken)

Replaces one zone's automatic low-moisture rule. Enabling requires an associated sensor and may cause future watering.

public Task SetTimerMoistureWateringRuleAsync(RainPointHub hub, RainPointScheduleSnapshot expected, RainPointMoistureWateringRule rule, CancellationToken cancellationToken = default)

Parameters

hub RainPointHub

A hub discovered through its home in the current account; its child list identifies valid RF addresses and models.

expected RainPointScheduleSnapshot

An unused, current schedule snapshot observation from this session. Read again after any submitted write attempt.

rule RainPointMoistureWateringRule

The complete low-moisture watering rule for the selected zone.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task

A task that completes when the operation finishes. A successful cloud write is not physical-device confirmation.

Exceptions

RainPointException

The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

SetTimerRainDelayAsync(RainPointHub, RainPointScheduleSnapshot, DateTime?, CancellationToken)

Sets one zone's rain-delay end time in the home's local calendar, to whole seconds. Null clears the field to zero. Does not send a valve stop command.

public Task SetTimerRainDelayAsync(RainPointHub hub, RainPointScheduleSnapshot expected, DateTime? endsAtLocal, CancellationToken cancellationToken = default)

Parameters

hub RainPointHub

A hub discovered through its home in the current account; its child list identifies valid RF addresses and models.

expected RainPointScheduleSnapshot

An unused, current schedule snapshot observation from this session. Read again after any submitted write attempt.

endsAtLocal DateTime?

The rain-delay end in home-local wall time with Unspecified kind, or null to clear the delay.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task

A task that completes when the operation finishes. A successful cloud write is not physical-device confirmation.

Exceptions

RainPointException

The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

SetTimerScheduleEnabledAsync(RainPointHub, RainPointScheduleSnapshot, int, bool, CancellationToken)

Enables or disables one existing plan without rewriting its timing fields.

public Task SetTimerScheduleEnabledAsync(RainPointHub hub, RainPointScheduleSnapshot expected, int index, bool enabled, CancellationToken cancellationToken = default)

Parameters

hub RainPointHub

A hub discovered through its home in the current account; its child list identifies valid RF addresses and models.

expected RainPointScheduleSnapshot

An unused, current schedule snapshot observation from this session. Read again after any submitted write attempt.

index int

The zero-based plan position in this snapshot, not a durable plan identifier.

enabled bool

Whether the selected feature or saved plan should be enabled.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task

A task that completes when the operation finishes. A successful cloud write is not physical-device confirmation.

Exceptions

RainPointException

The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

SetTimerSeasonalAdjustmentAsync(RainPointHub, RainPointScheduleSnapshot, IReadOnlyList<int>, CancellationToken)

Replaces January..December percentages (10..200) for one zone. Use a fresh snapshot before each write.

public Task SetTimerSeasonalAdjustmentAsync(RainPointHub hub, RainPointScheduleSnapshot expected, IReadOnlyList<int> percentages, CancellationToken cancellationToken = default)

Parameters

hub RainPointHub

A hub discovered through its home in the current account; its child list identifies valid RF addresses and models.

expected RainPointScheduleSnapshot

An unused, current schedule snapshot observation from this session. Read again after any submitted write attempt.

percentages IReadOnlyList<int>

Twelve seasonal duration percentages in January-to-December order, validated by the operation.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task

A task that completes when the operation finishes. A successful cloud write is not physical-device confirmation.

Exceptions

RainPointException

The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

SetTimerSoilSensorAsync(RainPointHub, RainPointScheduleSnapshot, int?, CancellationToken)

Associates an already paired compatible soil sensor, or clears the association with null. Preserves all other settings.

public Task SetTimerSoilSensorAsync(RainPointHub hub, RainPointScheduleSnapshot expected, int? sensorAddress, CancellationToken cancellationToken = default)

Parameters

hub RainPointHub

A hub discovered through its home in the current account; its child list identifies valid RF addresses and models.

expected RainPointScheduleSnapshot

An unused, current schedule snapshot observation from this session. Read again after any submitted write attempt.

sensorAddress int?

The RF address of an already paired compatible soil sensor, or null to clear the association.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task

A task that completes when the operation finishes. A successful cloud write is not physical-device confirmation.

Exceptions

ArgumentOutOfRangeException

An argument is outside the supported range described above.

ArgumentException

Choose an available paired soil sensor on this hub.

RainPointException

The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

SetZoneProfileAsync(RainPointHub, RainPointZoneProfileSnapshot, bool, IReadOnlyList<int>, CancellationToken)

Updates recommendation preferences for one zone, preserving other zones. Does not create or enable a saved plan.

public Task SetZoneProfileAsync(RainPointHub hub, RainPointZoneProfileSnapshot expected, bool recommendationsEnabled, IReadOnlyList<int> selectedOptionIds, CancellationToken cancellationToken = default)

Parameters

hub RainPointHub

A hub discovered through its home in the current account; its child list identifies valid RF addresses and models.

expected RainPointZoneProfileSnapshot

An unused, current zone profile snapshot observation from this session. Read again after any submitted write attempt.

recommendationsEnabled bool

Whether the zone's cloud recommendation preferences should be enabled; this does not enable a plan.

selectedOptionIds IReadOnlyList<int>

The selected profile-option IDs from the vendor catalog.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task

A task that completes when the operation finishes. A successful cloud write is not physical-device confirmation.

Exceptions

ArgumentNullException

A required argument is null.

ArgumentException

Use a readable profile snapshot for this hub. Select distinct valid profile options. Choose at most one current option from each profile category.

InvalidOperationException

Read the profile again before another write. Profile changed. Read again before writing. Read again; an earlier write was attempted.

RainPointException

The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

StartCycleAndSoakAsync(RainPointHub, int, int, TimeSpan, TimeSpan, TimeSpan, CancellationToken)

Starts manual cycle-and-soak: 5..1440 whole watering minutes, with 1..720 whole minutes per burst and pause.

public Task<RainPointWateringCommandResult> StartCycleAndSoakAsync(RainPointHub hub, int address, int zone, TimeSpan duration, TimeSpan wateringTime, TimeSpan pauseTime, CancellationToken cancellationToken = default)

Parameters

hub RainPointHub

A hub discovered through its home in the current account; its child list identifies valid RF addresses and models.

address int

The paired child's RF address within its hub, distinct from its cloud database ID.

zone int

The one-based zone number on the selected timer.

duration TimeSpan

The configured watering duration; use the operation's documented range and mode-specific treatment of pauses.

wateringTime TimeSpan

The watering burst length for a cyclic operation, in the mode-specific range documented above.

pauseTime TimeSpan

The pause between bursts, in the mode-specific range documented above.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task<RainPointWateringCommandResult>

A task containing cloud acceptance and any separately reported watering feedback.

Remarks

Requires HTV345FRF firmware 120 or newer. Burst cannot exceed total watering duration; pauses extend elapsed time.

Exceptions

ArgumentOutOfRangeException

A burst cannot exceed the total watering duration.

RainPointException

The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

StartDevicePairingAsync(RainPointHomeDetails, RainPointHub, RainPointProductModel, CancellationToken)

Starts the hub's RF discovery window for one supported catalog model. This can pair a device in pairing mode. The returned duration is the cloud's search window, not proof of pairing.

public Task<TimeSpan> StartDevicePairingAsync(RainPointHomeDetails home, RainPointHub expected, RainPointProductModel model, CancellationToken cancellationToken = default)

Parameters

home RainPointHomeDetails

A current home-management observation from the authenticated session.

expected RainPointHub

An unused, current hub observation from this session. Read again after any submitted write attempt.

model RainPointProductModel

The supported child product entry from the vendor catalog.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task<TimeSpan>

A task containing the typed time span result.

Exceptions

ArgumentNullException

A required argument is null.

NotSupportedException

Pairing supports the HTV345FRF timer and HCS005FRF/HCS021FRF soil sensors. The discovered hub must provide its model code.

InvalidOperationException

The selected model is no longer in the catalog.

RainPointException

The pairing response contains an invalid search duration. The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

StartMistingAsync(RainPointHub, int, int, TimeSpan, TimeSpan, TimeSpan, CancellationToken)

Starts manual misting: 1..720 whole duration minutes, with 5..3600 whole seconds per burst and pause.

public Task<RainPointWateringCommandResult> StartMistingAsync(RainPointHub hub, int address, int zone, TimeSpan duration, TimeSpan wateringTime, TimeSpan pauseTime, CancellationToken cancellationToken = default)

Parameters

hub RainPointHub

A hub discovered through its home in the current account; its child list identifies valid RF addresses and models.

address int

The paired child's RF address within its hub, distinct from its cloud database ID.

zone int

The one-based zone number on the selected timer.

duration TimeSpan

The configured watering duration; use the operation's documented range and mode-specific treatment of pauses.

wateringTime TimeSpan

The watering burst length for a cyclic operation, in the mode-specific range documented above.

pauseTime TimeSpan

The pause between bursts, in the mode-specific range documented above.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task<RainPointWateringCommandResult>

A task containing cloud acceptance and any separately reported watering feedback.

Remarks

Requires HTV345FRF firmware 120 or newer. Physical treatment of pauses remains unverified.

Exceptions

RainPointException

The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

StartWateringAsync(RainPointHub, int, int, TimeSpan, CancellationToken)

Starts normal irrigation for 60..43200 whole seconds, matching the HTV345FRF manual range.

public Task<RainPointWateringCommandResult> StartWateringAsync(RainPointHub hub, int address, int zone, TimeSpan duration, CancellationToken cancellationToken = default)

Parameters

hub RainPointHub

A hub discovered through its home in the current account; its child list identifies valid RF addresses and models.

address int

The paired child's RF address within its hub, distinct from its cloud database ID.

zone int

The one-based zone number on the selected timer.

duration TimeSpan

The configured watering duration; use the operation's documented range and mode-specific treatment of pauses.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task<RainPointWateringCommandResult>

A task containing cloud acceptance and any separately reported watering feedback.

Exceptions

ArgumentOutOfRangeException

Normal irrigation requires a whole number of seconds between 60 and 43200.

RainPointException

The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

StopWateringAsync(RainPointHub, int, int, CancellationToken)

Requests that the selected zone stop watering and returns cloud acknowledgement with optional reported state.

public Task<RainPointWateringCommandResult> StopWateringAsync(RainPointHub hub, int address, int zone, CancellationToken cancellationToken = default)

Parameters

hub RainPointHub

A hub discovered through its home in the current account; its child list identifies valid RF addresses and models.

address int

The paired child's RF address within its hub, distinct from its cloud database ID.

zone int

The one-based zone number on the selected timer.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task<RainPointWateringCommandResult>

A task containing cloud acceptance and any separately reported watering feedback.

Exceptions

RainPointException

The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

TransferHomeOwnershipAsync(RainPointHomeDetails, RainPointMember, CancellationToken)

Transfers home ownership to the selected member. This changes the caller's privileges.

public Task TransferHomeOwnershipAsync(RainPointHomeDetails expectedHome, RainPointMember expectedMember, CancellationToken cancellationToken = default)

Parameters

expectedHome RainPointHomeDetails

The current home-management observation used to validate permissions and detect conflicting changes.

expectedMember RainPointMember

The observed member belonging to the selected home.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task

A task that completes when the operation finishes. A successful cloud write is not physical-device confirmation.

Exceptions

RainPointException

The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

UpdateTimerScheduleAsync(RainPointHub, RainPointScheduleSnapshot, int, RainPointCycleAndSoakSchedule, CancellationToken)

Replaces one plan with a cycle-and-soak plan. Index is from the supplied snapshot.

public Task UpdateTimerScheduleAsync(RainPointHub hub, RainPointScheduleSnapshot expected, int index, RainPointCycleAndSoakSchedule schedule, CancellationToken cancellationToken = default)

Parameters

hub RainPointHub

A hub discovered through its home in the current account; its child list identifies valid RF addresses and models.

expected RainPointScheduleSnapshot

An unused, current schedule snapshot observation from this session. Read again after any submitted write attempt.

index int

The zero-based plan position in this snapshot, not a durable plan identifier.

schedule RainPointCycleAndSoakSchedule

The complete typed plan to validate and encode.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task

A task that completes when the operation finishes. A successful cloud write is not physical-device confirmation.

Exceptions

RainPointException

The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

UpdateTimerScheduleAsync(RainPointHub, RainPointScheduleSnapshot, int, RainPointIrrigationSchedule, CancellationToken)

Replaces one plan with a normal-irrigation plan. Index is from the supplied snapshot.

public Task UpdateTimerScheduleAsync(RainPointHub hub, RainPointScheduleSnapshot expected, int index, RainPointIrrigationSchedule schedule, CancellationToken cancellationToken = default)

Parameters

hub RainPointHub

A hub discovered through its home in the current account; its child list identifies valid RF addresses and models.

expected RainPointScheduleSnapshot

An unused, current schedule snapshot observation from this session. Read again after any submitted write attempt.

index int

The zero-based plan position in this snapshot, not a durable plan identifier.

schedule RainPointIrrigationSchedule

The complete typed plan to validate and encode.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task

A task that completes when the operation finishes. A successful cloud write is not physical-device confirmation.

Exceptions

RainPointException

The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

UpdateTimerScheduleAsync(RainPointHub, RainPointScheduleSnapshot, int, RainPointMistingSchedule, CancellationToken)

Replaces one plan with a misting plan. Index is from the supplied snapshot.

public Task UpdateTimerScheduleAsync(RainPointHub hub, RainPointScheduleSnapshot expected, int index, RainPointMistingSchedule schedule, CancellationToken cancellationToken = default)

Parameters

hub RainPointHub

A hub discovered through its home in the current account; its child list identifies valid RF addresses and models.

expected RainPointScheduleSnapshot

An unused, current schedule snapshot observation from this session. Read again after any submitted write attempt.

index int

The zero-based plan position in this snapshot, not a durable plan identifier.

schedule RainPointMistingSchedule

The complete typed plan to validate and encode.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task

A task that completes when the operation finishes. A successful cloud write is not physical-device confirmation.

Exceptions

RainPointException

The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

VerifyEmailCodeAsync(string, string, RainPointEmailVerificationPurpose, string, CancellationToken)

Verifies an emailed code and returns a token bound to this client, account and purpose.

public Task<RainPointVerifiedEmail> VerifyEmailCodeAsync(string email, string areaCode, RainPointEmailVerificationPurpose purpose, string code, CancellationToken cancellationToken = default)

Parameters

email string

The account email address.

areaCode string

The account country calling code as digits without a plus sign.

purpose RainPointEmailVerificationPurpose

The registration or password-reset purpose of the verification.

code string

The verification code received by email.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task<RainPointVerifiedEmail>

A task containing the typed verified email result.

Exceptions

RainPointException

The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.

VerifyRegistrationEmailAsync(RainPointRegistrationEmail, CancellationToken)

Checks completion of the manual registration-email route for instructions issued by this client.

public Task<RainPointVerifiedEmail> VerifyRegistrationEmailAsync(RainPointRegistrationEmail instructions, CancellationToken cancellationToken = default)

Parameters

instructions RainPointRegistrationEmail

Manual-email instructions issued by this client for the matching account.

cancellationToken CancellationToken

Cancellation for this operation; cancelling after submission does not prove that a cloud write was undone.

Returns

Task<RainPointVerifiedEmail>

A task containing the typed verified email result.

Exceptions

ArgumentNullException

A required argument is null.

ArgumentException

Use registration instructions from this client.

RainPointException

The service rejects the request or returns an unusable response.

HttpRequestException

The HTTP transport fails.

OperationCanceledException

The operation is cancelled or the HTTP request times out.