Request Open-Meteo's gem_seamless model instead of best_match #13

Merged
chris merged 1 commit from bug/weather-model-gem-seamless into main 2026-08-17 08:52:46 -06:00
Owner

Problem

A large, fast-moving thunderstorm hit last night (Aug 16 evening). Depletion barely moved. Investigation showed Open-Meteo's default best_match model reported 0mm of rain for the entire storm window at the site's coordinates, while two independent sources already wired into Home Assistant (met.no, Tomorrow.io) both logged rainy/lightning-rainy states through the same hours — best_match missed a highly localized convective cell entirely.

Fix

Request Open-Meteo's gem_seamless model (Environment Canada's GEM model, blended with the regional HRDPS component) instead of the default multi-model blend. Verified directly against the storm: gem_seamless reports 14.4mm for Aug 16, timed to the same hours HA saw lightning-rainy. Same endpoint, same fields (daily + hourly precipitation, ET₀, sunrise/sunset, precipitation probability all still available), no new provider or API key.

Also fixed along the way

Found and repaired a stuck migration (0020_whole_wolfsbane, adding precipitation_daily_snapshots.precipitation_probability_max) that had silently never applied to the deployed DB — a later migration got recorded ahead of it in the ledger, so drizzle-kit migrate treated it as already covered. Every weather-snapshot write had been failing since ~Aug 11 as a result (swallowed as best-effort, so scheduling wasn't affected, but retrospective weather history was empty for 6 days). Applied by hand directly against the deployed DB — no code change needed since the schema already declared the column; db:migrate now runs clean on a fresh environment too.

Testing

  • Added a test asserting the models=gem_seamless query param.
  • Full suite: 1044 pass. type-check: clean.
  • Verified live against the running stack: triggered a manual replan after deploying the fix — new weather snapshots now persist correctly, and the Aug 16 row shows 14.4mm / 84% / 4.36mm ET₀ instead of the old 0mm.

🤖 Generated with Claude Code

## Problem A large, fast-moving thunderstorm hit last night (Aug 16 evening). Depletion barely moved. Investigation showed Open-Meteo's default `best_match` model reported **0mm** of rain for the entire storm window at the site's coordinates, while two independent sources already wired into Home Assistant (met.no, Tomorrow.io) both logged `rainy`/`lightning-rainy` states through the same hours — `best_match` missed a highly localized convective cell entirely. ## Fix Request Open-Meteo's `gem_seamless` model (Environment Canada's GEM model, blended with the regional HRDPS component) instead of the default multi-model blend. Verified directly against the storm: `gem_seamless` reports **14.4mm** for Aug 16, timed to the same hours HA saw lightning-rainy. Same endpoint, same fields (daily + hourly precipitation, ET₀, sunrise/sunset, precipitation probability all still available), no new provider or API key. ## Also fixed along the way Found and repaired a stuck migration (`0020_whole_wolfsbane`, adding `precipitation_daily_snapshots.precipitation_probability_max`) that had silently never applied to the deployed DB — a later migration got recorded ahead of it in the ledger, so `drizzle-kit migrate` treated it as already covered. Every weather-snapshot write had been failing since ~Aug 11 as a result (swallowed as best-effort, so scheduling wasn't affected, but retrospective weather history was empty for 6 days). Applied by hand directly against the deployed DB — no code change needed since the schema already declared the column; `db:migrate` now runs clean on a fresh environment too. ## Testing - Added a test asserting the `models=gem_seamless` query param. - Full suite: 1044 pass. `type-check`: clean. - Verified live against the running stack: triggered a manual replan after deploying the fix — new weather snapshots now persist correctly, and the Aug 16 row shows `14.4mm / 84% / 4.36mm ET₀` instead of the old `0mm`. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Request Open-Meteo's gem_seamless model instead of best_match
All checks were successful
plane-sync / sync (pull_request) Successful in 1s
f282225110
best_match (Open-Meteo's default multi-model blend) reported 0mm of
rain for a Calgary-area evening thunderstorm that two other sources
(met.no, Tomorrow.io) both saw — it missed a localized convective cell
entirely. gem_seamless (Environment Canada's GEM model, blended with
the regional HRDPS component) caught it: 14.4mm, timed to the exact
hours the other sources logged lightning-rainy/rainy. Same endpoint,
same fields, no new provider or API key.
chris merged commit 2bcb12c2b2 into main 2026-08-17 08:52:46 -06:00
chris deleted branch bug/weather-model-gem-seamless 2026-08-17 08:52:46 -06:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
chris/irrigo!13
No description provided.