Add an energy monitor
Measure a building's real load on a circuit, so charging gets the capacity the rest of the building leaves free instead of a fixed share.
On this page
An energy monitor measures the current actually flowing into a circuit: the chargers, and everything else the building runs on it, from lights to heat pumps. Assign one to a circuit and Flowion gives charging the capacity the rest of the building leaves free, within the circuit's rating. A busy afternoon leaves less for the cars; a quiet night leaves more.
A circuit without a monitor is planned on its rating and the chargers Flowion knows about, as before.
How Flowion uses a reading
On each line, Flowion takes the monitor's total and subtracts the charging it can match to that same moment. What remains is the rest of the building. Flowion sets that aside and lets the cars share what is left of the circuit's rating. Charging it cannot match to the reading is counted as building load, which errs on the side of the circuit.
A Main circuit and a circuit below it can each have a monitor. Then a charger under both stays within both, and the two readings are never added together.
A reading counts only if it covers every line the circuit uses, is no more than 120 seconds old, and is not dated in the future. When a monitored circuit has no reading that counts, Flowion does not guess: it directs the charging under that circuit to pause until a good reading arrives, or until you remove the monitor.
Monitors you can use
| Monitor | How it connects |
|---|---|
| Easee Equalizer | Through a linked Easee site. It appears in your monitors on its own, read every 30 seconds. |
| Shelly Pro 3EM | Directly to Flowion over a secure connection, set up below. |
A circuit accepts a monitor whose measuring point Flowion has tied to that circuit: today, an Easee Equalizer on an Easee circuit you mapped to it.
See your monitors
200Response
mode must match your credential: live with a live key, sandbox with a sandbox key. A monitor stays in this list whether or not it is assigned.
Rename one with PATCH /energy-monitors/{monitorId}, sending name and the assetRevision you last read as expectedAssetRevision. A 409 monitorConflict means it changed in the meantime: read it again and retry.
Connect a Shelly Pro 3EM
Register the device and get its one-time connection settings:
deviceIdis the Shelly's own device id.deviceProfileistriphase, the Pro 3EM's three-phase profile, andfirmwareVersionmust be a 1.x version from 1.1.0 onward.phaseMappingsays which of the site's lines each of the Shelly's phases A, B and C measures. Map each phase to a different line, as it is actually wired; do not assume the installer kept the order.
The response holds everything the device needs: endpoint and port, username, oneTimePassword, clientId and topicPrefix, plus setup, a short list of steps to follow in the Shelly's own web interface.
Check that the device has connected:
connected turns true and state becomes connected once the device has signed in.
| To | Call |
|---|---|
| Issue a new password | POST /energy-monitors/$MONITOR/connection/rotate |
| Stop the current password working at once | POST /energy-monitors/$MONITOR/connection/revoke |
| Cut the device off for good | POST /energy-monitors/$MONITOR/connection/disable |
A rotated password is shown once and must be entered within 15 minutes; the old one keeps working until the device first signs in with the new one. After a revoke, rotate to get the device back. Disabling the connection is permanent.
Assign a monitor to a circuit
Ask the circuit which monitors it accepts:
Each candidate has eligible and a reason:
reason | Means |
|---|---|
eligible | Ready to assign |
already_assigned | It is assigned to another circuit; remove it there first |
disabled | The monitor is disabled; enable it first |
disconnected | It is not connected; get it online first |
boundary_unverified | Flowion cannot tie its measuring point to this circuit |
incompatible_lines | It does not measure the lines this circuit uses |
Read the circuit's current revision, then assign:
lineMapping pairs each line the monitor measures with a line of the circuit: all three for a three-phase circuit, and the circuit's own line for a single-phase one. Assigning a monitor to a circuit that already has one replaces it. A circuit has one monitor at a time, and a monitor serves one circuit.
The new assignment starts as pending_protection and becomes active once Flowion's load balancing has taken it into account.
Read a circuit's monitor
The answer has the assignment, the monitor, its latest reading (the current on each line and when it was measured), a quality, and the decision Flowion last made from it: how much it set aside for the rest of the building (reserveAmps), what it left for charging (chargingBudgetAmps), which circuit and line limited it, and whether it directed charging to pause (directedPause).
protectionUsable is true when the assignment, the latest reading and Flowion's latest decision all agree and are current. When it is false, quality says why:
quality | Means |
|---|---|
usable | The reading counts |
stale | The newest reading is more than 120 seconds old, or repeats an older one |
missing_phase | A line the circuit uses is missing from the reading |
invalid_value | The reading holds a value that cannot be right |
future_time | The reading is dated in the future |
source_disconnected | The monitor is not connected |
disabled | The monitor is disabled |
unavailable | There is no reading yet |
unassigned | The circuit has no monitor |
conflict | Flowion's latest decision was made for an earlier assignment; the next one settles it |
Disable, replace or remove a monitor
Disable a monitor to stop its readings being used, for example while it is serviced:
A disabled monitor's circuit has no reading that counts, so charging under it is directed to pause. After you enable it again, its circuit is used once a fresh reading arrives.
Replace a monitor by assigning another one to the circuit.
Remove it to return the circuit to planning on its rating alone:
acknowledgeProtectionLoss=true is required: from then on, the rest of the building's load no longer shapes that circuit's charging. The monitor stays in your list, ready to assign again.
Reading monitors needs the asset.monitor.read permission and reading circuit status asset.circuit.read; connecting and changing monitors needs asset.monitor.manage, and assigning one to a circuit asset.circuit.manage. Every call is listed under Energy monitors in the API reference.