OK! My first HA contribution.
I’ve been frustrated by the lack of specific lawn irrigation schedulers that don’t have a super clear way to just build a schedule, so, I made one. Rain Bird Scheduler is a custom integration that adds actual watering schedules to Rain Bird LNK controllers. The core rainbird integration can start a zone, stop the controller, and report state, but it has no scheduling of its own, which was making me vey sad.
So you describe the intent: which days, what start time, how many minutes per zone, and it compiles that into a deterministic, non-overlapping plan the controller can actually execute, one zone after another with deliberate gaps between them. You never lose track of the difference between when you asked a run to start, when it was planned to start, and when it actually started; every delay, skip, or runtime change is shown with its reason.
A few things it does:
- Real recurrence: weekdays, odd/even days, every-N-days, multiple starts per day, watering windows, sunrise/sunset ± an offset resolved daily from your HA location so schedules follow the season.
-
- Cycle+Soak: splits a zone into shorter bursts with rests so water soaks in on slopes and heavy soil, with soil/slope starting points you can edit before they ever change anything. It uses Texas A&M agro’s recommended cycle soak for a given soil type and slope. Does it all automagically. Neat stuff.
-
- Runtime adjustment — fixed, a monthly curve, a seasonal ETo curve, or any HA entity as the source; every number shows where it came from. It bases it on the “major city” nearest to you, so, nothing you have to setup.
-
- A journaled executor — it survives Home Assistant restarts without ever double-starting a zone.
-
- Rain and freeze handling — the Rain Bird rain sensor plus a software freeze guard that reads any temperature or
weather.*entity. A bit hacky but I think it does the job.
- Rain and freeze handling — the Rain Bird rain sensor plus a software freeze guard that reads any temperature or
-
- An Irrigation panel in the sidebar with six tabs, each one opening with a plain-language explainer of every control.
It never talks to the controller directly. Everything goes through the core integration’s public surface — one zone started at a time,switch.turn_offto stop, entity states to observe. It never stores your controller password or opens a second connection.
- An Irrigation panel in the sidebar with six tabs, each one opening with a plain-language explainer of every control.
Fair warning: this is β software. The code, the panel, and a large automated test suite are all done, but I have not yet validated it against real LNK/LNK2 hardware and that’s exactly what I’m hoping for help with. It turns real water valves on and off, so please run it as a beta and keep an eye on the first few cycles. If something misbehaves, the Diagnostics tab gives you a redacted dump that’s safe to paste into an issue.
Install through HACS as a custom repository for now: HACS → ⋮ → Custom repositories → add https://github.com/jgassens/RainBirdScheduler (category Integration) → install → restart → add it under Settings → Devices & Services.
Source, full docs, and screenshots are on GitHub: GitHub - jgassens/RainBirdScheduler · GitHub (MIT, not affiliated with Rain Bird). If you’ve got a Rain Bird controller, I’d really value the reports — good or bad.