Skip to content

GegoSK/silam_pollen

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

84 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitHub Release GitHub Activity Downloads License HACS Custom

SILAM Pollen Allergy Sensor for Home Assistant

Интеграция для Home Assistant, использующая набор данных "Лучший временной ряд, полученный из последнего доступного прогона." с сервера SILAM Thredds server для создания службы с сенсорами уровня пыльцы для конкретного местоположения. Расчет прогноза производится Finnish Meteorological Institute с учетом данных аэробиологических, фенологических и метеорологических наблюдений.

Источник данных: https://silam.fmi.fi/pollen.html

Caution

Предоставленные данные являются непроверенными модельными прогнозами, созданными только для научного использования. Ни качество, ни полнота представленной информации не гарантируются, и производители данных не несут никакой ответственности за её правильность и своевременность.

Important

Эта интеграция создана с использованием редакции ChatGPT для совместного написания кода, исправления ошибок и редактуры. Если вы придерживаетесь иной этической точки зрения, приношу извинения. Однако, я считаю, что данное применение является морально приемлемым, поскольку интеграция является некоммерческой, бесплатной и свободной, а её цель — способствовать открытости и взаимодействию.

Описание

Интеграция SILAM Pollen предоставляет службу, состоящую из сенсоров, которая динамически формирует URL для запроса данных о пыльце. Данные запрашиваются с сервера SILAM с помощью HTTP-запроса, затем парсятся и обновляются в Home Assistant. Можно создавать несколько служб для разных местоположений, а также предоставляется возможность выбора необходимых типов пыльцы.

Note

Обратите внимание: охват территории ограничен и зависит от выбранного набора данных.
🟩 Зелёный — зона покрытия SILAM Regional (v5.9.1) (более детальная).
🟨 Жёлтый — зона покрытия SILAM Europe (v6.0) (более общая).

Для оценки покрытия и выбора подходящего региона используйте интерактивную карту ниже.

Интерактивная карта покрытия с данными по уровню пыльцы

🆕 Что нового

v0.2.2

  • ⏱️ Настройка длительности прогноза
    При создании или изменении записи теперь можно выбрать длительность прогноза от 36 до 120 часов (по умолчанию 36 ч). При увеличении часов пропорционально растёт число точек прогноза дважды в день.
  • 🛠️ Диагностический сенсор "fetch_duration"
    Сенсор для отображения времени выполнения обновления данных (API-запросы, обработка, расчёты). По умолчанию не активирован.
  • 🌐 Добавлен чешский перевод
    Благодарим @kasparmir за первую реализацию чешской локализации!

Подробнее в релизе v0.2.2

v0.2.1

🌸 Прогноз пыльцы (BETA)

  • В почасовой и дважды в день прогнозы пыльцы добавлены значения для выбранных аллергенов.
  • Для каждого сенсора пыльцы теперь есть атрибут с прогнозом на следующий день, который отображает дневной прогноз на следующий день, так же как для индекса пыльцы.

Подробнее в релизе v0.2.1

v0.2.0

  • 🌍 Поддержка двух версий SILAM
    Возможность выбрать между SILAM Europe (v6.0) и SILAM Regional (v5.9.1) — с автоматическим тестом доступности.
    SILAM Regional (v5.9.1) обеспечивает более детальные и точные прогнозы для северной и северо-западной Европы.

  • 🌸 Прогноз пыльцы (BETA)
    Новый погодный сенсор с почасовым и двухразовым прогнозом пыльцы через weather.get_forecasts.

  • 📊 Единый обработчик данных + служба обновления
    Все данные кэшируются через data_processing.py.
    Добавлена служба SILAM Pollen monitor: Ручное обновление — можно вызывать вручную или в автоматизациях.

  • 🎨 Иконки для интеграции и сенсор
    Индикаторы стали нагляднее: каждый аллерген теперь со своей иконкой.

  • 🌐 Локализация (на 8 языках)
    Интерфейс переведён на: русский, английский, финский, итальянский, шведский, норвежский, датский и немецкий.

