Extend TempQueue to all physical probes - #247
Open
claytono wants to merge 1 commit into
Open
Conversation
There was a problem hiding this comment.
Pull request overview
Moves temperature smoothing/outlier rejection (TempQueue) out of individual probe implementations and into the shared probe read pipeline, so directly sampled physical probes get consistent stabilization while Bluetooth/virtual/disabled probes preserve their current behavior.
Changes:
- Introduces a
uses_temp_queuesubclass declaration onProbeInterfaceand uses it to conditionally build per-port TempQueues. - Adds a shared
apply_temp_queue()step in the probe read pipeline (probes/main.py) and removes inline queue averaging from the baseread_all_ports(). - Updates each probe module to explicitly opt in/out of TempQueue via the new class declaration.
Reviewed changes
Copilot reviewed 21 out of 21 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| probes/base.py | Adds uses_temp_queue subclass contract, conditional TempQueue creation, and shared apply_temp_queue() pipeline step. |
| probes/main.py | Applies per-device TempQueue smoothing after each device read. |
| probes/ads1115.py | Opts ADS1115 probe into TempQueue handling. |
| probes/ads1115_adafruit.py | Opts Adafruit ADS1115 probe into TempQueue handling. |
| probes/ads1015_adafruit.py | Opts Adafruit ADS1015 probe into TempQueue handling. |
| probes/ds18b20.py | Opts DS18B20 probe into TempQueue handling. |
| probes/max31865.py | Opts MAX31865 probe into TempQueue handling. |
| probes/max31865_adafruit.py | Opts Adafruit MAX31865 probe into TempQueue handling. |
| probes/mcp9600_adafruit.py | Opts MCP9600 probe into TempQueue handling. |
| probes/prototype.py | Opts prototype probe into TempQueue handling. |
| probes/virtual_average.py | Explicitly opts virtual average probe out of TempQueue handling. |
| probes/virtual_highest.py | Explicitly opts virtual highest probe out of TempQueue handling. |
| probes/virtual_lowest.py | Explicitly opts virtual lowest probe out of TempQueue handling. |
| probes/virtual_median.py | Explicitly opts virtual median probe out of TempQueue handling. |
| probes/disabled.py | Explicitly opts disabled probe out of TempQueue handling. |
| probes/bt_meater.py | Explicitly opts Meater Bluetooth probe out of TempQueue handling. |
| probes/bt_meater_alt.py | Explicitly opts alternate Meater Bluetooth probe out of TempQueue handling. |
| probes/bt_meater_exp.py | Explicitly opts experimental Meater Bluetooth probe out of TempQueue handling. |
| probes/bt_igrill_alt.py | Explicitly opts iGrill Bluetooth probe out of TempQueue handling. |
| probes/bt_ibbq.py | Explicitly opts iBBQ Bluetooth probe out of TempQueue handling. |
| probes/bt_ibbq_alt.py | Explicitly opts alternate iBBQ Bluetooth probe out of TempQueue handling. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
The ADC probe implementations already use TempQueue to provide more stable temperature readings and reject outliers, but other physical probes return their readings without the same handling. This change moves TempQueue handling into the shared probe pipeline and requires each probe implementation to explicitly declare whether it should be used. Directly sampled physical probes enable it, while Bluetooth, virtual, and disabled probes retain their existing behavior.
claytono
force-pushed
the
tempqueue-shared
branch
from
August 10, 2026 18:56
792e121 to
fe44e5b
Compare
Owner
|
Thanks, I'll take a look over the next few days and merge in. |
Author
|
Thanks! Let me know if there is anything you'd like changed. Happy to adjust as needed. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The ADC probe implementations already use TempQueue to provide more stable temperature readings and reject outliers, but other physical probes return their readings without the same handling.
This change moves TempQueue handling into the shared probe pipeline and requires each probe implementation to explicitly declare whether it should be used. Directly sampled physical probes enable it, while Bluetooth, virtual, and disabled probes retain their existing behavior.