Skip to content

About

Home Assistant integration for personal weather stations: frost point, heat stress, ET₀ irrigation, fire danger, and rain, frost and gust chances learned from your own station.

Topics

Resources

Contributing

Security policy

Stars

44 stars

Watchers

2 watching

Forks

Repository files navigation

Weather Station Core (ws_core)

HACS GitHub Release License Validate Translations

A Home Assistant integration for personal weather stations. It reads the temperature, humidity, pressure, wind and rain sensors your station already provides and calculates the things you'd actually automate on: frost point, heat stress, evapotranspiration for irrigation, fire danger, a barometric outlook, and short-term rain, frost and gust chances learned from your own station's history.

Derived values are calculated inside Home Assistant. By default ws_core also fetches a weather forecast and runs an hourly sanity check against Open-Meteo; both can be turned off, and every other internet feature is opt-in. The data and privacy table lists them all.

Open Weather Station Core in HACS on your Home Assistant.

Station sensors go into ws_core, which runs inside Home Assistant and produces sensors, a weather entity, blueprints and dashboards

What's new

  • Forecasts that learn from your own station. Pattern Forecast gives the chance of rain, frost, a hot day, strong gusts and thunderstorms over the next hours. It now learns from the history Home Assistant already has, so it can show numbers minutes after you switch it on instead of weeks later.
  • A rain chance that keeps score. Your station's rain estimate and the forecast provider's are checked against your gauge every 6 hours, and whichever has been more accurate at your location gets more say. In 2.13.5 both are scored on the same 6-hour window, so the comparison is fair.
  • Sensors that explain themselves. When a value can't be calculated, the sensor tells you why (a missing source, a formula that doesn't apply right now, or a model still collecting data) instead of a bare unknown.
  • Faster storm warnings. Nearby lightning raises the alert straight away and keeps it for 30 minutes after the last strike, and heavy rain alerts start at 10 mm/h.
  • A new phone-friendly dashboard. The Bubble Card dashboard puts the current weather, the outlook and the station on one screen, with pop-ups for the details and an optional photo of the current weather behind it. Screenshots below.
  • Clearer station health and fewer false "sensor spike" warnings.

The changelog has every change.

What it does

Rain. A rain rate filtered from your gauge's running total, totals from the last hour to the year, days since rain and an adaptive rain chance (see below). The opt-in precipitation nowcast combines Open-Meteo's 15-minute forecast with your gauge for sensor.ws_minutes_until_rain and sensor.ws_minutes_until_dry.

Garden and irrigation. Reference evapotranspiration (FAO-56 Penman-Monteith with a solar radiation sensor, Hargreaves-Samani without one), a water deficit, VPD, Delta-T for spraying, and leaf wetness. The ET₀ sensors can feed Smart Irrigation.

Protection. Gust alerts for awnings and blinds, frost point (Buck 1981) and freeze warnings, UTCI and WBGT heat stress, and fire danger from the Canadian FWI, McArthur FFDI and Fosberg FFWI.

Data quality. Checks for stuck, spiking and drifting sensors, cross-sensor consistency, and a station health summary. When a value can't be calculated, the sensor's reason and explanation attributes say why.

Extras you can turn on. Snow phase and accumulation, heating and cooling degree days, 10-year climate normals (ERA5), air quality, pollen, sea temperature, a solar forecast, lightning, and uploads to Weather Underground, Windy, Weathercloud, PWSWeather, WOW, AWEKAS, CWOP and OpenWeatherMap.

The integration is translated into English, French, German, Spanish, Italian, Dutch, Polish and Portuguese. The formulas and their sources are in the science documentation.

Forecasts that learn

Three features improve with time at your station:

  • Pattern Forecast (opt-in) learns from your station's own record and gives probabilities: the chance of rain in the next 1, 3 and 6 hours, frost in 12 hours, a hot day in 24 hours, a strong gust in 3 hours and, with a lightning detector, a thunderstorm in 3 hours. It needs time to learn: each sensor reads unknown until it has seen enough real events (often straight away if the recorder already has long-term statistics for your sensors), and its maturity attribute tells you when it has earned your trust. It is 100% local, apart from one optional, labelled setting that lets the storm forecast use Blitzortung lightning data if you have no detector. See the guide and the method.
  • Adaptive rain chance. sensor.ws_rain_probability_combined blends your station's local rain estimate with the forecast provider's. Every 6 hours both are scored against your gauge, and over a rolling 90 days the more accurate source gets more weight. With Station Diagnostics on you can see the weight and both scores. How it's scored.
  • Adaptive sensor calibration (opt-in) learns a slow bias in your temperature, humidity and pressure against a regional reference. Once it's confident (about 10 days), it adjusts your calibration offsets by a small, bounded amount at most once a day. You can turn it off or edit the offsets by hand at any time.

Supported stations

If your station's readings are already in Home Assistant, ws_core can use them. The setup flow suggests matching entities, and you can map any of them by hand.

