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 (scalesdurationdirectly) - 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-proAfter 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.

