Skip to content

v2.9.0 — Outdoor mode, custom thresholds, compact mode, localization, and more

Choose a tag to compare

@KadenThomp36 KadenThomp36 released this 13 May 18:32

First stable release of the 2.9 line. Aggregates bug fixes plus six new features tested through three pre-release candidates.

Install via HACS: search for Air Quality Card → Update.

Bug fixes

  • Graph X axis is now time-based (#22). Spikes appeared at the wrong X position when a sensor reported unevenly. Plotting now follows the configured time window, matching HA's native history-graph behavior.
  • CO2 status label now shows all 5 tiers including "Moderate". Previously skipped tier — 800–1000 ppm was mislabeled.
  • Humidity & temperature status at exact boundary values (50.0%, 60.0%, 22.0 °C, 24.0 °C, °F equivalents) now agree with the color.

New features

  • #25 — Outdoor-only mode. Configure only outdoor_*_entity entities (no indoor sensor required). The card promotes them to primary slots, computes the status badge from outdoor values, and hides the recommendation strip.
  • #23 — Min/max display via show_min_max: true. Min/max values are overlaid at the actual data points on each graph, not as a separate caption — you see when the extremes happened.
  • #21 + #24 — Per-metric custom thresholds. Override any default with <metric>_thresholds: [a, b, c, d]. Example for tropical climates: temperature_thresholds: [22, 25, 28, 31].
  • #20 — Compact display mode via display: compact. Title + status badge only, with HA-native tap_action / hold_action / double_tap_action. Ideal for overview dashboards. Skips the history fetch for faster initial load.
  • #19 — Configurable sensor order via order: [metric1, metric2, ...]. Use the visual editor's multi-select to tick metrics in display order.
  • #10 — Localization for the status badge, recommendations, recommendation subtitles, radon advisory titles, and editor labels. Languages: English, Spanish, French, German. Spanish/French/German contributed by @b0rv3g4r4 on PR #11 — thank you.

Other changes

  • Internal refactor: per-metric color/status helpers now share a METRIC_DEFS table with thresholds, color scales, and status labels. Easier to extend, less duplication, sets up future enhancements.
  • Updated _renderGraph gradient stops to follow points by X position (not by index), so colors stay aligned with the time-based line.
  • README documents the air_quality_entity passthrough behavior (#18).

Known limitations

  • Per-sensor status labels (Safe / Low / Moderate / High / Dangerous on each metric) are still in English regardless of language setting. The status badge at the top is translated. Will land in a follow-up.
  • Radon advisory subtitle prose is still English; the title is translated.
  • Reordering sensors via the editor stores values in click order — to reorder after the fact, untick and re-tick. A drag-handle widget would be the right follow-up.

Credits

  • Translations: @b0rv3g4r4
  • Thresholds: WHO 2021 Air Quality Guidelines, ASHRAE Standard 62.1, EPA carbon monoxide & radon guidelines

What's next

The 2.9 line is done. Future ideas filed in issues: a delta-based temperature comparison (#21 follow-up), Portuguese localization (offered by @mzspicoli on #10), drag-and-drop sensor reordering.

If you find a regression, please open an issue with your config and a screenshot.