Подробнее в релизе v0.2.0

Установка

Ручная установка

  1. Скопируйте папку silam_pollen в каталог custom_components вашей конфигурации Home Assistant.
  2. Перезапустите Home Assistant.
  3. Добавьте интеграцию через веб-интерфейс:
    • Перейдите в Настройки → Интеграции.
    • Нажмите Добавить интеграцию и выберите SILAM Pollen.
    • Заполните необходимые поля (например, имя, координаты, высоту, выбор типа пыльцы, интервал опроса).

Установка через HACS

Убедитесь, что HACS установлен:
Если HACS ещё не установлен, следуйте официальной инструкции по установке HACS.

Установка одним кликом

Для установки интеграции SILAM Pollen перейдите по ссылке ниже:

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

Обычная установка через HACS

  1. Откройте Home Assistant и перейдите в HACS:
    На боковой панели найдите и нажмите на значок HACS.
  2. Добавление пользовательского репозитория:
    • В HACS перейдите на вкладку Интеграции.
    • Нажмите кнопку Добавить пользовательский репозиторий (Custom Repositories).
    • В появившемся окне введите URL репозитория:
      https://github.com/danishru/silam_pollen
    • Выберите тип репозитория Integration.
    • Нажмите Добавить.
  3. Установка интеграции:
    • После добавления репозитория HACS автоматически обнаружит релиз вашей интеграции.
    • В разделе Интеграции появится интеграция с именем SILAM Pollen.
    • Найдите её и нажмите Установить.
    • Дождитесь завершения установки.

Теперь ваша интеграция установлена и готова к использованию через HACS!

Конфигурация

Перейдите по ссылке ниже и следуйте инструкциям мастера настройки SILAM Pollen:

Open your Home Assistant instance and show an integration.

Или откройте Настройки → Интеграции в Home Assistant, найдите SILAM Pollen и следуйте инструкциям мастера настройки.

Здесь вы сможете задать параметры для корректной работы интеграции:

  • Зона наблюдения – позволяет выбрать настроенную зону в вашем Home Assistant. По умолчанию выбирается зона "Home".
  • Тип пыльцы – выбор наблюдаемой пыльцы. Можно не выбирать ни один тип или выбрать несколько из списка.
  • Интервал обновления – интервал загрузки данных с сервера SILAM Thredds server в минутах (по умолчанию 60, минимальное значение — 30 минут).
  • Прогноз пыльцы (BETA) – включает дополнительный погодный сенсор с прогнозом уровня пыльцы. Может увеличить время ответа API.
  • Длительность прогноза – задаёт, на сколько часов вперёд строится прогноз (от 36 до 120 ч, по умолчанию 36 ч).
  • Название зоны – по умолчанию используется название из выбранной зоны. Это имя применяется для формирования имён службы и сенсоров. Можно переопределить.
  • Высота над уровнем моря – высота, используемая для выборки данных. Если выбрана зона "Home", берётся значение из общих настроек (config/general); иначе по умолчанию 275 м. Можно переопределить.
  • Местоположение – показывает на карте выбранные координаты. Зону можно изменить с помощью карты или вручную задать широту, долготу и радиус. Указанный радиус отражает примерное пространственное разрешение данных о пыльце (около 10 км).

Использование

После установки интеграции в Home Assistant создается служба с именем SILAM Pollen - {Название зоны}. В описании службы указываются координаты местоположения наблюдения и версия используемого набора данных.

image

В рамках службы создаётся сенсор Индекс пыльцы, состояние которого отображает локализованное значение, соответствующее числовому индексу, рассчитанному на основе почасовых средних значений и пороговых уровней из таблицы Mikhail Sofiev (ссылка).

Возможные значения индекса:

  • very_low — Очень низкий
  • low — Низкий
  • moderate — Средний
  • high — Высокий
  • very_high — Очень высокий
  • unknown — Неизвестно

