Most grow automation is glorified RH-thresholding. Plants get screwed because the system reacted to a number that doesn’t actually drive transpiration. We took a different approach. This guide explains the principles behind GrowVPD’s automation engine — what we optimize for, why, and how that compares to commercial controllers costing 50× as much.

1. Why VPD, not just humidity

Plants don’t care about relative humidity. They care about vapour pressure deficit — the gap between the moisture the air is currently holding and the maximum it could hold at that temperature. VPD is what drives transpiration. RH alone is half the story.

Two scenarios illustrate the difference:

  • 20°C, 70% RH → VPD ~0.7 kPa → perfect for late veg.
  • 30°C, 70% RH → VPD ~1.27 kPa → flowering territory; veg plants would stress.

The RH is identical in both scenarios. But the temperature difference produces a 75% difference in VPD — one is veg-friendly, the other is too high for veg. An RH-only thermostat misses this entirely. A VPD-aware automation reads both, computes VPD, and acts on the actual physiological signal.

Principle 1

Automate on VPD, surface RH for context

Every automation in GrowVPD reads the current VPD and compares against the stage-target band. RH is shown for context (and as a fallback when only one sensor is available), but the trigger is always the VPD calculation.

2. Stage-aware setpoints

VPD targets are not static. A seedling wants 0.4–0.8 kPa; late flower wants 1.2–1.6 kPa. If your automation uses one threshold across the entire grow, you’re hammering seedlings or under-driving flowers. Either way, yield suffers.

GrowVPD ships six built-in stage presets: clone, seedling, early veg, late veg, early flower, late flower. Each comes with stage-specific defaults for VPD, day temp, night temp, RH range, CO2 setpoint, and PPFD target. When you change the grow’s stage in the diary, every automation rule for that tent re-baselines automatically.

StageVPD targetDay tempNight tempRH bandPPFD
Clone0.4–0.824–26°C22–24°C70–80%150–300
Seedling0.6–0.923–26°C21–23°C65–75%200–400
Early veg0.8–1.124–28°C22–24°C55–70%400–600
Late veg1.0–1.324–28°C21–24°C50–65%500–700
Early flower1.1–1.423–27°C20–23°C45–55%600–900
Late flower1.2–1.622–26°C18–22°C40–50%600–1100

You can override any of these per tent. But for most growers the defaults give you a working setup in under a minute.

Principle 2

Stage-driven, not user-driven

You shouldn’t have to manually re-tune setpoints when you flip 12/12. The diary knows the grow stage, the automation engine reads it, every rule re-bases. One source of truth.

3. Hysteresis & cooldowns

If you set “humidifier on when RH < 55, off when RH > 60” with no other safeguards, here’s what happens: humidifier kicks on at 54.9%, kicks off at 60.1%, kicks back on at 59.9% three minutes later, and so on. You’ve built a relay-cycling machine that wears out the humidifier and your patience.

GrowVPD enforces hysteresis on every rule:

  • Trigger band: the threshold to turn on (e.g. VPD > 1.5 kPa).
  • Restore band: a separate threshold to turn off (e.g. VPD < 1.3 kPa). Always more conservative than the trigger to prevent flapping.
  • Min ON time: e.g. once on, stay on at least 5 minutes. Prevents tiny on-off blips.
  • Min OFF time: e.g. once off, stay off at least 3 minutes before re-triggering.
  • Max run time: cap continuous runtime, e.g. dehumidifier never runs > 60 min straight (forces a cooldown).

These knobs ship with stage-aware defaults but are user-tunable per rule. The result: stable behavior, low duty cycle, devices last for years.

4. Emergency override

Sometimes a single number is so out-of-bounds that all other rules become irrelevant. If your tent hits 38°C, the automation engine doesn’t care about your stage’s VPD band — it cuts the lights and slams the exhaust to 100% immediately.

Our Emergency Override layer fires when:

  • Temperature > 35°C in any tent
  • Humidity > 90% AND temperature > 28°C (mold risk)
  • VPD > 2.5 kPa for > 30 min (drought stress)
  • CO2 > 2000 ppm in inhabited spaces (safety)

