На странице:

Общие сведения

  • GET http://IP-адрес:порт/префикс/archive/events/detectors/{ENDTIME}/{BEGINTIME} – получение событий от детекторов со всех серверов домена.

    Внимание!

    • Синтаксис ENDTIME и BEGINTIME описан в разделе Получение содержания архивов.
    • Если в запросе ENDTIME < BEGINTIME, то события в ответе будут отсортированы по возрастанию времени. 
    • Если ENDTIME > BEGINTIME, то сортировка будет по убыванию.
  • GET http://IP-адрес:порт/префикс/archive/events/detectors/{HOSTNAME}/{ENDTIME}/{BEGINTIME} – получение событий от детекторов с конкретного сервера.

    {HOSTNAME} – имя сервера (см. Получение списка Серверов).

  • GET http://IP-адрес:порт/префикс/archive/events/detectors/{VIDEOSOURCEID}/{ENDTIME}/{BEGINTIME} – получение событий от детекторов с конкретной камеры.

    {VIDEOSOURCEID} – трехкомпонентный идентификатор endpoint-а источника (см. Получение списка камер и информации о них). Например, "SERVER1/DeviceIpint.3/SourceEndpoint.video:0:0".

ПараметрОбязательныйОписание
limitНетЛимит событий от детекторов в ответе. Если не задан, по умолчанию 100
offsetНетСмещение результатов выдачи на заданное число. Например, если запрос с offset=0 вернул 100 результатов, то для получения следующих необходимо выполнить запрос с offset=100. Если на второй запрос было возвращено 250 результатов, то для получения следующих требуется задать в запросе offset=350 и т.д.
typeНет

Получение событий от детектора конкретного типа. Список возможных значений параметра type приведен ниже в таблице.

Если необходимо получить события от нескольких типов, их необходимо перечислить через запятую

joinНет
  • Если join=1, то в ответ будет выполняться склейка двухфазных событий и возвращаться параметр duration – длительность события
  • Если join=0, то в ответе двухфазные события не будут склеиваться
limit_to_archiveНет

Если limit_to_archive=1, то ответ вернет события только из доступной части архива (см. Настройка ограничения доступности архива)

archiveНет

Имя архива из запроса получения списка архивов (см. Получение содержания архивов)

detectorНет

Получение событий от конкретного детектора по определенной камерой. Для получения конкретного значения можно выполнить запрос Получение списка детекторов камеры.

В результате после выполнения запроса значение для параметра detector будет указано в параметре name, например:

  • "name" : "hosts/SERVER/AVDetector.1/EventSupplier"

Внимание!

Для корректной работы параметров detector, archive и limit_to_archive необходимо указывать {VIDEOSOURCEID} в адресе запроса.

Примеры запросов

  • http://127.0.0.1:80/archive/events/detectors/Server1/DeviceIpint.2/SourceEndpoint.video:0:0/past/future?limit=10&offset=0 – получить события по указанной камере, отсортированные по убыванию. Максимальное количество – 10.
  • http://127.0.0.1:80/archive/events/detectors/Server1/past/future?limit=5&offset=0 – получить события от всех детекторов с Server1. Максимальное количество по каждому детектору – 5.
  • http://127.0.0.1:80/archive/events/detectors/Server1/past/future?limit=5&offset=0&type=Ray – получить события всех лучей с Server1. Максимальное количество по каждому лучу – 5.
  • http://127.0.0.1:80/archive/events/detectors/Server1/DeviceIpint.1/SourceEndpoint.video:0:0/future/past?limit=100&detector=hosts/Server1/AVDetector.1/EventSupplier – получить события от конкретного детектора с Server1. 
  • http://root:root@127.0.0.1:80/archive/events/detectors/Server1/DeviceIpint.1/SourceEndpoint.video:0:0/20230323T112000.000/20230430T210000.000?limit=100&offset=0&type=listed_face_detected,MotionDetected – получить события от нескольких детекторов с Server1. Детекторы необходимо перечислить через запятую.
  • http://127.0.0.1:80/archive/events/detectors/past/future?limit=1&type=Ray – получить текущее состояние всех лучей домена.

Внимание!

Рекомендуется использовать параметр past/future только в первом запросе. Затем следует получить timestamp самой последней записи и использовать его для запрашивания последующих записей. Использование параметра past/future вместе с параметрами limit и offset в последующих запросах может привести к возникновению дубликатов записей.

Примеры ответов

1) join=1

{
 "events": [
  {
   "duration": "000000.467000",
   "id": "09b8729a-a6fc-4ffa-8a83-aebc5c19d171",
   "origin": "hosts/Server1/AppDataDetector.1/EventSupplier",
   "rectangles": [
    {
     "bottom": "0.20831976890563964",
     "index": "0",
     "left": "0.57320795059204099",
     "right": "0.6804207420349121",
     "top": "0.09125151634216308"
    }
   ],
   "source": "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0",
   "timestamp": "20190618T112815.527000",
   "type": "moveInZone"
  },
  {
   "duration": "000004.154000",
   "id": "90c5d09e-c0bb-4c49-bf8b-22d3afffe8c1",
   "origin": "hosts/Server1/AppDataDetector.1/EventSupplier",
   "rectangles": [
    {
     "bottom": "0.72451157569885249",
     "index": "0",
     "left": "0.092941055297851571",
     "right": "0.24284084320068361",
     "top": "0.4965816402435303"
    }
   ],
   "source": "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0",
   "timestamp": "20190618T112814.426000",
   "type": "moveInZone"
  },
  {
   "duration": "000005.155000",
   "id": "dc953fad-bb08-4bae-bdce-62a09ab2dbd9",
   "origin": "hosts/Server1/AppDataDetector.1/EventSupplier",
   "rectangles": [
    {
     "bottom": "0.37916545867919921",
     "index": "0",
     "left": "0.10621988296508789",
     "right": "0.2311831474304199",
     "top": "0.11115360260009766"
    }
   ],
   "source": "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0",
   "timestamp": "20190618T112814.293000",
   "type": "moveInZone"
  },
  {
   "duration": "000003.170000",
   "id": "f00875f0-bad7-4e74-879c-0a564baa9d36",
   "origin": "hosts/Server1/AppDataDetector.1/EventSupplier",
   "rectangles": [
    {
     "bottom": "0.2848846626281738",
     "index": "0",
     "left": "0.11811468601226806",
     "right": "0.18662774562835693",
     "top": "0.11245393753051756"
    }
   ],
   "source": "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0",
   "timestamp": "20190618T112813.358000",
   "type": "moveInZone"
  }
 ],
 "more": true
}

2) join=0

