Bigmanekb (обсуждение | вклад) Нет описания правки Метка: wikieditor |
Bigmanekb (обсуждение | вклад) Нет описания правки |
||
Строка 3: | Строка 3: | ||
Если у вас нет своего бота, вам необходимо его создать. | Если у вас нет своего бота, вам необходимо его создать. | ||
== Создание своего бота в Telegram == | |||
Для этого необходимо в Telegram в поиске вбить [https://t.me/BotFather @BotFather] (это официальный бот для создания ботов) | Для этого необходимо в Telegram в поиске вбить [https://t.me/BotFather @BotFather] (это официальный бот для создания ботов) | ||
[[Файл:Tg0.jpg|центр|обрамить]] | [[Файл:Tg0.jpg|центр|обрамить]] | ||
Строка 21: | Строка 22: | ||
{{QuoteBlue | Ваш бот готов к использованию}} | {{QuoteBlue | Ваш бот готов к использованию}} | ||
== Создание глобального сценария == | |||
Теперь вам необходимо настроить его работу в Sprut.hub. Для этого необходимо создать глобальный сценарий в виде кода. Идем в "Сценарии" - "Глобальные" и создаем там новый сценарий | Теперь вам необходимо настроить его работу в Sprut.hub. Для этого необходимо создать глобальный сценарий в виде кода. Идем в "Сценарии" - "Глобальные" и создаем там новый сценарий | ||
[[Файл:Scenario1.png|центр|обрамить]] | [[Файл:Scenario1.png|центр|обрамить]] | ||
Строка 50: | Строка 52: | ||
{{QuoteYellow | В коде необходимо заменить "777777777" на ID которые вы получили от бота на Шаге 4 и заменить токен 666666666:AABBCCddEeffggeeHH-IIJJkKLlMmnno_oP на токен, который вы получили на Шаге 3}} | {{QuoteYellow | В коде необходимо заменить "777777777" на ID которые вы получили от бота на Шаге 4 и заменить токен 666666666:AABBCCddEeffggeeHH-IIJJkKLlMmnno_oP на токен, который вы получили на Шаге 3}} | ||
После этого сохраняем сценарий | |||
== Дополнительные настройки отправки сообщений == | |||
В этот же глобальный сценарий, после функции sendToTelegram, вы можете добавить дополнительную строку, которая будет уведомлять вас о запуске хаба вызывая функцию выше: | В этот же глобальный сценарий, после функции sendToTelegram, вы можете добавить дополнительную строку, которая будет уведомлять вас о запуске хаба вызывая функцию выше: | ||
<syntaxhighlight lang="js"> | <syntaxhighlight lang="js"> | ||
Строка 90: | Строка 95: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Уведомления в Telegram из блочных сценариев == | |||
Глобальные сценарии используются в блочных через вызов функции. | |||
Для этого переходим в раздел Блочных сценариев и создаем новый блочный сценарий или добавляем уже в существующий, отправку уведомлений в телеграм: | |||
[[Файл:Scenario tg2.png|центр|обрамить]] | [[Файл:Scenario tg2.png|центр|обрамить]] | ||
[[Файл:Scenario tg4.png|центр|обрамить]] | [[Файл:Scenario tg4.png|центр|обрамить]] | ||
== Передача данных датчика в Telegram == | |||
Если вы хотите что-то посложнее, например отправить данные датчика или что-то подобное, то можно использовать данные характеристики устройства. | Если вы хотите что-то посложнее, например отправить данные датчика или что-то подобное, то можно использовать данные характеристики устройства. | ||
Строка 103: | Строка 113: | ||
И там будут нужные вам названия сервисов и характеристик для указания в коде, а также идентификаторы всех уровней. | И там будут нужные вам названия сервисов и характеристик для указания в коде, а также идентификаторы всех уровней. | ||
[[Файл:Tg24.jpg|центр|обрамить]] | [[Файл:Tg24.jpg|центр|обрамить]] | ||
__ОБЯЗАТЕЛЬНОЕ_ОГЛАВЛЕНИЕ__ |
Версия от 04:45, 15 ноября 2022
Для получения уведомлений о событиях Sprut.hub через бота в Telegram можно использовать решение с помощью кода (пока не готово официальная интеграция).
Если у вас нет своего бота, вам необходимо его создать.
Создание своего бота в 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())
Уведомления в Telegram из блочных сценариев
Глобальные сценарии используются в блочных через вызов функции.
Для этого переходим в раздел Блочных сценариев и создаем новый блочный сценарий или добавляем уже в существующий, отправку уведомлений в телеграм:
Передача данных датчика в Telegram
Если вы хотите что-то посложнее, например отправить данные датчика или что-то подобное, то можно использовать данные характеристики устройства.
Например отправка состояния открытия окна будет выглядеть в виде такой команды:
global.sendToTelegram("Состояние окна: " + Hub.getCharacteristic(1154, 16).format())
где цифра 1154 - это порядковый номер аксессуара Окно в хабе, а цифра 16 - это номер характеристики "Целевая позиция" у Окна.
Чтобы не напрягаться с поиском того, как называется сервис или характеристика для использования в коде (даже с авто-подстановкой), а также какие у них идентификаторы, достаточно зайти в настройки устройства и нажать кнопку информации у нужной характеристики
И там будут нужные вам названия сервисов и характеристик для указания в коде, а также идентификаторы всех уровней.