DCImanager 6

Отправка уведомлений в Telegram

Вы можете использовать мессенджер Telegram для получения уведомлений о состоянии оборудования. Для отправки уведомлений платформа использует Telegram-бота.

Чтобы настроить отправку уведомлений в Telegram:

  1. Создайте бота в Telegram.
  2. Подключите бота к платформе.
  3. Добавьте Telegram в качестве канала уведомлений.

Настройка на стороне Telegram

  1. Откройте диалог с ботом @BotFather.
  2. Отправьте команду /newbot.
  3. Введите название бота. Например, Notify Me.
  4. Введите уникальное имя пользователя для бота. Оно должно оканчиваться сочетанием "bot". Например, notifyme876bot.
  5. Сохраните значение токена из ответа.
  6. Чтобы бот мог отправлять сообщения в группу Telegram:

    1. Добавьте бота в группу. 
    2. Введите любую команду в чате группы. Например, /start.
  7. Чтобы бот мог отправлять сообщения пользователю Telegram, пользователь должен открыть диалог с ботом и нажать Запустить.

Пример создания бота

Настройка на стороне платформы

Подключение бота

  1. В правом меню нажмите значок → вкладка Мессенджеры → кнопка Подключить мессенджер.
  2. Вставьте Токен Бота.
  3. Нажмите кнопку Активировать.
  4. Выберите нужные чаты для отправки уведомлений.
  5. Выберите Язык сообщений.
  6. Нажмите кнопку Сохранить.

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

Чтобы удалить настройки подключения к боту, нажмите значок рядом с надписью Чаты мессенджеров → кнопка Удалить бота.

Управление чатами

Чтобы управлять чатами, в которые бот отправляет сообщения, в правом меню нажмите значок  → раздел Мессенджеры. Чатами могут быть группы и отдельные пользователи Telegram.

Перед добавлением чата добавьте в него бота и отправьте ему любую команду. Например, /start.

Чтобы добавить чат:

  1. Нажмите кнопку Добавить чат.
  2. Выберите Язык сообщений.
  3. Укажите произвольное Имя чата.
  4. Выберите чат из списка или Введите ID чата.
  5. Укажите произвольное Примечание для чата.
  6. Нажмите кнопку Добавить. Если чат добавлен успешно, в него должно поступить тестовое сообщение от бота.

Чтобы изменить настройки чата, нажмите значок в строке с чатом.

Чтобы включить или отключить отправку сообщений в чат, нажмите переключатель в строке с чатом.

Чтобы удалить чат, нажмите значок в строке с чатом.

Настройка уведомлений

Чтобы использовать Telegram в качестве канала уведомления:

  1. Перейдите в раздел Центр уведомлений. Для этого в правом меню нажмите значок  → Настройка уведомлений.
  2. Нажмите на название уведомления.
  3. Выберите чаты Теlegram в поле В каналы мессенджеров.

  4. Нажмите кнопку Сохранить.

Особенности работы с супергруппами Telegram

В некоторых случаях Telegram может изменить статус вашей группы на супергруппу. Например, если группа стала публичной или в ней более 200 участников. При изменении статуса группы её id изменится, и уведомления не будут отправляться. Чтобы возобновить отправку уведомлений,  укажите новый id в настройках чата. 

Вы можете узнать id супергруппы с помощью бота @getmyid_bot.

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

Настройка одновременной отправки уведомлений

По умолчанию платформа одновременно отправляет не более пяти уведомлений в Telegram. Чтобы изменить этот параметр:

  1. Подключитесь к серверу с платформой по SSH.
  2. Перейдите в контейнер с сервисом отправки сообщений: 

    docker exec -it dci_msgsender_1 bash
  3. Добавьте в секцию [program:msgs_writer] конфигурационного файла /etc/supervisord.conf.d/msgsender.conf параметр:

    environment=TELEGRAM_TASK_LIMIT=<number>
    Пояснения
    Не рекомендуем устанавливать значение параметра <number> выше 10. Это может привести к блокировке бота со стороны Telegram.
  4. Выполните команду: 

    supervisorctl update
  5. Выйдите из контейнера: 

    exit

Чтобы проверить работу одновременной отправки сообщений:

  1. Подключитесь к серверу с платформой по SSH.
  2. Подключитесь к базе данных платформы: 

    docker exec -it mysql bash -c "mysql auth -p\$MYSQL_ROOT_PASSWORD"
  3. Выполните запрос: 

    SELECT id, name, lock_tag from taskmgr_task WHERE name = 'msgsender_telegram_send' ORDER BY id desc LIMIT 10;

    Число в столбце lock_tag показывает номер сообщения в очереди.

    Пример ответа
    +-------+-------------------------+--------------------------------+
    | id    | name                    | lock_tag                       |
    +-------+-------------------------+--------------------------------+
    | 11493 | msgsender_telegram_send | ["msgsender_telegram_send.6"]  |
    | 11492 | msgsender_telegram_send | ["msgsender_telegram_send.5"]  |
    | 11485 | msgsender_telegram_send | ["msgsender_telegram_send.4"]  |
    | 11484 | msgsender_telegram_send | ["msgsender_telegram_send.3"]  |
    | 11483 | msgsender_telegram_send | ["msgsender_telegram_send.2"]  |
    | 11482 | msgsender_telegram_send | ["msgsender_telegram_send.1"]  |
    | 11481 | msgsender_telegram_send | ["msgsender_telegram_send.7"]  |
    | 11480 | msgsender_telegram_send | ["msgsender_telegram_send.10"] |
    | 11479 | msgsender_telegram_send | ["msgsender_telegram_send.9"]  |
    | 11478 | msgsender_telegram_send | ["msgsender_telegram_send.8"]  |
    +-------+-------------------------+--------------------------------+
  4. Выйдите из консоли БД: 

    \q
Может быть полезно
Связанные статьи: