SILAM Pollen — Allergy-proof your Home Assistant

:globe_showing_europe_africa: SILAM Pollen — allergy and pollen forecast for Home Assistant

SILAM Pollen brings intelligent pollen allergy forecasts from the Finnish Meteorological Institute SILAM model into Home Assistant.

It turns scientific forecast data into something practical, visual, and automation-ready — with pollen sensors, a weather forecast entity, allergen-level forecasts, SMART dataset selection, dashboard support, diagnostics, and persistent recovery after Home Assistant restarts.

No API keys.
No paywalls.
Open-source.
Built for Home Assistant.

Interactive coverage map

:world_map: Coverage map

SILAM Pollen can use different SILAM forecast datasets depending on your location.

Open the interactive coverage map:

In short:

  • :blue_square: Blue area — high-detail SILAM Finland v6.1 coverage, best where available.
  • :green_square: Green area — high-resolution SILAM Northern Europe v6.1 coverage.
  • :yellow_square: Yellow area — broader SILAM Europe v6.1 coverage for the rest of Europe.

With SMART mode, the integration can automatically choose the most suitable dataset for your location and fall back when needed.


:herb: Why use it?

Because your home should know when the air outside changes.

SILAM Pollen helps you make Home Assistant more allergy-aware — not just by showing pollen levels, but by turning forecast data into useful actions.

You can use it to:

  • track pollen levels directly in Home Assistant;
  • build beautiful allergy dashboards;
  • automate air purifiers, ventilation, windows, or notifications;
  • get pollen forecasts for today and the next days;
  • see which allergen is currently responsible for elevated pollen risk;
  • use open SILAM model data without API keys or paid services.

:cherry_blossom: Supported allergens

SILAM Pollen currently tracks:

alder, birch, grass, hazel, mugwort, olive, ragweed

It also provides a combined Pollen Index and a main weather forecast entity for dashboards and automations.


:crystal_ball: Forecast layers

Know what is coming before you open the window.

The integration exposes three forecast layers:

Forecast type What it gives you
Hourly short-term pollen forecast in 3-hour steps
Twice daily day/night forecast blocks
Daily longer overview up to several days ahead

These forecasts can be used with weather.get_forecasts, dashboards, automations, and custom cards.


:brain: SMART dataset selection

SILAM Pollen is no longer tied to a single fixed dataset.

With SMART mode, the integration can:

  • select a suitable dataset based on your coordinates;
  • avoid unavailable or retired datasets;
  • recover from temporary dataset problems;
  • fill missing forecast hours from other suitable datasets;
  • reduce unnecessary requests to the SILAM service.

Less manual tuning.
Fewer gaps.
More reliable pollen forecasts.


:computer_disk: Persistent memory

Forecast data should not disappear just because Home Assistant restarted.

SILAM Pollen can remember the last successfully loaded forecast data and restore it when appropriate.

This helps after:

  • Home Assistant restarts;
  • temporary SILAM service issues;
  • short network outages;
  • delayed upstream forecast publication.

Instead of starting from an empty state, sensors and forecasts can recover faster and remain useful even when the upstream service is temporarily unavailable.


:framed_picture: Dashboard support

SILAM Pollen includes the built-in Absolute Forecast Card for visual pollen forecasts.

It can show:

  • current pollen level;
  • pollen forecast timeline;
  • allergen-level forecast;
  • forecast peaks;
  • weather-style forecast data;
  • additional forecast attributes.


:stethoscope: Diagnostics and Repairs

When something changes upstream, you should be able to see what happened.

The integration includes diagnostic entities and Home Assistant Repairs support.

You can inspect:

  • SILAM service status;
  • selected and effective dataset;
  • root catalog and runs catalog state;
  • last data request URLs;
  • forecast horizon;
  • cache restore status;
  • warnings for deprecated legacy entities or unavailable manually selected datasets.

More visibility.
Less guessing.
Easier troubleshooting.


:rocket: Installation

The easiest way to install SILAM Pollen is through HACS.

