Meter type for Measuring a Variable Load

Hi Community,
We have a Grid, PV power plant, variable load and ESS we are monitoring using:


  • A meter for readings from the Grid (Meter type: GRID)
  • A meter for readings from a PV (Meter type: PRODUCTION)
  • A meter for readings from a variable Load(Meter type: CONSUMPTION_METERED)

Other Components:

  • Ess
  • 4 Modbus bridges for the meters and ESS.

We have the means to measure the components (grid, pv, load and ESS) independently. The expectation was that values from the respective components would also show up on the OpenEMS UI correctly. The readings for PV, Grid and ESS are displaying correctly, but the load value is incorrect by quite a lot.

The meter implementation we use is inherited from ElectricityMeter and we are only reading the Active and reactive Power channels. The same meter is used for the Grid, PV and load with the appropriate meter type. Is this the correct way to measure load?

Thank you :slight_smile:

Please take a look at the energy flow of different meter types which is not…let‘s say…intuitive.
Maybe this can bring you a step further…

1 Like

To understand the (sometimes “non-intuitive”) logic in OpenEMS, please see, how the different measurements relate to each other. This is best seen in the Sum-Component:

var consumptionActivePower = TypeUtils.sum(essActivePowerSum, gridActivePowerSum, productionAcActivePowerSum);

openems/io.openems.edge.core/src/io/openems/edge/core/sum/ at develop · OpenEMS/openems · GitHub

i.e. Consumption is calculated as the sum of Energy Storage System (ESS) (where discharge is positive), Grid (where buying from grid is positive) and Production (AC-side only, should be always positive).

This general formula unfortunately causes problems when using the same meter implementation to measure productions and consumptions, because one needs to be inverted.

We have a Grid, PV power plant, variable load and ESS we are monitoring using:

Why do you need to measure the load? It’s typically simply calculated from the other measurements. With the only exception of additionally measured loads - see the Meter-Type for that. (-> openems/io.openems.edge.core/src/io/openems/edge/core/sum/ at develop · OpenEMS/openems · GitHub)