{
 "events": [
  {
   "alertState": "ended",
   "id": "cd3571bb-73c1-45cb-8965-a01e167836db",
   "multiPhaseSyncId": "6d72973d-7188-4fa7-9bf9-e3ba6013f2e3",
   "origin": "hosts/Server1/AppDataDetector.1/EventSupplier",
   "rectangles": [],
   "source": "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0",
   "timestamp": "20190618T125142.417000",
   "type": "moveInZone"
  },
  {
   "alertState": "began",
   "id": "310ce582-5f0d-4c27-a1d5-b14ccc5a877d",
   "multiPhaseSyncId": "6d72973d-7188-4fa7-9bf9-e3ba6013f2e3",
   "origin": "hosts/Server1/AppDataDetector.1/EventSupplier",
   "rectangles": [
    {
     "bottom": "0.46943313598632813",
     "index": "0",
     "left": "0.14642228603363036",
     "right": "0.23025640964508054",
     "top": "0.027766456604003897"
    }
   ],
   "source": "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0",
   "timestamp": "20190618T125142.200000",
   "type": "moveInZone"
  },
  {
   "alertState": "began",
   "id": "aa193bbc-89e8-4204-8805-ac8c915b323c",
   "multiPhaseSyncId": "807248bf-4cee-431e-a29f-18ee0ed911ce",
   "origin": "hosts/Server1/AppDataDetector.1/EventSupplier",
   "rectangles": [
    {
     "bottom": "0.36835212707519532",
     "index": "0",
     "left": "0.072501201629638662",
     "right": "0.19335731506347656",
     "top": "0.03212909698486327"
    }
   ],
   "source": "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0",
   "timestamp": "20190618T125141.966000",
   "type": "moveInZone"
  },
  {
   "alertState": "ended",
   "id": "5b15234d-2a7f-415f-af57-2ac1ce5aa75a",
   "multiPhaseSyncId": "17fca913-f7a3-4f29-997f-d02a575d9fc4",
   "origin": "hosts/Server1/AppDataDetector.1/EventSupplier",
   "rectangles": [],
   "source": "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0",
   "timestamp": "20190618T125136.978000",
   "type": "moveInZone"
  },
  {
   "alertState": "ended",
   "id": "48882f92-a809-424c-b7a7-55ac56b05061",
   "multiPhaseSyncId": "8bb9edbe-4391-4c26-8c7a-7faf620a62eb",
   "origin": "hosts/Server1/AppDataDetector.1/EventSupplier",
   "rectangles": [],
   "source": "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0",
   "timestamp": "20190618T125136.661000",
   "type": "moveInZone"
  },
  {
   "alertState": "ended",
   "id": "6e98f979-c4f4-4c78-bbf4-6fc268219d79",
   "multiPhaseSyncId": "92534e2f-0f88-4698-a1a2-4e70d10cb00a",
   "origin": "hosts/Server1/AppDataDetector.1/EventSupplier",
   "rectangles": [],
   "source": "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0",
   "timestamp": "20190618T125136.477000",
   "type": "moveInZone"
  },
  {
   "alertState": "ended",
   "id": "c9dff8bc-423b-414b-8dee-0a0b119a43df",
   "multiPhaseSyncId": "c8785151-f344-4c21-88de-6c339139afdf",
   "origin": "hosts/Server1/AppDataDetector.1/EventSupplier",
   "rectangles": [],
   "source": "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0",
   "timestamp": "20190618T125135.843000",
   "type": "moveInZone"
  },
  {
   "alertState": "ended",
   "id": "db1f1147-ed50-46ff-84b7-8f06676d8f8e",
   "multiPhaseSyncId": "7eceb0b4-c04d-4e17-a405-3aff419fd94a",
   "origin": "hosts/Server1/AppDataDetector.1/EventSupplier",
   "rectangles": [],
   "source": "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0",
   "timestamp": "20190618T125135.677000",
   "type": "moveInZone"
  },
  {
   "alertState": "began",
   "id": "f9ccceda-9e16-4832-9f1f-1270fd0be365",
   "multiPhaseSyncId": "17fca913-f7a3-4f29-997f-d02a575d9fc4",
   "origin": "hosts/Server1/AppDataDetector.1/EventSupplier",
   "rectangles": [
    {
     "bottom": "0.30296741485595702",
     "index": "0",
     "left": "0.14849423646926879",
     "right": "0.21262614011764525",
     "top": "0.092105445861816404"
    }
   ],
   "source": "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0",
   "timestamp": "20190618T125135.677000",
   "type": "moveInZone"
  },
  {
   "alertState": "began",
   "id": "87ca4e1e-4a8c-433a-8b67-6e73f65fa0e2",
   "multiPhaseSyncId": "7eceb0b4-c04d-4e17-a405-3aff419fd94a",
   "origin": "hosts/Server1/AppDataDetector.1/EventSupplier",
   "rectangles": [
    {
     "bottom": "0.22597263336181642",
     "index": "0",
     "left": "0.080717468261718744",
     "right": "0.19577339172363281",
     "top": "0.014194698333740235"
    }
   ],
   "source": "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0",
   "timestamp": "20190618T125134.909000",
   "type": "moveInZone"
  }
 ],
 "more": true
}

Внимание!

