Problem / motivation
wrap_coach.recommend() currently reasons only about the probe's own temperature/rate. In practice a probe-only view can misread what's happening — e.g. a lid-open check briefly drops the probe reading too (not just the grill), which the coach could mistake for "not rising" advice ("worth checking the fire, pellets, or lid seal") when actually nothing is wrong, it just settled again a tick later. Conversely, a genuine flame-out shows up in the grill temp (already detected separately by poll.py's check_temp_anomaly()) well before it necessarily shows in a slow-to-respond probe reading.
Proposed solution
- Pass the grill temp/rate alongside the probe series into
wrap_coach.recommend() (or a new recommend_for_probe() parameter).
- Cross-reference: if the grill temp also dipped/recovered in the same window, treat a probe dip as a likely lid-open/read noise rather than "check the fire" advice; if the grill is genuinely low vs. its set point at the same time, that strengthens (not duplicates) the existing
check_temp_anomaly() signal.
- Keep the rule set readable — this is deliberately not ML (see wrap_coach.py's own docstring); a few more
ifs cross-referencing grill data is in scope, a model is not.
Alternatives considered
Leaving grill-temp anomaly detection and probe-based coaching as fully separate signals (current state) — simpler, but produces the exact false-positive/miss described above; noted as a known limitation when Wrap Coach shipped (PR #16).
Problem / motivation
wrap_coach.recommend()currently reasons only about the probe's own temperature/rate. In practice a probe-only view can misread what's happening — e.g. a lid-open check briefly drops the probe reading too (not just the grill), which the coach could mistake for "not rising" advice ("worth checking the fire, pellets, or lid seal") when actually nothing is wrong, it just settled again a tick later. Conversely, a genuine flame-out shows up in the grill temp (already detected separately bypoll.py'scheck_temp_anomaly()) well before it necessarily shows in a slow-to-respond probe reading.Proposed solution
wrap_coach.recommend()(or a newrecommend_for_probe()parameter).check_temp_anomaly()signal.ifs cross-referencing grill data is in scope, a model is not.Alternatives considered
Leaving grill-temp anomaly detection and probe-based coaching as fully separate signals (current state) — simpler, but produces the exact false-positive/miss described above; noted as a known limitation when Wrap Coach shipped (PR #16).