Automation

Best Irrigation Controllers for Home Assistant: Local vs Cloud

This post contains affiliate links. If you buy through them, we may earn a small commission at no extra cost to you. Learn more.

The first warm week of spring is when you find out whether your sprinklers answer to Home Assistant or to a server in another state. A cloud controller still waters on its own schedule when the internet drops. Rain skips, soil-moisture automations and dashboard buttons stop until the link comes back, though. So the best irrigation controller for Home Assistant is the one with a local path in, and only a few popular brands have one.

Original content from computingforgeeks.com - post 182695

We sorted the picks by how each controller talks to Home Assistant. OpenSprinkler uses its local HTTP API, Rain Bird goes through the LNK2 module, and Rachio goes through its cloud. ESPHome relay builds use the native API, and a Zigbee valve covers the garden tap. The last section shows how weather-based watering works when Home Assistant does the maths instead of the vendor. We confirmed every integration’s IoT class, version and Amazon listing in November 2026 against the Home Assistant docs, GitHub releases and the makers’ pages.

Pick a sprinkler controller by its path in

Read the “Path into Home Assistant” column first. It decides what keeps working when the internet or the vendor’s servers do not. Local polling and local push both stay inside your network, while cloud push needs Home Assistant reachable from the internet. Prices are bands from the live listings, so check the current price before buying.

JobControllerPath into Home AssistantZonesPrice band
Local control, no accountOpenSprinklerHACS integration, local polling8, up to 72 with expanders$130 to $200 direct
You already own Rain BirdRain Bird LNK2 on an ESP-TM2Core rainbird, local polling4 to 12 on ESP-TM2about $100 module, about $135 controller
Best app and weather dataRachio 3Core rachio, cloud push16 (also 8)about $235
DIY with ESPHomeSonoff 4CH Pro R3ESPHome, local push4 relaysabout $35 plus power supplies
Hose tap or garden bedSonoff Hydro ONEZigbee2MQTT, local1 tapabout $37

Choose where the schedule lives

Every controller here can run its own program, and that is worth keeping. If Home Assistant reboots during an update at 5 a.m., a controller with its own schedule still waters the lawn. One that only opens valves on command from Home Assistant does not. So the real question is which side owns the decision to water, because that changes how much each integration has to do.

We see three workable splits, and the controller you buy should fit the one you want:

  1. The controller owns the schedule and its own weather adjustment, and Home Assistant only watches, pauses and adds rain delays. OpenSprinkler and Rain Bird fit this well.
  2. Home Assistant owns the schedule through the Smart Irrigation integration, works out each zone’s run time from evapotranspiration, and opens the valves itself. ESPHome builds and the Zigbee valve suit this best because they have no useful brain of their own.
  3. The controller keeps a fallback program, and Home Assistant overrides it with skips and adjusted run times on most days. That’s the safest split, and it works with any local path.

The diagram shows the local paths next to the cloud lane. Everything inside the green box keeps talking to Home Assistant with the internet unplugged, and the dashed line from the vendor clouds is the one that goes quiet.

Diagram of how irrigation controllers reach Home Assistant: OpenSprinkler over HACS, Rain Bird LNK2 local polling, ESPHome native API, Sonoff Hydro ONE via Zigbee2MQTT, and vendor clouds over the internet
OpenSprinkler, Rain Bird, ESPHome and Zigbee valves all reach Home Assistant without leaving the house. Rachio, Hydrawise and B-hyve go through the vendor’s servers.

One myth to clear up before the picks: Rachio does not have a local mode. Its Home Assistant integration is listed as cloud push, and Rachio’s own integrations page names no HomeKit or Matter support. Rachio dropped its HomeKit work for the Rachio 3 in 2022. Some older units still show a HomeKit code on the sticker, but we wouldn’t build a watering schedule on a path the maker no longer supports.

Keep watering local with OpenSprinkler

OpenSprinkler is the pick if you want no account, no cloud and an open API on your own network. Schedules, programs and logs live on the controller itself, and the firmware is open source on GitHub.

OpenSprinkler 3.4 AC irrigation controller for Home Assistant with local HTTP API
OpenSprinkler 3.4 AC: 8 zones, expandable to 72, local HTTP API. Image: OpenSprinkler.

