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

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

Материал из Sprut.hub Wiki
Нет описания правки
 
(не показано 50 промежуточных версий 2 участников)
Строка 1: Строка 1:
Для получения уведомлений о событиях Sprut.hub через бота в Telegram можно использовать решение с помощью кода (пока не готово официальная интеграция).
Для получения уведомлений о событиях Sprut.hub через бота в Telegram можно использовать сервис уведомлений или решение с использованием кода (выбор за вами)


Если у вас нет своего бота, вам необходимо его создать.  
Если у вас нет своего бота, вам необходимо его создать.  
Именно этот бот будет присылать вам сообщения, которые вы будете отправлять из Sprut.hub. 
Если вы хотите, чтобы сообщения приходили в ваш канал, который будут читать несколько пользователей, то вам потребуется выяснить ID канала, куда будут присылаться сообщения от бота и указать его. Личные уведомления и группы с супергруппами могут добавляться в уведомления автоматически.
== Создание сервиса уведомлений Telegram ==
Необходимо перейти в раздел "Уведомления" в веб интерфейсе Sprut.hub и создать новый сервис уведомлений
[[Файл:010 Телеграм Создать сервис уведомлений.png|центр|обрамить]]
Далее выбрать Telegram
[[Файл:011 Телеграм Выбрать сервис уведомлений.png|центр|обрамить]]
Далее перейти в настройки нового сервиса
[[Файл:012 Телеграм Настройки.png|центр|обрамить]]
В настройках необходимо перейти в раздел управления вашим ботом (откроется диалог с официальным ботом Telegram @botfather)
[[Файл:013 Телеграм создать бота.png|центр|обрамить]]


