Дополнительные действия
Bigmanekb (обсуждение | вклад) Нет описания правки |
Bigmanekb (обсуждение | вклад) Нет описания правки |
||
| (не показано 39 промежуточных версий 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] (это официальный бот для создания ботов) | |||
[[Файл:Tg0.jpg|центр|обрамить]] | [[Файл:Tg0.jpg|центр|обрамить]] | ||
После этого необходимо: | |||
'''Шаг | '''Шаг 1:''' Нажмите «Запустить» для активации бота BotFather. | ||
Шаг 2: Открыть меню управления ботами (кнопка Open) | |||
'''Шаг 2: Нажать "Create a New Bot"''' | |||
'''Шаг | '''Шаг 3:''' Дать имя своему боту — например "Бот для умного дома" и присвоить никнейм бота, по которому вы сможете его найти. Он должен быть уникальным и заканчиваться на слово «bot». | ||
Шаг 4: Нажать кнопку "Create bot" | |||
Шаг 5: Перейти в настройки вашего бота | |||
Шаг 6: Отключить Privacy Mode в группах, чтобы бот мог видеть сообщения в группах | |||
Шаг 7: Вернитесь в настройки, скопируйте и сохраните токен вашего бота для дальнейшего использования в хабе (Нажав синюю кнопку Copy) | |||
[[Файл:000 Телеграм Botfather Создать бота full.png|центр|обрамить]] | |||
== Окончательная настройка бота в сервисе уведомлений Telegram == | |||
После создания бота, вам необходимо вернуться в веб интерфейса хаба и вставить скопированный на предыдущем этапе токен бота в соответствующее поле. После, нажмите кнопку "Авторизоваться" | |||
[[Файл:002 Телеграм Botfather Bot Settings token.png|центр|обрамить]] | |||
[[Файл:014 Телеграм авторизовать бота.png|центр|обрамить]] | |||
== Добавление чатов, групп и супергрупп в сервис уведомлений == | |||
После настройки вашего бота, вам необходимо добавить клиентов сервиса уведомлений, которые будут их получать. Для этого необходимо начать диалог с ботом, чтобы получать личные уведомления. Это делается с помощью отправки кода в диалоге с ботом. | |||
Необходимо нажать на строку "Отправьте код...." и у вас откроется диалог с вашим ботом. | |||
[[Файл:016 Телеграм отправить код боту.png|центр|обрамить]] | |||
Чтобы начать пользоваться ботом, нужно начать с ним чат и нажать кнопку "Старт". После этого, необходимо отправить код, указанный в настройках сервиса уведомлений и у вас автоматически подключится новый клиент. | |||
[[Файл:Telegram.png|центр|обрамить]]{{QuoteBlue |Код обновляется после каждого использования}} | |||
== Отправка сообщений в телеграм группы и супергруппы == | |||
{{QuoteGreen|Для каждого топика супергруппы - необходимо отправлять свой код. При этом в вашем хабе создается отдельный клиент уведомлений для каждого топика супергруппы}} | |||
Для отправки сообщений в группы и супергруппы (в определенные топики), вам необходимо: | |||
# Добавить бота в группу или супергруппу | |||
# Открыть настройки сервиса уведомлений Telegram | |||
# Отправить сообщение в кодом в группе или в нужном топике супергруппы | |||
# Группа будет автоматически добавлена в список клиентов уведомлений | |||
== Отправка сообщений в каналы == | |||
< | {{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 описано в этой статье]. | |||
После этого, вам необходимо вручную добавить нового клиента сервиса уведомлений. | |||
Для этого необходимо создать нового клиента и вставить туда полученный ID канала | |||
[[Файл:017 Телеграм создать клиента.png|центр|обрамить]] | |||
[[Файл:018 Телеграм настроить клиента.png|центр|обрамить]] | |||
После этого ваш канал появится в списке клиентов для уведомлений | |||
== Использование уведомлений в телеграм из сценариев == | |||
В блочном сценарии, вам необходимо в блоке Тогда блочного сценария, добавить сервис уведомлений, выбрать там Телеграм и выбрать клиента, которому вы хотите отправить уведомления | |||
[[Файл:019 Телеграм уведомления в блочном сценарии добавить сервис.png|центр|обрамить]] | |||
[[Файл:020 Телеграм уведомления в блочном сценарии отправить.png|центр|обрамить]] | |||
[[Файл:021 Телеграм уведомления в блочном сценарии выбор бота.png|центр|обрамить]] | |||
[[Файл:022 Телеграм уведомления в блочном сценарии выбор клиента.png|центр|обрамить]] | |||
[[Файл:023 Телеграм уведомления в блочном сценарии создание сообщения.png|центр|обрамить]] | |||
== Форматирование сообщений == | |||
Для отправки сообщений в телеграм, вам доступно три варианта форматирования: Markdown, Markdown V2 и HTML | |||
Переключение вариантов форматирования, доступно в экспертном разделе настроек вашего сервиса уведомлений | |||
[[Файл:024 Телеграм экспертные настройки.png|центр|обрамить]] | |||
И выбрать вариант форматирования | |||
[[Файл:025 Телеграм выбор форматирования.png|центр|обрамить]] | |||
Как правильно оформлять текст для каждого типа форматирования, можно посмотреть в официальной документации Телеграм: | |||
Для | * [https://core.telegram.org/bots/api#html-style Для форматирования HTML] | ||
[ | * [https://core.telegram.org/bots/api#markdown-style Для форматирования Markdown] | ||
[ | * [https://core.telegram.org/bots/api#markdownv2-style Для форматирования Markdown V2] | ||
== | == Использование уведомлений в телеграм в блоках кода == | ||
В блоке кода, уведомлениями можно пользоваться по аналогии с другими сервисами уведомлений. В качестве бонуса, есть опция отправки сообщений без уведомлений (тихий режим) | |||
Для отправки, используются идентификаторы сервиса (в данных примерах это Telegram_1) и клиентов (они прописываются через запятую после указания сервиса. Если идентификаторы клиентов не указаны - сообщение отправится всем клиентам этого сервиса | |||
[[Файл:030 Телеграм где брать идентификаторы сервиса и клиентов.png|центр|обрамить]] | |||
Отправить текст всем клиентам<syntaxhighlight lang="js"> | |||
Notify.text("Тест отправки всем").to("Telegram_1").silent(false).send(); | |||
<syntaxhighlight lang="js" | </syntaxhighlight>Отправить текст одному конкретному клиенту с идентификатором 1<syntaxhighlight lang="js">Notify.text("Тест отправки в Телеграм").to("Telegram_1", 1).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(3,15)).to("Telegram_1", 1, 2).silent(false).send();</syntaxhighlight>Отправить показания нескольких датчиков<syntaxhighlight lang="js"> | |||
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"> | |||
Notify.text("Показания датчика температуры 1 : {}\nПоказания датчика температуры 2 : {}", Hub.getCharacteristicValue(3,15),Hub.getCharacteristicValue(16,19)).to("Telegram_1", 1, 2).silent(false).send(); | |||
</syntaxhighlight> | |||
Отправка снапшота с камеры в тихом режиме<syntaxhighlight lang="js"> | |||
let snapshot = Hub.getAccessory(2037).getSnapshot() | |||
if (snapshot != null) | |||
{ | |||
Notify.text("Теcт отправки снапшота").to("Telegram_1", 1, 2, 3).image(snapshot).silent(true).send(); | |||
} | } | ||
</syntaxhighlight> | |||
== Передача данных датчика в Telegram == | |||
Если вы хотите что-то посложнее, например отправить данные датчика или что-то подобное, то можно использовать данные характеристики устройства. | |||
Например отправка состояния открытия окна будет выглядеть в виде такой команды:<syntaxhighlight lang="js"> | |||
Notify.text("Показания датчика температуры: {}", Hub.getCharacteristicValue(3,15)).to("Telegram_1", 1, 2).silent(false).send(); | |||
</syntaxhighlight>где цифра 3 - это [[Аксессуары, сервисы и характеристики#Идентификаторы аксессуара, сервиса и характеристики|ID аксессуара]] Датчик температуры, а цифра 15 - это номер характеристики "Температура" у датчика. | |||
</syntaxhighlight> | |||
Чтобы найти идентификаторы аксессуара и характеристики, достаточно зайти в настройки устройства | |||
[[Файл: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
После создания бота, вам необходимо вернуться в веб интерфейса хаба и вставить скопированный на предыдущем этапе токен бота в соответствующее поле. После, нажмите кнопку "Авторизоваться"


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

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

Код обновляется после каждого использования
Отправка сообщений в телеграм группы и супергруппы
Для каждого топика супергруппы - необходимо отправлять свой код. При этом в вашем хабе создается отдельный клиент уведомлений для каждого топика супергруппы
Для отправки сообщений в группы и супергруппы (в определенные топики), вам необходимо:
- Добавить бота в группу или супергруппу
- Открыть настройки сервиса уведомлений Telegram
- Отправить сообщение в кодом в группе или в нужном топике супергруппы
- Группа будет автоматически добавлена в список клиентов уведомлений
Отправка сообщений в каналы
Если вы хотите, чтобы бот отправлял сообщения в ваш канал и его сообщения могли читать несколько пользователей, то вы должны добавить бота в этот канал с правами администратора и возможностью отправлять сообщения
Далее вам необходимо узнать 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 - это номер характеристики "Температура" у датчика.
Чтобы найти идентификаторы аксессуара и характеристики, достаточно зайти в настройки устройства

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

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