Встановлення PZEM-004T з ESPHome та Home Assistant дозволяє отримати дані про споживання електроенергії з точністю до 0.1 Вт, що значно перевершує можливості звичайних лічильників.
Контекст і проблема
Більшість власників будинків та розумних систем не мають детальної інформації про споживання енергії окремими приладами або навіть фазами електромережі. Без цього важко виявити “вампірів енергії” – прилади, що споживають електроенергію в режимі очікування, або неефективні прилади, які використовують більше електроенергії, ніж необхідно. Наприклад, звичайний зарядний пристрій для телефону може споживати 0.5 Вт в режимі очікування, що за рік становить близько 4.4 кВт·год.
Практична реалізація
Для моніторингу споживання електроенергії використовуємо модуль PZEM-004T (з інтерфейсом Modbus RTU), ESP32 (для збору даних) та Home Assistant (для візуалізації та автоматизації). Підключення PZEM-004T до ESP32 відбувається через послідовний порт UART, використовуючи рівень 3.3В.
# esphome.yaml
esphome:
name: pzem-004t_monitor
platform: ESP32
board: esp32dev
wifi:
ssid: "YOUR_WIFI_SSID"
password: "YOUR_WIFI_PASSWORD"
api:
password: "YOUR_API_PASSWORD"
logger:
uart:
rx: 34
tx: 35
baud_rate: 9600
modbus:
slave_address: 1
version: RTU
pin_rx: 35
pin_tx: 34
sensor:
- platform: modbus
address: 0
data_type: uint16
name: "Current"
registers: [0]
scale: 0.01
- platform: modbus
address: 2
data_type: uint16
name: "Voltage"
registers: [2]
scale: 0.1
- platform: modbus
address: 4
data_type: uint32
name: "Power"
registers: [4]
scale: 0.01
switch:
- platform: template
name: "Power Switch"
id: power_switch
optimistic: true
initial_state: true
restore_state: true
Налаштування в YAML файлі `esphome.yaml` визначає підключення до Wi-Fi, пароль API (для доступу з Home Assistant), налаштування UART для зв’язку з PZEM-004T, адреса Modbus slave, та визначення сенсорів для струму, напруги та потужності. `scale` параметр перетворює значення, отримані з PZEM-004T, у зрозумілі одиниці вимірювання (А, В, Вт).
Типові помилки
- Неправильна адреса Modbus Slave: Якщо пристрій не з’являється в Home Assistant, перевірте адресу Modbus slave (за замовчуванням 1). Адреса може бути змінена на самому модулі PZEM-004T.
- Неправильна конфігурація UART: Переконайтеся, що ви правильно визначили піни RX та TX для UART на ESP32. Неправильне підключення призведе до відсутності зв’язку з PZEM-004T.
- Неправильна швидкість UART: PZEM-004T зазвичай використовує швидкість 9600 бод. Переконайтеся, що швидкість в esphome.yaml збігається зі швидкістю модуля.
Результат
Після налаштування, дані про споживання електроенергії з’являються в Home Assistant у вигляді окремих датчиків. Це дозволяє створювати графіки споживання, визначати пікові навантаження, автоматично вимикати прилади в режимі очікування та оптимізувати енергоефективність будинку. Наприклад, я зміг виявити, що мій старий холодильник споживає на 30% більше електроенергії, ніж новий, що спонукало мене до його заміни.