Open your Home Assistant instance and open a repository inside the Home Assistant Community Store.

Repository:

Release blog:


:compass: Key development milestones

Release Key milestone
v0.3.0 Built-in Absolute Forecast Card, full forecast UI, allergen-level forecast display, and the weather forecast entity became the main path forward.
v0.3.1 Smarter update behavior with fewer unnecessary SILAM requests and better handling of missing forecast hours.
v0.3.2 Added newer SILAM v6.1 datasets and improved dataset selection for regions with more detailed coverage.
v0.4.0 Major SMART upgrade: better dataset awareness, adaptive selection, fallback behavior, and forecast backfill from suitable datasets.
v0.4.1 Added persistent memory, faster recovery after Home Assistant restarts, safer offline fallback, improved diagnostics, Repairs, and update services.

Latest release:


:light_bulb: Example automation ideas

SILAM Pollen can be used to:

  • notify when birch pollen is high tomorrow;
  • turn on an air purifier when grass pollen rises;
  • close windows when pollen risk is high;
  • show allergy forecast on a Home Assistant dashboard;
  • remind you to take allergy medication before a high-pollen day.

:star: How to help

If you find the project useful:

  • star the GitHub repository;
  • report bugs or feature requests;
  • suggest better translations;
  • share screenshots of your pollen-aware dashboards.

GitHub:

Stay safe, stay pollen-aware, and happy automating :herb:

1 Like

Hello everyone! Birch pollen season is approaching – the most troublesome for people with pollinosis. I’m excited to announce the update v0.2.0, which brings several key features:

  • Pollen Forecast (BETA): The integration now creates a weather sensor that provides an hourly forecast for 24 hours (aggregated in 3-hour intervals) and a twice-daily forecast for the next 36 hours.
  • Dual Dataset Support: Choose between SILAM Regional (v5.9.1) – a more detailed and accurate model for Northern and Northwestern Europe, and SILAM Europe (v6.0) – a model that covers a larger area. I’ve updated the GitHub map so you can see which dataset is available to you.
  • Enhanced Performance: The coordinator and data processor have been revamped for improved performance.
  • Official Integration Branding: The integration’s brand has been added to the official HA repository, complete with a cool logo and attractive sensor icons.
  • Multi-Language Translations: Translations are now available in English, Finnish, Italian, Swedish, Norwegian, Danish, and German. If you’re a native speaker and find any issues with the translations, please open an issue – I’d be happy to fix them.

I never really considered how complex it is to implement a forecast, especially a pollen forecast, but I gave it a try, and maybe I succeeded. Please check it out and let me know your thoughts!

If my integration helps you, please like this post and star the GitHub repository so that even more people can start using it and get allergy information. I do this because I’m the father and husband of people who suffer every spring, and I truly want to make their lives – and the lives of people like them – better!

More details about my integration can be found on GitHub and in the release notes:

1 Like

Hey everyone!

I’m happy to share a fresh update — SILAM Pollen v0.2.1 is out with some powerful new forecasting features :tada:

  • Allergen-Specific Forecasting :herb:
    You can now get forecast data not only for the general pollen index but also for each allergen you’ve selected.
    Both the hourly (3-hour steps) and twice-daily forecasts now include aggregated values for allergens like alder, birch, grass, etc.

  • Tomorrow Forecast Attribute :calendar:
    Each allergen sensor (e.g., birch, grass) now shows a tomorrow attribute — just like the index_tomorrow we added earlier for the general pollen index.
    This gives you a clear, easy-to-read prediction of tomorrow’s pollen level for each specific allergen.

  • Refactored Data Processing :brain:
    Major cleanup and optimization of data_processing.py to make forecast calculation more efficient, maintainable, and easier to extend.

  • Localization Updates :globe_with_meridians:
    Translation files updated to support all the new features — as always, feel free to suggest improvements if you spot something!

I’m especially proud of the allergen forecast feature — knowing not just the current pollen level, but what’s coming tomorrow is incredibly important for people with allergies. It helps plan the day ahead, avoid exposure, and even adjust medication in advance. This is a big step toward making the integration not just informative, but truly useful in daily life.

