Редактировал(а) admin 2026/09/03 12:17

От версии 1.8
отредактировано admin
на 2026/07/23 16:56
Изменить комментарий: Auto-saved during real-time collaboration
К версии 2.1
отредактировано admin
на 2026/07/23 17:43
Изменить комментарий: К данной версии нет комментариев

Сводка

Подробности

Свойства страницы
Содержимое
... ... @@ -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 -{{warning title="ВНИМАНИЕ"}}
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}}

Интерфейс НЕЙРОСС