SMS-уведомления 2.0: различия между версиями

Материал из TekonWiki
Перейти к навигацииПерейти к поиску
Нет описания правки
 
(не показана 41 промежуточная версия этого же участника)
Строка 1: Строка 1:
== Введение ==
Модуль позволяет отправлять сообщения, формируемые примитивами на ситуационном плане SCADA, и фиксируемые Журналом событий АСУД.SCADA, выбранному сервис-провайдеру. Если сервис-провайдер отсутствует в описании ниже, см. предыдущую версию статьи


 
Сообщения формируются '''Примитивами '''SCADA, передаются в Журнал событий SCADA, а также в модуль SMS-уведомлений для их последующей пересылки с помощью выбранного сервис-провайдера
 
 
 
 
 
== Введение  ==
 
Модуль отправки SMS-сообщений существенно переработан в версии 2.6.0
Для предыдущих версий АСУД.SCADA см. статью [[SMS-уведомления|SMS-уведомления]]
 
Модуль позволяет отправлять сообщения, формируемые примитивами на ситуационном плане SCADA, и фиксируемые Журналом событий АСУД.SCADA:
 
*в текстовый файл - демонстрационный режим работы модуля
*на мобильные телефоны с помощью SMS или Push-уведомлений
*на адреса электронной почты 
*в таблицы Google
 
Т.е. сообщения формируются '''Примитивами '''SCADA и передаются в Журнал событий SCADA, а также в  модуль SMS-уведомлений для их последующей пересылки.
<pre>Примитив --->>  Cообщение  ---->>  Журнал Событий
<pre>Примитив --->>  Cообщение  ---->>  Журнал Событий
&nbsp;                          ---->>  SMS-уведомления -->> Обработка -->> Передача адресату
                          ---->>  SMS-уведомления -->> Обработка сервис-провайдером-->> Передача адресату</pre>
</pre>
 
'''Внимание!''' Если в настройках примитива установлена опиция "Журнал" - Нет, примитив не будет формировать SMS-уведомления.


Для полноценной&nbsp;работы модуля требуется наличие:&nbsp;
'''Внимание!''' Если в настройках примитива установлена опция "Журнал" - Нет, примитив не будет формировать уведомления.


*поключения к сети Интернет
Для полноценной&nbsp;работы модуля требуется:&nbsp;
*или 3G USB-модема с поддержкой АТ-команд (о возможности подключения других USB-модемов уточняйте в тех.поддержке)


Для проверки работы модуля в демонстрационном режиме работы&nbsp;(передача сообщений в текстовый файл)&nbsp;никаких дополнительных подключений не требуется.
*наличие подключение к сети Интернет
*некоторые сервис-провайдеры запрашивают [[Драйвер EXT-модуля]]


SMS-cообщения на мобильные телефоны могут отправляться:&nbsp;
Для проверки работы модуля в демонстрационном режиме работы&nbsp;(передача сообщений в текстовый файл) никаких дополнительных подключений не требуется.
 
*через USB-модем&nbsp; - требуется предоплата за отправленные сообщения;
*через сервис-провайдера - требуется регистрация и предоплата за отправленные сообщения.  


Модуль позволяет отправлять&nbsp;следующие типы сообщений в зависимости от типа исходного сигнала:&nbsp;
Модуль позволяет отправлять&nbsp;следующие типы сообщений в зависимости от типа исходного сигнала:&nbsp;
Строка 58: Строка 36:
|-
|-
| style="text-align: center;" | Переговорной связи
| style="text-align: center;" | Переговорной связи
| style="text-align: center;" | Входящий вызов
| style="text-align: center;" | Входящий вызов<br/> ВЫЗОВ / ВЫЗОВ.ОК
| style="text-align: center;" | сигнал должен быть визуализирован на ситуационном плане
| style="text-align: center;" | сигнал должен быть визуализирован на ситуационном плане<br/> (ВЫЗОВ.ОК - завершение вызова с версии 2.7.15)
|-
|-
| style="text-align: center;" | Статус
| style="text-align: center;" | Статус
| style="text-align: center;" | Нет связи / Норма
| style="text-align: center;" | Нет связи / Норма
| style="text-align: center;" | сигнал должен быть визуализирован на ситуационном плане
| style="text-align: center;" | сигнал должен быть визуализирован на ситуационном плане
|-
| style="text-align: center;" | Лифт
| style="text-align: center;" | Авария / Норма
|
доступно с версии 2.7.15
сигнал должен быть визуализирован на ситуационном плане
|-
| style="text-align: center;" | Служебные
| style="text-align: center;" | Сообщение
| доступно с версии 2.7.15
|}
|}


Строка 69: Строка 59:


*Для сигнала Статус  
*Для сигнала Статус  
**ДАТА Сигнал[Устройство]:&nbsp;Нет связи, Адрес   
**ДАТА Сигнал[Устройство]: Нет связи, Адрес
*Для сигнала Лифт
**ДАТА Сигнал: [Этаж ЭТАЖ код КодНеисправности] Название неисправности, Адрес 
*Для служебных сообщений
**ДАТА Сигнал: Название события, Адрес ист. Источник события    
*Для прочих сигналов  
*Для прочих сигналов  
**ДАТА Сигнал: Название_события, Адрес   
**ДАТА Сигнал: Название события, Адрес   


Например:
Например:
Строка 77: Строка 71:
*23:29 НОРМА: Двери лифта, ул. Первая д.1  
*23:29 НОРМА: Двери лифта, ул. Первая д.1  
*23:30 АВАР.: Лифт, ул. Первая д.2  
*23:30 АВАР.: Лифт, ул. Первая д.2  
*23:31&nbsp;АВАР.ЛИФТ: [Этаж 9 код 50987] Привод сообщает об остановке или линия связи CAN, которая не работает, ул. Первая д.1
*23:32 НОРМА: Двери машинного помещения, ул. Первая д.2  
*23:32 НОРМА: Двери машинного помещения, ул. Первая д.2  
*23:50 ВКЛ.: Освещение подъезда, ул. Первая д.1  
*23:50 ВКЛ.: Освещение подъезда, ул. Первая д.1  
*00:41 НОРМА[КУН-IP8 - 0]:&nbsp;Нет связи, ул. Первая д.2  
*00:41 НОРМА[КУН-IP8 - 0]:&nbsp;Нет связи, ул. Первая д.2  


'''Внимание!'''
Модуль SMS-уведомлений '''проигнорирует '''входящее сообщение, если было открыто окно настроек&nbsp;Сервис \ Настройки \ SMS-уведомления&nbsp;SCADA.
 
Модуль SMS-уведомлений '''проигнорирует '''входящее сообщение, если в конфигураторе ОРС-сервера у концентратора (или другого устройства):
 
*не заполнено поле Адрес;  
*не заполнено поле Журнал событий \ Название события.  


Для версий до 2.7.15 будут проигнорированы сообщения, если для устройства в конфигураторе ОРС-сервера не заполнены


*поле Адрес;
*поле Журнал событий \ Название события.


== Настрока модуля&nbsp; ==
С версии 2.7.15 пустое поле Адрес будет заполнено значение имени тега, например:&nbsp;DA.[localhost{...}].КУН-IP8 - 0.КСЛ-RS - 0.Лифт - 0.LiftChannel<br/> Пустое поле Название события будут заменено на&nbsp;???.&nbsp;
== Настройка модуля&nbsp; ==


Для настройки модуля следует перейти в режим настройки и выбрать меню Сервис \ Настройки,&nbsp; &nbsp;далее&nbsp; Журналы \ SMS-уведомления
Для настройки модуля следует перейти в режим настройки и выбрать меню Сервис \ Настройки,&nbsp; &nbsp;далее&nbsp; Журналы \ SMS-уведомления
Строка 99: Строка 93:


#создать один или несколько фильтров (или правил)&nbsp; обработки входящих сообщений  
#создать один или несколько фильтров (или правил)&nbsp; обработки входящих сообщений  
#выбрать Провайдера передачи сообщений.
#выбрать Провайдера передачи сообщений  
 
'''Внимание!'''


'''Внимание!'''<br/> Сообщения передаются только на один выбранный провайдер.<br/> При смене провайдера - набор правил не удаляется / изменяется.<br/> Если провайдер не выбран - сообщения отправляться не будут.
*Сообщения передаются только на один выбранный провайдер.  
*При смене провайдера - набор правил не удаляется / изменяется.  
*Если провайдер не выбран - сообщения отправляться не будут  
*Должно быть создано минимум 1 правило.


== Фильтры&nbsp;обработки сообщений ==
== Фильтры обработки сообщений ==


