Skip to content

Energy Monitoring

What the building is drawing, and what it has used.

Two ways in

A meter or smart plug exposed through Home Assistant (map its energy / power entities under Integrate → Home Assistant), or any device whose own decoder yields energy_kwh / power_w (Sensor Onboarding). No native BLE energy decoder ships yet. The energy rate on the settings page is not yet used by a cost figure anywhere.

Who it is for

Whoever pays the electricity bill, and whoever is asked to reduce it.

Getting a reading in

Omaya writes an energy reading — one row per meter per minute — for any device whose decoder yields energy_kwh or power_w. Two routes deliver that today:

  • Home Assistant. Connect the organisation's Home Assistant under Integrate → Home Assistant and map the plug's or meter's energy and power entities to an Omaya device. Each poll writes a reading; units are normalised (Wh → kWh, kW → W) from the entity's own unit, and a state of unavailable is dropped rather than stored as zero.
  • A decoder of your own. If your meter advertises its readings over BLE, define its frame in Sensor Onboarding, map the cumulative register to energy_kwh and the draw to power_w.

From either, the Energy app's dashboard, device list and report list every device that has written a reading (or whose model declares the capability), and the rule metrics and OAIA reading below work. The settings page under Your Apps → Energy shows reading health, counts the Home Assistant connections and meters, and links to the connection; the energy rate and currency it takes are stored for a cost figure that is not built yet.

What it records

ReadingMeans
energy_kwhCumulative consumption — a meter reading, always rising
power_wInstantaneous draw — what it is pulling right now
voltage_v, current_aThe supply itself
TemperatureWhere the meter reports it

The distinction between the first two is the one that matters. Power is a level; energy is a total. Summing power readings gives you nothing meaningful; the difference between two energy readings is real consumption.

The energy report does exactly that: over the period you pick, it takes the first and last meter readings and reports the difference, alongside average and peak power and average and peak temperature. Consumption is a subtraction, not a sum, and the report is built that way.

The screens

Dashboard, Devices, Device detail and the Energy report — consumption per meter over a period, with zone and venue, and a CSV export. All four are built and all four are empty today, for the reason above.

Making it mean something

A kWh figure on its own is a number. Paired with the rest of the platform it becomes an argument:

  • Against occupancy — energy while the floor was empty. A building drawing its daytime load at 3 a.m. is the commonest finding and the cheapest to fix.
  • Against space utilisation — energy per m² of space that was actually used.
  • In a disclosureCompliance carries GRI 302, GHG Protocol Scope 2, ISO 50001, Bursa NSRF and EU CSRD E1, and reads this app's readings as hourly consumption, so an onboarded meter feeds a disclosure without a second setup.

Alerting on it

Two energy metrics are available to rules, and the difference between them is the same level-versus-total distinction as above:

MetricIsUse it for
Power draw nowWatts, summed over the meters in scope"This floor is pulling more than it should right now"
Energy used todaykWh since local midnight"We have already used more today than we normally do by lunchtime"

Power draw now only counts a recent reading. A meter that has stopped reporting has no value rather than zero — so a "draw below 100 W" rule does not fire on a dead meter, which would otherwise be the most common false alarm of the lot.

Energy used today is a delta, not the meter reading. The meter's own figure only ever rises, so a rule on it would fire once and then for ever. The daily figure resets, which is what makes a threshold mean something.

Both work at device, zone or venue scope, and more than one meter in scope sums.

Pair either with raise a work order and an over-draw becomes a job for somebody rather than an email nobody opens.

What OAIA does with it

The assistant reads the same readings. Its own finding is left on: an hour after the venue closes, a meter still drawing at least 70 % of what it averages during opening hours — and at least 200 W — is a light, an air-conditioner or a machine nobody switched off. A server rack that runs all night is never a finding, because it draws the same by day. Ask it about energy and it will pair kilowatt-hours with the hours a room was actually occupied, which is the comparison nobody else makes.

When it disappoints

No devices. Nothing has written a reading yet: the Home Assistant connection has no energy or power entity mapped, or the onboarded decoder is not yielding energy_kwh / power_w. A device appears the moment its first reading lands.

Consumption looks wrong. Check whether you are reading power where you meant energy. It is the same mistake as reading a tag count as a headcount, in a different unit.

A power rule never fires. The meters have not reported in the last quarter of an hour, so there is no current value to compare — which is deliberate. Check the meter before the rule.

Last updated:

Omaya platform documentation