RainMachine Pro — Local integration with zones, programs, restrictions and real-time state

RainMachine Pro for Home Assistant

A custom integration for RainMachine smart irrigation controllers that works entirely on your local network — no cloud, no external dependencies.

This integration is designed as a drop-in replacement for the official Home Assistant RainMachine integration, with additional entities, real-time zone state, and full control over zones and programs directly from Home Assistant.


Why this instead of the official integration?

  • More entities: switches, binary sensors, select, button, firmware update, run completion time sensors
  • Zone and program switches reflect state changes from the app or scheduled runs within seconds (configurable fast polling, default 10 s)
  • Planned irrigation durations per zone and per program, with weather-adaptive vs fixed detection
  • Per-program duration adjustment directly from Home Assistant (+/− buttons)
  • Full multilanguage support: English, Italian, French, German, Spanish

What you get

Switches

  • Start/stop each zone manually (10 min default)
  • Enable/disable each zone
  • Start/stop each program — with per-zone planned durations, total duration, next/last run, frequency, and enabled state as attributes (updated every 10 s)
  • Enable/disable each program
  • Freeze protection on/off
  • Extra water on hot days on/off

Binary sensors

  • Freeze restriction active
  • Hourly / month / weekday / rain delay restriction active
  • Rain sensor and flow sensor triggered

Sensors

  • Today's total watering duration (with long-term statistics)
  • Per-zone watering details (scheduled vs actual, skip reason, planned duration per program)
  • Run completion time per zone and per program (live countdown)
  • Rain delay status
  • Weather parser last run timestamps
  • 7-day forecast (temperature, rain, ET0, condition)

Program duration adjustment

  • Per-program + and buttons to scale all zone durations proportionally
  • Configurable step: 5%, 10%, 15%, or 20% (slider entity per program, default 10%)
  • Works for both weather-adaptive zones (scales userPercentage) and fixed-duration zones (scales duration directly)
  • Example: press + with step 10% → zone A 1200 s → 1320 s, zone B 600 s → 660 s

Other

  • Select: freeze protection temperature threshold (−7 °C to +4 °C)
  • Number: rain delay (0–14 days), adjustment step per program (5–20%)
  • Button: reboot controller, increase/decrease duration per program
  • Update: firmware update status and trigger

Planned duration attributes

Each program switch exposes the planned irrigation duration for every active zone as attributes — updated every 10 seconds via the fast coordinator:

Fronte parco: 1615 # seconds Fronte parco_type: adattiva Laterale: 1325 Laterale_type: adattiva total_duration: 5655 enabled: on next_run: 2026-04-21 04:10 frequency: Ogni giorno 

Each zone sensor exposes the planned duration per program:

Estate: 1615 Estate_type: adattiva Concime: 900 Concime_type: fissa 

Duration type is adaptive (weather-driven, computed from WaterSense referenceTime × userPercentage) or fixed (explicit duration set in the app), translated in all supported languages. Values are integers (seconds), compatible with Home Assistant statistics and template sensors.


How it works

The integration uses two polling coordinators:

  • Fast coordinator (default 10 s, configurable 5–60 s) — polls zones, programs and the watering queue for real-time state; also drives program switch attributes
  • Slow coordinator (default 5 min, configurable 1–60 min) — polls weather parsers, forecast, restrictions, provision, firmware info, and static zone properties

Zone and program names are taken directly from your RainMachine configuration, so they appear in Home Assistant exactly as you named them in the app.


Installation

Available on HACS (pending default catalog approval) or manual install.

https://github.com/yashijoe/ha-rainmachine-pro

After installation, go to Settings → Devices & Services → Add Integration and search for RainMachine Pro. You only need your device's local IP address and password.


Entities:

Lovelace:


Feedback welcome

This is an actively maintained project. Bug reports, feature requests and pull requests are welcome on GitHub. If you're already using the official RainMachine integration and want to migrate, feel free to ask here.

It does not. The official integration lists local polling as it’s IOT Class. I personally never would have bought RainMachine units if they required cloud connectivity.

Why make a new integration instead of adding any of these improvements to the core integration?

Hi Rohan Kapoor, you are right about the cloud API, it was a misinterpretation of the official integration documentation, which I have now corrected.

Why not add these new features to the core integration?
RainMachine products have been discontinued for a couple of years now, and for the same amount of time they have been asking you to subscribe to access your RainMachine data via cloud (unless you set up a port forward).

I don’t think it is a product that appeals to a wide audience, and I haven’t seen any updates to the official integration for a long time.
I preferred to work based on my own specific needs rather than trying to convince the official integration developer to add them.

Some may seem trivial, such as the time elapsed since the last weather update, but if you own a RainMachine you will know that the system sometimes gets stuck and you need to reboot it or disconnect and reconnect the Wi-Fi.

Either way, the code is on GitHub and if the official integration developer wanted to incorporate the new entities, I would be more than happy.

Added button to increase/decrease duration per program