В настоящее время часто возникает вопрос автоматизированного учёта данных расхода воды в некий период времени. Такой учёт необходим не только промышленным предприятиям и заводам, но и сети индивидуальных домохозяйств, дачных участков, гаражей, многоквартирных домов. Автоматический сбор данных со счётчиков воды гарантирует мгновенное и точное получение показаний о расходе воды с каждого прибора учета. Система исключает ошибки в списывании показаний со счётчиков вручную, делает ненужным штат обходчиков, контролирующих правильность подачи сведений со счётчиков.
Для того, чтобы организовать передачу и учёт данных расхода воды со счётчиков водоснабжения, необходимо иметь соответствующую инфраструктуру передачи данных и дистанционную систему анализа и учета показателей. Составным элементом инфраструктуры передачи данных может использоваться устройство NetPing с линиями ввода-вывода, которое позволяет подключать к себе счётчики расхода воды с импульсным выходом и Ethernet портами для подключения к локальной сети с целью передачи данных в систему анализа и учёта.
В данной статье будет рассказано о создании системы дистанционного учёта расхода воды, построенной на базе устройства NetPing IO v2 (также для этой задачи можно использовать устройство UniPing v3), счётчика воды с импульсным выходом и системы мониторинга Zabbix. Данная система дистанционного учёта расхода воды позволяет удалённо с импульсного выхода счётчика снимать показания, которые впоследствии можно передавать на ПК или сервер для сбора данных, для получения статистики, аналитики и формировании счетов на оплату.
Требования для системы дистанционного учёта расхода воды
Для организации дистанционного учёта расхода воды со счётчиков, который необходим при формировании, например, ежемесячной оплаты за воду, требуются:
- устройство удалённого мониторинга NetPing IO v2 или UniPing v3;
- счётчики расхода воды с импульсным выходом;
- ПК или сервер для сбора и хранения информации с установленной системой мониторинга Zabbix;
- локальная/глобальная сеть передачи данных
Общий принцип работы
В системе в качестве прибора учёта расхода воды будут использоваться счётчики водоснабжения, оснащённые импульсными выходами. Импульсный выход счётчика подключается к IO линии устройства NetPing IO v2 или UniPing v3. К каждой IO линии может быть подключен только один счётчик. В итоге устроство NetPing IO v2 поддерживает подключение до четырёх счётчиков расхода воды, а устройство UniPing v3 поддерживает подключение до шестнадцати счётчиков расхода воды. NetPing IO v2 (UniPing v3) считывает импульсы с импульсного выхода счётчика и сохраняет показания на встроенную энергонезависимую флэш-память. С устройства NetPing IO v2 (UniPing v3) по сети TCP/IP можно считывать данные для сбора и хранения информации в системах учёта и мониторинга. Например, для учёта ежемесячной платы за водоснабжение или анализа данных расхода за различные интервалы времени: день, неделя, месяц, год и так далее.
Наглядная схема подключения счётчика воды с импульсным выходом к устройству NetPing
Настройка устройства NetPing
Для применения устройства NetPing IO v2 (UniPing v3) в задаче учёта данных расхода воды требуется выполнить определенную настройку.
Сначала у NetPing IO v2 (UniPing v3) нужно настроить сетевые параметры для того, чтобы устройство успешно передавало данные со счётчика по сети в систему мониторинга Zabbix. Информацию о настройке сетевых параметров можно прочитать в соответствующем разделе описания встроенного ПО для устройства NetPing IO v2.
Второй этап настройки – это настройка параметров устройства, записываемых в память посредством протокола SNMP. Для этого будет использоваться MIB браузер «iReasoning MIB browser». Более подробно об использовании ПО «iReasoning MIB browser» можно прочитать в статье «Что такое MIB файлы ?» блога компании NetPing. Здесь же будет показана непосредственная настройка только тех параметров, которые требуются для описания системы учёта расхода воды.
Допустим, что «iReasoning MIB browser» уже установлен на ПК. Поэтому его остаётся только запустить и прописать настройки для подключения программы к устройству NetPing IO v2 (UniPing v3), которые были установлены на предыдущем шаге.
IP адрес для подключения к устройству прописывается в поле «Address:».
SNMP порт, Community чтения/записи и версия протокола SNMP, поддерживаемая устройством NetPing IO v2 (UniPing v3), настраивается в дополнительных настройках подключения программы, нажатием кнопки «Advanced…».
где:
Address – текущий IP адрес, прописанный в web-интерфейсе устройства NetPing IO v2 (UniPing v3) на странице «Настройки». В примере используется IP адрес: 192.168.0.100.
Port – порт SNMP агента, прописанный в web-интерфейсе устройства NetPing IO v2 (UniPing v3) на странице «Настройки». В примере используется порт: 161.
Read Community – секретное слово, прописанное в web-интерфейсе устройства NetPing IO v2 (UniPing v3) на странице «Настройки». Используется для проверки во время чтения параметров с устройства. В примере используется: SWITCH.
Write Community – секретное слово, прописанное в web-интерфейсе устройства NetPing IO v2 (UniPing v3) на странице «Настройки». Используется для проверки во время записи параметров в устройство. В примере используется: SWITCH.
SNMP Version – выбор версии протокола SNMP. Устройство NetPing IO v2 (UniPing v3) поддерживает SNMP v1.
Теперь, когда настройки подключения выполнены, необходимо загрузить в «iReasoning MIB browser» специальный MIB файл с описанием всех OID (идентификаторы объектов) устройства. Скачать MIB файл для NetPing IO v2 можно в разделе «Документация и файлы» на странице описания устройства сайта компании NetPing. Для этого зайти в пункт меню «File» > «Load MIBs» и выбрать уже загруженный MIB файл с локального диска ПК:
После успешной загрузки MIB файла в области программы «SNMP MIBs» отобразиться иерархическая (древовидная) структура со своими SNMP OID:
Теперь, чтобы понять, какие параметры нужно настраивать, расскажем о внутреннем принципе действия сбора данных со счётчика расхода воды устройством NetPing IO v2 (UniPing v3). Пусть счётчик с импульсным выходом подключен к линии IO1 устройства NetPing IO v2 (UniPing v3). При работе счётчика расхода воды счётчик импульсов на линии IO1 (OID «npIoPulseCounter.1») фиксирует количество импульсов в своей памяти. Счётчик импульсов хранится в энергозависимой памяти, поэтому при отключении питания на NetPing IO v2 (UniPing v3) счётчик импульсов IO линии сбрасывает своё значение в нулевое состояние. Чтобы устранить проблему сброса количества импульсов на IO линии разработчики компании реализовали сохранение данных в энергонезависимой памяти. То есть, значения счетчика импульсов, записанные в SNMP OID «npIoPulseCounter», один раз в три минуты сохраняются в SNMP OID «npElecEnergy», но с коэффициентом пересчёта импульсов «npElecPulsesPerKwh». А вот значения «npElecEnergy» уже хранятся в энергонезависимой памяти устройства.
Поэтому для правильной настройки NetPing IO v2 (UniPing v3) необходимо установить коэффициент «npElecPulsesPerKwh» равным 1. Это означает, что значения, которые фиксирует счётчик импульсов IO линии «npIoPulseCounter», будут записываться в переменную «npElecEnergy» без деления на коэффициент пересчета импульсов «npElecPulsesPerKwh».
Для установки коэффициента пересчёта импульсов равным 1 необходимо в иерархической структуре выбрать ветку «npElecPulsesPerKwh» и прочитать из неё текущие значения отправкой команды «Get Subtree».
В результате в программе отобразятся коэффициенты пересчёта импульсов для всех IO линий. По умолчанию коэффициент равен 3600. Из списка выбрать коэффициент для линии IO1 «npElecPulsesPerKwh.1», вызвать контекстное меню правой кнопкой мыши и нажать «Set»:
Откроется окно «SNMP SET» для заполнения параметров. После установки параметров в окне, показанном на скришоте ниже, необходимо нажать кнопку «Ok» для сохранения.
Коэффициенты пересчёта импульсов для линии IO1 настроены.
Последний этап настройки устройства NetPing IO v2 (UniPing v3) заключается в установке IO линии в режиме входа. Для этого нужно зайти в web-интерфейс устройства на страницу «Ввод-вывод», в выпадающем меню «Режим работы IO линии» для линии IO1 выбрать режим «вход» и сохранить параметры кнопкой «Применить изменения»:
Настройка системы мониторинга Zabbix
Авторизоваться под учётной записью с правами администратора в web-интерфейсе системы мониторинга Zabbix.
Добавить устройство NetPing IO v2 (UniPing v3) в систему мониторинга. Для этого перейти в раздел «Настройка» > «Узлы сети» и нажать кнопку «Создать узел сети».
В появившемся окне настройки нового узла сети необходимо заполнить параметры, указанные на скриншоте и нажать кнопку «Сохранить».
где:
Имя узла сети – уникальное имя узла сети в Zabbix. Разрешены буквенно-цифровые символы, пробелы, точки и подчёркивания.
Группа – выбор групп узлов сети, к которым будет принадлежать узел сети. Узел сети должен принадлежать по крайней мере к одной группе.
Интерфейсы SNMP – интерфейс, который позволяет опрашивать устройство по протоколу SNMP. Здесь нужно указать IP адрес и порт SNMP агента, прописанные в web-интерфейсе устройства NetPing IO v2 (UniPing v3) на странице «Настройки».
В результате в списке узлов сети появится только что созданное устройство «NetPing IO v2».
Чтобы Zabbix смог опрашивать NetPing IO v2 (UniPing v3) по сети Ethernet и вычислять расход потребления воды за различные периоды времени, нужно создать элементы дынных. Элементы данных создаются следующим образом: в списке уже созданных узлов сети нажать на ссылку «Элементы данных», относящуюся к устройству NetPing IO v2.
В окне со списком элементов данных нажать кнопку «Создать элементы данных» для создания нового элемента данных.
Заполнить поля, как показано на скриншоте:
где:
Имя – название элемента данных в Zabbix.
Тип – параметр, определяющий метод опроса элемента данных.
Ключ – уникальное имя ключа элемента данных в пределах одного узла.
Интерфейс узла сети – выпадающий список с интерфейсами узла сети, настроенных ранее.
SNMP OID – числовой идентификатор объекта. В примере указан SNMP OID «.1.3.6.1.4.1.25728.9700.1.1.4.1» («npElecEnergy.1»). OID можно посмотреть в MIB файле на соответствующее устройство NetPing IO v2 (UniPing v3) или в описании встроенного ПО по ссылке на странице описания устройства в разделе «Документация и файлы».
SNMP community – секретное слово, прописанное в web-интерфейсе устройства NetPing IO v2 (UniPing v3) на странице «Настройки». Используется для проверки во время чтения параметров с устройства.
Тип информации – тип хранения данных в базе данных Zabbix после выполнения преобразований, если таковые имеются.
Тип данных – используется для целочисленных элементов данных для определения типа ожидаемых данных. Тип «Десятичный» определяет данные в десятичном формате.
Единица измерения – если задан символ единицы измерения, Zabbix добавит постобработку полученного значения и отобразит его с заданным постфиксом единицы измерения.
Пользовательский множитель – число, на которое будут умножены значения, получаемые Zabbix от устройства. В примере пользовательский множитель установлен 0.01, так как было принято, что счётчик замыкает контакт (фиксирует импульс) при расходе воды 0.01 кубометров.
Интервал обновления (в сек) – обновление этого элемента данных каждые N секунд. В примере интервал установлен 180 секунд, так как устройство NetPing IO v2 (UniPing v3) сохраняет значения счётчика импульсов IO линии в энергонезависимой памяти раз в три минуты.
В результате был настроен элемент данных, который получает показания расхода воды, фиксируемые с самого начала работы счетчика. То есть, эти показания соответствуют отображаемым показаниям расхода воды на самом циферблате счётчика.
Настроим вычисляемый элемент данных, который будет определять расход воды за месяц. Для этого в окне со списком элементов данных нажать кнопку «Создать элементы данных» и заполнить поля, как показано на скриншоте:
где:
Имя – название элемента данных в Zabbix.
Тип – параметр, определяющий метод опроса элемента данных.
Ключ – уникальное имя ключа элемента данных в пределах одного узла.
Формула – арифметическое выражение для расчёта необходимых показаний на основе других элементов данных. Формула max(«npElecEnergy.1»,2678400)-min(«npElecEnergy.1»,2678400) вычисляет разницу между максимальным и минимальным значениями за месяц (2674400 секунд), полученными в элементе данных «Счётчик воды — текущие показания (NetPing NVRAM)». Подробнее о настройке вычисляемых элементов данных можно прочитать в официальной документации по Zabbix.
В результате был настроен вычисляемый элемент данных, который рассчитывает показания расхода воды за месяц.
Для получения показаний расхода воды за другие интервалы времени (час, день, неделя и так далее) необходимо добавить в Zabbix вычисляемые элементы данных аналогичные уже настроенному элементу данных «Счетчик воды — расход за месяц».
Вычисляемый элемент данных расхода воды за час:
где:
Имя – название элемента данных в Zabbix.
Тип – параметр, определяющий метод опроса элемента данных.
Ключ – уникальное имя ключа элемента данных в пределах одного узла.
Формула – арифметическое выражение для расчёта необходимых показаний на основе других элементов данных. Формула max(«npElecEnergy.1»,3600)-min(«npElecEnergy.1»,3600) вычисляет разницу между максимальным и минимальным значениями за час (3600 секунд), полученными в элементе данных «Счётчик воды — текущие показания (NetPing NVRAM)». Подробнее о настройке вычисляемых элементов данных можно прочитать в официальной документации по Zabbix.
Интервал обновления (в сек) – обновление этого элемента данных каждые N секунд. В примере интервал установлен 3600 секунд, то есть, расчёт расхода воды будет выполняться каждый час.
Вычисляемый элемент данных расхода воды за день:
где:
Имя – название элемента данных в Zabbix.
Тип – параметр, определяющий метод опроса элемента данных.
Ключ – уникальное имя ключа элемента данных в пределах одного узла.
Формула – арифметическое выражение для расчёта необходимых показаний на основе других элементов данных. Формула max(«npElecEnergy.1»,86400)-min(«npElecEnergy.1»,86400) вычисляет разницу между максимальным и минимальным значениями за день (86400 секунд), полученными в элементе данных «Счётчик воды — текущие показания (NetPing NVRAM)». Подробнее о настройке вычисляемых элементов данных можно прочитать в официальной документации по Zabbix.
Интервал обновления (в сек) – обновление этого элемента данных каждые N секунд. В примере интервал установлен 86400 секунд, то есть, расчёт расхода воды будет выполняться раз в день.
Вычисляемый элемент данных расхода воды за неделю:
где:
Имя – название элемента данных в Zabbix.
Тип – параметр, определяющий метод опроса элемента данных.
Ключ – уникальное имя ключа элемента данных в пределах одного узла.
Формула – арифметическое выражение для расчёта необходимых показаний на основе других элементов данных. Формула max(«npElecEnergy.1»,604800)-min(«npElecEnergy.1»,604800) вычисляет разницу между максимальным и минимальным значениями за неделю (604800 секунд), полученными в элементе данных «Счётчик воды — текущие показания (NetPing NVRAM)». Подробнее о настройке вычисляемых элементов данных можно прочитать в официальной документации по Zabbix.
Переменные интервалы – обновление этого элемента данных происходит каждый установленный интервал d-d,hh:mm-hh:mm, где d-d: день недели (1 — понедельник, 2 — вторник ,… , 7 — воскресенье), hh: часы (00-24), mm: минуты (00-59). В примере переменный интервал установлен 60 секунд каждый первый день недели с 00:00 до 00:01, то есть, расчет расхода воды будет выполняться каждый понедельник с 00:00 до 00:01.
В результате вышеприведенных настроек были получены следующие элементы данных:
Теперь можно добавить графики текущих показаний счётчика и расхода воды за периоды времени. Для этого из окна со списком элементов данных нажать по ссылке «Графики».
В окне «Настройка графиков» создать график текущих показаний счётчика расхода воды нажатием кнопки «Создать график».
В окне создания нового графика необходимо ввести следующие параметры:
где:
Имя – уникальное имя графика.
Элементы данных – выбор элементов данных, значения которых будут отображены на этом графике. В примере для показа текущих показаний расхода воды на счётчике необходимо нажать ссылку «Добавить» и из появляющегося списка элементов данных выбрать элемент данных «Счётчик воды — текущие показания (NetPing NVRAM)».
Функция – параметр определяет какие значения будут отображаться на графике, когда существует более одного значения для элемента данных. В примере нужно выбрать Показывать максимальные значения.
Аналогично настраиваются графики и для других элементов данных, которые предназначены для отображения расхода воды за различные периоды времени.
В итоге в системе мониторинга Zabbix добавлены следующие графики:
Графики и отчёты в Zabbix
В результате вышеприведенных настроек в системе мониторинга Zabbix можно просматривать графики и отчёты расхода воды за необходимые интервалы времени. Например, чтобы посмотреть график текущих показаний счётчика расхода воды, нужно перейти в раздел «Мониторинг» > «Графики», выбрать необходимую группу узлов сети «Discovered hosts», узел сети «NetPing IO v2» и сам график «1. NetPing IO v2: Счетчик воды — текущие показания».
В результате появится график текущих показаний счётчика расхода воды соответствующий показаниям расхода воды на самом циферблате счётчика.
Аналогичным образом отображаются и другие настроенные графики.
Также система мониторинга Zabbix позволяет строить гистограммные отчёты. Для построения такого отчёта нужно перейти в раздел «Отчеты» > «Гистрограммные отчёты» и выбрать тип отчёта «Распределение значений для нескольких периодов».
Далее можно сформировать отчёт расхода воды за 2015 год с разбивкой по месяцам. Для этого необходимо заполнить параметры отчёта следующим образом:
где:
Заголовок – параметр задаёт имя отчёта.
Период – указание начала и конца периода показа данных в отчёте.
Элементы данных – выбор элементов данных, данные которых нужно отображать в отчёте. При добавлении в отчёт настроенных ранее элементов данных выбрать функцию показа максимальных значений.
В результате настроек будет отображен гистрограммный отчёт расхода воды за 2015 год с разбивкой по месяцам:
Аналогичным образом можно настраивать и другие гистрограммные отчёты:
Дополнительно в системе мониторинга Zabbix можно реализовать отправку e-mail отчётов о расходе воды за необходимые периоды времени. Об этом подробно написано в следующей статье.
Вывод
Описанная в примере система дистанционного учёта расхода воды, построенная на базе устройства мониторинга NetPing IO v2 (UniPing v3), счётчика расхода воды с импульсным выходом и системы мониторинга Zabbix позволяет полноценно организовать сбор и хранение данных. Система предоставляет возможность анализа и оценки получаемых данных, позволяет отсылать e-mail уведомления необходимому персоналу, а также формировать квитанции на оплату расхода воды.