ESPHome и счетчик электроэнергии PZEM-004

19 июля 2019, 18:14

Предыстория

Один из важных (относительно) аспектов в умном доме - это экономия. Электричества, воды, тепла... Нервов...

Ясное дело, что для того, что-бы что-то экономить, надо знать сколько ты на это что-то тратишь! В частности: вот есть одно-двух-трех тарифные системы оплаты электричества. Какая из них выгоднее тебе конкретно?! 

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

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

Запутались? Вот и я тоже! И решил я тогда выяснить, а что вот лично мне выгоднее?!

Ну и по совету знакомых, я приобрел PZEM-004, причем в варианте с индикаторами... К статье это отношение не имеет - модели идентичны, просто мне теперь мучиться еще с размещением его в щиток...

Ну и все это было бы проще, если бы некоторое время назад я не заболел ХоумАссистентом вообще, и прошивкой EspHome в частности... Для Ассистента она более удобная, но если нет полноценной поддержки чего-то - сушите весла! Добавить будет сложно!

Собственно цель была проста: берем PZEM-004, берем ESP (у меня был "бесхозный" esp32) и "впихуем невпихуемое" в Ассистента...

Подготовка

Проблема в том, что поддержка PZEM-004  там есть... Просто ее нет в общедоступной версии...

Что делать - нашёл в одном из пулл-реквестов (спасибо Дмитрию Цымбалу с Телеграмма за наводку)... Там это раскидано по сообщениям, так что постараюсь скомпоновать и пояснить мелочи.

Проблема была в том, что EspHome у меня стояло как отдельный сервер в виртуалке, а подходящий для решения проблемы ключ вводился в настройки для модуля к Ассистенту, так что - ставим как модуль.

Кто не в курсе:

  1. Переходим в Hass.io
  2. Addon store
  3. Добавить репозиторий https://github.com/esphome/hassio
  4. В нем - установить модуль EspHome
  5. Перед запуском - добавляем в конфиг строку   "esphome_version": "pzem004t"
  6. Сохраняем конфиг и запускаем EspHome. Или перезапускаем...
  7. Ждем некоторое время - он подкачивает файлы и стартует не особо быстро.
  8. Открываем Web UI для EspHome и... Как им пользоваться - надеюсь уже в курсе?

1600x_image.png?1563554522

Собственно, важен именно 5й пункт: мы принудительно заставляем его работать с той версией, в которую добрый дядя добавил поддержку PZEM!

Подключение - банально: GND-GND, RX-TX, TX-RX. На VCC можно забить: PZEM на него питание не выдает и ничего на нем от этого контакта не запитывается. Разве что на RX у ESP можно повесить килоомный резистор между ним и TX пином PZEM: у того логика пятивольтовая и у ESP может пригореть...

Код

В yaml файл для вашего ESP вносим примерно аналогичное, с поправкой на устройство и порт...

# В этой секции - понятно ваше название и платформа.
esphome:
  name: energo
  platform: ESP32
  board: esp-wrover-kit

# Да, да, три варианта сеток... Параноя... Что лучше будет ловить. 
# У меня там дальше много чего в secrets.yaml - учитывайте у себя, если не используете...
wifi:
  networks:
  - ssid: !secret net1
    password: !secret net1_password
  - ssid: !secret net2
    password: !secret net2_password
  - ssid: !secret net3
    password: !secret net3_password
  manual_ip:
    static_ip: 192.168.2.13
    gateway: 192.168.0.1
    subnet: 255.255.252.0
  reboot_timeout: 0s
  
logger:
  hardware_uart: UART1 
  # EspHome любит кидать логи на UART. А нам он нужен для другого...

api:
  password: !secret api_pass
  reboot_timeout: 0s

ota:
  password: !secret ota_pass

web_server:
  port: 80

# Можете убрать этот кусок - просто со статусным удобнее...
status_led:
    id: light_module_status
    pin:
      number: GPIO2
#      inverted: True

# Не мог понять что не так - в итоге загнал на UART2 - потом выяснилось, что просто без 220 PZEM ничего не выдает...
uart:
  id: bus0
  tx_pin: GPIO17
  rx_pin: GPIO16
  baud_rate: 9600

sensor:
  - platform: pzem004t
    uart_id: bus0
    voltage: 
      name: "Pzem voltage"
    current: 
      name: "Pzem current"
    power:
      name: "Pzem power"

