API уведомлений PILOT
Это API предназначено для взаимодействия с временными динамическими нотификациями.
Структура данных и настроек по этим нотификациям идентична работе с модулем уведомлений в интерфейсе системы ПИЛОТ.
https://doc.pilot-gps.ru/modul_uvedomlenij_.html?ms=EwADAAAAAAAAAAAgAgJAAQ%3D%3D&st=MA%3D%3D&sct=OTE3&mw=Mjgw
|
Для доступа используется HTTP Basic аутентификация.
Логин и пароль для доступа к API указывается в формате: логин_из_пилота:пароль_из_пилота.
Для серверов с архитектурой лезвий обязательно нужно указать GET параметр node, к примеру:
Ответ на запрос имеет два кода состояния: 200 при успехе и 500 при серверной ошибке.
Формат ответа имеет следующую структуру:
{
“success”: false или true,
“msg”: сообщение об ошибке, если такая имеется,
“method”: метод запроса: GET, POST, PUT, DELETE,
“notification”: данные нотификации,
“ids”: список идентификаторов нотификаций (только для метода DELETE)
}
1. Получить существующую конфигурацию нотификации, метод GET
Параметры запроса
| ||
Название
|
Параметр
|
Значение и описание
|
Идентификатор нотификации
|
id*
|
Число
|
2. Создать новую конфигурацию нотификации, метод POST
Параметры запроса
| ||
Название
|
Параметр
|
Значение и описание
|
Идентификатор агента
|
agent_id*
|
Число
|
Идентификаторы ТС
|
vehs
|
Массив чисел. Сюда попадает значение с поля agent_id
|
Тип нотификации
|
type*
|
Строка. Одно из следующих значений: speed, ignition, ignitionwork, sensor, sensorwork, temperature, fuel, connection, odometer, moving, parking, geozones.
Может принимать массив строк для комплексных нотификаций.
|
Геозоны
|
geozones
|
Массив. Каждый элемент массива имеет описание геозоны с ключами:
- name – строка, название геозоны / адрес;
- zonetype – число, тип геозоны: 1 – полигон, 2 – круг;
- points – массив, характеристики геозоны. Для полигона [[lat,lon],[lat,lon]..].
Для круга [lat,lon,radius_in_m].
|
Название нотификации
|
name*
|
Строка
|
Включение рассылки на email
|
email
|
Строка.
Если нужно включить рассылку, то нужно указать значение on, иначе пустая строка
|
Список email для рассылки
|
emails_list
|
Массив строк
|
Включение рассылки по sms
|
sms
|
Строка.
Если нужно включить рассылку, то нужно указать значение on, иначе пустая строка
|
Список номеров телефонов для расслыки
|
phones_list
|
Массив строк
|
Текст нотификации
|
message_text
|
Строка
|
Включение отправки данных по webhook
|
webhook
|
Строка.
Если нужно включить отправку данных, то нужно указать значение on, иначе пустая строка
|
URL для отправки webhook
|
webhook_url
|
Строка
|
Параметры для webhook
|
webhook_params
|
Строка
|
Заголовки для webhook
|
webhook_headers
|
Строка
|
Начальное время действия нотификации
|
ts
|
Число, Unix timestamp
|
Конечное время действия нотификации
|
te
|
Число, Unix timestamp
|
Название часового пояса
|
timezone
|
Строка, к примеру Europe/Vienna
|
Правило обработки геозон
|
zone_rule
|
Строка. Доступные значения: in, out
|
Правило обработки скорости
|
speed_rule
|
Строка. Доступные значения: >, <, =.
Обязательно для типа speed.
|
Значение скорости
|
speed_value
|
Число. Обязательно для типа speed
|
Длительность условия для срабатывания
|
speed_time
|
Число. Обязательно для типа speed
|
Единицы измерения для скорости
|
speed_time_units
|
Строка. Доступные значения: ss, mm, hh, km. Обязательно для типов speed, temperature
|
Правило обработки зажигания
|
ignition_rule
|
Строка. Доступные значения: on, off, onoff, move. Обязательно для типов ignition, sensor
|
Правило обработки геозон
|
geozones_rule
|
Строка. Доступные значения: in, out, inout
|
Продолжительность перерыва
|
break_duration
|
Число. Обязательно для типов moving, ignitionwork, sensorwork
|
Единицы измерения для перерыва
|
break_time_units
|
Строка. Доступные значения: ss, mm, hh, km. Обязательно для типов moving, ignitionwork, sensorwork
|
Название тега
|
tag_name
|
Строка. Обязательно для типов sensorwork, sensor
|
Правило обработки температуры
|
temperature_rule
|
Строка. Доступные значения: >, <, =, d.
Обязательно для типа temperature
|
Значение температуры
|
temperature_value
|
Число . Обязательно для типа temperature
|
Длительность условия для срабатывания
|
temperature_time
|
Число . Обязательно для типа temperature
|
Длительность условия для срабатывания потери связи
|
disconnect_time
|
Число. Обязательно для типа connection
|
Единицы измерения
|
disconnect_time_units
|
Строка. Доступные значения: ss, mm, hh, km. Обязательно для типа connection
|
Правило обработки одометра
|
odometer_rule
|
Строка. Доступные значения: >, <.
Обязательно для типа odometer.
|
Значение одометра
|
odometer_value
|
Число. Обязательно для типа odometer
|
Длительность условия для срабатывания
|
odometer_period
|
Строка. Доступные значения: abs, month, day. Обязательно для типа odometer
|
Включение генерации нотификации для модуля ГАРМ
|
garm_event
|
Строка. Если нужно включить, то нужно указать значение on, иначе пустая строка
|
Идентификатор типа приоритета события
|
group
|
Число. Обязательно для модуля ГАРМ
|
Время обработки в секундах
|
timer
|
Число
|
Данные алгоритма
|
algorithm_data
|
Строка
|
Оповещение в телеграм бот
|
telegram
|
Строка. Если нужно включить, то нужно указать значение on, иначе пустая строка
|
Оповещение на мобильное устройство
|
push
|
Строка. Если нужно включить, то нужно указать значение on, иначе пустая строка
|
Оповещение в виде всплывающего окна в интерфейсе
|
alert
|
Строка. Если нужно включить, то нужно указать значение on, иначе пустая строка
|
Оповещение для всех пользователей системы
|
forall
|
Строка. Если нужно включить, то нужно указать значение on, иначе пустая строка
|
Служебный подтип нотификации
|
subtype
|
Строка.
|
Идентификатор тэга сенсора
|
sensor_tag
|
Число
|
Код языка
|
language
|
Строка
|
Длительность для срабатывания нотификации в секундах
|
duration
|
Число
|
Единицы измерения
|
time_units
|
Строка. Доступные значения: ss, mm, hh, km.
|
Правило обработки комплексных нотификаций
|
rule
|
Массив строк. Значение элемента массива может принимать значения: or, and
|
Описание комплексных нотификаций
|
rules
|
Массив с описанием нотификации. Каждый элемент массива принимает свой набор ключей, зависящих от типов нотификаций.
|
Время постоянного не изменяющегося значения
|
no_changes
|
Число
|
Единицы измерения
|
no_changes_time_units
|
Строка. Доступные значения: ss, mm, hh, km.
|
3. Отредактировать существующую конфигурацию нотификации, метод PUT
Параметры запроса
| ||
Название
|
Параметр
|
Значение и описание
|
Идентификатор нотификации
|
id*
|
Число. Передается как GET параметр.
|
Идентификатор агента
|
agent_id*
|
Число
|
Идентификаторы ТС
|
vehs
|
Массив чисел. Сюда попадает значение с поля agent_id
|
Тип нотификации
|
type*
|
Строка. Одно из следующих значений: speed, ignition, ignitionwork, sensor, sensorwork, temperature, fuel, connection, odometer, moving, parking, geozones.
Может принимать массив строк для комплексных нотификаций.
|
Геозоны
|
geozones
|
Массив. Каждый элемент массива имеет описание геозоны с ключами:
- name – строка, название геозоны / адрес;
- zonetype – число, тип геозоны: 1 – полигон, 2 – круг;
- points – массив, характеристики геозоны.
Для полигона [[lat,lon],[lat,lon]..]. Для круга [lat,lon,radius_in_m].
|
Название нотификации
|
name*
|
Строка
|
Включение рассылки на email
|
email
|
Строка. Если нужно включить рассылку, то нужно указать значение on, иначе пустая строка.
|
Список email для рассылки
|
emails_list
|
Массив строк
|
Включение рассылки по sms
|
sms
|
Строка. Если нужно включить рассылку, то нужно указать значение on, иначе пустая строка
|
Список номеров телефонов для расслыки
|
phones_list
|
Массив строк
|
Текст нотификации
|
message_text
|
Строка
|
Включение отправки данных по webhook
|
webhook
|
Строка. Если нужно включить отправку данных, то нужно указать значение on, иначе пустая строка
|
URL для отправки webhook
|
webhook_url
|
Строка
|
Параметры для webhook
|
webhook_params
|
Строка
|
Заголовки для webhook
|
webhook_headers
|
Строка
|
Начальное время действия нотификации
|
ts
|
Число, Unix timestamp
|
Конечное время действия нотификации
|
te
|
Число, Unix timestamp
|
Название часового пояса
|
timezone
|
Строка, к примеру Europe/Vienna
|
Правило обработки геозон
|
zone_rule
|
Строка. Доступные значения: in, out
|
Правило обработки скорости
|
speed_rule
|
Строка. Доступные значения: >, <, =.
Обязательно для типа speed.
|
Значение скорости
|
speed_value
|
Число. Обязательно для типа speed
|
Длительность условия для срабатывания
|
speed_time
|
Число. Обязательно для типа speed
|
Единицы измерения для скорости
|
speed_time_units
|
Строка. Доступные значения: ss, mm, hh, km. Обязательно для типов speed, temperature
|
Правило обработки зажигания
|
ignition_rule
|
Строка. Доступные значения: on, off, onoff, move. Обязательно для типов ignition, sensor
|
Правило обработки геозон
|
geozones_rule
|
Строка. Доступные значения: in, out, inout
|
Продолжительность перерыва
|
break_duration
|
Число. Обязательно для типов moving, ignitionwork, sensorwork
|
Единицы измерения для перерыва
|
break_time_units
|
Строка. Доступные значения: ss, mm, hh, km. Обязательно для типов moving, ignitionwork, sensorwork
|
Название тега
|
tag_name
|
Строка. Обязательно для типов sensorwork, sensor
|
Правило обработки температуры
|
temperature_rule
|
Строка. Доступные значения: >, <, =, d .
Обязательно для типа temperature.
|
Значение температуры
|
temperature_value
|
Число . Обязательно для типа temperature
|
Длительность условия для срабатывания
|
temperature_time
|
Число . Обязательно для типа temperature
|
Длительность условия для срабатывания потери связи
|
disconnect_time
|
Число. Обязательно для типа connection
|
Единицы измерения
|
disconnect_time_units
|
Строка. Доступные значения: ss, mm, hh, km. Обязательно для типа connection
|
Правило обработки одометра
|
odometer_rule
|
Строка. Доступные значения: >, <.
Обязательно для типа odometer.
|
Значение одометра
|
odometer_value
|
Число. Обязательно для типа odometer
|
Длительность условия для срабатывания
|
odometer_period
|
Строка. Доступные значения: abs, month, day. Обязательно для типа odometer
|
Включение генерации нотификации для модуля ГАРМ
|
garm_event
|
Строка. Если нужно включить, то нужно указать значение on, иначе пустая строка
|
Идентификатор типа приоритета события
|
group
|
Число. Обязательно для модуля ГАРМ
|
Время обработки в секундах
|
timer
|
Число
|
Данные алгоритма
|
algorithm_data
|
Строка
|
Оповещение в телеграм бот
|
telegram
|
Строка. Если нужно включить, то нужно указать значение on, иначе пустая строка
|
Оповещение на мобильное устройство
|
push
|
Строка. Если нужно включить, то нужно указать значение on, иначе пустая строка.
|
Оповещение в виде всплывающего окна в интерфейсе
|
alert
|
Строка. Если нужно включить, то нужно указать значение on, иначе пустая строка.
|
Оповещение для всех пользователей системы
|
forall
|
Строка. Если нужно включить, то нужно указать значение on, иначе пустая строка.
|
Служебный подтип нотификации
|
subtype
|
Строка.
|
Идентификатор тэга сенсора
|
sensor_tag
|
Число
|
Код языка
|
language
|
Строка
|
Длительность для срабатывания нотификации в секундах
|
duration
|
Число
|
Единицы измерения
|
time_units
|
Строка. Доступные значения: ss, mm, hh, km.
|
Правило обработки комплексных нотификаций
|
rule
|
Массив строк. Значение элемента массива может принимать значения: or, and
|
Описание комплексных нотификаций
|
rules
|
Массив с описанием нотификации.
Каждый элемент массива принимает свой набор ключей, зависящих от типов нотификаций.
|
Время постоянного не изменяющегося значения
|
no_changes
|
Число
|
Единицы измерения
|
no_changes_time_units
|
Строка. Доступные значения: ss, mm, hh, km.
|
4. Удалить существующую конфигурацию нотификации, метод DELETE
Принимает один из обязательных параметров. Если указан agent_id, то будут удалены все конфигурации для этого агента. Если указан id, то будет удалена конфигурация нотификация по этому идентификатору.
Параметры запроса
| ||
Название
|
Параметр
|
Значение и описание
|
Идентификатор нотификации
|
id
|
Число. Передается как GET параметр.
|
Идентификатор агента
|
agent_id
|
Число. Передается как GET параметр.
|
Пример данных запроса для создания комплексной нотификации по температуре:
{
"te": 1680202800,
"ts": 1680164770,
"name": "Temperature deviation",
"node": null,
"push": "",
"rule": [
"or",
"and"
],
"type": "complex",
"vehs": [
161115
],
"email": "on",
"group": 7,
"rules": [
{
"rule": "or",
"type": "temperature",
"time_units": "ss",
"speed_time_units": "ss",
"temperature_rule": ">",
"temperature_time": 20,
"temperature_value": 8
},
{
"rule": "and",
"type": "temperature",
"time_units": "ss",
"speed_time_units": "ss",
"temperature_rule": "<",
"temperature_time": 20,
"temperature_value": 2
}
],
"timer": 0,
"forall": "on",
"subtype": "magnit_temperature_deviation_outside_geofences",
"task_id": 186361,
"agent_id": 161115,
"geozones": {
"г Краснодар, ул Алма-Атинская, д 148": {
"id": null,
"name": "г Краснодар, ул Алма-Атинская, д 148",
"points": [
"45.04138000",
"38.93461000",
200
],
"zonetype": 2
}
},
"language": "en",
"telegram": "",
"timezone": "Europe/Moscow",
"zone_rule": "out",
"delay_time": 0,
"garm_event": "on",
"task_cp_id": 59626,
"time_units": [
"ss",
"ss"
],
"emails_list": [
""
],
"message_text": "Temperature deviation (+2..+8) outside geofences",
"algorithm_data": "",
"wait_time_send": 0,
"temperature_rule": [
">",
"<"
],
"temperature_time": [
20,
20
],
"temperature_value": [
8,
2
],
"algorithm_settings": ""