Home assistant Telegram примеры

Home Assistant – одна из самых популярных систем домашней автоматизации, поддерживающая устройства различных производителей. Тут можно завязать в один сценарий устройства Sonoff, Xiaomi и Tuya. Настроить под себя интерфейс. Сделать отправку оповещений в Telegram. И полностью избавиться от облачных сервисов от производителей умного дома.

Home Assistant является open-source проектом и работает на Python. В качестве сервера может выступать как одноплатный Raspberry Pi, так и обычный ПК под управлением Windows или Linux.

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

Настройка Home Assistant

На данном сайте можно найти уроки по установке и настройке Home Assistant. Для удобства привожу полный список:

  1. Установка Home Assistant на Windows.
  2. Установка HA на Raspberry Pi 4.
  3. Первые настройки: file editor, системные сенсоры, интерфейс.
  4. Настраиваем резервное копирование в Google Drive.
  5. Инструкция по добавлению Xiaomi Gateway 2 в Home Assistant.
  6. Добавление розетки Xiaomi и светильников Yeelight.
  7. Как создать карту дома и расположить на ней датчики и устройства.
  8. Устанавливаем расширение HACS.
  9. Добавляем робот-пылесос Xiaomi Vacuum Cleaner Mop в Home Assistant.
  10. Получаем информацию о подключенных к роутеру Mikrotik устройствах и выводим ее на карту дома.
  11. Считаем, сколько времени была включена розетка или другое умное устройство.
  12. Автоматизации в Home Assistant. Структура.
  13. Примеры сценариев автоматизации в Home Assistant.
  14. Как запустить сценарий Home Assistant при нажатии на кнопку Aqara D1.
  15. Ping в Home Assistant

Некоторые возможности веб-интерфейса Home Assistant

  • Добавление плана помещения с расположенными на нем умными устройствами и дальнейшее управление приборами простым нажатием на иконку. Захотели включить или выключить свет в определенной комнате — нажали на соответствующую лампочку. Посмотреть определенную камеру — нажали на ее иконку и получили изображение. Посмотреть историю открытия входной двери или последнее замеченное движение в коридоре? Тоже не проблема — нажимаем на нужный значок и получаем всю необходимую информацию.
  • Одна из самых полезных функций — выключение света во всей квартире одним нажатием на нужный значок. При наличии охранных датчиков можно так же легко управлять и постановкой квартиры на охрану.
  • Умный дверной звонок с камерой — просматривайте историю звонков, а также время последнего движения у входной двери.
  • Используя умные лампы свет можно не только включать и выключать, но и изменять температуру и яркость (должно поддерживаться устройством).
  • При наличии Mi flora plant sensor можно вывести на экран текущие значения яркости, температуры и влажности у Ваших домашних цветов.
  • И многое многое другое.

Плюсы Home Assistant

  1. Большой выбор устройств и плагинов. Список поддерживаемого оборудования можно найти на официальном сайте.
  2. Настраиваемый веб-интерфейс. Программное обеспечение имеет веб-интерфейс, на который выводятся все устройства и дополнительная информация. Все это можно настроить под себя — добавить нужные вкладки, расположить блоки в удобном порядке, нарисовать карту.
  3. Автоматизация. Куда больше различных возможностей для автоматизации по сравнению со стандартными приложениями, такими как MiHome.
  4. Система постоянно обновляется — добавляется поддержка новых девайсов, появляются новые возможности, улучшается интерфейс.
  5. Большое количество информации по системе. Ответы практически на все вопросы можно легко найти на официальном сайте, Youtube каналах или на сайтах про умный дом. Все таки Home Assistant — самая популярная на данный момент система домашней автоматизации.
  6. Работа с оборудованием напрямую, без использования китайских серверов, соответственно их блокировка или недоступность никак не скажется на работе умного дома.