If you like the project and want to support it, please :star: star the GitHub repo — it helps the project grow and motivates me to keep building and improving this integration for everyone.

Try it out and let me know what you think!
Release notes:

Hey everyone!

We’re in mid-spring, and in the moderate climatic zone of Eurasia birch is flowering aggressively :deciduous_tree::boom:. SILAM Pollen v0.2.2 helps you forecast when the birch flowering will end—perfect for planning your return home if you’ve traveled outside the birch pollen region.

I’m excited to announce SILAM Pollen v0.2.2 :rocket:

  • :hourglass_flowing_sand: Forecast Duration Selection
    When you create or update the integration, you can now choose your forecast window from 36 h up to 120 h (default 36 h). The twice-daily forecast automatically scales to cover your chosen period.

  • Czech Translation
    Huge thanks to @kasparmir for adding Czech localization to our growing list of supported languages!

  • :stopwatch: Diagnostic Fetch Duration Sensor
    The new fetch_duration sensor (disabled by default) reports the total time for one update cycle (API request, XML parsing, aggregation & calculations).

Your feedback keeps this project moving forward. If you find these features useful, please :star: star the repo and let me know what you think!

A french translation here

{
  "title": "SILAM Moniteur de pollens",
  "entity": {
    "sensor": {
      "index": {
        "name": "Index",
        "state": {
          "very_low": "Très bas",
          "low": "Bas",
          "moderate": "Moderé",
          "high": "Haut",
          "very_high": "Très haut",
          "unknown": "Inconnu"
        },
        "state_attributes": {
          "responsible_elevated": {
            "name": "Allergènes primaires",
            "state": {
              "missing": "Pas de données",
              "alder": "Aulne",
              "birch": "Bouleau",
              "grass": "Herbe",
              "olive": "Olivier",
              "mugwort": "Armoise",
              "ragweed": "Ambroisie",
              "hazel": "Noisetier",
              "unknown": "Inconnu"
            }
          },
          "date": {
            "name": "Prévisions Date & Heure"
          },
          "index_tomorrow": {
            "name": "Prévisions pour demain",
            "state": {
              "very_low": "Très bas",
              "low": "Bas",
              "moderate": "Modéré",
              "high": "Haut",
              "very_high": "Très haut",
              "unknown": "Inconnu"
            }
          }
        }
      },
      "fetch_duration": {
        "name": "Durée de collecte"
      },
      "alder": {
        "name": "Aulne",
        "unit_of_measurement": "grains/m³",
        "state_attributes": {
          "altitude": {
            "name": "Altitude (niveau de la mer)"
          },
          "tomorrow": {
            "name": "Prévisions pour demain"
          }
        }
      },
      "birch": {
        "name": "Bouleau",
        "unit_of_measurement": "grains/m³",
        "state_attributes": {
          "altitude": {
            "name": "Altitude (niveau de la mer)"
          },
          "tomorrow": {
            "name": "Prévisions pour demain"
          }
        }
      },
      "grass": {
        "name": "Herbe",
        "unit_of_measurement": "grains/m³",
        "state_attributes": {
          "altitude": {
            "name": "Altitude (niveau de la mer)"
          },
          "tomorrow": {
            "name": "Prévisions pour demain"
          }
        }
      },
      "hazel": {
        "name": "Noisetier",
        "unit_of_measurement": "grains/m³",
        "state_attributes": {
          "altitude": {
            "name": "Altitude (niveau de la mer)"
          },
          "tomorrow": {
            "name": "Prévisions pour demain"
          }
        }
      },
      "mugwort": {
        "name": "Armoise",
        "unit_of_measurement": "grains/m³",
        "state_attributes": {
          "altitude": {
            "name": "Altitude (niveau de la mer)"
          },
          "tomorrow": {
            "name": "Prévisions pour demain"
          }
        }
      },
      "olive": {
        "name": "Olivier",
        "unit_of_measurement": "grains/m³",
        "state_attributes": {
          "altitude": {
            "name": "Altitude (niveau de la mer)"
          },
          "tomorrow": {
            "name": "Prévisions pour demain"
          }
        }
      },
      "ragweed": {
        "name": "Ambroisie",
        "unit_of_measurement": "grains/m³",
        "state_attributes": {
          "altitude": {
            "name": "Altitude (niveau de la mer)"
          },
          "tomorrow": {
            "name": "Prévisions pour demain"
          }
        }
      }
    },
    "weather": {
      "index_polen_weather": {
        "name": "Prévisions",
        "state": {
          "very_low": "Très bas",
          "low": "Bas",
          "moderate": "Modéré",
          "high": "Haut",
          "very_high": "Très haut",
          "unknown": "Inconnu"
        },
        "state_attributes": {
          "responsible_elevated": {
            "name": "Allergènes primaires",
            "state": {
              "missing": "Pas de données",
              "alder": "Aulne",
              "birch": "Bouleau",
              "grass": "Herbe",
              "olive": "Olivier",
              "mugwort": "Armoise",
              "ragweed": "Ambroisie",
              "hazel": "Noisetier",
              "unknown": "Inconnu"
            }
          }
        }
      }
    }
  },
  "config": {
    "step": {
      "user": {
        "data": {
          "zone_id": "Zone observée",
          "var": "Type de pollen",
          "update_interval": "Intervalles de mise à jour (minutes, minimum 30)",
          "forecast": "**BETA** Activer les prévisions des pollens ?",
          "forecast_duration": "Durée des prévisions (36–120 h; default 36)"
        },
        "data_description": {
          "forecast": "La fonction de prévisions peut accroître significativement le délai de réponse de l'API."
        },
        "title": "Créer le service SILAM Moniteur de pollens",
        "description": "Configurez les paramètres listés ci-dessous.\nLes prévisions sont destinées à un usage scientifique; leur précision n'est pas garantie."
      },
      "manual_coords": {
        "data": {
          "zone_name": "Nom de la zone",
          "location": "Localisation",
          "altitude": "Altitude au-dessus du niveau de la mer"
        },
        "title": "Créer le service SILAM Moniteur de pollens",
        "description": "Entrez le nom de la zone et ajustez les coordonnées si nécessaire.\n[Vérifiez la carte de couverture du service](https://danishru.github.io/silam_pollen/)."
      }
    }
  },
  "options": {
    "step": {
      "init": {
        "data": {
          "update_interval": "Intervalles de mise à jour (minutes, minimum 30)",
          "var": "Type de pollen",
          "version": "Données",
          "forecast": "**BETA** Activer les prévisions des pollens ?",
          "forecast_duration": "Durée des prévisions (36–120 h; default 36)"
        },
        "data_description": {
          "forecast": "La fonction de prévisions peut accroître significativement le délai de réponse de l'API."
        },
        "title": "Options de SILAM Moniteur de pollens"
      }
    }
  },
  "selector": {
    "config_pollen": {
      "options": {
        "alder_m22": "Aulne",
        "birch_m22": "Bouleau",
        "grass_m32": "Herbe",
        "hazel_m23": "Noisetier",
        "mugwort_m18": "Armoise",
        "olive_m28": "Olivier",
        "ragweed_m18": "Ambroisie"
      }
    }
  },
  "services": {
    "manual_update": {
      "name": "Mise à jour manuelle",
      "description": "Déclencher manuellement le rafraîchissement des données sélectionnées de SILAM Moniteur de pollens.",
      "fields": {
        "targets": {
          "name": "Sélections",
          "description": "Sélectionnez une ou plusieurs entités à mettre à jour."
        }
      }
    }
  }
}

