Отправка сообщений в Telegram из ESPHome
Для отправки сообщений в Telegram из ESPHome можно использовать интеграцию с Telegram Bot API. Ранее было рассказано по настройке Telegram Home Assistant.
Для этого необходимо выполнить следующие шаги:
- Создать бота в Telegram и получить его токен. Для этого нужно написать BotFather в Telegram и следовать его инструкциям.
- Установить библиотеку Telegram Bot для ESPHome. Это можно сделать, добавив следующие строки в файл
esphome.yaml
:
external_components:
- source:
type: git
url: https://github.com/witnessmenow/ESPHome-Telegram-Bot.git
ref: master
components: [telegram_bot]
- Добавить настройки для интеграции с Telegram в
esphome.yaml
:
telegram_bot:
token: <ваш токен>
chat_id: <ID чата, в который нужно отправлять сообщения>
- В коде ESPHome добавить вызов отправки сообщения в Telegram. Например, для отправки сообщения при изменении значения датчика температуры можно использовать следующий код:
sensor:
- platform: dht
pin: D4
temperature:
name: "Living Room Temperature"
id: living_room_temperature
on_value:
then:
- telegram_bot.sendMessage:
message: "Температура изменилась на: {living_room_temperature}"
После этого ESPHome будет отправлять сообщения при изменении значения датчика температуры.
В зависимости от того, какие компоненты используются в ESPHome, можно отправлять различные уведомления. Например, вот некоторые примеры:
- Оповещение об изменении состояния двери или окна. Это можно сделать, используя компоненты датчика открытия двери/окна и вызова сервиса отправки сообщения в Telegram:
binary_sensor:
- platform: gpio
pin:
number: D2
mode: INPUT_PULLUP
name: "Front Door"
on_state:
- if:
condition:
binary_sensor.is_on: front_door
then:
- telegram_bot.sendMessage:
message: "Кто-то открыл переднюю дверь!"
- Оповещение о превышении заданного уровня громкости. Это можно сделать, используя компоненты датчика звука и вызова сервиса отправки сообщения в Telegram:
sensor:
- platform: adc
pin: A0
name: "Sound Sensor"
on_value:
then:
- if:
condition:
lambda: 'return x > 100;'
then:
- telegram_bot.sendMessage:
message: "Громкость превысила установленный уровень!"
- Оповещение о превышении заданной температуры в помещении. Это можно сделать, используя компоненты датчика температуры и вызова сервиса отправки сообщения в Telegram:
sensor:
- platform: dht
pin: D4
temperature:
name: "Living Room Temperature"
id: living_room_temperature
on_value:
then:
- if:
condition:
lambda: 'return x > 25;'
then:
- telegram_bot.sendMessage:
message: "Температура в комнате превысила 25 градусов!"
Кроме того, можно отправлять уведомления в Telegram ESPHome об ошибках, запуске/остановке устройства и т.д. в зависимости от потребностей проекта.