Версия 4.45 от admin на 2026/09/01 14:05

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