SILAM Pollen — Allergy-proof your Home Assistant

:earth_africa: SILAM Pollen — Allergy-proof your Home Assistant

Interactive coverage map

Why care?
Hyper-local data from the Finnish Meteorological Institute, free & open-source, no API keys, no paywalls.


:rocket: One-click install (HACS default)

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

Open HACS → Integrations → SILAM Pollen → Download — configure the wizard & enjoy.
(Manual install steps are on GitHub.)


:globe_with_meridians: Coverage & datasets

Dataset Zone Resolution Best for
SILAM Regional v5.9.1 :green_square: Green High Northern / NW Europe
SILAM Europe v6.0 :yellow_square: Yellow Medium The rest of Europe

:cherry_blossom: Allergens tracked

alder, birch, grass, hazel, mugwort, olive, ragweed + combined Pollen Index.
Every allergen sensor now exposes a native_name (alder_m22, grass_m32, …) for bullet-proof API mapping.


:crystal_ball: Smart forecasts — model insight before you go!

Skip the guesswork with three forecast layers (hourly, 12-hour, daily up to 5 days) that feed your dashboards and automations with clear, model-based pollen insight.
Percentile aggregation captures realistic peaks, and the Forecast Horizon sensor shows exactly how far the model looks ahead.
Planning a weekend getaway or timing your meds? This is the super-power you need.

These scientific forecasts give you a valuable edge — just remember they’re model data, not ground truth.

Data source: https://silam.fmi.fi/pollen.html


:globe_with_meridians: 12 languages & counting

English, Russian, German, Italian, Finnish, Swedish, Norwegian, Danish, Czech, Slovak, Dutch — community PRs welcome!


:new: What’s hot in v0.2.7

:rocket: Highlight Why it matters
Re-engineered “Pollen Forecast” sensor state now shows the current index; smarter hourly / 12 h / daily aggregation; brand-new allergen_peaks.
Three forecast layers via weather.get_forecasts Hourly (24 h) · Twice-daily (36–120 h) · Daily (up to 5 days!) — perfect for trip & medication planning.
Forecast Horizon diagnostic sensor Instantly see how many hours of reliable data you actually have.
Always-on weather entity Live pollen index even if you disable forecasting.
pollenprognos-card v2.4.1+ ready Sleek Lovelace visualization for all three forecast types.
Single-run update service & smooth migration Fewer errors, faster reloads.
Fully synced localizations 11 non-English languages updated with every new string.

Heads-up: the new algorithms may change index/allergen values — review automations using hard thresholds.

:link: Release notes & changeloghttps://github.com/danishru/silam_pollen/releases/tag/v0.2.7


:mag: How to call forecasts in HA

Layer Time span Call pattern
Hourly next 24 h · 3-h steps type: hourly
Twice-daily 06-18 & 18-06 · 36–120 h type: twice_daily
Daily up to 5 days type: daily
action: weather.get_forecasts
data:
  type: daily              # hourly / twice_daily / daily
target:
  entity_id: weather.silam_pollen_home_forecast

:framed_picture: Dashboard love

Add pollenprognos-card from HACS, then use the UI to place it on your dashboard — choose your *weather.silam_pollen_forecast entity and you’re done. No YAML needed :tada:


:star: How to help

  • Star the repo — more stars → more reach.
  • Found a bug / want another language? Open an issue or PR.
  • Share screenshots of your sneeze-free dashboards!

Stay safe, stay pollen-aware, and happy automating!

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."
        }
      }
    }
  }
}

1 Like

@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:

:star2: 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!

:arrows_counterclockwise: 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!