Driver Type
Categories
- Recent Updates
- Access Control
- Amplifier
- A/V Receiver
- Climate and Pool Control
- Disc Player / Changer
- Display
- DSP
- DVR
- Irrigation / Sprinklers
- Lighting Control
- Matrix Switch
- Media Server and Player
- Multi-Room A/V
- Networking
- Power and Rack Management
- Security
- Surveillance
- Teleconferencing
- Training
- Tuner
- Utility
- Video Projector
Driver Type
Categories
- Recent Updates
- Access Control
- Amplifier
- A/V Receiver
- Climate and Pool Control
- Disc Player / Changer
- Display
- DSP
- DVR
- Irrigation / Sprinklers
- Lighting Control
- Matrix Switch
- Media Server and Player
- Multi-Room A/V
- Networking
- Power and Rack Management
- Security
- Surveillance
- Teleconferencing
- Training
- Tuner
- Utility
- Video Projector
RainMachine
By: Ryan Melena
Updated: May 22, 2026
Version: 1.2
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