Repository navigation
fix: temperature card filters out mislabeled voltage/fan sensors (0.1.40-beta3) - #202
Merged
Merged
Conversation
The Unraid server reports every lm-sensors channel under systemMetricsTemperature, all mislabeled unit:CELSIUS, including a fan tach (value = RPM, e.g. 1753) and voltage rails (value = Volts), all type:CUSTOM. Its server-computed summary therefore named the fan as the hottest "temperature" (~91°, "CPU Fan 1753°") and inflated the average. Stop trusting the server summary. Select the raw sensors[] list on both the subscription and the GetMetrics poll, project it to an Apollo-free TempSensorSample seam (mirrors IfaceSample/selectThroughput), and recompute hottest/average/warning+criticalCount in selectTemperature, keeping a channel iff value <= MAX_PLAUSIBLE_C (130) && (type != CUSTOM || value >= MIN_PLAUSIBLE_C (8)): the upper cap drops fan RPM regardless of type, the lower floor drops voltage rails but only for the untyped CUSTOM catch-all. Empty kept set -> Temperature.UNKNOWN. Tests drive selectTemperature and the Apollo mapper with a fixture shaped like the real 2026-05-30 server data, pinning that a fan is never shown as the hottest temperature and its false CRITICAL never inflates the count. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Document the temperature sensor mislabeling fix in ADR-0043 (server reports voltages/fans as CELSIUS type CUSTOM; client now selects sensors[] and filters by type + plausibility band, recompute the summary; report upstream to unraid/api), add the plain-language CHANGELOG bullet under [0.1.40-beta3], and bump versionName 0.1.40-beta2 -> 0.1.40-beta3, versionCode 108 -> 109. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
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.
What
beta2's Temperature card showed nonsense readings — roughly 91° plus a "CPU Fan" sensor reading 1753° — because the server reports voltages and a fan tachometer under
systemMetricsTemperatureall mislabeled withunit: CELSIUS. The card trusted the server's summary, so those mislabeled sensors leaked straight into the temperature display.Root cause
Root-caused from live server data: the Unraid server's
systemMetricsTemperaturesummary mixes in voltage sensors and a fan tach, each taggedunit: CELSIUS. A voltage like ~1.2 and a fan reading like 1753 therefore appeared as bogus "temperatures."Fix
Stop trusting the server's temperature summary. Instead, select the raw
sensors[]and recompute the temperature client-side:type.selectTemperatureseam).This keeps the Temperature card honest regardless of how the server mislabels mixed sensor units.
Context
🤖 Generated with Claude Code