# Features

Crop Steering waters each zone from what its probes read, stops watering when something is wrong, and shows every shot on the dashboard. The page has ten sections, from why to water by substrate moisture to how to install.

In the current release marks a feature in the current release, 3.18.1. [Read the upgrade guide before you update](https://cropsteering.growlabs.nz/docs/upgrade-guide).

01 · Why

## Why water by substrate moisture

A timer waters at the same times, whatever the plants did overnight. Crop steering waters from substrate moisture instead.

[Free beginner course: the Crop Steering Academy →](https://cropsteering.growlabs.nz/docs/academy)

[How it works: a timer compared with crop steering](https://cropsteering.growlabs.nz/how-it-works#why)

In the current release From the dashboard demo, on sample data.

02 · Sensors

## What it reads

It reads the moisture (VWC) and pore EC probes in each zone, the feed tank's level, EC and pH, and when the lights go on and off. Several probes in one zone are combined into one reading. A probe that stops reporting is left out. You use the sensors you already have in Home Assistant.

[System overview →](https://cropsteering.growlabs.nz/docs/system-overview)

[Supported hardware](https://cropsteering.growlabs.nz/hardware)

In the current release From the dashboard demo, on sample data.

**Features in this section (11)**

- ### Sensor mapping In the current release
  Search your Home Assistant entities by name, check each reading and unit, and map valves and one or more VWC and EC probes to each zone.
- ### Sensor fusion In the current release
  A zone's probes are combined by median, so one wild probe among three is outvoted. A probe that goes quiet for 20 minutes is set aside and the zone reading doesn't jump.
- ### Sensor diagnostics and equipment map In the current release
  Every probe of every zone with its reading, when it last reported and whether it counts. A stale or out-of-range probe stands out.
- ### Graphical tank and pump overview In the current release
  The feed tank drawn with its level, EC, pH and temperature, the pump state and the last fill. An unknown reading shows as unknown, not as empty.
- ### Tank level and watering history In the current release
  The tank level over 12 hours to 7 days, with every zone's shots, pump runs and fills drawn on it, plus the tank minimum and the refill reminder.
- ### Sensing, diagnostics and estimates In the current release
    - #### Probe and substrate diagnostics
      See per-probe detail and optional probe history, shot-response checks, drift and slope information. A diagnostic is evidence for review, not proof of a working emitter.
    - #### Water and VPD
      Compare estimated water delivery with mapped VPD and inspect the relationship across grow days. Missing observations stay missing.
    - #### Plant stress
      Optional leaf-temperature mappings support a plant-stress card and CWSI with configurable baselines. It needs appropriate sensors and calibration; it is not a crop diagnosis.
    - #### Why a shot is held
      A gate report shows the first hold, including waste-policy uncertainty and the rescue-only dead-feed exception, in the same order as the actual admission gates.
    - #### Shared-sump water balance
      Estimate sump removal from pump power and configured calibration, together with mapped AC/dehumidifier activity. Room runoff and transpiration are model outputs, not measured zone runoff or measured transpiration.
  [Details and limits](https://cropsteering.growlabs.nz/docs/entities)
- ### Probe offsets and curves In the current release
  Match a probe to your handheld meter in one step. The offset is applied before the zone's probes are combined, and every change is recorded.
  [How it works](https://cropsteering.growlabs.nz/docs/calibration)

03 · Phases

## The four irrigation phases (P0–P3)

You set targets per zone, or a plan for the whole grow, and the engine sizes each shot from the substrate volume and plant count, adjusted for pore EC. Optional modes stay off until you choose them.

[Grow plans →](https://cropsteering.growlabs.nz/docs/grow-plans)

[How it works: the four phases (P0–P3)](https://cropsteering.growlabs.nz/how-it-works#phases)

In the current release From the dashboard demo, on sample data.

**Features in this section (12)**

- ### Irrigation: current targets and daily graph In the current release
  All of a zone's targets, phase by phase, beside its daily graph. Edit a number or drag a target on the graph; it stays a local draft until you review it.
- ### Reactive combined planning curve In the current release
  The planned VWC and EC for the whole day, through lights-off and overnight to the next lights-on, redrawn as you change a target.
- ### Continuous vegetative/generative steering In the current release
  Steering isn't an on-off switch. A grow plan can set each zone anywhere between a vegetative and a generative profile, stage by stage.
- ### Different setpoints per zone In the current release
  Every zone has its own targets and its own schedule blocks, so one room can run zones on different plans.
- ### Whole-grow day/week schedule In the current release
  Plan the whole run by week or by day, from day 1 to day 366, with each zone's own start date and day-by-day exceptions.
- ### P1 runs its full ramp In the current release
  The ramp isn't cut off by the clock. It goes to the target, gives one more shot, and stops only when a shot no longer raises the reading.
- ### Phase watering options In the current release
    - #### Guarded timed maintenance
      Select timed P2 shots with a moisture ceiling and floor rescue, and an optional fixed end before lights-off. Moisture mode and predictive ending remain the defaults.
    - #### Morning minimum wait and stall exit
      Set a minimum P0 wait, with the low-moisture bypass retained, or enable a trusted slow-dryback exit. Both new options are neutral until selected.
    - #### Budgeted EC flush
      Flush toward a zone EC target within an episode budget, with spacing, drainage checks and a feed-EC floor. This does not remove daily or shot limits.
    - #### Zone EC ratios
      Choose zone-specific dilution ratios instead of the room ratios. The choice is off by default.
    - #### Daily setpoint movement
      Set a daily movement limit and choose which ladder writers it applies to. The default follows the existing follower; it does not cap actual shot volume or bypass safety.
    - #### Extra ramp shots
      Choose 1 to 30 extra ramp shots, subject to the total ramp-shot limit and the daily water cap.
  [Details and limits](https://cropsteering.growlabs.nz/docs/ai-instructions)

04 · Safety

## Safety features

Before every shot the controller checks a fixed list: kill switch, room and zone switches, tank level, feed EC and pH, manual holds and equipment that is offline. Every pump and valve switch is read back, and one that does not answer stops watering and raises an alert. If it cannot read the kill switch or a room switch, it treats it as off.

[How the controller works →](https://cropsteering.growlabs.nz/docs/controller)

[How the safety checks work](https://cropsteering.growlabs.nz/safety)

In the current release From the dashboard demo, on sample data.

**Features in this section (12)**

- ### Source-water/interlock/volume/duration gates In the current release
  Before any shot, the controller checks the feed, the interlocks, the day's water limit and the maximum shot length. If one fails, no shot.
- ### Patient switch read-back In the current release
  After each shot the pump, main line and valve are read back for up to 6 seconds. A slow plug isn't a false alarm; equipment that stays on is held.
- ### Restart-safe setup In the current release
  The controller remembers the setup it accepted. After a restart it carries on only if nothing changed, and tells you when a new setup needs accepting.
- ### Missing or invalid EC In the current release
  If an EC probe stops, the zone keeps watering on VWC alone and the card says which probe is out.
- ### Room on / off In the current release
  Switch an empty room off and it gets no water of any kind and sends no alerts, while its readings stay on screen.
- ### Timed manual override In the current release
  Take a zone over by hand for a set time. The override ends on its own, and survives a restart of Home Assistant.
- ### Operating checks and alerts In the current release
    - #### Rescue-miss alerts
      An optional alert reports repeated rescue misses. It does not change when the controller waters.
    - #### Rescue past a dead feed probe
      An opt-in exception admits rescue reasons when a feed probe is dead. Routine shots, bad live readings, waste checks and every other safety gate still apply.
    - #### Reviewed test-shot length
      Choose the test-shot duration and review the request before sending it. Hardware and watering gates still apply.
    - #### Waste valve policy
      Choose Off, Check or Close before each shot. A mapped unreadable setting or device holds watering; only a confirmed absent legacy setting can use the old Off behaviour.
    - #### Stop all and dead-head alerts
      Stop all requests equipment off. Optional pump-power monitoring can warn about a dead-head pattern; that warning is not a certified pressure or flow measurement.
    - #### Estimated feed tank
      Estimate remaining tank water from configured capacity and controller delivery, with a low-level alert. It is not a level sensor and the estimate never holds irrigation.
  [Details and limits](https://cropsteering.growlabs.nz/docs/entities)

05 · Pumps and dosing

## Pumps, valves and dosing

A shot switches the pump, the main line and one zone valve in order, then closes them and counts the water. It can also mix a batch tank to a recipe and keep track of stock. Zones without probes can water on a timer, and a pump queue lets zones take turns when one pump cannot feed them all.

[Dosing and batch tanks →](https://cropsteering.growlabs.nz/docs/dosing)

In the current release From the release's own screenshots, on sample data.

**Features in this section (9)**

- ### Water per zone, plant and proposed runtime In the current release
  Zone litres, millilitres per plant and the planned runtime of each shot, worked out from your substrate volume and dripper flow.
- ### Catch-test calculator In the current release
  Measure what your drippers really put out and the calculator proposes the flow to enter. It never writes the value for you.
- ### Batch-tank dosing In the current release
  Dose a single pump or make a whole batch into the room's tank. The controller does each step, reads back every switch, and holds the water a batch could disturb.
- ### Optional protective actions In the current release
    - #### pH auto-correct
      Opt in to bounded pH correction with configured dose attempts and fail-closed pump readback. A fault remains latched while the enable switch is unavailable; confirmed switch-off clears it.
    - #### Dry-substrate light dimming
      An optional protective action dims mapped lights to a configured level and restores them later. It does not switch lights off and is not general climate automation.
  [Details and limits](https://cropsteering.growlabs.nz/docs/dosing)
- ### Timer programs In the current release
  Water mothers, clones and zones without probes on a timer, written as a sentence, with the next 24 hours drawn before you save. Every timed shot still passes the same safety checks.
  [How it works](https://cropsteering.growlabs.nz/docs/timers-and-modes)
- ### Pump queue In the current release
  Set what your pump really delivers and which zones share it. Zones take turns, and the timeline marks a shot that waited. The queue never holds a shot.
  [How it works](https://cropsteering.growlabs.nz/docs/water-supply)
- ### Feed probe calibration In the current release
  Two-point pH and EC calibration of the feed probes in buffer solutions. While a session is open, that probe's reading is not used as the feed.
  [How it works](https://cropsteering.growlabs.nz/docs/calibration)
- ### Dosing pump prime and calibration In the current release
  Prime the line, run the pump into a measuring jug and enter what it gave. The measured flow sizes doses for a pump without a flow sensor.
  [How it works](https://cropsteering.growlabs.nz/docs/calibration)

06 · Dashboard

## The dashboard: rooms, zones and history

All rooms shows each room and its zones with moisture, EC and water today. Open a room for its zone cards, open a zone for its day chart with every shot marked, and use History to compare this run with an earlier one. On a phone the sections sit in a bar at the bottom.

[Open the demo (sample data) →](https://cropsteering.growlabs.nz/demo)

In the current release From the dashboard demo, on sample data.

**Features in this section (24)**

- ### All advanced pages in one workspace In the current release
  Status opens All rooms by default. Open a room or zone for detail. Choose this browser’s default in Settings › Dashboards & display.
- ### Zone current state and last irrigation In the current release
  Each zone card on Status › Today shows VWC now, a line of the day, the re-water point and peak target, pore EC, water per plant, the last shot and what happens next.
- ### Current day: recorded zone and projected day In the current release
  Each zone's page draws its recorded VWC for today and yesterday, its pore EC, and the rest of the day projected from how fast this zone dries. Every shot is marked, and the diamonds are the AI assistant's decisions.
- ### Combined recorded VWC + EC history In the current release
  VWC and EC history for a zone on one chart, each on its own axis, pulled from Home Assistant's recorder. Where there is no history, the chart says so instead of drawing a line.
- ### Run comparison with daily target overlays In the current release
  Put this run beside an earlier one, lined up by grow week, and see where VWC, EC and water differ most.
- ### Activity view and CSV export In the current release
  The room's readings on stacked charts under its phase and shot lanes, with notes where something happened, and a CSV of what is charted.
- ### Weekly water usage In the current release
  Litres for each zone today, this grow week and for the run, with an estimate for the whole grow.
- ### Native Home Assistant appearance In the current release
  The dashboard follows your Home Assistant theme, light or dark, or you can set it yourself.
- ### Room and zone navigation In the current release
    - #### Room and zone menu
      The menu lists every room with its state, and every zone under it with its phase and moisture. Choosing a room keeps the section you are in; choosing a zone opens its page.
    - #### Bottom bar on a phone
      On a phone the five sections sit in a bar along the bottom of the screen, where a thumb reaches them. A tap anywhere on a zone card opens the zone.
    - #### Links remember the room
      The address holds the room you have open, so a bookmark, a shared link or a reload brings you back to the same room. Old links still work.
    - #### Room water totals
      Each room on All rooms shows its water today: total litres, and litres per plant averaged over the zones that report both.
  [Details and limits](https://cropsteering.growlabs.nz/docs/user-guide)
- ### Display options In the current release
    - #### Room display preferences
      Choose cards or a table, cameras, probe panels, light readings and overlays from a revisioned per-room Display page. These choices do not change irrigation.
    - #### Camera, light and environment context
      Optional mappings expose camera views, CO₂, PPFD, DLI and lighting context. Mapping a sensor does not create an environmental control loop.
    - #### Zone and grow-day detail
      Inspect VWC and EC together, moisture spread, day-over-day differences, planned targets, shot and phase lanes, and timeline overlays.
    - #### Manual equipment controls
      An off-by-default option exposes reviewed manual hardware requests. It does not remove readback, role checks or equipment holds.
    - #### Dryback drivers and planner reference
      Review dryback drivers and the controller's phase logic beside the grow plan. Advisory charts describe the available evidence and estimates.
  [Details and limits](https://cropsteering.growlabs.nz/docs/user-guide)
- ### Grow records In the current release
    - #### Cultivar labels and grow summaries
      Give zones cultivar labels and enable daily grow summaries at lights-on. Recording is off by default and old records without these fields still load.
    - #### Whole-grow history and harvest entries
      Review the grow timeline, record harvest weight and compare water use or harvest entries across runs. These are operator records, not a prediction or proof of yield improvement.
    - #### Per-probe grow comparison
      Choose Off, Last grow or a recorded grow separately for each substrate probe. Historical row matching does not change the live sensor mapping or watering.
    - #### Optional long-term history database
      Use a protected administrator-only connection to an external time-series database for capped, read-only history queries. Recorder remains the default and fallback; a database and credentials are not supplied.
  [Details and limits](https://cropsteering.growlabs.nz/docs/long-history)
- ### Shot timeline In the current release
  Every shot in every room on one timeline: done, planned, failed or waiting for the pump. A shot the sensors will decide is drawn as expected, not as certain.
  [How it works](https://cropsteering.growlabs.nz/docs/history-and-changes)
- ### Display units In the current release
  EC in mS/cm or ppm, temperature in °C or °F, volume in litres or gallons, and a 12- or 24-hour clock. Display only: what the controller works in does not change.
  [How it works](https://cropsteering.growlabs.nz/docs/dashboards-and-display)
- ### Wall dashboards In the current release
  Make a Home Assistant dashboard for a wall screen from ready-made cards.
  [How it works](https://cropsteering.growlabs.nz/docs/dashboards-and-display)

07 · Settings

## Changing settings

Edits stay a draft until you review and apply them. After you apply, each value is read back from Home Assistant, so you see the value the controller now uses. Plans are saved as a draft and only take over after you arm them.

[User guide →](https://cropsteering.growlabs.nz/docs/user-guide)

In the current release From the dashboard demo, on sample data.

**Features in this section (6)**

- ### Reviewed manual setpoint writes In the current release
  Every change goes through a review that shows the old and new value before anything is written to Home Assistant. If a write fails, your draft stays.
- ### Persistent plans and safe activation In the current release
  Plans are saved as drafts, previewed, then armed. An armed plan starts at the next lights-on, and arming never turns the watering on by itself.
- ### User-authored recipe library In the current release
  Save a plan as a recipe and load it into another room later. A recipe only loads into a draft; nothing changes until you review and save.
- ### Journal and put back In the current release
  Every change in one list: what changed, who or what changed it, and why. An administrator can put an earlier value back in one step. It is refused if the value has moved since, and read back after.
  [How it works](https://cropsteering.growlabs.nz/docs/history-and-changes)
- ### Undo In the current release
  For 10 seconds after a change, Undo puts it back. If it cannot, it says why.
  [How it works](https://cropsteering.growlabs.nz/docs/history-and-changes)
- ### Presets and copy In the current release
  Save a room's or a zone's settings as a preset, and copy settings to other rooms or zones. You see only the values that will change before you apply, and each one is read back.
  [How it works](https://cropsteering.growlabs.nz/docs/presets-and-copy)

08 · AI

## The AI assistant (optional)

Optional AI judges can move a phase on, distrust a probe or nudge a setpoint, but only inside limits you set, and every decision is logged. An AI client on your computer can also read your rooms and prepare setup or plan changes through the MCP connector. Nothing it prepares is saved until a person reviews it.

[The AI assistant and its limits →](https://cropsteering.growlabs.nz/docs/ai-assistant)

[Glossary](https://cropsteering.growlabs.nz/glossary)

In the current release From the dashboard demo, on sample data.

**Features in this section (7)**

- ### Auto Setpoints In the current release
  Off until you turn it on. Then the controller nudges a zone's targets in small, bounded steps from what the zone actually did, and your own edit always wins.
- ### Optional scoped MCP server In the current release
  Connect an AI client on your computer to read your rooms and prepare changes for your review. It can never switch equipment or start a plan.
- ### AI instructions In the current release
    - #### Exact prompt, source and hash
      Inspect the instructions the controller actually builds, with source, revision and SHA-256 per block. A local rebuild refreshes that snapshot without making a paid model call.
    - #### Reviewed room context
      An administrator can add structured context and house notes, review the difference, save a revision or roll back. Context appears only when supplied; it cannot replace shipped safety rules or change the live substrate or stage.
    - #### Cache settings and usage
      Choose 5-minute or 1-hour instruction caching and A/B/C/evidence breakpoints. Breakpoints cache the cumulative prefix, so caching a later block can include earlier ones. Evidence remains at 5 minutes.
    - #### Reported cost, labelled estimates
      See reported cache-hit tokens and spend. Net savings are explicitly estimated from known usage and model prices. Rebuild does not purge the provider's cache.
  [Details and limits](https://cropsteering.growlabs.nz/docs/ai-instructions)
- ### Preview, then apply, for more changes In the current release
  The AI client can also prepare timers, alert rules, presets, copies and probe offsets. Each one comes back as a preview of what would change, and a person applies it.
  [How it works](https://cropsteering.growlabs.nz/docs/ai-setup)

09 · Alerts

## Alerts and system status

Alerts go to the phones you choose, with a code that says what happened and what to check. They arrive as Home Assistant notifications and Repairs cards. You can also write your own alert rules and test them against yesterday, see open alerts in one inbox, give each phone quiet hours, and check a status page for what has gone silent.

[Alerts and who gets them →](https://cropsteering.growlabs.nz/docs/notifications)

In the current release From the release's own screenshots, on sample data.

**Features in this section (7)**

- ### Who gets which alerts on which phone In the current release
  Tick the kinds of alert each phone gets, for every room or some. An emergency always reaches a phone.
- ### Complete usage documentation In the current release
  Every alert code is explained in the dashboard's Help: what it means, what happens to the water, the causes and the fix.
- ### Live deployment In the current release
  Each release is installed on a working two-room installation, and the installed files are checked against the release.
- ### Alert rules In the current release
  Write a rule as a sentence, such as tell my phone when the tank stays below 30% for 10 minutes. Before you save, it shows how often the rule would have fired yesterday. A rule only sends a message: it never starts, stops or holds a shot.
  [How it works](https://cropsteering.growlabs.nz/docs/alerts)
- ### Alerts inbox In the current release
  Open alerts in one place, each on the room or zone it belongs to, and marked when someone has seen it.
  [How it works](https://cropsteering.growlabs.nz/docs/alerts)
- ### Quiet hours In the current release
  Each phone can have its own quiet hours. Pushes that are not critical wait and arrive as one digest when they end; urgent pushes always come through. For now they are set through a service, not on a page.
  [How it works](https://cropsteering.growlabs.nz/docs/alerts)
- ### System status In the current release
  How much of the setup is reporting, whether the controller is running, and which sensors have gone silent and for how long.
  [How it works](https://cropsteering.growlabs.nz/docs/system-status)

10 · Start

## Getting started: test on one zone first

Install the integration and the controller from Home Assistant, map your probes and valves in Setup, and start with one zone. Or try the dashboard first in the demo, on sample data, without installing anything.

[Install guide →](https://cropsteering.growlabs.nz/install)

[Get started in three steps](https://cropsteering.growlabs.nz/get-started)

In the current release From the dashboard demo, on sample data.

**Features in this section (4)**

- ### Installation shortcuts and sidebar In the current release
  Buttons open the right screens in Home Assistant to download the integration, add Crop Steering and add the controller. The dashboard then appears in the sidebar.
- ### HA sidebar integration In the current release
  Crop Steering is a page in the Home Assistant sidebar, with its own menu: Status, Irrigation, History, Equipment and Settings. The menu also lists every room and its zones.
- ### Room and zone creation/removal In the current release
  Add rooms and zones from the dashboard. Removing one archives it, so its ID is never reused for different hardware.
- ### Interactive demo In the current release
  The real dashboard on sample rooms, in your browser. Nothing connects to Home Assistant.

## All features and settings

106 features and settings in 9 groups, with where each one applies and its default. New features stay off until you turn them on. You change them on the dashboard's Settings › Features page.

**Show all settings**

**Watering phases (14)**

How each phase waters: when it starts, the shot sizes and the time between shots.

- ### Auto setpoints
  room · default false
  Moves the P1 target and the P2 re-water point to what each zone reaches, and stops the P2 shots in the afternoon for today's dryback.
- ### Steering mode
  room or zone · default Vegetative
  Vegetative or generative steer. It selects the dryback target and the EC targets.
- ### Growth stage
  room · default Vegetative
  The stage of the crop.
- ### P0 morning dryback
  room or zone
  After lights-on, the zone waits for a drop from its peak, or for the maximum wait, before the ramp starts.
  Settings: Vegetative dryback target (35), Generative dryback target (45), P0 dryback drop percent (15), P0 maximum wait time (120), P0 additional dryback (0)
- ### P1 ramp
  room or zone
  Shots that grow in size until the zone reaches its P1 target.
  Settings: P1 target vwc (65), P1 initial shot size (2), P1 shot size increment (0.5), P1 time between shots (15), P1 minimum shots (3), P1 maximum shots (6), P1 rise pts (0.5), P1 maximum extra shots (3)
- ### P2 maintenance
  room or zone
  A shot when the zone drops below its re-water point. A time between shots of 0 is off.
  Settings: P2 vwc threshold (60), P2 shot size (5), P2 time between shots (0)
- ### P3 night rescue
  room or zone
  Before lights-off and at night, a shot only when the zone drops below its rescue floor.
  Settings: P3 emergency vwc threshold (40), P3 emergency shot size (2), P3 time between shots (10)
- ### P3 dryback hold
  zone · default false
  Holds the zone's night rescue shots so the zone dries back overnight.
- ### Morning dryback minimum wait
  room or zone
  Minimum minutes in P0; the low moisture bypass remains available.
  Settings: P0 minimum wait (0), P0 stall exit (false)
- ### Max setpoint move per day
  room
  Limit automatic moisture setpoint movement in VWC points; zero removes the limit.
  Settings: Setpoint max step per day (1), Setpoint step limit applies to (Auto setpoints)
- ### EC flush target
  room or zone · default 0
  Continue budgeted flush shots to this target, with a feed EC floor; zero disables.
- ### Use zone P2 EC ratios
  room or zone
  Use each zone dilute ratio instead of the existing 1.2 ratio.
  Settings: P2 dilute ratio (1.2), Use p2 ec thresholds (false)
- ### P2 mode
  room or zone
  Choose Timed with guards for scheduled shots with a moisture ceiling and floor rescue.
  Settings: P2 end hours before off (0), P2 mode (Moisture), P2 timed first hours (0), P2 timed interval min (60), P2 timed shot size (0)
- ### Watering by
  zone · default steering
  Steering: the engine waters the zone, as always. Timer: the room's timer programs water it. Off: nothing waters it.

**Safety and holds (15)**

The switches that stop or hold watering, and the limits on each shot and each day.

- ### Watering (kill switch)
  room · default null
  Off: the controller fires no shot in this room.
- ### Room on
  room · default null
  Off: the room is empty or resting. The controller waters nothing and sends no room alerts.
- ### Zone on
  zone · default null
  Off: the controller fires no shot in that zone.
- ### Zone hold (manual override)
  zone · default null
  On: the controller holds the zone and fires no automatic shot until the hold ends.
- ### Max-run latch
  room · default true
  On: a shot that runs to its time limit holds the zone until a person resets it in Settings > Repairs.
  Settings: Max shot duration (900)
- ### Daily water limits
  zone
  The most water a zone gets in a grow-day, and the least each plant gets. A minimum of 0 is off.
  Settings: Max daily volume (20), Min daily ml per plant (0)
- ### Zone limits
  room or zone
  Field capacity, the maximum EC and the watchdog hours of each zone.
  Settings: Field capacity (70), Maximum ec (9), Watchdog hours (3)
- ### Dim lights on dry substrate
  room · default false
  Dims a dimmable room light while a zone is dry with the lights on. Never off, and it restores the brightness it found.
  Settings: Dry dim floor vwc (15), Dry dim level pct (50), Dry dim after min (10), Dry dim max h (4)
- ### Rescue misses
  room
  Alert when rescue shots fail to raise moisture; never holds watering.
  Settings: Rescue miss action (Off), Rescue miss count (4)
- ### Rescues past dead feed probe
  room · default false
  Allow P3 emergency and watchdog rescues past a dead feed probe; bad readings and other interlocks still hold.
- ### Waste valve rule
  room · default Off
  Choose Close for each shot to close and verify the waste valve before the pump primes.
- ### Manual shot length
  zone · default 10
  Test Shot seconds; maximum duration and daily budget still apply.
- ### Tank size for estimate
  room
  Capacity in litres enables the estimate when no tank level sensor is mapped; zero disables.
  Settings: Tank estimate low pct (20), Tank size l (0)
- ### Pump dead-head power
  room · default 20
  Alert after 60 seconds above this power with all valves shut and no active hold or batch.
- ### Pump power sensor
  app
  Optional room=sensor power mapping enables the dead-head alert; never stops the pump.

**Dosing and feed (5)**

The EC steer, the EC targets and the source-water gate.

- ### EC stacking
  room · default false
  On: P2 shots let the EC rise toward its target instead of washing it down.
  Settings: Ec min interval (10)
- ### EC targets
  room or zone
  The EC each phase steers to, for each steering mode.
  Settings: Ec target veg p0 (3), Ec target veg p1 (3), Ec target veg p2 (3.2), Ec target gen p0 (4), Ec target gen p1 (5), Ec target gen p2 (6)
- ### Source-water gate
  room
  No shot while the feed pH or EC is outside its band. An EC band of 0 to 0 is off.
  Settings: Irrigation ph min (5.5), Irrigation ph max (6.5), Irrigation ec min (0), Irrigation ec max (0)
- ### pH auto-correct
  room · default false
  Corrects a batch tank outside the feed pH band with a few small doses of the pump in the pH role. It locks and alerts if a dose does not work.
  Settings: Ph correct dose s (5), Ph correct max tries (2), Ph correct mix min (5), Ph correct daily max (3), Ph correct margin (0.1)
- ### Pump pH role
  room · default none
  Which dosing pump raises (pH up) or lowers (pH down) the tank pH; set per pump in Equipment > Dosing > Dosing setup.

**AI assistant (10)**

What the AI assistant may change in this room.

- ### Pause AI changes
  room · default Off
  A period in which the AI assistant asks nothing and changes nothing in the room.
- ### AI: start the next phase early
  room · default true
  Starts the morning ramp or the night dryback early.
- ### AI: end the morning ramp
  room · default true
  Ends the morning ramp when the slab is full.
- ### AI: set a probe aside
  room · default true
  Sets aside a probe that does not follow the substrate.
- ### AI: change the EC steer
  room · default true
  Selects steer, hold or decay for the EC in maintenance.
- ### AI: adjust maintenance watering
  room · default true
  Moves the P2 shot size or re-water point by one small step a night.
- ### AI: apply today's plan day
  room · default true
  Applies today's plan values when a stale probe holds the plan.
- ### AI: set targets from what a zone reaches
  room · default false
  Sets a zone's targets from the values it really reaches.
- ### AI: tune shot sizes
  room · default false
  Changes the shot sizes inside their limits.
- ### AI instructions
  dashboard · default visible
  Review the instructions and editable context used by the AI assistant.

**Alerts (2)**

What the notifications say.

- ### Shots held alert
  room · default 0
  A critical alert when a zone that asked for water is held this many hours. 0 is off.
- ### Predictions in notifications
  room · default true
  The vitals notification says what each zone does next.

**Display panels (23)**

How the dashboard shows the room. These change no watering.

- ### Water today shown as
  room · default Zone total
  Each zone's total, or what each plant got.
- ### Water vs VPD
  room · default false
  Keep per grow-day water, quiet dryback rate and VPD records and show how each zone's drying answers VPD (History > Water use); read only.
- ### Plant stress card
  room · default false
  Leaf minus air temperature and leaf VPD on Today and the zone page, where a leaf temperature sensor is mapped in setup (room or zone).
- ### CWSI lower baseline
  room · default 0
  Leaf minus air (deg C) of a well-watered canopy, your own; CWSI shows only when the upper baseline is above it.
- ### CWSI upper baseline
  room · default 0
  Leaf minus air (deg C) of a canopy that has stopped transpiring, your own; both 0 keeps CWSI off.
- ### Shot check
  room · default off
  off | table (last shots and whether the water landed, zone page) | table_and_alert (also CS-701 from code while the AI assistant is off).
- ### Manual hardware controls
  room · default false
  Show operator hardware controls on zone pages. Off until enabled.
- ### Live dryback
  zone · default published
  Read-only: each zone's relative dryback from its peak, with the drop in VWC points beside it; always on, changes nothing.
- ### Rules
  dashboard · default visible
  Read-only: the doctrine rules with the room's live settings and a bounds-only double-check list.
- ### Zone links on notices
  dashboard · default on
  Each notice names its zones as links, and a merged notice flags every zone it covers; display fix, always on.
- ### Before the next shot
  zone · default published
  Read-only list of every pre-shot gate with pass or hold on the zone page; the gates themselves can never be switched off.
- ### Tank readout
  room · default false
  Optional room display preference; changes no watering.
- ### Zones as
  room · default cards
  Optional room display preference; changes no watering.
- ### Room climate
  room · default false
  Optional room display preference; changes no watering.
- ### Root-zone temperature
  room · default false
  Optional room display preference; changes no watering.
- ### Today against yesterday
  room · default false
  Optional room display preference; changes no watering.
- ### Room camera
  room · default false
  Optional room display preference; changes no watering.
- ### Equipment lanes
  room · default false
  Optional room display preference; changes no watering.
- ### Zone lanes
  room · default false
  Optional room display preference; changes no watering.
- ### Dryback drivers
  room · default false
  Optional room display preference; changes no watering.
- ### Reference rows
  room · default false
  Optional room display preference; changes no watering.
- ### Day curve in the planner
  room · default false
  Optional room display preference; changes no watering.
- ### Dryback markers
  dashboard · default off
  Optional relative percent-of-peak markers on short moisture history windows; a 30-day preset is always available.

**History and data (4)**

What the room records.

- ### Record grow days
  room · default false
  Keep a daily summary at lights-on for grow comparisons. Off until enabled.
- ### Cultivar
  zone · default empty
  Optional cultivar label entered in room setup and copied into each grow record.
- ### Long history source
  room · default recorder
  Use a tested read-only InfluxDB connection for room history; Recorder remains the default.
- ### Per-probe grow comparison
  dashboard · default off
  Select Off, Last grow or a recorded grow independently for each substrate sensor row. Historical row matching never changes sensor mappings or watering.

**Equipment and sizing (17)**

The room's hardware, substrate and probes.

- ### Pump and line timing
  room
  The pump prime time and the main-line lead time before each shot.
  Settings: Pump prime time (2), Main line lead time (1)
- ### Zone sizing
  zone
  Plants, substrate litres and drippers. Shot length comes from these.
  Settings: Plant count (4), Substrate volume (10), Dripper flow rate (1.2), Drippers per plant (2)
- ### Lights schedule
  room
  The lights-on and lights-off hours. The grow-day starts at lights-on.
  Settings: Lights on hour (12), Lights off hour (0)
- ### Substrate and drainage
  room
  What the room grows in, and how its runoff leaves it.
  Settings: Substrate (generic), Drainage (unknown), Sump power threshold w (20)
- ### Readings from probes
  zone
  How a zone's probes become its moisture and EC readings.
  Settings: Vwc method (Median), Ec method (Median)
- ### Runoff estimator
  room · default off
  off | shadow (publish the room-wide sump water-balance estimate) | shown_alerts (also CS-314 when a grow-day's sealed-room balance does not close) | ai (also a hint to the AI assistant); never waters.
- ### Sump litres per run
  room · default 0
  Litres one sump run empties (bucket test); 0 = unknown, then pump flow x run time, else the sealed-room closure.
- ### Sump pump flow
  room · default 0
  L/min, used with the run time when the litres per run are 0; 0 = unknown.
- ### Runoff reaches the sump within
  room · default 90
  Longest shot-to-sump delay tried (min); the estimator learns the best one.
- ### AC and dehumidifier run power
  room · default 50
  An AC or dehumidifier mapped by its power sensor counts as running above this (W).
- ### ACs and dehumidifiers
  room · default []
  Each unit's switch, state or power sensor, mapped in Equipment > Setup for the runoff estimator; read only.
- ### Room leaf temperature
  room
  Optional sensor mapping in Equipment > Setup; empty on existing and new rooms, read only.
- ### Zone leaf temperature
  zone
  Optional sensor mapping in Equipment > Setup; empty on existing and new rooms, read only.
- ### Room camera
  room
  Optional sensor mapping in Equipment > Setup; empty on existing and new rooms, read only.
- ### Room CO2
  room
  Optional sensor mapping in Equipment > Setup; empty on existing and new rooms, read only.
- ### Room PPFD
  room
  Optional sensor mapping in Equipment > Setup; empty on existing and new rooms, read only.
- ### Room daily light integral
  room
  Optional sensor mapping in Equipment > Setup; empty on existing and new rooms, read only.

**Controller app (16)**

Options of the controller app. Change them in the app's Configuration tab. They apply when the app restarts.

- ### AI provider
  app · default auto
  Controller app option.
- ### AI dry run (propose only)
  app · default false
  Controller app option.
- ### AI judges that run
  app · default all
  Controller app option.
- ### AI daily budget (USD)
  app · default 1.0
  Controller app option.
- ### AI calls a day
  app · default 5000
  Controller app option.
- ### AI budget warning (%)
  app · default 80
  Controller app option.
- ### AI model
  app · default claude-haiku-5-5
  Controller app option.
- ### AI key
  app · default empty
  Controller app option.
- ### Hold entities
  app · default none
  Controller app option.
- ### Feed EC sensor
  app · default none
  Controller app option.
- ### Feed pH sensor
  app · default none
  Controller app option.
- ### Sump power sensor
  app · default none
  Controller app option.
- ### Notification service
  app · default none
  Controller app option.
- ### Vitals interval (min)
  app · default 30
  Controller app option.
- ### Stage arc
  app · default slab_default
  Controller app option.
- ### Loop interval (s)
  app · default 60
  Controller app option.

**AI instructions and caching (7)**

- **House notes** — default empty. Administrator context in block C; empty preserves the existing prompt.
- **Grow context** — default {}. Optional structured room facts; does not change live substrate, stage, targets or sizing.
- **System cache TTL** — default 1h. 5 minutes or 1 hour; evidence remains at 5 minutes.
- **Block A breakpoint** — default true. Later breakpoints can also cache A because caching covers the cumulative prefix.
- **Block B breakpoint** — default true. Cache the cumulative prefix through the stage and substrate tables.
- **Block C breakpoint** — default true. Only present when room notes or structured context are set.
- **Evidence breakpoint** — default true. Keep the existing 5-minute evidence breakpoint; off removes it from future requests.

Every released feature here is a row of the project's feature matrix, which also records how it was tested and what is still unproven. [Read the feature matrix](https://cropsteering.growlabs.nz/docs/feature-matrix).

Source: https://cropsteering.growlabs.nz/features
