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> /* время последнего изменения */
}
]
| Параметр | Описание |
|---|---|
| id | ID уведомления. |
| n | Имя уведомления. |
| txt | Текст уведомления. |
| ta | Время активации (формат Unix). Соответствует настройке Время активации. |
| td | Время деактивации (формат Unix). Соответствует настройке Время деактивации. |
| ma | Максимальное количество срабатываний (0 означает без ограничений). Соответствует настройке Макс. количество срабатываний. |
| mmtd | Максимальный временной интервал между сообщениями в секундах. Соответствует настройке Макс. время между сообщениями. |
| cdt | Таймаут анализа сообщения в секундах. Соответствует настройке Таймаут анализа сообщения. |
| mast | Минимальная длительность тревожного состояния в секундах. Соответствует настройке Мин. длительность тревожного состояния. |
| mpst | Минимальная длительность предыдущего состояния в секундах. Соответствует настройке Игнорировать прерывания тревожного состояния менее. |
| cp | Период контроля относительно текущего времени в секундах. Соответствует настройке Допустимая задержка сообщения. |
| fl | Флаги уведомления (см. ниже). |
| tz | Часовой пояс. |
| la | Язык пользователя (двухбуквенный код). |
| ac | Количество срабатываний (сколько раз срабатывало уведомление). |
| d | Описание уведомления. |
| sch | Расписание уведомления. Содержит временные интервалы (f1, f2, t1, t2 в минутах от полуночи), маску дней месяца (m), маску месяцев (y), маску дней недели (w) и флаги расписания (fl). |
| ctrl_sch | Расписание для интервалов сброса счетчика Макс. количество срабатываний. Использует ту же структуру, что и sch. |
| un | Массив ID объектов или групп объектов, которые отслеживает уведомление. |
| act | Массив действий. Каждое действие имеет тип (t) и параметры (p). См. Типы действий. |
| trg | Конфигурация условия. Структура зависит от типа контроля: тип с одним условием (см. Типы контроля) или тип на основе выражений (см. Комбинирование нескольких условий). Комбинирование условий недоступно в Wialon Local. |
| ct | Время создания (формат Unix). |
| mt | Время последнего изменения (формат Unix). |
Флаги уведомлений:
| Флаг | Описание |
|---|---|
| 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":{}
}
Создать задачу
{
"t": "create_task", /* тип действия */
"p": {
"task_priority": "<int>", /* приоритет задачи */
"task_assignee": "<int>" /* ID пользователя, на которого назначена задача */
}
}
Типы контроля
Для уведомлений доступны следующие типы контроля:
- Вход в геозону
- Адрес
- Произвольный диапазон скорости
- Тревога
- Цифровой вход
- Состояние параметра
- Значение датчика
- Состояние соединения
- Простой
- 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":"fuel_theft", /* тип контроля */
"p":{
"sensor_name_mask":"<text>", /* маска имени датчика */
"geozones_type":<uint>, /* тип контроля геозоны: 0 — отключено или вне геозоны, 1 — внутри геозоны */
"geozones_list":"<text>", /* список ссылок на геозоны, разделенных запятыми, в формате propID:createTime (для геозон из того же ресурса, что и уведомление) или itemId_propId:createTime (для геозон из другого ресурса). Например, для ссылки на геозону с ID 15, созданную 2024-01-15 в 10:30:00 UTC (timestamp: `1705315800`), укажите "15:1705315800" */
"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 — опция включена */
}
}
Комбинирование нескольких условий
Этот тип контроля позволяет объединить до трех условий уведомления в одном выражении с использованием логических операторов (И/ИЛИ).
Комбинирование условий недоступно в Wialon Local.
"trg": {
"t": "expression",
"p": {},
"expression": "<text>", /* Текстовая строка, определяющая логическое выражение, комбинирующее несколько условий. Использует имена условий, соединенных операторами "AND" или "OR". */
"conditions": { /* Параметры для каждого условия в выражении. Ключи — это имена условий из выражения, значения — объекты с параметрами, специфичными для условия. */
"<condition_name>": {
/* Параметры, специфичные для условия */
}
}
}
Поддерживаемые типы условий
Существуют комбинируемые и некомбинируемые типы условий. Комбинируемые могут использоваться с операторами И/ИЛИ (до 3 условий), тогда как некомбинируемые должны быть единственным условием в выражении.
Комбинируемые условия
| Тип условия | Описание |
|---|---|
speed |
Превышение порога скорости. |
idling |
Обнаружение простоя двигателя. |
speed_gis |
Превышение ограничения скорости согласно ГИС. |
driver_unassigned |
Снятие водителя с объекта. |
address |
Триггер на основе адреса. |
geozone_inside |
Вход объекта в геозону. |
geozone_outside |
Выход объекта из геозоны. |
interposition |
Расстояние объекта от других объектов. |
sensor_range |
Значение датчика в указанном диапазоне или вне его. |
sensor_change |
Изменение значения датчика. |
alarm |
Активация тревожной кнопки. |
msg_param |
Параметр в сообщении. |
digital_input |
Состояние цифрового входа. |
eco_driving |
Нарушение качества вождения. |
Некомбинируемые условия
| Тип условия | Описание |
|---|---|
tag |
Назначение пассажира на объект. |
msgs_counter |
Достигнут лимит сообщений. |
trailer |
Назначение прицепа на объект. |
driver |
Назначение водителя на объект. |
sms |
Получение SMS. |
Примеры выражений:
"geozone_inside OR geozone_outside""speed AND driver_unassigned""address OR sensor_range"
Если один и тот же тип условия используется несколько раз, добавьте подчеркивание и номер:
"geozone_inside_1 AND geozone_inside_2 AND speed"
Параметры условий
Каждое условие в объекте conditions имеет специфичные параметры в зависимости от его типа.
Произвольный диапазон скорости
{
"speed": {
"min_speed": <uint>, /* минимальная скорость, км/ч */
"max_speed": <uint>, /* максимальная скорость, км/ч */
"include_lbs": <uint> /* обрабатывать LBS-сообщения: 1 — да, 0 — нет */
}
}
Простой
{
"idling": {
"min_speed": <uint>, /* минимальная скорость, км/ч */
"max_speed": <uint>, /* максимальная скорость, км/ч */
"min_idle_time": <uint> /* минимальное время простоя, мин */
}
}
Ограничения скорости на дороге
{
"speeding_gis": {
"speeding_tolerance": <any>, /* допустимое превышение */
"include_lbs": <uint> /* обрабатывать LBS-сообщения: 1 — да, 0 — нет */
}
}
Диапазон значений датчика
{
"sensor_range": {
"sensor_type": "<text>", /* тип датчика */
"sensor_name_mask": "<text>", /* маска имени датчика */
"merge": <uint>, /* одинаковые датчики: 0 — считать отдельно, 1 — суммировать значения */
"lower_bound": <double>, /* значение датчика от */
"upper_bound": <double>, /* значение датчика до */
"reversed": <uint> /* срабатывать: 0 — внутри диапазона, 1 — вне диапазона */
}
}
Разница значений датчика
{
"sensor_change": {
"sensor_type": "<text>", /* тип датчика */
"sensor_name_mask": "<text>", /* маска имени датчика */
"lower_bound": <double>, /* изменение значения датчика от (относительно предыдущего сообщения) */
"upper_bound": <double> /* изменение значения датчика до (относительно предыдущего сообщения) */
}
}
Водитель не назначен
{
"driver_unassigned": {
"driver": <uint> /* этот флаг позволяет учитывать назначения водителя: 1 — условие выполнено, когда водитель не назначен, 2 — условие выполнено, когда водитель назначен, 0 — этот флаг игнорируется */
}
}
Тревога
{
"alarm": {}
}
Состояние параметра
{
"msg_param": {
"kind": <uint>, /* тип контроля параметра: 0 — диапазон значений, 1 — текстовая маска, 2 — наличие параметра, 3 — отсутствие параметра */
"lower_bound": <double>, /* значение параметра от */
"param": "<text>", /* имя параметра */
"text_mask": "<text>", /* текстовая маска */
"type": <uint>, /* срабатывать: 0 — внутри диапазона, 1 — вне диапазона */
"upper_bound": <double> /* значение параметра до */
}
}
Цифровой вход
{
"digital_input": {
"input_index": <uint>, /* цифровой вход (1-32) */
"type": <uint> /* тип контроля: 0 — проверка активации, 1 — проверка деактивации */
}
}
Вход в геозону
{
"geozone_inside": {
"geozone_ids": "<text>", /* список ссылок на геозоны, разделенных запятыми, в формате propID:createTime (для геозон из того же ресурса, что и уведомление) или itemId_propId:createTime (для геозон из другого ресурса) */
"lo": "<text>", /* логический оператор (опционально): "AND", "OR" */
"include_lbs": <uint> /* обрабатывать LBS-сообщения: 1 — да, 0 — нет */
}
}
Выход из геозоны
{
"geozone_outside": {
"geozone_ids": "<text>", /* список ссылок на геозоны, разделенных запятыми, в формате propID:createTime (для геозон из того же ресурса, что и уведомление) или itemId_propId:createTime (для геозон из другого ресурса) */
"lo": "<text>", /* логический оператор (опционально): "AND", "OR" */
"include_lbs": <uint> /* обрабатывать LBS-сообщения: 1 — да, 0 — нет */
}
}
Адрес
{
"address": {
"city": "<text>", /* город */
"country": "<text>", /* страна */
"house": "<text>", /* дом */
"radius": <uint>, /* радиус срабатывания */
"region": "<text>", /* регион */
"street": "<text>", /* улица */
"type": <uint>, /* тип контроля: 0 — в радиусе адреса, 1 — вне радиуса адреса */
"include_lbs": <uint> /* обрабатывать LBS-сообщения: 1 — да, 0 — нет */
}
}
Близость объекта
{
"interposition": {
"lo": "<text>", /* логический оператор (опционально): "AND", "OR" */
"radius": <uint>, /* радиус, м */
"type": <uint>, /* тип контроля: 0 — контроль приближения к объектам, 1 — контроль удаления от объектов */
"unit_guids": "<text>", /* список ID контролируемых объектов (через запятую) */
"include_lbs": <uint> /* обрабатывать LBS-сообщения: 1 — да, 0 — нет */
}
}
Состояние соединения
{
"outage": {
"check_restore": <uint>, /* уведомить когда: 0 — потеря связи, 1 — потеря связи и восстановление, 2 — восстановление связи */
"time": <uint>, /* временной интервал, с */
"type": <uint>, /* тип контроля: 0 — потеря координат, 1 — потеря связи */
"include_lbs": <uint> /* обрабатывать LBS-сообщения: 1 — да, 0 — нет */
}
}
SMS
{
"sms": {
"mask": "<text>" /* маска текста SMS */
}
}
Лимит сообщений
{
"msgs_counter": {
"flags": <uint>, /* тип сообщения: 1 — сообщения с данными, 2 — SMS-сообщения */
"msgs_limit": <uint>, /* лимит сообщений */
"time_offset": <uint> /* сбрасывать счетчик каждые (лимит 24ч), с */
}
}
Назначение пассажира
{
"tag": {
"tag_code_mask": "<text>", /* маска кода пассажира */
"type": <uint> /* тип контроля: 1 — посадка, 2 — высадка */
}
}
Пассажир не снят
{
"tag_alarm": {
"time": <uint> /* таймаут тревоги, с */
}
}
Назначение водителя
{
"driver": {
"code_mask": "<text>", /* маска кода водителя */
"flags": <uint> /* тип контроля: 1 — назначение водителя, 2 — снятие водителя */
}
}
Назначение прицепа
{
"trailer": {
"code_mask": "<text>", /* маска кода прицепа */
"flags": <uint> /* тип контроля: 1 — назначение прицепа, 2 — снятие прицепа */
}
}
Прохождение маршрута
{
"route_control": {
"mask": "<text>", /* маска имени маршрута */
"round_mask": "<text>", /* маска имени рейса */
"schedule_mask": "<text>", /* маска имени расписания */
"types": "<text>" /* типы контроля маршрута (через запятую): 1 — рейс начат, 2 — рейс завершен, 4 — рейс прерван, 8 — прибытие в контрольную точку, 16 — контрольная точка пропущена, 32 — отбытие из контрольной точки, 64 — опоздание, 128 — опережение, 256 — возврат к расписанию */
}
}
Заправка топлива
{
"fuel_filling": {
"realtime_only": <uint>, /* игнорировать пересчет исторических данных: 0 — отключено, 1 — включено */
"sensor_name_mask": "<text>" /* маска имени датчика */
}
}
Слив топлива
{
"fuel_theft": {
"realtime_only": <uint>, /* игнорировать пересчет исторических данных: 0 — отключено, 1 — включено */
"sensor_name_mask": "<text>" /* маска имени датчика */
}
}
Зарядка батареи
{
"battery_charge": {
"realtime_only": <uint>, /* игнорировать пересчет исторических данных: 0 — отключено, 1 — включено */
"sensor_name_mask": "<text>" /* маска имени датчика */
}
}
Качество вождения
{
"eco_driving": {
"criterions": [ /* массив фильтров критериев качества вождения */
{
"type": "<text>", /* тип критерия: speeding, acceleration, braking, turn, idling, harsh (опасное вождение), sensor (произвольный) */
"mask": "<text>" /* маска имени критерия */
}
]
}
}
Уведомление срабатывает, когда заканчивается событие нарушения качества вождения. Это условие можно использовать после того, как вы настроили критерии качества вождения в свойствах объекта с помощью unit/update_drive_rank_settings.
При комбинировании условия
eco_drivingс другими условиями,eco_drivingдолжно быть первым условием в выражении. Система проверяет другие условия для сообщения в момент начала нарушения, но уведомление срабатывает в момент окончания нарушения.Условие
eco_drivingможет быть объединено сfuel_filling,fuel_theftиbattery_chargeтолько с использованием оператораOR.
Техобслуживание
{
"service_intervals": {
"days": <long>, /* интервал в днях */
"engine_hours": <long>, /* интервал моточасов, ч */
"flags": <uint>, /* флаги контроля техобслуживания: 0 — контролировать все интервалы техобслуживания, 1 — интервал пробега, 2 — интервал моточасов, 4 — интервал в днях */
"mask": "<text>", /* маска имени интервала техобслуживания */
"mileage": <long>, /* интервал пробега, км */
"val": <long> /* уведомить когда: 1 — срок техобслуживания приближается, -1 — срок техобслуживания истек */
}
}
Состояние устройства
{
"health_check": {
"healthy": <any>, /* срабатывать при статусе "исправно": "0" — нет, "1" — да */
"needAttention": <any>, /* срабатывать при статусе "требует внимания": "0" — нет, "1" — да */
"triggerForEachIncident": <any>, /* срабатывать при каждом инциденте в состоянии "требует внимания": "0" — отключено, "1" — включено */
"unhealthy": <any> /* срабатывать при статусе "неисправно": "0" — нет, "1" — да */
}
}
Коды ошибок
| Код | Описание |
|---|---|
| 4 | Неверные входные параметры. |
| 7 | У пользователя нет необходимого права доступа на ресурс (ADF_ACL_AVL_RES_VIEW_NF). |