Атрибуты сенсора «Индекс пыльцы»:

  • Дата/время прогноза — точка времени, на которую рассчитан индекс (ISO 8601).
  • Основной аллерген — аллерген, оказавший наибольшее влияние на расчёт индекса.
  • Прогноз на завтра — дневной прогноз уровня пыльцы на следующий день (отображается, если включён прогноз).

Если выбран один или несколько типов пыльцы, для каждого из них создаётся отдельный сенсор {Название типа}, отображающий смоделированное количество пыльцы (зерна/м³).

Атрибуты сенсоров «{Тип пыльцы}»:

  • Высота (уровень моря) — ближайшая доступная высота, использованная для выборки данных.
  • Прогноз на завтра — агрегированное значение прогноза уровня пыльцы на следующий день (отображается, если включён прогноз).

Время запроса (fetch_duration) — сенсор, по умолчанию отключённый, показывающий общее время обновления данных (API-запрос, парсинг, расчёты).

image image

Если включена опция Прогноз пыльцы, будет создан дополнительный погодный сенсор, который предоставляет:

  • почасовой прогноз на 24 часа (с шагом 3 часа);
  • прогноз дважды в сутки на выбранную длительность (по умолчанию 36 ч, максимальная 120 ч).

Состояние погодного сенсора отображает индекс пыльцы на первый доступный временной интервал почасового прогноза.

image

Эти данные доступны через стандартный сервис weather.get_forecasts.

image

Показать пример ответа "Ежечасный"
weather.silam_pollen_frantsiia_forecast:
  forecast:
    - datetime: "2025-04-10T14:00:00+00:00"
      condition: high
      native_temperature_unit: °C
      pollen_index: 4
      temperature: 15.2
      pollen_alder: 0
      pollen_birch: 260
    - datetime: "2025-04-10T17:00:00+00:00"
      condition: high
      native_temperature_unit: °C
      pollen_index: 4
      temperature: 15.3
      pollen_alder: 0
      pollen_birch: 308
    - datetime: "2025-04-10T20:00:00+00:00"
      condition: high
      native_temperature_unit: °C
      pollen_index: 4
      temperature: 13.7
      pollen_alder: 0
      pollen_birch: 340
    - datetime: "2025-04-10T23:00:00+00:00"
      condition: high
      native_temperature_unit: °C
      pollen_index: 4
      temperature: 10.5
      pollen_alder: 0
      pollen_birch: 264
    - datetime: "2025-04-11T02:00:00+00:00"
      condition: moderate
      native_temperature_unit: °C
      pollen_index: 3
      temperature: 7.8
      pollen_alder: 0
      pollen_birch: 79
    - datetime: "2025-04-11T05:00:00+00:00"
      condition: moderate
      native_temperature_unit: °C
      pollen_index: 3
      temperature: 5.9
      pollen_alder: 0
      pollen_birch: 162
    - datetime: "2025-04-11T08:00:00+00:00"
      condition: high
      native_temperature_unit: °C
      pollen_index: 4
      temperature: 10.3
      pollen_alder: 0
      pollen_birch: 352
    - datetime: "2025-04-11T11:00:00+00:00"
      condition: high
      native_temperature_unit: °C
      pollen_index: 4
      temperature: 16.8
      pollen_alder: 0
      pollen_birch: 332
Показать пример ответа "Два раза в день"
weather.silam_pollen_frantsiia_forecast:
  forecast:
    - datetime: "2025-04-10T21:00:00+00:00"
      is_daytime: false
      condition: high
      pollen_index: 4
      temperature: 15.3
      pollen_alder: 0
      pollen_birch: 296
      templow: 8.6
    - datetime: "2025-04-11T09:00:00+00:00"
      is_daytime: true
      condition: moderate
      pollen_index: 3
      temperature: 16.8
      pollen_alder: 0
      pollen_birch: 278
      templow: 5.2
    - datetime: "2025-04-11T21:00:00+00:00"
      is_daytime: false
      condition: high
      pollen_index: 4
      temperature: 19.7
      pollen_alder: 0
      pollen_birch: 416
      templow: 12.1