Из минусов стоит выделить разве что большое количество времени, которое потребуется на то, чтобы разобраться в системе. Это не Mi Home, который настраивается за 10 минут. Тут потребуется потратить несколько недель, а может даже и месяцев для реализации всего требуемого функционала. Но результат однозначно того стоит.

Еще по теме:  Буду спонсором для ТГ канала

Home Assistant — Telegram Notifications (How-To)

Home Assistant. Урок 11.1 Уведомления Telegram — создание бота, отправка сообщений, прием команд

Вам также может понравиться

Подробнее о статье Дом с Алисой – приложение от Яндекса для умного дома

Дом с Алисой – приложение от Яндекса для умного дома

Подробнее о статье Установка Home Assistant на Raspberry Pi 4

20.03.2022

Установка Home Assistant на Raspberry Pi 4

Подробнее о статье Информация о подключенных к роутеру устройствах в Home Assistant

29.12.2020

Информация о подключенных к роутеру устройствах в Home Assistant

Подробнее о статье Добавление розетки Xiaomi и светильников Yeelight в Home Assistant

18.07.2021

Добавление розетки Xiaomi и светильников Yeelight в Home Assistant

Подробнее о статье Настройка Home Assistant: начало. File Editor. Настройка интерфейса

22.02.2021

Настройка Home Assistant: начало. File Editor. Настройка интерфейса

Подробнее о статье Установка Home Assistant на Windows

02.01.2021

Источник: smarthomeinfo.ru

Home Assistant: немного о шаблонах

Тема шаблонов (Templates) в HA всегда вызывает много вопросов, причем порой и у пользователей системы со стажем. Здесь я хочу собрать некоторое кол-во примеров с комментариями, которые помогут лучше понять принцип работы и синтаксис темплейтов.

Для погружения в тему, начать стоит как всегда с изучения официальной документации, а так же руководства на шаблонизатор Jinja2, именно его под капотом использует HA.
Шаблоны можно применять во множестве мест, начиная от объектов (например, создав собственный sensor или switch) и заканчивая скриптами, автоматизациями и интерфейсом lovelace. С их помощью можно получать необходимые данные из объектов (сущностей) — стейты и атрибуты, при необходимости модифицировать их, а так же реализовывать всевозможную логику (переменные, циклы, проверки и т.д.). Это по-настоящему мощный инструмент, открывающий массу возможностей.

Один из главных инструментов для работы с шаблонами находится в разделе «Панель разработчика» — «Шаблоны» (/developer-tools/template), здесь можно в он-лайн режиме проверить корректность составленного шаблона и оценить его результат. Не забывайте про него, это сохранит множество времени и нервов при отладке сложных конструкций, а так же поможет лучше понять как все это работает.

Коротко про синтаксис

Обратите внимание на оформление, в шаблонах могут использоваться строки с разным обрамлением:

  • > — Expressions (выражения), эти конструкции после вычисления возвращают какой-то объект.
    Пример: > вернет номер текущей недели.
    А > — атрибут brightness (яркость) лампы.
  • — Statements (не знаю как правильно перевести), в этих конструкциях размещается все то, что содержит в себе какую-то «логику»: переменные, проверки ifelse, циклы и т.д.
    Пример: Никого нет вернет текст «Никого нет» если стейт у группы group.family_persons равен not_home.

По умолчанию, каждая строка шаблона на выходе будет оканчиваться символом новой строки «n».
Причем даже те строки, которые ничего не выводят (например, объявление переменной — ).
Об этом необходимо помнить и учитывать при составлении темплейта.
К примеру, если шаблон используется для вывода чего-либо на экран, можно потратить уйму времени в борьбе с лишними пустыми строками на выходе.
Для управления этим поведением в jinja2 существует специальный механизм:

  • > или знак минуса в левой части уберет символ новой строки до текущей.
  • > или знак минуса в правой части уберет символ новой строки после текущей.

