Автоматическая отправка файлов из папки в Телеграмм home assistant

В данной статье будет рассмотрен процесс создания автоматизаций в Home Assistant. Все будем делать через файлы конфигурации, вручную прописывая все условия и действия.

Для начала убедитесь, что Вы вынесли все файлы конфигурации в отдельную папку (строчка automation: !include_dir_merge_list имя_папки/automation в configuration.yaml). Подробнее про вынос в отдельные файлы и папки я писал в самой первой статье по настройке Home Assistant.

Далее в папке automation нужно создать файл с любым названием и расширением .yaml. Например, можно создать файл light.yaml и прописывать туда все сценарии, касающиеся освещения.

Из чего состоит автоматизация в Home Assistant

Запись автоматизаций в Home Assistant выглядит следующим образом:

— alias: имя автоматизации trigger: триггер condition: условие action: действие

Рассмотрим каждый из элементов.

Trigger

Триггер — событие, при наступлении которого автоматизация будет срабатывать. Например, в качестве триггера может выступать время, изменение состояния устройства, событие в системе (тот же запуск Home Assistant) и т д.

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

Триггер — обязательный элемент автоматизации. А еще их может быть несколько, при этом автоматизация будет запущена при наступлении любого из них.

Время в качестве триггера
— platform: time at: «10:00:00»

platform: time позволяет запускать автоматизацию в определенное время. В примере выше — в 10 часов.

— platform: time_pattern minutes: 5

platform: time_pattern позволяет запускать автоматизацию через указанный интервал времени. В примере выше запуск будет происходить каждый час, когда будет наступать 5 минут. В 13:05, в 14:05, в 15:05 и т д.

Если написать minutes : «/5», то автоматизация будет срабатывать каждые 5 минут. Аналогично можно написать и hours : «/5» для срабатывания автоматизации каждые 5 часов. seconds: /5 — каждые 5 секунд.

Состояние устройства
— platform: state entity_id: ID сущности to: «unavailable»

В данном примере автоматизация сработает, когда устройство, вписанное в entity_id: перейдет в состояние «недоступно». Если же вместо to: написать from:, то наоборот, при переходе из «недоступно» в любое другое состояние.

— platform: state entity_id: ID сущности from: «not_home» to: «home»

Еще по теме:  Телеграм не находит по номеру телефона

А тут автоматизация запустится в момент изменения состояния с not_home в home. Т е когда кто-то появится дома. Можно заменить на off и on, т е на переход устройства из состояния «выключено» в состояние «включено».

— platform: state entity_id: ID сущности to: «on» for: «00:00:30»

В данном примере для срабатывания автоматизации, устройство должно перейти в статус «On» и находиться в нем в течение 30 секунд. Также можно вместо to написать from. Например from: off с указанием времени (for: «00:00:30») запустит автоматизацию, если устройство перешло из состояния «выключено» в любое другое и находится в нем 30 секунд.

Температура, влажность и другие цифровые значения
— platform: numeric_state entity_id: ID сущности above: выше указанного значения below: ниже указанного значения

Используя данный триггер можно запускать автоматизацию, когда значение указанной сущности пересечет заданную цифру. Можно использовать above и below как вместе, так и что-то одно.

Платформа event для устройств, подключенных через шлюз Xiaomi

Есть еще и платформа event, которая, помимо прочего, используется для отслеживания состояния подключенных к шлюзу Xiaomi кнопок и беспроводных выключателей:

— platform: event event_type: xiaomi_aqara.click event_data: entity_id: ID сущности click_type: тип клика: single, double, long и т д
— platform: event event_type: xiaomi_aqara.cube_action event_data: entity_id: ID сущности action_type: действие: flip90, flip180, move и т д

Condition

Condition — условие для срабатывания автоматизации. После того, как сработает триггер, система проверяет, выполняется ли указанное в condition условие и если да, то запускает автоматизацию. Это не обязательный элемент в автоматизациях Home Assistant.

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

#Выполнение любого из условий condition: — condition: or conditions: — condition: state entity_id: ID сущности state: состояние — condition: state entity_id: ID сущности state: состояние
#Выполнение одного из условий condition: — condition: state entity_id: ID сущности state: состояние — condition: state entity_id: ID сущности state: состояние

Несколько возможных вариантов Condition:

  • state — состояние устройства. Можно, например, проверять есть ли кто дома, или включено ли определенное устройство.
  • numeric_state, как и в случае с триггером позволяет задать цифровое значение. Например, указать, что автоматизация должна запускаться только если температура выше / ниже определенного значения.

— condition: numeric_state entity_id: ID сущности above: выше данного значения below: ниже данного значения
— condition: time after: ’18:30:00′ before: ’23:59:59′

Action

Action — действие, которое выполнит автоматизация. Например, включит свет, отправит уведомление, выключит розетку и т д. Тут можно записать как одно действие, так и несколько, в том числе и добавить паузу между ними.

Еще по теме:  Как отправить сообщение инкогнито в Телеграмме

Простой блок Action выглядит следующим образом:

action: — service: запуск сервиса entity_id: ID сущности

В качестве сервиса может быть, например:

  • light.turn_on —включение света.
  • light.turn_off — выключение света.
  • light.toggle — изменение состояния светильника. Из включенного в выключенное и наоборот.
  • switch.turn_on, switch.turn_off, switch.toggle — аналогично для выключателей и реле.

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

— delay: 00:01:00

Еще, при включении света, можно передать дополнительные параметры:

action: service: light.turn_on entity_id: light.yeelight_650 data_template: brightness_pct: 1 kelvin: 3200

