Открыть меню
Toggle preferences menu
Открыть персональное меню
Вы не представились системе
Your IP address will be publicly visible if you make any edits.

Уведомления в Telegram (Телеграм): различия между версиями

Материал из Sprut.hub Wiki
Нет описания правки
 
(не показаны 2 промежуточные версии этого же участника)
Строка 66: Строка 66:


== Отправка сообщений в каналы ==
== Отправка сообщений в каналы ==
{{QuoteYellow|Если вы хотите, чтобы бот отправлял сообщения в ваш канал и его сообщения могли читать несколько пользователей, то вы должны добавить бота в этот канал с правами администратора и возможностью отправлять сообщения}}Далее вам необходимо узнать '''chatID''' вашего канала. Для этого вам нужно подключиться к [https://t.me/getmyid_bot этому боту] и переслать ему любое сообщение из нужного канала, чтобы он вам сообщил ID вашего канала, из которого вы переслали сообщение.
{{QuoteYellow|Если вы хотите, чтобы бот отправлял сообщения в ваш канал и его сообщения могли читать несколько пользователей, то вы должны добавить бота в этот канал с правами администратора и возможностью отправлять сообщения}}Далее вам необходимо узнать '''chatID''' вашего канала. Для этого вам скопировать ссылку на любое сообщение из канала или чата. Она будет выглядеть примерно так: <nowiki>https://t.me/c/2123456789/23</nowiki> - где 2123456789 - это идентификатор вашего чата или канала. Для использования в сценариях, вам нужно к этой цифре добавить -100 если это публичный чат или канал, или просто знак минуса "-" если это приватный чат (которые обычно начинаются на цифру 4). Если у вас публичный канал или чат - ссылка на сообщение будет выглядеть как <nowiki>https://t.me/chat_username</nowiki>. Тогда вам придется воспользоваться приложением Telegram для компьютера, включить в настройках экспериментальные функции и тогда у вас в карточке каждого пользователя или чата будет виден их ID. К чатам так же необходимо будет добавлять -100 если они публичные или когда то были публичными, и просто "-" если они всегда были частными.
[[Файл:031 Телеграм ID экспериментальное сводка.png|центр|обрамить]]
 
Или можно воспользоваться Web версией Telegram и использовать ее так, как [https://pikabu.ru/story/kak_uznat_identifikator_telegram_kanalachatagruppyi_kak_uznat_chat_id_telegram_bez_botov_i_koda_11099278 описано в этой статье].


После этого, вам необходимо вручную добавить нового клиента сервиса уведомлений.
После этого, вам необходимо вручную добавить нового клиента сервиса уведомлений.
Строка 109: Строка 112:
Отправить текст нескольким клиентам<syntaxhighlight lang="js">Notify.text("Тест отправки на клиентов 1 и 2").to("Telegram_1", 1, 2).silent(false).send();</syntaxhighlight>
Отправить текст нескольким клиентам<syntaxhighlight lang="js">Notify.text("Тест отправки на клиентов 1 и 2").to("Telegram_1", 1, 2).silent(false).send();</syntaxhighlight>


Отправить показания датчика<syntaxhighlight lang="js">Notify.text("Показания датчика температуры: {}", Hub.getCharacteristicValue(13,15)).to("Telegram_1", 1, 2).silent(false).send();</syntaxhighlight>Отправить показания нескольких датчиков<syntaxhighlight lang="js">
Отправить показания датчика<syntaxhighlight lang="js">Notify.text("Показания датчика температуры: {}", Hub.getCharacteristicValue(3,15)).to("Telegram_1", 1, 2).silent(false).send();</syntaxhighlight>Отправить показания нескольких датчиков<syntaxhighlight lang="js">
Notify.text("Показания датчика температуры 1 : {}, Показания датчика температуры 2 : {}", Hub.getCharacteristicValue(13,15),Hub.getCharacteristicValue(16,19)).to("Telegram_1", 1, 2).silent(false).send();
Notify.text("Показания датчика температуры 1 : {}, Показания датчика температуры 2 : {}", Hub.getCharacteristicValue(3,15),Hub.getCharacteristicValue(16,19)).to("Telegram_1", 1, 2).silent(false).send();
</syntaxhighlight>Отправить показания нескольких датчиков в несколько строк (используется \n для перевода строки)<syntaxhighlight lang="js">
</syntaxhighlight>Отправить показания нескольких датчиков в несколько строк (используется \n для перевода строки)<syntaxhighlight lang="js">
Notify.text("Показания датчика температуры 1 : {}\nПоказания датчика температуры 2 : {}", Hub.getCharacteristicValue(13,15),Hub.getCharacteristicValue(16,19)).to("Telegram_1", 1, 2).silent(false).send();
Notify.text("Показания датчика температуры 1 : {}\nПоказания датчика температуры 2 : {}", Hub.getCharacteristicValue(3,15),Hub.getCharacteristicValue(16,19)).to("Telegram_1", 1, 2).silent(false).send();
</syntaxhighlight>
</syntaxhighlight>
Отправка снапшота с камеры в тихом режиме<syntaxhighlight lang="js">
Отправка снапшота с камеры в тихом режиме<syntaxhighlight lang="js">

Текущая версия от 21:29, 29 августа 2025

Для получения уведомлений о событиях Sprut.hub через бота в Telegram можно использовать сервис уведомлений или решение с использованием кода (выбор за вами)

Если у вас нет своего бота, вам необходимо его создать.

Именно этот бот будет присылать вам сообщения, которые вы будете отправлять из Sprut.hub.

Если вы хотите, чтобы сообщения приходили в ваш канал, который будут читать несколько пользователей, то вам потребуется выяснить ID канала, куда будут присылаться сообщения от бота и указать его. Личные уведомления и группы с супергруппами могут добавляться в уведомления автоматически.

Создание сервиса уведомлений Telegram

Необходимо перейти в раздел "Уведомления" в веб интерфейсе Sprut.hub и создать новый сервис уведомлений

Далее выбрать Telegram

Далее перейти в настройки нового сервиса

В настройках необходимо перейти в раздел управления вашим ботом (откроется диалог с официальным ботом Telegram @botfather)

Создание своего бота в Telegram

Если вы не перешли из настроек сервиса уведомлений, то вы можете в Telegram в поиске вбить @BotFather (это официальный бот для создания ботов)


После этого необходимо:

Шаг 1: Нажмите «Запустить» для активации бота BotFather.

Шаг 2: Открыть меню управления ботами (кнопка Open)

Шаг 2: Нажать "Create a New Bot"

Шаг 3: Дать имя своему боту — например "Бот для умного дома" и присвоить никнейм бота, по которому вы сможете его найти. Он должен быть уникальным и заканчиваться на слово «bot».

Шаг 4: Нажать кнопку "Create bot"

Шаг 5: Перейти в настройки вашего бота

Шаг 6: Отключить Privacy Mode в группах, чтобы бот мог видеть сообщения в группах

Шаг 7: Вернитесь в настройки, скопируйте и сохраните токен вашего бота для дальнейшего использования в хабе (Нажав синюю кнопку Copy)

Окончательная настройка бота в сервисе уведомлений Telegram

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

Добавление чатов, групп и супергрупп в сервис уведомлений

После настройки вашего бота, вам необходимо добавить клиентов сервиса уведомлений, которые будут их получать. Для этого необходимо начать диалог с ботом, чтобы получать личные уведомления. Это делается с помощью отправки кода в диалоге с ботом.

Необходимо нажать на строку "Отправьте код...." и у вас откроется диалог с вашим ботом.

Чтобы начать пользоваться ботом, нужно начать с ним чат и нажать кнопку "Старт". После этого, необходимо отправить код, указанный в настройках сервиса уведомлений и у вас автоматически подключится новый клиент.

Код обновляется после каждого использования

Отправка сообщений в телеграм группы и супергруппы

Для каждого топика супергруппы - необходимо отправлять свой код. При этом в вашем хабе создается отдельный клиент уведомлений для каждого топика супергруппы

Для отправки сообщений в группы и супергруппы (в определенные топики), вам необходимо:

  1. Добавить бота в группу или супергруппу
  2. Открыть настройки сервиса уведомлений Telegram
  3. Отправить сообщение в кодом в группе или в нужном топике супергруппы
  4. Группа будет автоматически добавлена в список клиентов уведомлений

Отправка сообщений в каналы

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

Далее вам необходимо узнать chatID вашего канала. Для этого вам скопировать ссылку на любое сообщение из канала или чата. Она будет выглядеть примерно так: https://t.me/c/2123456789/23 - где 2123456789 - это идентификатор вашего чата или канала. Для использования в сценариях, вам нужно к этой цифре добавить -100 если это публичный чат или канал, или просто знак минуса "-" если это приватный чат (которые обычно начинаются на цифру 4). Если у вас публичный канал или чат - ссылка на сообщение будет выглядеть как https://t.me/chat_username. Тогда вам придется воспользоваться приложением Telegram для компьютера, включить в настройках экспериментальные функции и тогда у вас в карточке каждого пользователя или чата будет виден их ID. К чатам так же необходимо будет добавлять -100 если они публичные или когда то были публичными, и просто "-" если они всегда были частными.

Или можно воспользоваться Web версией Telegram и использовать ее так, как описано в этой статье.

После этого, вам необходимо вручную добавить нового клиента сервиса уведомлений.

Для этого необходимо создать нового клиента и вставить туда полученный ID канала

После этого ваш канал появится в списке клиентов для уведомлений

Использование уведомлений в телеграм из сценариев

В блочном сценарии, вам необходимо в блоке Тогда блочного сценария, добавить сервис уведомлений, выбрать там Телеграм и выбрать клиента, которому вы хотите отправить уведомления

Форматирование сообщений

Для отправки сообщений в телеграм, вам доступно три варианта форматирования: Markdown, Markdown V2 и HTML

Переключение вариантов форматирования, доступно в экспертном разделе настроек вашего сервиса уведомлений

И выбрать вариант форматирования

Как правильно оформлять текст для каждого типа форматирования, можно посмотреть в официальной документации Телеграм:

Использование уведомлений в телеграм в блоках кода

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

Для отправки, используются идентификаторы сервиса (в данных примерах это Telegram_1) и клиентов (они прописываются через запятую после указания сервиса. Если идентификаторы клиентов не указаны - сообщение отправится всем клиентам этого сервиса


Отправить текст всем клиентам

Notify.text("Тест отправки всем").to("Telegram_1").silent(false).send();

Отправить текст одному конкретному клиенту с идентификатором 1

Notify.text("Тест отправки в Телеграм").to("Telegram_1", 1).silent(false).send();

Отправить текст нескольким клиентам

Notify.text("Тест отправки на клиентов 1 и 2").to("Telegram_1", 1, 2).silent(false).send();

Отправить показания датчика

Notify.text("Показания датчика температуры: {}", Hub.getCharacteristicValue(3,15)).to("Telegram_1", 1, 2).silent(false).send();

Отправить показания нескольких датчиков

Notify.text("Показания датчика температуры 1 : {}, Показания датчика температуры 2 : {}", Hub.getCharacteristicValue(3,15),Hub.getCharacteristicValue(16,19)).to("Telegram_1", 1, 2).silent(false).send();

Отправить показания нескольких датчиков в несколько строк (используется \n для перевода строки)

Notify.text("Показания датчика температуры 1 : {}\nПоказания датчика температуры 2 : {}", Hub.getCharacteristicValue(3,15),Hub.getCharacteristicValue(16,19)).to("Telegram_1", 1, 2).silent(false).send();

Отправка снапшота с камеры в тихом режиме

let snapshot = Hub.getAccessory(2037).getSnapshot()
if (snapshot != null) 
{
    Notify.text("Теcт отправки снапшота").to("Telegram_1", 1, 2, 3).image(snapshot).silent(true).send();
}

Передача данных датчика в Telegram

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

Например отправка состояния открытия окна будет выглядеть в виде такой команды:

Notify.text("Показания датчика температуры: {}", Hub.getCharacteristicValue(3,15)).to("Telegram_1", 1, 2).silent(false).send();

где цифра 3 - это ID аксессуара Датчик температуры, а цифра 15 - это номер характеристики "Температура" у датчика.

Чтобы найти идентификаторы аксессуара и характеристики, достаточно зайти в настройки устройства

И найти идентификаторы аксессуара и характеристики

Отправка уведомлений в телеграм полностью с помощью блоков кода и глобального сценария

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