Помимо этого, стоит уделить время ресурсу yaml-multiline.info, на котором можно наглядно разобраться с вопросом форматирования и переноса строк в YAML’е (символы |, > и т.д.), это бывает полезно при форматировании многострочных шаблонов.

Отдельно стоит упомянуть о том, какие операторы можно использовать в шаблонах.
Полную информацию об этом стоит искать в документации на jinja, а вкратце это:

  • Математические (сложение, вычитание, умножение и т.д.)
  • Сравнения (больше, меньше, равно и т.д.)
  • Логические (и, или, не)

Помимо этого, в выражениях можно использовать фильтры jinja и HA, передавая значения в них через символ «|».
Пример: ((states(‘sensor.0x158d0003230618_pressure’) | float) / 1.333) | round(2)

Важные моменты в документации, на которые стоит обратить особое внимание:

  • 4 Важных правила написания шаблонов
  • Особая форма записи объектов, имена которых начинаются с чисел
  • Приоритет операторов в шаблонах

Примеры

Сенсоры и их атрибуты

С помощью шаблонов можно создавать как бинарные (onoff), так и обычные сенсоры:

binary_sensor: — platform: template sensors: # Создаем выделенный сенсор для водонагревателя, отражающий его статус (вклвыкл) boiler_status: device_class: power # Сенсор примет состояние ‘on’, если стейт объекта switch.tplink_smartplug_01 будет ‘on’ value_template: «>» # Собственный датчик протечки, меняющий свое состояние в зависимости от input_boolean neptun_water_leakage: friendly_name: Датчики протечки Нептун device_class: ‘moisture’ value_template: > # Если input_boolean.neptun_activated = ‘on’, то у нас протечка > sensor: — platform: template sensors: # Создаем выделенный сенсор на основе атрибута другого объекта gismeteo_temperature: unit_of_measurement: °C # В этот сенсор будет попадать данные из атрибута temperature (температура) value_template: ‘>’ # Сенсор уровня воды в увлажнителе воздуха (в %) smartmi_humidifier_01_water_level: friendly_name: «Остаток воды» value_template: > # Здесь сырые данные из атрибута depth переводятся в проценты >

Еще по теме:  Запрос на подписку в Телеграм

В примерах выше используются простые выражения (Expressions) с использованием встроенных в HA функций is_state() и state_attr(). С полным перечнем функций и правилами их применения лучше всего ознакомится в документации.

Более интересный пример:

sensor: — platform: template sensors: date_formatted: friendly_name: ‘Date (DD.MM.YYYY)’ value_template: «>» icon_template: mdi:calendar attribute_templates: day_of_week: >- >

Здесь в качестве стейта (state) сенсора date_formatted будет выведен результат выражения
> и дополнительно, в виде атрибута — день недели, получаемый с помощью ряда операций.

В качестве значения сенсора можно использовать произвольный текст, в этом примере в зависимости от состояния датчика двери (геркона) в стейт будет записан текст «Открыта» или «Закрыта» (речь про дверь):

sensor: — platform: template sensors: entrance_door_status: value_template: > Открыта Закрыта Unavailable

Более комплексный пример:

— platform: template sensors: local_pressure_mmhg: value_template: > 500 %> > >

Темплейты можно использовать практически во всех возможных местах, например в именах будущих сенсоров:

— platform: template sensors: tplinksmartplug01_amps: friendly_name_template: «> Current» value_template: ‘>’ unit_of_measurement: ‘A’ tplinksmartplug01_watts: friendly_name_template: «> Current Consumption» value_template: ‘>’ unit_of_measurement: ‘W’

Или меняя иконку сенсора в зависимости от различных условий:

mirobot_1s_battery: friendly_name: «Xiaomi Vacuum Cleaner 1S» device_class: battery unit_of_measurement: ‘%’ icon_template: > = 98 %> mdi:battery = 85 %> mdi:battery-90 = 75 %> mdi:battery-80 = 65 %> mdi:battery-70 = 50 %> mdi:battery-50 = 35 %> mdi:battery-30 = 25 %> mdi:battery-20 mdi:battery-10 mdi:battery-outline value_template: «>»

