Accessibility settings

Text size

100%

Energy 5 min read

EMS

Energy management system Also known as: energy management system, energy management software

Definition

An energy management system (EMS) is software that reads the meters, inverters and batteries on a site and sends them setpoints, deciding when to charge, discharge, curtail or trade within grid, contract and safety limits.

Cite this entry

Text

"EMS". Order Group, Software glossary, 10 October 2026. https://ordergroup.co/glossary/ems/

HTML

<a href="https://ordergroup.co/glossary/ems/">EMS</a> - Order Group

How an EMS works

An energy management system (EMS) is the control layer above a site's generation, storage and grid connection. It reads measurements from the grid meter, the inverters and the battery, combines them with outside signals such as market prices, tariff windows, grid operator limits and a weather forecast, and sends setpoints back to the hardware: charge the battery at 400 kW, cap PV output at 70%, keep grid import under the connection limit.

The loop runs on a fixed cycle; in Zeronest's home EMS the cycle is one minute, and control loops on industrial sites usually run faster. In every cycle the EMS works out what the site is doing now, what it is allowed to do, and which allowed action saves or earns the most. The allowed set comes from battery state of charge limits, connection capacity, export caps and contracts. In practice the logic is a stack of controllers with priorities: safety limits first, then commands from the grid operator, then contractual duties such as peak shaving windows, and only after that optimization such as trading or self-consumption.

The same word covers very different scales. A home EMS decides when one battery charges. An industrial energy management system manages a factory's grid connection, a battery and a PV plant behind one meter. A fleet EMS coordinates many sites and passes their flexibility to an aggregator or a trading desk. The control problem stays the same, while the number of devices, the signals and the price of a wrong decision grow.

A battery management system (BMS) sits one layer lower. It lives in or next to the battery pack, measures cell voltages and temperatures, balances cells and opens the contactors when a limit is crossed. The EMS sees the battery as a single asset with a power rating, a state of charge and the limits the BMS reports. The EMS asks the battery for 500 kW; the BMS decides whether the cells can deliver it.

What an energy management system means for your software

Most of the cost and risk in an EMS project sits in integration, timing and failure handling, and much less in the optimization algorithm. Requirements worth writing into the specification:

  • Control runs locally. A decision on a live battery cannot wait for an internet connection, so the control loop and the safety limits belong on an edge device at the site. The cloud holds configuration, history and reports.
  • Integration is priced per device model. Every inverter, battery and meter exposes its own register map, usually over Modbus, and a firmware update can move registers. Ask how a new model gets onboarded and who maintains the maps.
  • Controllers have an explicit order. Export limits, grid operator commands, peak shaving and trading will conflict on the same battery. The system needs a written priority, a fallback mode when no controller is active, and a screen that shows which rule is in charge right now.
  • Device communication is checked both ways. The EMS reads back every setpoint it writes and flags every failed read, so the control logic never acts on a value the device did not accept or on stale data. The Modbus entry lists what this takes at register level.
  • Every cycle is logged. Inputs, the active rule and the resulting setpoint are stored, so a disputed invoice or a complaint from the grid operator can be replayed.
  • New logic is tested on a simulator with the same interfaces as the site before it touches a production battery.
Typical EMS inputs and outputs
SignalExampleUsual source
Grid connectionImport and export power at the connection pointGrid meter over Modbus
Battery stateState of charge, available charge and discharge power, alarmsBMS and power conversion system
PV stateActual output, available powerInverters
Grid operator limitExport cap or a direct command to the batteryDSO signal or controller
Market signalDay-ahead and intraday prices, trading scheduleMarket data or a trading partner
TariffHigh-load time windows, contracted capacityNetwork tariff
OutputCharge or discharge setpoint, PV curtailmentEMS to devices

Rules and standards

In EU law "energy management system" usually means a management process, which software only supports. Article 11 of the Energy Efficiency Directive (EU) 2023/1791 requires enterprises with an average annual consumption above 85 TJ over the previous three years to have an energy management system in place by October 11, 2027, checked by an independent body against European or international standards. Enterprises above 10 TJ that do not run one must have regular energy audits instead. If a compliance team hands over an "EMS requirement", check which of the two meanings it has before you scope software.

A site EMS has no protocol of its own. It speaks the protocols of the devices it controls, most often Modbus RTU or Modbus TCP, and takes signals from the grid operator and market partners through whatever interface they define.

From our projects

We built the EMS behind Skyfri's solar and battery platform. It went into production in June 2024 and runs on 7 plants with more than 5 MWh of battery capacity, including a single battery above 2 MW. It handles charging and discharging, peak shaving, energy trading, requests from the distribution system operator and export limits, and it runs fully offline at the site. The edge code is Python asyncIO on Azure IoT Edge. The project documentation lists what was finished by October 2024: a modular structure, the main control loop with all external signals, export curtailment on grid operator request, zero-export and zero-PV-export algorithms and a maximum site load limiter, plus on-site tests with the grid operator and the trading partner.

For Zeronest we have built a home and installer EMS since January 2024. Every minute it decides whether a battery charges, discharges or sells to the grid, using live readings, market prices, tariffs and the weather forecast, across 16 inverter brands.

For Global Green's battery storage sites in 2026 we built separate controllers for grid operator export limits, direct battery commands, PV and grid export limitation, safety curtailment and trading, with a warning when no fallback controller is set. Two defects from testing show why controller order needs its own tests: adding the trading controller once removed the deep discharge protection settings, and the safety controller throttled the battery whatever had triggered it. Both were fixed.

Read more on the blog

Sources

  1. Directive (EU) 2023/1791 on energy efficiency, Article 11 - EUR-Lex
  2. MODBUS Application Protocol Specification V1.1b3 - Modbus Organization

FAQ

Michał Dżaman
Michał Dżaman
Co-founder & Head of Backend
Talk to an engineer
  • A BMS protects the cells inside one battery: voltages, temperatures, balancing and disconnection. An EMS decides what the whole site does with that battery, the PV plant and the grid connection. The EMS takes the BMS limits as hard constraints.

  • Yes, and control should not depend on one. The control loop and safety limits run on a device at the site, and the cloud is used for configuration, data history, forecasts and reporting. Skyfri's EMS runs fully offline.

  • At minimum: import and export power at the grid connection, battery state of charge and available power, and PV output, read at least once per control cycle. For optimization it also needs prices, the network tariff and, for solar, a weather forecast.

  • SCADA collects data from field devices and lets operators watch them and send commands. An EMS decides automatically what the devices should do and sends the setpoints itself. On Skyfri's platform the two are separate layers: Skyfri SolarSCADA handles site-level hardware control, and the EMS holds the control logic for charging, discharging, peak shaving, trading and export limits.

Building a system that depends on EMS?

See how we build software for this domain, with case studies and the stack we use.

See Energy Hub

Requirements checklist

For each term we send the definition and what it requires from your software. Free, no sales call needed.

Your checklist is empty. Use the plus next to a term to add it.

    Order Group sp. z o.o. (Warsaw) uses your e-mail to send the checklist (Art. 6(1)(b) GDPR) and keeps a record of the request (Art. 6(1)(f) GDPR). Marketing consent is optional and can be withdrawn at any time. Read the Privacy Policy