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
httpClientHttpClientOptional caller-owned HTTP transport, which is not disposed by this client. Null creates an owned transport.
serviceAddressUriOptional 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
CanRefreshSession
Gets whether the current session has a refresh token available for an explicit renewal attempt.
public bool CanRefreshSession { get; }
Property Value
HasValidSession
Gets whether the locally held session is within its calculated expiry; this does not probe server validity.
public bool HasValidSession { get; }
Property Value
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
SessionExpiresAt
Local session expiry; a server-side rejection can invalidate a session earlier.
public DateTimeOffset? SessionExpiresAt { get; }
Property Value
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
hubRainPointHubA hub discovered through its home in the current account; its child list identifies valid RF addresses and models.
expectedRainPointScheduleSnapshotAn unused, current schedule snapshot observation from this session. Read again after any submitted write attempt.
scheduleRainPointCycleAndSoakScheduleThe complete typed plan to validate and encode.
cancellationTokenCancellationTokenCancellation 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
hubRainPointHubA hub discovered through its home in the current account; its child list identifies valid RF addresses and models.
expectedRainPointScheduleSnapshotAn unused, current schedule snapshot observation from this session. Read again after any submitted write attempt.
scheduleRainPointIrrigationScheduleThe complete typed plan to validate and encode.
cancellationTokenCancellationTokenCancellation 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
hubRainPointHubA hub discovered through its home in the current account; its child list identifies valid RF addresses and models.
expectedRainPointScheduleSnapshotAn unused, current schedule snapshot observation from this session. Read again after any submitted write attempt.
scheduleRainPointMistingScheduleThe complete typed plan to validate and encode.
cancellationTokenCancellationTokenCancellation 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
hubRainPointHubA hub discovered through its home in the current account; its child list identifies valid RF addresses and models.
cancellationTokenCancellationTokenCancellation 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
hubRainPointHubA hub discovered through its home in the current account; its child list identifies valid RF addresses and models.
cancellationTokenCancellationTokenCancellation 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
oldPasswordstringThe current account password.
newPasswordstringThe replacement account password.
cancellationTokenCancellationTokenCancellation 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
namestringThe nonempty display name to assign.
timeZoneNamestringThe IANA time-zone name reported in the vendor catalog.
roomsIReadOnlyList<string>Distinct, nonempty names of the rooms to create.
cancellationTokenCancellationTokenCancellation 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
expectedRainPointHomeDetailsAn unused, current home details observation from this session. Read again after any submitted write attempt.
namestringThe nonempty display name to assign.
cancellationTokenCancellationTokenCancellation 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
executingHubRainPointHubA discovered hub with reported scene-execution capability.
draftRainPointSceneDraftThe complete scene definition to save; saving can activate future automation immediately.
cancellationTokenCancellationTokenCancellation 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
expectedRainPointHomeDetailsAn unused, current home details observation from this session. Read again after any submitted write attempt.
cancellationTokenCancellationTokenCancellation 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
expectedRainPointHomeDetailsAn unused, current home details observation from this session. Read again after any submitted write attempt.
roomIdlongThe positive identifier of a room in the observed home.
cancellationTokenCancellationTokenCancellation 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
expectedRainPointSceneAn unused, current scene observation from this session. Read again after any submitted write attempt.
cancellationTokenCancellationTokenCancellation 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
hubRainPointHubA hub discovered through its home in the current account; its child list identifies valid RF addresses and models.
expectedRainPointScheduleSnapshotAn unused, current schedule snapshot observation from this session. Read again after any submitted write attempt.
indexintThe zero-based plan position in this snapshot, not a durable plan identifier.
cancellationTokenCancellationTokenCancellation 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
hubRainPointHubA hub discovered through its home in the current account; its child list identifies valid RF addresses and models.
expectedRainPointScheduleSnapshotAn unused, current schedule snapshot observation from this session. Read again after any submitted write attempt.
cancellationTokenCancellationTokenCancellation 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
homeIdlongThe positive cloud home identifier.
queryRainPointEventQueryOptional history filters and a bounded result limit; null uses the default query.
cancellationTokenCancellationTokenCancellation 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
homeIdlongThe positive cloud home identifier.
cancellationTokenCancellationTokenCancellation 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
cancellationTokenCancellationTokenCancellation 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
cancellationTokenCancellationTokenCancellation 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
hubRainPointHubA hub discovered through its home in the current account; its child list identifies valid RF addresses and models.
cancellationTokenCancellationTokenCancellation 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
hubRainPointHubA hub discovered through its home in the current account; its child list identifies valid RF addresses and models.
cancellationTokenCancellationTokenCancellation 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
homeIdlongThe positive cloud home identifier.
cancellationTokenCancellationTokenCancellation 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
cancellationTokenCancellationTokenCancellation 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
homeIdlongThe positive cloud home identifier.
cancellationTokenCancellationTokenCancellation 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
cancellationTokenCancellationTokenCancellation 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
emailstringThe account email address.
areaCodestringThe account country calling code as digits without a plus sign.
cancellationTokenCancellationTokenCancellation 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
homeRainPointHomeDetailsA current home-management observation from the authenticated session.
roomIdlongThe positive identifier of a room in the observed home.
cancellationTokenCancellationTokenCancellation 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
homeIdlongThe positive cloud home identifier.
sceneIdlongThe cloud scene identifier; null leaves scene history unfiltered where permitted.
cancellationTokenCancellationTokenCancellation 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
homeIdlongThe positive cloud home identifier.
cancellationTokenCancellationTokenCancellation 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
homeIdlongThe positive cloud home identifier.
fromDateTimeOffsetThe inclusive lower cloud-timestamp bound, after the Unix epoch.
throughDateTimeOffsetThe inclusive upper cloud-timestamp bound, after the Unix epoch.
pageintThe zero-based page index.
pageSizeintThe requested maximum records per page, from 1 through 100 for scene history.
sceneIdlong?The cloud scene identifier; null leaves scene history unfiltered where permitted.
cancellationTokenCancellationTokenCancellation 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
homeIdlongThe positive cloud home identifier.
cancellationTokenCancellationTokenCancellation 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
cancellationTokenCancellationTokenCancellation 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
hubRainPointHubA hub discovered through its home in the current account; its child list identifies valid RF addresses and models.
addressintThe paired child's RF address within its hub, distinct from its cloud database ID.
cancellationTokenCancellationTokenCancellation 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
hubRainPointHubA hub discovered through its home in the current account; its child list identifies valid RF addresses and models.
addressintThe paired child's RF address within its hub, distinct from its cloud database ID.
zoneintThe one-based zone number on the selected timer.
cancellationTokenCancellationTokenCancellation 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
hubRainPointHubA hub discovered through its home in the current account; its child list identifies valid RF addresses and models.
addressintThe paired child's RF address within its hub, distinct from its cloud database ID.
cancellationTokenCancellationTokenCancellation 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
hubRainPointHubA hub discovered through its home in the current account; its child list identifies valid RF addresses and models.
addressintThe paired child's RF address within its hub, distinct from its cloud database ID.
zoneintThe one-based zone number on the selected timer.
periodRainPointUsagePeriodDaily or monthly aggregation of water usage.
startDateDateTimeThe inclusive first home-calendar date at midnight with Unspecified kind.
endDateDateTimeThe inclusive final home-calendar date at midnight with Unspecified kind.
cancellationTokenCancellationTokenCancellation 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
homeRainPointHomeDetailsA current home-management observation from the authenticated session.
accessRainPointWeatherAccessCaller-supplied weather-service signing credentials, separate from the RainPoint login.
hoursintThe requested hourly-forecast horizon, up to 48 hours.
daysintThe requested daily-forecast horizon, up to seven days.
cancellationTokenCancellationTokenCancellation 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
hubRainPointHubA hub discovered through its home in the current account; its child list identifies valid RF addresses and models.
addressintThe paired child's RF address within its hub, distinct from its cloud database ID.
zoneintThe one-based zone number on the selected timer.
cancellationTokenCancellationTokenCancellation 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
cancellationTokenCancellationTokenCancellation 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
hubRainPointHubA hub discovered through its home in the current account; its child list identifies valid RF addresses and models.
addressintThe paired child's RF address within its hub, distinct from its cloud database ID.
zoneintThe one-based zone number on the selected timer.
cancellationTokenCancellationTokenCancellation 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
expectedRainPointHomeDetailsAn unused, current home details observation from this session. Read again after any submitted write attempt.
emailstringThe account email address.
cancellationTokenCancellationTokenCancellation 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
expectedRainPointHomeDetailsAn unused, current home details observation from this session. Read again after any submitted write attempt.
cancellationTokenCancellationTokenCancellation 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
emailstringThe account email address.
passwordstringThe account password; it is not persisted or logged by the client.
areaCodestringThe account country calling code as digits without a plus sign.
cancellationTokenCancellationTokenCancellation 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
cancellationTokenCancellationTokenCancellation 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
cancellationTokenCancellationTokenCancellation 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
verifiedRainPointVerifiedEmailAn unused verification result from this client matching the account and requested operation.
passwordstringThe account password; it is not persisted or logged by the client.
countryIsoCodestringThe caller-selected country ISO code for registration.
deviceIdstringThe caller-selected app/device identity for the account operation.
agreementVersionstringThe accepted agreement version, where supplied by the registration flow.
cancellationTokenCancellationTokenCancellation 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
homeRainPointHomeDetailsA current home-management observation from the authenticated session.
expectedRainPointHubAn unused, current hub observation from this session. Read again after any submitted write attempt.
addressintThe paired child's RF address within its hub, distinct from its cloud database ID.
cancellationTokenCancellationTokenCancellation 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
homeRainPointHomeDetailsA current home-management observation from the authenticated session.
expectedRainPointHubAn unused, current hub observation from this session. Read again after any submitted write attempt.
cancellationTokenCancellationTokenCancellation 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
expectedHomeRainPointHomeDetailsThe current home-management observation used to validate permissions and detect conflicting changes.
expectedMemberRainPointMemberThe observed member belonging to the selected home.
cancellationTokenCancellationTokenCancellation 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
homeRainPointHomeDetailsA current home-management observation from the authenticated session.
hubRainPointHubA hub discovered through its home in the current account; its child list identifies valid RF addresses and models.
addressintThe paired child's RF address within its hub, distinct from its cloud database ID.
namestringThe nonempty display name to assign.
cancellationTokenCancellationTokenCancellation 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
expectedRainPointHomeDetailsAn unused, current home details observation from this session. Read again after any submitted write attempt.
namestringThe nonempty display name to assign.
cancellationTokenCancellationTokenCancellation 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
homeRainPointHomeDetailsA current home-management observation from the authenticated session.
expectedRainPointHubAn unused, current hub observation from this session. Read again after any submitted write attempt.
namestringThe nonempty display name to assign.
cancellationTokenCancellationTokenCancellation 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
expectedRainPointHomeDetailsAn unused, current home details observation from this session. Read again after any submitted write attempt.
roomIdlongThe positive identifier of a room in the observed home.
namestringThe nonempty display name to assign.
cancellationTokenCancellationTokenCancellation 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
expectedRainPointSceneAn unused, current scene observation from this session. Read again after any submitted write attempt.
executingHubRainPointHubA discovered hub with reported scene-execution capability.
replacementRainPointSceneDraftThe complete supported replacement definition, including all intended conditions and actions.
cancellationTokenCancellationTokenCancellation 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
verifiedRainPointVerifiedEmailAn unused verification result from this client matching the account and requested operation.
newPasswordstringThe replacement account password.
cancellationTokenCancellationTokenCancellation 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
expectedRainPointInvitationAn unused, current invitation observation from this session. Read again after any submitted write attempt.
acceptboolTrue to accept the invitation; false to decline it.
cancellationTokenCancellationTokenCancellation 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
emailstringThe account email address.
areaCodestringThe account country calling code as digits without a plus sign.
purposeRainPointEmailVerificationPurposeThe registration or password-reset purpose of the verification.
cancellationTokenCancellationTokenCancellation 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
expectedRainPointAccountProfileAn unused, current account profile observation from this session. Read again after any submitted write attempt.
nicknamestringThe new account display nickname.
cancellationTokenCancellationTokenCancellation 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
expectedRainPointAccountProfileAn unused, current account profile observation from this session. Read again after any submitted write attempt.
photoUriThe HTTPS address of an already uploaded profile image; the method does not upload or fetch an image.
cancellationTokenCancellationTokenCancellation 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
hubRainPointHubA hub discovered through its home in the current account; its child list identifies valid RF addresses and models.
enabledboolWhether the selected feature or saved plan should be enabled.
cancellationTokenCancellationTokenCancellation 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
expectedRainPointHomeDetailsAn unused, current home details observation from this session. Read again after any submitted write attempt.
currencyRainPointCurrencyThe selected currency entry from the vendor home-options catalog.
cancellationTokenCancellationTokenCancellation 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
expectedRainPointHomeDetailsAn unused, current home details observation from this session. Read again after any submitted write attempt.
unitsRainPointDisplayUnitsThe desired app display preferences; typed client readings retain their documented units.
cancellationTokenCancellationTokenCancellation 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
expectedRainPointHomeDetailsAn unused, current home details observation from this session. Read again after any submitted write attempt.
latitudedecimalLatitude in decimal degrees, from -90 through 90.
longitudedecimalLongitude in decimal degrees, from -180 through 180.
cancellationTokenCancellationTokenCancellation 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
expectedRainPointHomeDetailsAn unused, current home details observation from this session. Read again after any submitted write attempt.
timeZoneNamestringThe IANA time-zone name reported in the vendor catalog.
cancellationTokenCancellationTokenCancellation 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
expectedHomeRainPointHomeDetailsThe current home-management observation used to validate permissions and detect conflicting changes.
expectedMemberRainPointMemberThe observed member belonging to the selected home.
roleRainPointMemberRoleThe supported membership role to assign; ownership transfer uses its separate operation.
cancellationTokenCancellationTokenCancellation 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
expectedRainPointNotificationPreferencesAn unused, current notification preferences observation from this session. Read again after any submitted write attempt.
mobileEnabledboolWhether the known mobile-notification preference should be enabled.
emailEnabledboolWhether the known email-notification preference should be enabled.
cancellationTokenCancellationTokenCancellation 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
hubRainPointHubA hub discovered through its home in the current account; its child list identifies valid RF addresses and models.
channelintThe supported RF receive channel number, from 1 through 3; this is not a Wi-Fi channel.
cancellationTokenCancellationTokenCancellation 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
expectedRainPointHomeDetailsAn unused, current home details observation from this session. Read again after any submitted write attempt.
roomIdlongThe positive identifier of a room in the observed home.
assignmentsIReadOnlyList<RainPointRoomDevice>The complete replacement room assignments, using discovered hubs, children and optional zones.
cancellationTokenCancellationTokenCancellation 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
expectedRainPointSceneAn unused, current scene observation from this session. Read again after any submitted write attempt.
enabledboolWhether the selected feature or saved plan should be enabled.
cancellationTokenCancellationTokenCancellation 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
hubRainPointHubA hub discovered through its home in the current account; its child list identifies valid RF addresses and models.
expectedRainPointScheduleSnapshotAn unused, current schedule snapshot observation from this session. Read again after any submitted write attempt.
durationTimeSpan?The configured watering duration; use the operation's documented range and mode-specific treatment of pauses.
cancellationTokenCancellationTokenCancellation 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
hubRainPointHubA hub discovered through its home in the current account; its child list identifies valid RF addresses and models.
expectedRainPointScheduleSnapshotAn unused, current schedule snapshot observation from this session. Read again after any submitted write attempt.
percentageintThe signed flow-calibration correction in percent, from -20 through 20.
cancellationTokenCancellationTokenCancellation 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
hubRainPointHubA hub discovered through its home in the current account; its child list identifies valid RF addresses and models.
expectedRainPointScheduleSnapshotAn unused, current schedule snapshot observation from this session. Read again after any submitted write attempt.
runTimeTimeSpan?The saved misting burst duration, from 5 through 3600 whole seconds, or null for the app-default sentinel.
intervalTimeSpan?The saved misting pause interval, or null for the app-default sentinel.
cancellationTokenCancellationTokenCancellation 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
hubRainPointHubA hub discovered through its home in the current account; its child list identifies valid RF addresses and models.
expectedRainPointScheduleSnapshotAn unused, current schedule snapshot observation from this session. Read again after any submitted write attempt.
percentint?The soil-moisture stop threshold from 1 through 100 percent, or null to disable it.
cancellationTokenCancellationTokenCancellation 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
hubRainPointHubA hub discovered through its home in the current account; its child list identifies valid RF addresses and models.
expectedRainPointScheduleSnapshotAn unused, current schedule snapshot observation from this session. Read again after any submitted write attempt.
ruleRainPointMoistureWateringRuleThe complete low-moisture watering rule for the selected zone.
cancellationTokenCancellationTokenCancellation 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
hubRainPointHubA hub discovered through its home in the current account; its child list identifies valid RF addresses and models.
expectedRainPointScheduleSnapshotAn unused, current schedule snapshot observation from this session. Read again after any submitted write attempt.
endsAtLocalDateTime?The rain-delay end in home-local wall time with Unspecified kind, or null to clear the delay.
cancellationTokenCancellationTokenCancellation 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
hubRainPointHubA hub discovered through its home in the current account; its child list identifies valid RF addresses and models.
expectedRainPointScheduleSnapshotAn unused, current schedule snapshot observation from this session. Read again after any submitted write attempt.
indexintThe zero-based plan position in this snapshot, not a durable plan identifier.
enabledboolWhether the selected feature or saved plan should be enabled.
cancellationTokenCancellationTokenCancellation 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
hubRainPointHubA hub discovered through its home in the current account; its child list identifies valid RF addresses and models.
expectedRainPointScheduleSnapshotAn unused, current schedule snapshot observation from this session. Read again after any submitted write attempt.
percentagesIReadOnlyList<int>Twelve seasonal duration percentages in January-to-December order, validated by the operation.
cancellationTokenCancellationTokenCancellation 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
hubRainPointHubA hub discovered through its home in the current account; its child list identifies valid RF addresses and models.
expectedRainPointScheduleSnapshotAn unused, current schedule snapshot observation from this session. Read again after any submitted write attempt.
sensorAddressint?The RF address of an already paired compatible soil sensor, or null to clear the association.
cancellationTokenCancellationTokenCancellation 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
hubRainPointHubA hub discovered through its home in the current account; its child list identifies valid RF addresses and models.
expectedRainPointZoneProfileSnapshotAn unused, current zone profile snapshot observation from this session. Read again after any submitted write attempt.
recommendationsEnabledboolWhether the zone's cloud recommendation preferences should be enabled; this does not enable a plan.
selectedOptionIdsIReadOnlyList<int>The selected profile-option IDs from the vendor catalog.
cancellationTokenCancellationTokenCancellation 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
hubRainPointHubA hub discovered through its home in the current account; its child list identifies valid RF addresses and models.
addressintThe paired child's RF address within its hub, distinct from its cloud database ID.
zoneintThe one-based zone number on the selected timer.
durationTimeSpanThe configured watering duration; use the operation's documented range and mode-specific treatment of pauses.
wateringTimeTimeSpanThe watering burst length for a cyclic operation, in the mode-specific range documented above.
pauseTimeTimeSpanThe pause between bursts, in the mode-specific range documented above.
cancellationTokenCancellationTokenCancellation 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
homeRainPointHomeDetailsA current home-management observation from the authenticated session.
expectedRainPointHubAn unused, current hub observation from this session. Read again after any submitted write attempt.
modelRainPointProductModelThe supported child product entry from the vendor catalog.
cancellationTokenCancellationTokenCancellation for this operation; cancelling after submission does not prove that a cloud write was undone.
Returns
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
hubRainPointHubA hub discovered through its home in the current account; its child list identifies valid RF addresses and models.
addressintThe paired child's RF address within its hub, distinct from its cloud database ID.
zoneintThe one-based zone number on the selected timer.
durationTimeSpanThe configured watering duration; use the operation's documented range and mode-specific treatment of pauses.
wateringTimeTimeSpanThe watering burst length for a cyclic operation, in the mode-specific range documented above.
pauseTimeTimeSpanThe pause between bursts, in the mode-specific range documented above.
cancellationTokenCancellationTokenCancellation 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
hubRainPointHubA hub discovered through its home in the current account; its child list identifies valid RF addresses and models.
addressintThe paired child's RF address within its hub, distinct from its cloud database ID.
zoneintThe one-based zone number on the selected timer.
durationTimeSpanThe configured watering duration; use the operation's documented range and mode-specific treatment of pauses.
cancellationTokenCancellationTokenCancellation 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
hubRainPointHubA hub discovered through its home in the current account; its child list identifies valid RF addresses and models.
addressintThe paired child's RF address within its hub, distinct from its cloud database ID.
zoneintThe one-based zone number on the selected timer.
cancellationTokenCancellationTokenCancellation 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
expectedHomeRainPointHomeDetailsThe current home-management observation used to validate permissions and detect conflicting changes.
expectedMemberRainPointMemberThe observed member belonging to the selected home.
cancellationTokenCancellationTokenCancellation 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
hubRainPointHubA hub discovered through its home in the current account; its child list identifies valid RF addresses and models.
expectedRainPointScheduleSnapshotAn unused, current schedule snapshot observation from this session. Read again after any submitted write attempt.
indexintThe zero-based plan position in this snapshot, not a durable plan identifier.
scheduleRainPointCycleAndSoakScheduleThe complete typed plan to validate and encode.
cancellationTokenCancellationTokenCancellation 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
hubRainPointHubA hub discovered through its home in the current account; its child list identifies valid RF addresses and models.
expectedRainPointScheduleSnapshotAn unused, current schedule snapshot observation from this session. Read again after any submitted write attempt.
indexintThe zero-based plan position in this snapshot, not a durable plan identifier.
scheduleRainPointIrrigationScheduleThe complete typed plan to validate and encode.
cancellationTokenCancellationTokenCancellation 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
hubRainPointHubA hub discovered through its home in the current account; its child list identifies valid RF addresses and models.
expectedRainPointScheduleSnapshotAn unused, current schedule snapshot observation from this session. Read again after any submitted write attempt.
indexintThe zero-based plan position in this snapshot, not a durable plan identifier.
scheduleRainPointMistingScheduleThe complete typed plan to validate and encode.
cancellationTokenCancellationTokenCancellation 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
emailstringThe account email address.
areaCodestringThe account country calling code as digits without a plus sign.
purposeRainPointEmailVerificationPurposeThe registration or password-reset purpose of the verification.
codestringThe verification code received by email.
cancellationTokenCancellationTokenCancellation 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
instructionsRainPointRegistrationEmailManual-email instructions issued by this client for the matching account.
cancellationTokenCancellationTokenCancellation 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.