Изменения документа Отправка событий по входящим подпискам
Редактировал(а) admin 2026/09/03 12:17
Сводка
-
Свойства страницы (1 изменено, 0 добавлено, 0 удалено)
Подробности
- Свойства страницы
-
- Содержимое
-
... ... @@ -14,6 +14,15 @@ 14 14 15 15 С версии 20.55 параметр доступен в интерфейсе НЕЙРОСС. 16 16 17 +После включения функции рассылки событий во внешнюю систему(ы) начинают передаваться все события (в рамках ограничений протокола). 18 + 19 +{{warning title="ВНИМАНИЕ"}} 20 +Рассылка событий осуществляется в режиме реального времени по факту возникновения. Если потребитель должен постоянно быть на связи и «слушать» события. Последующее вычитывание событий НЕ поддерживается. Также есть ограничения на отправку некоторых событий. Полный функционал взаимодействия по ONVIF, в том числе с вычитыванием пропущенных событий, реализовано в Плагине ВИС ~[[[Интеграция с «внешними» информационными системами (ВИС)>>doc:neyross.Настройка Платформы НЕЙРОСС.Инструменты интеграции.Интеграция с «внешними» информационными системами (ВИС).WebHome]]], при этом события передаются по HTTP POST / JSON, а не ONVIF WS-Notification. 21 +{{/warning}} 22 + 23 +(% class="wikigeneratedid" %) 24 +Поддерживается фильтрация событий по топикам (типу ONVIF-события) и по содержимому. Фильтрация событий осуществляется на стороне «внешней» системы. Механизм основан на стандартном ONVIF WS-Notification Subscribe с фильтрами TopicExpression и MessageContent (XPath). 25 + 17 17 == «Включение» рассылки событий == 18 18 19 19 При необходимости передачи событий по входящим ONVIF-подпискам в блоке **Прочее **установите флаг в поле** Отправлять события по входящим подпискам**. ... ... @@ -20,12 +20,115 @@ 20 20 21 21 Нажмите на кнопку **Сохранить**. Изменения вступают в силу через 2–3 минуты, перезагрузка узла не требуется. 22 22 23 -== Фильтрациясобытий==32 +== Оформление подписки == 24 24 25 - Послевключенияфункции рассылки событий во внешнюю систему(ы) начинают передаваться все события (в рамках ограничений протокола).34 +=== Endpoint === 26 26 27 -{{ warningtitle="ВНИМАНИЕ"}}28 - Рассылка событий осуществляется в режиме реального времени по факту возникновения. Если потребительдолжен постоянно быть на связи и «слушать» события. Последующее вычитывание событий НЕ поддерживается.Также есть ограничения на отправку некоторых событий.Полный функционал взаимодействия по ONVIF, в том числе с вычитыванием пропущенных событий, реализовано в Плагине ВИС ~[[[Интеграция с «внешними» информационными системами (ВИС)>>doc:neyross.Настройка Платформы НЕЙРОСС.Инструменты интеграции.Интеграция с «внешними» информационными системами (ВИС).WebHome]]], при этом события передаются по HTTP POST/JSON, а не ONVIF WS-Notification.29 -{{/ warning}}36 +{{code language="none"}} 37 +http://<IP-адрес Платформы>/soap/onvif/events 38 +{{/code}} 30 30 31 -Фильтрация событий осуществляется на стороне «внешней» системы. 40 +=== Подписка без фильтров === 41 + 42 +(% class="wikigeneratedid" %) 43 +Отправить SOAP Subscribe с указанием только ConsumerReference и InitialTerminationTime. На Consumer должны приходить все ONVIF-события, доступные в Платформе НЕЙРОСС по подписке. 44 + 45 +=== Подписка с фильтрацией событий === 46 + 47 +(% class="wikigeneratedid" %) 48 +{{{Фильтр задаётся в блоке <wsn:Filter> запроса}}} 49 + 50 + 51 +(% class="wikigeneratedid" %) 52 +**Фильтр по топикам** 53 + 54 +Фильтр по топикам задается строкой с топиками, разделенными знаком "|" . фильтр работает по правилу ИЛИ — событие проходит, если topic совпадает с любым из перечисленных. 55 + 56 +Типовые topic'и событий СКУД приведены в таблице ниже: 57 + 58 +|=Topic|=Смысл 59 +|((( 60 +ter:AccessControl/AccessGranted/Credential 61 +)))|((( 62 +Доступ разрешён 63 +))) 64 +|((( 65 +ter:AccessControl/AccessTaken/Credential 66 +)))|((( 67 +Проход совершен 68 +))) 69 +|((( 70 +ter:AccessControl/AccessDenied/Credential 71 +)))|((( 72 +Доступ запрещён 73 +))) 74 +|((( 75 +ter:AccessControl/DoorState/Door 76 +)))|((( 77 +Состояние двери 78 +))) 79 +|((( 80 +ter:AccessControl/... 81 +)))|((( 82 +Прочие события Profile C 83 +))) 84 + 85 + 86 + 87 +{{info}} 88 +Топик события можно уточнить по XML событий в Журнале событий или через Редактор тем извещений ~[[[Система получает неизвестные события. Как их интерпретировать?>>doc:neyross.Обслуживание Платформы НЕЙРОСС.Часто задаваемые вопросы | Платформа НЕЙРОСС.Система получает неизвестные события\. Как их интерпретировать?.WebHome]]]. 89 +{{/info}} 90 + 91 + 92 +Пример фильтра по топикам: 93 + 94 +{{code}} 95 + <wsn:Filter> 96 + <wsn:TopicExpression Dialect="http://www.onvif.org/ver10/tev/topicExpression/ConcreteSet"> 97 + ter:AccessControl/AccessGranted/Credential|ter:AccessControl/AccessTaken/Credential 98 + </wsn:TopicExpression> 99 + </wsn:Filter> 100 + 101 +{{/code}} 102 + 103 + 104 +**Фильтр по содержимому ** 105 + 106 +Фильтр задаётся через xPath выражение, которое может включать как условия по И, так и по ИЛИ. 107 + 108 +Пример фильтра по точкам доступа: 109 + 110 +{{code}} 111 +<wsn:Filter> 112 + <wsn:MessageContent Dialect="http://www.w3.org/TR/1999/REC-xpath-19991116"> 113 + //o:Message/o:Source/o:SimpleItem[@Name='AccessPointToken' and 114 + (@Value='123e4567-e89b-12d3-a456-426614174000' or 115 + @Value='abcd1234-5678-90ab-cdef-1234567890ab')] 116 + </wsn:MessageContent> 117 +</wsn:Filter> 118 +{{/code}} 119 + 120 +В примере выше производится поиск в сообщении блока Source, внутри которого элемент SimpleItem, у которого Name=AccessPointToken и Value равен одному из указанных UUID точек доступа. 121 + 122 +UUID точки доступа (token) вы можете уточнить в разделе Элементы или найти в Журнале событий событие от данной точки доступа, XML ONVIF-извещения найти блок Source / SimpleItem с @Name='AccessPointToken' и скопировать @Value ~[[[Журнал событий>>doc:ui.Журнал событий.WebHome]]]. 123 + 124 + 125 +**Фильтр по топику и содержимому** 126 + 127 + Если заданы фильтры по топикам и по содержимому, то эти фильтры работают по правилу И, то есть событие должно удовлетворять обоим условиям. 128 + 129 +Пример фильтра: 130 + 131 +{{code}} 132 +<wsn:Filter> 133 + <wsn:TopicExpression Dialect="http://www.onvif.org/ver10/tev/topicExpression/ConcreteSet"> 134 + ter:AccessControl/AccessGranted/Credential|ter:AccessControl/AccessTaken/Credential 135 + </wsn:TopicExpression> 136 + <wsn:MessageContent Dialect="http://www.w3.org/TR/1999/REC-xpath-19991116"> 137 + //o:Message/o:Source/o:SimpleItem[@Name='AccessPointToken' and 138 + (@Value='123e4567-e89b-12d3-a456-426614174000' or 139 + @Value='abcd1234-5678-90ab-cdef-1234567890ab' or 140 + @Value='d3bea616-7d17-4edd-b45f-70d7cae13542')] 141 + </wsn:MessageContent> 142 + </wsn:Filter> 143 +{{/code}}