API для настройки уведомлений
Этот API для создания, получения, редактирования и удаления конфигураций уведомлений в PILOT. Это не API для отправки уведомлений, а для задания условий, при которых в будущем будут срабатывать уведомления в системе.
Методы
POST, GET, PUT, DELETE
Адрес запроса
Для получения данных используйте адрес: https://<address>/api/ptm/notification.php
<address> — адрес сайта
POST
Создаёт новую конфигурацию уведомления.
Тело запроса обязательно.
Запрос
https://<address>/api/ptm/notification.php
|
Пример тела запроса
{
"id": 0,
"agent_id": 123,
"type": "speed",
"geozones": [
{
"name": "Склад",
"zonetype": 1,
"points": [
[55.7558, 37.6173],
[55.7560, 37.6180],
[55.7565, 37.6170]
]
}
],
"name": "Превышение скорости в зоне склада",
"email": true,
"emails_list": [
"dispatcher@example.com",
"manager@example.com"
],
"sms": true,
"phones_list": [
"+79001234567",
"+79007654321"
],
"message_text": "Внимание! Превышение скорости в зоне склада.",
"webhook": true,
"webhook_url": "https://yourdomain.com/webhook-handler",
"ts": 1680000000,
"te": 1710000000,
"timezone": 3,
"zone_rule": "in",
"speed_rule": ">",
"speed_value": 80,
"speed_time": 15,
"speed_time_units": "ss",
"ignition_rule": "on",
"geozones_rule": "in",
"break_duration": 0,
"break_time_units": "ss",
"tag_name": "грузовик",
"temperature_rule": ">",
"temperature_value": 30,
"temperature_time": 0,
"disconnect_time": 0,
"disconnect_time_units": "ss",
"odometer_rule": ">",
"odometer_value": 100000,
"odometer_period": "abs"
}
|
Пример ответа
{
"success": true,
"msg": "Уведомление успешно создано",
"method": "POST",
"notification": {
"id": 123,
"agent_id": 123,
"type": "speed",
"geozones": [
{
"name": "Склад",
"zonetype": 1,
"points": [
[55.7558, 37.6173],
[55.7560, 37.6180],
[55.7565, 37.6170]
]
}
],
"name": "Превышение скорости в зоне склада",
"email": true,
"emails_list": [
"dispatcher@example.com",
"manager@example.com"
],
"sms": true,
"phones_list": [
"+79001234567",
"+79007654321"
],
"message_text": "Внимание! Превышение скорости в зоне склада.",
"webhook": true,
"webhook_url": "https://yourdomain.com/webhook-handler",
"ts": 1680000000,
"te": 1710000000,
"timezone": 3,
"zone_rule": "in",
"speed_rule": ">",
"speed_value": 80,
"speed_time": 15,
"speed_time_units": "ss",
"ignition_rule": "on",
"geozones_rule": "in",
"break_duration": 0,
"break_time_units": "ss",
"tag_name": "грузовик",
"temperature_rule": ">",
"temperature_value": 30,
"temperature_time": 0,
"disconnect_time": 0,
"disconnect_time_units": "ss",
"odometer_rule": ">",
"odometer_value": 100000,
"odometer_period": "abs"
}
}
|
GET
Получает конфигурацию уведомления по ID.
Параметры запроса:
-
id (обязательный) — ID уведомления
Пример запроса
https://<address>/api/ptm/notification.php?id=123
|
Пример ответа
{
"success": true,
"msg": "Уведомление получено",
"method": "GET",
"notification": {
"id": 123,
"agent_id": 123,
"type": "speed",
"geozones": [
{
"name": "Склад",
"zonetype": 1,
"points": [
[55.7558, 37.6173],
[55.7560, 37.6180],
[55.7565, 37.6170]
]
}
],
"name": "Превышение скорости в зоне склада",
"email": true,
"emails_list": [
"dispatcher@example.com",
"manager@example.com"
],
"sms": true,
"phones_list": [
"+79001234567",
"+79007654321"
],
"message_text": "Внимание! Превышение скорости в зоне склада.",
"webhook": true,
"webhook_url": "https://yourdomain.com/webhook-handler",
"ts": 1680000000,
"te": 1710000000,
"timezone": 3,
"zone_rule": "in",
"speed_rule": ">",
"speed_value": 80,
"speed_time": 15,
"speed_time_units": "ss",
"ignition_rule": "on",
"geozones_rule": "in",
"break_duration": 0,
"break_time_units": "ss",
"tag_name": "грузовик",
"temperature_rule": ">",
"temperature_value": 30,
"temperature_time": 0,
"disconnect_time": 0,
"disconnect_time_units": "ss",
"odometer_rule": ">",
"odometer_value": 100000,
"odometer_period": "abs"
}
}
|
PUT
Обновляет существующую конфигурацию уведомления.
Запрос
https://<address>/api/ptm/notification.php
|
Пример тела запроса
Тот же JSON-формат, что и при создании (POST), но с актуальными значениями и нужным id.
{
"id": 123,
"agent_id": 123,
"type": "speed",
"geozones": [
{
"name": "Склад",
"zonetype": 1,
"points": [
[55.7558, 37.6173],
[55.7560, 37.6180],
[55.7565, 37.6170]
]
}
],
"name": "Обновлённое уведомление",
"email": true,
"emails_list": ["alerts@example.com"],
"sms": false,
"phones_list": [],
"message_text": "Обновлённое сообщение о превышении скорости",
"webhook": false,
"webhook_url": "",
"ts": 1680000000,
"te": 1720000000,
"timezone": 3,
"zone_rule": "in",
"speed_rule": ">",
"speed_value": 90,
"speed_time": 10,
"speed_time_units": "ss",
"ignition_rule": "off",
"geozones_rule": "in",
"break_duration": 0,
"break_time_units": "ss",
"tag_name": "фургон",
"temperature_rule": ">",
"temperature_value": 35,
"temperature_time": 0,
"disconnect_time": 0,
"disconnect_time_units": "ss",
"odometer_rule": ">",
"odometer_value": 120000,
"odometer_period": "abs"
}
|
Пример ответа
{
"success": true,
"msg": "Уведомление успешно обновлено",
"method": "PUT",
"notification": {
"id": 123,
"agent_id": 123,
"type": "speed",
"geozones": [
{
"name": "Склад",
"zonetype": 1,
"points": [
[55.7558, 37.6173],
[55.7560, 37.6180],
[55.7565, 37.6170]
]
}
],
"name": "Обновлённое уведомление",
"email": true,
"emails_list": ["alerts@example.com"],
"sms": false,
"phones_list": [],
"message_text": "Обновлённое сообщение о превышении скорости",
"webhook": false,
"webhook_url": "",
"ts": 1680000000,
"te": 1720000000,
"timezone": 3,
"zone_rule": "in",
"speed_rule": ">",
"speed_value": 90,
"speed_time": 10,
"speed_time_units": "ss",
"ignition_rule": "off",
"geozones_rule": "in",
"break_duration": 0,
"break_time_units": "ss",
"tag_name": "фургон",
"temperature_rule": ">",
"temperature_value": 35,
"temperature_time": 0,
"disconnect_time": 0,
"disconnect_time_units": "ss",
"odometer_rule": ">",
"odometer_value": 120000,
"odometer_period": "abs"
}
}
|
DELETE
Удаляет одно или несколько уведомлений.
Параметры запроса :
-
id (опциональный) — ID конкретного уведомления
-
agent_id (опциональный) — Если передан, удаляются все уведомления для указанного агента
Пример запроса
https://<address>/api/ptm/notification.php?id=123
|
Также можно удалить все уведомления по agent_id:
https://<address>/api/ptm/notification.php?agent_id=456
|
Ответ
{
"count": 1 // количество удалённых уведомлений
}
|
Описание полей конфигурации уведомлений
Поле
|
Описание
|
id
|
ID уведомления
|
agent_id
|
Идентификатор агента (устройства/транспортного средства)
|
type
|
Тип нотификации (speed, temperature, ignition, и т.д.)
|
geozones
|
Массив геозон, к которым применяется уведомление
|
name
|
Название уведомления
|
email
|
Включить отправку по email
|
emails_list
|
Список email-адресов
|
sms
|
Включить SMS-уведомления
|
phones_list
|
Список номеров телефонов
|
webhook_url
|
URL для webhook
|
webhook
|
Включить отправку webhook
|
message_text
|
Текст уведомления
|
ts, te
|
Временные рамки действия уведомления (Unix timestamp)
|
timezone
|
Смещение по времени (например, +3)
|
zone_rule
|
Правило зоны (in, out)
|
speed_rule
|
Условие скорости (>, <, =)
|
speed_value
|
Значение скорости
|
speed_time
|
Время превышения
|
speed_time_units
|
Единицы времени (ss, mm, hh)
|
ignition_rule
|
Состояние зажигания (on, off)
|
geozones_rule
|
Поведение в геозонах (in, out)
|
temperature_rule
|
Условие температуры (>, <)
|
temperature_value
|
Значение температуры
|
temperature_time
|
Время превышения температуры
|
disconnect_time
|
Время отключения устройства
|
disconnect_time_units
|
Единицы времени отключения
|
odometer_rule
|
Условие по пробегу
|
odometer_value
|
Пробег
|
odometer_period
|
Тип подсчёта пробега (abs, rel)
|
tag_name
|
Тег объекта (например, «грузовик»)
|