In-tent climate
Temperature, RH, and VPD near the canopy from the internal SHT41. Sampled at 1 Hz, smoothed with a 10-sample rolling average before it touches the PID loop.

Every second, both SHT41 probes hand the hub a fresh reading. A 10-sample rolling average feeds PID loops for light, exhaust, and humidifier. Schedules layer on top, aware of room phase. The headline example: the hub compares in-tent VPD to outside air before it decides whether to pull air in or dose the humidifier.
All of this runs on the ESP32-C6. The app is for tuning and review, not for keeping the room alive.
AGS reacts to VPD and the inside/outside delta, not to raw temperature or humidity alone.
Temperature, RH, and VPD near the canopy from the internal SHT41. Sampled at 1 Hz, smoothed with a 10-sample rolling average before it touches the PID loop.
The external SHT41 answers the one question smart plugs can not: is the air outside cooler, drier, or wetter than the room? The hub uses the delta to decide whether to pull outside air or dose the humidifier.
Per-channel schedules with ramp-up and ramp-down for the light, phase-aware setpoints for veg, flower, and dry, and a lifecycle schedule that walks the room from seedling to harvest.
The on-device PID has been tuned against engineering-sample rooms since late 2025. Anti-windup stops the classic first-hour overshoot, and the controller arbitrates humidifier vs exhaust by weighting VPD rather than either axis alone.

Light, exhaust, and humidifier are the three automation branches in the shipping firmware. Heater, cooler, dehumidifier, and circulation are firmware enum stubs - on the roadmap, not in release.
A PWM channel drives the dim line for a ramp at sunrise and sunset. On-off goes to a commissioned Matter plug. Both fall under the same lifecycle-phase schedule.
A PWM channel owns the exhaust fan. PID targets temperature with RH and VPD as secondary signals, using the outside probe to decide whether pulling air is a good idea right now.
Humidifier output follows RH and VPD against the current phase target. Small loads can ride a PWM channel directly; mains humidifiers sit on a Matter plug with short safe-state holds.
Today you schedule IR shots manually from the app. Sensor-triggered IR (fire AC 'cool' when VPD crosses a band) is in development - it is not shipping yet, and it will not be claimed as shipping until it is.
PID with anti-windup reduces the classic overshoot when the light turns on. A ramp on the dim line softens the 0-to-100 percent moment instead of slamming it.
The loop reacts to VPD weighted against both probes, not to RH or temperature alone. The humidifier and the exhaust stop trading the room back and forth.
If the outside SHT41 says the air is cooler and drier than the target, AGS schedules the intake and exhaust to help. If the air outside is worse, the hub keeps the tent sealed.
Sensing, PID, PWM, IR, and schedules all live on the hub. If the router drops, the room keeps running. When the cloud reconnects, history syncs.




Matter plugs and IR commands get the same schedule surface as the PWM channels. See how the hub grows beyond the on-board rails.