view →
Setup wizard
·
Let's dial in F2 for a strong start.
Five quick questions. At the end you'll see exactly what the controller will do and why, then you choose whether to apply it. Nothing is written to Home Assistant until you press Apply — and everything stays editable in the Tune tab afterwards.
What matters most this run?
Where is the crop right now?
Loads the Athena preset for EC and phase targets.
How hard do you want to steer?
🌿 VegetativeGenerative 🌸
→ overnight dryback ≈
Block & dripper hardware
Sizes the shots — get these right and the mL figures land where you expect.
Here's what the controller will do
Apply writes the steering + stage setpoints into the Tune editor and (if you choose) to Home Assistant for the active Tune zone + facility globals. Switch zones in Tune to push the others. Everything stays editable.
What the system is doing right now
Next watering in
Needs you
Zones
Controls
Recent activity
Engine log

Advisories — what needs you

All clear — nothing needs you
F2 is steering as intended.

Vitals

Irrigation — live

⚠ pump dead-head
Engine

Plant-State AI

Reading F2…

Source tank

· L left · pH · EC
emptyrefill soonfull

Room 3D

Room camera

Camera feed unavailable in demo.

What's happening

No recent activity.

Substrate · VWC + pore EC + dryback

refill peak · pre-irrigation trough · ↓X% automated dryback · – – field capacity

All zones · live state & setpoints · writes to HA live

setpoints in
Manual hardware

Per-zone recipe · each zone independent · writes to HA live

edit a value → Enter or blur to save

Source water & engine

Volume fed vs daily cap
Irrigation frequency · today

Feed & nutrient tanks

Batch / feed tank
Remaining
Feed pH
Feed EC
Pore EC
Pump since fill
Dosing now:
Nutrient stock tanks

Room camera

F2 · refreshes ~30s

Live climate

green band = on-target · grey line = mean · dashed amber = ±2σ control limits · red dot = special-cause (outside limits)
Air temp °C
smooth ~20 min · sample 1–5 min · noise ±0.4 °C
Humidity %
smooth ~20 min · sample 1–5 min · noise ±2.5 %
Air VPD kPa
smooth ~20 min · derived · noise ±0.08 kPa
CO₂ ppm
smooth ~15 min · sample 1–5 min · noise ±40 ppm

F2 room controls

live · writes to HA immediately, no undo

Room map — hotspot watch

Schematic. Back-left corner tracked separately — it runs hot.
All raw readings
live values across all zones · edit any cell, then Apply to HA
System Strategy ⚡ writes to HA live
Steering dial
🌿 vegetative · shallow drybackgenerative · deep dryback 🌸
VWCpore ECfield capacityemergency floor· live actual· glowing dot = draggable
Zone 1Zone 2Zone 3· 24h VWC, all zones overlaid
first shot P1 shots last shot total dryback peak EC ● live F2
🔬 F2 physics & limiting factors

Why the day looks the way it does.

A full-day physics simulation, not a drawing: the environment (PPFD, CO₂, temp, RH → VPD) sets a transpiration rate that drys the substrate back; the crop-steering controller fires shots; each shot mixes feed EC into the pore by the litres applied (shot % × substrate L); when VWC hits field capacity the overshoot runs off and flushes salt out, pulling pore EC toward the feed EC. The white line is VWC, the pink line is pore EC on the right 0–10 axis. Edit any field or drag a glowing handle and the whole day re-solves. Environment seeded live from F2; everything else from number.crop_steering_*.

Room-shared: field cap · on / off edit on Room →
Parameter

Limiting factors — Zone

Liebig's law of the minimum — your ceiling is set by the worst factor, not the average. Biggest bottleneck first; fix it, then the next.

Dryback vs drivers · multi-day

the steady-state day repeated — scroll to read how the dryback rate tracks PPFD, leaf VPD, temp & CO₂.
VWC / drybackPPFDtempleaf VPDCO₂live VWC

Room environment · 24h

