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

Материал из Sprut.hub Wiki
Нет описания правки
Нет описания правки
Строка 9: Строка 9:
После этого, необходимо:
После этого, необходимо:


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


Шаг 2. Выполнить команду /newbot
'''Шаг 2:''' Выполнить команду /newbot


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


После этого вы получите сообщение, которое будет содержать ссылку на вашего бота, а также '''токен''' для авторизации в Sprut.hub или другой системе управления умным домом.
После этого вы получите сообщение, которое будет содержать ссылку на вашего бота, а также '''токен''' для авторизации в Sprut.hub или другой системе управления умным домом.


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


{{Quote | Ваш бот готов к использованию}}
{{Quote | Ваш бот готов к использованию}}
Строка 52: Строка 52:
В этот же глобальный сценарий, после функции sendToTelegram, вы можете добавить дополнительную строку, которая будет уведомлять вас о запуске хаба вызывая функцию выше:
В этот же глобальный сценарий, после функции sendToTelegram, вы можете добавить дополнительную строку, которая будет уведомлять вас о запуске хаба вызывая функцию выше:
<syntaxhighlight lang="js" line="1">
<syntaxhighlight lang="js" line="1">
sendToTelegram(["*Первая строка*", "вторая строка"])
sendToTelegram(["*Мой город*", "Хаб запущен"])
</syntaxhighlight>
</syntaxhighlight>
Вызов функции отправки сообщений из блочных сценариев, производится через добавление в блоке кода следующей команды:
<syntaxhighlight lang="js" line="1">
global.sendToTelegram("Сообщение")
</syntaxhighlight>
если вам нужен перевод на новую строку, то код будет выглядеть вот так
<syntaxhighlight lang="js" line="1">
global.sendToTelegram(["*Нижний Новгород*, хаб запущен", "вторая строка"])
</syntaxhighlight>
Если вы хотите, чтобы приходили "тихие" уведомления в телеграм, то строка кода будет выглядеть вот так:
<syntaxhighlight lang="js" line="1">
global.sendToTelegram(["*Нижний Новгород*, хаб запущен", "вторая строка"], false)
</syntaxhighlight>
Также можно оформлять текст с помощью разных "плюшек" в виде различного форматирования текста:
<syntaxhighlight lang="js" line="1">
global.sendToTelegram("*выделение жирным*")
</syntaxhighlight>
<syntaxhighlight lang="js" line="1">
global.sendToTelegram("__выделение подчеркнутым__")
</syntaxhighlight>
<syntaxhighlight lang="js" line="1">
global.sendToTelegram("_наклонный текст_")
</syntaxhighlight>
<syntaxhighlight lang="js" line="1">
global.sendToTelegram("[Инструкции живут тут](https://spruthub.ru/news)") - это отправка ссылки
</syntaxhighlight>
Если вам нужно отправить в телеграм значение какого либо устройства, то можно использовать следующий синтаксис:
<syntaxhighlight lang="js" line="1">
global.sendToTelegram("Состояние сигнализации: " + Hub.getCharacteristic(2, 13).format())
</syntaxhighlight>
После этого сохраняем сценарий и переходим в раздел Блочных сценариев и создаем новый сценарий или добавляем уже в существующий, отправку уведомлений в телеграм:

Версия от 19:17, 14 ноября 2022

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

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

Для этого необходимо в Telegram в поиске вбить @BotFather (это официальный бот для создания ботов)


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

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

Шаг 2: Выполнить команду /newbot

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

После этого вы получите сообщение, которое будет содержать ссылку на вашего бота, а также токен для авторизации в Sprut.hub или другой системе управления умным домом.

Шаг 4: Далее вам необходимо узнать ваш chatID. Для этого вам нужно подключиться к этому боту, который и сообщит вам ваш chatID.


Ваш бот готов к использованию


Теперь вам необходимо настроить его работу в Sprut.hub. Для этого необходимо создать глобальный сценарий в виде кода. Идем в "Сценарии" - "Глобальные" и создаем там новый сценарий

После этого - вставляем в блок кода сценария следующий код:

let chatIDs = ["666666666"];
let token = "666666666:AABBCCddEeffggeeHH-IIJJkKLlMmnno_oP"

function sendToTelegram(text, notify) {
    try {
        if (!Array.isArray(text))
            text = [text];

        chatIDs.forEach(function (chatID) {
            HttpClient.POST("https://api.telegram.org")
                .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);
    }
}


В коде необходимо заменить "777777777" на ID которые вы получили от бота на Шаге 4 и заменить токен 666666666:AABBCCddEeffggeeHH-IIJJkKLlMmnno_oP на токен, который вы получили на Шаге 3


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

sendToTelegram(["*Мой город*", "Хаб запущен"])

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

global.sendToTelegram("Сообщение")

если вам нужен перевод на новую строку, то код будет выглядеть вот так

global.sendToTelegram(["*Нижний Новгород*, хаб запущен", "вторая строка"])

Если вы хотите, чтобы приходили "тихие" уведомления в телеграм, то строка кода будет выглядеть вот так:

global.sendToTelegram(["*Нижний Новгород*, хаб запущен", "вторая строка"], false)

Также можно оформлять текст с помощью разных "плюшек" в виде различного форматирования текста:

global.sendToTelegram("*выделение жирным*")
global.sendToTelegram("__выделение подчеркнутым__")
global.sendToTelegram("_наклонный текст_")
global.sendToTelegram("[Инструкции живут тут](https://spruthub.ru/news)") - это отправка ссылки

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

global.sendToTelegram("Состояние сигнализации: " + Hub.getCharacteristic(2, 13).format())

После этого сохраняем сценарий и переходим в раздел Блочных сценариев и создаем новый сценарий или добавляем уже в существующий, отправку уведомлений в телеграм: