Главная » Решения » Решения «Посещаемость»

Статистика из Журнала CSV

«Посещаемость» поддерживает передачу журнала по HTTP-запросу, FTP выгрузку, отправку на электронную почту журнала в формате CSV.

Подробное описание строки содержится в руководстве по эксплуатации «Посещаемость».

Журнал счетчика содержит различные события: статистику посещения, считывания карт, включения и выключения и т.д. Для импорта в программы статистики требуется получить краткую информацию об одном событии. В этом помогут регулярные выражения. Регулярные выражения можно применить к тексту CSV в скриптовых языках, текстовых редакторах. Примеры приведены для текстового редактора sed, доступного для всех операционных систем.

Для использования Sed под Windows возможно установить сборку Setup или извлечь из Zip архива файл sed.exe в директорию с CSV файлами.

К примеру, возьмем небольшой файл журнала input.csv

27/08/22 13:00,10,8,6,8
27/08/22 13:02,28,23,
27/08/22 13:10,10,4,7,2
27/08/22 13:20,10,2,7
27/08/22 13:30,10,3,7
27/08/22 13:38,13,249,
27/08/22 13:40,10,9,7
27/08/22 13:45,02,,
27/08/22 14:42,01,,
27/08/22 14:43,12,,
27/08/22 14:50,10,3,6
27/08/22 15:00,10,5,6
27/08/22 15:02,28,21,
27/08/22 15:10,10,4,5
27/08/22 15:20,10,7,5
	

Статистика посещаемости

В CSV журнале событие 10 содержит три параметра Вход-Присутствие-Выход для версии счётчика v2 или Вход-Пристутствие для v0. Чтобы получить статистику посещаемости из журнала необходимо взять все параметры события 10:

sed -r -n "s/^([0-9\/ :]+),10(.+?)$/\1\2/p" input.csv > output_visit.csv

В итоговом файле output_visit.csv:

27/08/22 13:00,8,6,8
27/08/22 13:10,4,7,2
27/08/22 13:20,2,7
27/08/22 13:30,3,7
27/08/22 13:40,9,7
27/08/22 14:50,3,6
27/08/22 15:00,5,6
27/08/22 15:10,4,5
27/08/22 15:20,7,5
	

Статистика температуры

Чтобы получить статистику температуры из журнала необходимо взять параметр события 28:

sed -r -n "s/^([0-9\/ :]+),28(.+?),.*$/\1\2/p" input.csv > output_temperature.csv

В итоговом файле output_temperature.csv:

27/08/22 13:02,23
27/08/22 15:02,21
	

Статистика выключений

Чтобы получить прерывания подсчета из журнала необходимо взять события включения 01, выключения 02, нахождения излучателя 12 и потерю излучателя 13:

sed -r -n "s/^([0-9\/ :]+)(,)(01|02|12|13)(.+?)$/\1\2\3\4/p" input.csv > output_fails.csv

В итоговом файле output_fails.csv:

27/08/22 13:38,13,249,
27/08/22 13:45,02,,
27/08/22 14:42,01,,
27/08/22 14:43,12,,