Мониторинг потребления электричества с помощью pzem-004t, Home Assistant и ESPHome

Есть несколько разных способов как можно замерить потребление электричества. Очень часто используются умные розетки. Например, хочется считать сколько потребляет кВтч электрический обогреватель. Его можно подключить в умную розетку и снимать с этой розетки данные — прямо сейчас потребление 1838 ватт, за сутки набежало 12.7 кВтч. Есть огромный выбор умных розеток.

Другой вариант — это умное реле. Вот большой список разных умных реле, некоторые из них умеют замерять электроэнергию.

Но умные розетки и умные реле очень ограничены по мощности. Я не знаю ни одного устройства через которое можно было бы подключать больше 16 ампер (это 3680 ватт).

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

Для этих целей можно использовать устройство pzem-004t. Огромный плюс этого устройства — то что снятие данных происходит неинвазивно. Т.е. не нужно ставить какое-то устройство в разрыв электролинии. Нужно только пропустить провод в специальное кольцо и pzem будет замерять то что идет по проводу.

Pzem-004t — это не законченное устройство, это комонент. Это датчик который нужно подключить к какому-то устройству которое будет снимать данные с этого датчика.

Выбор pzem-004t

Я купил себе pzem-004t на AliExpress. Покупал вот в этом магазине. Можно найти это же устройство в виде отдельной платы, но я решил купить сразу с корпусом, мне не до конца было понятно как будет выглядеть законченное устройство поэтому на всякий случай я купил не только плату, но еще и корпус.

Очень выжный момент при покупке — обязательно нужно покупать pzem004t который расчитан на 100 ампер (бывает еще вариант на 10 ампер, смысла в нем особо нет).

И еще одни момент про который стоит подумать при покупке — то как выглядит кольцо которое снимает данные. Бывает 2 варианта: либо оно цельное, либо его можно открыть. Кольцо которое можно открыть удобнее при установке — не нужно отсоединять кабель с которого нужно снимать данные, можно просто защелкнуть кольцо на кабеле (и кольцо тоже должно быть рассчитано на 100 ампер).

Что в посылке

Я купил pzem-004t на AliExpress, через несколько недель забрал с почты посылку. Внутри — аккуратная коробочка в которой находится платка pzem-00t в корпусе, кольцо и инструкция.

Если снять корпус, то на плате pzem-004t видно что устройство рассчитано на 100 ампер:

Информация про 100 ампер так же есть и на кольце:

Сборка устройства

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

Нужны следующие компоненты:

Вот что получилось:

Недостаток этого решения — то что устройство занимает 2 розетки. Нужно подавать питание и на плату nodemcu и на сам pzem.

Некоторые уточнения про схему подключения:

Контакты с правой стороны pzem которые идут на nodemcu:

На этом сборка закончена.

Прошивка ESPHome

Следующий момент — нужно написать прошивку которая будет работать на nodemcu. При использовании ESPHome самый простой вариант прошивки следующий.

Файл pzem.yaml:

esphome:
  name: pzem
  platform: ESP8266
  board: nodemcuv2

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

logger:

api:
  password: !secret api_password

ota:
  password: !secret ota_password

uart:
  rx_pin: D5
  tx_pin: D6
  baud_rate: 9600
  stop_bits: 1

sensor:
  - platform: pzemac
    current:
      name: "PZEM-004T V3 Current"
    voltage:
      name: "PZEM-004T V3 Voltage"
    energy:
      name: "PZEM-004T V3 Energy"
    power:
      name: "PZEM-004T V3 Power"
    frequency:
      name: "PZEM-004T V3 Frequency"
    power_factor:
      name: "PZEM-004T V3 Power Factor"
    update_interval: 10s

Тут есть важный момент. В ESPHome есть 2 платформы:

Я изначально пытался использовать платформу pzem004t — и у меня ничего не работало. Оказывается, это неправильно. Для этого устройства (pzem-004t v3) нужно использовать платформу pzemac.

С помощью ESPHome собрал из этого yaml файла прошивку, залил ее на nodemcu. Устройство подключилось к WiFi и автоматически появилось в Home Assistant.

Проверка работы

Для того чтобы протестировать работу pzem я собрал тестовый стенд. Взял умную лампочку Ikea, навесил кольцо на провод и все подключил:

Включаю лампочку — вижу потребление: 12.6 ватт:

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

Все работает.

Как не будет работать

Кольцо нужно надевать на отдельный кабель — на фазу или на ноль. Если кольцо надеть на кабель где идет и фаза, и ноль, то устройство ничего показывать не будет. Вот пример неправильного подключения — кольцо надето на общий кабель который идет к электрическому чайнику, там внутри фаза, ноль и земля. Чайник кипит, но pzem показывает нули.

Иван Бессарабов
ivan@bessarabov.ru

16 февраля 2021

Кстати, у меня есть телеграм канал про Home Assistant: https://t.me/bessarabov_ha