Crop Profiles

Each crop has a 24-hour diurnal profile that defines what temperature and VPD it needs at each hour. The tightest envelope across active-control crops in a zone becomes the setpoint the ESP32 enforces. When you change what’s planted, the control targets change automatically.

For launch, Verdify separates crop pages into three statuses:

Active Control

Currently planted in an online growing zone and counted in active climate/VPD control.

Observed/Reference

Observed, photographed, or useful as a crop reference, but not counted in active control.

Planned/Retired

Future, prior, or candidate crops with profiles retained for planning.

Source rule: the active-control count comes from occupied v_position_current crop records in online growing zones. The center zone is excluded because it is offline and has no active planting.

Active Control

Final launch count: 4 active-control crop profiles.

CropZoneSystemVPD SensitivityProfile
LettuceEastHydroHigh (bolts above 80F)Profile
StrawberryEastHydroHighProfile
PepperEastHydroModerateProfile
Canna LiliesSouthSoilVery low (tolerates dry air)Profile

Observed/Reference

CropCurrent StatusNotes
Vanda OrchidsCenter observed/referenceCenter zone is offline; orchids are not counted in active control until plumbing/status is reconciled.
HerbsMixed referenceSpecies-level herb guidance; no active herb record in v_position_current.

Planned/Retired

CropBest ZoneNotes
BasilEast/WestPrior planting and future high-value herb candidate; no active planting now.
CucumbersWestWarm-season, vigorous vining candidate.
TomatoesSouthFuture heat-loving floor-pot candidate.

How Crop Profiles Drive Control

The band function (fn_band_setpoints) reads the crop profiles for the current hour and computes the composite target: the tightest range that keeps active-control crops comfortable. This band becomes the ESP32’s temp_high, temp_low, vpd_high, vpd_low setpoints, updated every 5 minutes.

Per-zone VPD targets (fn_zone_vpd_targets) take this further: each zone’s mister target comes from the specific crops planted there. The firmware’s stress-score algorithm picks the most stressed zone for each mist pulse.

Band-owned values and planner-writable tactical values are separated in AI-Writable Tunables.