update_units
Для добавления, удаления или очистки объектов, отслеживаемых в сессии, используйте метод events/update_units.
Для отслеживания ресурсов, а также объектов используйте events/update_items. Для новых интеграций используйте events/update_items.
Конечная точка
Формат запроса зависит от режима работы.
Добавление объектов
Для добавления определённых объектов в сессию используйте следующий запрос:
svc=events/update_units¶ms={
"mode": "add",
"units": [
{
"id": <long>,
"detect": {
"<detector_name>": <long>
}
},
...
],
"evt_flags": <uint> /* необязательный */
}
Удаление определённых объектов
Для удаления определённых объектов из сессии используйте следующий запрос:
svc=events/update_units¶ms={
"mode": "remove",
"units": [
<long>
]
}
Удаление всех объектов
Для удаления всех объектов из сессии используйте следующий запрос:
svc=events/update_units¶ms={
"mode": "clear"
}
Параметры
| Параметр | Описание |
|---|---|
mode |
Обязательный. Режим работы: add, remove или clear. |
units |
Обязательный для add и remove. Массив объектов (для add) или ID объектов (для remove). |
id |
Обязательный для add. ID объекта. |
detect |
Обязательный для add. Детекторы для отслеживания и их фильтры. См. раздел Типы детекторов событий. |
evt_flags |
Необязательный. Флаги событий. См. раздел Флаги событий. |
Типы детекторов событий
В объекте detect можно настроить следующие детекторы событий. Для каждого детектора укажите значение фильтра, которое выбирает события для отслеживания: конкретный ID или тип, либо 0 для отслеживания всех событий этого детектора.
"detect":{"<detector_name>":<filter_value>}
| Детектор | События | Значение фильтра |
|---|---|---|
trips |
События поездок и стоянок. | 0 |
counters |
События счётчиков моточасов, пробега и GPRS-трафика. | 0 |
speedings |
События превышения скорости. | 0 |
ignition |
События датчика зажигания. | ID датчика или 0 для всех датчиков этого типа. |
sensors |
События датчиков, кроме датчиков зажигания, уровня топлива и уровня заряда батареи. | ID датчика или 0 для всех датчиков этого типа. |
lls |
События датчика уровня топлива. | ID датчика уровня топлива или 0 для всех датчиков уровня топлива. |
filling |
События заправок топлива. | ID датчика уровня топлива или 0 для всех датчиков уровня топлива. |
theft |
События сливов топлива. | ID датчика уровня топлива или 0 для всех датчиков уровня топлива. |
fuel_level |
События уровня топлива. | ID датчика уровня топлива или 0 для всех датчиков уровня топлива. |
battery_level |
События уровня заряда батареи (рассчитанные и исходные значения уровня заряда). | ID датчика уровня заряда или 0 для всех датчиков уровня заряда. |
charge |
События заряда батареи (изменения объёма заряда). | ID датчика уровня заряда или 0 для всех датчиков уровня заряда. |
ev |
Комбинированный детектор батарей электромобилей. Регистрирует события уровня заряда батареи и зарядки. | ID датчика уровня заряда или 0 для всех датчиков уровня заряда. |
health_check |
Инциденты диагностики. | Тип инцидента или 0 для всех инцидентов. |
eco_driving |
Нарушения качества вождения. | Тип критерия (1 — ускорение, 2 — торможение, 3 — поворот, 4 — превышение скорости, 5 — датчик, 6 — плавность движения, 7 — холостой ход) или 0 для всех критериев. |
В таблице перечислены детекторы, доступные для объектов. Для отслеживания назначений водителей, зарегистрированных для ресурса, используйте детектор
resource_driversс events/update_items и укажите ID ресурса.
Детекторы battery_level, charge и ev используют следующие настройки датчика уровня заряда: Рассчитывать данные по датчику, Тип фильтрации, Минимальный объём зарядки (кВт·ч), Искать зарядки только при остановке и Таймаут для разделения зарядок. Если настройка Рассчитывать данные по датчику отключена, для датчика не регистрируются события.
Детекторы регистрируют уровень заряда батареи и зарядку, но не разрядку батареи. Математическая модель расхода, датчики двигателя и датчики температурного коэффициента не учитываются.
Детектор
eco_drivingнедоступен в Wialon Local.
Чтобы добавить все доступные детекторы событий, используйте:
"detect":{"*":0}
В режиме add добавляются только те объекты, на которые текущий пользователь имеет права доступа на просмотр. Если указанный объект уже отслеживается, его конфигурация детекторов заменяется. Недопустимые значения отдельных фильтров детекторов игнорируются.
Флаги событий
Параметр evt_flags сохраняется в сессии и управляет способом доставки обновлений событий. Значение по умолчанию — 0.
| Значение | Название | Описание |
|---|---|---|
0 |
check_updates |
Режим по умолчанию. Метод events/check_updates опрашивает детекторы и возвращает данные о событиях. |
0x200 |
units_update |
Обновления событий отправляются автоматически в данных units_update запроса avl_evts. В этом режиме events/check_updates возвращает {}. Комбинируйте с флагами детализации в битах от 0x1 до 0x100. |
Комбинируйте флаги детализации ниже с 0x200. Если флаги детализации не указаны, используется значение 0x7 (0x1 | 0x2 | 0x4).
| Значение | Описание |
|---|---|
0x1 |
Основные данные события. |
0x2 |
Данные, зависящие от типа детектора. |
0x4 |
Параметры сообщения, связанного с событием. |
0x8 |
Дополнительные подробные данные. |
0x10 |
Подробные данные сообщений. |
0x20 |
Отформатированные значения детектора. |
0x40 |
Группировать результаты по интервалам пересечения. |
0x80 |
Итоговые данные детектора. |
0x100 |
Расширенные события. |
Например, evt_flags = 0x207 включает режим units_update (0x200) с основными данными события, данными, зависящими от детектора, и видимыми параметрами сообщения (0x1 | 0x2 | 0x4 = 0x7).
Примеры
В следующих примерах показано, как настроить объект detect при добавлении объектов в сессию.
Добавление всех датчиков типа
Для отслеживания событий от всех датчиков зажигания и всех остальных датчиков объекта с ID 1001 используйте один из следующих запросов:
svc=events/update_units¶ms={
"mode": "add",
"units": [
{
"id": 1001,
"detect": {
"ignition": 0,
"sensors": 0
}
}
]
}
svc=events/update_units¶ms={
"mode": "add",
"units": [
{
"id": 1001,
"detect": {
"ignition,sensors": 0
}
}
]
}
Добавление конкретных датчиков
Для отслеживания событий от датчика уровня топлива с ID 2 и другого датчика с ID 6 используйте:
svc=events/update_units¶ms={
"mode": "add",
"units": [
{
"id": 1001,
"detect": {
"lls": 2,
"sensors": 6
}
}
]
}
Возвращаемый результат
При успешном выполнении запроса возвращается следующий результат:
{
"units": <uint> /* общее количество объектов, отслеживаемых в сессии */
}
В противном случае возвращается код ошибки.
Коды ошибок
| Код | Описание |
|---|---|
1 |
Недействительный или устаревший SID запроса. |
4 |
Ошибка проверки параметров. |
7 |
Сервис событий недоступен. |