When triggered, normal rules pause. Emergency actions execute (cut lights, exhaust max, dehumidifier off, alert push). When sensors recover into safe range for 10 minutes, normal rules resume. You get a notification with the timeline so you can investigate root cause.

5. Auto-stage detection

This is one of our newer features. Once a week, an analysis worker looks at:

  • Photo-period of the grow light (you set 12/12 or it reports back automatically)
  • Plant height growth rate from your diary photos
  • Days since seed/clone
  • Strain default flowering window

If the inferred stage diverges from your manually-set stage by >7 days, you get a non-blocking suggestion: “You marked Late Veg, but your light is 12/12 and stretch has begun. Want to switch to Early Flower?”. One tap accepts; the next automation cycle uses the new stage’s targets.

Non-blocking is the key word. We never silently change your stage. You stay in control; we surface the data.

6. Light dimming ramp

Sudden 0→100% light is a stress event. Plants ramp transpiration; if VPD isn’t in band, they wilt or burn the meristems. Commercial controllers rarely solve this; growers either do it manually or skip it.

GrowVPD’s dimming ramp lets you specify, per light:

  • Sunrise duration: minutes to ramp 0% → 100% (default 30 min in flower).
  • Sunset duration: minutes to ramp 100% → 0% (default 30 min).
  • Hold percentage: nighttime “moonlight” level if you want one (default 0%).

Native ramp passthrough is supported on Mars Hydro, AC Infinity, SANlight, and selected Tuya light strips. For lights without native ramp, we approximate via stepped dimming every minute.

Principle 3

Smooth state changes, never abrupt

Whatever the system can ramp, it should ramp. Cool-tube fans, EC pumps, lights, dehumidifiers — smooth transitions reduce plant stress and equipment wear.

7. Night CO2 hold

If you supplement CO2, you almost certainly know you should cut it during dark cycles (plants don’t photosynthesise without light, so extra CO2 is wasted — and elevated CO2 at night actually reduces respiration efficiency).

GrowVPD’s Night CO2 Hold automatically:

  • Detects light-off events from your light schedule
  • Sets the CO2 setpoint to ambient (~400 ppm) at lights-off + 30 min
  • Restores supplementation setpoint at lights-on - 30 min
  • Logs the energy/CO2 savings to your monthly cost tracker

Saves around 25% of CO2 consumption for a typical flowering setup — meaningful on tank/canister supplementation.

8. Three-point band visualisation

The dashboard shows your tent’s VPD as a single number, but the underlying control logic uses a band:

  • Lower edge: turn ON dehumidifier / increase exhaust to push VPD up
  • Mid-point: target. Ideally hover here.
  • Upper edge: turn ON humidifier / reduce exhaust to push VPD down

The Three-Point Band card visualises this at a glance. Green if you’re inside the band; yellow if drifting; red if outside. The thumb shows live VPD; the band shifts in real-time when you change stage. Tap to reveal the underlying rules and edit setpoints.

This UX pattern is “at-a-glance OK / not OK” that’s missing from most grow apps. Most show RH and temp as separate gauges; you have to do the VPD math in your head.

9. On-device architecture

The automation engine runs entirely on your phone. Sensor reads, rule evaluation, command dispatch — all on-device. The cloud is a bonus, not a requirement.

Why this matters:

  • Internet outage: rules keep firing. Your dehumidifier still kicks on if RH spikes.
  • Cloud-rate limiting: doesn’t affect you. We don’t poll cloud for every rule.
  • Privacy: sensor data never leaves your home unless you explicitly opt-in to cloud sync.
  • Latency: no round-trip through Tuya/SmartLife/etc. LAN command takes ~80 ms.

The single exception: the phone needs to be running the app (or Hub Mode) for the engine to evaluate rules. We address that with Hub Mode — an old phone as a 24/7 grow guardian. Or in Q3 2026, a Raspberry Pi home agent.

Principle 4

Phone is the controller, cloud is optional

