«Глупый» электросчетчик VS умный дом или как интегрировать электросчетчик без смарт функций в Home Assistant

irdxrqblkvqpvjov4nt4c3vxhyg.jpeg


Однажды у меня возникла потребность подключения своего узла учета электрической энергии к системе умного дома «Home Assistant», но вот беда, установленный счетчик ЭНЕРГОМЕРА СЕ101 не обладал смарт функциями, позволяющими без проблем подключать его к системам умного дома, а цена электросчетчиков со смарт функциями просто заоблачная. Но я нашел экономичное решение с ценой решения задачи менее $5 и об этом далее.

Исходные данные


Итак, как я говорил ранее, для учета электрической энергии у нас установлен счетчик ЭНЕРГОМЕРА СЕ101 модификации R5 — достаточно бюджетное решение. Чтобы изучить подопытного в плане доступных интерфейсов, изучим техническую документацию на данный счетчик. Я особо не испытывал иллюзий в плане наличия доступных интерфейсов, но мне повезло.

Бинго! — сказал я, найдя в документации следующие пункты:

  • 2.3.1. Принцип действия счетчика основан на перемножении входных сигналов тока и напряжения по методу сигма-дельта модуляции с последующим преобразованием сигнала в частоту следования импульсов, пропорциональную входной мощности. Суммирование этих импульсов отсчетным устройством дает количество активной энергии. Счетчик также имеет в своем составе испытательный выход для подключения к системам автоматизированного учета потребленной электроэнергии или для поверки.
  • 2.3.2. Конструктивно счетчик выполнен в пластмассовом корпусе. В корпусе размещена печатная плата, на которой расположена вся схема счетчика. В качестве датчика входного тока используется шунт, соединенный с контактами колодки. Зажимы для подсоединения счетчика к сети, испытательный выход закрываются пластмассовой крышкой.
  • 2.3.3. Испытательный выход реализован на транзисторе с «открытым» коллектором, для его функционирования необходимо подать питающее напряжение постоянного тока от 5 до 24 В. Величина номинального тока через контакты испытательного выхода в состоянии «замкнуто» равна (10±1) мА, максимально допустимая не более 30 мА.


Техническая документация нам прямо говорит:

Счетчик имеет в своем составе испытательный выход для подключения к системам автоматизированного учета потребленной электроэнергии или для поверки.


Ниже приведена схема подключения счетчика

u2zqdxdojzsb15cmjozxk-opc34.png


Решено! Будем использовать данный выход для интеграции электросчетчика с Home Assistant. Нам останется только преобразовать импульсный сигнал в удобную форму данных, чем и займется дешевый микроконтроллер ESP8266.

Дополнительная информация по испытательному выходу

Импульсный выход электросчетчика реализован с гальванической развязкой с помощью оптопары, поэтому мы можем смело подключать данный выход напрямую к микроконтроллеру без дополнительной развязки. Как правило, к данному выходу имеется свободный доступ и клеммы не пломбируются энергоснабжающей компанией.

Алгоритм преобразования данных


Здесь все просто. Каждый счетчик имеет параметр «частота следования импульсов, пропорциональная входной мощности», который указан на панели счетчика, в моём случае это 3200 imp/kW*h. То есть, чтобы нам узнать накопленную мощность, просто нужно будет значение инкрементного счетчика, который суммирует входящие импульсы от счетчика, поделить на 3200. Чтобы отслеживать потребление за определенный период времени нам нужно будет реализовать дополнительные интервальные счетчики.

Разработка аппаратной части


Итак, как описывалось ранее, преобразование импульсных значений электросчетчика достаточно тривиальная задача, с которой вполне справится микроконтроллер ESP8266.

Принципиальная схема устройства

olarecqdyujagnrdepcjh42cgiy.png


Рендер печатной платы

uo2clkwfgpxji4tuw4rqpbvea_g.jpeg

На самом деле, схема настолько простая, что монтаж можно реализовать навесным методом.

Пример навесного монтажа. Особо впечатлительным не смотреть!)
lnqvq7_cmxjhnp5dodftqs8fpay.jpeg

Корпус


Модель корпуса, как обычно, я разрабатывал во FreeCAD.

hc7sisb6p7ocr6zrjhiijbdgo0o.png

В корпусе предусмотрен отсек для аккумулятора, который обеспечит устройство резервным питанием. Питание устройства и зарядка аккумулятора выполняется с помощью популярной платы на буде контроллера заряда TP4056. Но использование аккумулятора не обязательно, я просто перестраховался.

Модель корпуса напечатана HIPS пластиком на 3D принтере.

Микро ПО


Прошивка устройства написана в среде Arduino IDE, большую часть прошивки занимает веб интерфейс и функция работы с MQTT протоколом. Для работы с входным сигналом используется аппаратное прерывание. Ссылку на исходный код прошивки я оставлю конце статьи, а теперь давайте рассмотрим веб интерфейс устройства:

  • Вход в устройство


Для входа в устройство требуется авторизация, пароль по умолчанию: admin

b3yllhuf-1xkkvvuqp7niu7lxdo.png
  • Главная страница устройства


vlgeaw7hy0jgks5w51fkjephzm4.png