2 Likes

@ubuesque — thank you so much for your contribution and for taking the time to prepare a full French translation! :fr::pray:
To officially include it in the integration, here’s the easiest way — everything can be done directly in the GitHub web interface:

  1. :fork_and_knife: Fork the repository: SILAM Pollen GitHub
  2. :file_folder: In your fork, create a new file named fr.json inside the translations/ folder (same place as en.json, ru.json, etc.)
  3. :mailbox_with_mail: Open a pull request from your fork to the main repository with a short message like “Add French translation”

Once merged, your translation will be part of the integration. Its future maintenance and updates will rely on the community — but your work will already make a big difference.
I’d be happy to include it in the next release!

Hey everyone!

I’m excited to announce SILAM Pollen v0.2.5 :rocket:

Since v0.2.2, here’s everything new:

:star2: Community Highlights
These updates empower our Home Assistant community and make SILAM Pollen more accessible than ever:

  • :package: Default HACS Installation
    Available in the HACS catalog out-of-the-box — super cool and will help even more allergy sufferers use the integration!
  • :framed_picture: Beautiful Dashboards
    @krissen added support to the pollenprognos-card (v2.3.0+) so you can view current conditions and forecasts right on your Lovelace dashboard!

Other Changes

  • :globe_with_meridians: Slovak & Dutch Localizations (v0.2.3)
  • :open_book: Default README in English (v0.2.4)
  • :bar_chart: Long-term Statistics for all allergy sensors + fetch_duration
  • :globe_with_meridians: Updated Swedish Translation

