Community · E2 · artifact verified

Steer hydroponic crops with typed judges

A Home Assistant add-on runs a crop-steering irrigation engine with Jev judging what fixed rules got wrong - ramp timing, probe trust, shot landing, EC moves, alerts - inside code-enforced physical limits; the README replays real Jev answers from 27 Sep 2026.

01 · Role in the system

What Jev does here

Ten judges replace the ambiguous ifs of the original rule engine: when the morning ramp starts and ends, whether a probe is telling the truth, whether a water shot landed, why pore EC moved, when the day's watering stops, why one zone drinks differently, and which alert is worth waking someone for. Each judgment carries the owner's own doctrine - 99 wiki rules plus a per-day stage arc - as facts, while code keeps everything physical: pumps, valves, shot sizes, the daily floor and cap, every rescue. Replayed cases show the split: a probe flat for four hours while siblings rose is judged stuck at p 0.92 and set aside; EC climbing after dilute shots while feed drops reads as a salt front still passing at p 0.93, so steering stays wetter. With Jev off, slow or wrong-footed, the engine runs exactly as the original.

02 · Control boundary

Where Jev sits

Jev as the judgment layer of a deterministic control loop: code enforces every physical constraint and owns the fallback, Jev only decides inside the envelope, and each question carries the grower's doctrine as facts.

Code owns the loop, permissions, thresholds, validation, and side effects. Jev owns only the bounded judgments described above.

03 · Known limits

What this evidence does not prove

  • Doctrine is one grower's wiki (99 rules); no multi-grower or multi-season evidence.
  • The 27 Sep 2026 validation table is author-run; metrics are not independently reproduced.
  • Requires a Home Assistant install with the f2_control add-on and a TypeSafe API key.

04 · Attribution

Public sources

This is a Community record: the project was published by a third-party community author.