Energy Management IoT: Sub-Metering, BEMS Integration
How IoT sub-metering feeds BEMS platforms: CT sizing, Modbus/BACnet gateways, data intervals, and a worked demand-charge savings example.

Contents & prerequisites
Utility bills are the easiest cost line for a facility manager to see and the hardest to act on without granular data. A single main meter tells you a building consumed 42,000 kWh last month; it can't tell you how much went to the chillers, how much to a lighting schedule nobody updated, how much to one tenant's server room, or whether a compressor now runs twice as long as it did a year ago. Sub-metering puts meters on individual feeders, panels, tenants, and major loads, and integrating those meters with the building energy management system (BEMS) turns their readings into control actions and verified savings. How quickly that pays back varies widely, because the meters themselves save nothing: the savings come from what the data drives — schedule fixes, demand limiting, fault detection, accurate tenant billing — so a credible business case names those actions up front.
What Sub-Metering Measures, and to What Accuracy
A modern electrical sub-meter reports cumulative active energy (kWh, import and export), active, reactive, and apparent power, per-phase voltage and current, power factor, frequency, and often harmonic distortion. The meter's accuracy class decides what the data can be used for:
| Grade | Typical accuracy | Standards | Typical use |
|---|---|---|---|
| Revenue (billing) grade | ±0.2–0.5% (±1% where Class 1 billing meters are accepted) | ANSI C12.20 Class 0.5 or 0.2; IEC 62053-22 Class 0.5S, or IEC 62053-21 Class 1 where billing rules allow it; MID approval for billing in the EU | Tenant billing, check metering against the utility, M&V |
| Monitoring grade | ±1–2% | IEC 62053-21 Class 1 or 2; IEC 61557-12 for power metering and monitoring devices | Panel, floor, and system-level energy tracking |
| Embedded / indicative | ±2–5% or unspecified | Vendor-specific (VFD, UPS, inverter, and chiller controller readouts) | Trending and fault detection |
The class covers the meter alone. Current transformers (CTs) add their own ratio and phase errors — metering CTs are rated to IEEE C57.13 classes 0.3, 0.6, and 1.2 or IEC 61869-2 classes 0.2, 0.5, and 1 — so a Class 0.5 meter on Class 1 CTs is not a 0.5% system. Billing applications need CTs that match the meter's class.
Water, gas, and thermal (BTU) meters fit the same architecture, typically reporting over M-Bus (EN 13757) or pulse outputs; the rest of this article focuses on electricity.
The Measurements Behind the Numbers
For a purely sinusoidal single-phase circuit, the textbook relations hold (see phasor representation and complex impedance):
P = V_rms · I_rms · cos φ active power (W)
Q = V_rms · I_rms · sin φ reactive power (var)
S = V_rms · I_rms apparent power (VA)
PF = P / S = cos φ
Real building loads — LED drivers, variable-frequency drives, IT power supplies — draw distorted current, and then those formulas no longer describe the circuit. A metering IC therefore samples voltage and current simultaneously at several kilohertz, not once per line cycle, and computes over an integer number of cycles:
P = (1/N) · Σ v[n] · i[n]
V_rms = √((1/N) · Σ v[n]²)
I_rms = √((1/N) · Σ i[n]²)
S = V_rms · I_rms
PF = P / S (true power factor)
Measuring harmonics up to the 40th at 60 Hz (2.4 kHz) already requires sampling above 4.8 kHz. With harmonic current present, the true power factor P/S is lower than the displacement power factor cos φ₁ of the fundamental, and reactive power stops having a single definition: depending on the meter, "kvar" may be the fundamental Q₁ defined in IEEE 1459, the older Budeanu quantity, or the nonactive power √(S² − P²). Check which one a meter reports before comparing kvar figures from different vendors.
The two channels also need matched timing. A 1° phase error between voltage and current (about 46 µs at 60 Hz) changes measured power by only 0.015% at unity power factor, but by about 3% at PF 0.5.
Three-phase meters compute power per phase and sum the phases: P_total = P_A + P_B + P_C. Only for a balanced load does this reduce to P = √3 · V_LL · I · PF — for example, 480 V line-to-line, 80 A per phase, and PF 0.9 give about 59.9 kW. Building panels are rarely balanced, so meters always measure each phase. A four-wire wye service needs three current measurements; a three-wire delta service can be metered with two (Blondel's theorem).
Demand is what utilities bill on top of energy for most commercial customers: the average power over a demand interval, with the month's highest interval setting the demand charge. Many US tariffs use 15-minute intervals; UK half-hourly settlement uses 30 minutes. Some tariffs use fixed (block) intervals aligned to the clock, others a rolling window — for example, a 15-minute window updated every 5 minutes — which catches peaks that straddle block boundaries. A sub-metering system should compute demand the same way the tariff does, from interval energy: for a 15-minute interval, kW demand = kWh in the interval × 4.
Current Transformers: Sizing, Commissioning, and Safety
Except for small direct-connected meters, sub-meters measure current through current transformers. Three output types are common:
- 5 A (or 1 A) secondary CTs: the traditional instrument-transformer interface, wired to meters with 5 A CT inputs.
- 333 mV voltage-output CTs: the burden resistor is built in; common on multi-circuit panel monitors and split-core retrofit CTs.
- Rogowski coils: flexible, non-saturating, and easy to fit around large cables and busbars; they need an integrator in the meter.
Sizing. Pick the CT so the normal load sits well inside its accuracy range. For a feeder with an 80 A normal load:
150:5 CT: 80 A → 80 / 30 = 2.67 A secondary (53% of rated current)
100:5 CT: 80 A → 80 / 20 = 4.00 A secondary (80% of rated current)
Both work. With a rating factor of 1.5, the 100:5 CT still carries up to 150 A continuously within its accuracy class, and it measures light loads better. Accuracy is specified over a band of primary current — from 10% of rating up to the rating factor for IEEE C57.13 metering classes, 5–120% for IEC 61869-2 Class 0.5, and down to 1% for the "S" classes — and it degrades below that band. The common sizing mistake is the opposite of undersizing: a CT chosen for the breaker or busbar rating, measuring a load that spends most of its time in the bottom few percent of the range. Saturation is mainly a fault-current concern; metering CTs are often designed to saturate deliberately at a few times rated current (a low instrument security factor) to protect the meter.
Commissioning. The errors that most often wreck sub-metering data are installation and configuration mistakes, not CT physics:
- Reversed CT: H1 (P1) facing the load instead of the source gives negative power on that phase.
- CT paired with the wrong voltage phase: the ±120° shift gives near-zero or negative power and power factor.
- Wrong CT ratio configured in the meter: every reading scales by the error, and nothing looks obviously broken.
Check every point at handover: per-phase power should be positive and power factor plausible for the load, and where sub-meters cover the whole building, their sum should agree with the main meter within a few percent.
Safety. Never open-circuit the secondary of a 5 A CT while the primary carries current: the CT keeps driving its secondary current, and the voltage across the open terminals can rise to hazardous levels and damage the insulation. Wire 5 A CTs through shorting terminal blocks so a meter can be removed with the secondaries shorted. 333 mV CTs are safe to disconnect because the burden is internal. Split-core CTs can be fitted without disconnecting conductors, but fitting them inside an energized panel is still electrical work for qualified personnel with appropriate PPE (NFPA 70E in the US).
Data Path: From Meter to BEMS and Cloud
Most sub-meters still speak Modbus RTU on a daisy-chained RS-485 segment; Ethernet-connected meters usually offer Modbus TCP and sometimes BACnet/IP directly. A gateway or BEMS controller polls the meters, maps the values to BACnet objects for the BEMS, and forwards interval data to a cloud or on-premises platform — the standard device → gateway → cloud pattern:
[Sub-meters] --Modbus RTU / RS-485--> [Gateway / BEMS controller] --BACnet/IP--> [BEMS supervisor]
|
+--MQTT / HTTPS--> [Time-series DB, analytics, billing]
Older and utility-owned meters may expose only a pulse output (S0, IEC 62053-31); count the pulses into a running energy total and treat it like a cumulative register. Where cabling is expensive, wireless meters (LoRaWAN, wireless M-Bus) trade update rate for installation cost.
Reading meter registers correctly is where many integrations go wrong:
- Register type and numbering. Many meters expose measurements as input registers (function code 04, conventionally numbered 3xxxx); others use holding registers (function code 03, 4xxxx). The 30001/40001 numbers are a 1-based reference convention: on the wire, register 40001 is address 0 with function code 03. Off-by-one reads are a classic integration bug.
- Word order. 32- and 64-bit values span multiple 16-bit registers, and the word order (big-endian or word-swapped) varies by vendor. A wrong word order produces wildly wrong values, not small errors.
- Integer energy registers. Where the meter offers them, prefer integer energy registers (32- or 64-bit, in Wh or 0.01 kWh units) and handle rollover. A float32 holds only about 7 significant digits: a cumulative register at 2,500,000 kWh resolves just 0.25 kWh, which is up to ±5% error on a 5 kWh, 15-minute interval from a 20 kW load — and the resolution halves every time the total doubles.
- Interval energy from differences. Compute interval energy as the difference between two cumulative energy readings, not by multiplying polled kW by time. The meter integrates power continuously at its sampling rate, while polled kW is a snapshot that misses short peaks; a missed energy reading only makes the next difference span two intervals, while a missed power poll leaves a hole.
- Polling budget. At 9600 baud, reading a few dozen registers from one meter takes on the order of 100–200 ms including the meter's response time, so 30 meters with two reads each need roughly 10 s per polling cycle. That's fine for 1-minute data but not for fast control; use a higher baud rate where every device supports it, read contiguous register blocks, or split long segments.
- Time. Sync the gateway, and any meter with its own interval clock, to NTP, and align interval boundaries with the utility's (:00, :15, :30, :45), so the peak you compute is the peak on the bill.
BEMS Integration: Closing the Loop
Monitoring shows where the energy goes; integration with the BEMS lets the data drive control and verify the result. Typical sequences:
- Demand limiting: when the projected demand for the current interval approaches a target, shed or delay deferrable loads — reset chilled-water or zone temperature setpoints by a degree or two, limit chiller staging, delay EV charging or defrost cycles.
- Schedule verification: compare load profiles with occupancy schedules to catch equipment running overnight and on weekends.
- Fault detection: flag slow drift, such as a compressor or fan whose energy for the same duty rises month over month, and feed it into predictive maintenance.
- Tenant billing and cost allocation: from revenue-grade meters only.
When the integration writes to BEMS points over BACnet, it should command them through the priority array of the commandable object (an Analog or Binary Output, or a commandable value object), at a priority agreed with the controls contractor — typically a level numerically above 8 (Manual Operator), so life-safety and operator overrides still win — and relinquish the command by writing NULL at the same priority when the event ends. A gateway that writes at a high priority and never relinquishes leaves equipment stuck at the override value, with the normal schedule masked underneath it. Define the fallback too: if the gateway goes offline, the controller should return to its local sequence rather than hold the last override.
Worked Example: Cutting a Demand Charge
An office building pays $15 per kW of monthly peak 15-minute demand. Its interval data shows the monthly peak of 180 kW lands between 7:00 and 7:15 on weekday mornings, when both chillers, the air-handling units, and the domestic hot-water heaters start together. A BEMS sequence that staggers those starts over 45 minutes — starting the first chiller earlier so the building still reaches setpoint by occupancy — brings the peak interval down to 145 kW:
Before: 180 kW × $15/kW = $2,700 per month
After: 145 kW × $15/kW = $2,175 per month
Saving: $525 per month ≈ $6,300 per year
Three caveats decide whether that saving appears on the bill:
- The stagger has to hold every day. The demand charge is set by the single worst interval of the month, so one morning when someone starts everything by hand, or a controller reboots to its default schedule, erases that month's saving. Implement it as an automated sequence with an alarm on demand, not as an operating instruction.
- Watch for demand ratchets. Many tariffs set billing demand to the higher of the current month's peak and a percentage of the highest peak in the previous 11 months, so the saving may not show up until an old peak ages out.
- Energy use barely changes. The same equipment runs for nearly the same hours, so kWh charges stay about the same. The saving is in demand charges only; don't count it again as an energy saving.
Because it needs no hardware beyond the meters and controls already in place, peak-demand management is often one of the highest-ROI uses of sub-metering data (see IoT ROI calculation).
Data Volume and Storage
Interval data is small per building and large per portfolio:
15-min data: 96 readings/day × 30 days = 2,880 readings per point per month
200 points: 2,880 × 200 = 576,000 readings per month
5 years: 576,000 × 12 × 5 ≈ 34.6 million rows
For one building, that's trivial for any time-series database, or even a relational one. The pressure comes from scale and resolution: 100 buildings with 200 points each at 1-minute resolution produce about 10.5 billion readings per year, and that's where compression, retention tiers, and downsampling start to matter.
Two retention rules keep the data useful:
- Keep raw interval data for at least 12 months, at the utility's interval or finer. Bill verification and M&V baselines (for example, under IPMVP) need a full year of seasonal data; keep it longer where tenant billing or contracts require it.
- Store the maximum alongside the average (and the energy sum) when rolling data up to hourly or daily values. An hourly average hides the 15-minute peak that set the demand charge.
Practical Design Implications
- Meter where decisions are made: tenants, major plant (chillers, boilers, air handlers), lighting and plug-load panels, and any load the business case depends on. A meter nobody will act on is cost without savings.
- Match accuracy to purpose: revenue-grade meters and matching CTs for billing, monitoring grade for diagnostics.
- Commission every point: check CT orientation, phase pairing, configured ratio, and the sum against the main meter before trusting the data.
- Read energy, not power: use cumulative energy registers (integer where possible), difference them for intervals, and keep clocks NTP-synchronized and aligned with the utility's intervals.
- Make control writes safe: agreed BACnet priorities, a clean relinquish, and a defined fallback if the gateway goes offline.
- Decide the commercial model early: whether metering is sold as a project, a monitoring subscription, or energy-as-a-service changes who owns the hardware and the data (see IoT business models).
- Reuse the data for reporting: the same interval data feeds Scope 2 emissions reporting and broader IoT sustainability and carbon-footprint work.
Key Takeaways
- Sub-metering breaks one utility bill down by tenant, system, and load; the savings come from the actions the data drives — schedule fixes, demand limiting, fault detection, accurate billing — not from the meters.
- P = V·I·cos φ holds only for sinusoids. Real meters sample voltage and current simultaneously at kHz rates and compute P as the mean of v·i, S as V_rms·I_rms, and true PF as P/S, phase by phase.
- Most CT problems are installation and configuration errors: reversed CTs, wrong phase pairing, wrong ratios. Size CTs so the normal load sits well inside their accuracy range, and never open-circuit a 5 A secondary under load.
- Read cumulative energy registers (integer where possible) and difference them for interval energy; check register type, numbering offset, and word order in the meter's register map.
- Demand savings depend on every day's peak and on ratchet clauses; automate the sequence, and write to BACnet points through the priority array with a clean relinquish.
- One building's interval data is small, while a portfolio's at 1-minute resolution is large; keep raw intervals for at least 12 months and store maxima as well as averages in roll-ups.
Learning
Sign in to track your progress.
Evidence
Public projects engineers linked to Energy Management IoT: Sub-Metering, BEMS Integration.
No engineer has linked a project to this topic yet. Built something that proves it? Add the project and tag it with iot-connectivity-energy-management-iot-sub-metering-bems-integratio — it then shows here and on your public profile.
