Skip to content

Releases: TheDave94/pollenwatch

v3.1.1

Choose a tag to compare

@pollenwatch-release-bot pollenwatch-release-bot released this 15 Jul 16:28
f78c70a

3.1.1 (2026-07-15)

Bug Fixes

  • full-codebase review — species-prune data loss, outage classification, card perf (#35) (4891681)

v3.1.0

Choose a tag to compare

@pollenwatch-release-bot pollenwatch-release-bot released this 29 Jun 13:10
e25c1bc

3.1.0 (2026-06-29)

Features

  • analytics: flag divergence on any non-unanimity (closes #1) (a4eed05)

v3.0.2

Choose a tag to compare

@pollenwatch-release-bot pollenwatch-release-bot released this 20 Jun 07:07
6c02e4d

3.0.2 (2026-06-20)

Documentation

  • reusable screenshot harness + layout/state gallery (223bf84)

v3.0.1

Choose a tag to compare

@pollenwatch-release-bot pollenwatch-release-bot released this 19 Jun 16:20
1c71ce9

3.0.1 (2026-06-19)

Bug Fixes

  • docs: correct README to match shipped v3.0.0 (237e8c3)

v3.0.0

Choose a tag to compare

@pollenwatch-release-bot pollenwatch-release-bot released this 19 Jun 11:44
d5e37b0

3.0.0 (2026-06-19)

⚠ BREAKING CHANGES

  • collapse config-entry migration + unify the species key

Features

  • diagnostics: implement config-entry diagnostics (location + key redaction) (d18a788)
  • thresholds: refine ash onset 10→18 (cited) (b10cf20)

Bug Fixes

  • config_flow: preserve user input on error re-render (52b1b9f)
  • sensor: guard empty current_time in forecast slice (5257d67)

Code Refactoring

  • collapse config-entry migration + unify the species key (56829bf)

v2.4.0

Choose a tag to compare

@pollenwatch-release-bot pollenwatch-release-bot released this 02 Jun 07:07
bfd2dc3

2.4.0 (2026-06-02)

Features

  • add bars multi-species layout to bundled card (#19) (6a6ca0c)
  • add card layout option + pollenwatch/config WS endpoint (#17) (da8d2fd)
  • add compact multi-species layout to bundled card (#21) (ee3e900)
  • add tier-1 prerelease discovery gate (#23) (4a0381f)
  • add tiles multi-species layout to bundled card (#22) (10b3871)

v2.4.0-beta.1 (multispecies bars preview)

Choose a tag to compare

@TheDave94 TheDave94 released this 01 Jun 18:45

Preview of stages 1+2: integration layout option + pollenwatch/config WS endpoint + bars overview layout. For discovery verification on a real HA. Not for general use; stages 3-4 (compact, tiles) still to come before 2.4.0 stable.

v2.3.0

Choose a tag to compare

@pollenwatch-release-bot pollenwatch-release-bot released this 01 Jun 11:50
184e953

2.3.0 (2026-06-01)

Features

  • add threshold_basis derived attribute (provenance grouping for UI) (#13) (398fbe2)
  • surface threshold provenance marker in bundled card (#15) (e996c67)

v2.2.1

Choose a tag to compare

@pollenwatch-release-bot pollenwatch-release-bot released this 01 Jun 09:15
fdb7384

2.2.1 (2026-06-01)

Bug Fixes

  • cleanroom: harden settle — 180s ceiling + distinct SETTLE TIMEOUT (exit 10), unready=state-None-only, all-config-entries-loaded guard (54fea58)

v2.2.0 — Threshold-provenance review + 6 numeric refinements

Choose a tag to compare

@TheDave94 TheDave94 released this 31 May 16:59

v2.2.0 — Threshold-provenance review (issue #3) + 6 numeric refinements

Behavior change. Severity output (the none/low/high bucket) changes for six species. Existing entities may flip state on upgrade; entity_ids are preserved (verified by the cleanroom-pretag harness: Gate B PASS, A/C/D PASS). Closes #3.

What's new

Per-species evidence-tier — the threshold_status attribute (additive)

Every raw and consensus sensor now exposes a threshold_status string attribute classifying the species's threshold-evidence basis into one of five tiers:

Tier What it means Species
species_specific peer-reviewed per-species cutoff exists (numbers may disagree across studies) birch, ash, alder, hazel, olive, plane_tree, mugwort, ragweed, grass, plantago, urtica, nettle_family, carpinus — 13
family_eaaci EAACI's actual family group; no species refinement, but the bracket is real rye, oak, holm_oak, beech, cypress_family — 5
established_no_threshold clinically-established allergen with no published numeric cutoff; working bracket carried chenopodium, juglans, elm — 3
family_analogy family not in EAACI's scheme; analogy-only, weakest rumex, asteraceae — 2
fungal spore allergen, separate evidence base alternaria — 1

The tier reflects evidence provenance, not clinical certainty (the review's honest caveat: Tier-2 "numbers" are ranges across studies, not points; the threshold concept itself is contested per recent EJACI; per-spore allergen content varies up to 15× day-to-day for alternaria).

This retires the contested three-way disagreement that prompted #3 — analytics.py code comments, README, and species_registry.ThresholdStatus are now all reconciled to the approved literature review (threshold-provenance-review-FINAL.md, shipped in the repo as the citation source-of-truth).

Six numeric threshold refinements

Per the same review, six species' (onset, peak) grains/m³ brackets changed:

Species v2.1 v2.2 Why
ragweed (3, 50) (5, 20) PMC5357339 / PMC2868868 / Nature s41598-022-20069-y. Was under-warning (clinical threshold <20, sensitive 1–5). Fraunhofer UBAMBI (NCT05346718) ragweed arm remains unpublished as of mid-2026 — revisit if it appears.
olive (10, 100) (10, 200) Spanish operational scale (PMC7349006): low 1–50 / high >200. Was over-warning regionally.
birch (10, 100) (20, 100) Aerobiologia 2021 low ~20; peak VALIDATED by Struß 2025 controlled chamber (doi:10.1159/000545509, PMID 40328230).
alder (10, 100) (45, 80) Rapiejko 2007 (PMC6245103): 45 = first symptoms, 80 = all alder-allergics symptomatic. Cited peak below the EAACI Fagales bracket.
hazel (10, 100) (35, 80) Rapiejko 2007 (PMC4996891). Same per-species-over-family reasoning as alder.
mugwort (10, 100) (3, 50) Class-error fix — mugwort is SpeciesClass.HERB in the registry but was sitting at the tree bracket. Moved to the herb-class default. No mugwort-specific cited cutoff; evidence graded limited per Aerobiologia 2021.

Behavior change examples your dashboard may show on upgrade:

  • olive at 150 grains/m³: was high → becomes low (de-escalation per FINAL review)
  • ragweed at 30 grains/m³: was low → becomes high (sensitivity correction per FINAL review)
  • alder/hazel at 80–99: was low → becomes high (per-species peak below family bracket)
  • mugwort at 60: was low → becomes high (class-error fix; herb species was at tree bracket)

What is not in v2.2

  • Ash refinement to ~18 onset (the strongest single evidence in the 24-species set per the review) — explicitly scoped out for this release, deferred. The analytics.py ash row comment names the deferred refinement.
  • No registry / config-entry migration — additive metadata + boundary-value changes only.
  • No entity_id changes — your existing dashboards and automations continue to point at the same entities. Only state values may flip.

Citation audit

Every DOI / PMID / PMC / NCT / author-year / percentage / Thermo code in the threshold comments of analytics.py and species_registry.py was grep'd against threshold-provenance-review-FINAL.md. 57/57 trace. The review document is now committed to the repo as the canonical citation source-of-truth; future edits introducing an unsourced citation will be flagged by re-running the same grep.

Compatibility

  • Minimum Home Assistant 2024.11.0 (unchanged).
  • HACS custom repository — https://github.com/TheDave94/pollenwatch (unchanged).
  • Lovelace card auto-registered on install (unchanged).

Upgrading from v2.1 — no action required

Pure refresh. New threshold_status attribute appears on first sensor update after restart. Six species' severity buckets shift per the table above; if you have automations keyed off raw severity values, scan for those six species. No config-entry migration runs.