Перейти к основному содержимому

Telegram

Telegram - модуль для отправки сообщений из i3 Pro в Telegram. Telegram бот будет отправлять вам сообщения, настроенные в iRidium Studio, по активации события (например, можно получать уведомления от датчиков протечки, задымления и другого оборудования).

документация обновлена 01.01.2024

Подсказка

Скачать пример:

Скачать шаблон проекта:

Создание Telegram бота

  1. Откройте Telegram , в строке поиска введите BotFather ;

  2. Выберите найденного бота, активируйте диалог с ним и нажмите на кнопку Start ;

  3. Отправьте команду /newbot , чтобы создать своего бота;

  4. BotFather предложит вам выбрать имя для своего будущего бота, введите имя;

  5. Боту необходимо придумать уникальный username , в конце названия обязательно указывается приставка _bot ;

  6. После успешной регистрации BotFather пришлет вам сообщение с токеном, который необходимо сохранить для дальнейшей работы.

Интеграция модуля в проект

Мы подготовили проект, который демонстрирует работу модуля Telegram. Для интеграции модуля в проект необходимо:

  1. Скачать шаблон проекта с модулем Telegram;

  2. Открыть модуль в Iridium Studio;

  3. Объединить ваш проект с модулем Telegram:

Telegram2.png

  1. В разделе SCRIPT открыть файл Main, содержащий пример;

  2. Изменить параметры в примере:

Telegram1.png

  • device Name - имя драйвера Telegram;
  • chat ID - ID пользователя или группы;
  • token of the bot - i ;
  • timeout between messages - задержка на отправку сообщений, в миллисекундах;
  • print Log - переменная, определяющая нужен вывод логов или нет (true, false).

Получение chat ID:

  1. Откройте Telegram , и в строке поиска введите userinfobot ;
  2. Выберите найденного бота, активируйте диалог с ним, и нажмите на кнопку Start ;
  3. В сообщении вы получите информацию о вашем Telegram аккаунте: login, id, имя, фамилию .

Получение chat ID группы:

  1. Добавьте бота в группу (добавляется через обычное добавление участников и поиск бота по имени);
  2. Запустите бота командой /start ;
  3. Получить список обновлений для вашего бота можно по следующей ссылке, где **** заменяется на токен вашего бота: https://api.telegram.org/bot/getUpdates ;
  4. Вы получите подобный ответ:

Telegram4.png

В объекте chat поле id - идентификатор вашей группы.

  1. В скрипте Main по примеру написать обработчик данных. В нём необходимо задать событие по которому будет отправляться сообщение и текст сообщения.

6.1. Пример отправки сообщения по нажатию на кнопку"

  1. Заменяем значения chat ID и token of the bot на те, которые использует Telegram бот;

  2. Создаём функцию send_mail() и заполняем текст сообщения, которое будет отправлено Telegram ботом;

  3. Привязываем функцию send_mail() к графическому элементу (кнопке) с помощью макроса Script call .

var l_pTelegram;

IR.AddListener(IR.EVENT_START, 0, function(){
l_pTelegram = new Telegram(
/* device Name */ "Telegram",
/* chat ID */ "0000",
/* token of the bot */ "botToken",
/* timeout between messages */ 200,
/* print Log */ true);

});

function send_mail()
{
l_pTelegram.SendMessage("text message");
}

6.2. Пример отправки сообщения по изменению значений в тегах драйвера"

  1. Заменяем значения chat ID и token of the bot на те, которые использует Telegram бот;

  2. Заменяем значение ** "Name Device" ** на имя драйвера, значения которого будем отслеживать и отправлять в Telegram.

  3. В слушателе IR.EVENT_TAG_CHANGE добавляем необходимые каналы, значения которых будем отслеживать, и текст сообщения, которое будет отправлено в Telegram.

var l_pTelegram;

IR.AddListener(IR.EVENT_START, 0, function(){
l_pTelegram = new Telegram(
/* device Name */ "Telegram",
/* chat ID */ "0000",
/* token of the bot */ "botToken",
/* timeout between messages */ 200,
/* print Log */ true);

var driver = IR.GetDevice("Name Device"); // driver name
});


IR.AddListener(IR.EVENT_TAG_CHANGE, driver, function(name,value)
{
if (name == "Address 1" && value == 1) // if the driver feedback "Address 1" changed to 1
{
l_pTelegram.SendMessage("Back door opened!"); // text of notification
}
});

6.3. Пример отправки сообщения по наступлению заданной даты"

  1. Заменяем значения chat ID и token of the bot на те, которые использует Telegram бот;

  2. В слушателе IR.EVENT_GLOBAL_TAG_CHANGE указываем дату и время отправки сообщения, а так же текст сообщения.

var l_pTelegram;

IR.AddListener(IR.EVENT_START, 0, function(){
l_pTelegram = new Telegram(
/* device Name */ "Telegram",
/* chat ID */ "0000",
/* token of the bot */ "botToken",
/* timeout between messages */ 200,
/* print Log */ true);

});


IR.SetGlobalListener(IR.EVENT_GLOBAL_TAG_CHANGE, function (name, value)
{
// conditions:
if (IR.GetVariable("System.Date.MM_DD") == "03/14" && IR.GetVariable("System.Time.Hour") == 10 && IR.GetVariable("System.Time.Minutes") == 0)
{
l_pTelegram.SendMessage("Happy Birthday Mike!"); // text of notification
}
});

IR.SubscribeTagChange("System.Time.Minutes"); // subscribe on minutes to check condition each minute

Запуск бота конечным пользователем

Для начала работы с Telegram ботом, конечному пользователю необходимо:

  1. Предоставить chat ID своего аккаунта или чата группы интегратору;

  2. Найти в поиске бота по его username ;

  3. Активировать диалог и запустить бота, отправить команду /start .