Штормовые предупреждения в Home Assistant

Штормовые предупреждения в Home Assistant

Я тут недавно карту настраивал и заинтересовался что это за «Источники геолокации» такие в параметрах карточки:

Карточка «Карта» в Home Assistant

Оказывается эта штука нужна, чтобы отслеживать разного рода предупреждения о погоде, землетрясениях и лесных пожарах. Из коробки в Home Assistant есть источники геолокации для Новой Зеландии, Испании, Австралии и других стран. Вот только я не в Австралии живу 🙂

Но в Home Assistant можно добавлять любые произвольные ленты оповещений в формате GeoRSS. Осталось найти эти самые ленты для России — это оказалось непросто.

Единая государственная система информации об обстановке в Мировом океане (ЕСИМО)

Спустя продолжительные поиски, я набрел на портал ЕСИМО, где мне таки удалось отыскать GeoRSS ленту для России и соседних стран.

Данные по погодным предупреждениям свободнораспространяемые, но такое ощущение, что ЕСИМО не хотели, чтобы я их нашел 😅 Вот, например, есть агрегированные данные опасных гидрометеорологических явлений по всему миру:

Портал ЕСИМО
Данные предоставлены ВНИИГМИ-МЦД.

Но при экспорте в GeoRSS почему-то теряется бо́льшая часть предупреждений. Помимо агрегированных данных, нашлось еще 2 вот таких отдельных ресурса:

В первом случае тип ГСТ «O», а во втором «W». Понятия не имею, что это значит, но зато оба ресурса нормально экспортируются в GeoRSS.

GeoRSS в Home Assistant

Я не буду приводить подробное описание формата GeoRSS, нам главное, что в GeoRSS у каждого сообщения в ленте указываются географические координаты. А это значит, что из общей ленты можно отфильтровать штормовые предупреждения только в определенном радиусе.

Для этого в Home Assistant уже есть интеграция. Чтобы ее настроить, в configuration.yaml достаточно указать вот эти строчки:

sensor:
  - platform: geo_rss_events
    name: 'Weather alerts (O)'
    url: 'http://portal.esimo.ru/dataview/viewrss?resourceId=RU_RIHMI-WDC_487'
    unit_of_measurement: 'alerts'
    radius: 120
  - platform: geo_rss_events
    name: 'Weather alerts (W)'
    url: 'http://portal.esimo.ru/dataview/viewrss?resourceId=RU_RIHMI-WDC_227'
    unit_of_measurement: 'alerts'
    radius: 120

И после перезапуска Home Assistant у вас появятся новые сенсоры, показывающие количество погодных предупреждений в радиусе 120 километров от вашего дома:

Карточка в Home Assistant, показывающая количество погодных оповещений

И расстояние до них:

GeoRSS сенсор в Home Assistant

Отправка штормовых предупреждений в Telegram

Если не расскажу про настройку уведомлений, то я зря писал эту статью 🙂 Поэтому вот пример автоматизации:

automation:
  - alias: "Weather alerts to Telegram"
    trigger:
      platform: state
      entity_id:
        - sensor.weather_alerts_o_any
        - sensor.weather_alerts_w_any
    condition:
      condition: template
      value_template: "{{ trigger.from_state.state | int < trigger.to_state.state | int }}"
    action:
      service: notify.telegram_roland
      data:
        message: >
          {% set alert_sensors = [
            states.sensor.weather_alerts_w_any,
            states.sensor.weather_alerts_o_any,
          ] %}
          {% set alerts = alert_sensors | map(attribute='attributes') | map('items') | map('selectattr', 1, 'contains', 'km') %}
          {% set latest = alerts | map('list') | select() | map('max', attribute=0) | max(attribute=0) %}
          Действует предупреждение об опасных погодных явлениях от {{ as_local(as_datetime(latest[0] + 'Z')).strftime('%H:%M') }} в {{ latest[1] | replace('km', ' км') }} от вашего дома. Подробности [на портале ЕСИМО](http://portal.esimo.ru/dataview/viewresource?resourceId=ru_rihmi-wdc_2772).

Мой опыт

В начале статьи я упоминал карту и источники геолокации. Так вот, к GeoRSS это не относится — интеграция на карте ничего не показывает. Полное описание штормового предупреждения тоже не отображается, хотя в самой RSS ленте всё есть 😕

Справедливости ради, описания не очень полезные, потому что выглядят они вот так:

КРАСНОДАР 27/05 1318= 15 ШТОРМ НЯ РОСТОВ ГМЦ ГГМО= 16 ШТОРМ НЯ РОСТОВ ГМЦ ОМ/П= ОПОВЕ/ЕНИЕ К ПРЕДУПРЕЖДЕНИ/ НЯ О ВПО НР Ч ОТ 22.05.202Ч НА 1500 28.05.202Ч МЕСТАМИ В СЕВЕРО-ВОСТО/НЫХ, СЕВЕРО-ЗАПАДНЫХ, /ГО-ВОСТО/НЫХ, /ГО-ЗАПАДНЫХ И ЦЕНТРАЛЬНЫХ РАЙОНАХ КРАЯ /ИСКЛ//АЯ МО Г.КРАСНОДАР/ ОТМЕ/АЛАСЬ ВЫСОКАЯ ПОЖАРООПАСНОСТЬ /ВПО/ Ч КЛАССА /НЯ/.

В целом все понятно, но рассчитано скорее на специалистов, а не на обычных людей.

Перед написанием статьи, я несколько дней мониторил портал ЕСИМО и вот что успел заметить:

  • Помимо предупреждений о шторме, так же можно встретить информацию о заморозках, высоком уровне пожарной опасности, тумане, снеге, грозе и прочих опасных погодных явлениях.
  • Предупреждения публикуются не только для России, но и для некоторых других стран Европы и Азии. Хотя я не уверен для каких именно.
  • Информация совпадает с тем, что пишут в местных СМИ и на сайте МЧС. То есть данные на портале не врут 🙂
  • В некоторых случаях описания нечитаемые из-за неверной кодировки. Но HASS их все равно не показывает, поэтому не страшно.
  • В ленте нет категорий, поэтому фильтрацию по типу предупреждений не настроить.

Я не особо слежу за новостями, постоянно забываю посмотреть прогноз погоды и поэтому такие оповещения для меня очень даже полезны. Если не придираться, то данные из ЕСИМО в целом норм. Самое главное их можно экспортировать в формате GeoRSS, который легко «прикручивается» к Home Assistant.

В целом текущее решение меня устраивает, но если вдруг найду альтернативу получше, то дам знать в Telegram:

man smart-home
Telegram про умный дом: идеи, девайсы, Home Assistant.

Была ли статья полезна?

Хотите сказать спасибо? Кофе автору — ваша благодарность.

На кофе
Подписка на новые статьи

Уведомления, как только в блоге появится что-нибудь интересненькое.

Подписываясь, вы даете согласие на обработку персональных данных.