Предыстория
Один из важных (относительно) аспектов в умном доме - это экономия. Электричества, воды, тепла... Нервов...
Ясное дело, что для того, что-бы что-то экономить, надо знать сколько ты на это что-то тратишь! В частности: вот есть одно-двух-трех тарифные системы оплаты электричества. Какая из них выгоднее тебе конкретно?!
Раньше было просто: вот однотарифник, вот двух, где дневной точно такой, а ночью - дешевле... Потом ввели третий, который "полу-пик" и дешевле дневного, но дороже ночного... Понятное дело, что трех-тарифный был выгоднее: за пользование электричеством не в пиковое время ты платил просто меньшую сумму, а в пик - как все остальные!
А потом они начали вносить изменения в тарифы и дневной стал дороже одинарного, полу-пик стал как одиночный, а пик - чуть дороже дневного в двух-тарифной сетке...
Запутались? Вот и я тоже! И решил я тогда выяснить, а что вот лично мне выгоднее?!
Ну и по совету знакомых, я приобрел PZEM-004, причем в варианте с индикаторами... К статье это отношение не имеет - модели идентичны, просто мне теперь мучиться еще с размещением его в щиток...
Ну и все это было бы проще, если бы некоторое время назад я не заболел ХоумАссистентом вообще, и прошивкой EspHome в частности... Для Ассистента она более удобная, но если нет полноценной поддержки чего-то - сушите весла! Добавить будет сложно!
Собственно цель была проста: берем PZEM-004, берем ESP (у меня был "бесхозный" esp32) и "впихуем невпихуемое" в Ассистента...
Подготовка
Проблема в том, что поддержка PZEM-004 там есть... Просто ее нет в общедоступной версии...
Что делать - нашёл в одном из пулл-реквестов (спасибо Дмитрию Цымбалу с Телеграмма за наводку)... Там это раскидано по сообщениям, так что постараюсь скомпоновать и пояснить мелочи.
Проблема была в том, что EspHome у меня стояло как отдельный сервер в виртуалке, а подходящий для решения проблемы ключ вводился в настройки для модуля к Ассистенту, так что - ставим как модуль.
Кто не в курсе:
- Переходим в Hass.io
- Addon store
- Добавить репозиторий https://github.com/esphome/hassio
- В нем - установить модуль EspHome
- Перед запуском - добавляем в конфиг строку "esphome_version": "pzem004t"
- Сохраняем конфиг и запускаем EspHome. Или перезапускаем...
- Ждем некоторое время - он подкачивает файлы и стартует не особо быстро.
- Открываем Web UI для EspHome и... Как им пользоваться - надеюсь уже в курсе?
Собственно, важен именно 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 - киловатт/часы...
Спасибо за статью! Очень полезный материал!
Спасибо! Как знал, заказал недавно такой же сенсор.
Угу. Даже встречал в нете фотки с тремя платами в один корпус, но более мелкие 004t без экранов...
Одно но: аффтор прошивки как-то с сомнением написал, что вообще оно для одного пзема, но в варианте с id порта - вроде как можно подрубить и больше...
На али сейчас пять штук за полторы набором + еще около 600 доставка...
На али сейчас пять штук за полторы набором + еще около 600 доставка...
004-е?Кстати, а какие преимущества у Pzem в сравнении с измерением при помощи ACS?
Что такое ACS?
У PZEM по большей части как фича идет возможность встроить куда-нить и внешний трансформатор-измеритель. Ну и RS232 с опторазвязкой...
ACS712 provides economical and precise solutions for AC or DC current sensing in industrial, commercial, and communications.
Размер существенно меньше, стоимость в 4-5 раз ниже, до 30A.
ACS - датчик ТОКА! Вольты и ватты не меряет.
pzem - больше по функционалу счетчик, т.е. замеряет и амперы и вольты и текущие ватты и киловатты...
ACS - датчик ТОКА! Вольты и ватты не меряет.
Всё там хорошо и с током, и с ваттами ;) Точность измерений хорошая.
А я вот все не могу разобраться... На новогодние праздники поставил PZEM-004t v3.0 в щиток. Показания считываются ESP8266 и выводятся на LCD 1602. Кроме того, отправляются в систему УД. И все, вроде, работает отлично, кроме одного "НО": каждый месяц показания с pzem превышают показания "нормального" счетчика на 2 кВт помноженных на номер месяца. Т.е. в феврале превышение составило 2 кВт, в марте - 4 кВт, в апреле - 6 кВт и т.д. И вот как с этим бороться?