На главной странице отображены данные по потреблению электроэнергии:

  1. Потребляемая мощность (сред. 10 сек, 1 мин, 5 мин, 60 мин), Вт*ч — усредненное рассчитанное часовое потребление за период 10 сек, 1 мин, 5 мин, 60 мин. Для отслеживания динамики по потреблению эл.энергии.
  2. Показания счетчика — накопленное значение кВт*ч


  • Конфигурация передачи данных по MQTT протоколу


gynmz4aaf6hotv7uhbjsgagimic.png


Как вы могли заметить, для интеграции с Home Assistant используется протокол MQTT, настройки вполне понятные, не требует дополнительных описаний.

Ниже указаны топики, для примера, указано корневое имя топика «m_power»:

  1. m_power/10s — передача значения «Потребляемая мощность (сред. 10 сек)», периодичность отправки 10 сек.
  2. m_power/1m — передача значения «Потребляемая мощность (сред. 1 мин)», периодичность отправки 1 мин.
  3. m_power/5m  — передача значения «Потребляемая мощность (сред. 5 мин)», периодичность отправки 5 мин.
  4. m_power/60m — передача значения «Потребляемая мощность (сред. 60 мин)», периодичность отправки 60 мин.
  5. m_power/total — передача значения «Накопленная мощность», периодичность отправки 5 мин.


  • Настройка типа счетчика


qcfya-t-vqbgzfh062anorhbba8.png


Здесь необходимо ввести два параметра вашего электросчетчика:

  • »Количество импульсов счетчика на 1 кВт*ч» — данный параметр указан на табло счетчика
  • »Текущие показания счетчика» — данный параметр передается в устройство, как начальное значение накопленной мощности, далее к этому параметру будут прибавляться рассчитанные контроллером данные.


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

Интеграция в Home Assistant


Чтобы интегрировать данное устройство в Home Assistant, необходимо прописать в файле конфигурации configuration.yaml следующий код:

mqtt:
  sensor:      
     #счетчик эл энергии
    - name: "Счетчик эл.эн, среднее за 10с"
      state_topic: "m_power/10s"
      value_template: "{{ value  }}"
      unit_of_measurement: "Wh"
      icon: "mdi:flash"
      device_class: energy
    - name: "Счетчик эл.эн, среднее за 1 мин"
      state_topic: "m_power/1m"
      value_template: "{{ value }}"
      unit_of_measurement: "Wh"
      icon: "mdi:flash"
      device_class: energy
    - name: "Счетчик эл.эн, среднее за 5 мин"
      state_topic: "m_power/5m"
      value_template: "{{ value }}"
      unit_of_measurement: "Wh"
      icon: "mdi:flash"
      device_class: energy
    - name: "Счетчик эл.эн, среднее за 60 мин"
      state_topic: "m_power/60m"
      value_template: "{{ value }}"
      unit_of_measurement: "Wh"
      icon: "mdi:flash"
      device_class: energy
    - name: "Счетчик эл.эн, накопленные "
      state_topic: "m_power/total"
      value_template: "{{ value }}"
      unit_of_measurement: "kWh"
      icon: "mdi:flash"
      device_class: energy


Обратите внимание, что в примере указан корень топика с именем «m_power».

Код карточки «объекты» для вывода данных:

type: entities
entities:
  - entity: sensor.schetchik_el_en_srednee_za_10s
  - entity: sensor.schetchik_el_en_srednee_za_1_min
  - entity: sensor.schetchik_el_en_srednee_za_5_min
  - entity: sensor.schetchik_el_en_srednee_za_60_min
  - entity: sensor.schetchik_el_en_nakoplennye
title: Счетчик эл.энергии


В результате у вас должно получиться что-то подобное:

zongnbsjvk0qa3btuxox_pj3b7k.png

Подключение нашего контроллера к электросчетчику


Важное предупреждение!

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


Подключение нашего контроллера к импульсному выходу электросчетчика выполняется согласно схеме, что была указана выше. Ниже пример подключения к моему электросчетчику.

smmbiaxt0av6ngomwus-fjjkpzy.jpeg


Подключение выполнялось свободной «витой парой», которая шла из моей квартиры, потому нет необходимости размещения контроллера в щите, где установлен электросчетчик. После подключения витой пары, крышка которая закрывает клеммник, была установлена на место.

Ниже фотография собранного устройства с подключенным счетчиком.

r5umyrhd-nkst6-hisxlmyc-vjw.jpeg


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

zduiowqbmfxi5mbqpixr5z3nh2i.png


vdfqrrxzezaufgx3yg4h615qoiw.png


stabwnrqtxw_sjedgvm_ggs84lq.png


Подводим итоги


В итоге у получилось простое и дешевое устройство для интеграции «глупого» электросчетчика в системы умного дома. Я очень доволен результатом! Теперь нет необходимости переодически записывать показания со счетчика для отправки, а просмотр статистики потребления, по временным интервалам, дает возможность анализа расхода электроэнергии с последующей оптимизацией.

Дополнительная опция

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


Спасибо всем за уделенное внимание!

Исходные файлы проекта:



Возможно, захочется почитать и это:
b5pjofdoxth14ro-rjsrn7sbmiy.png

© Habrahabr.ru