Virtual Meters
Calculated meters that combine or transform other meters through mathematical operations.
Overview
This bundle provides virtual meter components that perform calculations based on other meters or energy storage systems. Virtual meters are useful for creating derived measurements and aggregations without hardware connections. Two types are supported:
-
Virtual Subtract Meter: Calculates
Minuend - Subtrahend1 - Subtrahend2 - … -
Virtual Add Meter: Sums values from multiple meters
Virtual meters enable flexible energy accounting scenarios without additional hardware.
Components
This bundle implements the following OpenEMS Components:
Virtual Subtract Meter
Name: Meter Virtual Subtract
Factory-PID: Meter.Virtual.Subtract
-
VirtualSubtractMeter
-
ElectricityMeter
-
OpenemsComponent
-
ModbusSlave
-
SumOptions
Description: Virtual meter that subtracts multiple meters or energy storage systems from a minuend. Useful for calculating derived energy values through arithmetic subtraction.
Use Cases:
* Calculate grid meter from consumption - production - battery: Grid = Consumption - ESS - Production
* Calculate consumption from grid + production - battery: Consumption = Grid + Production - ESS
-
id(String): Component ID for unique identification (default: "meter0") -
alias(String): Human-readable alias for the component -
enabled(Boolean): Enable/disable this component (default: true) -
type(Enum): Meter type - GRID, PRODUCTION, or CONSUMPTION (default: PRODUCTION) -
minuend_id(String): Component ID of the minuend meter (if empty, 0 power is assumed) -
subtrahends_ids(String[]): Component IDs of meters to subtract (required) -
addToSum(Boolean): Should data be added to Sum? (default: false)
Virtual Add Meter
Name: Meter Virtual Add
Factory-PID: Meter.Virtual.Add
-
MeterVirtualAdd
-
ElectricityMeter
-
OpenemsComponent
-
ModbusSlave
-
SumOptions
Description: Virtual meter that sums values from multiple meters. Useful for aggregating measurements from multiple systems into a single virtual meter for averaging and statistics.
Use Cases: * Combine production from multiple PV inverters * Aggregate consumption across multiple buildings or zones * Create average values from distributed meter readings
-
id(String): Component ID for unique identification (default: "meter0") -
alias(String): Human-readable alias for the component -
enabled(Boolean): Enable/disable this component (default: true) -
type(Enum): Meter type - GRID or CONSUMPTION (default: GRID) -
meterIds(String[]): Component IDs of meters to sum (required) -
addToSum(Boolean): Should data be added to Sum? (default: false)