⌂ > 🛠 Конфигурационный REST API > ⇄ Путь
PUT /configure/channels/{channel-id}/scenarios : Изменение сценариев для камеры🔗
Предупреждение
Доступно только в лицензиях Enterprise и ULTRA.
Данный запрос может выполняться только пользователем с максимальными правами, то есть входящим в группу Старшие администраторы.
Важно
Во всех примерах указан локальный хост (localhost). При отправке реальных запросов замените его на адрес и порт сервера, на который отправляете запрос.
Параметры🔗
Параметр |
Описание |
|---|---|
MotionFact |
Обнаружено движение в кадре (событие будет генерироваться постоянно пока в кадре присутствует движение) |
MotionBegin |
Начало движения в кадре (повторной генерации не будет, пока движение не прекратится). Не забудьте в настройках детектора движения включить соответствующую опцию, отвечающую за генерацию данного события |
MotionEnd |
Окончание движения в кадре (повторной генерации не будет, пока движение не прекратится). Не забудьте в настройках детектора движения включить соответствующую опцию, отвечающую за генерацию данного события |
CameraLostConnection |
Соединение с камерой потеряно |
CameraEstablishConnection |
Соединение с камерой восстановлено |
CameraInput |
Обнаружен сигнал на входе камеры |
UserAlarm |
Обнаружена пользовательская тревога (генерируется из клиентского приложения) |
FaceDetected |
Обнаружено лицо в кадре (событие будет генерироваться только при включённом модуле Распознавание лиц на камере) |
LargeNumberOfPeopleInQueue |
Превышено максимальное количество людей в очереди |
Описание действий (Actions):
Параметр |
Описание |
|---|---|
ArchiveRecordingOn |
Включение ручной записи в архив |
ArchiveRecordingOff |
Выключение ручной записи в архив |
SendingEmail |
Отправка email |
ExecutingCameraOutput |
Установка значения на выходе камеры |
AlarmGeneration |
Генерация тревоги |
MobilePushMessage |
Генерация тревоги |
Описание атрибутов действий:
Действие |
Атрибут |
Описание |
Тип |
Обязательный |
|---|---|---|---|---|
Общие |
RepeatIntervalMs |
Ограничение времени повторения в миллисекундах |
number |
Нет, по умолчанию — 5000 (5 секунд) |
ArchiveRecordingOn |
RecordingDurationMs |
Интервал записи в миллисекундах |
number |
Нет, по умолчанию — 0 |
ArchiveRecordingOff |
-//- |
|||
AlarmGeneration |
-//- |
|||
ExecutingCameraOutput |
-//- |
|||
SendingEmail |
EmailServerIndex |
Индекс email сервера в списке серверов |
number |
Нет, по умолчанию — 0 |
EmailFrom |
Адрес отправителя |
string |
Да |
|
EmailTo |
Адрес получателя |
string |
Да |
|
EmailBody |
Текст сообщения |
string |
Нет, по умолчанию — пустая строка |
|
FrameAttachmentEnabled |
Приложить к письму кадр |
boolean |
Нет, по умолчанию — false |
|
UseFrameFromArchive |
Использовать кадр из архива |
boolean |
Нет, по умолчанию — false |
|
MobilePushMessage |
TextToSend |
Текст сообщения |
string |
Да |
UsersList |
Список пользователей. В случае указания пользователя неопределённого на сервере произойдёт ошибка |
[string] |
Да |
Пример запроса🔗
PUT http://192.168.100.50:8080/configure/channels/7d69e586-25c6-470e-a368-5570d57b2631/scenarios
Примеры тел PUT-запросов🔗
Пример тела PUT-запроса, изменяющего для типа события «Движение» интервал повтора события «Генерация тревоги» до 30000 миллисекунд:
[
{
"EventType": "MotionFact",
"Actions": [
{
"ActionType": "AlarmGeneration",
"ActionBodyJson": "{\"RepeatIntervalMs\":30000,\"Conditions\":[]}"
}
]
},
{
"EventType": "MotionBegin",
"Actions": [
{
"ActionType": "ArchiveRecordingOn",
"ActionBodyJson": "{\"RecordingDurationMs\":300000,\"RepeatIntervalMs\":5000,\"Conditions\":[]}"
}
]
},
{
"EventType": "MotionEnd",
"Actions": [
{
"ActionType": "ArchiveRecordingOn",
"ActionBodyJson": "{\"RecordingDurationMs\":300000,\"RepeatIntervalMs\":5000,\"Conditions\":[]}"
}
]
},
{
"EventType": "CameraLostConnection",
"Actions": [
{
"ActionType": "AlarmGeneration",
"ActionBodyJson": "{\"RepeatIntervalMs\":5000,\"Conditions\":[]}"
}
]
},
{
"EventType": "CameraEstablishConnection",
"Actions": [
{
"ActionType": "AlarmGeneration",
"ActionBodyJson": "{\"RepeatIntervalMs\":5000,\"Conditions\":[]}"
}
]
},
{
"EventType": "CameraNoConnection",
"Actions": [
{
"ActionType": "AlarmGeneration",
"ActionBodyJson": "{\"RepeatIntervalMs\":5000,\"Conditions\":[]}"
},
{
"ActionType": "AlarmGeneration",
"ActionBodyJson": "{\"RepeatIntervalMs\":5000,\"Conditions\":[]}"
}
]
},
{
"EventType": "CameraInput",
"Actions": [
{
"ActionType": "AlarmGeneration",
"ActionBodyJson": "{\"RepeatIntervalMs\":5000,\"Conditions\":[]}"
}
]
},
{
"EventType": "UserAlarm",
"Actions": [
{
"ActionType": "AlarmGeneration",
"ActionBodyJson": "{\"RepeatIntervalMs\":5000,\"Conditions\":[]}"
}
]
}
]
Примечание
Для изменения нескольких сценариев используется PUT-запрос и он изменяет весь массив сценариев (т.е. изменяются все существующие сценарии). Данное поведение отличается от изменения ресурса configure/channels/{channel_id}.
Примечание
Начиная с версии 3.4 для настройки действий (Actions) по событиям (EventType) можно задать условия срабатывания (Conditions).
Пример тела PUT-запроса, который задает для типа события «Обнаружено лицо» условие выполнения действия «Генерация тревоги», где условие - название группы равно «Перехват»:
[
{
"EventType": "FaceDetected",
"Actions": [
{
"ActionType": "AlarmGeneration",
"ActionBodyJson": "{\"RepeatIntervalMs\":5000,\"Conditions\":[{\"ConditionFieldName\":\"groups\",\"Comparison\":\"Equal\",\"Value\":\"Перехват\"}]"
}
]
}
]
Для каждого события (EventType) могут быть заданы только совместимые атрибуты события (ConditionFieldName). Таблица совместимости событий и атрибутов:
Событие (EventType) |
Совместимые атрибуты события (ConditionFieldName) |
Описание |
Сравнение (Comparison) |
Значение (Value) |
|---|---|---|---|---|
MotionFact |
zoneid |
Уникальный ID зоны детектирования |
Equal, NotEqual |
Строка |
MotionBegin |
zoneid |
Уникальный ID зоны детектирования |
Equal, NotEqual |
Строка |
MotionEnd |
zoneid |
Уникальный ID зоны детектирования |
Equal, NotEqual |
Строка |
CameraLostConnection |
streamtypes |
Название типа потока |
Equal, NotEqual |
MainVideo (Основное видео), AlternativeVideo (Альтернативное видео), MainSound (Основной звук), AlternativeSound (Альтернативный звук), OutputSound (Подача звука), MotionDetection (Детекция движения), IO (I/O), ArchiveVideo (Архивное видео), ArchiveSound (Архивный звук) |
durationinseconds |
Длительность обрыва (в секундах) |
Equal |
Целое число |
|
CameraEstablishConnection |
streamtypes |
Название типа потока |
Equal, NotEqual |
MainVideo (Основное видео), AlternativeVideo (Альтернативное видео), MainSound (Основной звук), AlternativeSound (Альтернативный звук), OutputSound (Подача звука), MotionDetection (Детекция движения), IO (I/O), ArchiveVideo (Архивное видео), ArchiveSound (Архивный звук) |
CameraNoConnection |
streamtypes |
Название типа потока |
Equal, NotEqual |
MainVideo (Основное видео), AlternativeVideo (Альтернативное видео), MainSound (Основной звук), AlternativeSound (Альтернативный звук), OutputSound (Подача звука), MotionDetection (Детекция движения), IO (I/O), ArchiveVideo (Архивное видео), ArchiveSound (Архивный звук) |
durationinseconds |
Длительность обрыва (в секундах) |
Equal |
Целое число |
|
CameraInput |
portid |
Номер входа |
Equal, NotEqual, Bigger, BiggerOrEqual, Smaller, SmallerOrEqual |
Целое число |
portvalue |
Наличие сигнала |
Equal, NotEqual |
true, false |
|
FaceDetected |
isidentified |
Лицо опознано |
Equal, NotEqual |
true, false |
lastname |
Фамилия |
Equal, NotEqual, Like |
Строка |
|
firstname |
Имя |
Equal, NotEqual, Like |
Строка |
|
patronymic |
Отчество |
Equal, NotEqual, Like |
Строка |
|
groups |
Название группы |
Equal, NotEqual, Like |
Строка |
|
additionalinfo |
Дополнительная информация |
Equal, NotEqual, Like |
Строка |
|
emotion |
Эмоция |
Equal, NotEqual |
Unknown (Неизвестная), Neutral (Нейтральная), Happiness (Позитивная), Sadness (Негативная) |
|
LargeNumberOfPeopleInQueue |
zonename |
Название зоны |
Equal, NotEqual, Like |
Строка |
Описание операторов сравнения (Comparison):
Сравнение (Comparison) |
Описание |
|---|---|
Equal |
Проверяет, что значение атрибута события (ConditionFieldName) равно заданному значению (Value). Действие произойдёт, если значения будут равны |
NotEqual |
Проверяет, что значение атрибута события (ConditionFieldName) не равно заданному значению (Value). Действие произойдёт, если значения не будут равны |
Bigger |
Проверяет, что значение атрибута события (ConditionFieldName) больше заданного значения (Value) |
BiggerOrEqual |
Установка значения на выходе камеры |
Smaller |
Проверяет, что значение атрибута события (ConditionFieldName) меньше заданного значения (Value) |
SmallerOrEqual |
Проверяет, что значение атрибута события (ConditionFieldName) меньше или равно заданному значению (Value) |
Like |
Проверяет, что строковое значение атрибута события (ConditionFieldName) содержит подстроку (Value) |