В данном примере при срабатывании триггера включается лампа Yeelight 650 с 1% яркости и цветовой температурой 3200К. Если вместо цветовой температуры лампочка поддерживает изменение цвета, то меняем строчку на rgb_color:.

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

Подробнее о статье Добавляем робот-пылесос Xiaomi Vacuum Cleaner 1C в Home Assistant

Добавляем робот-пылесос Xiaomi Vacuum Cleaner 1C в Home Assistant

13.06.2021

Умный дом на Home Assistant. Установка и настройки на русском

Подробнее о статье Добавляем Aqara M1S в Home Assistant

30.11.2019

Добавляем Aqara M1S в Home Assistant

Подробнее о статье Aqara D1 и Home Assistant. Запуск сценария при нажатии на кнопку

24.06.2022

Aqara D1 и Home Assistant. Запуск сценария при нажатии на кнопку

Подробнее о статье Примеры автоматизаций в Home Assistant

26.12.2021

Примеры автоматизаций в Home Assistant

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

20.11.2021

Установка HACS в Home Assistant OS

У этой записи один комментарий

Антон 25.08.2023 Ответить

Спасибо за статью.
Скажите, как указать несколько условий:
Например: открылась дверь с датчиком открытия и в течение 10 секунд сработал датчик движения, а Action: включить свет в прихожей. Если датчик движения не сработал после открытия двери, то ничего не происходит ?

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

Отправка файла с сервера себе в Telegram

Я использую Telegram по назначению. Но иногда, опираясь на крутые возможности его Bot API, невозможно обойти стороной облегчения своей жизни. Как-то уже в блоге я писал пост про скрипты резервного копирования в Telegram, которые у нас крутятся на небольших проектах и уже несколько раз конкретно спасали наши жизни и жизни наших проектов.

Мне очень часто приходится выдергивать какие-нибудь файлы с серверов (своих и клиентских) и передавать дальше через телеграм. Например дампы тестовых БД, docker-compose файлы и многое другое. Долгое время я качал файлы через winscp и перекладывал в телеграм кому надо. Но когда файл большой это неудобно — пока скачаешь, пока закинешь.

Небольшая история

С клиентом покупали https сертификат ему на проект и надо было передавать с сервера csr файл, для последующей его обработки. Сервер находится за vpn, ходить напрямую через WinSCP было неудобно и лень. И я решил попробовать отправить файл через телеграм сам себе. Сработало:)

Также, пару месяцев назад я таким образом передавал дамп тестовой базы данных новому разработчику и понял что способ реально рабочий и начал пользоваться им регулярно. Я даже сначала начал писать бинарник на Go, но на полпути понял, что вопрос решается простым BASH скриптом на 5 строк с использованием curl. Сам скрипт можно увидеть ниже.

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

Сам скрипт

Для его работы вам необходимо указать свой Bot Token и Chat Id, куда отправлять сам файл. На этом все:)

Дальше, для удобства, можно сделать alias

alias tgsender=»/home/zvinger/tgsender.sh»

И отправлять файлы можно простой командой

tgsender filename.json

И файл окажется у вас в личке от вашего бота!

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

Настройка Telegram в Hass.io через Tor

  • Home Assistant
  • man1ac
  • 23 Июн 2019

После обновления, в hass.io появился штатный инструмент polling для использования прокси в настройках telegram_bot. (Официальная инструкция по его настройке бота в НА находится здесь)

Вкратце основные действия которые нужно совершить для создания собственного бота заключаются в следующих шагах:

Далее мы идем в браузер и вводим следующий текст в адресную строку: https://api.telegram.org/botТОКЕН_КОТОРЫЙ_ВЫ_ПОЛУЧИЛИ_ОТ_BotFather/getUpdates Получаете ответ в виде:

< «ok»: true, «result»: [< «update_id»: 254199982, «message»: < «message_id»: 27, «from»: < «id»: 123456789, «first_name»: «YOUR_FIRST_NAME YOUR_NICK_NAME», «last_name»: «YOUR_LAST_NAME», «username»: «YOUR_NICK_NAME» >, «chat»: < «id»: 123456789, «first_name»: «YOUR_FIRST_NAME YOUR_NICK_NAME», «last_name»: «YOUR_LAST_NAME», «username»: «YOUR_NICK_NAME», «type»: «private» >, «date»: 1678292650, «text»: «test» > >] >

Где id: в разделе «chat» и есть искомый «chat_id» необходимый для конфигурирования бота.

Однако есть ряд особенностей.

Для того чтобы у вас открылась эта строка в браузере, нужно чтобы ваш браузер обходил блокировки телеграма. Для этого можно поставить браузерный прокси, например Proxy SwitchyOmega для Google Chrome. (Это кстати решит и проблему постоянного отваливания официального сайта Home Assistant)

Далее приступим к настройке

Чтобы быть последовательным, приведу базовую конфигурацию бота, которая проверена и работает:

telegram_bot: — platform: polling proxy_url: socks5h://127.0.0.1:9050 api_key: !secret telegram_bot_api_key allowed_chat_ids: — !secret telegram_bot_chat_id notify: — name: telegram platform: telegram chat_id: !secret telegram_bot_chat_id

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

В файл Secrets.yaml мы вносим все полученные ранее данные (API Key и chat_id)

Устанавливаем аддон Tor

В его настройки заменяем на эти:

В файл Secrets.yaml в параметр proxy_url: !secret telegram_proxy_url добавляем:

socks5h://127.0.0.1:9050

Проверка работы

После того как мы все настроили, нужно проверить работоспособность бота. Для этого мы идем в раздел Инструменты разработчика -> Службы

Далее выбираем службу notify.telegram и вводим следующий текст: и отправляем.

После всех этих этапов все должно заработать.

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

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