Документация по SCADA системе Simp Light


Содержание:


SIMPLight и Telegram

В системе SIMPLight есть возможность отправлять оповещения в Telegram. Этот механизм включается в настройках модуля «Редактор каналов» в разделе «Монитор», параметр называется «Оповещения о тревогах на Telegram». После активизации этого параметра рядом с параметром обнаружится кнопка «Настроить», которая в свою очередь открывает диалоговое окно «Настройка рассылки Telegram-сообщений».


Итак, в диалоговом окне «Настройка рассылки Telegram-сообщений» первым делом необходимо ввести токен (ключ) бота вида «123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11». Тут может возникнуть множество вопросов: что это за ключ; где его взять; а нужен ли этот ключ и нельзя ли обойтись без него.

Далее для пользователей, у которых эти вопросы не вызывают трудностей, кто близко знаком с мессенджером Telegram, кто имеет желание самостоятельно разобраться со всеми настройками бота предлагаем почитать официальную документацию - «Инструкция как создать бот и получить ключ». И затем вернуться к настройкам диалогового окна в модуле «Редактор каналов», в этом тексте чуть ниже.

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

Все нижеприведенные действия производятся на ПК, а не на мобильном телефоне. Это не говорит о том, что эти действия нельзя выполнить на телефоне. Просто на ПК все эти операции выполнять гораздо удобнее.

Начнем с самого начала - с установки мессенджера Telegram на компьютер. Отправляемся на сайт Telegram и скачиваем приложение «Telegram Desktop».

 


После установки приложения, запускаем его, и в строке поиска набираем «ControllerBot». Для создания своего бота, мы будем общаться с ботами мессенджера Telegram. Это будут боты «ControllerBot» и «BotFather». Первый бот - это основной управляющий бот в Telegram для управления каналами, а бот «BotFather» служит для создания и редактирования ботов.

В левой панели приложения появятся наименования ботов, каналов и пользователей. Отыщите там наименование «@ControllerBot», выделите его левой клавишей мыши и нажмите надпись «Запустить» в нижней части окна приложения.

Бот «ControllerBot» предложит выбрать язык, на котором будут выдаваться его инструкции. Выбираем «Русский».

Бот показывает список возможных действий. Кликаем по команде «/addchannel - добавить канал».

Бот «ControllerBot» выдает инструкцию по подключению бота. Кликаем на «@BotFather».

После этого оказываемся в окне бота «BotFather», где и будем создавать своего бота. Нажимаем надпись «Запустить» в нижней части окна приложения.


Бот «BotFather» выдает список доступных команд. Кликаем на «/newbot».

После запуска команды «/newbot» бот «BotFather» попросит указать имя создаваемого бота. Имя может быть любое, оно может быть не уникальным, и может быть набрано по-русски. Это имя будет отображаться в списке контактов.

Затем предлагается ввести никнейм (username) для бота. Здесь можно указать то же самое, что и в имени, но обязательно на конце никнейма должно стоять окончание «bot» или «_bot».

Если бот «BotFather» говорит: «Sorry, this username ..., то значит это username уже занято и необходимо указать другое имя.

Вводим новое имя. И наконец-то получаем долгожданный токен. Будьте внимательны и осторожны с выданным ключом. Следует скопировать его и хранить в надежном месте, поскольку больше нигде его найти уже будет нельзя. И даже бот «BotFather» не поможет восстановить утраченный токен, он только сможет выдать вам новый токен. Далее, имея на руках токен, можно вернуться к боту «ControllerBot» для встраивания бота в канал, но это уже другая история...

Итак, токен бота мессенджера Telegram получен. Вводим его в диалоговом окне «Настройка рассылки Telegram-сообщений» в поле ввода с названием «Токен».

Далее следует нажать кнопку «Обновить» для получения списка получателей. Если после этого на экране появится диалоговое окно, информирующее об ошибках при работе с указанным токеном, то следует вернуться к настройкам бота мессенджера Telegram. К примеру, обычно помогает получение нового токена для бота. Если же в разделе «Получатели» появились строки с именами получателей, то можно выдохнуть - связь с ботом мессенджера Telegram успешно установлена. Нажатие кнопки «Тест» осуществляет отправку текстового сообщения боту в Telegram.

