Driver Details

New Community

RainMachine

By: Ryan Melena
Updated: May 22, 2026
Version: 1.2
Download Driver
Rating: 5.0 (1 rating)
Log in to rate this driver

Driver providing status and management of RainMachine irrigation controllers.

RainMachine irrigation controllers are a weather-aware drop-in replacement for any standard irrigation controller.  The controllers can be integrated with RTI via WiFi or wired ethernet.

RainMachine Driver

Settings

Model: RainMachine device model

IP Address: Hostname or IP address of RainMachine device

Port: HTTPS API port of RainMachine device (default: 8080)

Program Count: Number of programs configured on RainMachine device (default: 3)

Zone Count: Number of zones used on RainMachine device (default: 8, max: 16)

Password: RainMachine device password, used for API access

Enable Polling: Allows driver to poll RainMachine device for status automatically; if disabled, data will only be updated when Refresh is called (default: true)

Polling Interval: Seconds between data polling events (default: 60, only shown when Enable Polling is true)

Enable Trace: Enables verbose debug logging to the RTI controller log (hidden debug setting, default: false)

Events

Refresh All Data: Requests updated programs, zones, and restrictions from the device

Select Program From List (Index): Sets the selected program to the item at the given zero-based list index; updates all Selected Program variables

Select Zone From List (Index): Sets the selected zone to the item at the given zero-based list index; updates all Selected Zone variables

Start Program (Program): Starts the specified program by number (1 through Program Count)

Stop Program (Program): Stops the specified program by number (1 through Program Count)

Start Selected Program: Starts the currently selected program

Stop Selected Program: Stops the currently selected program

Start Zone (Zone, Seconds): Starts the specified zone for the given duration in seconds

Stop Zone (Zone): Stops the specified zone

Start Selected Zone (Seconds): Starts the currently selected zone for the given duration in seconds

Stop Selected Zone: Stops the currently selected zone

Variables

Variables are updated automatically when polling fires or after any command that changes device state. All variable names are case-sensitive.

Current Restrictions

CurrentRestrictionHourly (boolean): Hourly watering restriction is active

CurrentRestrictionFreeze (boolean): Freeze protection restriction is active

CurrentRestrictionMonth (boolean): Monthly restriction is active

CurrentRestrictionWeekDay (boolean): Weekday restriction is active

CurrentRestrictionRainDelay (boolean): Rain delay restriction is active

CurrentRestrictionRainDelayCounter (integer): Remaining rain delay in seconds

CurrentRestrictionRainSensor (boolean): Rain sensor restriction is active

CurrentRestrictionLastLeakDetected (integer): Unix timestamp of last leak detection event

Programs

ProgramList (list): Program names, populated up to Program Count entries

RunningProgramName (string): Name of the currently running program; empty string if none

RunningProgramStartTime (string): Start time of the currently running program

The following variables are written for each program, where {N} is the program number (1 through Program Count):

Program{N}Uid (integer): Unique identifier

Program{N}Name (string)

Program{N}Active (boolean): Whether the program is enabled

Program{N}Status (integer): 0 = Not Running, 1 = Running, 2 = Queued

Program{N}StartTime (string)

Program{N}StartTimeParams (string): Formatted start time offset, e.g. “10m After Sunrise”

Program{N}NextRun (string): ISO date of next scheduled run, e.g. “2021-07-25”; empty if none

Program{N}StartDate (string): ISO date the program becomes active

Program{N}EndDate (string): ISO date the program expires

Program{N}YearlyRecurring (boolean)

Program{N}FrequencyType (integer): 0 = Daily, 1 = Every N Days, 2 = Weekdays, 4 = Odd/Even Day

Program{N}FrequencyParam (string): Frequency parameter value

Program{N}FreqModified (integer): Weather-based adjustment percentage (0–100)

Program{N}Cycles (integer): Number of cycles

Program{N}Soak (integer): Soak time between cycles in seconds

Program{N}CsOn (boolean): Cycle and soak enabled

Program{N}Delay (integer): Pre-run delay in seconds

Program{N}DelayOn (boolean): Pre-run delay enabled

Program{N}IgnoreInternetWeather (boolean)

Program{N}UseWaterSense (boolean)

Program{N}FutureField1 (integer): Forecasted rain amount

Program{N}SimulationExpired (boolean)

Per-zone watering times within each program, where {Z} is the zone ID:

Program{N}Zone{Z}Id (integer), Program{N}Zone{Z}Name (string), Program{N}Zone{Z}Order (integer), Program{N}Zone{Z}Duration (integer, seconds), Program{N}Zone{Z}Active (boolean), Program{N}Zone{Z}UserPercentage (string), Program{N}Zone{Z}MinRuntimeCoef (integer)

Zones

ZoneList (list): Zone names, populated up to Zone Count entries

RunningZoneName (string): Name of the currently running zone; empty string if none

RunningZoneRemaining (integer): Remaining run time of the running zone in seconds

The following variables are written for each zone, where {N} is the zone number (1 through Zone Count):

Zone{N}Name (string)

Zone{N}Active (boolean): Whether the zone is enabled

Zone{N}State (integer): 0 = Not Running, 1 = Running, 2 = Queued

Zone{N}Remaining (integer): Remaining run time in seconds

Zone{N}MachineDuration (integer): Scheduled duration in seconds

Zone{N}UserDuration (integer): User-configured duration in seconds

Zone{N}Cycle (integer): Current cycle number

Zone{N}NumberOfCycles (integer): Total number of cycles

Zone{N}Restriction (boolean): Zone is currently restricted

Selected Program

Updated by the Select Program From List event and after each state refresh. Mirrors the Program{N} variables for the currently selected program:

SelectedProgramUid, SelectedProgramName, SelectedProgramActive, SelectedProgramStatus, SelectedProgramStartTime, SelectedProgramStartTimeParams, SelectedProgramNextRun, SelectedProgramStartDate, SelectedProgramEndDate, SelectedProgramYearlyRecurring, SelectedProgramFrequencyType, SelectedProgramFrequencyParam, SelectedProgramFreqModified, SelectedProgramCycles, SelectedProgramSoak, SelectedProgramCsOn, SelectedProgramDelay, SelectedProgramDelayOn, SelectedProgramIgnoreInternetWeather, SelectedProgramUseWaterSense, SelectedProgramFutureField1, SelectedProgramSimulationExpired

Per-zone watering times for the selected program, where {N} is 1 through Zone Count:

SelectedProgramZone{N}Id, SelectedProgramZone{N}Name, SelectedProgramZone{N}Order, SelectedProgramZone{N}Duration, SelectedProgramZone{N}Active, SelectedProgramZone{N}UserPercentage, SelectedProgramZone{N}MinRuntimeCoef

Selected Zone

Updated by the Select Zone From List event and after each state refresh. Mirrors the Zone{N} variables for the currently selected zone:

SelectedZoneName, SelectedZoneActive, SelectedZoneState, SelectedZoneRemaining, SelectedZoneMachineDuration, SelectedZoneUserDuration, SelectedZoneCycle, SelectedZoneNumberOfCycles, SelectedZoneRestriction