Блог

Уведомление о погоде в Telegram с Emoji

Для отслеживания погоды я использую компонент пользователя lapatoc, за что ему огромное спасибо! И вот что-то мне захотелось в Telegram получать сообщение о текущей погоде по утрам, да не просто получать, а ещё и с Emoji.

Не долго думая, при помощи шаблонов сделал себе и супруге. Спешу поделиться, возможно кому-то пригодится.

Сам шаблон:

Доброе утро! {{'\U0001F618'}} За окном: {{ state_attr('weather.yandex_weather', 'weather_condition')}} {%-set cond = {'Ясно':'\U00002600','Малооблачно':'\U000026C5', 'Облачно с прояснениями':'\U000026C5','Пасмурно':'\U00002601', 'Морось':'\U00002614','Небольшой дождь':'\U00002614', 'Дождь':'\U00002614','Умеренно сильный дождь':'\U00002614', 'Сильный дождь':'\U00002614','Длительный сильный дождь':'\U00002614', 'Ливень':'\U00002614','Дождь со снегом':'\U00002614\U00002744', 'Небольшой снег':'\U00002744','Снег':'\U00002744', 'Снегопад':'\U00002744','Град':'\U00002614', 'Гроза':'\U0001F329','Дождь с грозой':'\U00002614\U0001F329', 'Гроза с градом':'\U00002614\U0001F329'}%} {%-for key, value in cond.items()%} {%-if state_attr('weather.yandex_weather', 'weather_condition') == key%} {{-value}} {%-endif%} {%-endfor%} Температура: {} Ощущается как: {} {%-if state_attr('weather.yandex_weather', 'feels_like')|int < -20 %} {{'\n'}}На улице сегодня мороз, нужно одеваться максимально тепло. {%-elif state_attr('weather.yandex_weather', 'feels_like')|int < -10 %} На улице сегодня холодно, нужно одеваться теплее. {%-elif state_attr('weather.yandex_weather', 'feels_like')|int < -5 %} На улице сегодня прохладно. {%-else%} Погода хороша! {%endif%} Хорошего дня!

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

Сделал вот такую автоматизацию:

- id: '1607880034719' alias: Погода Утреннее description: '' trigger: - platform: time at: 07:00:00 condition: [] action: - service: notify.telega data: message: 'Доброе утро! {{''\U0001F618''}} За окном: {{ state_attr(''weather.yandex_weather'', ''weather_condition'')}} {%-set cond = {''Ясно'':''\U00002600'',''Малооблачно'':''\U000026C5'', ''Облачно с прояснениями'':''\U000026C5'',''Пасмурно'':''\U00002601'', ''Небольшой дождь'':''\U00002614'',''Дождь'':''\U00002614'', ''Сильный дождь'':''\U00002614'', ''Сильный дождь, гроза'':''\U00002614\U0001F329'', ''Дождь со снегом'':''\U00002614\U00002744'', ''Небольшой снег'':''\U00002744'', ''Снег'':''\U00002744'', ''Снегопад'':''\U00002744''} %} {%-for key, value in cond.items()%} {%-if state_attr(''weather.yandex_weather'', ''weather_condition'') == key%} {{-value}} {%-endif%} {%-endfor%} Температура: {} Ощущается как: {} {%if state_attr(''weather.yandex_weather'', ''feels_like'')|int < -20 %} На улице сегодня мороз, нужно одеваться максимально тепло. {%elif state_attr(''weather.yandex_weather'', ''feels_like'')|int < -10 %} На улице сегодня холодно, нужно одеваться теплее. {%elif state_attr(''weather.yandex_weather'', ''feels_like'')|int < -5 %} На улице сегодня прохладно. {%else%} Погода хороша! {%endif%} Хорошего дня!' mode: single

Результат выполнения:


Спасибо! Добавил себе тоже автоматизацию.

А как заменить Яндекс на 

OpenWeatherMap. В Украине Яндекс заблокирован

В ближайшие дни выложу инструкцию. 

супер, спасибо

единственное, мне непонятно такое большое значение wind_speed

для последующих периодов в прогнозе оно кратно меньше, даже в примере на видео - текущее 14, считать, что это в м/с (как привычно всем воспринимать этот показатель) - это чересчур сильный ветер

мне показалось, что в ответе на запрос интеграции openweathermap используются единицы измерения Imperial - там как раз miles/h, но это может касаться только текущей погоды - дальше, вроде привычные нам м/с

проверил у себя в автоматизации - то же самое - показывает действующую скорость 18 сейчас - но за окном (и в других прогнозах и сервисах погоды - скорость 3-4 м/с), дальнейшие прогнозы в openweathermap тоже 3-4 м/с

можете уточнить, нужно ли использовать доп.коэффициент в автоматизации к этому показателю?

Я, честно говоря, не обратил на это внимания ) 
Но в целом, можно прямо в шаблоне перевести в нужные единицы измерения, операции не сложные, особых проблем не вызовет.

А как двоим пользователям это дело отправлять?

Либо в чат, либо добавить второго пользователя в конфиг. Можно сделать по аналогии можно.

А можно по подробней, я как только не пытался не чего не получилось.

А в самой автоматизации как это прописать?

у меня также

https://pastebin.com/KtzssciA">https://pastebin.com/KtzssciA

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

А можна для стартующих - пару предложени подробностей "какой файл куда"? ;)


Вернуться назад
Вернуться назад