Your feedback and :star: stars keep this project growing. Give it a spin and let me know what you think!

1 Like

Hey everyone!

SILAM Pollen v0.2.7 is now live :rocket:

:glowing_star: Community Highlights

Biggest upgrade yet for our allergy crew:

  • :cherry_blossom: Massive upgrade to the “Pollen Forecast” sensor (still BETA)
    The sensor is now always present, even if you skip forecasting options. It shows the current index, adds a daily forecast (up to 5 days), brand-new allergen_peaks, and smarter percentile math for realistic highs.

  • :crystal_ball: Forecast Horizon sensor
    Know exactly how many hours of trustworthy data you have vs. the horizon you requested.

  • :framed_picture: Dashboard bliss
    pollenprognos-card v2.4.1+ visualises hourly, 12-hour, and daily layers straight from SILAM Pollen. (Older card ≤ v2.4.0 still works with SILAM Pollen ≥ v0.2.5.)

  • :package: Always-on weather entity
    Live pollen index is available even if forecasting is disabled—no Lovelace gaps!

:counterclockwise_arrows_button: Under-the-hood magic

  • Re-worked algorithms — max aggregation for hourly peaks; percentile (80 / 70 / max) for 12-hour & daily windows.
  • New attributesnext_condition, pollen_<allergen>, altitude, date, responsible_elevated give richer context for automations.
  • One-time update service & smoother migration — fewer errors, faster reloads.
  • :globe_with_meridians: All 11 non-English localisations synced

Your feedback and :star: stars keep the project growing — take the new version for a spin and tell me what you think!

Hey everyone!

SILAM Pollen v0.3.0 is now live :rocket:

:glowing_star: Headline features

  • :diamond_with_a_dot: Dashboard card included (local build)

    • The integration now ships with a bundled Lovelace card — no CDN, no extra repos.
    • Add it once in Settings → Dashboards → Resources → Add → URL: /local/absolute-forecast-card.jsResource type: JavaScript Module.
    • Basic panel mirrors the stock Weather card for visual consistency, with one primary attribute of your choice and optional draggable extras (row/column layout).
    • Forecast row for SILAM shows the pollen index icon + state instead of weather condition/temperature (other weather integrations behave just like the default card).
    • Scrollable forecast slots when space is tight; choose up to 12 via slider or unlimited via manual input.
  • :bar_chart: Extended forecast panel

    • Modes: Standard, Focus, Minimal.
    • Full layers: temperature & apparent temp, precipitation (probability + amount), UV index, wind (speed/gust/direction), cloud cover, humidity, dew point, pressure.
    • Meteo risk strip (experimental): fog (radiation/advection), dew, frost, icing/freezing rain, heavy rain/snow, heat, wind chill, strong/storm wind, “barometric saw”.
    • Allergen-level forecasts: a dedicated line for each selected allergen, peak highlights (12-hour & daily), tap for details (opens that allergen’s sensor card), and a clear trend icon.