Switches

В выключателях так же есть возможность использовать шаблоны.
Например, можно создать выключатель телевизора с разными действиями на включение и выключение:

switch: — platform: template switches: samsungtv_40c5100: # Считать выключатель включенным, если binary_sensor.samsungtv_40c5100 = ‘on’ value_template: «>» # Выключатель доступен если выполняется условие ниже, иначе он становится unavailable availability_template: «>» turn_on: service: switch.turn_on data: entity_id: switch.smartir_01_tv_samsung_power turn_off: service: script.turn_on data: entity_id: script.power_off_samsungtv_40c5100 # Иконка у выключателя будет меняться в зависимости от состояния сенсора binary_sensor.samsungtv_40c5100 icon_template: >- mdi:television mdi:television-off

Скрипты и автоматизации

Самое широкое применение шаблоны встречают в скриптах и автоматизациях.

Скрипт для запуска уборки роботом-пылесосом конкретной комнаты (в интерфейсе input_select.room_to_vacuum это выпадающий список с комнатами):

script: start_vacuum_room: alias: ‘Clean Selected Room [Mi Robot]’ sequence: — service: script.turn_on data_template: entity_id: >- script.start_vacuum_hallway script.start_vacuum_nursery script.start_vacuum_living_room script.start_vacuum_kitchen script.start_vacuum_bedroom

Автоматизация, меняющая мощность работы робота-пылесоса:

automation: — alias: ‘Set cleaning mode’ trigger: platform: state entity_id: input_select.vacuum_power action: — service: > script.set_vacuum_power_silent script.set_vacuum_power_standard script.set_vacuum_power_medium script.set_vacuum_power_turbo script.set_vacuum_power_gentle

Оповещение о произошедшей ошибке.
С помощью шаблона можно получить текст ошибки из атрибута error:

automation: — alias: ‘Оповещение об ошибке’ initial_state: true trigger: platform: state entity_id: vacuum.xiaomi_vacuum_cleaner to: «error» action: — service: notify.telegram data_template: message: | Mi Robot: Произошла *ошибка*! >

Автоматизация меняющая яркость лампы по двойному клику на кнопку (по кругу):

automation: — alias: ‘Яркость света в детской’ initial_state: true trigger: platform: state entity_id: sensor.0x158d00033efd9e_action to: ‘double’ action: service: light.turn_on data_template: entity_id: light.detskaia transition: ‘0.5’ brightness: > 51 102 153 204 255 3

Плавное включение света в заданное в интерфейсе HA время (будильник):

automation: — alias: Sunrise Lighting (Bedroom) initial_state: true trigger: platform: template # Триггером служит совпадение времени в sensor.time и input_datetime.sunrise_in_bedroom value_template: «>» condition: condition: and conditions: — condition: state entity_id: binary_sensor.workday_sensor state: ‘on’ — condition: sun before: sunrise before_offset: «00:30:00» action: — service: light.turn_on entity_id: light.spalnia_stol data: effect: SunriseBW

Постепенное увеличение громкости:

script: googlehome3792_increase_volume: alias: Increase volume by 5% sequence: — service: media_player.volume_set entity_id: media_player.googlehome3792 data_template: volume_level: > > 1 automation: — alias: Increase volume loop — Childrens Room initial_state: false trigger: platform: time_pattern minutes: «/3» action: — service: script.turn_on entity_id: script.googlehome3792_increase_volume

Изменение громкости у выбранного из выпадающего списка источника:

automation: — alias: ‘Громкость радио’ trigger: platform: state entity_id: input_number.volume_radio action: service: media_player.volume_set data_template: entity_id: > media_player.gostinaia media_player.googlehome9967 media_player.detskaia media_player.googlehome3792 volume_level: ‘>’

Отправка оповещений о приходе или уходе из дома:

