Peacefair PZEM-004T Energy Monitor¶
This page is incomplete and could use some work. If you want to contribute, please read the contributing guide. This page is missing:
An image for the front page.
Images/screenshots/example configs of this device being used in action.
This page refers to version V1 of the PZEM-004T, which has been out of stock for a while. The PZEM-004, however, is still working (and selling) with this protocol and does not use modbus. For using the newer V3 variant of this sensor please see pzemac.
The communication with this integration is done over a UART bus.
You must therefore have a
uart: entry in your configuration with both the TX and RX pins set
to some pins on your board and the baud rate set to 9600.
# Example configuration entry uart: tx_pin: D1 rx_pin: D2 baud_rate: 9600 sensor: - platform: pzem004t current: name: "PZEM-004T Current" voltage: name: "PZEM-004T Voltage" power: name: "PZEM-004T Power" energy: name: "PZEM-004T Energy" update_interval: 60s
current (Optional): Use the current value of the sensor in amperes. All options from Sensor.
power (Optional): Use the (active) power value of the sensor in watts. All options from Sensor.
voltage (Optional): Use the voltage value of the sensor in volts. All options from Sensor.
update_interval (Optional, Time): The interval to check the sensor. Defaults to
These devices have optocouplers on the UART port and the resistors mounted on the board have been designed to work with 5V devices. ESPs need a Level Shifter to be compatible with TTL levels.
You need a IC level shifter and not a Mosfet-based level shifter, because you need to power the optocoupler’s LEDs without an additional resistor in the path.
Your ESP shall be powered by an external power supply and cannot be connected to the PZEM for power.