Итого

Получаем три сенсора - к сожалению, автор интеграции, по какой-то причине, не смог найти как получать параметр Energy - киловатт/часы...


Все новости мира умных домов - t.me/SprutAI_News или Instagram
Остались вопросы? Мы в Telegram - @Soprut

Хочешь умный дом но нет времени разбираться?
Посмотри примеры работ и выбери себе интегратора.
  1. Александр Жабунин (OXOTH1K)
    Александр Жабунин (OXOTH1K) 6 месяцев назад

    Спасибо за статью! Очень полезный материал!

  2. Дмитрий Громов (demon)
    Дмитрий Громов (demon) 6 месяцев назад

    Спасибо! Как знал, заказал недавно такой же сенсор.

  3. (Brain)
    (Brain) 6 месяцев назад

    Мощность получается только пиковая ?

    • Павел Первинкин (Siorinex)
      Павел Первинкин (Siorinex) 6 месяцев назад

      Увы: значение из окошка Power... Ну и вольтаж и амперы текущие...

      Никаких "интегральных", никаких реактивных... :(

      В плюсе: ну хоть что-то: раньше даже такой поддержки этого модуля не находилось...

      • (Brain)
        (Brain) 6 месяцев назад

        Ясно. Я еще своей юпиэской был недоволен. Хотя он дает примерно 15 параметров в HA сети со всеми графиками перепадов и прочее. Минус такой схемы -  анализ конкретно одной фазы, а не ввода. Кстати, если ввод 3-х фазный, надо будет городить огород из 3-х плат ?

  4. Павел Первинкин (Siorinex)
    Павел Первинкин (Siorinex) 6 месяцев назад

    Угу.  Даже встречал в нете фотки с тремя платами в один корпус, но более мелкие 004t без экранов...


    Одно но: аффтор прошивки как-то с сомнением написал, что вообще оно для одного пзема, но в варианте с id порта - вроде как можно подрубить и больше...


    На али сейчас пять штук за полторы набором + еще около 600 доставка...

  5. (dmi3)
    (dmi3) 5 месяцев назад

    На али сейчас пять штук за полторы набором + еще около 600 доставка...

    004-е?

    Кстати, а какие преимущества у Pzem в сравнении с измерением при помощи ACS?
    • Павел Первинкин (Siorinex)
      Павел Первинкин (Siorinex) 5 месяцев назад

      Что такое ACS?

      У PZEM по большей части как фича идет возможность встроить куда-нить и внешний трансформатор-измеритель. Ну и RS232 с опторазвязкой...

      • (dmi3)
        (dmi3) отредактировано 5 месяцев назад

        ACS712 provides economical and precise solutions for AC or DC current sensing in industrial, commercial, and communications.

        Размер существенно меньше, стоимость в 4-5 раз ниже, до 30A.

        • Павел Первинкин (Siorinex)
          Павел Первинкин (Siorinex) 5 месяцев назад

          ACS - датчик ТОКА! Вольты и ватты не меряет.

          pzem - больше по функционалу счетчик, т.е. замеряет и амперы и вольты и текущие ватты и киловатты...

          • (dmi3)
            (dmi3) 5 месяцев назад

            ACS - датчик ТОКА! Вольты и ватты не меряет.

            Всё там хорошо и с током, и с ваттами ;) Точность измерений хорошая.

К списку статей

Похожие статьи

04 сентября 2018, 12:14
Интеграция RGB ленты на ESP8266 с прошивкой tasmota в систему HomeBridge (HomeKit)
15 октября 2018, 09:05
Прошивка для Sonoff c нативным HomeKit
02 ноября 2018, 12:14
Кнопка звонка с уведомлениями в HomeKit
15 ноября 2018, 09:42
Способы автоматизации механических ворот
17 декабря 2019, 17:49
Универсальный привод для автоматического удаленного открытия окон с простой интеграцией в умные дома
27 октября 2018, 12:20
Нативный Термостат для котла на ESP8266 с поддержкой Apple HomeKit
01 октября 2018, 07:43
Нативный HomeKit на ESP8266
15 июня 2018, 12:13
Охранная система в гараж на ESP8266 с интеграцией в Apple HomeKit
24 августа 2018, 12:18
Пошаговая установка HomeAssistant
20 октября 2018, 22:57
Теоретические основы протокола MQTT и описание того, как он работает и для чего используется