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:
Currently planted in an online growing zone and counted in active climate/VPD control.
Observed, photographed, or useful as a crop reference, but not counted in active control.
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.
| Crop | Zone | System | VPD Sensitivity | Profile |
|---|---|---|---|---|
| Lettuce | East | Hydro | High (bolts above 80F) | Profile |
| Strawberry | East | Hydro | High | Profile |
| Pepper | East | Hydro | Moderate | Profile |
| Canna Lilies | South | Soil | Very low (tolerates dry air) | Profile |
Observed/Reference
| Crop | Current Status | Notes |
|---|---|---|
| Vanda Orchids | Center observed/reference | Center zone is offline; orchids are not counted in active control until plumbing/status is reconciled. |
| Herbs | Mixed reference | Species-level herb guidance; no active herb record in v_position_current. |
Planned/Retired
| Crop | Best Zone | Notes |
|---|---|---|
| Basil | East/West | Prior planting and future high-value herb candidate; no active planting now. |
| Cucumbers | West | Warm-season, vigorous vining candidate. |
| Tomatoes | South | Future 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.