Шаблоны оповещений

Система оповещений «MonitorServer» позволяет гибко настроить уведомления об интересующих событиях, которые могут отправлятся по электронной почте, SMS.

Настройка оповещения состоит из 2 частей: фильтра событий и шаблона уведомления. Фильтр отсеивает все события системы кроме интересующих, после чего формируется сообщение на основе шаблона уведомления.

В шаблоне уведомления поля «Шаблон сообщения» и «Получатель» имеют возможность включать в себя информацию о событии, либо системную информацию, доступную на момент обработки оповещения. Для этого предназначены специальные макропеременные. При отправке сообщения, макропеременные заменяются на их значения.

Синтаксис для макроподстановки:

  %(name)s

где name - имя переменной для подстановки.

Информация о событии

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

event.name имя события
event.timestamp дата и время события
event.timestamp.iso дата и время события в формате ISO8601 (YYYY-MM-DD HH:MM:SS)
event.timestamp.eur дата и время события в формате DD.MM.YYYY HH:MM:SS
event.point.lat географическая широта места события, градусы
event.point.lng географическая долгота места события, градусы
event.point.speed скорость объекта в момент события, км/ч
event.point.address адрес ориентиров вблизи события
event.geozone.name имя контрольной зоны, имеющей отношение к событию
event.sender отправитель сообщения (для событий "Входящее сообщение")
event.object.name имя объекта, относящегося к событию
event.object.is_actual актуальность последних данных телеметрии
event.object.is_link_up состояние связи с объектом
event.object.is_moving наличие движения
event.object.last_point.lat географическая широта последней путевой точки, градусы
event.object.last_point.lng географическая долгота последней путевой точки, градусы
event.object.last_point.speed скорость в последней путевой точке, км/ч
event.object.last_point.address адрес близлежащих ориентиров
event.object.in_geozones список контрольных зон, в которых в данный момент присутствует объект
event.object.assigned_operators.first.name имя контролирующего оператора, первого из списка
event.object.assigned_operators.first.email email контролирующего оператора, первого из списка
event.object.assigned_operators.first.phone телефон контролирующего оператора, первого из списка

Информация о состоянии произвольных объектов

objects[N].name имя объекта
objects[N].is_actual актуальность последних данных об объекте
objects[N].is_link_up состояние связи с объектом
objects[N].is_moving последнее состояие объекта (движется или стоит)
objects[N].in_geozones список контрольных зон, в которых в данный момент присутствует объект
objects[N].last_point.lat географическая широта, градусы
objects[N].last_point.lng географическая долгота, градусы
objects[N].last_point.speed скорость, км/ч
objects[N].last_point.address адрес близлежащих ориентиров
objects[N].assigned_operators.first.name имя контролирующего оператора, первого из списка
objects[N].assigned_operators.first.email email контролирующего оператора, первого из списка
objects[N].assigned_operators.first.phone телефон контролирующего оператора, первого из списка

N - системный код объекта. Код объекта можно узнать в консоли оператора в свойствах выбранного объекта, либо в консоли администратора, если сделать видимым столбец с кодами объектов.

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

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

Таким образом, появляется возможность реализовать сервис для предоставления информации по объектам, например, по SMS запросу.

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

Пример шаблона оповещения:

Привет,

Время: %(event.timestamp.iso)s
Двигаемся около: %(event.point.address)s
Скорость: %(event.point.speed)s

Объект: %(objects[1].name)s
Актуальность данных: %(objects[1].is_actual)s
Состояние объекта: %(objects[1].is_moving)s
Скорость: %(objects[1].last_point.speed)s км/ч
Широта: %(objects[1].last_point.lat)s
Долгота: %(objects[1].last_point.lng)s
Адрес: %(objects[1].last_point.address)s
Геозоны: %(objects[1].in_geozones)s

--
Sincerely Yourth, MonitorServer!