Skip to content
Crop Steering

Crop steering for Home Assistant · Free and open source

Automatic grow-room irrigation, based on substrate moisture

Crop Steering waters each zone of your grow room from what its moisture probes read. It runs inside Home Assistant, works with the probes, pumps and valves you already have. If something looks wrong, it stops watering and alerts you.

Try the demo

No install. Synthetic data.

Is it for me?Get started

MIT licence · No subscription · Version 3.18.1 · Tested on Home Assistant 2024.10 and 2026.9

Demo dashboard: open the live demo
The Crop Steering dashboard, Status › Today: the room line, a card for each zone with its moisture and pore EC, and the AI assistant's changes today.
The real dashboard, running on synthetic demo data.

How it works

How it works, in three steps

  1. Step 1: Your probes

    Your probes, pumps and valves connect to Home Assistant the way they always have.

  2. Step 2: It checks and decides

    Crop Steering reads them through Home Assistant and decides when each zone needs water. Each day runs in four phases: P0 morning dryback, P1 ramp, P2 maintenance and P3 overnight dryback.

  3. Step 3: It waters and shows why

    It switches the pump and valves after its safety checks. You see each watering (the dashboard calls it a shot) on the zone's day chart, with the reason it fired.

Terms used here: dryback, P0–P3, shot, kill switch (Watering), catch test. Full glossary

One grow-day of substrate water content across the four irrigation phasesAn illustration, not data. The horizontal axis runs from lights-on at 10:00 to the next lights-on. In P0, the morning wait, the line keeps falling after lights-on until it reaches the dryback target: with a 60 percent peak and a 10 percent dryback target that is 54 percent. In P1, the ramp-up, the line climbs a staircase of six steps; each vertical riser is one irrigation shot. In P2, maintenance, the line is a sawtooth: it dries down to a dashed threshold, a shot lifts it, and this repeats until lights-off at 22:00. In P3, overnight, the line slopes smoothly down through the night, well above a separate dashed emergency floor. A thinner second line underneath stands for the recorded probe, following the plan a little late and a little low, and stopping at now.P0P1P2P345%50%55%60%10:0022:0010:00lights onlights offP2 thresholdemergency floornowshots
An illustration of one grow-day, lights-on to lights-on, with the project's own worked example. It is an example, not a recommendation.

See how it works

Fit

Is it for you?

If Home Assistant shows your device as the right kind of entity, with a unit Crop Steering understands, Crop Steering can use it.

Good fit if

  • YesYou grow in containers, in rooms you can split into zones with one valve each.
  • YesYou run Home Assistant, or are willing to.
  • YesYou want watering decided by probe readings, with a record of every shot.
  • YesYou are comfortable running self-hosted software and testing it on one zone first.

Not a fit if

  • NoYou need a vendor support contract or certified hardware.
  • NoYou want one system to also run climate, lights, tasks and compliance records.
  • NoYou need several zones watered at the same moment.
  • NoYour EC meter only reports in ppm.

Check your grow Check your hardware Common questions

Safety

Safety features

  • An unreadable kill switch or room switch counts as off.

  • Every pump and valve switch is read back. One that does not answer stops watering and raises an alert.

  • Every watering is cut to the maximum length you set. A daily cap stops routine watering, and the AI cannot change either.

Caution

Software is not an emergency stop. Use valves that close on power loss and a float switch or timer that can stop the pump on its own.

Testing status

Release 3.18 has not yet been run on real plumbing. Start on one zone with a catch test.

How the safety checks work Security and privacy

The dashboard

What the dashboard shows

The first page lists all rooms. Open a room, then a zone, to see each watering on the zone's day chart with the reason it fired. It works on a phone.

Status › All rooms
Status › All rooms: every room with its zones, current moisture, pore EC and water today, on synthetic demo data.
All rooms: each zone's moisture, EC and water today.
Zone 1 · day chart
A zone's day chart: moisture through the day with each shot marked, on synthetic demo data.
Each watering on the zone's day chart, with the reason it fired.

Open the live demo All features

Start

Getting started: test on one zone first

  1. 01

    Try the demo

    Open the live demo. Nothing to install.

  2. 02

    Check your hardware

    Check your hardware and take the fit check.

  3. 03

    Install

    Two parts: the integration from HACS and the controller from the app store or Docker. Keep watering off until each probe and switch is checked.