Releases: kmich/ha_ws_core
v1.3.2 - Rain display translations + French polish
What's New
Bug Fixes
- Rain display state now translatable —
sensor.ws_rain_displaywas returning dynamic strings like"Heavy (3.5 mm/h)"which can't be used as translation keys. The state now returns translatable keys (dry,drizzle,light,moderate,heavy); the numeric rain rate is still available in therain_rateattribute. French translations included. Reported by @Benjamin45590.
Improvements
- French translation polish — 12 wording improvements contributed by @Benjamin45590 (PR #11): clearer descriptions for the location, forecast, and features config steps; improved Zambretti state labels;
"Pluie du jour"instead of"Pluie aujourd'hui"; fog and thunderstorm risk labels shortened; pollennonechanged to"Aucun"; feature switch names updated.
v1.3.1 - Sensor state translations
What's new
- Sensor state translations - all string-state sensors now display translated values. 11 sensors covered:
- Current Condition (29 states) - e.g. "sunny" -> "Ensoleillé" in French
- Zambretti Forecast (25 phrases) - e.g. "Settled fine" -> "Beau temps stable"
- Pressure Trend - Rising Rapidly / Rising / Steady / Falling / Falling Rapidly
- Alert State - Clear / Advisory / Warning
- Station Health - Online / Degraded / Stale / Offline
- Humidity Level - Very Humid through Very Dry
- UV Level - None / Low / Moderate / High / Very High / Extreme
- Pollen Level - None through Very High
- Forecast Agreement - Aligned / Diverging / Conflict
- Sensor Drift and Sensor Consistency - OK / Warning
French translations included for all states. Thanks to @Benjamin45590 for reporting this and for all his contributions - the French translation overhaul (v1.2.2), the Météo France provider (v1.3.0), and this bug report. Merci beaucoup!
Upgrade notes
No breaking changes. Entity IDs and state values are unchanged - translations only affect the display label shown in the UI.
v1.3.0
What's new
- Météo France forecast provider - adds Météo France via the Météo Concept API as a 6th provider option. Free tier available, API key required. Full 7-day daily and 24-hour hourly forecasts with WMO weathercode mapping. Select it in the config/options flow under Forecast Provider.
Upgrade notes
No breaking changes. Existing installations continue using their configured provider unchanged.
Thanks
Contributed by @Benjamin45590.
Full Changelog: v1.2.3...v1.3.0
v1.2.3
What's changed
- Switch, number, select, and binary sensor names now translatable - all non-sensor entity types (feature toggles, config numbers, graph range select, package OK binary sensor) were still using hardcoded English names. Wired up
has_entity_name = Trueandtranslation_keyon all four entity classes so names render in the user's language. French translations included (closes #8).
Upgrade notes
No breaking changes. Entity IDs are unchanged. After updating, entity display names will reflect your HA language setting.
Full Changelog: v1.2.2...v1.2.3
v1.2.2
Improvements
French translation polish (thanks @Benjamin45590, PR #7)
16 copy improvements from a native speaker:
Illuminance->Eclairement(correct French physical quantity term)Paquetage OK->Paquet OK- Missing grammatical articles added throughout (
de la,des,du) Contribution du vent->Influence du ventEn train de pleuvoir->Il pleutTemperature de mer->Temperature de surface de la mer- Various phrasing improvements for naturalness
Full changelog: https://github.com/kmich/ha_ws_core/blob/main/CHANGELOG.md
Full Changelog: v1.2.1...v1.2.2
v1.2.1
Bug fixes
Entity attribute labels are now translatable (closes #6)
All entity attribute labels (the keys shown next to values in the HA UI) are now translated through HA's state_attributes mechanism. This means French users (and future locale users) will see labels like "Pression au niveau de la mer" instead of mslp_hpa, "Niveau de danger" instead of danger_level, and so on.
As part of this fix, hardcoded English metadata strings that were embedded as attribute values (method: "Hargreaves-Samani 1985", disclaimer: "NOT suitable for...", scale: "0-50 Good...", etc.) have been removed — these were developer-documentation noise that could never be localised through HA's translation mechanism and didn't add value in the UI.
Affected sensors: all 43 sensors that expose extra state attributes.
README overhaul
- Added Forecast Provider section documenting all 5 providers, NWS US-only caveat, and the provider contribution guide
- Corrected sensor count (50+ → 80+)
- Added missing sensors to tables:
ws_rain_today,ws_no2,ws_ozone,ws_forecast_agreement - Fixed translations note: English and French ship out of the box; community translations welcome
- Updated troubleshooting entry for forecast unavailability to cover API key errors
Full changelog: https://github.com/kmich/ha_ws_core/blob/main/CHANGELOG.md
Full Changelog: v1.2.0...v1.2.1
v1.2.0
What's New
Pluggable Forecast Provider
sensor.ws_forecast_daily and all NWP-derived sensors now use a swappable provider. Select it in the config/options flow (Configure button on existing installs, or during the forecast step on a fresh install).
Built-in providers:
| Provider | Free | API Key | Notes |
|---|---|---|---|
| Open-Meteo (default) | ✅ | ❌ | Global coverage |
| Met.no | ✅ | ❌ | Strong European coverage |
| NWS/NOAA | ✅ | ❌ | US only |
| OpenWeatherMap | ✅* | ✅ | One Call 3.0 API |
| Pirate Weather | ✅* | ✅ | Dark Sky-compatible API |
*Free tier available with registration.
Existing installs default to Open-Meteo automatically — no config changes needed.
For contributors: Adding a new provider requires only one new Python file (subclass ForecastProvider) and one line in providers/__init__.py. See custom_components/ws_core/providers/base.py for the interface.
Nowcast Correction (0–3 h) — Now Actually Applied
Local station readings now blend into the first three hourly forecast slots with tapering weights (70% local at h+0, 40% at h+1, 10% at h+2, pure NWP from h+3). Blended fields: temperature, humidity, wind speed, dew point. Previously documented but never implemented.
New Sensors
sensor.ws_no2— Nitrogen dioxide (µg/m³), diagnostic, requires Air Quality togglesensor.ws_ozone— Ozone (µg/m³), diagnostic, requires Air Quality togglesensor.ws_rain_today— Today's accumulated rainfall, resets at local midnight
Full changelog: https://github.com/kmich/ha_ws_core/blob/main/CHANGELOG.md
Full Changelog: v1.1.1...v1.2.0
v1.1.1
Bug Fix
- All 82 sensor names are now translatable — sensors use HA's
translation_key+has_entity_namemechanism. When HA's language is set to French, sensor names display in French (e.g. Température, Humidité, Point de rosée). English and French included out of the box; other translators can now contribute additional languages. Entity IDs are unchanged — no automations or dashboards break. (closes #4, thanks @Benjamin45590)
Upgrading
HACS update → restart HA. Entity IDs stay the same; only display names change.
Full Changelog: v1.1.0...v1.1.1
v1.1.0
What's New
New Features
- Full Canadian FWI system — complete Van Wagner (1987) implementation: FFMC, DMC, DC daily moisture codes with persistent carry-over across HA restarts, ISI, BUI, FWI, DSR. Replaces the previous simplified heuristic.
sensor.ws_fire_risk_scoremaps real FWI to a 1–10 danger scale; seven sub-index sensors available (disabled by default). - Nowcast correction (0–3h) — local station readings blend into the first three hourly forecast slots using tapering weights (70% local at hour 0, pure NWP by hour 3).
- Adaptive rain probability —
sensor.ws_rain_probability_combineduses rolling 90-day Brier-score weights that learn which source has been more accurate. - Forecast agreement sensor —
sensor.ws_forecast_agreementcompares Zambretti Z-number implied rain likelihood to Open-Meteoprecip_prob; states:aligned,diverging,conflict. - French translation — complete
fr.jsoncovering config flow, options flow, entity names, and issues (thanks @Benjamin45590).
Bug Fixes
- Configure button 500 error on HA 2024.3+ —
async_get_options_flowupdated to@classmethod+@callback(thanks @miczu71, PR #2). - AQI level attribute always
None—KEY_AQI_LEVELwas never written to the coordinator data dict; now populated correctly. - Moon phase attribute always
None— moon phase was stored under a private key but sensor read the public key; keys aligned. - Staleness timeout selector rejected default — selector max was 3,600 s but default is 7,200 s; raised to 86,400 s (24 h).
enable_fogshown as raw key in config flow — translation key mismatched the const; now aligned.- 10 additional string/key audit fixes — orphaned translation keys, missing switch entity entries, missing data descriptions.
Upgrading
HACS update → restart HA. No configuration changes required; existing installs carry forward automatically.
Full Changelog: v1.0.0...v1.1.0
v1.0.0
Weather Station Core v1.0.0
Initial public release.
Highlights
- Real Zambretti barometric forecaster — Negretti & Zambra lookup table (Z-numbers 1–26), climate-region-aware wind corrections, seasonal adjustment
- Wet-bulb temperature (Stull 2011), frost point (Buck 1981), apparent temperature (Australian BOM/Steadman)
- Full Canadian FWI system — complete Van Wagner (1987) implementation: FFMC, DMC, DC daily moisture codes with persistent carry-over, ISI, BUI, FWI, DSR.
sensor.ws_fire_risk_scoremaps real FWI to a 1–10 danger scale. Seven sub-index sensors available (disabled by default) - Nowcast correction (0–3h) — local station readings blend into the first three hourly forecast slots using tapering weights (70% local at hour 0, pure NWP by hour 3)
- Adaptive rain probability — Brier-score-derived blend weights learn which source (local sensors vs Open-Meteo) has been more accurate over a rolling 90-day window
- Forecast agreement sensor — compares Zambretti implied rain likelihood to Open-Meteo precip probability; states:
aligned,diverging,conflict - Kalman-filtered rain rate for de-noised precipitation readings
- 36-condition weather classifier with severity levels and MDI icons
- Fog probability and thunderstorm risk surface heuristics
- Streak counters — consecutive dry, heat, and frost days
- ET₀ evapotranspiration — Hargreaves-Samani 1985; upgrades to FAO-56 Penman-Monteith when solar radiation sensor is mapped
- 7-day forecast via Open-Meteo (free, no API key)
- Air quality, pollen, moon phase, solar PV forecast, sea surface temperature — all optional, all free
- Config entities on device page — all thresholds, calibration offsets, and feature toggles as
numberandswitchentities - Guided 8-step config flow, no YAML required
- Full HACS dashboard (Weather + Advanced views) included
- French translation (thanks @Benjamin45590)
Bug fixes
- Configure button no longer throws 500 error on HA 2024.3+ (
async_get_options_flowsignature fix, thanks @miczu71)
Full Changelog: https://github.com/kmich/ha_ws_core/commits/v1.0.0
What's Changed
- fix: use @classmethod for async_get_options_flow (HA 2024.3+ compat) by @miczu71 in #2
- Add french translation by @Benjamin45590 in #3
New Contributors
- @miczu71 made their first contribution in #2
- @Benjamin45590 made their first contribution in #3
Full Changelog: https://github.com/kmich/ha_ws_core/commits/v1.0.0