== Создание своего бота в Telegram ==
== Создание своего бота в Telegram ==
Для этого необходимо в Telegram в поиске вбить [https://t.me/BotFather @BotFather] (это официальный бот для создания ботов)
Если вы не перешли из настроек сервиса уведомлений, то вы можете в Telegram в поиске вбить [https://t.me/BotFather @BotFather] (это официальный бот для создания ботов)
[[Файл:Tg0.jpg|центр|обрамить]]
[[Файл:Tg0.jpg|центр|обрамить]]




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


'''Шаг 1:''' Нажмите «Запустить» для активации бота BotFather. В ответ вы получите список команд по управлению ботов.
После этого необходимо:
 
'''Шаг 1:''' Нажмите «Запустить» для активации бота BotFather.  


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


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


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


'''Шаг 4:''' Далее вам необходимо узнать ваш '''chatID'''. Для этого вам нужно подключиться к [https://t.me/getidsbot этому боту], который и сообщит вам ваш '''chatID'''.
Шаг 4: Нажать кнопку "Create bot"


'''Шаг 5:''' Чтобы начать пользоваться ботом, нужно начать с ним чат и нажать кнопку "Запустить"
Шаг 5: Перейти в настройки вашего бота
[[Файл:Telegram.png|центр|обрамить]]


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


== Создание глобального сценария ==
Шаг 7: Вернитесь в настройки, скопируйте и сохраните токен вашего бота для дальнейшего использования в хабе (Нажав синюю кнопку Copy)
Теперь вам необходимо настроить его работу в Sprut.hub. Для этого необходимо создать глобальный сценарий в виде кода. Идем в "Сценарии" - "Глобальные" и создаем там новый сценарий
[[Файл:000 Телеграм Botfather Создать бота full.png|центр|обрамить]]
[[Файл:Scenario1.png|центр|обрамить]]


После этого - вставляем в блок кода сценария следующий код:<syntaxhighlight lang="js" line="1">
== Окончательная настройка бота в сервисе уведомлений Telegram ==
let chatIDs = ["777777777"];
После создания бота, вам необходимо вернуться в веб интерфейса хаба и вставить скопированный на предыдущем этапе токен бота в соответствующее поле. После, нажмите кнопку "Авторизоваться"
let token = "666666666:AABBCCddEeffggeeHH-IIJJkKLlMmnno_oP"
[[Файл:002 Телеграм Botfather Bot Settings token.png|центр|обрамить]]
[[Файл:014 Телеграм авторизовать бота.png|центр|обрамить]]


function sendToTelegram(text, notify) {
== Добавление чатов, групп и супергрупп в сервис уведомлений ==
    try {
После настройки вашего бота, вам необходимо добавить клиентов сервиса уведомлений, которые будут их получать. Для этого необходимо начать диалог с ботом, чтобы получать личные уведомления. Это делается с помощью отправки кода в диалоге с ботом.  
        if (!Array.isArray(text))
            text = [text];


        chatIDs.forEach(function (chatID) {
Необходимо нажать на строку "Отправьте код...." и у вас откроется диалог с вашим ботом.
            HttpClient.POST("https://api.telegram.org")
[[Файл:016 Телеграм отправить код боту.png|центр|обрамить]]
                .path("bot" + token)
Чтобы начать пользоваться ботом, нужно начать с ним чат и нажать кнопку "Старт". После этого, необходимо отправить код, указанный в настройках сервиса уведомлений и у вас автоматически подключится новый клиент.
                .path("sendMessage")
                .queryString("chat_id", chatID)
                .queryString("text", text.join("\n"))
                .queryString("parse_mode", "Markdown")
                .queryString("disable_notification", notify == null ? false : !notify)
                .send()
        })
    } catch (e) {
        log.error(e.message);
    }
}


sendToTelegram(["*Мой город*", "Хаб запущен"])
[[Файл:Telegram.png|центр|обрамить]]{{QuoteBlue |Код обновляется после каждого использования}}
</syntaxhighlight>[https://wiki.spruthub.ru/images/6/68/%D0%9E%D1%82%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%B0_%D1%81%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D0%BD%D0%B8%D0%B9_%D0%B2_Telegram.json Скачать шаблон сценария]{{QuoteYellow | В коде необходимо заменить "777777777" на ID которые вы получили от бота на Шаге 4 и заменить токен 666666666:AABBCCddEeffggeeHH-IIJJkKLlMmnno_oP на токен, который вы получили на Шаге 3}}


После этого сохраняем сценарий
== Отправка сообщений в телеграм группы и супергруппы ==
{{QuoteGreen|Для каждого топика супергруппы - необходимо отправлять свой код. При этом в вашем хабе создается отдельный клиент уведомлений для каждого топика супергруппы}}
Для отправки сообщений в группы и супергруппы (в определенные топики), вам необходимо:


== Дополнительные настройки отправки сообщений ==
# Добавить бота в группу или супергруппу
В этот же глобальный сценарий, после функции sendToTelegram, вы можете добавить дополнительную строку, которая будет уведомлять вас о запуске хаба вызывая функцию выше:
# Открыть настройки сервиса уведомлений Telegram
<syntaxhighlight lang="js">
# Отправить сообщение в кодом в группе или в нужном топике супергруппы
sendToTelegram(["*Мой город*", "Хаб запущен"])
# Группа будет автоматически добавлена в список клиентов уведомлений
</syntaxhighlight>


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


Если вам нужен перевод на новую строку, то код будет выглядеть вот так
Или можно воспользоваться Web версией Telegram и использовать ее так, как [https://pikabu.ru/story/kak_uznat_identifikator_telegram_kanalachatagruppyi_kak_uznat_chat_id_telegram_bez_botov_i_koda_11099278 описано в этой статье].
<syntaxhighlight lang="js">
global.sendToTelegram(["*Нижний Новгород*, хаб запущен", "вторая строка"])
</syntaxhighlight>


Если вы хотите, чтобы приходили "тихие" уведомления в телеграм, то строка кода будет выглядеть вот так:
После этого, вам необходимо вручную добавить нового клиента сервиса уведомлений.
<syntaxhighlight lang="js">
global.sendToTelegram(["*Нижний Новгород*, хаб запущен", "вторая строка"], false)
</syntaxhighlight>


Также можно оформлять текст с помощью разных "плюшек" в виде различного форматирования текста:
Для этого необходимо создать нового клиента и вставить туда полученный ID канала
<syntaxhighlight lang="js">
[[Файл:017 Телеграм создать клиента.png|центр|обрамить]]
global.sendToTelegram("*выделение жирным*")
[[Файл:018 Телеграм настроить клиента.png|центр|обрамить]]
</syntaxhighlight>
После этого ваш канал появится в списке клиентов для уведомлений
<syntaxhighlight lang="js">
global.sendToTelegram("__выделение подчеркнутым__")
</syntaxhighlight>
<syntaxhighlight lang="js">
global.sendToTelegram("_наклонный текст_")
</syntaxhighlight>
<syntaxhighlight lang="js">
global.sendToTelegram("[Инструкции живут тут](https://spruthub.ru/news)") - это отправка ссылки
</syntaxhighlight>


Если вам нужно отправить в телеграм значение какого либо устройства, то можно использовать следующий синтаксис:
== Использование уведомлений в телеграм из сценариев ==
В блочном сценарии, вам необходимо в блоке Тогда блочного сценария, добавить сервис уведомлений, выбрать там Телеграм и выбрать клиента, которому вы хотите отправить уведомления
[[Файл:019 Телеграм уведомления в блочном сценарии добавить сервис.png|центр|обрамить]]
[[Файл:020 Телеграм уведомления в блочном сценарии отправить.png|центр|обрамить]]
[[Файл:021 Телеграм уведомления в блочном сценарии выбор бота.png|центр|обрамить]]
[[Файл:022 Телеграм уведомления в блочном сценарии выбор клиента.png|центр|обрамить]]
[[Файл:023 Телеграм уведомления в блочном сценарии создание сообщения.png|центр|обрамить]]


<syntaxhighlight lang="js">
== Форматирование сообщений ==
global.sendToTelegram("Состояние сигнализации: " + Hub.getCharacteristic(2, 13).format())
Для отправки сообщений в телеграм, вам доступно три варианта форматирования: Markdown, Markdown V2 и HTML
</syntaxhighlight>


== Уведомления в Telegram из блочных сценариев ==
Переключение вариантов форматирования, доступно в экспертном разделе настроек вашего сервиса уведомлений
Глобальные сценарии используются в блочных через вызов функции.
[[Файл:024 Телеграм экспертные настройки.png|центр|обрамить]]
И выбрать вариант форматирования
[[Файл:025 Телеграм выбор форматирования.png|центр|обрамить]]
Как правильно оформлять текст для каждого типа форматирования, можно посмотреть в официальной документации Телеграм:


Для этого переходим в раздел Блочных сценариев и создаем новый блочный сценарий или добавляем уже в существующий, отправку уведомлений в телеграм:
* [https://core.telegram.org/bots/api#html-style Для форматирования HTML]
[[Файл:Scenario tg2.png|центр|обрамить]]
* [https://core.telegram.org/bots/api#markdown-style Для форматирования Markdown]
[[Файл:Scenario tg4.png|центр|обрамить]]
* [https://core.telegram.org/bots/api#markdownv2-style Для форматирования Markdown V2]


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


Например отправка состояния открытия окна будет выглядеть в виде такой команды:<syntaxhighlight lang="js">
Для отправки, используются идентификаторы сервиса (в данных примерах это Telegram_1) и клиентов (они прописываются через запятую после указания сервиса. Если идентификаторы клиентов не указаны - сообщение отправится всем клиентам этого сервиса
global.sendToTelegram("Состояние окна: " + Hub.getCharacteristic(1154, 16).format())
[[Файл:030 Телеграм где брать идентификаторы сервиса и клиентов.png|центр|обрамить]]
</syntaxhighlight>где цифра 1154 - это [[Аксессуары, сервисы и характеристики#Идентификаторы аксессуара, сервиса и характеристики|ID аксессуара]] Окно в хабе, а цифра 16 - это номер характеристики "Целевая позиция" у Окна.


Чтобы не напрягаться с поиском того, как называется сервис или характеристика для использования в коде (даже с авто-подстановкой), а также какие у них идентификаторы, достаточно зайти в настройки устройства и нажать кнопку информации у нужной характеристики
[[Файл:Tg23.jpg|центр|обрамить]]
И там будут нужные вам названия сервисов и характеристик для указания в коде, а также идентификаторы всех уровней.
[[Файл:Tg24.jpg|центр|обрамить]]


== Отправка фото в Телеграм ==
Отправить текст всем клиентам<syntaxhighlight lang="js">
Если вам необходимо отправлять фото в телеграм, то нужно дополнить глобальный сценарий еще одной функцией
Notify.text("Тест отправки всем").to("Telegram_1").silent(false).send();
<syntaxhighlight lang="js" line="1">
</syntaxhighlight>Отправить текст одному конкретному клиенту с идентификатором 1<syntaxhighlight lang="js">Notify.text("Тест отправки в Телеграм").to("Telegram_1", 1).silent(false).send();</syntaxhighlight>
let chatIDs = ["777777777"];
let token = "666666666:AABBCCddEeffggeeHH-IIJJkKLlMmnno_oP"


function sendToTelegram(text, notify) {
Отправить текст нескольким клиентам<syntaxhighlight lang="js">Notify.text("Тест отправки на клиентов 1 и 2").to("Telegram_1", 1, 2).silent(false).send();</syntaxhighlight>
    try {
        if (!Array.isArray(text))
            text = [text];


        chatIDs.forEach(function (chatID) {
Отправить показания датчика<syntaxhighlight lang="js">Notify.text("Показания датчика температуры: {}", Hub.getCharacteristicValue(3,15)).to("Telegram_1", 1, 2).silent(false).send();</syntaxhighlight>Отправить показания нескольких датчиков<syntaxhighlight lang="js">
            HttpClient.POST("https://api.telegram.org")
Notify.text("Показания датчика температуры 1 : {}, Показания датчика температуры 2 : {}", Hub.getCharacteristicValue(3,15),Hub.getCharacteristicValue(16,19)).to("Telegram_1", 1, 2).silent(false).send();
                .path("bot" + token)
</syntaxhighlight>Отправить показания нескольких датчиков в несколько строк (используется \n для перевода строки)<syntaxhighlight lang="js">
                .path("sendMessage")
Notify.text("Показания датчика температуры 1 : {}\nПоказания датчика температуры 2 : {}", Hub.getCharacteristicValue(3,15),Hub.getCharacteristicValue(16,19)).to("Telegram_1", 1, 2).silent(false).send();
                .queryString("chat_id", chatID)
</syntaxhighlight>
                .queryString("text", text.join("\n"))
Отправка снапшота с камеры в тихом режиме<syntaxhighlight lang="js">
                .queryString("parse_mode", "Markdown")
let snapshot = Hub.getAccessory(2037).getSnapshot()
                .queryString("disable_notification", notify == null ? false : !notify)
if (snapshot != null)  
                .send()
{
        })
    Notify.text("Теcт отправки снапшота").to("Telegram_1", 1, 2, 3).image(snapshot).silent(true).send();
    } catch (e) {
        log.error(e.message);
    }
}
}
</syntaxhighlight>
== Передача данных датчика в Telegram ==
Если вы хотите что-то посложнее, например отправить данные датчика или что-то подобное, то можно использовать данные характеристики устройства.


function sendPhotoToTelegram(binary,caption) {
Например отправка состояния открытия окна будет выглядеть в виде такой команды:<syntaxhighlight lang="js">
    try {
Notify.text("Показания датчика температуры: {}", Hub.getCharacteristicValue(3,15)).to("Telegram_1", 1, 2).silent(false).send();
        if (!caption) {caption = ""}
</syntaxhighlight>где цифра 3 - это [[Аксессуары, сервисы и характеристики#Идентификаторы аксессуара, сервиса и характеристики|ID аксессуара]] Датчик температуры, а цифра 15 - это номер характеристики "Температура" у датчика.
        chatIDs.forEach(function (chatID) {
            HttpClient.POST('https://api.telegram.org')
                .path("bot" + token)
                .path("sendPhoto")
                .queryString("chat_id", chatID)
                .queryString('caption', caption)  
                .fieldMultipart('photo', binary)
                .send();
        })
    } catch (e) {
        log.error(e.message);
    }
}
sendToTelegram(["*Мой город*", "Хаб запущен"])
</syntaxhighlight>[https://wiki.spruthub.ru/images/e/e1/%D0%9E%D1%82%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%B0_%D1%81%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D0%BD%D0%B8%D0%B9_%D0%B8_%D1%84%D0%BE%D1%82%D0%BE_%D0%B2_Telegram.json Скачать шаблон сценария]{{QuoteYellow | В коде необходимо заменить "777777777" на ID которые вы получили от бота на Шаге 4 и заменить токен 666666666:AABBCCddEeffggeeHH-IIJJkKLlMmnno_oP на токен, который вы получили на Шаге 3}}А отправка фото, осуществляется следующим блоком кода в блочном сценарии<syntaxhighlight lang="js">
let snapshot = HttpClient.GET("[АДРЕС_ИЗОБРАЖЕНИЯ]").send().getBinary();
global.sendPhotoToTelegram(snapshot,"Изображение с камеры");
</syntaxhighlight>Где в данном примере, [АДРЕС_ИЗОБРАЖЕНИЯ] - это URL для картинки с вашей камеры видеонаблюдения, если она умеет отдавать статичные картинки.


Стандартная ссылка для подобных картинок: {{Color|blue|'''http://[ВАШ_ЛОГИН]:[ВАШ_ПАРОЛЬ]@[IP_АДРЕС_КАМЕРЫ]:[ПОРТ]/cgi-bin/snapshot.cgi'''}} но она может быть другой, или ваша камера может не уметь показывать статичные картинки.
Чтобы найти идентификаторы аксессуара и характеристики, достаточно зайти в настройки устройства
[[Файл:026 Телеграм отправка данных устройств настройки.png|центр|обрамить]]
И найти идентификаторы аксессуара и характеристики
[[Файл:029 Телеграм отправка данных устройств идентификаторы full.png|центр|обрамить]]


Главное для использования этого варианта отправки картинок, чтобы она была доступна из хаба по обычной ссылке на сайт.
== Отправка уведомлений в телеграм полностью с помощью блоков кода и глобального сценария ==
Предыдущая реализация уведомлений в Телеграм с помощью глобальных сценариев и полностью с помощью кода - [[Отправка уведомлений в Telegram полностью через сценарии в виде кода|описана в этой статье]]
__ОБЯЗАТЕЛЬНОЕ_ОГЛАВЛЕНИЕ__
__ОБЯЗАТЕЛЬНОЕ_ОГЛАВЛЕНИЕ__

Текущая версия от 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 - это номер характеристики "Температура" у датчика.

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

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

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

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