get_notification_data
Функция get_notification_data используется для получения подробной информации об указанных уведомлениях.
svc=resource/get_notification_data¶ms={"itemId":<long>,"col":[<long>]}
Параметры
Название | Описание |
---|---|
itemId | ID ресурса. |
col | Массив ID уведомлений. Необязательное поле. Если его нет, функция выполняется для всех уведомлений. |
Возвращаемый результат
При успешном выполнении запроса возвращается результат в следующем формате:
[
{
"id":<long>, /* ID уведомления */
"n":"<text>", /* имя */
"txt":"<text>", /* текст уведомления */
"ta":<uint>, /* время активации (формат Unix) */
"td":<uint>, /* время деактивации (формат Unix) */
"ma":<uint>, /* максимальное количество срабатываний (0 — не ограничено) */
"mmtd":<uint>, /* максимальный временнóй интервал между сообщениями, сек. */
"cdt":<uint>, /* таймаут срабатывания, сек. */
"mast":<uint>, /* минимальная продолжительность тревожного состояния, сек. */
"mpst":<uint>, /* минимальная продолжительность предыдущего состояния, сек. */
"cp":<uint>, /* период контроля относительно текущего времени, сек. */
"fl":<uint>, /* флаги уведомления (см. ниже) */
"tz":<uint>, /* временнáя зона */
"la":"<text>", /* язык пользователя (двухбуквенный код) */
"ac":<uint>, /* количество срабатываний */
"d":"<text>", /* описание уведомления */
"sch":{ /* ограничение по времени */
"f1":<uint>, /* начало интервала 1 (количество минут от полуночи) */
"f2":<uint>, /* начало интервала 2 (количество минут от полуночи) */
"t1":<uint>, /* конец интервала 1 (количество минут от полуночи) */
"t2":<uint>, /* конец интервала 2 (количество минут от полуночи) */
"m":<uint>, /* маска дней месяца [1: 2||0, 31: 2||30] */
"y":<uint>, /* маска месяцев [Jan: 2||0, Dec: 2||11] */
"w":<uint>, /* маска дней недели [Mon: 2||0, Sun: 2||6] */
"fl":<int> /* флаги расписания */
},
"ctrl_sch":{ /* расписание максимального количества интервалов срабатывания */
"f1":<uint>, /* начало интервала 1 (количество минут от полуночи) */
"f2":<uint>, /* начало интервала 2 (количество минут от полуночи) */
"t1":<uint>, /* конец интервала 1 (количество минут от полуночи) */
"t2":<uint>, /* конец интервала 2 (количество минут от полуночи) */
"m":<uint>, /* маска дней месяца [1: 2||0, 31: 2||30] */
"y":<uint>, /* маска месяцев [Jan: 2||0, Dec: 2||11] */
"w":<uint> /* маска дней недели [Mon: 2||0, Sun: 2||6] */
"fl":<int> /* флаги расписания */
},
"un":[<long>], /* массив ID объектов/групп объектов */
"act":[ /* действия */
{
"t":"<text>", /* тип действия (см. ниже) */
"p":{ /* параметры */
"blink": "<text>", /* мигание мини-окна при срабатывании */
"color": "<text>", /* цвет онлайн-уведомления */
"url": "<text>", /* URL-адрес звука уведомления */
...
},
...
}
],
"trg":{ /* контроль */
"t":"<text>", /* тип контроля (см. ниже) */
"p":{ /* параметры */
"<text>":"<text>", /* название параметра: значение */
...
}
},
"ct":<uint>, /* время создания */
"mt":<uint> /* время последнего изменения */
}
]
Флаги уведомлений:
Флаг | Описание |
---|---|
0x0 | Уведомление срабатывает на первое сообщение. |
0x1 | Уведомление срабатывает на каждое сообщение. |
0x2 | Уведомление выключено. |
Для уведомления с типом контроля Простой значение параметра mast в секундах должно соответствовать параметру min_idle_time в минутах. Например, чтобы уведомление срабатывало после 10 минут простоя, укажите 10 в параметре min_idle_time и 600 в mast.
Если запрос выполнить не удалось, возвращается код ошибки.
Типы действий
Для уведомлений доступны следующие типы действий:
- Уведомить по email;
- Уведомить при помощи SMS;
- Отобразить онлайн-уведомление во всплывающем окне;
- Отправить мобильное уведомление;
- Отправить уведомление в Telegram;
- Выполнить запрос;
- Зарегистрировать событие в истории объекта;
- Отправить команду;
- Изменить доступ к объектам;
- Установить значение счетчика;
- Сохранить значение счетчика как параметр;
- Зарегистрировать статус объекта;
- Изменить состав групп объектов;
- Отправить отчет по email;
- Создать рейс;
- Снять водителя;
- Снять прицеп.
Уведомить по email
{
"t":"email", /* тип действия */
"p":{
"email_to":"<text>", /* адрес электронной почты */
"html":"<text>", /* использовать HTML-теги: 0 — нет, 1 — да */
"img_attach":"<text>", /* прикрепить изображение из уведомления: 1 — да, 0 — нет */
"subj":"<text>" /* текст сообщения */
}
}
Уведомить при помощи SMS
{
"t":"sms", /* тип действия */
"p":{
"phones":"<text>" /* список телефонных номеров (через точку с запятой) */
}
}
Отобразить онлайн-уведомление во всплывающем окне
{
"t":"message", /* тип действия */
"p":{
"color":"<text>", /* цвет уведомления */
"name":"<text>", /* имя уведомления */
"url":"<text>" /* URL-адрес звука уведомления */
}
}
Отправить мобильное уведомление
{
"t":"mobile_apps", /* тип действия */
"p":{
"apps":"{\"<text>\":[ /* название мобильного приложения */
<uint> /* ID пользователя */
]}"
}
}
Отправить уведомление в Telegram
{
"t":"messenger_messages", /* тип действия */
"p":{
"chat_id":"<text>", /* ID канала в Telegram */
"token":"<text>" /* токен пользователя в Telegram */
}
}
Выполнить запрос
{
"t":"push_messages", /* тип действия */
"p":{
"url":"<text>", /* имя сервера (можно указать порт), начните с "http(s)" */
"get":<bool> /* тип запроса: 1 — GET, 0 — POST */
}
}
Зарегистрировать событие в истории объекта
{
"t":"event", /* тип действия */
"p":{
"flags":"<text>" /* зарегистрировать как: 0 — событие, 1 — нарушение */
}
}
Отправить команду
{
"t":"exec_cmd", /* тип действия */
"p":{
"cmd_type":"<text>", /* тип команды */
"link":"<text>", /* тип ссылки */
"name":"<text>", /* имя команды */
"param":"<text>" /* параметры */
}
}
Список доступных типов команд можно найти здесь.
Изменить доступ к объектам
{
"t":"user_access", /* тип действия */
"p":{
"acl_bits":"<text>", /* 1 — установить бит, 0 — удалить бит */
"acl_mask":"<text>", /* маска битов, которые нужно изменить */
"units":"<text>", /* список ID объектов (через запятую) */
"users":"<text>" /* список ID пользователей (через запятую) */
}
}
Установить значение счетчика
{
"t":"counter", /* тип действия */
"p":{
"engine_hours":"<text>", /* значение счетчика моточасов */
"flags":"<text>", /* флаги (см. ниже) */
"mileage":"<text>", /* значение счетчика пробега */
"traffic":"<text>" /* значение счетчика GPRS-трафика */
}
}
Флаги счетчиков:
Флаг | Описание |
---|---|
1 | Установить значение счетчика пробега |
2 | Установить значение счетчика моточасов. |
4 | Установить значение счетчика GPRS-трафика. |
Сохранить значение счетчика как параметр
{
"t":"store_counter", /* тип действия */
"p":{
"engine_hours":"<text>", /* название параметра для счетчика моточасов */
"flags":"<text>", /* флаги (см. ниже) */
"mileage":"<text>" /* название параметра для счетчика пробега */
}
}
Флаги:
Флаг | Описание |
---|---|
1 | Сохранить значение счетчика пробега как параметр. |
2 | Сохранить значение счетчика моточасов как параметр. |
Зарегистрировать статус объекта
{
"t":"status", /* тип действия */
"p":{
"ui_text":"<text>" /* статус */
}
}
Изменить состав групп объектов
{
"t":"group_manipulation", /* тип действия */
"p":{
"add_to":"<text>", /* добавить в указанные группы */
"remove_from":"<text>" /* удалить из указанных групп */
}
}
Отправить отчет по email
{
"t":"email_report", /* тип действия */
"p":{
"email_to":"<text>", /* адрес электронной почты */
"file_type":"<text>", /* формат файла (см. нижу) */
"flags":"<text>", /* флаги интервала */
"params":"<text>", /* конфигурация отчета (XML) */
"report_guid":"<text>", /* ID ресурса */
"report_id":"<text>", /* ID шаблона */
"report_object_guid":"<text>", /* ID элемента для отчета */
"report_object_id":"<text>", /* ID подэлемента (0 — если отчет выполняется для элемента) */
"time_from":"<text>", /* начало временнóго интервала */
"time_to":"<text>" /* конец временнóго интервала */
}
}
Флаги интервалов описаны здесь.
Форматы файлов:
- 1 — HTML;
- 2 — PDF;
- 4 — XLS;
- 8 — XLSX;
- 16 — XML;
- 32 — CSV.
Создать рейс
{
"t":"route_control", /* тип действия */
"p":{
"description":"<text>", /* описание */
"expiration":"<text>", /* срок действия */
"flags":"<text>", /* флаги рейса */
"name":"<text>", /* имя */
"route":"<text>", /* ID маршрута */
"schedule":"<text>" /* ID расписания */
}
}
Флаги рейса описаны здесь.
Снять водителя
{
"t":"drivers_reset", /* тип действия */
"p":{}
}
Снять прицеп
{
"t":"trailers_reset", /* тип действия */
"p":{}
}
Типы контроля
Для уведомлений доступны следующие типы контроля:
- Геозона;
- Адрес;
- Скорость;
- Тревога (SOS);
- Цифровой вход;
- Параметр в сообщении;
- Значение датчика;
- Потеря связи;
- Простой;
- SMS;
- Взаиморасположение объектов;
- Превышение количества сообщений;
- Прохождение маршрута;
- Водитель;
- Прицеп;
- Техобслуживание;
- Заправка или зарядка батареи;
- Слив
- Состояние устройств.
Геозона
"trg":{
"t":"geozone", /* тип контроля */
"p":{
"sensor_type":"<text>", /* тип датчика */
"sensor_name_mask":"<text>", /* маска имени датчика */
"lower_bound":<uint>, /* значение датчика от */
"upper_bound":<uint>, /* значение датчика до */
"prev_msg_diff":<uint>, /* флаг позволяет создать диапазон для текущего значения в соответствии с предыдущим значением(prev) следующим образом: [prev+lower_bound ; prev+upper_bound]; таким образом, диапазон для текущего значения является относительным к предыдущему значению; 0 — выключить опцию, 1 — включить опцию */
"merge":<uint>, /* одинаковые датчики: 0 — считать отдельно, 1 — суммировать значения */
"reversed":<uint>, /* срабатывать: 0 — в рамках указанного диапазона, 1 — за пределами указанного диапазона */
"geozone_ids":"<text>", /* список ID геозон (через запятую) */
"type":<uint>, /* тип контроля: 0 — контролировать вход в геозону, 1 — контролировать выход из геозоны */
"min_speed":<uint>, /* минимальная скорость, км/ч */
"max_speed":<uint>, /* максимальная скорость, км/ч */
"include_lbs":<uint>, /* обрабатывать LBS-сообщения: 1 — да, 0 — нет */
"lo":"<text>" /* логический оператор (необязательно): "AND", "OR" */
}
}
Адрес
"trg":{
"t":"address", /* тип контроля */
"p":{
"sensor_type":"<text>", /* тип датчика */
"sensor_name_mask":"<text>", /* маска имени датчика */
"lower_bound":<uint>, /* значение датчика от */
"upper_bound":<uint>, /* значение датчика до */
"prev_msg_diff":<uint>, /* флаг позволяет создать диапазон для текущего значения в соответствии с предыдущим значением(prev) следующим образом: [prev+lower_bound ; prev+upper_bound]; таким образом, диапазон для текущего значения является относительным к предыдущему значению; 0 — выключить опцию, 1 — включить опцию */
"merge":<uint>, /* одинаковые датчики: 0 — считать отдельно, 1 — суммировать значения */
"reversed":<uint>, /* срабатывать: 0 — в рамках указанного диапазона, 1 — за пределами указанного диапазона */
"radius":<uint>, /* радиус срабатывания */
"type":<uint>, /* тип контроля: 0 — контролировать в радиусе адреса, 1 — контролировать за пределами радиуса адреса */
"min_speed":<uint>, /* минимальная скорость, км/ч */
"max_speed":<uint>, /* максимальная скорость, км/ч */
"country":"<text>", /* страна */
"region":"<text>", /* регион */
"city":"<text>", /* город */
"street":"<text>", /* улица */
"house":"<text>", /* дом */
"include_lbs":<uint> /* обрабатывать LBS-сообщения: 1 — да, 0 — нет */
}
}
Скорость
"trg":{
"t":"speed", /* тип контроля */
"p":{
"lower_bound":"<text>", /* значение датчика от */
"max_speed":"<text>", /* максимальная скорость, км/ч */
"merge":"<text>", /* одинаковые датчики: 0 — считать отдельно, 1 — суммировать значения */
"min_speed":"<text>", /* минимальная скорость, км/ч */
"prev_msg_diff":"<text>", /* флаг позволяет создать диапазон для текущего значения в соответствии с предыдущим значением(prev) следующим образом: [prev+lower_bound ; prev+upper_bound]; таким образом, диапазон для текущего значения является относительным к предыдущему значению; 0 — выключить опцию, 1 — включить опцию */
"reversed":"<text>", /* срабатывать: 0 — в рамках указанного диапазона, 1 — за пределами указанного диапазона */
"sensor_name_mask":"<text>", /* маска имени датчика */
"sensor_type":"<text>", /* тип датчика */
"upper_bound":"<text>" /* значение датчика до */
}
}
Тревога (SOS)
"trg":{
"t":"alarm", /* тип контроля */
"p":{}
}
Цифровой вход
"trg":{
"t":"digital_input", /* тип контроля */
"p":{
"input_index":"<text>", /* цифровой вход (1-32) */
"type":"<text>" /* тип контроля: 0 — проверять на активацию, 1 — проверять на деактивацию */
}
}
Параметр в сообщении
"trg":{
"t":"msg_param", /* тип контроля */
"p":{
"kind":"<text>", /* тип контроля параметра (см. ниже) */
"lower_bound":"<text>", /* значение параметра от */
"param":"<text>", /* название параметра */
"text_mask":"<text>", /* текстовая маска */
"type":"<text>", /* срабатывать: 0 — в рамках указанного диапазона, 1 — за пределами указанного диапазона */
"upper_bound":"<text>" /* значение параметра до */
}
}
Типы контроля параметра:
Тип | Описание |
---|---|
0 | Диапазон значений. |
1 | Текстовая маска. |
2 | Наличие параметра. |
3 | Отсутствие параметра. |
Значение датчика
"trg":{
"t":"sensor_value", /* тип контроля */
"p":{
"lower_bound":"<text>", /* значение датчика от */
"merge":"<text>", /* одинаковые датчики: 0 — считать отдельно, 1 — суммировать значения */
"prev_msg_diff":"<text>", /* флаг позволяет создать диапазон для текущего значения в соответствии с предыдущим значением(prev) следующим образом: [prev+lower_bound ; prev+upper_bound]; таким образом, диапазон для текущего значения является относительным к предыдущему значению; 0 — выключить опцию, 1 — включить опцию */
"sensor_name_mask":"<text>", /* маска имени датчика */
"sensor_type":"<text>", /* тип дптчика */
"type":"<text>", /* срабатывать: 0 — в рамках указанного диапазона, 1 — за пределами указанного диапазона */
"upper_bound":"<text>" /* значение датчика до */
}
}
Потеря связи
"trg":{
"t":"outage", /* тип контроля */
"p":{
"time":"<text>", /* временнóй интервал, сек. */
"type":"<text>", /* тип контроля: 0 — потеря координат, 1 — потеря связи */
"include_lbs":<uint>, /* обрабатывать LBS-сообщения: 1 — да, 0 — нет */
"check_restore":<uint>, /* уведомлять о: 0 — потере связи, 1 — потере и восстановлении связи, 2 — восстановлении связи */
"geozones_type":"<text>", /* тип контроля: 0 — за пределами геозоны, 1 — в геозоне */
"geozones_list":"<text>" /* список ID геозон (через запятую) */
}
}
Простой
"trg":{
"t":"speed", /* тип контроля */
"p":{
"lower_bound":"<text>", /* значение датчика от */
"max_speed":"<text>", /* максимальная скорость, км/ч */
"merge":"<text>", /* одинаковые датчики: 0 — считать отдельно, 1 — суммировать значения */
"min_idle_time":"<text>", /* минимальное время простоя, мин. */
"min_speed":"<text>", /* минимальная скорость, км/ч */
"prev_msg_diff":"<text>", /* флаг позволяет создать диапазон для текущего значения в соответствии с предыдущим значением(prev) следующим образом: [prev+lower_bound ; prev+upper_bound]; таким образом, диапазон для текущего значения является относительным к предыдущему значению; 0 — выключить опцию, 1 — включить опцию */
"reversed":"<text>", /* срабатывать: 0 — в рамках указанного диапазона, 1 — за пределами указанного диапазона */
"sensor_name_mask":"<text>", /* маска имени датчика */
"sensor_type":"<text>", /* тип датчика */
"upper_bound":"<text>", /* значение датчика до */
"geozones_type":"<text>", /* тип контроля: 0 — за пределами геозоны, 1 — в геозоне */
"geozones_list":"<text>" /* список ID геозон (через запятую) */
}
}
Значение параметра min_idle_time в минутах должно соответствовать значению параметра mast в секундах. Например, чтобы уведомление срабатывало после 10 минут простоя, укажите 10 в параметре min_idle_time и 600 в mast
SMS
"trg":{
"t":"sms", /* тип контроля */
"p":{
"mask":"<text>" /* маска текста SMS-сообщения */
}
}
Взаиморасположение объектов
"trg":{
"t":"interposition", /* тип контроля */
"p":{
"sensor_name_mask":"<text>", /* маска имени датчика */
"sensor_type":"<text>", /* тип датчика */
"lower_bound":"<text>", /* значение датчика от */
"upper_bound":"<text>" /* значение датчика до */
"merge":"<text>", /* одинаковые датчики: 0 — считать отдельно, 1 — суммировать значения */
"max_speed":"<text>", /* максимальная скорость, км/ч */
"min_speed":"<text>", /* минимальная скорость, км/ч */
"reversed":"<text>", /* срабатывать: 0 — в рамках указанного диапазона, 1 — за пределами указанного диапазона */
"prev_msg_diff":"<text>", /* флаг позволяет создать диапазон для текущего значения в соответствии с предыдущим значением(prev) следующим образом: [prev+lower_bound ; prev+upper_bound]; таким образом, диапазон для текущего значения является относительным к предыдущему значению; 0 — выключить опцию, 1 — включить опцию */
"radius":"<text>", /* радиус, м */
"type":"<text>", /* тип контроля: 0 — контролировать приближение к объектам, 1 — контролировать удаление от объектов */
"unit_guids":"<text>", /* список ID контролируемыx объектов (через запятую) */
"include_lbs":<uint>, /* обрабатывать LBS-сообщения: 1 — да, 0 — нет */
"lo":"<text>" /* логический оператор (необязательно): "AND", "OR" */
}
}
Превышение количества сообщений
"trg":{
"t":"msgs_counter", /* тип контроля */
"p":{
"flags":"<text>", /* тип сообщений: 1 — сообщения с данными, 2 — SMS-сообщения */
"msgs_limit":"<text>", /* лимит сообщений */
"time_offset":"<text>" /* интервал сброса значений датчика (лимит — 24 ч.), сек. */
}
}
Прохождение маршрута
"trg":{
"t":"route_control", /* тип контроля */
"p":{
"mask":"<text>", /* маска имени маршрута */
"round_mask":"<text>", /* маска имени рейса */
"schedule_mask":"<text>", /* маска имени расписания */
"types":"<text>" /* типы контроля маршрута (через запятую) */
}
}
Типы контроля маршрута:
Тип | Описание |
---|---|
1 | Начало рейса. |
2 | Завершение рейса. |
4 | Прерывание рейса. |
8 | Прибытие в контрольную точку. |
16 | Пропуск контрольной точки. |
32 | Отправление из контрольной точки. |
64 | Опоздание. |
128 | Опережение. |
256 | Возвращение к расписанию. |
Водитель
"trg":{
"t":"driver", /* тип контроля */
"p":{
"driver_code_mask":"<text>", /* маска кода водителя */
"flags":"<text>" /* тип контроля: 1 — назначение водителя, 2 — снятие водителя */
}
}
Прицеп
"trg": {
"t": "trailer", /* тип контроля */
"p": {
"driver_code_mask": "<text>", /* маска кода прицепа */
"flags": "<text>" /* тип контроля: 1 — назначение прицепа, 2 — снятие прицепа */
}
}
Техобслуживание
"trg":{
"t":"service_intervals", /* тип контроля */
"p":{
"days":"<text>", /* интервал в днях */
"engine_hours":"<text>", /* интервал по моточасам, ч. */
"flags":"<text>", /* флаги контроля техобслуживания (см. ниже) */
"mask":"<text>", /* маска фильтра инревалов */
"mileage":"<text>", /* интервал по пробегу, км */
"val":"<text>" /* уведомлять о: 1 — приближении срока сервиса, -1 — просрочке срока сервиса */
}
}
Флаги контроля техобслуживания:
Флаг | Описание |
---|---|
0 | Контролировать все сервисные интервалы. |
1 | Интервал по пробегу. |
2 | Интервал по моточасам. |
4 | Интервал по дням. |
Заправка или зарядка батареи
"trg":{
"t":"fuel_filling", /* тип контроля */
"p":{
"sensor_name_mask":"<text>", /* маска имени датчика */
"geozones_type":<uint>, /* тип контроля геозон: 0 — выкл или за пределами геозоны, 1 — в геозоне */
"geozones_list":"<text>", /* список ID геозон (через запятую) в формате "resourceID_geozone ID" */
"realtime_only":<uint>, /* игнорировать пересчет исторических данных: 0 — выключить, 1 — включить */
}
}
Состояние устройств
"trg": {
"t": "health_check", /* Тип контроля */
"p": {
"healthy": <uint>, /* Показывает, является ли устройство рабочим: 0 — нет, 1 — да */
"unhealthy": <uint>, /* Показывает, является ли устройство нерабочим: 0 — нет, 1 — да */
"needAttention": <uint>, /* Показывает, требует ли устройство внимания: 0 — нет, 1 — да */
"triggerForEachIncident": <uint> /* Срабатывать при каждом инциденте: 0 — опция выключена, 1 — опция включена */
}
}
Коды ошибок
Код | Описание |
---|---|
4 | Неверные входные параметры. |
7 | У пользователя нет необходимого права доступа на ресурс (ADF_ACL_AVL_RES_VIEW_NF). |