Хабрахабр

Плюс один процент автоматизации

В конце прошлой статьи я остановился на перечислении того бесконечного списка технических решений, которые очень хочется реализовать в рамках автоматизации всей, ну не страны, но дачи.

Следить за текущими показаниями потребления полезно, чтобы не превышать разумные лимиты и не дожидаться отключения групповых автоматов. Раньше общее потребление контролировал однофазный счетчик с Modbus-интерфейсом. Но гораздо интереснее следить за каждым потребителем в отдельности. С этой задачей он справлялся на «ура». Отвечать на ваши комментарии было не менее увлекательно, чем писать саму статью. Для чего и как это сделать попробую рассказать в этой статье.
Прежде всего я хотел сказать большое спасибо вам, коллеги, за проявленный интерес к предыдущей статье. Один наблюдательный читатель обратил внимание, что фильтр грубой очистки воды установлен вверх ногами!

Wiren Board производит несколько моделей многоканальных modbus-счетчиков электроэнергии: четырехканальный трехфазный монстр WB-MAP12H (и его одноканальный младший брат WB-MAP3H), шестиканальный однофазный WB-MAP6S и отдельную модель WB-MAP3E, которая применяется в специальных случаях, когда требуется диагностировать короткие и мощные всплески напряжения.

Кроме всего прочего, счетчики MAP позволяют измерять коэффициенты гармоник по напряжению и току, что важно для оценки качества электроэнергии в сетях со “злобными” потребителями. Счетчики серии WB-MAP измеряют огромное количество параметров сети: мгновенные параметры напряжения, тока, частоты, мощности (активной, реактивной, полной), коэффициентов мощности, фазовые углы; накопленные значения энергий по каждому каналу.

Это очень удобно при установке счетчика в готовом щите. Напряжение подается непосредственно на клеммы счетчиков, а ток для каждого канала измеряется разъемными токовыми трансформаторами.


Монтаж счетчиков

Установка разъемных токовых трансформаторов.

И да, щиты должны быть большими! В демонстрационных щитах трансформаторы тока выглядят красиво и аккуратно (как на картинке в заглавии поста), в реальной жизни приходится размещать трансформаторы там, где это получается.

Проект автоматизации моего дачного дома, как я подробно рассказывал в предыдущей статье, сделан на основе предыдущей версии нашего контроллера Wiren Board 5, к которому по интерфейсу Modbus подключены различные релейные модули, исполнительные устройства и датчики.

Первоначальные прикидки по количеству каналов измерения оказались, конечно, неверными: потребителей, за которыми хотелось наблюдать, оказалось больше, так что некоторое время пришлось потратить на размышления, по каким группам измерять потребление. Перед очередными выходными я вооружился двумя счетчиками WB-MAP6S и одним WB-MAP12H и занялся делом.

Были выбраны общий ввод, нагрузки после стабилизатора и инвертора, конвекторы и кондиционеры (каждый по отдельности), два бойлера, телекоммуникационный шкаф, автоматические ворота, холодильник, теплый пол.

Стандартные шаблоны, которые идут вместе с контроллером, я сократил до необходимого минимума параметров. Счетчики собирают огромное количество параметров (WB-MAP12H имеет более тысячи регистров), но даже постоянный опрос нескольких десятков параметров с каждого счетчика становится значительной нагрузкой на шину RS-485, если опрашивать их слишком часто.

В такой конфигурации опрос счетчиков стал выполняться довольно бодро и не мешал функционированию остальной автоматики. Счетчики я перенес на вторую шину RS-485 контроллера Wiren Board, чтобы не мешать нормальной работе релейных модулей и датчиков, и увеличил скорость до 115200 кбит/с.

Контроллер Wiren Board имеет встроенную базу данных и простые средства визуализации, но для серьезных задач стоит использовать более серьезные средства. Прежде чем приступить к практическому использованию полученных результатов, их необходимо проанализировать со всех сторон.

Контроллер транслирует все данные в виде mqtt-топиков на отдельный mqtt-брокер на сервере, где скрипт на Python обрабатывает их и сохраняет в Influx. Вспомнив, что я как-никак Zabbix CP, решил было развернуть мониторинг на нем, но тяга к новому пересилила и я решился попробовать использовать для хранения и отображения данных популярную связку Influxdb + Grafana. Там же установлена Grafana для отображения всего и вся.

Вот несколько примеров. Первые же результаты меня не разочаровали.


Напряжение в сети

Пики — раннее утро. Все провалы, за редким исключением, приходятся на время около 21:00 — 23:00 часов и в выходные особенно заметны.

Так выглядит работа двух стабилизаторов (желтая и голубая линии):

Ничего особенного, хотя видно, что один из них склонен к переключению на совсем уж предельные (укладывающиеся, правда, в рамки ГОСТа) значения напряжения. Это обычные релейные стабилизаторы известного в широких кругах латвийско-китайского производителя, с достаточно большим шагом меняющие напряжение на выходе. Первый кандидат на замену.

Мгновенные значения отображаются в виде таких графановских виджетов:

Просто и наглядно, годится для вывода на информационный экран или планшет на стене.