The phone is more powerful than most $2500 commercial controllers. Use it. Cloud is for sync, sharing, and history — never for the hot path of automation.

10. Cloud mirror (opt-in)

Some growers want the automation logic to keep running even if the phone is dead, lost, or factory-reset. For them we offer Cloud Mirror: an opt-in feature that pushes a copy of your rules to Tuya’s Scene Linkage cloud (or AC Infinity’s cloud rules, etc.). The cloud version then runs as a fallback when the phone is offline for >1 hour.

Cloud Mirror is:

  • Opt-in: off by default. Toggle in Settings → Automation → Cloud Mirror.
  • Per-rule: you pick which rules mirror. A rule with private context might not.
  • One-way: phone is the source of truth. Cloud copy refreshes when you edit on phone.
  • Translatable: a rule like “VPD>1.5 turn on humidifier” on phone becomes “humidity<X turn on humidifier” on cloud (cloud doesn’t do VPD natively, so we degrade to RH).

For most growers, Hub Mode + LAN is enough. Cloud Mirror is for the “commercial nursery” tier.

11. Versus $2500 commercial controllers

TrolMaster Hydro-X (~$1500), Growlink Climate Pro (~$2500), Agrowtek (~$2000+) are well-engineered hardware boxes that run the same kind of logic GrowVPD does. We’ve studied their datasheets and behavior. The differences:

$2500 ControllerGrowVPD ($4–5/mo Pro)
VPD-driven climateYesYes
Stage-aware setpointsYesYes
Hysteresis & cooldownsYesYes
Emergency overrideYesYes
Light ramp / sunrise-sunsetYesYes
Auto-stage detectionNoYes
Diary integrationNoYes (deeply)
Photo timelineNoYes
Strain-awareNoYes
Multi-platform devicesBrand-lockedTuya, MarsHydro, ACI, Spider Farmer, Vivosun, Bluelab, SANlight
Replaceable BYOD hardwareNo (sealed)Yes (use any BYOD device we support)
Cost$1500–3000 hardware$0 hardware (use phone) + Pro $4–5/mo
Locked to brand if hardware diesYesNo

We’re not better at everything. A purpose-built controller has dedicated relays, hardened weather-proof enclosures, and 5-year warranties. If you’re running a 5000 sq ft commercial facility, those things matter. For 95% of indoor growers (1–6 tents at home), GrowVPD + a phone + BYOD smart plugs gives you the same control logic at a fraction of the cost. And if your light or fan dies, you swap it for any other supported brand — no $1000 lock-in.

Honest take. We’re not selling hardware, we’re selling the logic. The hardware is commodity now: $8 plug, $80 inline fan controller, $20 humidifier. The smarts on top is what differentiates a good harvest from a great one. That’s where we live.

12. FAQ

Q: Can I disable the stage-aware presets and use my own setpoints?

Yes. Settings → Automation → Use stage presets → off. From then on, every rule uses fixed setpoints you specify. Most growers leave presets on and override individual rules; very few want a fully manual setup.

Q: How fast does the engine react to a sensor change?

Sensor read interval is 30 sec for LAN sensors, 5 min for Cloud Bridge sensors. Rule evaluation runs every 30 sec when the app is foreground, every 15 min in background (battery-aware) or every 30 sec in Hub Mode. Command dispatch is sub-second on LAN.

Q: What happens if two rules conflict (one says turn on, another says turn off)?

Rules have a priority field (1–100, default 50). Higher priority wins. Emergency override rules are always priority 100. If two rules tie at the same priority, the one that fired most recently keeps its decision (anti-flap).

Q: Can rules run on a schedule, not just sensor-triggered?

Yes. A rule can be sensor-driven (RH>X), time-driven (every day at 18:00), or event-driven (light just turned on). Mix them: “Between 22:00 and 06:00, if VPD>1.4 turn on humidifier”.

Q: Do I need to write any code?

No. The rule editor is a wizard: pick a tent, pick a sensor, pick a threshold, pick a target device, pick the action, save. The default rules cover >90% of common automations out of the box. Power users can edit JSON if they really want to, but that’s for the tinkerers.