esp32.diy

EnergyMe-Home: Build a 16-Channel ESP32 Energy Monitor

Oct 13, 2026 · 6 min read

Advanced 285 stars 35 forks C++ GPL-3.0 Updated 2026-10-11

Live web dashboard showing real-time power data across multiple circuits

TL;DR EnergyMe-Home is a fully open-source smart energy meter based on the ESP32-S3 and ADE7953 IC that monitors up to 16 home circuits simultaneously. It exposes data through a built-in web dashboard, REST API, MQTT, Modbus TCP, InfluxDB, and a dedicated Home Assistant integration.
What you need
  • ESP32-S3
  • ADE7953 energy measurement IC
  • ZMPT107-1 voltage transformer
  • Multiplexers
  • 3.5 mm jack connectors
  • 333 mV output current transformers (CTs)
  • USB-to-UART adapter
BoardESP32-S3
FrameworkArduino 3.x / FreeRTOS via PlatformIO
LanguageC++
LicenseGPL-3.0 (software) / CERN-OHL-S-2.0 (hardware)
DifficultyAdvanced
Latest Releasev2.5.1

What You Will Build

EnergyMe-Home is a whole-home energy monitoring system you can build yourself — PCB, firmware, and all. It tracks up to 16 electrical circuits at once: one main circuit sampled at high frequency for accurate whole-home totals, plus 15 branch circuits multiplexed for individual monitoring. All measurements come from the ADE7953, a dedicated single-phase energy measurement IC, driven by an ESP32-S3.

The result is a device that sits in your electrical panel, connects to your home network, and immediately starts publishing live power, voltage, and current data. You can pull that data through a local web dashboard, a Swagger-documented REST API, MQTT, Modbus TCP, InfluxDB (v1 or v2), or a dedicated Home Assistant custom integration. A waveform analyzer in the web UI lets you capture high-resolution voltage and current snapshots per channel for diagnostics.

The hardware is OSHWA-certified open source (IT000025) and the PCB design is published on EasyEDA OSHWLab, so you can order boards directly from any PCB manufacturer and build the whole thing yourself. Pre-assembled, calibrated units are also available if you want to skip the soldering.

Populated EnergyMe-Home PCB — front side with ESP32-S3 and ADE7953\2
Populated EnergyMe-Home PCB — front side with ESP32-S3 and ADE7953
Populated EnergyMe-Home PCB — back side showing connectors and supporting components\2
Populated EnergyMe-Home PCB — back side showing connectors and supporting components
EnergyMe-Home circuits appearing as entities inside Home Assistant\2
EnergyMe-Home circuits appearing as entities inside Home Assistant

What You Need

Hardware

The core hardware is defined by the project's PCB (currently v6.1). All schematic files, BOMs, and datasheets live in the hardware/ directory of the repository. Key components named in the README:

Three PCB boards are involved: a main board, top board 1, and top board 2. Their BOMs are in hardware/pcb/main_board/, hardware/pcb/top_board_1/, and hardware/pcb/top_board_2/.

Supported electrical systems include single-phase 230 V (Europe, Asia, Africa, Oceania), split-phase 120 V/240 V (North America), and three-phase systems with derived voltages.

Software

Safety warning: Installation involves working inside your main electrical panel. Always consult a qualified electrician if you are not experienced with electrical installations. Follow all local electrical codes.

Typical use cases

Whole-Home Energy Tracking

Monitor all circuits in your electrical panel simultaneously and get a real-time breakdown of where power is going, down to individual branch circuits.

Home Assistant Integration

Feed live power and energy data into Home Assistant via the dedicated custom integration and build automations around actual consumption.

InfluxDB and Grafana Dashboards

Push timestamped measurements to InfluxDB and visualise long-term energy trends in Grafana to spot waste and optimise usage.

Industrial and SCADA Integration

Use the Modbus TCP interface to connect EnergyMe-Home to building management or SCADA systems for commercial or prosumer monitoring setups.

How It Works

The firmware runs a task-based architecture on FreeRTOS, with each major function — energy sampling, web server, MQTT publishing, Modbus TCP, InfluxDB buffering — running as its own task.

The ADE7953 IC handles all the precision measurement work: voltage, current, active power, and energy accumulation per channel. The ZMPT107-1 voltage transformer keeps the AC mains completely isolated from the ESP32 and measurement circuitry. Multiplexers switch between the 15 branch circuit inputs so a single ADE7953 can service all of them in sequence, while the main circuit is sampled continuously at high frequency.

On the software side, the web interface is served directly from the ESP32-S3 and is accessible at http://energyme.local via mDNS. A captive portal handles first-time Wi-Fi configuration. Authentication is token-based with password protection. OTA firmware updates include MD5 verification and automatic rollback if a new build crashes. Energy data can also be logged to CSV on-device.

The REST API is fully documented with a Swagger YAML file (source/resources/swagger.yaml) included in the repository.

Build and Flash Steps

1. Get the PCB

Download the design files from hardware/pcb/ in the repository, or open the project directly on EasyEDA OSHWLab. Order from your preferred PCB manufacturer.

2. Populate the boards

Solder all components following the BOMs in hardware/pcb/main_board/, hardware/pcb/top_board_1/, and hardware/pcb/top_board_2/. Datasheets for key components are in hardware/components/. The PCB & Firmware Datasheet in the repository gives a condensed one-page summary.

3. Flash the firmware

Connect a USB-to-UART adapter to the UART pins on the board, then flash using PlatformIO. The repository's source README and manual cover the exact PlatformIO commands and any build flags you need to set. To disable optional anonymous telemetry before flashing, open platformio.ini and set ENABLE_OPEN_SOURCE_TELEMETRY=0.

4. Configure Wi-Fi

Power on the board. It will broadcast a captive portal access point. Connect to it from your phone or laptop and enter your home Wi-Fi credentials.

5. Access the dashboard

Once connected to your network, open a browser and go to:

http://energyme.local

Default credentials: username admin, password energyme. Change these immediately in the settings page.

6. Connect current transformers

Plug 333 mV output CTs into the 3.5 mm jack connectors — one per circuit. Clamp each CT around the live wire of the circuit you want to monitor. The main circuit CT goes to the dedicated main channel input; branch CTs connect to the remaining 15 inputs.

For detailed build instructions and troubleshooting, refer to the manual in the repository.

Integrations

Once the device is online and measuring, you have several ways to get data out:

Extending the Project and Known Limitations

Ideas to extend it

Limitations to keep in mind

Verdict

EnergyMe-Home is one of the most complete open-source energy monitoring projects available for the ESP32 platform — fully open hardware, a mature firmware with crash recovery and OTA updates, and integrations that cover almost every home automation stack. The build is genuinely advanced: it requires PCB assembly, working near mains wiring, and a reasonable grasp of PlatformIO, but the repository is well-documented and the community is active. Makers who put in the work get a professional-grade, 16-channel energy meter that rivals commercial units at a fraction of the cost.

Sources

github.comjibrilsharafi/EnergyMe-Home — repository & README energyme.netOfficial website

Facts in this article come from the project's public README and GitHub metadata at the time of writing. Images belong to their respective owners and link back to the original source.