Уведомления: различия между версиями
Alex (обсуждение | вклад) Нет описания правки |
Alex (обсуждение | вклад) Нет описания правки |
||
| Строка 258: | Строка 258: | ||
}</pre> | }</pre> | ||
Telegram | === Telegram === | ||
<pre>АСУД.SCADA 2.7.20.2 | <pre>АСУД.SCADA 2.7.20.2 | ||
+ Коррекция работы /lift | + Коррекция работы /lift | ||
Текущая версия от 15:49, 19 марта 2026
Введение
Модуль позволяет отправлять сообщения, формируемые примитивами на ситуационном плане SCADA, и фиксируемые Журналом событий АСУД.SCADA, выбранному сервис-провайдеру. Если сервис-провайдер отсутствует в описании ниже, см. предыдущую версию статьи
Сообщения формируются Примитивами SCADA, передаются в Журнал событий SCADA, а также в модуль Уведомлений для их последующей пересылки.
Примитив --->> Cообщение ---->> Журнал Событий
---->> Уведомления -->> Обработка -->> Передача адресату
Внимание! Если в настройках примитива установлена опция "Журнал" - Нет, примитив не будет формировать уведомления.
Для полноценной работы модуля требуется наличие:
- подключение к сети Интернет
Для проверки работы модуля в демонстрационном режиме работы (передача сообщений в текстовый файл) никаких дополнительных подключений не требуется.
Модуль позволяет отправлять следующие типы сообщений в зависимости от типа исходного сигнала:
| Тип сигнала | Тип сообщения | Комментарий |
|---|---|---|
| Дискретный | Авария / Норма | сигнал должен быть визуализирован на ситуационном плане |
| Числовой | Авария / Норма | сигнал должен быть визуализирован на ситуационном плане с помощью примитива Цифровой индикатор, 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-уведомления
Далее следует:
- создать один или несколько фильтров (или правил) обработки входящих сообщений
- выбрать Провайдера передачи сообщений
Внимание!
- Сообщения передаются только на один выбранный провайдер.
- При смене провайдера - набор правил не удаляется / изменяется.
- Если провайдер не выбран - сообщения отправляться не будут
- Должно быть создано минимум 1 правило.
Фильтры обработки сообщений
Для работы модуля следует создать один или несколько фильтров обработки входящих сообщений.
Для создания фильтра следует выполнить клик правой кнопкой мыши, выбрать Добавить.
Далее настроить фильтр:
- Название - просто имя фильтра (желательно уникальное)
- Сообщение - шаблон входящего сообщения
- символ звездочка * - любое сообщение удовлетворяет фильтру
- лифт - в сообщении должно быть слово "лифт", например:
- "Авария лифта" - удовлетворяет фильтру
- "Открытие двери" - нет
- лифт; Планерная - в сообщении должны быть слова и "лифт" и "Планерная", например:
- "Неисправность лифта, ул. Первая" - нет
- "Неисправность лифта, ул. Планерная" - удовлетворяет правилу
- Получатель сообщения - телефон (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)
Отправка сообщений электронной почты через корпоративный или бесплатный Почтовый сервер.
Провайдер обрабатывает сообщения группами по 10 сообщений.
В качестве бесплатного Почтового сервера, вы можете использовать например http://www.mail.ru Параметры настройки см. здесь
Если почтовый сервер mail.ru не позволяет отправлять сообщения на ваш e-mail, вы можете создать почтовый ящий на самом сервисе и отправлять сообщения на него.
Вы можете проверить корректность настройки, отправив тестовое сообщение, указав его получателя и текст.
Адрес получателя сообщений в рабочем режиме будет указываться при формировании Правил обработки сообщений.
HTTP(S) JSON
Провайдер позволяет отправлять уведомления на сторонний 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"
}
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
В окне настройки провайдера следует указать:
- BotID - идентификатор бота, полученный при регистрации
- UserID - идентификатор пользователя, которому будут приходить сообщения
- если это одиночный пользователь - его ID это положительное число
- если это группа / канал - ID отрицательное число.
- Заголовок - произвольный идентификатор диспетчерской (не обязательный), который будет указан в отправляемых пользователю сообщениях
Проверить правильность указания BotID, можно нажав, Проверить.
В случае если все указано правильно, вы увидите примерно следующее сообщение.
Далее, для того чтобы определить идентификатор пользователя (группы или канала), пользователь должен отправить боту сообщение с текстом MyID. После этого следует нажать кнопку Узнать.
После указания идентификатора, для отправки тестового сообщения пользователю (группе / каналу) - нажмите Отправить.
При настройке правил фильтров сообщений, следует в поле Получитель указывать none.
Команды пользователя
При работающей 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
Следует отметить, что при выполнии команды на экране АРМ будет открыт выбранный подвид.
Поэтому команду логично использовать на АРМ, за которым в данный момент не находится диспетчер.