The base unit drives 8 zones, each expander adds 16, and the ceiling is 72 zones with 40 programs. Weather adjustment is the one part that leans on the internet. Zimmerman, ETo and the automatic rain delay come from OpenSprinkler’s own weather service (no account needed), and the controller reuses the last good answer for up to 24 hours, then waters at 100%. Only the Manual and Monthly methods work fully offline. Apple WeatherKit is the default data source, with Open-Meteo, AccuWeather and Wunderground as alternatives. The newest model, v4.0 AC, moved to an ESP32-C6 and has shipped since late September 2026 on firmware 2.2.1(6). The v3.4 AC, v3.4 DC (USB-C powered) and 3.3 Latch models are still on sale.

There is no core integration, so Home Assistant reaches it through the community hass-opensprinkler integration from HACS (version 2.2.4 in November 2026). It polls the controller over local HTTP with the device password. That gets you switches that enable or disable each station and program, water-level and run-time sensors, and a calendar. Watering itself starts through actions that run a program or a station, set a rain delay or pause everything. The maintainer lists OS API 2.2.1(4) as the last tested build, and a new v4.0 ships on 2.2.1(6), two firmware releases later.

Best for: anyone who wants the controller and Home Assistant both local and both scriptable. Pass if your Wi-Fi is 5 GHz only and you won’t add the optional Ethernet module, since the controller’s Wi-Fi is 2.4 GHz. The Latch model has no pump start relay (only the AC model does), and the stock 500 mA transformer handles four valves open at once at most. It is sold direct for $130 to $200 depending on model. The 24 VAC adapter is optional and only offered for the US, Canada and Mexico.

Add the LNK2 to a Rain Bird controller you already own

If a Rain Bird ESP-TM2 or ESP-Me3 is already on the garage wall, the cheapest local upgrade is the LNK2 Wi-Fi module. It plugs into the controller’s accessory port, and Home Assistant’s core Rain Bird integration talks to it directly with local polling once a minute.

Rain Bird LNK2 Wi-Fi module that connects Rain Bird sprinkler controllers to Home Assistant locally
Rain Bird LNK2: plugs into ESP-TM2, ESP-ME3 and ESP-2Wire controllers, 2.4 GHz Wi-Fi. Image: Rain Bird.

Rain Bird lists the LNK2 for the ESP-TM2, ESP-ME, ESP-ME3, ESP-2Wire, RZXe, LXME2 and ESP-LXIVM, and an ESP-Me has to be from November 2016 or later. The integration exposes a switch per zone and a rain-sensor binary sensor when one is wired. It also adds a button per program, a schedule calendar, a rain delay number and an action to run a zone for a set time. Watering adjustment stays on Rain Bird’s side, so the controller keeps its program and Home Assistant pauses or skips it.

Three details trip people up. Home Assistant wants the controller’s own password (4 to 8 characters, or the 6-digit PIN if you set it up with the Rain Bird 2.0 app), not the Rain Bird account login. The LNK2 answers one request at a time, so a command from Home Assistant can fail while someone has the Rain Bird app open. Controllers updated through the 2.x app serve the local API over HTTPS. Home Assistant 2026.3.1 and newer handle both, while older installs fail setup on those units.

Buy it if you own a Rain Bird already, or want a contractor-grade controller with a core integration. Think twice when both pieces would be new. The module (about $100) plus an 8-station ESP-TM2 (about $135 from a third-party seller on Amazon) costs more than OpenSprinkler and still needs the Rain Bird app for setup. The ESP-TM2 “WiFi Ready” listing does not include the module, so check the live price on the LNK2 separately. We could not confirm that the newer ARC6 and ARC8, which have Wi-Fi built in, work with the integration, so they’re not here.

Use Rachio 3 for the app, and accept the cloud

Rachio 3 has the most polished app and weather intelligence of the group, and the trade is that every Home Assistant command and update goes through Rachio’s servers. It’s still a fine pick when someone else in the house will run the sprinklers from the app and Home Assistant is a second screen.

Rachio 3 smart sprinkler controller with weather intelligence for Home Assistant
Rachio 3: 4, 8 or 16 zones, cloud push into Home Assistant. Image: Rachio.

