Команда по событию (Responsive commander 1) — различия между версиями
| Mikheeva (обсуждение | вклад)  (→Добавление триггера EgsObjectUpdated по ссылке) | Mikheeva (обсуждение | вклад)   (→Проверка) | ||
| (не показано 45 промежуточных версий этого же участника) | |||
| Строка 1: | Строка 1: | ||
| − | Отправка команды устройствам по событию от других устройств (или от самого себя). | + | Отправка команды устройствам по событию от других устройств (или от самого себя). Скрипт работает с одной локальной базой интеграции. | 
| − | == | + | ==Построение схемы== | 
| − | |||
| − | + | Для построения схемы требуется: | |
| − | + | 1. Добавить триггер '''EgsObjectUpdated'''. | |
| − | Для  | + | :Для этого необходимо: | 
| − | 1.  | + | :1. Перейти на вкладку "Типы элементов" и выбрать в списке элемент '''EgsObjectUpdated'''. | 
| − | 2.  | + | [[File:ResponsiveCommander_2.png|центр]] | 
| + | |||
| + | :2. Дважды нажать на выбранный элемент, после чего появится окно для добавления элемента.   | ||
| + | |||
| + | [[File:Scheduled_com_5.png|центр]] | ||
| − | + | :3. Нажать кнопку "Добавить". Элемент появится на рабочей области. | |
| − | + | [[File:ResponsiveCommander_3.PNG|центр|1000px]] | |
| − | + | 2. Аналогично пункту 1 добавить элементы Egs Модуль '''EgsModule''',  менеджер '''AcuarioManager''' и компьютер '''Computer'''. | |
| − | + | [[File:ResponsiveCommander_4.PNG|центр|1000px]] | |
| − | + | 3. Настроить сетевой адрес компьютера.   | |
| − | + | Для этого  необходимо выделить на схеме компьютер и нажать на кнопку вызова свойств элемента.  | |
| − | + | В окне свойств элемента указать ip адрес используемого компьютера в строке "Сетевой адрес". | |
| − | + | [[File:Scheduled_com_7.PNG|центр|1000px]] | |
| − | + | 4. Связать '''EgsObjectUpdated''' и '''Egs Модуль''', подключив пины «'''Egs вход: EgsInput'''» у '''EgsObjectUpdated''' и  «'''Egs выход: EgsOutput'''» у '''Egs Модуля'''. | |
| − | + | [[File:ResponsiveCommander_5.PNG|центр|1000px]] | |
| − | + | 5. Привязать пин "'''Привязка к менеджеру: ManagingContent'''" из '''Egs Модуля''' к пину "'''Менеджер устройств: ManagingContainer'''" из '''Менеджера устройств'''. | |
| − | [[File: | + | [[File:Scheduled_com_9.PNG|центр|1000px]] | 
| − | + | 6. Подключить пин "'''ПО: SoftwareContent'''" из '''Менеджера устройств''' с пином "'''Установленное ПО: SoftwareContainer'''" из '''Компьютера'''. | |
| − | + | [[File:ResponsiveCommander_6.PNG|центр|1000px]] | |
| − | + | 7. Настроить следующие параметры триггера: | |
| − | + | #текст скрипта ('''script''') <code>http://maps.integra-s.com:5434/resources/typedef2017/jsonpath.php?url=/egs/Responsive%20commander%202.put&path=0/params/script/value;</code> | |
| + | #в настройках: | ||
| + | ##тип объекта источника событий ('''source_types'''), например: FireSecurityCategory; | ||
| + | ##список идентификаторов объектов источников событий ('''source_guids'''), например: 7cd95cde-e320-456e-afc1-475899d78707; | ||
| + | ##список масок имен событий, активирующих скрипт ('''source_states'''), например: alarm_*, error_*; | ||
| + | ##имя типа линка, соединяющего источник и приемник ('''link_type'''), например: LogicLink, Position; | ||
| + | ##флаг, указывающий по одну или по разные стороны линка находятся источник события и приемник команды ('''link_same_side'''), см. примеры в низу; | ||
| + | ##тип объекта приемника команд ('''target_types'''), например: Turnstile; | ||
| + | ##список идентификаторов объектов приемников команд ('''target_guids'''), например: 119eee75-8a52-4443-b537-aac86d3a8a8f; | ||
| + | ##отправляемая команда ('''target_command'''), например: activate, deactivate, open_out. | ||
| − | + | Настройку параметров триггера можно выполнить, открыв свойства элемента. | |
| − | [[File: | + | [[File:ResponsiveCommander_9.PNG|центр]] | 
| − | + | ==Маски состояний== | |
| + | Маски могут быть как точным именами состояний, так и их частями, содержащими следующие контрольные символы: | ||
| − | + |   ? - любой одиночный символ; | |
| + |  * - ноль или более символов; | ||
| + |  # - любая цифра от 0 до 9; | ||
| + |  [ charlist ] - любой одиночный символ в charlist; | ||
| + |  [! charlist ] - любой одиночный символ, не включенный в charlist. | ||
| − | + | ==Проверка== | |
| + | После запуска скрипта в параметре "Хеш" появится хеш текста скрипта, который должен быть равен тексту по следующей ссылке <code>http://maps.integra-s.com:5434/resources/typedef2017/jsonpath.php?url=/egs/Responsive%20commander%202.put&path=0/params/hash/value</code> | ||
| − | + | ''Хэш-сумма будет совпадать только в том случае, если скрипт был импортирован и не был изменен.'' | |
| − | + | ==Алгоритм работы== | |
| − | + | #Проверяется, чтобы объект источник события имел тип '''settings.source_types''' и идентификатор из списка '''settings.source_guids''' (если указано). | |
| + | #Проверяется, что список измененных параметров содержит состояние объекта, и значение состояния соответствует хотя бы одной маске из списка '''settings.source_states'''. | ||
| + | #Если в '''settings.link_type''' указан тип линка и '''settings.link_same_side''' равен '''false''': | ||
| + | ##выбираются все объекты, находящиеся с ранее выбранными по разную сторону линка '''settings.link_type'''; | ||
| + | ##выбранным объектам в поле '''command''' записывается команда '''settings.target_command'''. | ||
| + | #Если в '''settings.link_type''' указан тип линка и '''settings.link_same_side''' равен '''true''': | ||
| + | ##выбираются все объекты, находящиеся с ранее выбранными по одну сторону линка '''settings.link_type'''; | ||
| + | ##выбранным объектам в поле '''command''' записывается команда '''settings.target_command'''. | ||
| + | #Если в '''settings.link_type''' не указан тип линка: | ||
| + | ##выбираются все объекты типов, соответствующих хотя бы одной маске из списка '''settings.target_types''', либо имеющие идентификатор из списка '''settings.target_guids'''. | ||
| + | ##выбранным объектам в поле '''command''' записывается команда '''settings.target_command'''. | ||
| − | + | ==Примеры использования== | |
| + | 1. По тревоге от любого датчика пожарной сигнализации открыть на выход все турникеты. | ||
| + | |||
| + |     source_types: FireSecurityCategory | ||
| + |     source_guids:  | ||
| + |     source_states: alarm_* error_* (разделены с помощью Enter) | ||
| + |     link_type:  | ||
| + |     link_same_side: false | ||
| + |     target_types: Turnstile | ||
| + |     target_guids:   | ||
| + |     target_command: open_out  | ||
| − | + | 2. По тревоге от датчика пожарной сигнализации открыть на выход турникет, связанный с ним линком '''LogicLink'''. | |
| − | + |     source_types: FireSecurityCategory | |
| + |     source_guids:  | ||
| + |     source_states: alarm_* error_* (разделены с помощью Enter) | ||
| + |     link_type: LogicLink | ||
| + |     link_same_side: false | ||
| + |     target_types: Turnstile | ||
| + |     target_guids:  | ||
| + |     target_command: open_out  | ||
| − | + | 3. По тревоге от датчика пожарной сигнализации открыть на выход турникет, находящийся в том же помещении, т.е. связанный с тем же объектом типа '''Space'''. | |
| − | + |     source_types: FireSecurityCategory | |
| + |     source_guids:  | ||
| + |     source_states: alarm_* error_* (разделены с помощью Enter) | ||
| + |     link_type: Position | ||
| + |     link_same_side: true | ||
| + |     target_types: Turnstile | ||
| + |     target_guids:  | ||
| + |     target_command: open_out  | ||
| − | + | 4. По тревоге от датчика пожарной сигнализации c идентификатором 7cd95cde-e320-456e-afc1-475899d78707 открыть на выход турникет с идентификатором 119eee75-8a52-4443-b537-aac86d3a8a8f. | |
| + | |||
| + |     source_types: FireSecurityCategory | ||
| + |     source_guids: 7cd95cde-e320-456e-afc1-475899d78707 | ||
| + |     source_states: alarm_* error_* (разделены с помощью Enter) | ||
| + |     link_type: Position | ||
| + |     link_same_side: true | ||
| + |     target_types: Turnstile | ||
| + |     target_guids: 119eee75-8a52-4443-b537-aac86d3a8a8f | ||
| + |     target_command: open_out | ||
| − | + | ==Пример работы== | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | + | Для построения схемы необходимо: | |
| − | [[File: | + | 1. Создать схему по выше описанному алгоритму (см. [[Команда_по_событию_(Responsive_commander_1)#Построение_схемы|Построение схемы]]). | 
| + | |||
| + | [[File:ResponsiveCommander_6.PNG|центр|1000px]] | ||
| − | + | 2. Добавить элемент Турникет и Болид Пожарный датчик. | |
| − | [[File: | + | [[File:ResponsiveCommander_10.PNG|центр|1000px]] | 
| − | + | 3. Настроить параметр "Сетевой адрес" компьютера. | |
| − | + | 4. Настроить следующие параметры триггера: | |
| − | + | #тип объекта источника событий ('''source_types'''): "FireSecurityCategory"; | |
| − | + | #список масок имен событий, активирующих скрипт ('''source_states'''): alarm_*; | |
| + | #имя типа линка, соединяющего источник и приемник ('''link_type'''): ""; | ||
| + | #флаг, указывающий по одну или по разные стороны линка находятся источник события и приемник команды ('''link_same_side'''): false; | ||
| + | #тип объекта приемника команд ('''target_types'''): "Turnstile"; | ||
| + | #список идентификаторов объектов приемников команд ('''target_guids''').  В данном случае это турникет с идентификатором: 70500b89-8b04-46b3-9173-6a48ecd78e61; | ||
| + | #отправляемая команда ('''target_command'''): open_out; | ||
| + | #список идентификаторов объектов источников событий ('''source_guids'''). | ||
| + | Для этого необходимо зайти в свойства пожарного датчика и нажать на ссылку "Болид Пожарный датчик". Идентификатор будет скопирован в буфер обмена. В данном случае это: 2ff2420d-a001-4d59-99b7-4ca66d507e6f. | ||
| − | + | [[File:ResponsiveCommander_11.png|центр]] | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | + | '''Результат''': | |
| − | |||
| − | + | По тревоге от датчика пожарной сигнализации выполнится команда "открыть на выход" турникет. | |
| − | == | + | ==Дополнения== | 
| + | 1. В пункте 1 раздела [[Команда_по_событию_(Responsive_commander_1)#Построение_схемы|Построение схемы]] добавление триггера '''EgsObjectUpdated''' можно осуществить по ссылке. | ||
| − | + | Для этого необходимо: | |
| − | |||
| − | |||
| − | |||
| − | + | :1. Импортировать скрипт по следующей ссылке: <code>http://maps.integra-s.com:5434/resources/typedef2017/egs/Responsive%20commander%202.put.</code> | |
| + | :2. Выбрать пункт главного меню "Файл". После этого выбрать "Импорт элементов". | ||
| − | + | [[File:Scheduled_com_1.png|центр|1000px]] | |
| − | + | :3. В открывшемся окне выбрать импортированный скрипт "Responsive commander.put". | |
| − | |||
| − | |||
| − | + | [[File:ResponsiveCommander_1.PNG|центр|1000px]] | |
| − | + | :Элемент появится на рабочей области. | |
| − | + | [[File:ResponsiveCommander_3.PNG|центр|1000px]] | |
| − | + | 2. В пункте 7 раздела [[Команда_по_событию_(Responsive_commander_1)#Построение_схемы|Построение схемы]] редактирование параметров элемента можно осуществить, выделив элемент правой кнопкой мыши и в контекстном меню выбрав пункт "Редактировать параметры". | |
| − | + | [[File:ResponsiveCommander_7.png|центр]] | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | + | :После этого откроется окно для редактирования параметров.'' | |
| − | + | [[File:ResponsiveCommander_8.PNG|центр|1000px]] | |
Текущая версия на 11:43, 21 мая 2019
Отправка команды устройствам по событию от других устройств (или от самого себя). Скрипт работает с одной локальной базой интеграции.
Содержание
Построение схемы
Для построения схемы требуется:
1. Добавить триггер EgsObjectUpdated.
- Для этого необходимо:
- 1. Перейти на вкладку "Типы элементов" и выбрать в списке элемент EgsObjectUpdated.
- 2. Дважды нажать на выбранный элемент, после чего появится окно для добавления элемента.
- 3. Нажать кнопку "Добавить". Элемент появится на рабочей области.
2. Аналогично пункту 1 добавить элементы Egs Модуль EgsModule, менеджер AcuarioManager и компьютер Computer.
3. Настроить сетевой адрес компьютера.
Для этого необходимо выделить на схеме компьютер и нажать на кнопку вызова свойств элемента.
В окне свойств элемента указать ip адрес используемого компьютера в строке "Сетевой адрес".
4. Связать EgsObjectUpdated и Egs Модуль, подключив пины «Egs вход: EgsInput» у EgsObjectUpdated и «Egs выход: EgsOutput» у Egs Модуля.
5. Привязать пин "Привязка к менеджеру: ManagingContent" из Egs Модуля к пину "Менеджер устройств: ManagingContainer" из Менеджера устройств.
6. Подключить пин "ПО: SoftwareContent" из Менеджера устройств с пином "Установленное ПО: SoftwareContainer" из Компьютера.
7. Настроить следующие параметры триггера:
- текст скрипта (script) http://maps.integra-s.com:5434/resources/typedef2017/jsonpath.php?url=/egs/Responsive%20commander%202.put&path=0/params/script/value;
- в настройках:
- тип объекта источника событий (source_types), например: FireSecurityCategory;
- список идентификаторов объектов источников событий (source_guids), например: 7cd95cde-e320-456e-afc1-475899d78707;
- список масок имен событий, активирующих скрипт (source_states), например: alarm_*, error_*;
- имя типа линка, соединяющего источник и приемник (link_type), например: LogicLink, Position;
- флаг, указывающий по одну или по разные стороны линка находятся источник события и приемник команды (link_same_side), см. примеры в низу;
- тип объекта приемника команд (target_types), например: Turnstile;
- список идентификаторов объектов приемников команд (target_guids), например: 119eee75-8a52-4443-b537-aac86d3a8a8f;
- отправляемая команда (target_command), например: activate, deactivate, open_out.
 
Настройку параметров триггера можно выполнить, открыв свойства элемента.
Маски состояний
Маски могут быть как точным именами состояний, так и их частями, содержащими следующие контрольные символы:
? - любой одиночный символ; * - ноль или более символов; # - любая цифра от 0 до 9; [ charlist ] - любой одиночный символ в charlist; [! charlist ] - любой одиночный символ, не включенный в charlist.
Проверка
После запуска скрипта в параметре "Хеш" появится хеш текста скрипта, который должен быть равен тексту по следующей ссылке http://maps.integra-s.com:5434/resources/typedef2017/jsonpath.php?url=/egs/Responsive%20commander%202.put&path=0/params/hash/value
Хэш-сумма будет совпадать только в том случае, если скрипт был импортирован и не был изменен.
Алгоритм работы
- Проверяется, чтобы объект источник события имел тип settings.source_types и идентификатор из списка settings.source_guids (если указано).
- Проверяется, что список измененных параметров содержит состояние объекта, и значение состояния соответствует хотя бы одной маске из списка settings.source_states.
- Если в settings.link_type указан тип линка и settings.link_same_side равен false:
- выбираются все объекты, находящиеся с ранее выбранными по разную сторону линка settings.link_type;
- выбранным объектам в поле command записывается команда settings.target_command.
 
- Если в settings.link_type указан тип линка и settings.link_same_side равен true:
- выбираются все объекты, находящиеся с ранее выбранными по одну сторону линка settings.link_type;
- выбранным объектам в поле command записывается команда settings.target_command.
 
- Если в settings.link_type не указан тип линка:
- выбираются все объекты типов, соответствующих хотя бы одной маске из списка settings.target_types, либо имеющие идентификатор из списка settings.target_guids.
- выбранным объектам в поле command записывается команда settings.target_command.
 
Примеры использования
1. По тревоге от любого датчика пожарной сигнализации открыть на выход все турникеты.
source_types: FireSecurityCategory source_guids: source_states: alarm_* error_* (разделены с помощью Enter) link_type: link_same_side: false target_types: Turnstile target_guids: target_command: open_out
2. По тревоге от датчика пожарной сигнализации открыть на выход турникет, связанный с ним линком LogicLink.
source_types: FireSecurityCategory source_guids: source_states: alarm_* error_* (разделены с помощью Enter) link_type: LogicLink link_same_side: false target_types: Turnstile target_guids: target_command: open_out
3. По тревоге от датчика пожарной сигнализации открыть на выход турникет, находящийся в том же помещении, т.е. связанный с тем же объектом типа Space.
source_types: FireSecurityCategory source_guids: source_states: alarm_* error_* (разделены с помощью Enter) link_type: Position link_same_side: true target_types: Turnstile target_guids: target_command: open_out
4. По тревоге от датчика пожарной сигнализации c идентификатором 7cd95cde-e320-456e-afc1-475899d78707 открыть на выход турникет с идентификатором 119eee75-8a52-4443-b537-aac86d3a8a8f.
source_types: FireSecurityCategory source_guids: 7cd95cde-e320-456e-afc1-475899d78707 source_states: alarm_* error_* (разделены с помощью Enter) link_type: Position link_same_side: true target_types: Turnstile target_guids: 119eee75-8a52-4443-b537-aac86d3a8a8f target_command: open_out
Пример работы
Для построения схемы необходимо:
1. Создать схему по выше описанному алгоритму (см. Построение схемы).
2. Добавить элемент Турникет и Болид Пожарный датчик.
3. Настроить параметр "Сетевой адрес" компьютера.
4. Настроить следующие параметры триггера:
- тип объекта источника событий (source_types): "FireSecurityCategory";
- список масок имен событий, активирующих скрипт (source_states): alarm_*;
- имя типа линка, соединяющего источник и приемник (link_type): "";
- флаг, указывающий по одну или по разные стороны линка находятся источник события и приемник команды (link_same_side): false;
- тип объекта приемника команд (target_types): "Turnstile";
- список идентификаторов объектов приемников команд (target_guids). В данном случае это турникет с идентификатором: 70500b89-8b04-46b3-9173-6a48ecd78e61;
- отправляемая команда (target_command): open_out;
- список идентификаторов объектов источников событий (source_guids).
Для этого необходимо зайти в свойства пожарного датчика и нажать на ссылку "Болид Пожарный датчик". Идентификатор будет скопирован в буфер обмена. В данном случае это: 2ff2420d-a001-4d59-99b7-4ca66d507e6f.
Результат:
По тревоге от датчика пожарной сигнализации выполнится команда "открыть на выход" турникет.
Дополнения
1. В пункте 1 раздела Построение схемы добавление триггера EgsObjectUpdated можно осуществить по ссылке.
Для этого необходимо:
- 1. Импортировать скрипт по следующей ссылке: http://maps.integra-s.com:5434/resources/typedef2017/egs/Responsive%20commander%202.put.
- 2. Выбрать пункт главного меню "Файл". После этого выбрать "Импорт элементов".
- 3. В открывшемся окне выбрать импортированный скрипт "Responsive commander.put".
- Элемент появится на рабочей области.
2. В пункте 7 раздела Построение схемы редактирование параметров элемента можно осуществить, выделив элемент правой кнопкой мыши и в контекстном меню выбрав пункт "Редактировать параметры".
- После этого откроется окно для редактирования параметров.






