×

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
  Тег объекта (например, «грузовик»)