Grid balance
Positive means you import electricity from the public grid. Negative means you export your surplus to it. This reading alone is not your whole household use.
Graph label: Grid import / export
Your energy, explained
Where does your electricity go?
A simple guide to the names, units and battery flows used on the home page, in power graphs and in the energy dashboard.
A battery changes when energy is used.Charging keeps energy for later. Discharging releases it to power your appliances. The household total takes both directions into account.
Each arrow shows a possible direction. These flows do not all have to happen at the same time.
Start with the direction: electricity coming in, going out or being stored.
Positive means you import electricity from the public grid. Negative means you export your surplus to it. This reading alone is not your whole household use.
Graph label: Grid import / export
The power produced by your panels. It can supply appliances, charge the battery or be exported to the grid.
Graph label: Solar panel production
Discharging supplies energy: add it. Charging stores energy: subtract it. Both readings are positive amounts; the formula gives them their signs.
Graph label: Battery discharging power / Battery charging power
The power used by appliances, lighting and other household equipment. Energy being stored in the battery is left out of this total.
Graph label: Total power
The calculation
On the home page and in the power graphs, all the terms below are in watts (W). The grid term already includes exports as a negative value.
Charging is subtracted because that electricity is being saved for later, rather than used by household appliances now. Battery discharge is added when that stored energy is released. If either battery flow is missing, the total uses only the grid balance and solar production.
You import 500 W, the panels produce 1,000 W and the battery supplies 300 W without charging. Your home uses 1,800 W.
500 + 1,000 + 300 − 0 = 1,800 W
The panels produce 1,000 W. You export 200 W (grid: −200 W) and charge the battery at 300 W, with no discharge. Your home uses the remaining 500 W.
−200 + 1,000 + 0 − 300 = 500 W
Power tells you how fast electricity is used. Energy tells you how much was used over time.
A reading at a particular moment. A 1,000 W heater uses electricity twice as fast as a 500 W heater while they are running.
An amount accumulated over a period. The energy dashboard adds up the changing power readings across the selected hours or days.
1,000 W running for 1 hour uses 1 kWh.
For constant power: multiply watts by hours, then divide by 1,000 to get kWh.
These columns describe the selected period. All energy values are in kWh.
| Dashboard label | What it means |
|---|---|
| Consumption on network | Electricity taken from the grid. Imports are counted as a positive amount, separately from exports. |
| Solar panel production energy | Electricity produced by the solar panels during the period. |
| Battery discharging energy | Energy released from battery storage. A positive amount added to household use. |
| Battery charging energy | Energy put into battery storage. A positive amount subtracted from household use. |
| Total energy used | Energy used by the household: grid imports + the displayed export value (already negative) + solar + battery discharge − battery charge. If either battery flow is unavailable, both battery terms are left out. |
| Energy Introduced | Surplus sent to the grid. This dashboard displays it as a negative number: −2 kWh means 2 kWh were exported. |
| Energy saved | Total household energy minus grid imports. An estimate in kWh, not money saved or lower household use. Battery energy is included only when both charging and discharging data are available. It may have been stored in an earlier period or charged from the grid. |
SOC means state of charge: how full the battery is. 60% describes its charge level, not a power in W or an energy in kWh.
Zero is a measured absence of flow. Unavailable means data is missing or incomplete. Without battery history, household totals use the grid balance plus solar production. Energy saved is calculated from that total. Battery columns remain unavailable. Grid and solar readings are still needed.
Saved reports keep their recorded totals. If a total was left unavailable because battery data was missing, the display estimates it from the saved grid and solar values. The saved report itself is unchanged.
How the app decides when to switch on devices, such as a water heater, using solar power that would otherwise go to the grid.
The big picture
Every second, the app reads the house meter and makes the same decisions, always in the same order.
flowchart TD
meter(["Every second: read the house meter"]) --> forced["Forced devices run at their chosen level"]
forced --> battery{"Battery logic: may the other devices use the surplus?"}
battery -->|"No"| blocked["All other devices off"]
battery -->|"Yes"| deviceA["Device A logic (priority 1)"]
deviceA -->|"Surplus left"| deviceB["Device B logic (priority 2)"]
deviceB -->|"Surplus left"| more["And so on"]
classDef question fill:#ffffff,stroke:#9db5a5,color:#24392f
classDef step fill:#f0f5fa,stroke:#b9cbe0,color:#24392f
classDef battery fill:#f5effb,stroke:#cdb8e6,color:#4f2f78
classDef on fill:#e5f3e9,stroke:#3f936b,color:#1f5c40
classDef off fill:#fbeceb,stroke:#c46a64,color:#7d2e29
class meter step
class forced on
class battery battery
class deviceA,deviceB,more question
class blocked off
The battery is filled first. Devices may only use the power that the battery cannot take. This decision is the same for all devices that are not forced. Forcing is decided before it, so a forced device does not wait for the battery.
flowchart TD
reading(["New battery reading"]) --> available{"Are the battery and meter readings available?"}
available -->|"No"| blocked1["Devices off"]
available -->|"Yes"| discharging{"Is the battery discharging?"}
discharging -->|"Yes"| blocked2["Devices off"]
discharging -->|"No"| charging{"Is the battery charging?"}
charging -->|"Yes"| atMax{"Is it charging at its maximum power?"}
atMax -->|"Yes"| allowed1["Devices allowed"]
atMax -->|"No"| blocked3["Devices off"]
charging -->|"No"| full{"Is the battery full?"}
full -->|"Yes"| allowed2["Devices allowed"]
full -->|"No"| blocked4["Devices off"]
classDef question fill:#ffffff,stroke:#9db5a5,color:#24392f
classDef step fill:#f0f5fa,stroke:#b9cbe0,color:#24392f
classDef battery fill:#f5effb,stroke:#cdb8e6,color:#4f2f78
classDef on fill:#e5f3e9,stroke:#3f936b,color:#1f5c40
classDef off fill:#fbeceb,stroke:#c46a64,color:#7d2e29
class reading step
class available,discharging,charging,atMax,full question
class allowed1,allowed2 on
class blocked1,blocked2,blocked3,blocked4 off
The battery is dischargingDevices off
The battery is already helping the house. A device would only empty it faster.
The battery is charging at its maximum powerDevices allowed
The battery cannot take more. The extra power would go to the grid, so a device may use it.
The battery is charging below its maximum powerDevices off
All the surplus still fits in the battery, so it goes there.
The battery is full and neither charging nor dischargingDevices allowed
The battery cannot store more, so the surplus may go to the devices.
The battery is not full and not chargingDevices off
There is no surplus for the battery, so there is none for the devices either.
Readings are missing or too oldDevices off
When the app is not sure, it plays safe and keeps the devices off.
The calculation
Charging at maximum
Zendure reports how much power goes into the battery. If it reaches the maximum charging power of the battery, the battery is charging at maximum. The 50 W margin is there because measurements are never perfectly exact.
Full
The battery is full when its level reaches the full level, 100 % by default.
These checks only use what the battery reports. The devices play no part in them: the battery decision is made before the surplus is shared between the devices.
The maximum charging power and the full level are app settings. If no maximum charging power is set, the battery never counts as charging at maximum, so the devices wait until it is full.
In these examples, no device is forced, and the battery can charge at up to 800 W, so “at maximum” means at least 750 W.
The battery is at 45 % and charges at 350 W. No device is running.
350 W < 750 W → Devices off
The battery is at 70 % and charges at 800 W. The extra 600 W goes to the grid, so a device may use it.
800 W ≥ 750 W → Devices allowed
The sun drops and the battery starts discharging 200 W to help the house. The devices switch off, even though the battery is at 90 %.
Discharging 200 W → Devices off
The battery reaches 100 % and stops charging. It cannot store more, so the devices may use the surplus.
100% ≥ 100% → Devices allowed
Each device is handled in turn, in priority order. Every device follows the same steps. A device forced by hand runs at its chosen level without waiting for the battery. The others also need the battery logic to say yes. Each device asks the app what to do every few seconds and follows the answer.
Step 1
P meter is the house meter reading. It is negative when power goes to the grid. P devices is the power of the automatic devices already running. The surplus is the power that would go to the grid if all these devices were off.
Example: the meter shows −600 W while a water heater runs at 1,000 W.1,000 − (−600) = 1,600 W
flowchart TD
turn(["Device X: its turn in the priority order"]) --> contact{"Has the device contacted the app recently?"}
contact -->|"No"| blocked1["Off"]
contact -->|"Yes"| limit{"Target or energy limit reached?"}
limit -->|"Yes"| blocked2["Off"]
limit -->|"No"| forced{"Forced by hand?"}
forced -->|"Yes"| chosen["Runs at the chosen level, whatever the battery does"]
forced -->|"No"| battery{"Does the battery logic say yes?"}
battery -->|"No"| blocked3["Off"]
battery -->|"Yes"| kind{"What kind of device?"}
kind -->|"On/off"| enough{"Enough surplus?"}
enough -->|"Yes"| allowed["On"]
enough -->|"No"| blocked4["Off"]
kind -->|"Adjustable"| level["Level follows the surplus"]
allowed --> next(["Its power is taken from the surplus. The rest goes to the next device."])
level --> next
classDef question fill:#ffffff,stroke:#9db5a5,color:#24392f
classDef step fill:#f0f5fa,stroke:#b9cbe0,color:#24392f
classDef battery fill:#f5effb,stroke:#cdb8e6,color:#4f2f78
classDef on fill:#e5f3e9,stroke:#3f936b,color:#1f5c40
classDef off fill:#fbeceb,stroke:#c46a64,color:#7d2e29
class turn,next step
class battery battery
class contact,limit,forced,kind,enough question
class allowed,level,chosen on
class blocked1,blocked2,blocked3,blocked4 off
On/off devices
To switch on, the surplus must cover the whole power of the device. Once on, it stays on as long as the surplus stays above a small part of its power, for example 2 %. This stops it from switching on and off all the time.
P device is the power of the device. p is the small part, for example 2 %.
Adjustable devices
The device runs at a level between 0 % and 100 % that follows the surplus. A small part is kept aside, as for on/off devices. Some devices also have a top level that they never go above.
The level is kept between 0 % and 100 %.
Example
The surplus is 2,500 W. Device A has priority 1: it is on/off and uses 2,000 W. Device B has priority 2: it is adjustable up to 1,000 W, with 2 % kept aside (20 W).
The surplus covers its whole power, so it switches on. 500 W are left for the next device.
2,500 W > 2,000 W → On, 2,500 W − 2,000 W = 500 W
It only sees the 500 W that device A left. After keeping 20 W aside, it runs at 48 %.
(500 − 20) ÷ 1,000 = 48% → 480 W
Some devices send a measurement, such as the water temperature. When it goes above the target, the device stops. It can only start again once a waiting time, for example 15 minutes, has passed without reaching the target.
A device can have an energy limit over a period, for example 6 kWh over the last 4 hours. Once it is reached, the device stays off.
A device can be forced to a chosen level. It then ignores the surplus and the battery logic, but the limits above still apply. It also stops while the house meter cannot be read.
A device that has not contacted the app for a while is treated as off. Its power is no longer counted.