Еще по теме:  Анимированный профиль в Телеграм

automation: — alias: ‘Home Presence Alert’ initial_state: true trigger: platform: state entity_id: person.alexander, person.irina condition: condition: and conditions: — condition: template value_template: «>» action: — service: notify.telegram data_template: message: > > дома! скорее всего вне дома.

В примере выше сообщение будет выглядеть примерно так — «Александр скорее всего вне дома.»
Шаблон соберется в одну строку, т.к. перед ним указан символ «>», означающий замену символов новой строки на пробелы.

Еще одно оповещение, на этот раз о температуре в комнате (холодно или жарко):

automation: — alias: Termo alert [Living Room] trigger: — platform: template value_template: «>» for: minutes: 5 — platform: template value_template: » 25 >>» for: minutes: 5 action: — service: notify.telegram data_template: message: >- В *Гостиной* 23 -%> жарко, холодно, температура: *>°C*

Команда для телеграм-бота, возвращающая имена находящихся дома:

automation: — alias: ‘Telegram Bot — Who is home?’ trigger: platform: event event_type: telegram_command event_data: command: ‘/whoishome’ action: service: telegram_bot.send_message data_template: target: ‘>’ message: | Сейчас дома: > Никого нет

Здесь, в отличии от предыдущего примера, перед шаблоном указан символ «|», означающий сохранение всех переносов строк в шаблоне. Лишняя пустая строка из вывода убрана с помощью конструкции «

Еще одна команда для бота, присылающая текущую погоду:

— alias: ‘Telegram Bot — Weather’ trigger: platform: event event_type: telegram_command event_data: command: ‘/weather’ action: — service: telegram_bot.send_photo data_template: target: ‘>’ file: ‘/config/www/weather_icons/>.webp’ caption: | Температура >°C Влажность >% Давление > mmHg

Здесь, в зависимости от стейта сенсора weather.gismeteo (sunny, rainy, snowy и т.д.) отправляется картинка соответствующая текущей погоде (картинки подготовлены заранее).

Я постарался собрать здесь как можно более разнообразные примеры использования шаблонов в HA, но т.к. эта тема невероятно обширная, получилось это у меня слабо… =)
В будущем я надеюсь дополнить заметку другими интересными (с разных точек зрения) примерами.

Источник: simple-ha.ru

Home assistant and Telegram bot: Quick Answers

When quick responses show up under the message in the Telegram bot’s response, this is called Inline keyboard. This method of communication is very comfortable, it reminds of the usual menu navigation. We will do the same for our bot in this article.

To begin with, I recommend reading the articles Notifications in telegram from a smart home (RU) and Telegram: talking to a smart home (RU). Without the first one, nothing will work, and we will edit the automation from the second article.

In the automation of “ping-pong”, we will change just one word: telegram_command to telegram_callback. After clicking on the button in our menu, the old automation simply did not see the answer, although the content of the message was one-to-one. When we respond to a message with the buttons under the message, it is not the same as just a message in a chat to a bot.

And as a result, telegram no longer responds to the /ping command

We will create a new automation, like this one (RU), but the trigger will be /start, and we will respond not only with text, but also through the Inline keyboard. Below are the screenshots:

1. Enter the name and description
2. The event is the same as last time, only the command was changed to /start. 3. The action is also unchanged, only the text has been changed.
4. That’s the menu. We put a check mark on the Inline keyboard and write the following Light:/lghtbdrm, Info:/inf

The word before “: “is what will be displayed on the button, what is after is the command that will be sent in the response. We save, send /start to the bot and get our text and quick answers from below in response.

By clicking on the buttons, we can easily make sure that the bot is responding

After pressing the button, the clock symbol lights up on it. So, we can easily create a menu in any number of levels and implement home management only from telegram.

And that’s all, subscribe, likes, repost…

Источник: mullin-igor.medium.com

Рейтинг
( Пока оценок нет )
Загрузка ...