Как только получен положительный результат связи с указанным ботом мессенджера, следует в списке "Получатели" выбрать необходимых корреспондентов и установить для них виды отправляемых оповещений: «Оповещать при выходе за зону уставок», «Оповещать при возвращении в норму».



Примечание
!!! Обратите внимание на имена пользователей Telegram в списке получателей !!!
!!! Имя пользователя должно состоять из двух частей: "Имя аккаунта (Имя пользователя)" !!!

При создании аккаунта в Telegram "имя пользователя" по умолчанию не создается, поскольку работать в Telegram можно спокойно без него и общаться с другими пользователями Telegram посредством имен аккаунтов. Но для обращения к пользователю Telegram посредством API-инструментария необходимо именно "имя пользователя", поскольку только оно является уникальным ключом, однозначно идентифицирующим пользователя Telegram. В настройках Telegram "имя пользователя" сопровождается знаком "@".

Если при настройке рассылки Telegram-сообщений, обнаружено имя получателя оповещений без "имени пользователя" (имя в скобочках), то в обязательном порядке необходимо сообщить пользователю о необходимости создания "имени пользователя" в настройках аккаунта пользователя в Telegram. Иначе сообщения от системы СИМП Лайт не будут доходить до адресата.

!!! Ни в коем случае не посылайте сообщения получателю без "имени пользователя" (имя в скобочках) !!!
!!! Сообщения не дойдут, система СИМП Лайт получит от Telegram сообщение об ошибке, аккаунт пользователя Telegram попадет в "отстойник", что не позволит ему, какое-то время, принимать сообщения даже при заведенном "имени пользователя" !!!

После того как в настройках модуля «Редактор каналов» будет установлен параметр «Оповещения о тревогах на Telegram», то каждый канал модуля претерпевает изменения. А именно: каждый канал в своих свойствах обзаведется дополнительным свойством «Оповещать в Telegram». С помощью этого свойства контролируется список каналов, оповещение о нарушении уставок которых, отправляется в мессенджер Telegram. То есть в мессенджер уйдут оповещения о нарушении уставок не  всех каналов scada-системы, а только тех каналов, у которых установлено свойство «Оповещать в Telegram».

После того как все настройки модуля «Редактор каналов» будут сохранены, и будет запущен модуль «Монитор», то в мессенджер Telegram для указанных пользователей будут поступать указанные оповещения о событиях в указанных каналах.

Осталось упомянуть о добавлении новых получателей рассылки оповещений из scada-системы. Для этого необходимо сообщить нужным корреспондентам имя бота. Будущие корреспонденты должны найти этого бота в мессенджер Telegram и отправить ему любое сообщение. После получения сообщений от новых корреспондентов бот автоматически добавит их имена в список получателей сообщений. Не стоит волноваться, что можно забыть о такой особенности, поскольку при попытке найти новых подписчиков в настройках модуля "Редактор каналов" система SIMPLigth напомнит пользователю об этой необходимости. Весьма полезная любезность со стороны системы, не правда ли.


И заканчивая рассмотрение работы с мессенджером Telegram, стоит добавить самую потрясающую возможность - оповещения из системы SIMPLight могут быть отправлены с помощью функции! В этом случае указанным получателям может быть отправлено произвольное сообщение. Вот эта функция:

SendTelegram(const RecipientCommaList, Text: string): Boolean

  • RecipientCommaList - список получателей через запятую (имена пользователей в Telegram). Если список получателей пуст, то сообщение будет отправлено всем выбранным получателям, указанным в форме настроек;
  • Text – текст оповещения, отправляемого в Telegram.

Функция SendTelegram() в случае успешной отправки оповещения вернет результат True, в противном случае будет возвращен результат False. 

Примечание
Следует помнить, что в качестве имени пользователя Telegram выступает не наименование аккаунта в Telegram, а "Имя пользователя", оно в профиле пользователя в настройках Telegram начинается со знака "@". Однако, сам этот знак не пишется в функции SendTelegram() при указании имени получателя.


Видеоинструкция "Оповещение в Telegram без использования скриптов" 

  Видеоинструкция "Оповещение в Telegram с помощью скриптов"