Для работы модуля следует создать один&nbsp;или несколько фильтров обработки входящих сообщений.&nbsp;
Для работы модуля следует создать один&nbsp;или несколько фильтров обработки входящих сообщений.&nbsp;
Строка 113: Строка 112:
*Название&nbsp; - просто имя фильтра (желательно уникальное)  
*Название&nbsp; - просто имя фильтра (желательно уникальное)  
*Сообщение -&nbsp; шаблон входящего сообщения&nbsp;  
*Сообщение -&nbsp; шаблон входящего сообщения&nbsp;  
**символ звездочка - любое сообщение удовлетворяет фильтру  
**символ звездочка *&nbsp;- любое сообщение удовлетворяет фильтру  
**лифт - в сообщении должно быть слово "лифт", например:&nbsp;&nbsp;  
**лифт - в сообщении должно быть слово "лифт", например:&nbsp;&nbsp;  
***Авария '''лифта&nbsp; '''- удовлетворяет фильтру  
***"Авария '''лифта'''"'''&nbsp;&nbsp;'''- удовлетворяет фильтру  
***Открытие двери - нет   
***"Открытие двери" - нет   
**лифт; Планерная - в сообщении должны&nbsp;быть слова и "лифт" и "Планерная", например:  
**лифт; Планерная - в сообщении должны&nbsp;быть слова и "лифт" и "Планерная", например:  
***Неисправность лифта, ул. Первая&nbsp; - нет  
***"Неисправность лифта, ул. Первая"&nbsp; - нет  
***Неисправность '''лифта''', ул. '''Планерная '''- удовлетворяет правилу&nbsp;     
***"Неисправность '''лифта''', ул. '''Планерная'''"'''&nbsp;'''- удовлетворяет правилу&nbsp;     
*Получатель сообщения - телефон (11 цифр), E-mail адрес или другой идентификатор устройства&nbsp;&nbsp;в заивисимости от выбранного Провайдера (подробнее см. далее в описании работы конкретного провайдера)  
*Получатель сообщения - телефон (11 цифр), E-mail адрес или другой идентификатор устройства&nbsp;&nbsp;в заивисимости от выбранного Провайдера<br/> (подробнее см. далее в описании работы конкретного провайдера)  
**если Получатель не указан (пустой) - сообщение будет отброшено (проигнорировано)   
**если Получатель не указан (пустой) - сообщение будет отброшено (проигнорировано)   
*Тип сигнала - тип сигнала, сформировавшего сообщение  
*Тип сигнала - тип сигнала, сформировавшего сообщение  
Строка 129: Строка 128:
*Отключить&nbsp;&nbsp;правило&nbsp; - игнорировать правило (правило не удаляется, но не участвует в обработке)  
*Отключить&nbsp;&nbsp;правило&nbsp; - игнорировать правило (правило не удаляется, но не участвует в обработке)  


'''Внимание! Важно!'''<br/> Будьте внимательны при создании правила&nbsp;'''для сигналов типа Статус''' (особенно при платной отправке SMS-сообщений).<br/> Т.к. в случае выхода из строя, например: USB-пульта сообщение "Нет связи" будет сформировано также для всех подключенных к USB-Пульту концентраторов.<br/> Обратите внимание, что в сообщении "Нет связи", например:&nbsp; "00:43 АВАР.[КУН-IP8 - 0]: Нет связи, ул. Первая д.1"&nbsp; - в квадратных скобках указывается тип устройства (из адресного пространства ОРС-сервера), с которым отсутствует связь, что можно использовать при настройке поля "Сообщение" в правиле обработки сообщений. Кроме того, "Нет связи" будет сформировано при запуске Конфигуратора ОРС-сервера без предварительной закрытия программы АСУД.SCADA&nbsp;
'''Внимание! Важно!'''<br/> Будьте внимательны при создании правила&nbsp;'''для сигналов типа Статус''' (особенно при платной отправке SMS-сообщений).<br/> Т.к. в случае выхода из строя, например: USB-пульта сообщение "Нет связи" будет сформировано также для всех подключенных к USB-Пульту концентраторов.<br/> Обратите внимание, что в сообщении "Нет связи", например:&nbsp; "00:43 АВАР.[КУН-IP8 - 0]: Нет связи, ул. Первая д.1"&nbsp; - в квадратных скобках указывается тип устройства (из адресного пространства ОРС-сервера), с которым отсутствует связь, что можно использовать при настройке поля "Сообщение" в правиле обработки сообщений.<br/> Кроме того, "Нет связи" будет сформировано при запуске Конфигуратора ОРС-сервера без предварительной закрытия программы SCADA&nbsp;


== Порядок обработки входящих сообщений ==
== Порядок обработки входящих сообщений ==


Входящие сообщения обрабытываются в следующей последовательности&nbsp;
Входящие сообщения обрабатываются в следующей последовательности&nbsp;


*Если сообщение удовлетворяет фильтру - ''дальнейшая проверка прекращается''.  
*Если сообщение удовлетворяет фильтру - ''дальнейшая проверка прекращается''.  
*Если сообщение удовлетворяет фильтру, но Получатель сообщения в правиле не указан (пустой)&nbsp;- ''сообщение будет отброшено''.  
*Если сообщение удовлетворяет фильтру, но Получатель сообщения в правиле не указан (пустой)&nbsp;- ''сообщение будет отброшено''.  
*Если сообщение не удовлетворяет ни одному из филтров - ''сообщение будет отброшено''.  
*Если сообщение не удовлетворяет ни одному из фильтров - ''сообщение будет отброшено''.  


Созданные фильтры обрабатываются последовательно (вы можете поменять порядок следования, выбрав фильтр&nbsp;и, нажав правой кнопкой мыши).
Созданные фильтры обрабатываются последовательно (вы можете поменять порядок следования, выбрав фильтр&nbsp;и, нажав правой кнопкой мыши).


Сообщение, которое удовлетвеоряет хотя бы одному фильтру,&nbsp;сразу отправляется выбранному провайдеру для передачи.&nbsp;
Сообщение, которое удовлетворяет хотя бы одному фильтру,&nbsp;сразу отправляется выбранному провайдеру для передачи.&nbsp;


Как правило,&nbsp;&nbsp;один сигнал - формирует одно сообщение (например: одно событие&nbsp; - одна SMS).
Как правило,&nbsp; один сигнал - формирует одно сообщение, например: одно событие&nbsp; - одна SMS.


Для некоторых провайдеров, например: E-mail, сообщения&nbsp;могут объединяться в группы при отправке.&nbsp;<br/> Группа формируется из последовательно возникших сообщений в течение времения 5 с (интервал может быть изменен в конфигурационном файле settings/smsterminal.conf, параметр SleepTimeBeforeSend).
Для некоторых провайдеров, например: E-mail, сообщения&nbsp;могут объединяться в группы при отправке.&nbsp;<br/> Группа формируется из последовательно возникших сообщений в течение времени 5 с<br/> (интервал может быть изменен в конфигурационном файле settings/smsterminal.conf, параметр SleepTimeBeforeSend).


Если при отправке сообщения провайдер не доступен: нет связи (подключения), программа&nbsp;&nbsp;повторит отправку сообщения 10&nbsp;раз&nbsp;через каждые 30 секунд.<br/> Если провайдер продолжит быть недоступным, сообщение будет отброшено.&nbsp;
Если при отправке сообщения провайдер получил ошибку - сообщение будет отброшено.<br/> Если при отправке сообщения провайдер не доступен (точнее не доступен сервис, с которым работает провайдер): нет связи (подключения), проблемы с сетью и т.п., то&nbsp;программа&nbsp;&nbsp;повторит отправку сообщения до 10&nbsp;раз&nbsp;через каждые 30 секунд. Если провайдер продолжит быть недоступным, сообщение будет отброшено.&nbsp;


== Провайдеры передачи сообщений ==
Ошибки отправки сообщений фиксируются в оперативном журнале событий SCADA.


[[File:Smsterminal oper error.PNG|center|Smsterminal oper error.PNG]]


== Провайдеры передачи сообщений ==


=== Текстовый файл ===
=== Текстовый файл ===
Строка 164: Строка 165:


*валидный мобильный номер (11 цифр, например: 79011234567),  
*валидный мобильный номер (11 цифр, например: 79011234567),  
*или валидный адрес email (например: mail@mail.com)
*или валидный адрес email (например: mail@mail.com)  


=== АТ-SMS модем&nbsp; ===
=== Email ===


Отправка SMS-сообщений через USB-модем с поддержкой АТ-команд (см. документацию на модем)
Отправка сообщений электронной почты через корпоративный или бесплатный Почтовый сервер.


