SMS-уведомления 2.0
Введение
Модуль отправки SMS-сообщений существенно переработан в версии 2.6.0 Для предыдущих версий АСУД.SCADA см. статью SMS-уведомления
Модуль позволяет отправлять сообщения, формируемые примитивами на ситуационном плане SCADA, и фиксируемые Журналом событий АСУД.SCADA:
- в текстовый файл - демонстрационный режим работы модуля
- на мобильные телефоны с помощью SMS или Push-уведомлений
- на адреса электронной почты
- в таблицы Google
Т.е. сообщения формируются Примитивами SCADA и передаются в Журнал событий SCADA, а также в модуль SMS-уведомлений для их последующей пересылки.
Примитив --->> Cообщение ---->> Журнал Событий ---->> SMS-уведомления -->> Обработка -->> Передача адресату
Внимание! Если в настройках примитива установлена опиция "Журнал" - Нет, примитив не будет формировать SMS-уведомления.
Для полноценной работы модуля требуется наличие:
- поключения к сети Интернет
- 4G/3G USB-модема с поддержкой АТ-команд или WEB API (о возможности подключения того или иного USB-модема уточняйте в тех.поддержке)
Для проверки работы модуля в демонстрационном режиме работы (передача сообщений в текстовый файл) никаких дополнительных подключений не требуется.
SMS-cообщения на мобильные телефоны могут отправляться:
- через USB-модем - требуется предоплата за отправленные сообщения;
- через сервис-провайдера - требуется регистрация и предоплата за отправленные сообщения.
Модуль позволяет отправлять следующие типы сообщений в зависимости от типа исходного сигнала:
| Тип сигнала | Тип сообщения | Комментарий |
|---|---|---|
| Дискретный | Авария / Норма | сигнал должен быть визуализирован на ситуационном плане |
| Числовой | Авария / Норма | сигнал должен быть визуализирован на ситуационном плане с помощью примитива Цифровой индикатор, LED-индикатор |
| Управления | Включение / Выключение | сигнал должен быть визуализирован на ситуационном плане с помощью примитива Канал управления |
| Переговорной связи | Входящий вызов | сигнал должен быть визуализирован на ситуационном плане |
| Статус | Нет связи / Норма | сигнал должен быть визуализирован на ситуационном плане |
Модуль пересылает сообщения указанному получателю в следующем виде:
- Для сигнала Статус
- ДАТА Сигнал[Устройство]: Нет связи, Адрес
- Для прочих сигналов
- ДАТА Сигнал: Название_события, Адрес
Например:
- 23:29 НОРМА: Двери лифта, ул. Первая д.1
- 23:30 АВАР.: Лифт, ул. Первая д.2
- 23:32 НОРМА: Двери машинного помещения, ул. Первая д.2
- 23:50 ВКЛ.: Освещение подъезда, ул. Первая д.1
- 00:41 НОРМА[КУН-IP8 - 0]: Нет связи, ул. Первая д.2
Внимание!
Модуль SMS-уведомлений проигнорирует входящее сообщение, если в конфигураторе ОРС-сервера у концентратора (или другого устройства):
- не заполнено поле Адрес;
- не заполнено поле Журнал событий \ Название события.
Настрока модуля
Для настройки модуля следует перейти в режим настройки и выбрать меню Сервис \ Настройки, далее Журналы \ SMS-уведомления
Далее следует:
- создать один или несколько фильтров (или правил) обработки входящих сообщений
- выбрать Провайдера передачи сообщений
Внимание!
- Сообщения передаются только на один выбранный провайдер.
- При смене провайдера - набор правил не удаляется / изменяется.
- Если провайдер не выбран - сообщения отправляться не будут.
Фильтры обработки сообщений
Для работы модуля следует создать один или несколько фильтров обработки входящих сообщений.
Для создания фильтра следует выполнить клик правой кнопкой мыши, выбрать Добавить.
Далее настроить фильтр:
- Название - просто имя фильтра (желательно уникальное)
- Сообщение - шаблон входящего сообщения
- символ звездочка * - любое сообщение удовлетворяет фильтру
- лифт - в сообщении должно быть слово "лифт", например:
- "Авария лифта" - удовлетворяет фильтру
- "Открытие двери" - нет
- лифт; Планерная - в сообщении должны быть слова и "лифт" и "Планерная", например:
- "Неисправность лифта, ул. Первая" - нет
- "Неисправность лифта, ул. Планерная" - удовлетворяет правилу
- Получатель сообщения - телефон (11 цифр), E-mail адрес или другой идентификатор устройства в заивисимости от выбранного Провайдера
(подробнее см. далее в описании работы конкретного провайдера)- если Получатель не указан (пустой) - сообщение будет отброшено (проигнорировано)
- Тип сигнала - тип сигнала, сформировавшего сообщение
- Уведомить о переходе в Норма - сформировать сообщение при переходе сигнала в нормальное состояние
- норма - для дискретного сигнала
- выкл. - для канала управления
- На связи - для канала статуса
- Отключить правило - игнорировать правило (правило не удаляется, но не участвует в обработке)
Внимание! Важно!
Будьте внимательны при создании правила для сигналов типа Статус (особенно при платной отправке SMS-сообщений).
Т.к. в случае выхода из строя, например: USB-пульта сообщение "Нет связи" будет сформировано также для всех подключенных к USB-Пульту концентраторов.
Обратите внимание, что в сообщении "Нет связи", например: "00:43 АВАР.[КУН-IP8 - 0]: Нет связи, ул. Первая д.1" - в квадратных скобках указывается тип устройства (из адресного пространства ОРС-сервера), с которым отсутствует связь, что можно использовать при настройке поля "Сообщение" в правиле обработки сообщений.
Кроме того, "Нет связи" будет сформировано при запуске Конфигуратора ОРС-сервера без предварительной закрытия программы АСУД.SCADA
Порядок обработки входящих сообщений
Входящие сообщения обрабытываются в следующей последовательности
- Если сообщение удовлетворяет фильтру - дальнейшая проверка прекращается.
- Если сообщение удовлетворяет фильтру, но Получатель сообщения в правиле не указан (пустой) - сообщение будет отброшено.
- Если сообщение не удовлетворяет ни одному из филтров - сообщение будет отброшено.
Созданные фильтры обрабатываются последовательно (вы можете поменять порядок следования, выбрав фильтр и, нажав правой кнопкой мыши).
Сообщение, которое удовлетвеоряет хотя бы одному фильтру, сразу отправляется выбранному провайдеру для передачи.
Как правило, один сигнал - формирует одно сообщение, например: одно событие - одна SMS.
Для некоторых провайдеров, например: E-mail, сообщения могут объединяться в группы при отправке.
Группа формируется из последовательно возникших сообщений в течение времения 5 с
(интервал может быть изменен в конфигурационном файле settings/smsterminal.conf, параметр SleepTimeBeforeSend).
Если при отправке сообщения провайдер получил ошибку - сообщение будет отброшено.
Если при отправке сообщения провайдер не доступен (точнее не доступен сервис, с которым работает провайдер): нет связи (подключения), проблемы с сетью и т.п., то программа повторит отправку сообщения до 10 раз через каждые 30 секунд. Если провайдер продолжит быть недоступным, сообщение будет отброшено.
Ошибки отправки сообщений фиксируются в оперативном журнале событий SCADA.
Провайдеры передачи сообщений
Текстовый файл
Это демонстрационный провайдер. Сообщения просто пишутся в файл log \ smsmessage_DDMMYY.txt
Может быть использован для проверки функционала модуля отправки сообщений.
Провайдер может обрабатывает сообщения группами по 2 сообщения.
Поле Получатель в фильтре сообщений - должно содержать:
- валидный мобильный номер (11 цифр, например: 79011234567),
- или валидный адрес email (например: mail@mail.com)
АТ-SMS модем
Отправка SMS-сообщений через USB-модем с поддержкой АТ-команд (см. документацию на модем)
Признаком того, что модем поддерживает работу с AT-командами, является появление в системе COM-порта при подключении модема.
Провайдер обрабатывает по 1 сообщению.
Для настройки USB-модема, следует нажать кнопкку Настроить.
Пример настройки модемов марки ZTE см. в статье SMS-уведомления
SMSЦентр SMS
Отправка SMS-сообщений через сервис-провайдера https://www.smsc.ru
Требуется подключение к Интернету. Отправка сообщений - платная (тарифы на отправку см. на сайте сервис-провайдера).
Для настройки требуется несложная предварительная регистрация на сайте сервис-провайдера.
В случае отправки сервисных SMS-сообщений, в общем случае не требуется заключение дополнительных договоров с сервис-провайдером.
Провайдер обрабатывает по 1 сообщению.
SMSЦентр Email
Отправка сообщений электронной почты через сервис-провайдера https://www.smsc.ru
Требуется подключение к Интернету. Отправка сообщений - платная (тарифы на отправку см. на сайте сервис-провайдера).
Для настройки требуется предварительная регистрация на сайте сервис-провайдера. А также существующий адрес электронной почты, от имени которого будет осуществляться отправка сервисных сообщений.
В случае отправки сервисных сообщений, в общем случае не требуется заключение дополнительных договоров с сервис-провайдером.
Провайдер обрабатывает сообщения группами по 10 сообщений.
Отправка сообщений электронной почты через корпоративный или бесплатный Почтовый сервер.
Провайдер обрабатывает сообщения группами по 10 сообщений.
В качестве бесплатного Почтового сервера, вы можете использовать например http://www.mail.ru Параметры настройки см. здесь
Если почтовый сервер mail.ru не позволяет отправлять сообщения на ваш e-mail, вы можете создать почтовый ящий на самом сервисе и отправлять сообщения на него.
Вы можете проверить корректность настройки, отправив тестовое сообщение, указав его получателя и текст.
Адрес получателя сообщений в рабочем режиме будет указываться при формировании Правил обработки сообщений.
Pushover
Pushover позволяет легко получать PUSH-уведомления в режиме реального времени на Android, iPhone, iPad и ПК (Android Wear и Apple Watch).
Провайдер обрабатывает сообщения группами по 10 сообщений.
Требуется подключение АРМ к Интернету. Требуется установка приложения на мобильный телефон или ПК.
Вы можете воспользоваться бесплатным тестовым 7-дневным периодом после регистрации на сайте.
По окончании тестового периода, плата за пользование приложением составляет - 5$ (единовоременно, Individual pricing). Число отправляемых PUSH-уведомлений - до 7500 в месяц.
После регистарации вы получите Pushover user key (UserToken). Также вам будет предложено задать имя вашего устройства - можете указать любое.
Далее следует в личном кабине сформировать (бесплатно) новое приложение (API Token). Если вы настраиваете несколько АРМ SCADA, вы можете использовать для них один и тот же API Token.
Указанные регистрационные данные внести в окно настройки провайдера
- AppToken - API Token
- UserToken - Pushover user key
- Заголовок - Заголовок сообщений, отпавляемых через провайдера
Остаток сообщений - это число сообщений, которое может быть отправлено с данным AppToken до конца текущего месяца.
Если вы хотите, чтобы уведомления получали два (или более) человека одновременного, следует создать Группу в настройках личного кабинета на сайте. И в качестве UserToken - указывать идентификатор созданной группы.
Особенности настройки правил при использовании провайдера Pushover
В поле "Получатель" сообщения при настройке фильтров сообщений следует указывать none - тогда сообщение будет доставлено на все зарегистрированные устройства пользователя / группы.
Или указывать устройства через запятую, например: iphone1, nexus, andr17
Таблицы Google
Позволяет записывать сообщения в указанную таблицу Google.
Провайдер обрабатывает сообщения группами по 10 сообщений.
Сообщения будут просто дописываться в новые строки указанной таблицы.
Не требуется никакой оплаты (в случае если число сообщений не превышает установленный лимит сообщений указанный далее).
Настройка таблицы Google
Для возможности работы с провайдером следует:
- Создать учетную запись электронной почты на Gmail (если отсутствует).
- Зайти под аккаунтом Gmail на Google Developers Console и создать новый проект (с любым названием).
- Слева вверху выберать раздел меню API и сервисы.
- Включить для проекта Drive API и Sheets API (Меню API и сервисы \ Библиотека).
- Создать сервисный аккаунт и сохранить сервисный ключ.
- Создать таблицу Google.
- Разрешить сервисному аккаунту доступ к таблице.
Название сервсисного аккаунта укажите любое, тип ключа - JSON.
Выберите роль - Владелец.
Создайте сервисный аккаунт, нажмите Создать и и сохраните ключ в папке ..\Scada\settings
Ключ необходимо переименовать в файл ..\Scada\settings\gsheet.json
Далее создаем новую таблицу Google, содержащую один или несколько листов.
Имя файла таблицы может быть любым. В примере указано: ASUDTable
Необходимо запомнить:
- идентификатор таблицы (SheetId), который выделен в адресной строке;
- имя листа, в который будет записываься данные.
- добавить в первой строке таблицы названия колонок, как указано выше
Далее необходимо нажать кнопку Настройки доступа
И добавить адрес электронной почты сервисного аккаунта к списку разршенных людей (сняв галочку "Оповестить пользователей")
Настройка провайдера
В окне настройки провайдера следует указать идентификатор таблицы и название листа.
Для проверки корректности ввода параметров, можно отправить Тестовое сообщение - просто нажмите кнопку Отправить. Если все данные введны правильно, вы получите сообщение "Успешно отправлено", а в таблицу будет добавлена строка со значениями в четырых столбцах А1, B1, C1, D1
Пример отображения данных в таблице приведен ниже.
Особенности настройки правил при использовании провайдера
В поле "Получатель" сообщения при настройке фильтров сообщений следует указывать none.
Ограничения
Существующие ограничения: max 100 запросов к Google API за 100 секунд для проекта.
Вы можете использовать один и тот же сервисный ключ (файл settings\gsheet.json) на нескольких АРМ (указывая при это в настроках провайдера - разные таблицы или разные листы одной таблицы).
Однако если число сообщений велико и вы превышаете бесплатный лимит, то вам может потребоваться создавать отдельный проект под каждый АРМ.
HTTP(S) JSON
Доступно с версии АСУД.SCADA 2.7.5
Провайдер позволяет отправлять уведомления на сторонний WEB-сервер по протоколу HTTP(S).
Провайдер обрабатывает сообщения группами по 10 сообщений.
Сообщение отправляются в формате JSON.
В окне настройки провайдера следует указать:
- Адрес сервера - URL-адрес, на который будет отправлено JSON-сообщение
- Заголовок - произвольный идентификатор, который будет указан в JSON-сообщении
Вы можете отправить на сервер полный адресный список точек диспетчеризации. Для этого следует нажать кнопку Отправить адресный список.
Для отправки тестового сообщения на сервер - нажмите Отправить.
При настройке правил фильтров сообщений, следует в поле Получитель указывать none.
Примеры 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"
}
4G LTE Модем HUAWEY E3372
Доступно с версии АСУД.SCADA 2.7.10
Отправка SMS-сообщений через 4G USB-модем HUAWEY E3372H-153, работающий в режиме HiLink.
Провайдер обрабатывает по 1 сообщению.
Модем следует предварительно настроить:
- При первом включении он определится, как CD-ROM, с которого необходимо установить ПО 4G Mobile hotspot
- Далее следует отключить CD-ROM через подключенные USB-устройства
- Модем должен определиться, как сетевое устройство и в системе появится новая сеть 192.168.8.0 / 24
- Заходим на WEB-страницу
- Если используем модем только для отправки SMS, отключаем подключение к Интернету (устанавливаем Мобильное подключение / Мобильная сеть - вручную)
Для настройки USB-модема, следует нажать кнопкку Настроить.
В открывшемся окне, в случае успешного подключения модема, будет отображаться информация о качестве сигнала и подключенной сети.
Здесь же, можно отправить тестовое сообщение на указанный номер телефона.
Техническая информация по отправке сообщений
Несколько слов о том, как работает отправка сообщений.
Многие модемы в режиме HiLink поддерживают набор WEB API информацию, о котором можно посмотреть здесь
Однако модем, который попался нам, данный набор API не поддерживает.
Указанная версия устройства позволяет получить информацию о состоянии и отправить SMS-сообщения через следующие HTTP-запросы.
Информация о состоянии подключения к мобильной сети - метод GET
Запрос:
http://192.168.8.1/reqproc/proc_get?isTest=false&cmd=GOFORM_GET_CRRRSP_INFO&_=%u
, где %u - время в формате Unix Timestamp
Ответ:
{"rssi":"-78.0","sinr":"1.1","rsrq":"-9.5","cellid":"1795428097","rsrp":"-102"}
Отправка SMS сообщения - метод POST
http://192.168.8.1/reqproc/proc_post
Параметры запроса:
isTest=false
goformId=SEND_SMS
notCallback=true
Number=+79011234567
sms_time=YY;MM;DD;HH;MM;SS;+3
MessageBody=Text
ID=-1
encode_type=UNICODE
, где:
sms_time - время в UTC
MessageBody - должен быть указан в кодировке encode_type: UNICODE или GSM7_default.
Ответ
{"result":"success"}
Замечание!
Вообще говоря, теоретически, данный модем можно перенастроить в режим STICK и работать с ним через AT-команды.