Однажды у меня возникла потребность подключения своего узла учета электрической энергии к системе умного дома «Home Assistant», но вот беда, установленный счетчик ЭНЕРГОМЕРА СЕ101 не обладал смарт функциями, позволяющими без проблем подключать его к системам умного дома, а цена электросчетчиков со смарт функциями просто заоблачная. Но я нашел экономичное решение с ценой решения задачи менее $5 и об этом далее.
❯ Исходные данные
Итак, как я говорил ранее, для учета электрической энергии у нас установлен счетчик ЭНЕРГОМЕРА СЕ101 модификации R5 — достаточно бюджетное решение. Чтобы изучить подопытного в плане доступных интерфейсов, изучим техническую документацию на данный счетчик. Я особо не испытывал иллюзий в плане наличия доступных интерфейсов, но мне повезло.
Бинго! — сказал я, найдя в документации следующие пункты:
- 2.3.1. Принцип действия счетчика основан на перемножении входных сигналов тока и напряжения по методу сигма-дельта модуляции с последующим преобразованием сигнала в частоту следования импульсов, пропорциональную входной мощности. Суммирование этих импульсов отсчетным устройством дает количество активной энергии. Счетчик также имеет в своем составе испытательный выход для подключения к системам автоматизированного учета потребленной электроэнергии или для поверки.
- 2.3.2. Конструктивно счетчик выполнен в пластмассовом корпусе. В корпусе размещена печатная плата, на которой расположена вся схема счетчика. В качестве датчика входного тока используется шунт, соединенный с контактами колодки. Зажимы для подсоединения счетчика к сети, испытательный выход закрываются пластмассовой крышкой.
- 2.3.3. Испытательный выход реализован на транзисторе с «открытым» коллектором, для его функционирования необходимо подать питающее напряжение постоянного тока от 5 до 24 В. Величина номинального тока через контакты испытательного выхода в состоянии «замкнуто» равна (10±1) мА, максимально допустимая не более 30 мА.
Техническая документация нам прямо говорит:
Счетчик имеет в своем составе испытательный выход для подключения к системам автоматизированного учета потребленной электроэнергии или для поверки.
Ниже приведена схема подключения счетчика
Решено! Будем использовать данный выход для интеграции электросчетчика с Home Assistant. Нам останется только преобразовать импульсный сигнал в удобную форму данных, чем и займется дешевый микроконтроллер ESP8266.
❯ Алгоритм преобразования данных
Здесь все просто. Каждый счетчик имеет параметр «частота следования импульсов, пропорциональная входной мощности», который указан на панели счетчика, в моём случае это 3200 imp/kW*h. То есть, чтобы нам узнать накопленную мощность, просто нужно будет значение инкрементного счетчика, который суммирует входящие импульсы от счетчика, поделить на 3200. Чтобы отслеживать потребление за определенный период времени нам нужно будет реализовать дополнительные интервальные счетчики.
❯ Разработка аппаратной части
Итак, как описывалось ранее, преобразование импульсных значений электросчетчика достаточно тривиальная задача, с которой вполне справится микроконтроллер ESP8266.
Принципиальная схема устройства
Рендер печатной платы
На самом деле, схема настолько простая, что монтаж можно реализовать навесным методом.
❯ Корпус
Модель корпуса, как обычно, я разрабатывал во FreeCAD.
В корпусе предусмотрен отсек для аккумулятора, который обеспечит устройство резервным питанием. Питание устройства и зарядка аккумулятора выполняется с помощью популярной платы на буде контроллера заряда TP4056. Но использование аккумулятора не обязательно, я просто перестраховался.
Модель корпуса напечатана HIPS пластиком на 3D принтере.
❯ Микро ПО
Прошивка устройства написана в среде Arduino IDE, большую часть прошивки занимает веб интерфейс и функция работы с MQTT протоколом. Для работы с входным сигналом используется аппаратное прерывание. Ссылку на исходный код прошивки я оставлю конце статьи, а теперь давайте рассмотрим веб интерфейс устройства:
- Вход в устройство
Для входа в устройство требуется авторизация, пароль по умолчанию: admin
- Главная страница устройства
На главной странице отображены данные по потреблению электроэнергии:
- Потребляемая мощность (сред. 10 сек, 1 мин, 5 мин, 60 мин), Вт*ч — усредненное рассчитанное часовое потребление за период 10 сек, 1 мин, 5 мин, 60 мин. Для отслеживания динамики по потреблению эл.энергии.
- Показания счетчика — накопленное значение кВт*ч
- Конфигурация передачи данных по MQTT протоколу
Как вы могли заметить, для интеграции с Home Assistant используется протокол MQTT, настройки вполне понятные, не требует дополнительных описаний.
Ниже указаны топики, для примера, указано корневое имя топика «m_power»:
- m_power/10s — передача значения «Потребляемая мощность (сред. 10 сек)», периодичность отправки 10 сек.
- m_power/1m — передача значения «Потребляемая мощность (сред. 1 мин)», периодичность отправки 1 мин.
- m_power/5m — передача значения «Потребляемая мощность (сред. 5 мин)», периодичность отправки 5 мин.
- m_power/60m — передача значения «Потребляемая мощность (сред. 60 мин)», периодичность отправки 60 мин.
- m_power/total — передача значения «Накопленная мощность», периодичность отправки 5 мин.
- Настройка типа счетчика
Здесь необходимо ввести два параметра вашего электросчетчика:
- "Количество импульсов счетчика на 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: Счетчик эл.энергии
В результате у вас должно получиться что-то подобное:
❯ Подключение нашего контроллера к электросчетчику
Подключение нашего контроллера к импульсному выходу электросчетчика выполняется согласно схеме, что была указана выше. Ниже пример подключения к моему электросчетчику.
Подключение выполнялось свободной «витой парой», которая шла из моей квартиры, потому нет необходимости размещения контроллера в щите, где установлен электросчетчик. После подключения витой пары, крышка которая закрывает клеммник, была установлена на место.
Ниже фотография собранного устройства с подключенным счетчиком.
Видео работы контроллера при включенном электрическом водонагревателе.
Ниже демонстрация графиков данных, полученных с контроллера:
❯ Подводим итоги
В итоге у получилось простое и дешевое устройство для интеграции «глупого» электросчетчика в системы умного дома. Я очень доволен результатом! Теперь нет необходимости переодически записывать показания со счетчика для отправки, а просмотр статистики потребления, по временным интервалам, дает возможность анализа расхода электроэнергии с последующей оптимизацией.
Спасибо всем за уделенное внимание!
Исходные файлы проекта:
Возможно, захочется почитать и это:
- ➤ Детектор Судного дня или как я разработал датчик радиации для Home Assistant
- ➤ ClimateGuard RadSens: раскуриваем трубку Гейгера-Мюллера
- ➤ Как создать API в облаке менее чем в 200 строках кода
- ➤ От Atari до Ouya: провальные игровые консоли
- ➤ Геймдев по-фински. Рождение студии Remedy
Комментарии (62)
Ranckont
23.10.2023 14:11+1хх Wh за 10 сек.?
CyberexTech Автор
23.10.2023 14:11Это расчетное часовое значение при текущем потреблении, фактически это мощность текущей нагрузки.
zuek
23.10.2023 14:11Ну, этот интерфейс сейчас почти на всех счётчиках можно встретить, и энергосбытовые компании даже к нему кое-где подключают модули для автоматической отправки показаний - у нас, например, висят такие коробочки, в которые собраны "хвосты" от всех установленных в этажном щитке счётчиков, и подключенные "шурупами" ко всем трём подъездным фазам (это, как я понял, транспортное подключение).
xhd
23.10.2023 14:11+5Непонятно, почему не воспользовались esphome
Vermut666
23.10.2023 14:11+3Да. Учитывая, что заголовок именно про интеграцию в HomeAssistant, интеграция выполнена едва едва:
для постоянно включенных устройств они рекомендуют native API, а не MQTT.
чтобы показания нормально обрабатывались Energy Dashboard, у них должен быть state_class:
measurement
,total
ortotal_increasing
. (https://developers.home-assistant.io/docs/core/entity/sensor/#long-term-statistics)
REPISOT
23.10.2023 14:11Главный вопрос. Без интернета работает?
x8973
23.10.2023 14:11+1Не знаю, как реализовано у автора, но у меня например Хомяк крутится дома на Orange Pi и доступен из локальной сети. Постоянное подключение к Интернету ему не требуется.
CyberexTech Автор
23.10.2023 14:11+1Без интернета работает. Я предпочитаю строить системы без зависимости от внешних сервисов.
x8973
23.10.2023 14:11+1А вот у меня вопрос такой: насколько длинная витуха идет от счетчика к ESP, и сколько ложных срабатываний прерывания оно ловит такой антенной, учитывая отсутствие каких-либо входных фильтров кроме подтягивающего резистора)
LabEG
23.10.2023 14:11+2А не проще поставить умный автомат в электрощит?
Вроде этого:
YNK
23.10.2023 14:11+2Проще. Но теряется DIY кайф.
Markscheider
23.10.2023 14:11+1Поддержу.
И даже опечатка в меню ("Кофигурация") смотрится лампово и уместно :)
Shmele
23.10.2023 14:11+5Ну здесь опечатку ("Монитор энегрии") тоже завезли, так что можно пользоваться :)
AlexGluck
23.10.2023 14:11А у этого счётчика который вы параллельно подключаете потребление считается до или после того как он сам сожрёт килловат 6,5 в месяц?
select26
23.10.2023 14:11+2Счётчик ставится ПОСЛЕДОВАТЕЛЬНО, а не параллельно энергосбытовскому прибору.
Я использую китайские однофазные с MODBUS интерфейсом (не нужно колхозить с ESP) и его собственное потребление менее 1КВтЧ в месяц.
Ну и потребление ЭЭ в КВт не измеряется - это же не мощность.
max_dark
23.10.2023 14:11+1Устройства с Tuya пришиты к китайским облакам и там тот еще квест их отвязать - прошивка (да и сам чип) часто закрыты.
CyberexTech Автор
23.10.2023 14:11Надо учитывать цену вопроса, если коммерческое решение будет дешевле DIY, то почему бы и нет. Тем более, описанная в статье система проста и собирается "на коленке" за полчаса.
3ycb
23.10.2023 14:11Если у счетчика отсутствует испытательный выход, то в качестве источника
импульсов можно использовать светодиод, подключив фототранзистор ко
входу собранного контроллера.Так а светодиод то куда? Из/от чего он будет "пульсировать"?
smart_pic
23.10.2023 14:11+5Так а светодиод то куда? Из/от чего он будет "пульсировать"?
На самом счетчике стоит и в такт с импульсным выходом мигает
Javian
23.10.2023 14:11+1Даже больше - у некоторых счетчиков на передней панели есть крышка, под которой спрятана оптопара для подключения такого шнурка -
homeles
23.10.2023 14:11С такими импульсными счетчиками (водяные, электрические) всегда напрягала невозможность считать "абсолютное" значение. С электромеханическими - понятно - там тоже циферблат электромагнитом крутится по импульсам, но шансов "потерять" импульс намного меньше (ну собсно это и понятно - метрология, поверки-проверки и т.п.), чем у внешнего "считающего импульсы" устройства, но вот с аппаратами с ЖК-дисплеями - в чем проблема отдать "абсолютное" значение (которое в ЖК отдаем) и по внешнему интерфейсу ? Только стоимость реализации такого интерфейса (да, релюшка щелкающая контактами дешевле, чем RS-485 или CAN + еще протокол надо написать и стандартизовать по возможности для всех)
smart_pic
23.10.2023 14:11релюшка щелкающая контактами дешевле, чем RS-485 или CAN + еще протокол надо написать и стандартизовать по возможности для всех
Пытаются всех на СПОДЕС перевести , только от этого грустно становится , перемудрили сильно :(
smart_pic
23.10.2023 14:11счетчик ЭНЕРГОМЕРА СЕ101
только учтите , что у него устаревший узел вычисления мощности , врет он при определенных режимах нагрузки . Их сейчас не рекомендуют к установке на новых объектах.
homeles
23.10.2023 14:11+5Хм, всегда думал - если счетчик имеет действующий сертификат по метрологии - то "устаревший-не-устаревший" - меня это волновать не должно. Если он "врет при определенных режимах нагрузки и не рекомендуют..." - это меня как потребителя, купившего данный счетчик в магазине (а без метрологии он туда и не попадет) - волновать не должно. Если я его себе купил-поставил - то нн-ое количество лет (в пределах заявленного срока эксплуатации и межповерочного интервала) - все возникающие проблемы должны решаться изготовителем, а никак не потребителем.
IvanPetrof
23.10.2023 14:11Тут вопрос в том - в какую сторону он "врёт"?
smart_pic
23.10.2023 14:11в сторону выгоды для потребителя )
Это наблюдается не только на этом экземпляре, это болезнь есть и у других , так как измерительная часть у большинства одинаковая.
serg52
23.10.2023 14:11С 2008 года занимаюсь темой IOT, сегодня проблема не реализовать решение, сегодня проблема внедрить решение. Энергетические компании это монстры.
Из прошлого «советская власть плюс электрификация»
Повседневные примеры, того когда нужно, оно есть:
Терминалы оплаты (старые образцы с CSD, современные с 4G или Ethernet/WiFI);
Банкоматы;
Мониторинг персонала;
Контроль топлива в парке машины;
Тревожная кнопка «SOS» на авто и.т.д.
И тут что то пошло не так в энергетике в внедрением iot. В 2020 году в разгар холеры, просчитывал проект на 110.000* домашних счётчиков, и как выяснилось оборудование с портом rs-485 пришлось бы ждать 1,5 года, т.к такой объём нужно поставить в план производства одного крупного завода.
*для справки, 1 район города с населением выше 1 млн чел
С точки зрения применения собранного девайса, возникает вопрос его применения, т.к счётчик импульсов это средство измерения, и у поставщика может возникнуть вполне объективный вопрос, а где реестр средств измерений и поверка. А если для себя, зачем так себя мучать когда есть 232 или 485 интерфейсы.
Hlad
23.10.2023 14:11Если у счетчика отсутствует испытательный выход, то в качестве источника импульсов можно использовать светодиод, подключив фототранзистор ко входу собранного контроллера.
Небольшое уточнение: счётчик НЕ МОЖЕТ не иметь испытательного выхода, иначе его попросту не примут метрологи, как прибор учёта. Это требование ГОСТ-а, которому обязан соответствовать счётчик. Другое дело, что этот выход может быть под опломбированной крышкой
NutsUnderline
23.10.2023 14:11Теперь нет необходимости переодически записывать показания со счетчика для отправки, а просмотр статистики потребления, по временным интервалам, дает возможность анализа расхода электроэнергии с последующей оптимизацией.
О том что периодическая отправка данных комунальщикам осуществляется ручками автор похоже скромно умолчал
si1v3r
23.10.2023 14:11+1У многих сотрудник УК или ТСЖ ходит и снимает показания без участия собственника.
Zolg
23.10.2023 14:11Есть лобовой универсальный способ сделать любой глупый счётчик умным без вмешательства в конструкцию и вообще каких-либо подключений к нему: смотрим камерой, распознаем циферки.
И что восхищает - существует рабочая реализация на esp32: https://github.com/jomjol/AI-on-the-edge-device
interm
23.10.2023 14:11+1Да, но требования к корпусу для камеры, которую ещё надо закрепить на "морде" счётчика гораздо выше чем здесь, где "хоть изолентой замотать". И здесь нет вмешательства.
Heggi
23.10.2023 14:11Зато будет работать вообще с любым счетчиком, даже для воды, где электроники нет вообще.
Gryphon88
23.10.2023 14:11Мать моя женщина... Зачем там тензорфлоу? Статичный фон, контролируемое освещение, конечный набор значений, неподвижная схема... Там фильтр canny может быть избыточен, голый собель все сделает)
Zolg
23.10.2023 14:11-1Зачем там тензорфлоу?
Потому что могут?
контролируемое освещение
Вообще-то нет
SGordon123
23.10.2023 14:11А по умным счетчикам ( МИРТЕК-12-РУ-) есть какая то инфа? Я понимаю что возможны варианты исполнения, но в принципе подслушать что вещают по радиоканалу можно ?
smart_pic
23.10.2023 14:11Именно с радиоканалом ?
Есть инфа на с rs485
SGordon123
23.10.2023 14:11Гарантий никаких нет, чт осмотреть то в щитке?
smart_pic
23.10.2023 14:11А по умным счетчикам ( МИРТЕК-12-РУ-) есть какая то инфа?
Что именно интересует? Есть описание протокола обмена , его дает производитель .
У МИРТЕКа нет зоопарка протоколов на каждую модель счетчика. У них один универсальный пакетный протокол для всех их счетчиков. Очень удобно в отличии того же Энергомеры или Меркурия. Миртек разработчик счетчиков , а производиться потом счетчики могут как под брендом МИРТЕК так и под разными торговыми марками. Но во всех будет один миртековский протокол. Длина пакета всегда одна , нужно только правильно заполнить поля и посчитать КС. Парсить ответы в разы легче чем ответы меркурия. Работают очень шустро, стабильно . Улучшенные схемы измерения. Ожидаемо дороже Энергомеры и Меркурия.
12 это однофазный счетчик, 32 соответственно трехфазный. Остальные буквы описывают установленные модули связи и некоторые особенности исполнения - дин рейка или щитовой способ крепления.
Soorin
23.10.2023 14:11Сначала я скажу одно слово "двухтарифный", множащее практически на ноль полезность PZEM-004, всевозможных ZigBee-розеток и подобных устройств. не имеющих понятия о тарифах и времени.
Затем поделюсь собственным опытом подключения трехфазных счётчиков к умному дому по RS-485:
1) NEVA-324 показывает и считает всё хорошо, но данные доступны только в собственной программе под Windows.. В интернете встретилась статья по подключению "Невы" к проприетарному контроллеру, но код "не взтелел" от отсутствия проприетарных библиотек.
2) Меркурий 203.2TD, 204, 208, 230, 231, 234, 236, 238. Есть дешёвое программное решение wifi-iot.com для ESP-8266, обеспечивающее передачу данных c Меркурия в умный дом, narodmon и т.д. и т.п. Но с Меркурием друга проблема (пробовал 230 , несколько штук): при основной нагрузке более пары-тройки кВт в основном по одной фазе, по остальным фазам показания напряжения растут за 300 вольт, а по нагруженной фазе просаживаются (даже до нуля), что вызывает абсолютно бредовые показания. НЕВА в этом-же щитке работала без таких глюков.
smart_pic
23.10.2023 14:11Но с Меркурием друга проблема
Согласен , с Меркурием проблем хватает , начиная от отсутствия тех поддержки по ранее разработанным счетчикам (ее совсем нет и нет специалистов) просто клепают по старым схемам и прошивкам.
Процент выхода из строя достаточно высок , статистика по 236, 206
aumi13
23.10.2023 14:11NEVA-324 показывает и считает всё хорошо, но данные доступны только в собственной программе под Windows.. В интернете встретилась статья по подключению "Невы" к проприетарному контроллеру, но код "не взтелел" от отсутствия проприетарных библиотек.
а что снифером считать протокол обмена и расшифровать немозможно?
sasha8761
23.10.2023 14:11А нельзя ли упросить схему, кинув один контакт от счётчика на D4, второй на 3V, применив "большую" nodemcu esp8266 и отдельно запитав ее через usb вход от БП на 5 вольт?
FVVSHARK
23.10.2023 14:11+1Автору огромное спасибо за статью, по глупости поставил такой счётчик вместо умного или очень умного (который отключается с пульта =) ) и думал как реализовать выводы для умного дома, дабы не выходить в подъезд, когда нужно передать показания счётчика, да и esp валяется)
smart_pic
Электросбыт тоже не простит несанкционированного вскрытия счетчика.
vesowoma