Как рассчитывается прогноз

Прогноз пыльцы в интеграции SILAM Pollen формируется на основе модели SILAM и агрегируется в два типа прогнозов:

Почасовой прогноз (24 часа)

  • Строится с шагом в 3 часа.
  • Для каждого 3-часового окна рассчитываются:
    • Максимальная температура.
    • Индекс пыльцы — медианное значение, округлённое вверх до ближайшего целого.
    • Медианное значение для каждого выбранного аллергена.
  • Используется текущая дата + 24 часа вперёд.

Прогноз дважды в сутки (36–120 часов)

  • Данные группируются в 12-часовые интервалы в пределах выбранной длительности прогноза (по умолчанию 36 ч; можно выбрать до 120 ч).
  • Для каждого интервала рассчитываются:
    • максимальная и минимальная температура;
    • медианное значение индекса пыльцы (с округлением вверх);
    • медианное значение каждого выбранного аллергена.
  • Метки прогноза ставятся на 00:00 и 12:00 (локальное время) для каждого интервала.

Используемые параметры

  • POLI — значение индекса пыльцы.
  • temp_2m — температура на высоте 2 метров.

Техника агрегации

  • Данные из SILAM парсятся из XML и объединяются по дате (date).
  • Расчёты выполняются с использованием statistics.median, max, min.
  • Все прогнозы кэшируются в merged_data и доступны через weather.get_forecasts.

Дополнительные ресурсы

Для более подробного изучения информации о пыльце и зонах её распространения рекомендуем ознакомиться со следующими проектами:

  • SILAM Pollen (FMI)
    https://silam.fmi.fi/pollen.html
    Официальный источник пыльцевых прогнозов от Финского метеорологического института. Предоставляет 5-дневные прогнозы распределения пыльцы по Европе и Северной Европе (береза, трава, олива, амброзия) в сотрудничестве с Европейской сетью аллергенов (EAN).

  • Pollen Club
    https://pollen.club/
    Совместный проект SILAM и Пыльца Club, предлагающий прогнозы появления пыльцы для европейской части России. На карте отображается почасовой прогноз SILAM и дневной прогноз для Москвы, при этом при совмещении выбирается вариант с более высокими концентрациями.

  • Allergotop: Allergofon
    https://allergotop.com/allergofon
    Проект, предоставляющий лабораторно-исследовательские данные пыльцевого мониторинга, полученные с помощью пыльцевых ловушек. Эти данные помогают определить порог чувствительности к аллергенам и оптимизировать ежедневную активность аллергиков.

  • MyAllergo
    https://myallergo.ru/pylca/
    Проект, публикующий ежедневные данные пыльцевой ловушки в Санкт-Петербурге. Предоставляет информацию о концентрации пыльцы с удобной цветовой индикацией, что особенно полезно для аллергиков.

  • Allergo.Space: Pollen Monitoring
    https://allergo.space/pollen-monitoring/
    Информационный ресурс, публикующий модельные прогнозы пыльцы, собранные из открытых источников (в том числе данных SILAM). Проект ориентирован на улучшение качества жизни аллергиков за счёт точного мониторинга аллергенов.

  • Яндекс.Погода – Аллергии
    https://yandex.ru/pogoda/allergies
    Раздел Яндекс.Погоды, где по уникальной формуле рассчитывается активность пыльцы с учётом периодов цветения, погодных условий и отзывов пользователей для оценки влияния аллергенов на самочувствие.

Лицензия

MIT License

Поддержка

Если возникнут вопросы или проблемы, создайте issue в репозитории.

About

SILAM Pollen is a Home Assistant integration that delivers pollen level forecasts and sensor data for your location.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%