• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar
  • Skip to secondary sidebar
  • Skip to footer

У Павла!

  • Контроллеры
    • Arduino
      • Приборы
      • Музыка
      • Проекты Arduino
      • Уроки Arduino
      • Игры на Arduino
      • Роботы на Ардуино
      • FLProg
    • Одноплатные ПК
      • Orange pi
      • Raspberry pi
        • Raspberry pi pico
        • Raspberry pi server
        • Проекты Raspberry pi
    • ESP
      • ESP8266
        • NodeMCU
      • ESP32
      • M5stack
    • Другие контроллеры
      • STM32
  • Умный дом
    • Home Assistant
      • Автоматизации
    • Tuya
    • Bluetooth
    • ESPHome
    • Frigate
    • Telegram
    • Яндекс
  • ЧПУ
  • 3d печать
  • Об авторе

Автоматизация оповещения о надвигающимся дожде в Home Assistant

11 мая, 2025

Сервер работает на МиниПК: https://alii.pub/75csno?erid=2SDnjdoJ2kU

Прогнозы погоды обычно нас не оповещают о том, что скоро может начаться дождь. Понятно, что всегда можно “взглянуть на небо и посмотреть как плывут облака”, но в городе, где здания высокие – не всегда видно это самое небо. Тучка может подкрасться незаметно.

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

Так вот, в этой статье, хочется показать, как можно брать прогноз погоды с сайта Яндекс погоды и в случае того, как прогноз погоды в яндексе поменяется на статус “через 2 часа пойдёт дождь”, нам придёт оповещение об этом в Telegram.

Автоматизация:

Автоматизация выглядит следующим образом:


weather_telegram:

  command_line:
    - sensor:
        name: Прогноз дождя
        command: |
          wget -q --user-agent='Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.80 Safari/537.36' "https://yandex.ru/pogoda?lat={{states.zone.home.attributes.latitude}}&lon={{states.zone.home.attributes.longitude}}" -O /dev/stdout | sed 's/>/>\n/g' | grep ".maps-widget-fact__title" -A1 | tail -1 | sed 's/<\/div>//g' | sed 's|.*\. ||' | sed 's|||'
        scan_interval: 1200

 
  automation:
    - id: "weather_telegramm"
      alias: "Телеграмм: прогноз дождя по расписанию и кнопке"
      description: ""
      trigger:
        - platform: event
          event_type: telegram_command
          event_data:
            command: /weather
        - platform: template
          value_template:
            '{{ states("sensor.time")  == "08:30" }}'
        - platform: state
          entity_id: sensor.prognoz_dozhdia
          to:
      condition: 
          - condition: template
            value_template: "{{ states('sensor.prognoz_dozhdia')!= ''}}"
          - condition: template
            value_template: "{{ states('sensor.prognoz_dozhdia')!= 'Открыть карту осадков' }}"
          - condition: template
            value_template: "{{ states('sensor.prognoz_dozhdia') in ['В течение 2 часов ожидается дождь', 'В течение часа ожидается дождь'] }}"
      action: 
        - action: telegram_bot.send_message
          data:
            message: |
              {{ states('sensor.prognoz_dozhdia') }}

Эта автоматизация для packege. Следовательно там файлик и нужно создавать.

В этой автоматизации длинное выражение начинающееся с wget. Тянет с сайта яндекс погоду и парсит её, выбирая оттуда нужные параметры и записывает в сенсор sensor.prognoz_dozhdia.

В этот сенсор записываются значения: “В ближайшие 2 часа осадков не ожидается” “В течение часа ожидается дождь” “В течение 30 минут ожидается дождь” и так далее.

Погода проверяется каждые 20 минут. И как только в сенсоре изменяется значение (показание), он её отправляет в telegram. И получалось довольно много всего. Это видно по сообщениям в чате:

И вот чтоб такого не было, я решил оставить только 2 прогноза погоды, это

'В течение 2 часов ожидается дождь', 'В течение часа ожидается дождь'

Так как мне важно, чтоб оповещало до того, как дождь начнётся и не особо важно, что дождь не начнётся или закончится через какое-то время.

Если хотите получать все уведомления, то закомментируйте эту строчки:

- condition: template

value_template: "{{ states('sensor.prognoz_dozhdia') in ['В течение 2 часов ожидается дождь', 'В течение часа ожидается дождь'] }}"

 

И еще один момент, в виде кода у меня не добавлялось корректно выражение начинающееся с wget.  пришлось его немного изменить, по этому прикладываю полную версию строчки сюда. По этому её надо копировать отсюда и в автоматизацию вставить:

wget -q –user-agent=’Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.80 Safari/537.36′ “https://yandex.ru/pogoda?lat={{states.zone.home.attributes.latitude}}&lon={{states.zone.home.attributes.longitude}}” -O /dev/stdout | sed ‘s/>/>\n/g’ | grep “.maps-widget-fact__title” -A1 | tail -1 | sed ‘s/<\/div>//g’ | sed ‘s|.*\. ||’ | sed ‘s|</p>||’

Ну или файл автоматизации на всякий случай еще прикладываю сюда, чтоб наверняка копировалось правильно: https://disk.yandex.ru/d/Z6kcUStu4NA33Q

Так-же еще автоматизация сама пришлёт прогноз в 8:30 утра, но если у Вас стоит фильтр на дождь, то не пришлёт ничего, если не будет дождя.

И самому можно запросить прогноз по кнопке /weather.

 

Вывод:

Тема с прогнозом дождя весьма любопытна в реализации. Я эту автоматизацию стырил у знакомого. И то как прогноз дождя делается, путём запроса сайта яндекс и распарсивая его – это прям весьма находчиво и не требует каких-то дополнительных интеграций. Все делается с штатными средствами linux, программой wget.

Primary Sidebar

Поиск

Новые записи

  • Автоматизация оповещения о надвигающимся дожде в Home Assistant
  • Автоматизация перезагрузки устройства по команде Ping.
  • Разблокирование и добавление шлюза Xiaomi gateway 3 в Home Assistant для управления Bluetooth устройствами из экосистемы Xiaomi Home (mihome)
  • Интеграция для локального управления (без интернета) ик пультом Tuya работающим по wifi из Home Assistant
  • Транслируем показания с Уличного Bluetooth Датчика температуры по BTHome на дисплей датчика температуры XIaomi LYWSD03MMC

Официальный YouTube Канал M5Stack:

Подписывайтесь на Телеграм канал

https://t.me/ypavla

Подписаться на YouTube!

Secondary Sidebar




Подписывайтесь на Telegram Канал!

У Павла!

Footer

Copyright_У Павла! © 2025 ·