How to control irrigation without cloud
Learn how to control your irrigation system locally with Home Assistant, using open protocols and hardware that doesn't rely on cloud services.
Irrigation is easy to take off the cloud. Many smart irrigation systems lean on cloud apps for scheduling, but you can run watering entirely on your own network. This guide focuses on Home Assistant as the hub, with notes for Hubitat users who also want to avoid cloud dependencies.
The summary: there is no single magic “local irrigation controller” that does everything. The reliable approach is to drive your existing 24 V AC sprinkler valves (or a hose-bib valve) with a local relay, then handle scheduling and sensor logic in Home Assistant.
Drive your valves with a local relay
Most residential sprinkler systems use 24 V AC solenoid valves. To control them locally, you switch each valve with a relay that exposes a local API or MQTT - no cloud account required.
The relay I’d pick is the Shelly 1 Mini Gen3, a compact Wi-Fi relay. It works fully on your LAN, has a local REST/RPC API, and supports MQTT, so Home Assistant can switch it directly. I haven’t run this one; the pick is based on the spec sheet and reports from the Home Assistant forums. Note that a Shelly relay only switches a circuit - for 24 V AC valves you wire the relay’s dry contact in line with the valve, and you’ll want a separate 24 V AC transformer (the kind your old controller used) to power the solenoids.
If you want more than one zone, the Shelly Plus 2PM gives you two independently switched channels with power metering - but do not carry the wiring above straight across to it. Unlike the 1 Mini Gen3, the Plus 2PM switches live outputs rather than potential-free contacts, so it is not a drop-in for the dry-contact valve wiring described above; for two isolated channels look at a potential-free model such as the Shelly Pro 2. To be clear about what it is: the Shelly Plus 2PM is a Wi-Fi device. It does not speak Zigbee or Z-Wave. (Shelly’s newer 2PM Gen4 adds Zigbee, Matter and Bluetooth, and Shelly’s separate Wave line uses Z-Wave - but the original Plus 2PM is Wi-Fi only.) Shelly has now discontinued the Plus 2PM, so the Shelly 2PM Gen4 is what to buy new - its outputs are listed the same way, so the dry-contact caveat above applies to it as well.
For a single hose-bib or a pump, a smart plug such as the Shelly Plus Plug US can switch a 120 V pump or a plug-in transformer on and off on a schedule. It’s a blunt instrument compared to per-zone valve control, but it’s cheap and fully local. Shelly has since discontinued the Plus Plug US and replaced it with the Plug US Gen4, so buy the Gen4 if you are ordering new.
For a hose bib specifically, there is a simpler answer than a plug plus a transformer. The SONOFF Zigbee Smart Water Valve (SWV-NH) is a cheap Zigbee 3.0 valve that screws onto the tap, pairs straight into ZHA or Zigbee2MQTT, and reports flow as well as switching on and off. Control stays on your local Zigbee mesh with no cloud. It does need a Zigbee coordinator, which is the one prerequisite the Wi-Fi relays above avoid, but if you already run Zigbee it is the least-effort way to put a garden hose or a drip line under Home Assistant control.
If you would rather not add a Zigbee coordinator at all, the Eve Aqua is the other local hose-bib valve worth knowing about. It speaks HomeKit over Thread, with Bluetooth for setup, and reaches Home Assistant through the HomeKit Controller integration - so the one network prerequisite is a working Thread border router, and there is no Matter anywhere in that path, because Eve has never shipped the Matter update it promised for the Aqua. Core control needs no cloud account. The catch is price: the Aqua read $114.99 on Amazon on 2026-08-31 against about $26 for the SONOFF on 2026-09-06, so the trade is roughly four times the money plus a Thread border router in exchange for skipping Zigbee.
If you’d rather buy a purpose-built unit, dedicated multi-zone Wi-Fi sprinkler controllers exist that offer local control and Home Assistant integration; see my picks for the best smart irrigation controllers with rain skip. Check the specific model’s documentation before buying - confirm it has a documented local API or MQTT, because “works with Home Assistant” sometimes means cloud-to-cloud.
Add local sensors for smarter watering
The point of a local system is that it keeps working when the internet doesn’t. Add sensors that report to your hub directly over Zigbee, Z-Wave, or Wi-Fi/MQTT rather than a vendor cloud:
- Soil moisture sensors so you skip watering when the ground is already wet. The ThirdReality Smart Soil Moisture Sensor is a Zigbee option that reports moisture and temperature into Home Assistant with no vendor cloud, and it is cheap enough to put one in each zone rather than extrapolating the whole yard from a single reading.
- Rain or weather data - Home Assistant can pull a local weather integration, or you can use a physical rain sensor wired to a relay input.
- Temperature sensors to avoid watering during a freeze.
Battery Zigbee soil and environment sensors pair to a local Zigbee coordinator and report straight to Home Assistant with no cloud. Whatever you choose, verify the device is locally controllable before relying on it.
Build the schedule in Home Assistant
With valves on local relays and sensors reporting to the hub, the scheduling lives in Home Assistant:
- Use automations triggered by time of day, then gated by conditions (soil moisture below a threshold, no rain forecast, temperature above freezing).
- Run zones in sequence with delays so you don’t exceed your water pressure or transformer capacity.
- Consider a community custom integration like Irrigation Unlimited, installed through HACS, if you want a richer scheduling UI than core automations provide.
Because the relays have their own local web UI, your zones can still be turned on manually even if Home Assistant is down - a useful failsafe.
If you use Hubitat instead, the same pattern applies: pair Z-Wave or Zigbee relays and sensors to a Hubitat Elevation C-8 and build rules in its local rule engine. If you are buying new, that means the standard C-8 Pro: the plain C-8 was discontinued in March 2026 and the Pro is the only hub Hubitat sells now. Avoid the Thread Special Edition of the Pro if any of those relays are Zigbee, because its Thread radio replaces the Zigbee one.