Разделы
Описание продуктов ITV по ссылке
Для установки модулей на хосте требуется наличие JRE (от 11.x и выше). Также доступен docker-образ.
Для установки в качестве демона-Linux необходимо (приведен порядок действий для axxsonNet, для ПК-Интеллект порядок точно такой же):
mkdir /opt/axon-gate
cp axon-gate.jar /opt/axon-gate
cp application.yml /opt/axon-gate
mkdir -p /var/log/axon-gate
Настроить к ней путь в конфиге application.yml:
logging:
path: /var/log/axon-gate
cd /etc/init.d
chmod +x /opt/axon-gate/axon-gate.jar
ln -s /opt/axon-gate/axon-gate.jar axon-gate
systemctl daemon-reload
service axon-gate start
service axon-gate status
service axon-gate stop
Запуск с командной строки:
java -jar <модуль>.jar
Модуль обеспечивает:
AXXSONSOFT_INTELLECT
. У устройства обязательным параметром является параметр „connect“ - строковый параметр, остальные параметры необязательны и зависят от состава сигналов камер, которые будут обрабатываться.В параметр
connect
модуль запишет строку http для получения он-лайн видео-потока.
В типовой конфигурации, в схеме подключения для камеры в поле АДРЕС
схемы подключения необходимо указать ID камеры в ПК-И.
В конфигурации модуля необходимо указать требуемые параметры подключения. Пример конфигурационного модуля указан ниже. В секции events.refs
указываются значения для фильтрации потока событий, получаемый через web socket. В модуле интеграции поддерживается следующие атрибуты событий ПК-И:
Для получения контента с серверов распознавания лиц, в секции face.servers
небходимо указать их id и ссылки в ПК-И.
# tomcat port
server:
port: 8788
spring:
profiles:
active: prod
logging:
path: /var/log/itv-gate
level:
root: INFO
event-receiver: INFO
event-processor: INFO
cam-holder: INFO
url-builder: INFO
#
# адрес подключения к ПК-ИНТЕЛЛЕКТ
#
itv:
rest:
url: http://10.10.10.10:3111/
user: admin
password: admin
# урл прокси, должен заменить оригинальный урл видео в ссылках
proxy: https://example.ru/video/
http:
url: http://10.10.10.10:3140/
#
# Параметры подключения к серверам платформы
#
sem-next:
rest:
url: http://localhost:8080/sem-restservices/
user: root
password: xxxxxxx
artemis:
broker-url: tcp://localhost:61616
user: artemis-user
password: xxxxxxx
#
# тестовые посылки
#
emulator:
enabled: false
period: 30
events:
# задержка отправки в платформу, секунд
delay: 30
# сопоставление типов событий интеллект идентификаторам событий sem-next и каналам параметров
refs:
# события обнаружения людей без маски
-
# объект интеллект, значение атрибута src_objecttype
intellectObject: FIRSERVER
# действие события значение атрибута src_action
intellectAction: MASK_NOT_DETECTED
# normal = маска не надета
evasion: normal
# атрибут события для получения идентификатора камеры, поддерживаются CAM_ID, SRC_OBJECT_ID
camIdAttr: CAM_ID
# идентификатор события sem-next (event.id), может быть не задан если событие не требуется
semEventId: 5030
# шаблон текста события, поддерживаются подстановки
# $CAM - название камеры с идентификатором, прим CAM:43
# $ZONE - зона размещения камеры в sem-next
# $NAME - имя, $PATRONYMIC - отчество, $SURNAME - фамилия человека
# $DEPARTMENT - отдел
# $EMOTION - эмоция
# $ETHNICITY - рассовая принадлежность
# $GENDER - пол
# $PARAM0 - значение param0 из атрибутов события камер
# $SIMILARITY - точность распознавания, процентов
semEventMessageTemplate: $CAM - $ZONE, человек без маски $NAME $PATRONYMIC $SURNAME из $DEPARTMENT. Точность распознавания $SIMILARITY%.
# канал устройства sem-next, связанный с событием интеллект, для отправки значение
semChannel: detectMask
# значение, отправляемое в канал (значение или подстановка $LIVE_VIDEO)
value: 1
# бывает ли миниатюра для данного события на сервере распознавания лиц
face: true
-
intellectObject: FIRSERVER
intellectAction: MASK_NOT_RIGHT_PLACE
evasion: normal
camIdAttr: CAM_ID
semEventId: 5030
semEventMessageTemplate: $CAM - $ZONE, лицо не опознано
semChannel: detectMask
value: 1
face: true
# люди с неправильно надетой маской
-
intellectObject: FIRSERVER
intellectAction: MASK_NOT_DETECTED
evasion: mask_not_in_place
camIdAttr: CAM_ID
semEventId: 5029
semEventMessageTemplate: $CAM - $ZONE, человек без маски $NAME $PATRONYMIC $SURNAME из $DEPARTMENT. Точность распознавания $SIMILARITY%.
semChannel: detectMask
value: 1
face: true
-
intellectObject: FIRSERVER
intellectAction: MASK_NOT_RIGHT_PLACE
evasion: mask_not_in_place
camIdAttr: CAM_ID
semEventId: 5029
semEventMessageTemplate: $CAM - $ZONE, лицо не опознано
semChannel: detectMask
value: 1
face: true
# обнаружение человеков в комнате
-
intellectObject: _POSE_DETECTOR
intellectAction: ANY_POSE_ACTION
camIdAttr: SRC_OBJECT_ID
semEventId:
semEventMessageTemplate:
semChannel: noPeople
value: true
# возможность автоматического завершения события по таймеру
autoclose:
enabled: true
# задержка, секунд
delay: 300
# значение закрывающего измерения
value: false
# обнаружение скоплений людей
-
intellectObject: _POSE_DETECTOR
intellectAction: DISTANCE_DETECTOR_EVENT
camIdAttr: SRC_OBJECT_ID
semEventId: 5028
semEventMessageTemplate: $CAM - $ZONE
semChannel: detectGroup
value: 1
# встречи апликанта и студента
-
intellectObject: CAM
intellectAction: DEPARTMENT
camIdAttr: SRC_OBJECT_ID
semEventId: 5031
semEventMessageTemplate: $CAM - $ZONE, $PARAM0
semChannel: detectApproach
value: 1
# камера включена/выключена
-
intellectObject: CAM
intellectAction: ATTACH
camIdAttr: SRC_OBJECT_ID
semEventId:
semChannel: workState
value: true
-
intellectObject: CAM
intellectAction: DETACH
camIdAttr: SRC_OBJECT_ID
semEventId:
semChannel: workState
value: false
# стоит на охране/снята с охраны
-
intellectObject: CAM
intellectAction: ARM
camIdAttr: SRC_OBJECT_ID
semEventId:
semChannel: secureState
value: true
-
intellectObject: CAM
intellectAction: DISARM
camIdAttr: SRC_OBJECT_ID
semEventId:
semChannel: secureState
value: false
# идет ли запись
-
intellectObject: CAM
intellectAction: REC
camIdAttr: SRC_OBJECT_ID
semEventId:
semChannel: recordState
value: true
-
intellectObject: CAM
intellectAction: REC_STOP
camIdAttr: SRC_OBJECT_ID
semEventId:
semChannel: recordState
value: false
# сигнал тревоги
-
intellectObject: CAM
intellectAction: MD_START
camIdAttr: SRC_OBJECT_ID
semEventId:
semChannel: alarmState
value: true
-
intellectObject: CAM
intellectAction: MD_STOP
camIdAttr: SRC_OBJECT_ID
semEventId:
semChannel: alarmState
value: false
# серверы распознавания лиц
face:
servers:
-
id: 1
proxy: https://example.ru/face/
-
id: 2
proxy: https://example.ru/face2/
-
id: 3
proxy: https://example.ru/face3/
-
id: 4
proxy: https://example.ru/face4/
в конфигурационном файле значения semChannel и value соответсвуют названию параметров и их значениям в Устройстве платформы.
Модуль обеспечивает:
AXXSON_NEXT
. У устройства обязательным параметром является параметр „connect“ - строковый параметр, остальные параметры необязательны и зависят от состава сигналов камер, которые будут обрабатываться.В параметр
connect
модуль запишет строку http для получения он-лайн видео-потока.
В типовой конфигурации, в схеме подключения для камеры в поле АДРЕС
схемы подключения необходимо указать ID камеры в ПК-И.
В конфигурации модуля необходимо указать требуемые параметры подключения. Пример конфигурационного модуля указан ниже. В секции events.refs
указываются значения для фильтрации потока событий, получаемый через web socket. В модуле интеграции поддерживается следующие атрибуты событий Интеллект X:
# tomcat port - значение порта не меняются
server:
port: 8789
servlet:
context-path: /axon
spring:
mvc:
# нужно для эмулятора
async:
request-timeout: -1
data:
rest:
# пагинация, кол-во страниц по умолчанию
default-page-size: 100
# dev | prod профили логирования
profiles:
active: prod
# сериализация Date в unix timestamp (см. https://github.com/FasterXML/jackson-databind/wiki/Serialization-Features)
jackson:
serialization:
write-dates-as-timestamps: true
# path to logs
logging:
path: logs
level:
root: INFO
receiver: INFO
emulator: INFO
event-processor: INFO
url-builder: INFO
# эмулятор, эмулирует события камер AxxonNet
emulator: false
axon:
websocket:
# урл подключения к вэбсокету, поставляющему события камер
# url: ws://183.16.4.20:8000/events
# URL эмулятора, его реализует это же приложение, для целей разработки
url: ws://localhost:8789/axon/emulator
# данные basic авторизации
user: root
password: root
rest:
url: http://183.16.4.20:8000/
user: root
password: root
# урл прокси, должен заменить оригинальный урл видео в ссылках
proxy: http://183.16.4.20:8000/
sem-next:
rest:
url: http://10.3.2.103/sem-restservices/
user: root
password: pass
artemis:
broker-url: tcp://10.4.2.58:61616
user: artemis
password: pass
event-import-queue: jms.queue.EventImport
measure-queue: jms.queue.Measure
events:
# задержка отправки в sem-next, секунд
delay: 10
# сопоставление типов событий axon событиям и каналам sem-next
refs:
-
# событие axon, значение атрибута event_type
event_type: EvasionDetected
# событие axon, значение атрибута type
type: detector_event
# идентификатор события sem-next (event.id), может быть не задан если событие не требуется
semEventId: 7509
# шаблон текста события, поддерживаются подстановки
# $CAM - название камеры (используется имя схемы подключения, DeviceConnect.name)
# $ZONE - зона размещения камеры в sem-next
semEventMessageTemplate: $CAM - $ZONE, человек без маски.
# канал устройства sem-next для отправки значения
semChannel: detectMask
# значение, отправляемое в канал
value: 1
# бывает ли миниатюра для данного события
face: true
Описание продуктов ComBox T по ссылке
Для установки модулей на хосте требуется наличие JRE (от 11.x и выше). Также доступен docker-образ.
Для установки в качестве демона-Linux необходимо :
mkdir /opt/combox-gate
cp combox-gate.jar /opt/combox-gate
cp application.yml /opt/combox-gate
mkdir -p /var/log/combox-gate
Настроить к ней путь в конфиге application.yml:
logging:
file:
path: /var/log/combox
name: combox.log
config: classpath:logback-spring.xml
level:
root: ERROR
stat: INFO
ru:
infsys: DEBUG
org:
springframework:
web: ERROR
# Можно смотреть транзакции логом ниже (поставить TRACE уровень)
transaction:
interceptor: ERROR
cd /etc/init.d
chmod +x /opt/combox-gate/combox-gate.jar
ln -s /opt/combox-gate/combox-gate.jar combox-gate
systemctl daemon-reload
service combox-gate start
service combox-gate status
service combox-gate stop
Запуск с командной строки:
java -jar <модуль>.jar
Модуль обеспечивает:
"type" : "lotsObjects"
Ниже представлен типовой конфиг application.yml
с описанием секций
spring:
main:
web-application-type: none
allow-circular-references: true
# dev | prod профили логирования (см. конфиг logback-spring.xml), для докер сборки задавать dev, для локальной prod
profiles:
active: prod
# сериализация Date в unix timestamp (см. https://github.com/FasterXML/jackson-databind/wiki/Serialization-Features)
jackson:
serialization:
write-dates-as-timestamps: true
# path to logs
logging:
file:
path: /var/log/combox
name: combox.log
config: classpath:logback-spring.xml
level:
root: ERROR
stat: INFO
ru:
infsys: DEBUG
org:
springframework:
web: ERROR
# Можно смотреть транзакции логом ниже (поставить TRACE уровень)
transaction:
interceptor: ERROR
# Параметры настройки на Combox
combox:
rest:
# url api - адрес VMS сервера COMBOX и логин пароль
url: http://89.223.80.202:8080/
user: root
password: root
# количество событий читаемое с Combox (по умолчанию 100)
limit: 200
# идентификатор зоны в котором работает Combox (по умолчанию "Europe/Moscow")
timeZoneId: GMT
# Параметры настройки в платформе Inspark
sem-next:
rest:
# адрес webservices, логин пароль пользователя , которому должны быть доступны объекты, на которых стоят камеры VMS
url: http://webservices.example.com/sem-restservices/
user: user_VMS
password: Semona
artemis:
# адрес сервиса artemis и очереди
broker-url: tcp://127.0.0.1:61616
user: artemis
password: password_artemis
event-import-queue: jms.queue.EventImport
measure-queue: jms.queue.Measure
# параметры интеграции
integration:
# Период запуска и опроса камер Combox для определения присутствия людей в миллисекундах
# (по умолчанию 120000 т.е. 2 мин.)
period: 120000
# Настройка стандартных топиков каналов устройства Combox в платформе
channels:
camName: cam_name # название камеры
camOnline: cam_online # работоспособность камеры (1 - работоспособна)
noPeople: no_people # отсутствие людей (1 - отсутствуют, 0 - зафиксированы двигающиеся объекты)
Выполнить следующие настройки:
Создать классификатор устройства VIDEOCAMERA.COMBOX
Cоздать устройство c тип устройства AXXO_NEXT и классификатором VIDEOCAMERA.COMBOX
Задать топик устройства, например combox
Задать для устройства каналы (параметры), см. выше в настройке модуля они прописываются в секции integration
В Типовой конфигурации, которая будет назначаться на контроллер объекта, задать в схему соединения это устройство, при этом в Адрес схемы задать номер камеры в VMS Combox.
Номера камер следует заранее получить с VMS ComBox
После того как выполнена настройка выполнить старт модуля. Имя камеры и ее доступность заполняется в полях устройства объекта при старте сервиса.
При получении значения 1 в параметре, отвечающем за детекцию объектов (noPeople) можно настроить правило, по которому выключается свет, для 0 соответственно включение света.
Описание продуктов Sigur по ссылке
Для установки модулей на хосте требуется наличие JRE (от 11.x и выше). Также доступен docker-образ.
Для установки в качестве демона-Linux необходимо :
mkdir /opt/combox-gate
cp sigur-gate.jar /opt/sigur-gate
cp application.yml /opt/sigur-gate
mkdir -p /var/log/sigur-gate
Настроить к ней путь в конфиге application.yml:
logging:
file:
path: ./logs/
config: ./logback-spring.xml
level:
root: ERROR
stat: INFO
ru:
infsys: DEBUG
org:
springframework:
web: ERROR
# Можно смотреть транзакции логом ниже (поставить TRACE уровень)
transaction:
interceptor: ERROR
hibernate: WARN
cd /etc/init.d
chmod +x /opt/sigur-gate/sigur-gate.jar
ln -s /opt/sigur-gate/sigur-gate.jar sigur-gate
systemctl daemon-reload
service sigur-gate start
service sigur-gate status
service sigur-gate stop
Запуск с командной строки:
java -jar sigur-gate.jar
Модуль поддерживает два режима запуска
java -jar sigur-gate.jar mode1
java -jar sigur-gate.jar
Модуль обеспечивает:
Ниже представлен типовой конфиг application.yml
с описанием секций
spring:
main:
web-application-type: none
allow-circular-references: true
# dev | prod профили логирования (см. конфиг logback-spring.xml), для дкер сборки dev, для локальной prod
profiles:
active: prod
jackson:
serialization:
write-dates-as-timestamps: true
# параметры логгирования
logging:
file:
path: ./logs/
config: ./logback-spring.xml
level:
root: ERROR
stat: INFO
ru:
infsys: DEBUG
org:
springframework:
web: ERROR
# Можно смотреть транзакции логом ниже (поставить TRACE уровень)
transaction:
interceptor: ERROR
hibernate: WARN
# параметры сервара Sigur
sigur:
server:
host: 10.4.2.167
port: 3312
user: Administrator
password:
timezone: 3
sem-next:
# параметры подключения к webservices платформы Inspark
rest:
url: http://webservices.exapmle.com:8081/sem-restservices/
user: admin
password: Semona
# параметры подключения артемиса платформы
artemis:
broker-url: tcp://127.0.0.1:61616
user: artemis
password: SuperHot
event-import-queue: jms.queue.EventImport
measure-queue: jms.queue.Measure
# Настройка стандартных топиков каналов ИП устройства Sigur в Semnext
channels:
directIn: direct_in # 1 при проходе ТД в направлении вход
directOut: direct_out # 1 при проходе ТД в направлении выход
accessObject: access_obj # Инфо об объекте
eventCE: event_CE # Код события SIGUR по точке доступа
# Настройка интеграции событий SIGUR событиям Semnext
events:
refs:
# сопоставление типов событий в сообщениях EVENT_CE идентификаторам событий sem-next
# (см. Приложение 2: Типы событий OIF.pdf)
-
# тип события в SIGUR
sigurEventTypeId: 1 #Зарегистрирован взлом.
# Идентификатор события в Semnext
semEventId: 5050
# Шаблон текста события, поддерживаются подстановки
# $AP - наименование точки доступа
# $ZONE_IN - зона со стороны входа точки доступа
# $ZONE_OUT - зона со стороны входа точки доступа
# $DIRECTION - код направления: с событием не связано никакое направление, выход, вход, «неизвестное
# направление»
# $ACCESS_OBJ - название объекта доступа связанного с событием
semEventMessageTemplate: Объект $AP взломал точку доступа по направлению $DIRECTION
# Топик канала устройства SIGUR для поиска измеряемого параметра которому отправить значение по событию
semChannel: breaking
# значение отправляемое по событию
value: 1
-
sigurEventTypeId: 2 #Зарегистрирован проход в разблокированном режиме.
semEventId:
-
sigurEventTypeId: 3 #Зарегистрирован проход, санкционированный с кнопки.
semEventId: 57234
semEventMessageTemplate: $AP $DIRECTION - $ACCESS_OBJ
-
sigurEventTypeId: 4 #Зарегистрирован проход.
semEventId: 57230
semEventMessageTemplate: $AP $DIRECTION - $ACCESS_OBJ
semChannel: directIn
-
sigurEventTypeId: 5 # Зарегистрирован проход при открытой двери.
semEventId:
-
sigurEventTypeId: 6 # Зарегистрирован проезд по путевому листу.
semEventId:
-
sigurEventTypeId: 7 # (не используется)
semEventId:
-
sigurEventTypeId: 8 # Доступ запрещен. Введен неверный PIN-код.
semEventId:
-
sigurEventTypeId: 9 # Доступ запрещен. Контроллер не готов.
semEventId:
-
sigurEventTypeId: 10 # Доступ запрещен. Неизвестный код пропуска.
semEventId:
-
sigurEventTypeId: 11 # Доступ запрещен. Режим не позволяет проход.
semEventId:
-
sigurEventTypeId: 12 # Доступ запрещен. Нет допуска на точку доступа.
semEventId:
-
sigurEventTypeId: 13 # Доступ запрещен. Нет допуска в это время.
semEventId:
-
sigurEventTypeId: 14 # Доступ запрещен. Повторный проход.
semEventId:
-
sigurEventTypeId: 15 # Доступ запрещен. Срок действия ключа истек.
semEventId:
-
sigurEventTypeId: 16 # Пожарная тревога! Произведена аварийная разблокировка.
semEventId:
-
sigurEventTypeId: 17 # Пожарная тревога завершена.
semEventId:
-
sigurEventTypeId: 18 # Корпус контроллера открыт.
semEventId:
-
sigurEventTypeId: 19 # Корпус контроллера закрыт.
semEventId:
-
sigurEventTypeId: 20 # Связь с точкой доступа потеряна.
semEventId:
-
sigurEventTypeId: 21 # Связь с точкой доступа восстановлена.
semEventId:
-
sigurEventTypeId: 22 # Закрытие ворот.
semEventId:
-
sigurEventTypeId: 23 # Открытие ворот.
semEventId:
-
sigurEventTypeId: 24 # Доступ разрешен.
semEventId: 57231
semEventMessageTemplate: $AP $DIRECTION - $ACCESS_OBJ
-
sigurEventTypeId: 25 # Удержание двери в открытом состоянии начато.
semEventId:
-
sigurEventTypeId: 28 # Переход на работу от сети (восстановление питания)
semEventId:
-
sigurEventTypeId: 29 # Переход на работу от аккумулятора (потеря сетевого питания)
semEventId:
-
sigurEventTypeId: 30 # Установка режима точки доступа "Нормальный"
semEventId: 32232
semEventMessageTemplate: ТД $AP по направления $ZONE_IN - $ZONE_OUT разблокирована
semChannel: blocked
value: 0
-
sigurEventTypeId: 31 # Установка режима точки доступа "Заблокированный"
semEventId: 32231
semEventMessageTemplate: ТД $AP по направления $ZONE_IN - $ZONE_OUT заблокирована
semChannel: blocked
value: 1
-
sigurEventTypeId: 32 # Установка режима точки доступа "Разблокированный"
semEventId:
-
sigurEventTypeId: 36 # Переход точки доступа в состояние "закрыта" (закрытие двери)
semEventId: 57233
semEventMessageTemplate: $AP $DIRECTION - $ACCESS_OBJ
semChannel: event_CE
-
sigurEventTypeId: 37 # Переход точки доступа в состояние "открыта" (открытие двери)
semEventId: 57232
semEventMessageTemplate: $AP $DIRECTION - $ACCESS_OBJ
semChannel: event_CE
-
sigurEventTypeId: 38 # Удержание двери в открытом состоянии закончено.
semEventId:
-
sigurEventTypeId: 39 # Начало ожидания санкции охраны
semEventId:
-
sigurEventTypeId: 40 # Окончание ожидания санкции охраны
semEventId:
-
sigurEventTypeId: 41 # Отказ от доступа
semEventId:
-
sigurEventTypeId: 42 # Ожидание сопровождающего
semEventId:
-
sigurEventTypeId: 43 # Ожидание ввода PIN кода
semEventId:
-
sigurEventTypeId: 44 # Ожидание алкотеста
semEventId:
-
sigurEventTypeId: 45 # Доступ запрещен. Использован основной считыватель (ожидается дополнительный).
semEventId:
-
sigurEventTypeId: 46 # Доступ запрещен. Использован дополнительный считыватель (ожидается основной).
semEventId:
-
sigurEventTypeId: 47 #Доступ запрещен. Режимы пересеклись недопустимым способом.
semEventId:
-
sigurEventTypeId: 48 #Доступ запрещен. Точка доступа заблокирована.
semEventId:
-
sigurEventTypeId: 49 #Доступ запрещен. Удерживается кнопка блокировки.
semEventId:
-
sigurEventTypeId: 50 #Доступ запрещен. Другая дверь шлюза сейчас открыта.
semEventId:
-
sigurEventTypeId: 51 #Доступ запрещен. Превышение числа лиц в зоне.
semEventId:
-
sigurEventTypeId: 52 #Доступ запрещен. Охранник отказал в доступе.
semEventId:
-
sigurEventTypeId: 53 #Доступ запрещен. Недопустимое опьянение.
semEventId:
-
sigurEventTypeId: 54 #Доступ запрещен. Контроллер не готов (код 17).
semEventId:
-
sigurEventTypeId: 55 #Доступ запрещен. Не дождались результата алкотестирования.
semEventId:
-
sigurEventTypeId: 56 #Доступ запрещен. Не дождались сопровождающего.
semEventId:
-
sigurEventTypeId: 57 #Доступ запрещен. Не дождались санкции охраны.
semEventId:
-
sigurEventTypeId: 58 #Доступ запрещен. Не дождались второго объекта.
semEventId:
-
sigurEventTypeId: 59 #Доступ запрещен. Обработка предыдущего объекта не завершена (код 22).
semEventId:
-
sigurEventTypeId: 60 #Доступ запрещен. Обработка предыдущего объекта не завершена.
semEventId:
-
sigurEventTypeId: 61 #Доступ запрещен. Невозможно списать стоимость выбранной позиции.
semEventId:
-
sigurEventTypeId: 62 #Доступ запрещен. Не было распознавания гос. Номера.
semEventId:
-
sigurEventTypeId: 63 #Доступ запрещен. Активно специальное ограничение.
semEventId:
-
sigurEventTypeId: 64 #Доступ запрещен. Есть не сданные предметы.
semEventId:
-
sigurEventTypeId: 65 #Неисправность замка. Датчик холла не активен когда должен быть активен.
semEventId:
-
sigurEventTypeId: 66 #Неисправность замка. Датчик холла активен когда должен быть не активен.
semEventId:
-
sigurEventTypeId: 67 #Доступ запрещен. Лицо не опознано.
semEventId:
-
sigurEventTypeId: 68 #Лицо не опознано.
semEventId:
-
sigurEventTypeId: 69 #Доступ запрещен. Попытка подбора кода. (постановление №969)
semEventId:
-
sigurEventTypeId: 70 #Ждем сопровождающего, идентифицированный не может выступить в этой роли.
semEventId:
-
sigurEventTypeId: 71 #Доступ по гос. номеру запрещен согласно режиму.
semEventId:
-
sigurEventTypeId: 72 #Не удалось получить ответ от внешней системы.
semEventId:
-
sigurEventTypeId: 73 #Доступ запрещен внешней системой.
semEventId:
-
sigurEventTypeId: 74 #Лицо распознано.
semEventId:
-
sigurEventTypeId: 75 #Ожидание лица.
semEventId:
-
sigurEventTypeId: 76 #Напряжение питания в норме.
semEventId:
-
sigurEventTypeId: 77 #Напряжение питания ниже нормы.
semEventId:
-
sigurEventTypeId: 78 #Напряжение питания выше нормы.
semEventId:
-
sigurEventTypeId: 79 #Доступ запрещен. Нет связи с сервером.
semEventId:
-
sigurEventTypeId: 80 #Ожидание измерения температуры.
semEventId:
-
sigurEventTypeId: 81 #Превышен порог предупреждения по температуре.
semEventId:
-
sigurEventTypeId: 82 #Превышен порог тревоги по температуре.
semEventId:
-
sigurEventTypeId: 83 #Доступ запрещен. Проверка температуры не пройдена.
semEventId:
-
sigurEventTypeId: 84 #Доступ запрещен. Верификация не пройдена.
semEventId:
-
sigurEventTypeId: 85 #Температура в норме.
semEventId:
-
sigurEventTypeId: 86 #Идентифицирован сопровождающий.
semEventId:
-
sigurEventTypeId: 87 #Доступ запрещен. Отсутствует лицевая маска.
semEventId:
-
sigurEventTypeId: 88 #Лицевая маска отсутствует.
semEventId:
-
sigurEventTypeId: 89 #Успешная проверка лицевой маски.
semEventId:
-
sigurEventTypeId: 90 #Начата проверка наличия лицевой маски.
semEventId:
-
sigurEventTypeId: 91 #Результат измерения температуры отсутствует.
semEventId:
-
sigurEventTypeId: 256 #Состояние зоны неизвестно.
semEventId:
-
sigurEventTypeId: 257 #Зона снята с охраны.
semEventId:
-
sigurEventTypeId: 258 #Зона взята на охрану.
semEventId:
-
sigurEventTypeId: 259 #Тревога.
semEventId:
-
# ОПС события "Рубеж", охранные
sigurEventTypeId: 768 #Не на охране.
semEventId:
-
sigurEventTypeId: 769 #Тревога.
semEventId:
-
sigurEventTypeId: 770 #Задержка по входу/выходу.
semEventId:
-
sigurEventTypeId: 772 #Неудачная постановка (неисправность).
semEventId:
-
sigurEventTypeId: 784 #Потеря связи.
semEventId:
-
sigurEventTypeId: 800 #На охране.
semEventId:
-
sigurEventTypeId: 832 #Неправильная конфигурация.
semEventId:
-
sigurEventTypeId: 1023 #Неизвестно
semEventId:
-
# ОПС события "Рубеж", пожарные (4)
sigurEventTypeId: 1024 # Дежурный режим.
semEventId:
-
sigurEventTypeId: 1025 # Пожар.
semEventId:
-
sigurEventTypeId: 1026 # Внимание
semEventId:
-
sigurEventTypeId: 1028 # Неисправность.
semEventId:
-
sigurEventTypeId: 1040 # Обход
semEventId:
-
sigurEventTypeId: 1056 # Потеря связи.
semEventId:
-
sigurEventTypeId: 1088 # Неправильная конфигурация.
semEventId:
-
sigurEventTypeId: 1279 # Неизвестно.
semEventId:
В платфоме выполнить следующие деййствия
sigurEventTypeId: 31 # Установка режима точки доступа "Заблокированный"
semEventId: 32231
semEventMessageTemplate: ТД $AP по направления $ZONE_IN - $ZONE_OUT заблокирована
semChannel: blocked
value: 1
в настройке указан параметр устройства blocked, который примет значение 0 при возникновении события 31.
6. Внести Устройство Sigur в Типовую конфигурацию, которая будет использована на объекте интеграции
7. В схеме подключения для каждой точки доступа прописать ее идентификатор в поле адрес, см. получение данных о точках доступа в режимах запуска модуля
8. Перестартовать модуль интеграции Sigur или дождаться когда он перезагрузит данные (каждые 10 минут)
Для установки модулей на хосте требуется наличие JRE (от 11.x и выше). Также доступен docker-образ.
Для установки в качестве демона-Linux необходимо :
mkdir /opt/sentinel-gate
cp sentinel-gate.jar /opt/sentinel-gate
cp application.yml /opt/sentinel-gate
mkdir -p /var/log/sentinel-gate
Настроить к ней путь в конфиге application.yml:
logging:
path: /var/log/sentinel-gate
cd /etc/init.d
chmod +x /opt/sentinel-gate/sentinel-gate.jar
ln -s /opt/sentinel-gate/sentinel-gate.jar sentinel-gate
systemctl daemon-reload
service sentinel-gate start
service sentinel-gate status
service sentinel-gate stop
Запуск с командной строки:
java -jar sentinel-gate.jar
Модуль обеспечивает:
Ниже представлен типовой конфиг application.yml
с описанием секций
spring:
main:
web-application-type: none
allow-circular-references: true
# console | file профили логирования (см. конфиг logback-spring.xml)
profiles:
active: file
jackson:
serialization:
write-dates-as-timestamps: true
logging:
level:
root: ERROR
stat: INFO
# для расширенного лога выставить значение DEBUG
ru:
infsys: INFO
org:
springframework:
web: ERROR
# Можно смотреть транзакции логом ниже (поставить TRACE уровень)
transaction:
interceptor: ERROR
hibernate: WARN
# Настройки для Sentinel-VMS
sentinel:
rest:
# адрес rest api
url: http://10.10.10.1:5020/
# логин
user: admin
# пароль в для user
password: password
# крон для обновления токена доступа к VMS Sentinel.
cron: 0 0 * * * ?
websocket:
# адрес ws VMS сервера для сервисов интеграции
url: ws://10.10.10.1:5013/
# настройки отображения изображений Sentinel VMS для Inspark Platform
screenshot:
# адрес, который будет добавляться к изображению события для его показа в приложениях Inspark Plaform
url: /api/get_screenshot/
# Настройки на платформу Inspark
Inspark:
rest:
# адрес rest сервисов инстанса Inspark
url: http://127.0.0.1:8081/sem-restservices/
user: sentinel
password: password
artemis:
# адрес брокера artemis
broker-url: tcp://127.0.0.1:61616
user: artemis
password: password
# jms очередь в которую отправлять события передаваемые в Inspark
event-queue: jms.queue.Event
# jms очередь в которую отправлять значения параметров передаваемые в Inspark
measure-queue: jms.queue.Measure
# Объявление стандартных параметров камеры VMS Sentinel
# название параметра должно соответствовать названию топика в библиотеке устройства в Inspark
# если параметр не задан, значение не будет отправляться в Inspark
channels:
id: id_vms # id камеры в системе VMS и адрес камеры в Схеме соединения
name: name # имя камеры
connectType: camera_type # 0- ONVIF, 1- RTSP
ipAddress: ip_adress # ip адрес камеры
port: port # порт подключения к камере
installType: install_type # (0 - внешняя, 1 - внутренняя)
location: coordination # гео-метка размещения камеры
addressMain: address_main # Адрес RTSP-потока камеры
login: login # подключение к камере
passw: password # подключение к камере
inIntegration: in_integration # учатсвует ли в модулях интеграции
analyticId: in_fnv_roi # id камеры из cameras_integration
state: camera_state # Состояние подключения к камере: 0 - отключена, 1 - подключена, 2 - ошибка
# Настройка интеграции событий Sentinel VMS c событиями Inspark
events:
# задание периодичности обновления метаданных интеграции в виде крон строки
# (устройства и параметры настроенные в Inspark и их и их представление в Sentinel VMS)
# при настройке интеграции предлагается установить каждые 15 минут часа: 0 0,15,30,45 * * * ?
# для штатной работы раз в час: 0 0 * * * ?
cron: 0 0 * * * ?
# Сопоставление типов аналитических событий Sentinel VMS, событиям и параметрам Inspark.
# Аналитические события Sentinel VMS могут быть от двух серверов (ROI Region of interest)
# и LPR License Plate Recognition, в зависимости от этого в сообщении могут быть разные подстановки в текст сообщения
# Важное замечание: событие об изменении статуса камеры через данный список не создается,
# изменение статуса всегда передается в параметр, определенный в state (см. выше параметры камеры)
refs:
-
# событие "Разрешенное лицо" относится к событию ROI
actionName: Разрешенное лицо
# идентификатор события Inspark (event.id), может быть не задан если событие не требуется
semEventId: 7509
# шаблон текста события, поддерживаются подстановки для ROI
# "$CAM - имя камеры
# $TYPE - пример, exit
# $CLASS - пример, car
# $ZONE - название зоны в ROI, пример ос-1
semEventMessageTemplate: нахождение в $ZONE
# канал устройства Inspark для отправки значения
semChannel: detectPeople
# значение, отправляемое в канал
value: 1
-
# событие "Запрещенное лицо" относится к событию ROI
actionName: Запрещенное лицо
# идентификатор события Inspark (event.id), может быть не задан если событие не требуется
semEventId:
semEventMessageTemplate:
# канал устройства Inspark для отправки значения
semChannel:
# значение, отправляемое в канал
value:
-
# событие "Неизвестное лицо" относится к событию ROI
actionName: Неизвестное лицо
# идентификатор события Inspark (event.id), может быть не задан если событие не требуется
semEventId:
semEventMessageTemplate:
# канал устройства Inspark для отправки значения
semChannel:
# значение, отправляемое в канал
value:
-
# событие "ВИП" относится к событию ROI
actionName: ВИП
# идентификатор события Inspark (event.id), может быть не задан если событие не требуется
semEventId:
semEventMessageTemplate:
# канал устройства Inspark для отправки значения
semChannel:
# значение, отправляемое в канал
value:
-
# событие "Гость" относится к событию ROI
actionName: Гость
# идентификатор события Inspark (event.id), может быть не задан если событие не требуется
semEventId:
semEventMessageTemplate:
# канал устройства Inspark для отправки значения
semChannel:
# значение, отправляемое в канал
value:
-
# событие "Неизвестный номер" относится к событию LPR
actionName: Неизвестный номер
# идентификатор события Inspark (event.id), может быть не задан если событие не требуется
semEventId: 5009
# шаблон текста события, поддерживаются подстановки для LPR
# "$CAM - имя камеры
# $NUMBER - номер машины
# $SCORE - точность распознавания номера
semEventMessageTemplate: Обнаружен автомобиль номер $NUMBER
# канал устройства Inspark для отправки значения
semChannel: detectCar
# значение, отправляемое в канал
value: 1
-
# событие "Разрешенный номер" относится к событию LPR
actionName: Разрешенный номер
# идентификатор события Inspark (event.id), может быть не задан если событие не требуется
semEventId:
# шаблон текста события, поддерживаются подстановки
semEventMessageTemplate:
# канал устройства Inspark для отправки значения
semChannel: detectCar
# значение, отправляемое в канал
value: 1
-
# событие "Запрещенный номер" относится к событию LPR
actionName: Запрещенный номер
# идентификатор события Inspark (event.id), может быть не задан если событие не требуется
semEventId:
# шаблон текста события, поддерживаются подстановки
semEventMessageTemplate:
# канал устройства Inspark для отправки значения
semChannel: detectCar
# значение, отправляемое в канал
value: 1
-
# событие "VIP номер" относится к событию LPR
actionName: VIP номер
# идентификатор события Inspark (event.id), может быть не задан если событие не требуется
semEventId:
# шаблон текста события, поддерживаются подстановки
semEventMessageTemplate:
# канал устройства Inspark для отправки значения
semChannel: detectCar
# значение, отправляемое в канал
value: 1
-
# событие "Нахождение в зоне" относится к событию ROI
actionName: Нахождение в зоне
# идентификатор события Inspark (event.id), может быть не задан если событие не требуется
semEventId:
semEventMessageTemplate:
# канал устройства Inspark для отправки значения
semChannel:
# значение, отправляемое в канал
value:
-
# событие "Покидание зоны" относится к событию ROI
actionName: Покидание зоны
# идентификатор события Inspark (event.id), может быть не задан если событие не требуется
semEventId:
semEventMessageTemplate:
# канал устройства Inspark для отправки значения
semChannel:
# значение, отправляемое в канал
value:
-
# событие "Пересечение линии" относится к событию ROI
actionName: Пересечение линии
# идентификатор события Inspark (event.id), может быть не задан если событие не требуется
semEventId:
semEventMessageTemplate:
# канал устройства Inspark для отправки значения
semChannel:
# значение, отправляемое в канал
value:
В платфоме выполнить следующие деййствия
# событие "Пересечение линии" относится к событию ROI
actionName: Пересечение линии
# идентификатор события Inspark (event.id), может быть не задан если событие не требуется
semEventId: 7777
semEventMessageTemplate: Пересечение $ZONE
# канал устройства Inspark для отправки значения
semChannel: cross_line
# значение, отправляемое в канал
value: 1
в настройке указан параметр устройства cross_line, который примет значение 1 при возникновении события actionName = «Пересечение линий».
Для интеграции требуется настройка сервера интеграции ОРИОН-БОЛИД по протоколу SOAP.
Для установки модулей на хосте требуется наличие JRE (от 11.x и выше). Также доступен docker-образ.
Для установки в качестве демона-Linux необходимо :
mkdir /opt/bolid-gate
cp bolid-gate.jar /opt/bolid-gate
cp application.yml /opt/bolid-gate
mkdir -p /var/log/bolid-gate
[Unit]
Description=bolid-gate
After=syslog.target
[Service]
User=root
Group=root
ExecStart=/opt/bolid-gate/bolid-gate.jar
SuccessExitStatus=143
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
service bolid-gate start
service bolid-gate status
service bolid-gate stop
Запуск с командной строки:
java -jar bolid-gate.jar
Модуль обеспечивает:
В Inspark используется следующая модель устройства ОРИОН-БОЛИДА
Имя канала | Тип | Описание |
---|---|---|
direct_in | импульсный | Количество входов, значение 1 если TEvent.PassMode (Режим прохода) равен 1 |
direct_out | импульсный | Количество выходов, значение 1 если TEvent.PassMode (Режим прохода) равен 2 |
event_type_id | мгновенный | Идентификатор типа события в Орион - значение TEvent.EventTypeId |
fio | строковый | ФИО, соединение значений TEvent.LastName + TEvent.FirstName + TEvent.MidleName |
additional_code_input_error | сигнальный | Ошибка ввода дополнительного кода, значение TEvent.AccessFlags.IsAdditionalCodeInputError () |
duress_code | сигнальный | Предъявлен код принуждения, значение TEvent.AccessFlags.IsDuressCode |
blocked | сигнальный | Идентификатор заблокирован, значение TEvent.AccessFlags.IsBlocked |
broken_antipassback | сигнальный | Нарушено правило antipassback, значение TEvent.AccessFlags.IsBrokenAntipassback |
broken_time_window | сигнальный | Нарушение окна времени, значение TEvent.AccessFlags.IsBrokenTimeWindow |
confirmationCodeError | сигнальный | Ошибка подтверждающего кода, значение TEvent.AccessFlags.IsConfirmationCodeError |
confirmationWaiting | сигнальный | Ожидание подтверждения по кнопке, значение TEvent.AccessFlags.IsConfirmationWaiting |
expired | сигнальный | Истек или не начался срок действия идентификатора, значение TEvent.AccessFlags.IsExpired |
noRights | сигнальный | Нет прав доступа, значение TEvent.AccessFlags.IsNoRichts |
Дополнительные параметры (кроме атрибутов по умолчанию), можно определить для каждого типа события указав канал и его значение.
При описании ТК, в схеме соединений в адрес устройства указывается адрес устройства в Орион который получется
в описании события в атрибуте TEvent.DevAddress (на картинке это Адрес 10).
Адрес устройства можно получить из АРМ «АБД Орион Про». Значение 10 и есть значение, которое будет в DevAddress и которое необходимо прописать в Схеме соединения в ТК.
Настройка обновления метаданных интеграции
events:
# задание периодичности обновления метаданных интеграции в виде крон строки
# (устройства и параметры настроенные в Inspark и их и их представление в Орион-Болид)
# при настройке интеграции предлагается установить каждые 15 минут часа: 0 0,15,30,45 * * * ?
# для штатной работы раз в час: 0 0 * * * ?
cron: 0 0 * * * ?
Настройка задержки запроса событий Орион-Болид
events:
# Задержка в минутах с которой события от устройств могут поступать в Болид-Орион и когда они станут доступны для
# получения в модуле интеграции
delay: 1
Из примера выше задание delay: 2 будет в 0:0:2.100 выполнять запрос событий за интервал
с 23:59:0.000 до 0:0:0.000
Настройка получения событий
Все типы событий которые могут получаться модулем интеграции от Орион приведены в конфигурационном файле
# Настройка интеграции событий Орион-Болид событиям Semnext
events:
refs:
# Сопоставление типов событий в сообщениях Орион идентификаторам событий sem-next
-
# тип события в Орион
Чтобы событие Орион включить в интеграцию и по нему будут отправляться значения параметров по умолчанию в Inspark
необходимо в конфиге для данного события задать параметр integrated в true:
-
bolidEventTypeId: 271 # Проход (по кнопке)
integrated: true
semEventId:
Чтобы на основании события Орион создавалось событие в Inspark необходимо в конфиге для данного события задать
параметр semEventId
-
# тип события в Орион
bolidEventTypeId: 37 # Пожар
# генерировать значения параметров по умолчанию
integrated: false
# Идентификатор события в Semnext
semEventId: 5050
# Шаблон текста события, поддерживаются подстановки
# $AP - наименование точки доступа
# $DEVICE_NAME - названия устройства в Орион
# $ACCESS_ZONE - зона доступа
# $PASS_MODE - Режим прохода (0 – не определен, 1 – вход, 2 – выход)
# $FIO - фио сотрудника связанного с событием
semEventMessageTemplate: Объект $AP устройство $DEVICE_NAME обнаружен ПОЖАР!!!!!
# Топик канала устройства Орион для поиска измеряемого параметра которому отправить значение по событию
semChannel: fire
# значение отправляемое по событию
value: 1
Для события передаваемого в Inspark параметр integrated может принимать значение как true так и false, например,
как описано выше integrated: false указывает, что значения параметров по умолчанию не будут передаваться для
события пожар. Для других событий можно установить integrated: true, тогда вместе с событием и его параметрами
будут передаваться значения параметров по умолчанию.
bolid:
...
control:
# Идентификатор сотрудника от которого модуль выдает команды управления см. в АРМ АБД Про
personId: 2
# Идентификатор пароля сотрудника (сам в шоке) это не тот пароль, что выше который может состоять из различных
# символов, аэто именно число у нас на стенде 1
passwordId: 1
...
sem-next:
rest:
artemis:
# очередь получения команд для Орион-Болид
command:
# адрес очереди
queue: jms.queue.BolidCommand
# количество потоков мин-макс
concurrency: 2-8
Команда состоит из двух частей:
Команда управления
Подерживаемые команды:
Для входов:
2 — взятие;
3 — снятие;
4 — включение автоматики;
5 — выключение автоматики;
6 — пуск;
7 — отмена;
13 — отключение входа;
14 — включение входа;
Для выходов:
0 — возврат в исходное состояние;
1 — включить;
2 — выключить;
3 — включить на время;
4 — выключить на время;
5 — мигать из состояния выключен;
6 — мигать из состояния включено;
7 — мигать из состояния выключено на время;
8 — мигать из состояния включено на время;
11 — пуск АСПТ;
12 — Пуск/стоп речевого оповещения;
13 — ручной пуск;
14 — ручной останов;
15 — отключение управления и контроля.
16 — включение управления и контроля.
Для разделов/групп разделов и считывателей модуль команды выполнять не сможет, так как эти сущности не учавствуют
в интеграции
Дополнительные данные для команды
Имеет формат action
или itemid,itemid:action
Action
Для выходов — номер маски мигания.
Для дверей:
0 — проход;
1 — вход;
2 — выход.
ItemId
Идентификатор элемента системы, как его получить в Орион-Болид, будет показано ниже
Пример выполнения команды
Команда модулем может выполняться как для всего устройства, так и для отдельных элементов этого устройства -
itemId, на картинке это «Пользовательский номер» - 14.
Ниже показана форма типовой внешней команды для устройства Орион-Болид.
Конкретная форма для устройства с адресом 10 и его элементов 14 и 15
В платфоме выполнить следующие деййствия
Для работы с 3D моделью в платформе Inspark необходимо использовать семейство устройств Inspark. Экземпляры из этого семейства размещаются в требуемых местах revit-модели в проекте.
Ссылки на файлы семейства (семейство и общие параметры): sem-revit-family.zip. Для подключения семейства к проекту revit, необходимо, чтобы файл семейства и его общие параметры находились в одной папке.
При расстановке в revit-модели устройств важно заполнить атрибуты, необходимые для отображения в платформе Inspark:
device_name
– наименование устройстваcalcdeviceparam_id
– id вычисляемых параметров устройства через запятуюcontrdeviceparam_id
– id измеряемых параметров устройства через запятую.
Подготовленную revit-модель далее, с помощью сервисов магазина платформы Inspark отправляют на обработку в сервис Autodesk Forge. см. документацию Магазин.Forge
За подключение сервисов 3D в helm файле инстанса отвечает параметр forge
## интеграционные настройки для AutoDesk Forge плагина
forge:
enabled: true
forge_id: "develop"
где forge_id - имя папки хранилища Forge, которое использовано в магазине при загрузки модели.