Skip to content

Power monitoring calibration

blakadder edited this page Oct 27, 2019 · 15 revisions

You might need to calibrate your power monitoring device as correct measurements are influenced by hardware and timing differences.

What you need

  • Your power monitoring capable device flashed with Tasmota and configured with the correct module/template that supports power monitoring

  • An AC capable calibrated multi-meter

  • A known wattage load with a power factor as close to 1 as possible (e.g., a resistive load) for best results
    A resistive load device is any device which draws a constant amount of power. For example, an incandescent or halogen light bulb (best choice since their power draw is declared on them). An electric kettle, heater, or blow dryer are also options but you will also need a power meter since the power draw could vary.

    Do not use switch mode driven devices such as LED lamps, computer equipment, or inductive/capacitive devices such as motors!

  • A calibrated power meter (A.K.A. Kill-a-Watt) (optional)

Set up

  • Connect the load (e.g., a 60W incandescent light bulb) to your device

    (optional) Plug your load into the Kill-a-Watt

  • Open two Tasmota web UI browser windows for your power monitoring device:
    • Click on Console in one browser window
    • Keep the other on the main page to view the Power telemetry data
  • Turn the power on to your device. Be sure to turn the output on so the load is powered on as well
  • Wait a few seconds for the readings to stabilize

Method 1

  1. Verify the Power reading in the web UI (optionally with the power meter as well) for the expected wattage. Adjust the power offset if needed (in Watts):
    PowerSet 60.0
    If you're using something other than a 60W bulb, enter your load's power rating

  2. Verify the Voltage reading with the multi-meter. Adjust the voltage offset if needed (in Volts):
    VoltageSet <voltage>
    Replace <voltage> with the reading on your multi-meter. Your voltage will vary depending on the electrical standards and your electrical grid

  3. Verify the Current reading by calculating current value (amperage) using this formula: P(W)/V(V)=I(A). Adjust the current offset if needed (in milliAmps (mA=A*1000)):
    CurrentSet <current>
    _Replace <current> with your calculated value (in milliAmps)

    CurrentSet calculation:
    P/V=I 1000 * Watts/Volts = milliAmperes

    Example: 1000*(60.0/235.5) = 254.777

  4. Confirm the validity of your calibration process checking Power Factor from the web UI which should be as close as possible to 1.00. In theory resistive loads will always provide a power factor of 1.00. If that is not the case, we recommend you repeat the calibration process and make sure everything was done correctly.

Script for automatic calibration

Tampermonkey script submitted by @yuuya45

Method 2

The CurrentCal, PowerCal, and VoltageCal commands allow fine tuning of the power calibration.

Repeat the procedure below for each of the three readings: Current, Power, and Voltage using the corresponding calibration command (CurrentCal, PowerCal, and VoltageCal respectively). Take note that the offset ranges vary for each command.


  • Check the reading using the multi-meter
  • Compare it with the reading on the Tasmota web UI
  • If there is an observed difference, change the offset value by issuing the calibration command in the Console (e.g., PowerCal 10000)
  • Adjust the offset value up or down until the readings on the multi-meter and the web page are as close as possible

Known issues

Power monitoring chips like the HLW8032 (Blitzwolf SHP5) and CSE7766 (Sonoff S31, Sonoff POW R2) occasionally report invalid power measurements for load values below 5W. During this situation it sometimes reports a valid load. By setting SetOption39 to 128 (default) it must read at least 128 invalid power readings before reporting there is no load.

To discard all loads below 6W simply set SetOption39 1 (0 will reset to default on next restart) so it will report no load below 6W.

Clone this wiki locally
You can’t perform that action at this time.