same lights-aligned timeline as the irrigation card — read root-zone, air, light & balances as one synchronized story.
Climate · VPD leaf air · temp RHgreen = in-band 0.8–1.4 kPa · drag temp/RH dots
How to read: Pink = leaf VPD, the number that actually drives the plant — keep it inside the green band (0.8–1.4 kPa). Above = air too dry, stomata close, growth stalls; below = air too wet, soft growth & mould risk. Higher temp or lower RH pushes VPD up. Drag the temp / RH dots and watch the pink line move against the band.
Dew point & condensation margin · leaf temp dew pointred ribbon = <3°C → condensation risk
How to read: Keep the orange leaf-temp line well above the blue dew-point line. The vertical gap is your safety margin; when it drops under 3 °C the red ribbon appears and water condenses on leaves & surfaces (botrytis / powdery mildew). The risk window is the coldest part of the night — watch the lights-off side.
Moisture balance · transpiration in dehum capacity outfill above the line → RH will climb · drag dehum
How to read: Green = water the canopy breathes into the air (transpiration). Pink dashed = what your dehumidifier can pull back out. Wherever green fills above the pink line, RH is climbing faster than you can remove it. Drag the dehum handle to size the gear to the load.
Light · cumulative DLI target pace · photosynthesis %
How to read: Green = light banked so far today; grey dashed = the pace needed to hit the daily target by lights-off — staying on or above the dashed line means you'll make target. Yellow (right axis) is photosynthesis efficiency: it plateaus, so light added past the flat part is wasted energy, not extra growth.
Leaf vs air temp · leaf airgap = transpirational cooling / stress · drag air
How to read: A healthy leaf sits a degree or two below air temp — that gap is transpirational cooling. No gap, or leaf above air, means the plant has shut its stomata (heat or water stress). A very large gap = very high transpiration; cross-check VPD and irrigation.
CO₂ utilization · room ppm canopy uptake g/henriched by day · ambient at night · drag CO₂
How to read: Purple = room CO₂ (enriched ~1200–1400 ppm by day, ambient at night). Green = how fast the canopy is consuming it. If uptake stays high while ppm sags, the plants are CO₂-limited — raise enrichment or fix distribution. At night uptake should fall to near zero.
Heat / cooling · sensible load (lights) AC capacityarea above the line = under-cooled · drag AC
How to read: Orange = sensible heat the lights dump into the room; blue dashed = your AC's cooling capacity. Any area where orange rises above the blue line = under-cooled, room temp will climb. Drag the AC handle to size cooling to the lighting load.

Live values pulled from F2 on 2026-06-07. Hardware (field capacity, substrate volume, lights) is shared across zones; everything else is per-zone. Next step: write changes back to the number.crop_steering_zone_N_* entities with a confirm step.

Does

Affects

Driven by

Analyze — what the day is telling you

Every card reads live off your real F2 sensors (last 24 h + now). Green = in band, red = out of band. Each one says what it is, what good and bad look like, and what to do.

🕐 Equipment — last 24 h lights · pump · mainline · valves · recirc · CO₂ · dehu
−24h−12hnow
What: when each piece of hardware was on (coloured) vs off (grey). Good: lights one clean block = your photoperiod; pump = short spaced bursts; valves cycling in step; recirc closed during a shot. Bad: pump machine-gunning (many tiny bursts back-to-back → shots too small) or a valve stuck. At-a-glance hardware health.
💧 Substrate moisture (VWC) — 24 h dryback per zone
What: each zone's substrate moisture trace. Good: a clean sawtooth — jumps on a shot, drifts down (dryback). Bad: a flatline (not steering → EC stacks) or a cliff to the floor (over-water then starve). Generative wants a 40–50% dryback off the daily peak.
🧂 Pore EC vs target — 24 h per zone · dashed = target
What: root-zone salt per zone vs its EC target (value goes red when >1.3× target, green in band). Good: tracking near the dashed line. Bad: climbing away (stacking — shots too small / no runoff) or well below (feed too weak). Rising EC while VWC is flat = the slab isn't flushing → needs a bigger, draining shot. Pore should run ≈1–1.5× the feed EC.
🚰 Water · substrate temp · phase per zone, today
What: litres each zone drank since lights-on, its root-zone temp, and its current phase. Good: same-room zones drink alike; substrate 20–24°C. Bad: one zone far higher (channelling / leak — water in, VWC not rising) or near zero (stuck valve / too wet); cold roots (<18°C) slow uptake.
🌡️ Climate drivers — 24 h these set the transpiration + dryback rate
What: air temp, humidity, VPD, CO₂, light (PPFD) and daily light total (DLI) — the environment that drives how fast the plants drink. Value is green in band, red out. Good: VPD 0.8–1.5 kPa, temp 20–28°C, RH 55–65%, CO₂ 800–1400 ppm, DLI 20–45. Bad: any out of band — that's usually why a dryback is too fast or too slow.
🎯 Limiting factor (Liebig) your ceiling = the worst factor, not the average
What: every environmental factor ranked by how far it is outside its ideal band. The ⛔ at top is your current bottleneck — fix that first, the bar shows how far off. Good: all green / short bars. Bad: a long red bar = the one thing capping yield or potency right now. Liebig's law: the worst input sets the ceiling.
⚗️ Feed / source water what's going IN the dripper
What: tank pH and EC — the marker is the live reading, the green band is the target. Good: pH 5.5–6.5, feed EC 2.0–3.5 mS. Bad: off-band feed blocks irrigation (the engine won't water with bad water) and is the usual cause of a zone sitting dry. Fix the feed before chasing the substrate.
Facility ops — strategy, arm/pump & adaptive write to HA immediately, no undo. Per-zone setpoints live in Zones; recipe in Setpoints.

Live readings

Active strategy

Arm & pump

Relays & solenoids

No hardware relays found on this install.

Adaptive steering

Engine

Recent activity

No recent activity.
Drag to orbit, scroll to zoom, right-drag to pan · lit rooms have their lights on · click a grow room to jump to its dashboard.
the recipe driving the setpoints across the grow
Plant-State AI
Claude · live F2 context
Pump & irrigation
manual control · writes to HA live, no undo
Main pump power
Pump pressurised with all valves shut — dead-heading. Stop it now.
disables system + auto, then shuts pump · main line · all 3 valves
Hardware
System gates
esc
Open the guide ↗