:herb: Sensor model updates

  • :cherry_blossom: Pollen Forecast Sensor is now primary — and out of beta.
  • :card_index_dividers: Pollen Index is deprecated. Available only via the Legacy toggle (off by default for new installs); migration keeps existing setups working by setting legacy=true.

:raising_hands: Thanks!

Your feedback and :star: keep this project moving. Try the new card, tune the panels, and tell me what you think!

SILAM Pollen v0.3.1 is now available :seedling:

Hey everyone — and Happy New Year 2026! :tada:
Wishing you a healthy and calm start to the year.

I’m happy to share SILAM Pollen v0.3.1, a release focused on efficiency and data freshness — just in time as the pollen season approaches.

This update improves how forecast data is detected and updated, reducing unnecessary network traffic while keeping forecasts accurate.


:brain: Smarter forecast update logic

:magnifying_glass_tilted_left: Run-aware dataset detection

  • The integration now checks the THREDDS runs catalog to detect when a new SILAM model run is actually available.
  • Network requests are only made when new data appears.

:high_voltage: Incremental updates instead of full reloads

  • If the run hasn’t changed, cached data is reused and results are rebuilt locally.
  • Depending on the situation, the integration automatically chooses between:
    • full fetch (new run),
    • synthetic rebuild from cache,
    • incremental tail fetch for missing hours only.

:puzzle_piece: Tail backfill for moving forecast windows

  • When the forecast horizon advances, only the missing tail hours are downloaded.
  • A full reload is performed automatically if the run changes.

The result: fewer requests, faster updates, and lower load on silam.fmi.fi, without sacrificing forecast quality.


:raising_hands: Final notes

Spring is coming — and so is birch pollen :herb:
All improvements in this release are aimed at making the integration more efficient, reliable, and ready for the season ahead.

Feedback is always welcome!

:link: Release:

:link: Project:

1 Like

Hello everyone :waving_hand:

I’d like to share what has changed in SILAM Pollen since the last major updates.

The integration has taken a big step forward — from simply showing pollen forecasts to becoming a smarter, more resilient pollen forecast system for Home Assistant :herb::house:

:rocket: What’s new

:brain: Smarter by design

SILAM Pollen now understands available SILAM datasets much better.

With the improved SMART mode, the integration can automatically choose the best available dataset for your location, switch when a preferred dataset is temporarily incomplete, and fill missing forecast hours from other suitable sources.

Less manual tuning.
Fewer gaps.
More reliable pollen forecasts.

:globe_showing_europe_africa: Built for the new pollen season

Support for the newer SILAM pollen v6.1 datasets has been added, including updated Europe and Northern Europe datasets, plus high-detail regional coverage where available.

This is especially useful for users in areas where more detailed SILAM data is available, such as Finland, Northwestern Russia, Northern and Eastern Sweden, parts of Norway, and Northern Estonia.

:computer_disk: Persistent memory

The biggest reliability improvement is now here.

SILAM Pollen can remember the last successfully loaded data and safely restore it after a Home Assistant restart or a temporary SILAM/network issue.

So instead of starting from an empty state, sensors and forecasts can come back faster and stay useful even when the upstream service is temporarily unavailable.

:stethoscope: More confidence, less guessing

Diagnostics were improved, Home Assistant Repairs warnings were added, and update services were refined.

This makes it easier to understand what is happening with SILAM data, selected datasets, forecast availability, and service status.

:sparkles: In short

SILAM Pollen is now smarter, faster to recover, and more stable.

:brain: It chooses better data.
:herb: It avoids unnecessary requests.
:computer_disk: It survives restarts better.
:stethoscope: It gives you a clearer picture of what is happening.

Latest release:

More details in the release blog:

If you find the project useful, I’d really appreciate a :star: on GitHub.

1 Like