The core Rachio integration logs in with an API key from the Rachio app. It creates zone, schedule, standby and rain delay switches, with actions to start, pause, resume and stop watering. Updates arrive by webhook, so the docs require Home Assistant to be reachable from the internet through Home Assistant Cloud or your own remote access. The API also caps you at 1,700 calls a day. Without remote access, the switches still send commands but stop reflecting what the controller is doing.

Who it suits: households that want the Rachio app’s weather skips and are fine with a cloud dependency. Skip it if local control is the reason you run Home Assistant. The 16-zone Rachio 3 sells for about $235 from Amazon, so check the live price. The 8-zone listing showed a future availability date rather than stock when we checked, and Rachio sells the 8-zone direct for about $200.

Build an ESPHome controller on a Sonoff 4CH Pro R3

An ESPHome build is the cheapest fully local controller, and it fits the split where Home Assistant owns the schedule. ESPHome’s sprinkler component already handles the hard parts. It drives multiple valves and a pump or master valve with start and stop delays. It also has a run-time multiplier, auto-repeat, pause and resume, a queue, valve overlap and latching valve support.

Sonoff 4CH Pro R3 four-relay board used for an ESPHome sprinkler controller build
Sonoff 4CH Pro R3: four 10 A relays with dry contacts, DIN rail case. Image: SONOFF.

The 4CH Pro R3 suits this because its four relays have dry contacts, isolated from the board’s own power. The 24 VAC valve circuit runs through the contacts while the board runs on its own supply. That means two supplies: the board can’t run on 24 VAC, so it takes mains or a DC adapter, and a separate irrigation transformer feeds the valves. Solenoid valves are coils, and builders who flash this board note that its documentation advises against inductive loads, so they add a snubber or flyback diode across each valve.

The board pairs an ESP8285 with an STM32 that handles the RF remote, and it has to be flashed over serial before ESPHome can take over. The published ESPHome configs we found were tested on the R2 revision. A Home Assistant forum thread from June 2026 still has R3 owners asking for a confirmed config, so treat the R3 as community-documented rather than plug and play. If that is too much uncertainty, look at Waveshare’s ESP32-S3-ETH-8DI-8RO. It has eight relays, Ethernet and an entry in the ESPHome devices database with a working config.

Made for people already running ESPHome nodes, such as the WLED and ESP32 controllers many Home Assistant setups start with. Leave it alone if you would rather not wire mains in an enclosure or flash firmware, because a mistake here floods a bed or trips a breaker. The Sonoff 4CH Pro R3 runs about $35, so check the live price. Then budget for the DC supply, the 24 VAC transformer and a weatherproof box.

Put a Zigbee valve on the garden tap

Not every yard has buried zones. For a hose bib feeding a drip line or a raised bed, a battery Zigbee valve on the tap gives Home Assistant a local valve with no wiring at all.

Sonoff Hydro ONE SWV-ZFU Zigbee hose tap water valve for Home Assistant garden watering
Sonoff Hydro ONE SWV-ZFU: Zigbee 3.0 tap valve with a flow meter, 4 AA batteries. Image: SONOFF.

The Sonoff Hydro ONE (SWV-ZFU) is a Zigbee 3.0 valve with a brass inlet, a built-in flow meter, up to six onboard schedules and four AA batteries. Its Bluetooth proximity mode keeps basic control and settings available within range even if the gateway goes offline. Zigbee2MQTT supports it and exposes irrigation plans, rain delay and flow records. The flow data doubles as a leak check, since water moving while the valve should be shut is worth an alert. It’s the same idea behind the water leak sensors and auto shutoff valves we covered for indoor plumbing.

Good fit: renters, small gardens and anyone with a Zigbee coordinator already running. Not a fit on ZHA, since we could only confirm Zigbee2MQTT support. Confirm the listing is the US thread version, too, because the EU and US versions use different tap threads and sell at the same price. The Hydro ONE runs about $37, so check the live price.

Read the fine print on cloud-only controllers

Some of the best-selling controllers work with Home Assistant only through a vendor account, and that matters for a smart home that is meant to run locally:

  • Hunter Hydrawise (Pro-HC, HPC, X2): the core Hydrawise integration is cloud polling and needs your account email, password and an API key. The hardware is solid, and the 12-zone Pro-HC runs about $305.
  • Orbit B-hyve: there’s no core integration, only the unofficial bhyve-home-assistant integration from HACS, whose README makes no promise of continued compatibility. It goes through Orbit’s account.
  • Eve Aqua: it speaks Thread and Apple Home, but Eve’s Home Assistant page doesn’t list it, so we couldn’t confirm a Matter path and left it out.