Провайдер обрабатывает по 1&nbsp;сообщению.
Провайдер обрабатывает сообщения группами по 10 сообщений.


Для настройки USB-модема, следует нажать кнопкку Настроить.
В качестве бесплатного Почтового сервера, вы можете использовать например&nbsp;[http://www.mail.ru http://www.mail.ru]&nbsp; Параметры настройки см. [https://help.mail.ru/mail-help/mailer/popsmtp здесь]&nbsp;


Пример настройки модемов марки ZTE см. в статье&nbsp;[[SMS-уведомления|SMS-уведомления]]
[[File:SCADASMS EM.PNG|center|350px|SCADASMS EM.PNG]]
 
Если почтовый сервер mail.ru не позволяет отправлять сообщения на ваш e-mail, вы можете создать почтовый ящий на самом сервисе и отправлять сообщения на него.
 
Вы можете проверить корректность настройки, отправив тестовое сообщение, указав его получателя и текст.


Если ваш модем не поддерживает AT-команды, свяжитесь с тех. поддержкой Текон-автоматики для решения вопроса о поддержке вашего модема.
Адрес получателя сообщений в рабочем режиме будет указываться при формировании Правил обработки сообщений.


=== SMSЦентр SMS ===
=== HTTP(S) JSON ===
Провайдер позволяет отправлять&nbsp;уведомления на сторонний WEB-сервер по протоколу HTTP(S).&nbsp;


Отправка SMS-сообщений через сервис-провайдера&nbsp;[https://www.smsc.ru https://www.smsc.ru]
Провайдер обрабатывает сообщения группами по 10&nbsp;сообщений.


Требуется подключение к Интернету.&nbsp; Отправка сообщений - платная (тарифы на отправку см. на сайте сервис-провайдера).
Сообщение отправляются в формате JSON.


Для настройки требуется предварительная регистрация на сайте сервис-провайдера.
[[File:Smsterminal msg http.PNG|center|Smsterminal msg http.PNG]]


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


Провайдер обрабатывает по 1&nbsp;сообщению.
*Адрес сервера - URL-адрес, на который будет отправлено&nbsp;JSON-сообщение
*Заголовок - произвольный идентификатор, который будет указан в JSON-сообщении


=== SMSЦентр Email ===
Вы можете отправить на сервер полный адресный список точек диспетчеризации. Для этого следует нажать кнопку Отправить адресный список.&nbsp;


Отправка сообщений электронной почты&nbsp;через сервис-провайдера&nbsp;[https://www.smsc.ru https://www.smsc.ru]
Для отправки тестового сообщения на сервер - нажмите Отправить.


Требуется подключение к Интернету.&nbsp; Отправка сообщений - платная (тарифы на отправку см. на сайте сервис-провайдера).
При настройке правил&nbsp;фильтров сообщений, следует в поле Получитель указывать none.


Для настройки требуется предварительная регистрация на сайте сервис-провайдера. А также существующий адрес электронной почты, от имени которого будет осуществляться отправка сервисных сообщений.
[[File:Smsterminal msg none.PNG|center|Smsterminal msg none.PNG]]


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


Провайдер обрабатывает сообщения группами по 10&nbsp;сообщений.
1. Адресный список точек диспетчеризации&nbsp;
<pre>{
"ObjectID":"SCADA", 
"Points":
[{
"ItemID":"DA.[localhost{188D08EC-72CB-425B-8EA8-EE2308736440}].КУН-IP8 - 0.DiscretChannel06",
"ItemType":3000,
"JournalName":"Корпус устройства",
"JournalCategory":"Охрана",
"Address":"777"
}]
}</pre>


где:&nbsp;


*ObjectID -&nbsp;заголовок (id-объекта)
*Points -&nbsp; массив точек диспетчеризации&nbsp;
*ItemID - ID точки диспетчеризации&nbsp;
*ItemType - тип точки учета (обратитесь в тех.поддержку за разъяснениями)
*JournalName - название сигнала
*JournalCategory - категория сигнала
*Address - адрес точки диспетчеризации&nbsp;


=== Email ===
2. Информационное сообщение
<pre>{
"ObjectID":"SCADA",
"Messages":
[{
"ItemID":"DA.[localhost{188D08EC-72CB-425B-8EA8-EE2308736440}].КУН-IP8 - 0.DiscretChannel06",
"Time":"11.01.22 17:30",
"Address":" 777",
"Event":"АВАР.",
"JournalName":" Корпус устройства"
}]
}</pre>


Отправка сообщений электронной почты&nbsp;через корпоративный или бесплатный&nbsp;&nbsp;Почтовый сервер.
где:&nbsp;


Провайдер обрабатывает сообщения группами по 10&nbsp;сообщений.
*ObjectID -&nbsp;заголовок (id-объекта)
*Messages&nbsp;-&nbsp; массив сообщений  
*ItemID - ID точки диспетчеризации&nbsp;
*Time - время события
*Address - адрес точки диспетчеризации&nbsp;
*Event - событие
*JournalName -&nbsp;название сигнала


В качестве бесплатного Почтового сервера, вы можете использовать например&nbsp;[http://www.mail.ru http://www.mail.ru]&nbsp; Параметры настройки см. [https://help.mail.ru/mail-help/mailer/popsmtp здесь]&nbsp;
3. Тестовое сообщение
<pre>{
"ObjectID":"SCADA",
"Test":"Test message Тестовое сообщение 11.01.2022 17:33:37"
}</pre>


[[File:SCADASMS EM.PNG|center|350px|SCADASMS EM.PNG]]
=== Telegram ===
<pre>АСУД.SCADA 2.7.20.2
+ Коррекция работы /lift
АСУД.SCADA 2.7.19
+ Не отображался ID группы, при настройке бота для работы с групой / каналом
АСУД.SCADA 2.7.18
+ BotAPI версия 1.3
АСУД.SCADA 2.7.17 (upd 1)
+ BotAPI версия 1.2
+ сообщение о запуске / останове SCADA
+ дополнительная справочная информация
АСУД.SCADA 2.7.16
+ BotAPI версия 1.1
+ отображение любого вида карты
+ возможность отображения состояния сигналов в группе
АСУД.SCADA 2.7.15
+ возможность отправлять сообщения боту добавленному в группу, канал
+ поддержка команд пользователя
Доступно с версии АСУД.SCADA 2.7.14 (для Windows 8/10)</pre>


&nbsp;
Провайдер позволяет отправлять&nbsp;уведомления в созданный вами Telegram Bot.


Если почтовый сервер mail.ru не позволяет отправлять сообщения на ваш e-mail, вы можете создать почтовый ящий на самом сервисе и отправлять сообщения на него.
Предполагается, что&nbsp;[[АРМ-диспетчера|АРМ-диспетчера]]&nbsp;подключен к сети Интернет.


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


Адрес получателя сообщений в рабочем режиме будет указываться при формировании Правил обработки сообщений.
Предварительно вы должны создать&nbsp;Telegram Bot, в который будут приходить сообщения.


==== Создание Бота ====


=== Pushover ===
Для создания бота выполните следующие шаги:


[https://pushover.net Pushover ]&nbsp;позволяет легко получать PUSH-уведомления в режиме реального времени на Android, iPhone, iPad и ПК (Android Wear и Apple Watch).&nbsp;
*Запустите новый чат с ботом&nbsp;[https://t.me/botfather @BotFather]&nbsp;в Telegram
*Отправьте команду&nbsp;[https://github.com/GabrielTrigo/telegram-bot-delphi/blob/main /newbot]
*Выберите название вашего бота, которые будет отображаться в заголовке чата (непринципиально какое)  
*Выберите уникальное имя бота,&nbsp;&nbsp;оно должно оканчиваться на "_bot", например: ods12345_bot
*Скопируйте уникальный идентификатор созданного бота, который следует указать в настройках далее


Провайдер обрабатывает сообщения группами по 10&nbsp;сообщений.
Идентификатор бота выглядит следующим образом:
<pre>НаборЧисел&nbsp;: БуквенноЦифроваяКомбинация</pre>


Требуется подключение АРМ к Интернету.&nbsp; Требуется установка приложения на мобильный телефон или ПК.&nbsp;
В версии 2.7.14&nbsp; бот имел следующие ограничения:&nbsp;


Вы можете воспользоваться бесплатным тестовым 7-дневным периодом после [https://pushover.net регистрации на сайте].&nbsp;&nbsp;
*взаимодействует только с одним пользователем
*не обрабатывает команды пользователя, а только отправляет сообщения
*не поддерживается работа бота в канале / группе


По окончании тестового периода, плата за пользование приложением составляет -&nbsp;[https://pushover.net/pricing 5$ (единовоременно,&nbsp; Individual pricing)]. Число отправляемых PUSH-уведомлений&nbsp;- до 7500 в месяц.
Замечания:


После регистарации вы получите&nbsp;Pushover user key&nbsp; (UserToken). Также вам будет предложено задать имя вашего устройства&nbsp; - можете указать любое.&nbsp;
*По-умолчанию боты в Telegram являются публичными, т.е. найти созданный вами бот по имени сможет любой пользователь Telegram.<br/> Однако взаимодействовать бот будет только с пользователем, идентификатор которого вы укажите в настройках
*Если количество сообщений, которые будет формироваться [[АРМ-диспетчера|АРМ-диспетчера]]&nbsp;небольшое,&nbsp;вы можете использовать одного бота на нескольких [[АРМ-диспетчера|АРМ-диспетчера]], или создавать отдельного бота для каждого&nbsp;[[АРМ-диспетчера|АРМ-диспетчера]]
**Telegram ограничивает число отправляемых ботом пользователю&nbsp;сообщений: не более 1-го сообщения в секунду. 


Далее следует в личном кабине сформировать (бесплатно)&nbsp; новое приложение (API Token). Если вы настраиваете несколько АРМ SCADA, вы можете использовать для них один и тот же API Token.
==== Настройка провайдера ====


Указанные регистрационные данные внести в окно настройки провайдера&nbsp;
После создания бота, добавьте его в Telegram на устройстве пользователя, который&nbsp;будет&nbsp;получать сообщения.


[[File:Pushover.PNG|center|350px|Pushover.PNG]]
Если вы хотите чтобы сообщения получали несколько&nbsp; пользователей, вам следует:


*AppToken - API Token
*создать канал или группу
*UserToken -&nbsp;Pushover user key
*добавить туда пользователей
*Заголовок&nbsp; - Заголовок сообщений, отпавляемых через провайдера
*добавить туда созданного бота&nbsp;  
*дать&nbsp;боту права на чтение сообщений в&nbsp;группе/чате, если хотите, чтобы бот отвечал на команды.


Остаток сообщений - это число сообщений, которое может быть отправлено с данным AppToken до конца текущего месяца.&nbsp;
Для этого в&nbsp;меню BotFather выбираем /edit your bots (если ботов несколько, выбираем нужный), выбираем Bot Settings&nbsp;/ Group Privacy, выбираем Отключить. После этого в свойствах бота в группе будет указано:
<pre>ИмяБота
имеет доступ к сообщениям</pre>


Если вы хотите, чтобы уведомления получали два (или более) человека одновременного, следует создать Группу в настройках личного кабинета на сайте. И в качестве UserToken - указывать идентификатор созданной группы.
Далее откройте окно настроек провайдера Telegram в SCADA


'''Особенности настройки правил при использовании провайдера Pushover'''
[[File:Sms telegram.PNG|center|350px|Sms telegram.PNG]]В окне настройки провайдера следует указать:


В поле "Получатель"&nbsp;сообщения при настройке фильтров сообщений&nbsp;следует указывать none - тогда сообщение будет доставлено на все зарегистрированные устройства пользователя / группы.
*BotID - идентификатор бота, полученный при регистрации&nbsp;  
*UserID - идентификатор пользователя, которому будут приходить сообщения
**если это одиночный пользователь - его ID это положительное число
**если это группа / канал - ID отрицательное число.  
*Заголовок - произвольный идентификатор диспетчерской (не обязательный), который будет указан в отправляемых пользователю сообщениях


Или указывать устройства через запятую, например:&nbsp; &nbsp;iphone1, nexus, andr17
Проверить правильность указания BotID, можно нажав, Проверить.


[[File:Smsterminal msg none.PNG|center]]
В случае если все указано правильно, вы увидите примерно следующее сообщение.


=== Таблицы Google ===
[[File:Sms telegram bot1.PNG|center|upright|Sms telegram bot1.PNG]]


Позволяет записывать сообщения в указанную таблицу Google.
Далее,&nbsp;для того чтобы определить идентификатор пользователя (группы или канала), пользователь должен отправить боту сообщение с текстом MyID. После этого следует нажать кнопку Узнать.


Провайдер обрабатывает сообщения группами по 10&nbsp;сообщений.
После указания идентификатора,&nbsp; для отправки тестового сообщения пользователю (группе / каналу) - нажмите Отправить.


Сообщения&nbsp;будут просто дописываться в новые&nbsp;строки указанной таблицы.
При настройке правил&nbsp;фильтров сообщений, следует в поле Получатель указывать none.


Не требуется никакой оплаты (в случае если число сообщений не превышает установленный лимит сообщений&nbsp;указанный далее).
[[File:Smsterminal msg none.PNG|center|350px|Smsterminal msg none.PNG]]


&nbsp;
&nbsp;


==== Настройка таблицы Google ====
==== Команды пользователя ====
 
При работающей SCADA,&nbsp;&nbsp;Telegram bot способен отвечать на команды пользователя.
 
Для отправки команды, следует написать команду после символа /, например:&nbsp;
<pre>/help</pre>
 
Поддерживаются следующие команды:&nbsp;
 
BOT версия 1.3&nbsp;список команд:<br/> /help - справка<br/> /date - текущая дата<br/> /db_info&nbsp;- информация о числе приборов учета с проблемами в опросе&nbsp;(подробнее см. далее)<br/> /db_kir&nbsp;- отображение числа импульсов по каналам [[КИР-16_исп._TL-RS|КИР&nbsp;&nbsp;]](подробнее см. далее)<br/> /db_pu - информация о показаниях указанного прибора учета<br/> /info - информация о SCADA<br/> /j_alert - активные сигналы<br/> /j_alert_all - события сегодня<br/> /j_kio - информация о состоянии подключенных КИО<br/> /j_kunip - информация о состоянии подключенных концентраторов КУН-IP<br/> /j_soft -&nbsp; информация о запуске программы&nbsp;SCADA<br/> /j_voice - журнал переговоров диспетчера<br/> /j_voice_rec&nbsp;- записи&nbsp;переговоров диспетчера<br/> /lift - информация о состоянии лифта<br/> /group - отображение значения сигналов группы&nbsp;(подробнее см. далее)<br/> /ping - ping указанного IP со стороны АРМ-диспетчера<br/> /screenshot - изображение текущего активного&nbsp;экрана диспетчера<br/> /screen - изображение выбранного вида из иерархии видов карты (подробнее см. далее)
 
Вы можете получить дополнительную справочную информацию по команде, введя&nbsp;
<pre>/help команда
, например:
/help lift
</pre>
 
'''Замечание''':<br/> если боту разрешено чтение всех сообщений в чате / группе, вы можете писать команду не адресуя ее боту, т.е. писать просто: /help<br/> в противном случае следует писать команду и имя бота, например: /help @mybot
 
==== Команда DB_INFO ====
 
Команда активна, если на объекте осуществляется опрос приборов учета.&nbsp;


Для возможности работы с провайдером следует:&nbsp;
Команда отображает данные о числе приборов учета с оценкой опроса&nbsp; = 0.
<pre>/db_info</pre>


*Создать учетную запись электронной почты&nbsp;на Gmail (если отсутствует).
==== Команда DB_PU ====
*Зайти&nbsp;под аккаунтом Gmail на&nbsp;[https://console.developers.google.com/project Google Developers Console] и создать&nbsp;новый проект (с любым названием).
*Слева вверху выберать&nbsp;раздел меню API и сервисы.
*Включить для проекта&nbsp; Drive API и Sheets API (Меню API и сервисы \ Библиотека).
*Создать сервисный аккаунт и сохранить сервисный ключ.
*Создать&nbsp;[https://drive.google.com таблицу Google].
*Разрешить сервисному аккаунту доступ к таблице.


[[File:Google api5.PNG|center|200px|Google api5.PNG]]
Команда активна, если на объекте осуществляется опрос приборов учета.&nbsp;


&nbsp;
Команда отображает последние показания прибора учета с указанным серийным номером.
<pre>/db_pu 5678 или /db_pu5678</pre>
 
Вы можете вводить серийный номер полностью или только последние цифры


[[File:Google api1.PNG|center|450px|Google api1.PNG]]Название сервсисного аккаунта укажите любое, тип ключа - JSON.
==== Команда DB_KIR ====


[[File:Google api2.PNG|center|450px|Google api2.PNG]]
Команда активна, если на объекте осуществляется опрос приборов учета.&nbsp;


Выберите роль - Владелец.<br/> [[File:Google api3.PNG|center|450px|Google api3.PNG]]
Команда отображает&nbsp;число&nbsp;импульсов по каналам указанного&nbsp;[[КИР-16_исп._TL-RS|КИР]]


Создайте сервисный аккаунт,&nbsp; нажмите&nbsp;Создать и&nbsp;и сохраните ключ в папке ..\Scada\settings
Команда имеет смысл для КИР, работающий по RS-интерфейсу, т.к. способна выполнять приоритетный опрос указанного КИР вне очередности.&nbsp;&nbsp;


Ключ необходимо переименовать в файл ..\Scada\settings\'''gsheet.json'''
Команда может быть удобна при выполнении пуско-наладочных работ, при проливики приборов учета.
<pre>/db_kir901 или /db_kir 901</pre>


Далее создаем новую&nbsp;[https://drive.google.com таблицу Google], содержащую один&nbsp;или несколько листов.
где 901 - номер концентратора в БД.


[[File:Google api4.PNG|center|450px|Google api4.PNG]]
В ответ вы получите до 5 уведомлений с интервалом в 30 с. об измении состояния имп. входов концентратора.&nbsp;


Имя файла таблицы может быть любым. В примере указано: ASUDTable
==== Команда J_VIOCE_REC ====


Необходимо запомнить:&nbsp;
Команда позволяет прослушать выбранный файл переговоров диспетчера за текущий сутки.


*идентификатор таблицы (SheetId), который выделен в адресной строке;
Следует обратить внимание, что Telegram может корректно проигрывать файлы следующих типов:
*имя листа, в который будет записываься данные.
*добавить в первой строке таблицы названия колонок, как указано выше


Далее необходимо нажать кнопку Настройки доступа
*несжатый wav
*mp3


[[File:Google api6.PNG|center|300px|Google api6.PNG]]
По-умолчанию, SCADA использует кодек gsm-wav.


И добавить адрес электронной почты сервисного аккаунта к списку разршенных людей (сняв галочку "Оповестить пользователей")
Если вы планируете использовать данный функционал, настройте в SCADA (в меню Сервис \ Настройки \ Журналы \ Журнал ПГС) использование кодека, например: mp3.


[[File:Google api7.PNG|center|350px|Google api7.PNG]]
==== Команда GROUP ====


&nbsp;
Для распределения сигналов по группам (и в дальнейшем использовании команды /group) следует предварительно создаться список групп в конфигурационном файле&nbsp;


&nbsp;
settings /&nbsp;telegram_group.ini&nbsp;


==== Настройка провайдера ====
Файл следует перенести в папку&nbsp; settings&nbsp; из&nbsp;папки settings / templ


В окне настройки провайдера следует указать идентификатор таблицы и название листа.
Пример файла (кодировка ANSI):&nbsp;
<pre>[Вызовы]
DA.[localhost{...}].КУН-IP8 - 0.VoiceChannel01=
DA.[localhost{...}].КУН-IP8 - 0.Temperature01=
[Двери]
DA.[localhost{...}].КУН-IP8 - 0.DiscretChannel01=
[Лифты]
DA.[localhost{...}].КУН-IP8 - 0.КСЛ-RS - 0.Лифт - 0.LiftChannel=</pre>


[[File:Google api8.PNG|center|450px|Google api8.PNG]]Для проверки корректности ввода параметров, можно отправить Тестовое сообщение - просто нажмите кнопку Отправить.&nbsp; Если все данные введны правильно, вы получите сообщение "Успешно отправлено", а в таблицу будет добавлена строка со значениями в четырых столбцах&nbsp;&nbsp;А1, B1, C1, D1
В скобках указывается название группы, далее перечень сигналов, оканчивающихся знаком (=)<br/> Число групп не ограничено, число сигналов в группе не ограничено.<br/> Конфигурационный файл перечитывается при запуске программы SCADA.


Пример отображения данных в таблице приведен ниже.
==== Команда SCREEN ====


[[File:Google api9.PNG|center|450px|Google api9.PNG]]
Следует отметить, что при выполнении команды на экране АРМ будет открыт выбранный подвид.<br/> Поэтому команду логично использовать на АРМ, за которым в данный момент не находится диспетчер.&nbsp;


&nbsp;
=== VKМессенджер ===
<pre>Доступно с версии:
АСУД.SCADA 3.0.3
АСУД.SCADA 2.7.21.5</pre>


'''Особенности настройки правил при использовании провайдера&nbsp;'''
Провайдер позволяет отправлять уведомления в созданное вами VK-сообщество.


В поле "Получатель"&nbsp;сообщения при настройке фильтров сообщений&nbsp;следует указывать '''none.'''
Предполагается, что [[АРМ-диспетчера]]&nbsp;подключен к сети Интернет.


&nbsp;
Провайдер обрабатывает сообщения группами.


Провайдер для полноценной работы требует наличия [[Драйвер EXT-модуля|EXT-2 драйверов]]:


==== Ограничения ====
* 2 (два) для версий АСУД.SCADA 3.x
* 5 (пять) для версий АСУД.SCADA 2.x


Существующие ограничения:&nbsp; max 100 запросов к Google API за 100 секунд для проекта.
Предварительно вы должны создать в своем VK-аккаунте VK-сообщество (Сообщество), в которое будут приходить сообщения.


Вы можете использовать один и тот же сервисный ключ (файл settings\gsheet.json)&nbsp;на нескольких АРМ (указывая при это в настроках провайдера - разные таблицы или разные листы одной таблицы).
Поддерживается, как отправка сообщений в Сообщество, так и управляющие команды от пользователя (Подписчика), аналогичные тем, что реализованы в Telegram (см. выше)


Однако если число сообщений велико и вы превышаете бесплатный лимит,&nbsp;&nbsp;то вам может потребоваться создавать отдельный проект под каждый АРМ.
Если у вас ранее был настроен Telegram, просто поменяйте тип провайдера на VK.


==== Создание VK-сообщества ====


Для создания сообщества следует выполнить следующие шаги:


=== HTTP(S) JSON ===
* зайти на свою страницу VK
* слева выбрать Сообщества, справа - Создать сообщество
* ввести любое название сообщества, выбрать тип - закрытое сообщество


Провайдер позволяет отправлять&nbsp;уведомления на сторонний WEB-сервер по протоколу HTTP(S).&nbsp;
После создания посмотреть идентификатор сообщества


Провайдер обрабатывает сообщения группами по 10&nbsp;сообщений.
Для этого на странице сообщества выбрать Подробная информация
[[Файл:Vk group 1.png|центр|безрамки|450x450пкс]]


Сообщение отправляются в формате JSON.


[[File:Smsterminal msg http.PNG|center|350px]]


В окне настройки провайдера следует указать:
Идентификатор сообщества имеет вид: clubХХХХХХХХ, из него нам потребуется только цифры ХХХХХХХХ (скопировать их в блокнот).


*Адрес сервера - URL-адрес, на который будет отправлено&nbsp;JSON-сообщение
Идентификатор сообщества также отображается в адресной стройке браузера на странице Сообщества
*Заголовок - произвольный идентификатор, который будет указан в JSON-сообщении


Вы можете отправить на сервер полный адресный список точек диспетчеризации. Для этого следует нажать кнопку Отправить адресный список.&nbsp;
Далее перейти в настройки Сообщества,  выбрав справа Управление
[[Файл:Vk group 2.png|центр|безрамки|450x450пкс]]
Разрешить сообщения для Сообщества
[[Файл:Vk group 3.png|центр|безрамки|450x450пкс]]
В разделе Подписчики, добавить других пользователей, которые будут получать уведомления. Например, пригласить по ссылке
[[Файл:Vk group 4.png|центр|безрамки|450x450пкс]]
Если вы хотите, чтобы уведомления получали только вы один, следует убедиться что в Подписчиках сообщества значитесь Вы. Никого добавлять более не надо.


Для отправки тестового сообщения на сервер - нажмите Отправить.
Для того, чтобы Сообщество могло отправлять сообщения пользователю, '''пользователь должен сам (первым) написать''' любое сообщение сообществу.  


При настройке правил&nbsp;фильтров сообщений, следует в поле Получитель указывать none.
Это должны сделать вы и каждый из подписчиков.


[[File:Smsterminal msg none.PNG|center]]
Далее следует сформировать ключи для взаимодействия с Сообществом. Для этого снова перейти  в управление Сообществом.
[[Файл:Vk group 5.png|центр|безрамки|450x450пкс]]
Нажмите Создать ключ. И выберите следующие разрешения
[[Файл:Vk group 6.png|центр|безрамки|450x450пкс]]
Скопируйте созданный ключ в блокнот.


Примеры JSON-сообщений
==== Настройка провайдера ====
Запускаем SCADA, главное меню Сервис / Настройки, Журналы / SMS-уведомления, VK.
[[Файл:Vk scada 1.png|центр|безрамки|450x450пкс]]
Следует скопировать в окно настройки:


1. Адресный список точек диспетчеризации&nbsp;
* Созданный ключ сообщества
<pre>{
* Идентификатор сообщества
"ObjectID":"SCADA", 
"Points":
[{
"ItemID":"DA.[localhost{188D08EC-72CB-425B-8EA8-EE2308736440}].КУН-IP8 - 0.DiscretChannel06",
"ItemType":3000,
"JournalName":"Корпус устройства",
"JournalCategory":"Охрана",
"Address":"777"
}]
}</pre>


где:&nbsp;
Далее следует нажать Обновить, для проверки корректности настроек и получения списка Подписчиков.


*ObjectID -&nbsp;заголовок (id-объекта)  
Если все было сделано правильно, в поле Подписчики  отобразятся идентификаторы Подписчиков сообщества (одного или нескольких).
*Points -&nbsp; массив точек диспетчеризации&nbsp;
*ItemID - ID точки диспетчеризации&nbsp;
*ItemType - тип точки учета (обратитесь в тех.поддержку за разъяснениями)
*JournalName - название сигнала
*JournalCategory - категория сигнала
*Address - адрес точки диспетчеризации&nbsp;


2. Информационное сообщение
Заголовок - произвольный идентификатор диспетчерской (не обязательный), который будет указан в отправляемых пользователю сообщениях
<pre>{
"ObjectID":"SCADA",
"Messages":
[{
"ItemID":"DA.[localhost{188D08EC-72CB-425B-8EA8-EE2308736440}].КУН-IP8 - 0.DiscretChannel06",
"Time":"11.01.22 17:30",
"Address":" 777",
"Event":"АВАР.",
"JournalName":" Корпус устройства"
}]
}</pre>


где:&nbsp;
Проверьте количество доступных EXT-2 драйверов, нажав кнопку Проверить.


*ObjectID -&nbsp;заголовок (id-объекта)  
Для отправки тестового сообщения в Сообщество (получат все Подписчики) - нажмите Отправить.
*Messages&nbsp;-&nbsp; массив сообщений
*ItemID - ID точки диспетчеризации&nbsp;
*Time - время события
*Address - адрес точки диспетчеризации&nbsp;
*Event - событие
*JournalName -&nbsp;название сигнала


3. Тестовое сообщение
Если число драйверов EXT-2 достаточно, Сообщество получит сообщение:
<pre>{
Test message Тестовое сообщение
"ObjectID":"SCADA",
Иначе:
"Test":"Test message Тестовое сообщение 11.01.2022 17:33:37"
Не хватает драйверов EXT-2
}</pre>
При настройке правил фильтров сообщений, следует в поле Получатель указывать none.


[[File:Smsterminal msg none.PNG|center|350px|Smsterminal msg none.PNG]]Для просмотра списка доступных команд наберите в чате Сообщества в VKМессенджере
/help
(подробнее см. описание Telegram).
Примеры сообщений
[[Файл:Vk group message.png|центр|461x461пкс|Smsterminal msg none.PNG]]
[[Category:SCADA]]
[[Category:SCADA]]

Текущая версия от 08:19, 1 апреля 2026

Введение

Модуль позволяет отправлять сообщения, формируемые примитивами на ситуационном плане SCADA, и фиксируемые Журналом событий АСУД.SCADA, выбранному сервис-провайдеру. Если сервис-провайдер отсутствует в описании ниже, см. предыдущую версию статьи

Сообщения формируются Примитивами SCADA, передаются в Журнал событий SCADA, а также в модуль SMS-уведомлений для их последующей пересылки с помощью выбранного сервис-провайдера

Примитив --->>  Cообщение  ---->>  Журнал Событий
                           ---->>  SMS-уведомления -->> Обработка сервис-провайдером-->> Передача адресату

Внимание! Если в настройках примитива установлена опция "Журнал" - Нет, примитив не будет формировать уведомления.

Для полноценной работы модуля требуется: 

  • наличие подключение к сети Интернет
  • некоторые сервис-провайдеры запрашивают Драйвер EXT-модуля

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

Модуль позволяет отправлять следующие типы сообщений в зависимости от типа исходного сигнала: 

Тип сигнала Тип сообщения Комментарий
Дискретный Авария / Норма сигнал должен быть визуализирован на ситуационном плане 
Числовой Авария / Норма сигнал должен быть визуализирован на ситуационном плане с помощью примитива Цифровой индикатор, LED-индикатор
Управления Включение / Выключение сигнал должен быть визуализирован на ситуационном плане с помощью примитива Канал управления
Переговорной связи Входящий вызов
ВЫЗОВ / ВЫЗОВ.ОК
сигнал должен быть визуализирован на ситуационном плане
(ВЫЗОВ.ОК - завершение вызова с версии 2.7.15)
Статус Нет связи / Норма сигнал должен быть визуализирован на ситуационном плане
Лифт Авария / Норма

доступно с версии 2.7.15

сигнал должен быть визуализирован на ситуационном плане

Служебные Сообщение доступно с версии 2.7.15


Модуль пересылает сообщения указанному получателю в следующем виде: 

  • Для сигнала Статус
    • ДАТА Сигнал[Устройство]: Нет связи, Адрес
  • Для сигнала Лифт
    • ДАТА Сигнал: [Этаж ЭТАЖ код КодНеисправности] Название неисправности, Адрес
  • Для служебных сообщений
    • ДАТА Сигнал: Название события, Адрес ист. Источник события
  • Для прочих сигналов
    • ДАТА Сигнал: Название события, Адрес

Например:

  • 23:29 НОРМА: Двери лифта, ул. Первая д.1
  • 23:30 АВАР.: Лифт, ул. Первая д.2
  • 23:31 АВАР.ЛИФТ: [Этаж 9 код 50987] Привод сообщает об остановке или линия связи CAN, которая не работает, ул. Первая д.1
  • 23:32 НОРМА: Двери машинного помещения, ул. Первая д.2
  • 23:50 ВКЛ.: Освещение подъезда, ул. Первая д.1
  • 00:41 НОРМА[КУН-IP8 - 0]: Нет связи, ул. Первая д.2

Модуль SMS-уведомлений проигнорирует входящее сообщение, если было открыто окно настроек Сервис \ Настройки \ SMS-уведомления SCADA.

Для версий до 2.7.15 будут проигнорированы сообщения, если для устройства в конфигураторе ОРС-сервера не заполнены

  • поле Адрес;
  • поле Журнал событий \ Название события.

С версии 2.7.15 пустое поле Адрес будет заполнено значение имени тега, например: DA.[localhost{...}].КУН-IP8 - 0.КСЛ-RS - 0.Лифт - 0.LiftChannel
Пустое поле Название события будут заменено на ???. 

Настройка модуля 

Для настройки модуля следует перейти в режим настройки и выбрать меню Сервис \ Настройки,   далее  Журналы \ SMS-уведомления

SCADASMS.PNG
SCADASMS.PNG

Далее следует: 

  1. создать один или несколько фильтров (или правил)  обработки входящих сообщений
  2. выбрать Провайдера передачи сообщений

Внимание!

  • Сообщения передаются только на один выбранный провайдер.
  • При смене провайдера - набор правил не удаляется / изменяется.
  • Если провайдер не выбран - сообщения отправляться не будут
  • Должно быть создано минимум 1 правило.

Фильтры обработки сообщений

Для работы модуля следует создать один или несколько фильтров обработки входящих сообщений. 

Для создания фильтра следует выполнить клик правой кнопкой мыши, выбрать Добавить.

Далее настроить фильтр:

  • Название  - просто имя фильтра (желательно уникальное)
  • Сообщение -  шаблон входящего сообщения 
    • символ звездочка * - любое сообщение удовлетворяет фильтру
    • лифт - в сообщении должно быть слово "лифт", например:  
      • "Авария лифта"  - удовлетворяет фильтру
      • "Открытие двери" - нет
    • лифт; Планерная - в сообщении должны быть слова и "лифт" и "Планерная", например:
      • "Неисправность лифта, ул. Первая"  - нет
      • "Неисправность лифта, ул. Планерная" - удовлетворяет правилу 
  • Получатель сообщения - телефон (11 цифр), E-mail адрес или другой идентификатор устройства  в заивисимости от выбранного Провайдера
    (подробнее см. далее в описании работы конкретного провайдера)
    • если Получатель не указан (пустой) - сообщение будет отброшено (проигнорировано)
  • Тип сигнала - тип сигнала, сформировавшего сообщение
  • Уведомить о переходе в Норма - сформировать сообщение при переходе сигнала в нормальное состояние
    • норма - для дискретного сигнала 
    • выкл. - для канала управления
    • На связи - для канала статуса
  • Отключить  правило  - игнорировать правило (правило не удаляется, но не участвует в обработке)

Внимание! Важно!
Будьте внимательны при создании правила для сигналов типа Статус (особенно при платной отправке SMS-сообщений).
Т.к. в случае выхода из строя, например: USB-пульта сообщение "Нет связи" будет сформировано также для всех подключенных к USB-Пульту концентраторов.
Обратите внимание, что в сообщении "Нет связи", например:  "00:43 АВАР.[КУН-IP8 - 0]: Нет связи, ул. Первая д.1"  - в квадратных скобках указывается тип устройства (из адресного пространства ОРС-сервера), с которым отсутствует связь, что можно использовать при настройке поля "Сообщение" в правиле обработки сообщений.
Кроме того, "Нет связи" будет сформировано при запуске Конфигуратора ОРС-сервера без предварительной закрытия программы SCADA 

Порядок обработки входящих сообщений

Входящие сообщения обрабатываются в следующей последовательности 

  • Если сообщение удовлетворяет фильтру - дальнейшая проверка прекращается.
  • Если сообщение удовлетворяет фильтру, но Получатель сообщения в правиле не указан (пустой) - сообщение будет отброшено.
  • Если сообщение не удовлетворяет ни одному из фильтров - сообщение будет отброшено.

Созданные фильтры обрабатываются последовательно (вы можете поменять порядок следования, выбрав фильтр и, нажав правой кнопкой мыши).

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

Как правило,  один сигнал - формирует одно сообщение, например: одно событие  - одна SMS.

Для некоторых провайдеров, например: E-mail, сообщения могут объединяться в группы при отправке. 
Группа формируется из последовательно возникших сообщений в течение времени 5 с
(интервал может быть изменен в конфигурационном файле settings/smsterminal.conf, параметр SleepTimeBeforeSend).

Если при отправке сообщения провайдер получил ошибку - сообщение будет отброшено.
Если при отправке сообщения провайдер не доступен (точнее не доступен сервис, с которым работает провайдер): нет связи (подключения), проблемы с сетью и т.п., то программа  повторит отправку сообщения до 10 раз через каждые 30 секунд. Если провайдер продолжит быть недоступным, сообщение будет отброшено. 

Ошибки отправки сообщений фиксируются в оперативном журнале событий SCADA.

Smsterminal oper error.PNG
Smsterminal oper error.PNG

Провайдеры передачи сообщений

Текстовый файл

Это демонстрационный провайдер. Сообщения просто пишутся в файл log \ smsmessage_DDMMYY.txt

Может быть использован для проверки функционала модуля отправки сообщений.

Провайдер может обрабатывает сообщения группами по 2 сообщения.

Поле Получатель в фильтре сообщений  - должно содержать:

  • валидный мобильный номер (11 цифр, например: 79011234567),
  • или валидный адрес email (например: mail@mail.com)

Email

Отправка сообщений электронной почты через корпоративный или бесплатный Почтовый сервер.

Провайдер обрабатывает сообщения группами по 10 сообщений.

В качестве бесплатного Почтового сервера, вы можете использовать например http://www.mail.ru  Параметры настройки см. здесь 

SCADASMS EM.PNG
SCADASMS EM.PNG

Если почтовый сервер mail.ru не позволяет отправлять сообщения на ваш e-mail, вы можете создать почтовый ящий на самом сервисе и отправлять сообщения на него.

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

Адрес получателя сообщений в рабочем режиме будет указываться при формировании Правил обработки сообщений.

HTTP(S) JSON

Провайдер позволяет отправлять уведомления на сторонний WEB-сервер по протоколу HTTP(S). 

Провайдер обрабатывает сообщения группами по 10 сообщений.

Сообщение отправляются в формате JSON.

Smsterminal msg http.PNG
Smsterminal msg http.PNG

В окне настройки провайдера следует указать:

  • Адрес сервера - URL-адрес, на который будет отправлено JSON-сообщение
  • Заголовок - произвольный идентификатор, который будет указан в JSON-сообщении

Вы можете отправить на сервер полный адресный список точек диспетчеризации. Для этого следует нажать кнопку Отправить адресный список. 

Для отправки тестового сообщения на сервер - нажмите Отправить.

При настройке правил фильтров сообщений, следует в поле Получитель указывать none.

Smsterminal msg none.PNG
Smsterminal msg none.PNG

Примеры JSON-сообщений

1. Адресный список точек диспетчеризации 

{
"ObjectID":"SCADA",   
"Points":
[{
"ItemID":"DA.[localhost{188D08EC-72CB-425B-8EA8-EE2308736440}].КУН-IP8 - 0.DiscretChannel06", 
"ItemType":3000,
"JournalName":"Корпус устройства",
"JournalCategory":"Охрана",
"Address":"777"
}]
}

где: 

  • ObjectID - заголовок (id-объекта)
  • Points -  массив точек диспетчеризации 
  • ItemID - ID точки диспетчеризации 
  • ItemType - тип точки учета (обратитесь в тех.поддержку за разъяснениями)
  • JournalName - название сигнала
  • JournalCategory - категория сигнала
  • Address - адрес точки диспетчеризации 

2. Информационное сообщение

{
"ObjectID":"SCADA",
"Messages":
[{
"ItemID":"DA.[localhost{188D08EC-72CB-425B-8EA8-EE2308736440}].КУН-IP8 - 0.DiscretChannel06",
"Time":"11.01.22 17:30",
"Address":" 777",
"Event":"АВАР.",
"JournalName":" Корпус устройства"
}]
}

где: 

  • ObjectID - заголовок (id-объекта)
  • Messages -  массив сообщений
  • ItemID - ID точки диспетчеризации 
  • Time - время события
  • Address - адрес точки диспетчеризации 
  • Event - событие
  • JournalName - название сигнала

3. Тестовое сообщение

{
"ObjectID":"SCADA",
"Test":"Test message Тестовое сообщение 11.01.2022 17:33:37"
}

Telegram

АСУД.SCADA 2.7.20.2 
+ Коррекция работы /lift
АСУД.SCADA 2.7.19 
+ Не отображался ID группы, при настройке бота для работы с групой / каналом
АСУД.SCADA 2.7.18 
+ BotAPI версия 1.3
АСУД.SCADA 2.7.17 (upd 1)
+ BotAPI версия 1.2 
+ сообщение о запуске / останове SCADA
+ дополнительная справочная информация
АСУД.SCADA 2.7.16
+ BotAPI версия 1.1
+ отображение любого вида карты
+ возможность отображения состояния сигналов в группе
АСУД.SCADA 2.7.15
+ возможность отправлять сообщения боту добавленному в группу, канал
+ поддержка команд пользователя 
Доступно с версии АСУД.SCADA 2.7.14 (для Windows 8/10)

Провайдер позволяет отправлять уведомления в созданный вами Telegram Bot.

Предполагается, что АРМ-диспетчера подключен к сети Интернет.

Провайдер обрабатывает сообщения группами.

Предварительно вы должны создать Telegram Bot, в который будут приходить сообщения.

Создание Бота

Для создания бота выполните следующие шаги:

  • Запустите новый чат с ботом @BotFather в Telegram
  • Отправьте команду /newbot
  • Выберите название вашего бота, которые будет отображаться в заголовке чата (непринципиально какое)
  • Выберите уникальное имя бота,  оно должно оканчиваться на "_bot", например: ods12345_bot
  • Скопируйте уникальный идентификатор созданного бота, который следует указать в настройках далее

Идентификатор бота выглядит следующим образом:

НаборЧисел : БуквенноЦифроваяКомбинация

В версии 2.7.14  бот имел следующие ограничения: 

  • взаимодействует только с одним пользователем
  • не обрабатывает команды пользователя, а только отправляет сообщения
  • не поддерживается работа бота в канале / группе

Замечания:

  • По-умолчанию боты в Telegram являются публичными, т.е. найти созданный вами бот по имени сможет любой пользователь Telegram.
    Однако взаимодействовать бот будет только с пользователем, идентификатор которого вы укажите в настройках
  • Если количество сообщений, которые будет формироваться АРМ-диспетчера небольшое, вы можете использовать одного бота на нескольких АРМ-диспетчера, или создавать отдельного бота для каждого АРМ-диспетчера
    • Telegram ограничивает число отправляемых ботом пользователю сообщений: не более 1-го сообщения в секунду.

Настройка провайдера

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

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

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

Для этого в меню BotFather выбираем /edit your bots (если ботов несколько, выбираем нужный), выбираем Bot Settings / Group Privacy, выбираем Отключить. После этого в свойствах бота в группе будет указано:

ИмяБота
имеет доступ к сообщениям

Далее откройте окно настроек провайдера Telegram в SCADA

Sms telegram.PNG
Sms telegram.PNG

В окне настройки провайдера следует указать:

  • BotID - идентификатор бота, полученный при регистрации 
  • UserID - идентификатор пользователя, которому будут приходить сообщения
    • если это одиночный пользователь - его ID это положительное число
    • если это группа / канал - ID отрицательное число.
  • Заголовок - произвольный идентификатор диспетчерской (не обязательный), который будет указан в отправляемых пользователю сообщениях

Проверить правильность указания BotID, можно нажав, Проверить.

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

Sms telegram bot1.PNG
Sms telegram bot1.PNG

Далее, для того чтобы определить идентификатор пользователя (группы или канала), пользователь должен отправить боту сообщение с текстом MyID. После этого следует нажать кнопку Узнать.

После указания идентификатора,  для отправки тестового сообщения пользователю (группе / каналу) - нажмите Отправить.

При настройке правил фильтров сообщений, следует в поле Получатель указывать none.

Smsterminal msg none.PNG
Smsterminal msg none.PNG

 

Команды пользователя

При работающей SCADA,  Telegram bot способен отвечать на команды пользователя.

Для отправки команды, следует написать команду после символа /, например: 

/help

Поддерживаются следующие команды: 

BOT версия 1.3 список команд:
/help - справка
/date - текущая дата
/db_info - информация о числе приборов учета с проблемами в опросе (подробнее см. далее)
/db_kir - отображение числа импульсов по каналам КИР  (подробнее см. далее)
/db_pu - информация о показаниях указанного прибора учета
/info - информация о SCADA
/j_alert - активные сигналы
/j_alert_all - события сегодня
/j_kio - информация о состоянии подключенных КИО
/j_kunip - информация о состоянии подключенных концентраторов КУН-IP
/j_soft -  информация о запуске программы SCADA
/j_voice - журнал переговоров диспетчера
/j_voice_rec - записи переговоров диспетчера
/lift - информация о состоянии лифта
/group - отображение значения сигналов группы (подробнее см. далее)
/ping - ping указанного IP со стороны АРМ-диспетчера
/screenshot - изображение текущего активного экрана диспетчера
/screen - изображение выбранного вида из иерархии видов карты (подробнее см. далее)

Вы можете получить дополнительную справочную информацию по команде, введя 

/help команда
, например:
/help lift

Замечание:
если боту разрешено чтение всех сообщений в чате / группе, вы можете писать команду не адресуя ее боту, т.е. писать просто: /help
в противном случае следует писать команду и имя бота, например: /help @mybot

Команда DB_INFO

Команда активна, если на объекте осуществляется опрос приборов учета. 

Команда отображает данные о числе приборов учета с оценкой опроса  = 0.

/db_info

Команда DB_PU

Команда активна, если на объекте осуществляется опрос приборов учета. 

Команда отображает последние показания прибора учета с указанным серийным номером.

/db_pu 5678 или /db_pu5678

Вы можете вводить серийный номер полностью или только последние цифры

Команда DB_KIR

Команда активна, если на объекте осуществляется опрос приборов учета. 

Команда отображает число импульсов по каналам указанного КИР

Команда имеет смысл для КИР, работающий по RS-интерфейсу, т.к. способна выполнять приоритетный опрос указанного КИР вне очередности.  

Команда может быть удобна при выполнении пуско-наладочных работ, при проливики приборов учета.

/db_kir901 или /db_kir 901

где 901 - номер концентратора в БД.

В ответ вы получите до 5 уведомлений с интервалом в 30 с. об измении состояния имп. входов концентратора. 

Команда J_VIOCE_REC

Команда позволяет прослушать выбранный файл переговоров диспетчера за текущий сутки.

Следует обратить внимание, что Telegram может корректно проигрывать файлы следующих типов:

  • несжатый wav
  • mp3

По-умолчанию, SCADA использует кодек gsm-wav.

Если вы планируете использовать данный функционал, настройте в SCADA (в меню Сервис \ Настройки \ Журналы \ Журнал ПГС) использование кодека, например: mp3.

Команда GROUP

Для распределения сигналов по группам (и в дальнейшем использовании команды /group) следует предварительно создаться список групп в конфигурационном файле 

settings / telegram_group.ini 

Файл следует перенести в папку  settings  из папки settings / templ

Пример файла (кодировка ANSI): 

[Вызовы]
DA.[localhost{...}].КУН-IP8 - 0.VoiceChannel01=
DA.[localhost{...}].КУН-IP8 - 0.Temperature01=
[Двери]
DA.[localhost{...}].КУН-IP8 - 0.DiscretChannel01=
[Лифты]
DA.[localhost{...}].КУН-IP8 - 0.КСЛ-RS - 0.Лифт - 0.LiftChannel=

В скобках указывается название группы, далее перечень сигналов, оканчивающихся знаком (=)
Число групп не ограничено, число сигналов в группе не ограничено.
Конфигурационный файл перечитывается при запуске программы SCADA.

Команда SCREEN

Следует отметить, что при выполнении команды на экране АРМ будет открыт выбранный подвид.
Поэтому команду логично использовать на АРМ, за которым в данный момент не находится диспетчер. 

VKМессенджер

Доступно с версии:
АСУД.SCADA 3.0.3 
АСУД.SCADA 2.7.21.5

Провайдер позволяет отправлять уведомления в созданное вами VK-сообщество.

Предполагается, что АРМ-диспетчера подключен к сети Интернет.

Провайдер обрабатывает сообщения группами.

Провайдер для полноценной работы требует наличия EXT-2 драйверов:

  • 2 (два) для версий АСУД.SCADA 3.x
  • 5 (пять) для версий АСУД.SCADA 2.x

Предварительно вы должны создать в своем VK-аккаунте VK-сообщество (Сообщество), в которое будут приходить сообщения.

Поддерживается, как отправка сообщений в Сообщество, так и управляющие команды от пользователя (Подписчика), аналогичные тем, что реализованы в Telegram (см. выше)

Если у вас ранее был настроен Telegram, просто поменяйте тип провайдера на VK.

Создание VK-сообщества

Для создания сообщества следует выполнить следующие шаги:

  • зайти на свою страницу VK
  • слева выбрать Сообщества, справа - Создать сообщество
  • ввести любое название сообщества, выбрать тип - закрытое сообщество

После создания посмотреть идентификатор сообщества

Для этого на странице сообщества выбрать Подробная информация


Идентификатор сообщества имеет вид: clubХХХХХХХХ, из него нам потребуется только цифры ХХХХХХХХ (скопировать их в блокнот).

Идентификатор сообщества также отображается в адресной стройке браузера на странице Сообщества

Далее перейти в настройки Сообщества, выбрав справа Управление

Разрешить сообщения для Сообщества

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

Ошибка создания миниатюры: Не удаётся сохранить эскиз по месту назначения

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

Для того, чтобы Сообщество могло отправлять сообщения пользователю, пользователь должен сам (первым) написать любое сообщение сообществу.

Это должны сделать вы и каждый из подписчиков.

Далее следует сформировать ключи для взаимодействия с Сообществом. Для этого снова перейти в управление Сообществом.

Нажмите Создать ключ. И выберите следующие разрешения

Скопируйте созданный ключ в блокнот.

Настройка провайдера

Запускаем SCADA, главное меню Сервис / Настройки, Журналы / SMS-уведомления, VK.

Следует скопировать в окно настройки:

  • Созданный ключ сообщества
  • Идентификатор сообщества

Далее следует нажать Обновить, для проверки корректности настроек и получения списка Подписчиков.

Если все было сделано правильно, в поле Подписчики отобразятся идентификаторы Подписчиков сообщества (одного или нескольких).

Заголовок - произвольный идентификатор диспетчерской (не обязательный), который будет указан в отправляемых пользователю сообщениях

Проверьте количество доступных EXT-2 драйверов, нажав кнопку Проверить.

Для отправки тестового сообщения в Сообщество (получат все Подписчики) - нажмите Отправить.

Если число драйверов EXT-2 достаточно, Сообщество получит сообщение:

Test message Тестовое сообщение

Иначе:

Не хватает драйверов EXT-2

При настройке правил фильтров сообщений, следует в поле Получатель указывать none.

Smsterminal msg none.PNG
Smsterminal msg none.PNG

Для просмотра списка доступных команд наберите в чате Сообщества в VKМессенджере

/help 

(подробнее см. описание Telegram). Примеры сообщений

Smsterminal msg none.PNG
Smsterminal msg none.PNG