Last modified by admin on 2026/06/17 21:49

Hide last authors
pugachevskaya_elena 1.1 1 Часто бывает необходимо информировать о факте прохода/проезда кого-либо, например:
2
3 * руководителя — о приходе подчинённого на работу и об отработанном им времени;
4 * PR-менеджера — о приходе соискателя;
5 * организатора выставки — о важном посетителе.
6
7 {{info}}
8 При этом выдача пропуска может осуществляться удалённо, в виде QR-кода или пин-кода, например. Также вы можете настроить доступ по распознаванию лиц ~[[[doc:neyross.Настройка Платформы НЕЙРОСС.Настройка функций контроля доступа.Настройка биометрической верификации | Биометрия по лицам и отпечаткам пальцев, термометрия.WebHome]]].
9 {{/info}}
10
admin 3.1 11 Для решения таких задач мы разработали скрипт «Персональные Telegram уведомления о доступе(%%)», который осуществляет рассылку телеграмм-уведомлений. Текст уведомлений настраивается и может содержать следующую информацию:
pugachevskaya_elena 1.1 12
13 1. информация о владельце пропуска — любые данные владельца и пропуска, отработанное время:
14 1. информация о точке доступа, время прохода;
15 1. фотоматериалы — скриншот с камеры видеонаблюдения, «привязанной» к точке доступа.
16
17 {{info}}
18 **ПОДСКАЗКА**
19
20 Скрипт также может осуществлять информирование самого посетителя ~[[[doc:neyross.НЕЙРОСС Автоматика.Отправка инструкций и напоминаний посетителю или сотруднику по факту прохода через точку доступа посредством телеграмм-уведомлений.WebHome]]]. Под запрос может быть выполнена доработка скрипта с целью информирования по другим каналам связи. Также возможно дополнение уведомления любыми данными и более сложная логика работы скрипта.
21 {{/info}}
22
23 Для обеспечения работы скрипта вам потребуется:
24
25 1. В форме пропуска указать идентификатор (ID) телеграмм-канала ответственного лица и подключится к каналу НЕЙРОСС БОТ ~[[[#Настройка формы владельца пропуска>>doc:||anchor="Уведомлениеответственноголицаофактепроходачерезточкудоступа-Настройкаформывладельцапропуска"]]].
26 1. Настроить фильтр со списком точек доступа, по факту прохода через которые требуется уведомлять ответственное лицо ~[[[#Настройка фильтра>>doc:||anchor="Уведомлениеответственноголицаофактепроходачерезточкудоступа-Настройкафильтра"]]].
27 1. Импортировать задание автоматизации, настроить текст уведомления ~[[[#Настройка задания автоматизации>>doc:||anchor="Уведомлениеответственноголицаофактепроходачерезточкудоступа-Настройказаданияавтоматизации"]]].
28 1. При необходимости расчёта времени нахождения на предприятии в течение текущих суток, требуется указать, какие точки доступа являются входом на предприятие, а какие — выходом из него ~[[[#Добавление меток входа/выхода>>doc:||anchor="Уведомлениеответственноголицаофактепроходачерезточкудоступа-Добавлениеметоквхода/выхода"]]].
29
30 == {{id name="Уведомлениеответственноголицаофактепроходачерезточкудоступа-Настройкаформывладельцапропуска"/}}Настройка формы владельца пропуска ==
31
32 Для информирования ответственного лица или самого владельца пропуска необходимо указать идентификаторы телеграмм-каналов данных лиц. Для удобства мы подготовили готовую форму ввода с требуемыми полями.
33
34 Скопируйте тест в поле ниже и создайте файл с произвольным именем и расширением **JSON**, например: //форма_ввода_владельца_пропуска_с_telegram_полями.json//. Для этого удобно использовать простые текстовые редакторы типа Блокнот или Notepad++. Вы также можете обратиться к специалистам компании ИТРИУМ, мы вышлем подготовленные файлы.
35
admin 2.1 36 {{code language="java"}}
pugachevskaya_elena 1.1 37 {"type":"object","title":"Title form","keysFields":["person.name","person.surname","person.organization","person.division","person.post","person.properties.neyross:automation:personTelegramChatId","person.properties.neyross:automation:responsibleTelegramChatId","person.photo","person.properties.extra"],"properties":{"person.name":{"type":"string","title":"Имя","format":"single-line","property":{"type":"searchableText","title":"Имя","schema":{"type":"string","format":"single-line"},"dataType":"TEXT","property":"person.name","columnType":"searchableText","searchAlias":"name","propertyType":"STANDART"}},"person.surname":{"type":"string","title":"Фамилия","format":"single-line","property":{"type":"searchableText","title":"Фамилия","schema":{"type":"string","format":"single-line"},"dataType":"TEXT","property":"person.surname","columnType":"searchableText","searchAlias":"surname","propertyType":"STANDART"}},"person.properties.neyross:automation:personTelegramChatId":{"type":"string","title":"ID telegram-чата владельца","format":"single-line","property":{"id":4,"title":"ID telegram-чата владельца","schema":{"type":"string","format":"single-line"},"dataType":"TEXT","property":"person.properties.neyross:automation:personTelegramChatId","propertyType":"USER"}},"person.properties.neyross:automation:responsibleTelegramChatId":{"type":"string","title":"ID telegram-чата ответственного лица","format":"single-line","property":{"id":3,"title":"ID telegram-чата ответственного лица","schema":{"type":"string","format":"single-line"},"dataType":"TEXT","property":"person.properties.neyross:automation:responsibleTelegramChatId","propertyType":"USER"}},"person.photo":{"title":"Фотография","type":"string","format":"photo","property":{"propertyType":"STANDART","property":"person.photo","title":"Фотография","columnType":"photo","type":"photo","dataType":"PHOTO","schema":{"type":"string","format":"photo"}}},"person.post":{"title":"Должность","type":"string","format":"glossary","glossaryType":"post","property":{"propertyType":"STANDART","property":"person.post","title":"Должность","columnType":"searchableInGlossary","searchAlias":"post","type":"searchableInGlossary","dataType":"GLOSSARY","schema":{"type":"string","format":"glossary","glossaryType":"post"}}},"person.organization":{"title":"Организация","type":"string","format":"glossary","glossaryType":"organization","property":{"propertyType":"STANDART","property":"person.organization","title":"Организация","columnType":"searchableInGlossary","searchAlias":"organization","type":"searchableInGlossary","dataType":"GLOSSARY","schema":{"type":"string","format":"glossary","glossaryType":"organization"}}},"person.division":{"title":"Подразделение","type":"string","format":"glossary","glossaryType":"division","property":{"propertyType":"STANDART","property":"person.division","title":"Подразделение","columnType":"searchableInGlossary","searchAlias":"division","type":"searchableInGlossary","dataType":"GLOSSARY","schema":{"type":"string","format":"glossary","glossaryType":"division"}}},"person.properties.extra":{"title":"Доп. информация","type":"string","format":"multi-line","property":{"propertyType":"STANDART","property":"person.properties.extra","title":"Доп. информация","dataType":"TEXT","schema":{"type":"string","format":"multi-line"}}}},"description":"Description form"}
38 {{/code}}
39
40 \\
41
42 В **АРМ НЕЙРОСС Доступ** выберите группу пропусков, выберите **Настройки группы > Форма ввода: владелец пропуска > Пользовательская форма**, укажите путь к подготовленному файлу ~[[[doc:neyross.Настройка Платформы НЕЙРОСС.Настройка функций контроля доступа.Настройка форм ввода данных.WebHome]]]. Форма будет загружена и доступна к предпросмотру.
43
44 При необходимости, задайте значение по умолчанию — ID Telegram-чата отв. лица. Это значение будет задаваться для всех новых пропусков в этой группе пропусков, но может быть изменено.
45
46 [[image:attach:telegramID_form.png||width="680"]]
47
48 {{info}}
49 Если идентификатор канала не указан, рассылка по факту прохода данного лица не производится. Указывайте идентификатор канала отв. лица только в случае, если требуется уведомлять ответственное лицо. Указывайте идентификатор канала владельца пропуска только в случае, если требуется информировать его об отработанном им времени, либо выдавать инструкции/напоминания.
50 {{/info}}
51
52 Чтобы узнать идентификатор своего чата (канала) телеграмм и в дальнейшем получать уведомления, наведите камеру смартфона на QR-код ниже или перейдите по ссылке [[https:~~/~~/t.me/neyross_bot>>url:https://t.me/neyross_bot||shape="rect"]] и подключитесь к каналу НЕЙРОСС БОТ. Рекомендуем распечатать и разместить этот QR-код в помещении бюро пропусков. Также по запросу мы можем поместить его в форму ввода данных владельца пропуска.
53
54 **[[image:attach:QRcodeTelegram.png]]**
55
56 После перехода по ссылке подключитесь к каналу НЕЙРОСС Бот. Вы получите сообщение вида:
57
admin 2.1 58 {{code language="java"}}
pugachevskaya_elena 1.1 59 Ваш ID: →1055492440→
60 User name: логин
61 Имя: имя
62 Фамилия: фамилия
63 {{/code}}
64
admin 3.1 65 Где цифры между стрелками → — идентификатор вашего канала. На примере это 1055492440. Этот идентификатор и должен быть указан в форме пропуска.
pugachevskaya_elena 1.1 66
67 == {{id name="Уведомлениеответственноголицаофактепроходачерезточкудоступа-Настройкафильтра"/}}Настройка фильтра ==
68
69 Перейдите в раздел **Фильтры** и создайте простой фильтр ~[[[doc:ui.Параметры узла.События и фильтры.WebHome]]]. В блоке По источникам в поле **Включает элементы** выберите из раскрывающегося списка точки доступа, событие прохода по которым будут обрабатываться скриптом рассылки уведомлений. Количество точек доступа не ограничено. Вы можете указать точки доступа нескольких контроллеров.
70
71 [[image:attach:telegramAccessPointsFilter.png||width="900"]]
72
73 Либо вы также можете воспользоваться профессиональным режимом и задать перечень точек доступа.
74
75 [[image:attach:telegramAccessPointsFilter_prof.png||height="158"]]
76
77 Сохраните изменения.
78
79 == {{id name="Уведомлениеответственноголицаофактепроходачерезточкудоступа-Настройказаданияавтоматизации"/}}Настройка задания автоматизации ==
80
81 Для удобства мы подготовили готовый код задания автоматизации. Обратитесь к специалистам компании ИТРИУМ, мы вышлем подготовленный файл в формате **JSON**. Вам потребуется импортировать полученный файл и указать фильтр, подготовленный на шаге ~[[[#Настройка фильтра>>doc:||anchor="Уведомлениеответственноголицаофактепроходачерезточкудоступа-Настройкафильтра"]]].
82
83 В разделе **Автоматизация** нажмите на кнопку [[image:attach:ui.Параметры узла.Автоматизация.WebHome@btn_plus_new.png||thumbnail="true" height="22"]] **Добавить новое задание**, нажмите на кнопку **Импорт** и укажите путь к файлу ~[[[doc:ui.Параметры узла.Автоматизация.WebHome]]].
84
85 [[image:attach:telegramScrypt.png||width="900"]]
86
87 В блоке** Параметры сигнала** в поле** Фильтр по событиям** выберите из раскрывающегося списка фильтр, подготовленный на шаге ~[[[#Настройка фильтра>>doc:||anchor="Уведомлениеответственноголицаофактепроходачерезточкудоступа-Настройкафильтра"]]].
88
89 В блоке **Параметры действия** настройте поля согласно таблице ниже.
90
91 |=(((
92 Поле
93 )))|=(((
94 Диапазон значений
95 )))|=(((
96 Комментарий
97 )))
98 |(((
99 Информировать ответственное лицо
100 )))|(((
101 Да/Нет, логическое поле
102 )))|(((
103 Снимите флаг, если не требуется отправлять уведомление ответственному лицу. По умолчанию флаг установлен, если в форме владельца пропуска указан идентификатор телеграмм-канала ответственного лица, будет отправлено сообщение, текст которого определён в поле **Шаблон сообщения для ответственного лица**.
104 )))
105 |(((
106 Шаблон сообщения для ответственного лица
107 )))|(((
108 Произвольный текст и переменные
109 )))|(((
110 (((
111 Определяет текст информирования ответственного лица. Может содержать переменные:
112
113 * $(person.surname) — фамилия владельца пропуска;
114 * (((
115 $(person.name) — имя владельца пропуска;
116
117 {{info}}
118 Вы можете использовать уникальные ключи других свойств владельца или пропуска. Они указаны в разделе Настройки СКУД АРМ НЕЙРОСС Доступ ~[[[doc:neyross.Настройка Платформы НЕЙРОСС.Настройка функций контроля доступа.Добавление пользовательских свойств.WebHome]]].
119 {{/info}}
120 )))
121 * $(element,name) — имя точки доступа, через которую осуществлён проход.
122 * ${workTime} — время нахождения на предприятии (с учётом перерывов).
123 )))
124 )))
125 |(((
126 Информировать владельца пропуска
127 )))|(((
128 Да/Нет, логическое поле
129 )))|(((
130 Снимите флаг, если не требуется отправлять уведомление владельцу пропуска. По умолчанию флаг установлен, если в форме владельца пропуска указан идентификатор телеграмм-канала владельца, будет отправлено сообщение, текст которого определён в поле **Шаблон сообщения для владельца пропуска**.
131 )))
132 |(((
133 Шаблон сообщения для владельца пропуска
134 )))|(((
135 Произвольный текст и переменные
136 )))|(((
137 (((
138 Определяет текст информирования владельца пропуска. Может содержать тот же набор переменных, как в описании шаблона сообщения для ответственного лица, а также приветствие, заданное в переменной:
139
140 * $(greeting).
141
142 Переменная задаётся в коде скрипта ~[[[#Изменение текста приветствия>>doc:||anchor="Уведомлениеответственноголицаофактепроходачерезточкудоступа-Изменениетекстаприветствия"]]]
143 )))
144 )))
145
146 == {{id name="Уведомлениеответственноголицаофактепроходачерезточкудоступа-Добавлениеметоквхода/выхода"/}}Добавление меток входа/выхода ==
147
148 При необходимости расчёта времени нахождения на предприятии в течение текущих суток, требуется указать, какие точки доступа являются входом на предприятие, а какие — выходом из него. Для этого используется механизм пользовательских меток.
149
150 Перейдите в раздел **Элементы **~[[[doc:ui.Параметры узла.Элементы.WebHome]]]. На вкладке **Элементы** выберите точку доступа контроллера, в поле **Пользовательские метки** задайте:
151
152 * Метку //ТочкаДоступаВход //для точек, являющихся входом на предприятие, сохраните изменения.
153 * Метку //ТочкаДоступаВыход //для точек доступа, являющихся выходом с предприятия, сохраните изменения.
154
155 [[image:attach:telegramAccessPointsLabels.png||width="650"]]
156
157 == {{id name="Уведомлениеответственноголицаофактепроходачерезточкудоступа-Изменениетекстаприветствия"/}}Изменение текста приветствия ==
158
159 Переменная $(greeting) определяет приветствие владельца пропуска и зависит от метки точки доступа, через которую выполнен проход.
160
admin 2.1 161 {{code language="java"}}
pugachevskaya_elena 1.1 162 private def getPersonGreeting(signal: NeyrossEventAutomationSignal, person: Person): String = {
163 signal.event.extensions.get(EventExtensions.FunctionalElement).map(_.asInstanceOf[FunctionalElement]) match {
164 case Some(fe) =>
165 if (isEntryAccessPoint(fe)) {
166 s"Добро пожаловать, ${person.name.getOrElse("")}!"
167 } else if (isExitAccessPoint(fe)) {
168 s"Всего доброго, ${person.name.getOrElse("")}!"
169 } else {
170 s"Выполнен проход через точку доступа '${fe.name}'."
171 }
172 case _ =>
173 s"Выполнен проход через точку доступа."
174 }
175 }
176 {{/code}}
177
178 * При проходе через точку доступа, помеченной меткой// isEntryAccessPoint// (русифицированной как //ТочкаДоступаВход//), выводится сообщение: «//Добро пожаловать, [Имя владельца пропуска]//».
179 * При проходе через точку доступа, помеченной меткой //isExitAccessPoint// (русифицированной как //ТочкаДоступаВыход//), выводится сообщение «//Всего доброго, [Имя владельца пропуска]//».
180 * При проходе через точку доступа, не имеющей перечисленных меток, выводится сообщение «//Выполнен проход через точку доступа [Имя точки доступа]//».
181
182 {{info}}
183 **ПОДСКАЗКА**
184
185 Вы можете изменить текст приветствия прямо в коде скрипта, для этого выберите режим редактирования **Исходный код**, откройте расширенный редактор скриптов, с помощью поиска найдите нужный текст кода,  откорректируйте тест и сохраните изменения.
186
187 [[image:attach:telegramScrypt_redactor.png]]
188 {{/info}}
189
190 == {{id name="Уведомлениеответственноголицаофактепроходачерезточкудоступа-Отказотметокипеременной$(greeting)"/}}Отказ от меток и переменной $(greeting) ==
191
192 Если не требуется информировать об отработанном в текущие сутки времени вы можете вовсе отказаться от меток и переменной $(greeting), создать несколько отдельных фильтров на разные точки доступа и для каждого фильтра создать отдельное задание автоматизации, указав в поле **Шаблон сообщения** собственный текст.
193
194 == {{id name="Уведомлениеответственноголицаофактепроходачерезточкудоступа-Примерработыскриптаавтоматизации"/}}Пример работы скрипта автоматизации ==
195
196 Уведомление ответственного лица:
197
198 [[image:attach:telegramScrypt_example2.png||thumbnail="true" width="300"]]
199
200 Уведомление владельца пропуска:
201
202 [[image:attach:telegramScrypt_example1.png||thumbnail="true" width="300"]]
203
204 [[image:attach:telegramScrypt_example4.png||thumbnail="true" width="300"]]
205
206 [[image:attach:telegramScrypt_example3.png||width="300"]]
207
208 {{info}}
209 Вы вольны задавать любые формулировки приветствия и тексты сообщений, а также доработать код скрипта для выполнения требуемых вам действий. Вы также можете обратиться к специалистам компании ИТРИУМ для разработки требуемого скрипта.
210 {{/info}}

Платформа НЕЙРОСС