По умолчанию таймаут запроса – 10 секунд.

Если сервер за 10 секунд не успеет вернуть все события (количество задается параметром limit), ответ будет следующим:

{
 "events": [],
 "more": false
}

В этом случае необходимо повторить запрос и уменьшить значение параметра limit.

Примечание

  • Параметр multiPhaseSyncId будет в ответе только для двухфазных тревог с параметром alertState.
  • Поле timestamp не уникальное, поэтому может понадобиться пропуск уже полученных ранее событий от детекторов от начала интервала поиска.

При запросе событий от детектора очереди в ответе будет дополнительный параметр extra, который будет содержать оценку длины очереди, выраженной минимальным и максимальным значением.

  {
   "alertState": "happened",
   "extra": [
    {
     "queueMax": "4"
    },
    {
     "queueMin": "4"
    }
   ],
   "id": "b17129b2-1588-794b-94f6-d078a226efb2",
   "origin": "hosts/Server1/AVDetector.4/EventSupplier",
   "rectangles": [],
   "source": "hosts/Server1/DeviceIpint.2/SourceEndpoint.video:0:0",
   "timestamp": "20181206T075621.621000",
   "type": "QueueDetected"
  }
}

При запросе событий от детекторов распознавания номеров в ответе будет дополнительный параметр plate, который будет содержать распознанный номер транспортного средства в формате Unicode.

{
			"alertState" : "happened",
			"id" : "f1f334a3-3fb3-4770-80bf-c6519240b5cf",
			"origin" : "hosts/Server1/AVDetector.1/EventSupplier",
			"plate" : "\u0412427\u0412\u041c99",
			"rectangles" : 
			[
				{
					"bottom" : 0.70833333333333337,
					"index" : 0,
					"left" : 0.4597222222222222,
					"right" : 0.67222222222222228,
					"top" : 0.64409722222222221
				}
			],
			"source" : "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0",
			"timestamp" : "20230725T140945.208000",
			"type" : "plateRecognized"
		}

Возможные значения параметра type

Внимание!

Возможные значения параметра type зависят от версии продукта и установленных детекторов. Для получения актуальных значений можно выполнить запрос получения списка детекторов по конкретной камере (см. Получение списка детекторов камеры).

Детекторtype
Трекер объектов или Нейротрекер-
Пересечение линииoneLine
Движение в областиmoveInZone
Остановка в областиstopInZone
Вход в областьcomeInZone
Выход из областиoutOfZone
Длительное пребывание в областиlongInZone
Множество объектовlostObject
Детектор распознавания номеровplateRecognized
Детектор распознавания номеров (распознавание номера из списка)listed_lpr_detected
Детектор лицfaceAppeared
Детектор лиц (распознавание лица из списка)listed_face_detected
Подсчет посетителейPeopleIn, PeopleOut
Детектор очередиQueueDetected
Детектор огняFireDetected
Детектор дымаSmokeDetected
НейросчетчикlotsObjects
Изменение положенияSceneChangeDetected
Деградация качестваCameraBlindDetected
Детектор зашумления изображенияImageDegradation
Детектор размытого изображенияBlurredDegradation
Детектор артефактов сжатияCompressedDegradation
Детектор движенияMotionDetected
Отсутствие звукаNullAudio
Детектор сигналаSignalAudio
Детектор шума

NoiseAudio

Детектор позы-
Детектор лежащего человекаrecumbent
Детектор сидящего человекаsitDown
Детектор поднятых рукhandsUp
Детектор стрелкаactiveShooter
Детектор уровня водыLevelOut
Детектор держания за порученьhandRail
Счетчик людейlotsObjects
Детектор близко стоящих людейpeopleDistance
Маскирование людейenabledMaskEvents

Внимание!

  • Не гарантируется регистрозависимость типов событий от детекторов. Например, значения ComeInZonecomeInZoneCOMEINZOne следует рассматривать как одинаковые.
  • Если было получено значение, не входящее в указанный список, значит это событие от встроенного детектора.
  • No labels