Howto calibrate circuitsetup energy monitor

I watched a video on YT, but it’s too old to be very useful. I’m assuming it’s no longer necessary to compile a YAML file into the firmware to perform calibration, is that right?

I’m using Home Assistant (core & supervisor: 2026.2.1, Op Sys 16.3, frontend 20260128.6) in a KVM on linux.

I have the Waveshare ESP32-S3 ETH mated to the 6 channel CircuitSetup energy monitor (using the CS adapter so it plugs in the monitor directly). ESPHome firmware is installed, HA recognizes it, and reads current and voltage on all 6 inputs.

But the voltage is 5 volts too low. I can’t locate how to use the HA web interface to re-calibrate, I assume that’s what’s required. At the bottom of the device info page I see what appears to be a place to input voltage, offset and current values but nothing I change in the UI seems to affect the readings. I rebooted the device after entering the new values.

Any help for this HA newbie would be greatly appreciated!

If it is fixed 5v difference you could either adapt it on the ESP or create a new template sensor in HA based on the ‘wrong’ one. If it is not always the same difference then you can use this:

Compensation - Home Assistant

Thank you @vingerha for that approach. It’s clear I have much to learn about HA. I’m optimistic about that, being a retired software engineer with experience ranging from assembly language for embedded devices to building and using AI systems. It will be fun!

So far I’m very impressed with HA. My learning style relies heavily on questions if I can’t find the documentation I need. I am happy to learn from docs or people. My post here is simply asking for how the process works for calibrating the energy module. If that includes editing a YAML file, that easy and I’ve used YAML in python programming many times.

But I can’t seem to find info on how to go from an edited YAML file to incorporating it (be it via compiling a new firmware binary, then flashing) that into the device, or interacting with the HA / ESPHome UI to update the existing ESPHome firmware with the new values from the edited YAML file.

I was under the impression that once ESPHome is flashed into the device, subsequent changes (like changing parameters in a YAML file) were done via a web UI.

It was very easy to install ESPHome into the device using Circuitsetup’s web UI (CircuitSetup ESPHome Installer), but it doesn’t have a provision to provide a YAML file and flash a firmware that uses it, that I’ve found.

If there’s a way to simply upload the YAML file to the device using an HA or ESPHome interface I haven’t found that either.

Looking for the best way to this calibration.

That is usually the start of something good
HA has a lot of documentation which means it is not always easy to find, esp. when you search for calibrate and this one is compensate :slight_smile:
I think you have a choice to make, complex way via ESP … which may be time consuming but fun too … or just create a template sensor in HA with the 5 difference (few minutes work).
I have no clue what your device is but a search for circuitsetup esphome github, provides this…do not take this as correct, just maybe or…search further : Expandable-6-Channel-ESP32-Energy-Meter/Software/ESPHome at master · CircuitSetup/Expandable-6-Channel-ESP32-Energy-Meter

That is the correct device, and I have seen that page. I just don’t know what to do with that information. After editing the appropriate YAML files, what do I do with them to create the firmware to flash the device?

I’m not sure yet but the fog is clearing as I read. I’ll be more patient and dig deeper before I continue to barrage this forum with questions.

Thanks for the suggestions.

I finally figured out the main piece of the puzzle I thought was already done: adding the ESPhome add on. I thought since the devices were detected and showing values that was already done. Once that addon was installed the device’s website was accessible and I could calibrate, add offsets etc right from HA.

You would install esphome and that would install the rpoper compenents based on your yaml, then create the firmware and then transfer that to your device, either OTA (if that works) or via cable.

ESPHome Docs - ESPHome - Smart Home Made Simple