None of these is a bad controller, and a cloud one beats no automation at all. The cost is that every rain skip Home Assistant sends depends on two internet hops and a company keeping its API open, which is exactly the dependency the picks above avoid. We made the same call in our thermostats for Home Assistant comparison, where a cloud thermostat keeps heating the house but its automations go dark until the internet comes back.

Let Home Assistant water by the weather

Weather-based watering means the run time follows how much water the lawn actually lost, not a fixed 20 minutes every other day. OpenSprinkler and Rain Bird can adjust on their own. When Home Assistant should own that decision, the Smart Irrigation integration from HACS (v2026.10.10 in November 2026) does the calculation. The data moves through it in a fixed order:

  1. A weather source feeds temperature, humidity, wind and solar data every hour: Open-Meteo, OpenWeatherMap, Pirate Weather, or your own sensors.
  2. The integration computes evapotranspiration with FAO-56 Penman-Monteith and subtracts rainfall into a per-zone bucket.
  3. Each zone’s bucket deficit becomes a run time in seconds, based on the zone’s size and sprinkler output.
  4. An automation or one of its blueprints opens the valves for that long, and the bucket resets after watering.

The project ships blueprints for Rain Bird, Hydrawise, Rachio, OpenSprinkler and B-hyve, so the controller you pick doesn’t lock you out of it. Your own rain gauge makes the bucket far more accurate than a forecast for a city 20 km away, so a local outdoor weather station is the best upgrade once the controller is in. Run Home Assistant on hardware that won’t drop out at dawn, too. One of the mini PCs for Home Assistant is a better host for a watering brain than an SD card.

Check the integrations before the first spring run

This matrix is what each controller gives you in Home Assistant, so you can match it to the schedule split you picked earlier. Install the integration, then watch one full program in the logbook before you trust any automation that skips or shortens it.

ControllerIntegration and installIoT classRain delay from HAWeather adjust on deviceNeeds internet
OpenSprinklerhass-opensprinkler, HACSLocal pollingYesZimmerman, ETo (via weather service), monthlyOnly for weather data
Rain Bird + LNK2rainbird, coreLocal pollingYes (number entity)Rain Bird’s ownNo, after setup
Rachio 3rachio, coreCloud pushYes (switch)Rachio Weather IntelligenceYes, plus remote access
ESPHome relay boardesphome, coreLocal pushThrough automationsNone, HA decidesNo
Sonoff Hydro ONEZigbee2MQTTLocalYes (exposed)None locally (weather skip via eWeLink app)No
Hunter Hydrawisehydrawise, coreCloud pollingSuspend actionHydrawise’s ownYes

Our pick for most yards is OpenSprinkler with the controller owning a fallback program and Home Assistant adding skips, because it keeps watering through any outage on either side. If you’re already a Rain Bird house, the LNK2 gets you the same local link for about $100, and the ESPHome route is the one to take when you want Home Assistant to own every second of run time.

Keep reading

OpenCode CLI Cheat Sheet: Commands, Sessions and Fixes (PDF) AI OpenCode CLI Cheat Sheet: Commands, Sessions and Fixes (PDF) Best Mini PC for Home Assistant: 4 Picks for HAOS and Proxmox Automation Best Mini PC for Home Assistant: 4 Picks for HAOS and Proxmox Ansible + Proxmox: Automated VM Management Ansible Ansible + Proxmox: Automated VM Management Best Weather Stations for Home Assistant: Ecowitt, Tempest, Davis Automation Best Weather Stations for Home Assistant: Ecowitt, Tempest, Davis Best Water Leak Sensors and Auto Shutoff Valves for Home Assistant Automation Best Water Leak Sensors and Auto Shutoff Valves for Home Assistant Self-Hosted RAG Pipeline with Ollama and pgvector (No API Keys) Automation Self-Hosted RAG Pipeline with Ollama and pgvector (No API Keys)

Leave a Comment

Press ESC to close