Station Integration Readings used
Shelly WS90 (the maintainer's test station) Shelly Temperature, humidity, pressure, wind, gust, direction, rain total, UV, illuminance, battery
Ecowitt / Ambient Weather GW-series gateways, WS90, Wittboy, WH57 lightning, soil and rain sensors Temperature, humidity, absolute pressure, wind, rain, lux or solar radiation, lightning
WeatherFlow Tempest Tempest integration, local UDP or MQTT Temperature, station pressure, wind, gust, rain, UV, illuminance
Davis WeatherLink IP, Vantage Pro2, Vantage Vue Standard station readings, rain year, absolute pressure
Netatmo Smart Weather Station with rain and wind modules Outdoor module, rain gauge total, anemometer
ESPHome and DIY Any sensor with a standard device class Temperature, humidity, pressure, wind, rain total
Blitzortung (no hardware) Blitzortung integration, uses internet data Lightning strikes, distance and proximity, used only when no lightning sensor is mapped

The hardware mapping guide covers each brand in detail.

Installation

  1. In Home Assistant 2026.11 and newer, open Settings → Marketplace, search for Weather Station Core, and select Install. It opens the setup flow directly. On 2026.10 and older, download it in HACS, restart Home Assistant, then go to Settings → Devices & Services → Add Integration and search for Weather Station Core. The button above opens HACS or its Marketplace replacement.
  2. If setup did not open automatically, go to Settings → Devices & Services → Add Integration and search for Weather Station Core. Updates to an already installed integration still require a restart.
  3. Check the entities it suggests for your station and submit.

More than 50 sensors are created straight away. Optional features are under Configure → Features. The quickstart walks through each step.

Blueprints

Ten automation blueprints with sensible defaults, for example:

Blueprint What it does Import
Rain Start Warning Phone or TTS alert when rain begins or is imminent Import
Irrigation Rain Skip Skips watering when rainfall or ET₀ says the soil doesn't need it Import
High Wind Protection Retracts awnings and blinds on strong gusts Import
Freeze Warning Alerts before freezing and can shut outdoor water valves Import
Heat Stress Alert Alerts when UTCI reaches levels that are dangerous for outdoor activity Import

The other five (frost, lightning, storm, air quality and fire danger) are in the blueprint documentation.

Dashboards

The dashboards/ folder has five dashboards and a set of gauge cards. Paste one into a dashboard's raw configuration editor.

Dashboard Layout Custom cards
Vanilla (weather_dashboard_vanilla.yaml) Four views none
Enhanced (weather_dashboard.yaml) Animated Weather and Advanced pages, including Pattern Forecast button-card and six others
Full (ws_core_dashboard.yaml) Six views covering every sensor group mushroom, mini-graph-card
Mobile (ws_core_dashboard_mobile.yaml) Single-column phone layout mushroom, mini-graph-card
Bubble (ws_core_bubble_dashboard.yaml) One centred column on any screen, with pop-ups, an alert banner, the learning stats and an optional weather background Bubble Card 3.2.0+
Gauge presets (ws_core_gauge_presets.yaml) 13 gauge cards to add to your own dashboard none

The Enhanced dashboard on a Shelly WS90, Weather page and Advanced page:

Enhanced dashboard Weather page: current readings, 5-day outlook and a temperature and humidity chart

Enhanced dashboard Advanced page: hazards, temperature, wind, pressure and rain detail cards

The Bubble dashboard on the same station, with the weather background on:

Main page Forecast pop-up
Bubble dashboard main page Bubble dashboard Forecast pop-up

The dashboards guide describes each one.

Data and privacy

ws_core sends no telemetry or analytics. These are the only features that contact the internet. The first two are on by default; the rest stay off until you enable them.

Feature Destination Data sent When
Weather forecast Your chosen provider (default Open-Meteo) Configured coordinates, plus an API key for providers that need one On by default. Turn it off in the integration options, or use an existing Home Assistant weather entity as the provider
Sensor sanity check (neighbour QC) Open-Meteo Configured coordinates On by default, hourly. Turn it off with Sensor sanity check or switch.ws_enable_neighbor_qc
Adaptive sensor calibration Open-Meteo (the same hourly request) Configured coordinates If enabled; keeps the hourly request running even with the sanity check off
Precipitation nowcast, air quality, pollen Open-Meteo Configured coordinates If enabled
Sea temperature, climate normals Open-Meteo Marine and Archive APIs Configured coordinates If enabled
Solar forecast Forecast.Solar Configured coordinates If enabled
French Vigilance French government geocoder (api-adresse.data.gouv.fr), then OpenDataSoft Coordinates to the geocoder, then the department code If enabled
Vigicrues river levels Hub'Eau (French government) Coordinates or the chosen station ID If enabled
Lightning via Blitzortung Blitzortung, through its own integration Whatever the Blitzortung integration sends If that integration is installed and no lightning sensor is mapped
Pattern Forecast storm data (internet lightning) Blitzortung, through its own integration Nothing sent by ws_core If Pattern Forecast is on, no lightning detector is mapped, and you turn on Use internet lightning data. The sensor name says so. Every other Pattern Forecast sensor is local
Station network uploads The networks you choose (for example WU, WOW) Station readings and your credentials for that network If enabled
MQTT discovery Your local MQTT broker Derived sensor values. When off, empty messages that clear ws_core's own old discovery topics If enabled. The cleanup runs when it is off and the MQTT integration is connected

To run fully offline, turn off the weather forecast and the sensor sanity check and leave the optional internet features off. All locally derived sensors keep working. Diagnostics downloads redact credentials and coordinates.

FAQ

Why not write template sensors instead? Templates are fine for simple conversions. Penman-Monteith ET₀, the UTCI polynomial, the fire weather indices and a forecaster that scores itself are a lot of template code to write and maintain, and ws_core also comes with blueprints, dashboards, diagnostics and entity suggestions for common stations.
Can I move over from Thermal Comfort? Yes. ws_core covers the same comfort indices, and the migration guide shows how to keep your entity history.
Do I need an API key? No. The default forecast and the optional nowcast and air quality features use Open-Meteo's free API, which needs no registration. Some alternative forecast providers need a key.
What happens when a sensor goes offline? Values that depend on it report unavailable or unknown, with the reason in the sensor's attributes, and everything that doesn't depend on it keeps working.

Support

About

Home Assistant integration for personal weather stations: frost point, heat stress, ET₀ irrigation, fire danger, and rain, frost and gust chances learned from your own station.

Topics

Resources

Contributing

Security policy

Stars

44 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages