View on GitHub

Irrigation Plus

Evapotranspiration-based irrigation scheduling for Home Assistant — a maintained community fork of Smart Irrigation, renamed to Irrigation Plus

Experimental features

Main page: Configuration
Previous: Sensor group configuration
Next: Distributors

The Setup → Experimental tab holds opt-in features that are off by default and still being refined — turn them on one at a time and keep an eye on things; you can switch them back off at any time without losing data. Two change how each zone's bucket is filled, one picks the forecast behind the Live bucket sensor, and a fourth gates the experimental mechanical water distributor support.

The two bucket toggles are global (they apply to every zone) and take effect from the next calculation or watering event onward.

Looking for forecast-weighted durations? That option moved out of this tab. It is now the Water less choice in the unified When rain is forecast control under Setup → When to Water. The behaviour is unchanged.

Credit bucket from observed watering

Irrigation Plus keeps its soil-moisture model honest by accounting for the water it applies. But if you water a zone by other means — a manual tap, a Home Assistant automation, your own schedule driving the valve — the integration normally doesn't know, and the bucket drifts from reality until the next weather calculation.

When enabled, Irrigation Plus watches each zone's linked valve/switch entity. Whenever that valve runs outside Irrigation Plus, the bucket is credited for the water applied. The amount is estimated from how long the valve ran and the zone's configured throughput (run time × throughput ÷ size), so the zone needs both a linked valve and a throughput set.

Notes:

Live-estimate watering

By default a zone waters once a day: the daily calculation runs — for example at 23:00 — produces a deficit, and the next scheduled run waters it off. That's correct for the daily ledger (the daily ET science needs a full day of weather), but it means a second scheduled run a few hours later finds the bucket already satisfied and does nothing. There is deliberately no "calculate every N hours" — daily ET0 can't be chopped into sub-daily pieces.

When enabled, each scheduled run instead decides and sizes itself from the live intra-day deficit shown by each zone's Live bucket sensor (the drainage-aware ET and rainfall accumulated since the last calculation — computed with a valid hourly method). This means:

The trigger honours each zone's bucket threshold (minimum deficit), so it won't churn out tiny runs — it only fires once the live deficit crosses that threshold.

The daily bucket ledger is left exactly as-is — only this run's start and duration come from the live estimate. The subtlety is avoiding a double-count: the live deficit can be deeper than the stored bucket because the intra-day ET hasn't been folded into the ledger yet. So after a live-estimate run, instead of forcing the bucket back to zero, Irrigation Plus credits the water it actually delivered (run time × throughput ÷ size, capped at maximum bucket). The leftover deficit therefore persists honestly, and when the next daily calculation subtracts the day's full ET it does so from a water-credited bucket — never subtracting the intra-day ET twice.

Example (two runs in a day). Monday's calculation leaves a zone at −5 mm. By the 07:00 run another 1 mm of ET has accrued (live deficit −6 mm) → it delivers 6 mm and the bucket is credited to +1 mm. By the 19:00 run the cumulative daytime ET is 5 mm, so the live deficit is now −4 mm → it delivers 4 mm and the bucket goes to +5 mm. At 23:00 the daily calculation subtracts the day's full ET; because the bucket only ever banked the water delivered (never had intra-day ET subtracted), the result lands on the true carryover — no double-count.

Notes:

Live-bucket forecast source

Zones whose module estimates solar radiation from the day's temperature range need the day's high and low before the day is over, so the Live bucket sensor fills in the hours it has not reached yet from a forecast. A configured weather service supplies that forecast itself. Without one, pick a Home Assistant weather entity here and its hourly forecast is used instead. The card suggests the first weather entity that offers an hourly forecast, but nothing is selected until you choose it.

Nothing is read until you pick an entity. On an install without a weather service, picking one improves the live bucket; left empty, the hours are filled from this site's own past days, which is less accurate.

The sensor's forecast_tier attribute shows which source filled the hours, and forecast_entity_id names the entity it read. The forecast is read from what the weather integration already holds, at most once every 15 minutes.

Zones that measure solar radiation but whose calculation still uses the daily equation (because they blend forecast days, or have hourly calculation off) also need the day's total radiation before the day is over. With Open-Meteo configured, the hours not yet measured come from its hourly radiation forecast, scaled to your own sensor by comparing the two over the last seven calculated days. Until a day has been compared, and with any other weather service, the rest of the day is assumed to be as clear as it has been so far, or as clear as the last seven days were while too little of today's sun has been seen to judge. The radiation_tier attribute shows which source applied. The clear-as-so-far fallback (self_contained) is the least accurate: measured against a real station, its estimate of the day's radiation was off by about a fifth at noon and by about a third at 08:00, closing to nothing by evening. The scaled forecast (service) was off by about an eighth at noon.

Mechanical water distributors

Enables Irrigation Plus's support for a mechanical pressure-distributor (for example a Gardena Water Distributor) that splits one supply into several outlets. Turning it on reveals the Distributors setup tab and a per-zone Water distributor field; leaving it off keeps the feature entirely hidden. Unlike the bucket features above this does not change any calculation — it is a new, experimental capability that could not be fully hardware-tested, so treat it as a beta and watch the first days of use closely. Full details are on the Distributors page.

Main page: Configuration
Previous: Sensor group configuration
Next: Distributors