Очень живописно выглядит график мгновенной мощности для всех потребителей (щелкните на рисунке, чтобы открыть в полном масштабе):

Большое и зеленое — это не крокодил, а общая мощность на входе.

Grafana позволяет выбрать на графике не только все, но один или несколько показателей, представляющих интерес.

У современных бытовых устройств он вполне себе неплох. Коэффициент мощности (cos φ). Я исследовал работу трех потребителей: кондиционера, холодильника и водонагревателя.

У водонагревателя в момент активной работы коэффициент мощности 1 — “высокий” (0,95…1), у холодильника 0,85 — “хороший” (0,8…0,95); коэффициент мощности кондиционера (0,76) находится у верхней границы “удовлетворительного” диапазона (0,65…0,8).

Инверторный кондиционер:

Работа в штатном режиме охлаждения и структура отдельного пика включения компрессора (справа)

Видны пики при начальном запуске компрессора внешнего блока, стабильный режим работы, дежурный режим.

“Др-др-др-др-др-др-др?” Почти что. Как работает холодильник? Компрессор запускается периодически, по мере потепления внутри камер:


Периодические включения компрессора холодильника


Структура отдельного пика энергопотребления

Счетчики WB-MAP достаточно чувствительные: видите эти маленькие пики, около десятка Ватт? Отдельный цикл: виден бросок мощности при включении компрессора холодильника. Это загоралась лампочка внутри холодильника: кто-то в него лазил!

Полотенцесушитель работает в цикле постоянного включения/выключения для поддержания заданной температуры:

Справа более детальное изображение отдельных пиков потребления

Примерно так же работает варочная поверхность:

Кажется, это варился мой утренний кофе.

Интересный профиль энергопотребления у автоматических ворот:

Около 5 Ватт потребляют они в дежурном режиме, при работе профиль энергопотребления позволяет увидеть отдельные фазы движения створок: начинает открываться первая, затем начинает вторая, затем они открываются вместе, а затем по очереди стопорятся и двигатели приводов отключаются.

Бойлер поддерживает температуру воды, частота и время включений зависят от потребления горячей воды:

(Grafana умеет не только строить графики, но и отображать данные в таблицах и на столбчатых диаграммах.) Не буду утомлять дальше читателей графиками — покажу табличку!

Старая версия Influxdb, которая ставится из репозиториев текущей версии Ubuntu на сервере, не умеет делать привычные выборки из выборок, поэтому добавить столбец со стоимостью каждого часа не удалось. Табличка простая и позволяет отслеживать общее потребление энергии по часам, а также оценить, во что обошелся каждый час в соответствии с текущим тарифом.

На диаграмме потребление выглядит так:

Учитывая, что Gafana может генерировать тревожные сообщения, полученного результата вполне хватает для light-версии мониторинга энергоснабжения.
Однако хочется решить и более увлекательные задачи.

  • Гармоники тока и напряжения. Несут ли они полезную информацию для дома? Часто плохие потребители или искрящие контакты генерируют гармоники высоких порядков. Насколько хватит временного разрешения счетчиков, чтобы их детектировать и принимать какие-то решения об отключении “плохих нагрузок”? Или просто выдавать алерты?
  • Кондиционеры и конвекторы. Если отталкиваться от температуры в помещении, можно понять, в каком режиме работает кондиционер: пытается ли он с диким упорством охладить конвектор (конвектор следует отключить) или они сотрудничают вместе, чтобы побыстрее нагреть помещение, если кондиционер работает в обратном режиме, на нагрев?
  • Ворота. Если профиль энергопотребления меняется и начинает значительно отличаться от штатного, то это может говорить о том, что есть какое-то препятствие, загустело масло в приводах от низкой температуры, кто-то слишком часто открывает-закрывает ворота. Тут можно отправлять предупреждения, отключать питание. Хватит ли для этого средств контроллера, Influx и Grafana? Возможно, такие вещи надо реализовывать отдельным скриптом, подписанным только на сообщения со значениями параметров энергопотребления ворот.
  • Насосная станция и скважинный насос. Вместе с оценкой расхода воды возможно отследить падение производительности из-за каких-то неисправностей, течи, проблем с накопительными баками.
  • Работу компрессора септика тоже можно оценить по энергопотреблению, хотя расход воздуха более информативен, на мой взгляд.
  • Водонагреватели. В скважине очень жесткая вода, накипь образуется достаточно быстро. Соответственно, нагревательным элементам приходится работать больше и в более жестком режиме, нагревая воду из-под дополнительного кожуха накипи (он еще и пригорать начинает, если довольно толстый). Интересно будет понять, хватит ли анализа потребляемой мощности для детектирования образовавшейся накипи (у бойлеров нет интерфейса для сообщения о температуре воды в баке)?
  • Общее энергопотребление — если токи подходят к предельным значениям, можно отключать низкоприоритетные нагрузки.

Буду рад, если кто-нибудь предложит неожиданный и интересный вариант использования мониторинга энергопотребления отдельных устройств.

До новых встреч, друзья!

Показать больше

Похожие публикации

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»