БОЛИД
Интеграционные SOAP-методы описаны в документе.
Аутентификация с Орион
Для аутентификации используются два метода (см. стр. 54 документа):
- getLoginToken(login, md5Passw)- получение токена для вызова методов.
- extendTokenExpiration(token)- обновление времени действия токена (300 сек.).
Примечание
Время действия полученного токена составляет 300 секунд, до истечения этого времени необходимо
продлить срок действия токена с помощью метода extendTokenExpiration().
Устройство Болид-ОРИОН
Для получения событий и значений параметров от СКУД Орион используется метод getEvents (см. стр. 20 документа).
у данного метода для интеграции используются параметры:
- beginTime - дата и время начала для фильтрации;
- endTime - дата и время конца для фильтрации;
- eventTypes - список типов событий для фильтрации;
- остальные параметры для интеграции не применимы или будут использованы как константы.
Примечание
При использовании метода getEvents было установлено, что события этим методом отдаются со значительной задержкой к текущему времени, например, событие на устройстве произошло в 0:0:1.100 запросив событие в 0:0:2.100 за интервал с 0:0:0.000 до 0:0:2.000 произошедшее событие может не попасть в его результаты (например на стенде офиса эта задержка
практически 0 милисек, а на боевом сервере задержка иногда превышает 1 минуту).
Для решения этой проблемы в конфиг добавлен параметр delay = задержка в минутах на считывание событий, задавая который на конкретном инстансе учитывается поступление даных в интеграционный модуль.
Возвращает данный метод массив событий имеющих структуру TEvent (см. стр. 7 документа)
Из TEvent определен следующий состав каналов устройства Inspark которые по умолчанию модуль интеграции передает
в систему 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 |
Инфо
Дополнительные параметры (кроме атрибутов по умолчанию), можно определить для каждого типа события указав канал и его значение.
При описании ТК, в схеме соединений в адрес устройства указывается идентификатор устройства в Орион.
Для того чтобы получить идентификаторы устройств, необходимо запустить модуль в режиме печати конфигурации, в логе модуля будут выданы все доступные устройства и их идентификаторы для интеграции.

Примечание
Идентификатором устройства будет TDevice Id=2 которое необходимо прописать в Схеме соединения в ТК.
События TEvent могут не содержать ссылку на устройство доступа интегрируемое в Inspark, но если такие события должны учавствовать в интеграции в конфиге для таких устройств необходимо прописать параметр events.defaultDeviceId (идентификатор устройства Орион-Болид к которому привязывать все события, которые не связаны с устройством
Событие
Настройка обновления метаданных интеграции
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 - фио сотрудника связанного с событием
# $DESCRIPTION - описание события (информация) из Орион-Болид;
semEventMessageTemplate: Объект $AP устройство $DEVICE_NAME обнаружен ПОЖАР!!!!!
# Топик канала устройства Орион для поиска измеряемого параметра которому отправить значение по событию
semChannel: fire
# значение отправляемое по событию
value: 1
Для события передаваемого в Inspark параметр integrated может принимать значение как true так и false, например,
как описано выше integrated: false указывает, что значения параметров по умолчанию не будут передаваться для
события пожар. Для других событий можно установить integrated: true, тогда вместе с событием и его параметрами
будут передаваться значения параметров по умолчанию.
Команды
Модуль может выполнять команды управления элементами системы Орион-Болид поступающие от Inspark платформы в виде jms собщений
Настройки для выполнения команд
bolid:
...
control:
# Идентификатор сотрудника от которого модуль выдает команды управления см. в АРМ АБД Про
personId: 2
# Идентификатор пароля сотрудника (сам в шоке) это не тот пароль, что выше который может состоять из различных
# символов, аэто именно число у нас на стенде 1
passwordId: 1
...
sem-next:
rest:
artemis:
# очередь получения команд для Орион-Болид
command:
# адрес очереди
queue: jms.queue.BolidCommand
# количество потоков мин-макс
concurrency: 2-8
Формат Jms сообщения для выполнения команд
Ключ | Тип | Назначение |
---|---|---|
id | Integer | Идентификатор в журнале команд (не используется модулем) |
a | Integer | Адрес подключения устройства - адрес устройства доступа в Orion-Bolid |
b | Integer | Команда управления Orion-Bolid (ExtCommand.cmd) |
d | String | Данные для команды управления для Orion-Bolid в формате itemId,itemId,itemId:action если команда выполняется для всех элементов устройства тогда м.б. только action. itemId и action имеют тип Integer |
с | Integer | Идентификатор контроллера (не используется модулем) |
Команда для Орион-Болид
Команда состоит из двух частей:
- команда управления (поле команда в Inspark)
- дополнительные данные для команды (поле данные в Inspark)
Команда управления
Подерживаемые команды:
Для входов:
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

Описание работы модуля
Алгоритм работы модуля:
- Логин в Орион и продление токена каждые 290 сек.
- Чтение метаданных и периодическое их обновление каждые 15 мин:
- Из Inspark читаются и запоминаются все устройства с типом ORION_BOLID и установленным адресом.
- Из Орион читаются и запоминаются все наименования точек доступа, названия устройства сконфигурированных в Inspark,
а также названия зон доступа, элементов системы над которыми могут выполняться команды;
- Обработка событий, производится каждую минуту:
- определение интервала получения событий: при первом зауске, начало интервала определяется как текущее минус одна
минута и минус задержка заданная в конфиге, при следующих запросах - дата окончания интервала в последнем запросе,
окончание интервала текущее время минус задержка заданная в конфиге; - фильтр по типам событий из конфигурационного файла все события у которых integrated: true или установлен признак
создания события Inspark; - обработка события из списка в соответствии с его настройками (отправка измерений и событий).
- определение интервала получения событий: при первом зауске, начало интервала определяется как текущее минус одна
- Обработка команд:
- модуль слушает очередь команд;
- при получении команды, производится ее разбор, определяется устройство Орион-Болид, читаются все элементы системы
данного устройства, если в данных определен конкретный перечень элементов устройства, тогда
для выполнения команды оставляются только заданные; - определяется выполняемая команда и дополнительные данные команды и используя метод ControlItems команда
отправляется на выполнение, результаты выполнения команды и ошибки записываются в лог; - как правило ControlItems выполняет команду даже если команда или данные не подходят для
данного элемента системы, для контроля выполнения команды необходимо использовать механизм Событий и передачу в
Inspark значений измерений подтверждающих выполнение команд.