What you’ll take away
- Net grid energy is import minus export; zero net does not mean zero household use or zero exchange.
- In the declared battery-free AC account, household use equals solar generation plus import minus export.
- Equal generation and consumption totals can conceal different temporal overlap and directional grid flows.
- Self-consumption and self-sufficiency use different denominators, even when their direct-solar numerator matches.
- Keep boundary, interval, counter semantics and any battery terms beside a reconstructed household total.
Zero net grid energy can accompany an active household
A home energy display reports zero net grid use for two hours. That sounds quiet, but it could describe a house that imported two kilowatt-hours and exported two. The two amounts cancel in the subtraction; neither amount disappears from the record of what happened. Home Assistant's grid energy balance card explicitly defines its net value as imported energy minus exported energy. [4] A zero difference therefore answers a narrower question than “Did this home use electricity?”
Consider an invented home with solar generation and no battery. In the first hour it generates three kilowatt-hours, uses one and exports the other two. In the second hour it generates nothing and imports two kilowatt-hours to supply its use. Across both hours, the home generates three, consumes three, imports two and exports two. Net grid energy is zero. We will keep this original account separate from real meter readings and use it to uncover the information lost when a dashboard compresses several flows into one number.
Define interval grid import I and export E as separate nonnegative energy quantities. Net import is N=I−E, matching the documented Home Assistant grid-balance convention. [4] N=0 is compatible with I=E=0, but also with I=E=2 kWh or any other equal nonnegative pair. Subtraction alone cannot recover the two operands. It does not measure household consumption or establish that the grid connection was unused throughout the interval.
Our original two-hour account has no storage or other generator. In hour one, photovoltaic AC generation G=3 kWh and household consumption H=1 kWh, with I=0 and E=2 kWh. Hour two has G=0, H=2, I=2 and E=0 kWh. Summation gives G=H=3 and I=E=2 kWh, hence N=0. The system's net exchange and gross use are both valid quantities, but their meanings differ. Every numerical record here is stipulated; the examples analyze an accounting model rather than reproduce household, inverter or utility measurements.
Put generation, use and grid exchange on one boundary
To keep the account understandable, measure solar generation after conversion to household AC electricity. Count household use at that same AC boundary. All relevant consumption belongs in that use column, and no additional storage, generation or uncounted loss sits between our columns. SMA's Energy App documentation distinguishes household consumption from PV generation, grid-supplied power, grid feed-in and battery flows. [2] Those labels identify different parts of an account, even when an app draws them beside one another.
For our battery-free model, electricity arriving from solar and the grid must equal household use plus electricity leaving for the grid. In symbols, G + I = H + E. Rearranging gives household use H = G + I − E, or G plus net grid import. Do not put sunlight falling on the panels into G: that is an earlier energy boundary. Likewise, do not combine a live power reading with a two-hour energy total. Kilowatts describe a rate; kilowatt-hours describe accumulated energy over time. [1] The equation needs compatible quantities throughout.
Choose a common household AC accounting boundary. G is PV energy delivered to it, I is grid energy entering, E is grid energy leaving, and H includes the relevant AC loads. The model has no storage, other generation or additional unaccounted conversion or distribution loss. Its balance is G+I=H+E, giving H=G+N. These are model definitions and conservation bookkeeping, consistent with the separate flow categories described by SMA. [2]
All four energy quantities must cover the same interval and have the same unit. An analogous instantaneous equation can use powers, but it cannot mix a kW reading with an accumulated kWh value. The EIA distinguishes power from energy accumulated over duration. [1] PV here means AC output, not incident optical energy, a panel's rated maximum or battery stored energy. Losses outside that defined PV-output boundary are not added again to H. If the available instruments observe different boundaries, the missing conversion or consumption terms must first be identified; matching their unit labels alone does not make their readings compatible.
Keep import and export before subtracting them
A second invented example follows only grid power over one hour. For the first half-hour the home imports at a constant four kilowatts. For the second half-hour it exports at a constant four kilowatts. Each half-hour moves two kilowatt-hours in its own direction. The import column is two, the export column is two, and the signed net column is zero. Multiplying a constant power by its duration gives the corresponding energy. [1]
Now replace that entire hour with its average signed power: zero kilowatts. The replacement preserves the net energy but loses both directional totals. It would be wrong to treat that average as proof that no electricity crossed the grid boundary. To preserve import and export, accumulate the positive and negative portions separately before taking their difference. A net figure is useful when that difference is the question. It is insufficient when the question asks how much entered, how much left, or whether the connection was active during the period.
For the separate one-hour trace, n(t)=+4 kW for 0≤t<0.5 h and −4 kW for 0.5≤t≤1 h. Define I=∫max(n,0)dt and E=∫max(−n,0)dt at this single signed boundary. Then I=2 kWh, E=2 kWh and N=∫n dt=I−E=0. The signed mean power is N/(1 h)=0 kW. The constant interval products use the standard power–energy relation. [1][3]
Taking the positive part and averaging are different operations. Here max(mean(n),0)×1 h=0, whereas integrating max(n,0) gives 2 kWh. The corresponding export calculation loses the same amount if performed after averaging. This is exact information loss in the assigned trace, not a prediction of a particular meter's processing. Our model first defines one signed household boundary; actual multi-connection or differently aggregated records require their own conventions. A displayed net interval can preserve its signed integral exactly while still being insufficient to recover separate directional energy registers.
Equal generation and consumption totals do not establish overlap
Return to the two-hour home. In hour one, only one of the three generated kilowatt-hours serves the household directly. The other two leave. In hour two, household use is two kilowatt-hours but solar generation is zero. Direct solar use across the full period is therefore one kilowatt-hour. Taking the smaller of the two final totals—three generated and three consumed—would wrongly produce three as the directly used amount.
Compare a different invented history. Keep household use at one kilowatt-hour in hour one and two in hour two, but change solar generation to one and two respectively. Each hour's generation now exactly matches its use. The final generation and consumption totals remain three each, yet import and export are both zero and all three generated kilowatt-hours are used directly. The histories have identical G, H and N totals but different I, E and direct use. Solar production and its allocation are separate records in the documented dashboards. [2][4] Timing supplies information that end totals have discarded.
In the original battery-free history, local direct-use energy S is 1 kWh: one in the first hour and zero in the second. The interval totals satisfy G=H=3 kWh, but min(G,H)=3 kWh is only a possible upper bound on direct overlap, not its achieved value. For assigned constant powers within each hour, direct use is the integral of min(g,h), evaluated before temporal aggregation.
Construct an alternative with hour energies G=(1,2) and H=(1,2) kWh over the same two one-hour intervals. Its grid flows are zero throughout and S=3 kWh. Both histories have the same G, H and N, while their directional grid totals differ: (I,E)=(2,2) versus (0,0) kWh. Thus even adding both generation and consumption totals to a net total does not recover their temporal overlap. The documented separation of generation and distribution views provides relevant labels [2][4]; these two complete histories independently establish the inference limit without attributing an undisclosed algorithm to either product.
Direct solar use belongs in two accounts but is consumed once
Let S mean the solar energy used directly by the household in our battery-free model. Generated energy splits into direct use and export, so G = S + E. Household use splits into direct solar and import, so H = S + I. The same S appears in both accounts because it connects production with use. It is not two separate portions of electricity to add together.
For the original example, S = G − E = 3 − 2 = 1 kilowatt-hour. The household-side check gives S = H − I = 3 − 2 = 1 as well. Adding all solar generation to grid import would instead produce five kilowatt-hours and mistakenly include the two exported kilowatt-hours in household use. Home Assistant distinguishes energy consumed by the home from energy returned to the grid, while SMA separately labels feed-in and consumption. [2][4] Keep that exported column visible whenever you reconstruct a household total from generation and import.
Introduce S≥0 as direct PV-to-load energy under the single-boundary, no-storage assumptions. The production partition is G=S+E and the consumption partition is H=S+I. Consequently S=G−E=H−I and H=G+I−E. This partition relies on the stated flow model; it is not a generic identity for an installation with other generators, storage or a separately exported solar connection.
The original totals give S=1 kWh from either partition. G+I=5 kWh is total inflow to the modeled AC account, not household consumption: 2 kWh exits as export, leaving H=3 kWh. Counting S in both a production allocation and a consumption allocation is legitimate when each chart answers its own question. Adding those allocations would double-count the transfer. SMA's feed-in and household definitions and Home Assistant's energy distribution documentation distinguish these roles. [2][4] A useful reconstruction checks both partitions, preserves the export term and avoids confusing an inflow total with the final load quantity.
Self-consumption and self-sufficiency divide by different totals
SMA describes a self-consumption quota relative to PV generation and a self-sufficiency quota relative to total household consumption, with battery terms included in its relevant definitions. [2] To see the denominator difference cleanly, keep batteries absent and use a separate invented interval: solar generates four kilowatt-hours, the home uses six, two are exported and four imported. Direct solar use is two kilowatt-hours by either account.
Two divided by four gives 50 percent of generated solar used directly. Two divided by six gives about 33.3 percent of household use supplied directly by solar. Both percentages describe the same two kilowatt-hours, viewed from different sides. A larger percentage in one column does not make the other incorrect. If generation is zero, the direct-use share of generation has a zero denominator and needs an explicit convention; mathematics does not supply a percentage automatically. Nor does either ratio, by itself, establish a money saving: no price or billing rule has entered this energy account.
The inspected SMA definitions distinguish a quota normalized by PV generation from one normalized by total consumption, and specify different battery contributions. [2] Within our expressly battery-free model, define r_sc=S/G for G>0 and r_ss=S/H for H>0. The common numerator measures direct use, but the reference populations are different energy totals. These interval definitions do not assert that SMA averages its live displayed ratios in this manner.
Assign G=4, H=6, E=2 and I=4 kWh. The balance holds and S=2 kWh, giving r_sc=1/2 and r_ss=1/3. The first answers what fraction of generated PV served the household directly; the second answers what fraction of household use came directly from PV. When the relevant denominator is zero, the quotient is undefined unless a reporting convention is added. A ratio of period totals also differs from an unweighted average of instantaneous percentages. Keep the period, numerator and denominator beside the result rather than treating either quota as a universal independence, conversion-efficiency or financial metric.
Counter differences need matching start and end times
Suppose three valid energy counters are read at the same start and end of our two-hour period. The solar counter rises from 100 to 103 kilowatt-hours; the import counter from 50 to 52; and the export counter from 20 to 22. Their increases are three, two and two. Those are the quantities to put into H = G + I − E, giving three kilowatt-hours of household use.
Adding the final counter values instead gives 103 + 52 − 22 = 133. That is not the energy for these two hours; it retains older accumulated offsets. The subtraction works here because every counter is valid over the same interval and none resets. Home Assistant's FAQ discusses cumulative sensors and how separately timed resets can produce misleading combined statistics. [3] A missing sample, changed baseline or reset requires the record's own rules. It should not be silently treated as ordinary consumption or patched by choosing whichever total looks plausible.
Let cumulative readings at t₀ and t₁ be C_G=(100,103), C_I=(50,52) and C_E=(20,22) kWh. With no reset or discontinuity, the interval increments are ΔC_G=3, ΔC_I=2 and ΔC_E=2 kWh. Applying the energy balance to those increments gives H=3 kWh. Applying it to the terminal readings alone gives 133 kWh, which includes unremoved historical offsets rather than isolating [t₀,t₁].
The time endpoints and counter semantics are part of the input. Using one channel's last hour and another's whole day does not create a synchronized account merely because both values are in kWh. Home Assistant documents an additional failure mode when independently resetting sensors are first summed: an intermediate false value can enter its statistics. [3] Our example assumes continuous valid registers, so it needs no reset-reconstruction rule. For observed data, retain the original interval, gaps and documented reset handling before assessing the balance. This preserves a distinction between a calculated inconsistency and evidence of a physical load change.
Sparse power snapshots can miss both directions of exchange
Power snapshots and accumulated energy answer different questions. Home Assistant explains that energy reconstructed from a sparsely sampled power stream is an approximation. [3] Imagine a separate one-hour record with a zero-kilowatt grid reading at the start and end. One possible history stays at zero throughout. Another imports four kilowatts from minute fifteen to minute thirty, exports four from minute thirty to minute forty-five, and is zero for the remaining time. Both histories match those two snapshots.
The second history imports one kilowatt-hour and exports one. Its net energy is zero, just like the idle history. Even an accurate accumulated net-energy change would therefore fail to distinguish these particular histories. Separate valid directional energy totals could distinguish them. More graph points may help describe changes, but the question is also what the instrument accumulates before the app receives them. A smooth line drawn between two zero samples is a drawing rule; it is not evidence that no exchange occurred in between.
Take endpoint samples n(0)=n(1 h)=0. Trace A has n=0 throughout. Trace B has n=+4 kW on [0.25,0.5) h, n=−4 kW on [0.5,0.75) h and zero elsewhere. Both satisfy the observed endpoints, but B has I=E=1 kWh while A has I=E=0. Both also have the exact signed integral N=0. Thus these histories remain indistinguishable even if the endpoints are supplemented by an exact net-energy increment.
Sparse power integration and net aggregation lose different information. The Home Assistant FAQ explicitly identifies sampled integration as an approximation rather than access to a continuous power function. [3] Our construction additionally shows that perfect signed integration still cannot recover both directional integrals. A valid import register and a valid export register would retain the two respective amounts in this model; a net-only register would not. This statement describes the required information, not the resolution, accuracy or implementation of an unspecified meter. Preserve the quantity accumulated internally before interpreting the visual density of the chart.
A battery creates additional terms in the household account
The simple equation changes when a battery joins the boundary. Let C be AC energy sent into its charging system and D be AC energy supplied back from its discharge system. Household use becomes H = G + I − E − C + D. Charging takes energy away from immediate household loads; discharge supplies some of their input. SMA lists charging and discharge separately, and its quota definitions include battery contributions. [2]
For a new one-hour example, assign three kilowatt-hours of solar generation, no grid import, half a kilowatt-hour of export, one kilowatt-hour into battery charging and no discharge. Household use is 3 − 0.5 − 1 = 1.5 kilowatt-hours. Omitting charging would falsely give 2.5. The one kilowatt-hour here is measured at the AC charging input; it does not establish the increase in stored battery energy. That would require the conversion and storage account too. Keeping C and D visible also prevents transferring our earlier battery-free percentage formulas to a different system without checking their definitions.
Extend the common AC balance to G+I+D=H+E+C, where C and D are nonnegative energy quantities at the battery system's AC charging and discharge interfaces. This yields H=G+N−C+D. The battery is now an additional sink and source relative to household loads. The inspected SMA documentation names these flows and includes battery-specific terms in its respective quota definitions. [2]
Choose G=3, I=0, E=0.5, C=1 and D=0 kWh over a new interval. The resulting H=1.5 kWh differs from the battery-omitting result G+N=2.5 kWh. This does not imply that stored energy rose by 1 kWh: C is an AC-boundary input and internal conversion, auxiliaries or storage loss would belong in a separately defined battery balance. Likewise, D is delivered AC output, not an unqualified stored-energy decrement. The extension identifies missing terms without assigning an efficiency, storage chemistry or control policy. It also explains why direct-use definitions require revision when charging can absorb production that is not consumed immediately by household loads.
A balance residual is a question to investigate, not a diagnosis
When all the inputs are independently available, a balance check can expose a mismatch. In the battery-free model, calculate R = G + I − E − H. Our original totals give 3 + 2 − 2 − 3 = 0 kilowatt-hours. If a separate household-use entry instead says four, the same check gives minus one. That tells us the four stated numbers do not close the chosen account.
It does not identify which number is wrong, or prove that a meter failed. Perhaps one record covers a different interval, one source is omitted, or the household figure uses another boundary. Home Assistant documents a separate solar export connection as a distinct configuration, illustrating why connection scope matters. [3] A battery term would change our own equation as well. Keep the residual with the original readings and definitions. Replacing a negative result with zero would hide the mismatch; it would not supply the missing explanation or independently validate the remaining numbers.
Define the battery-free residual R=G+I−E−H from independently supplied interval quantities. The original tuple (3,2,2,3) kWh yields R=0. Replacing H with 4 kWh produces R=−1 kWh. In the exact stipulated model, the altered tuple is inconsistent. For observed values, however, a residual combines instrument uncertainty, synchronization and model-boundary questions; it does not isolate one error source.
A separately exported solar connection, which Home Assistant explicitly treats as a distinct arrangement, is one reason not to assume every reported PV quantity enters the household account. [3] Storage and omitted conversion terms create others. A zero residual is also not an independent accuracy certificate: if H was itself calculated from G+I−E, the check merely repeats its defining arithmetic. The useful record identifies independently measured channels, derived channels and all included boundaries. This avoids both overdiagnosing a nonzero residual and overstating agreement that was built into the dashboard's own calculation.
Read the quantity, direction and interval before reading the score
A useful home-energy record keeps more than the headline total. Start with the quantity and unit: current power, interval energy, a cumulative register or a percentage. Then identify its boundary: household use, solar AC output, grid import, grid export or a battery interface. Finally keep the start and end times and the rule used to combine those inputs. These distinctions match the separate power, energy and flow categories in the primary documentation. [1][2][3][4]
For the original two hours, the complete account is generation three, household use three, import two, export two and direct solar use one kilowatt-hour. Net grid energy zero is an accurate summary of one relationship within that account. It is not a replacement for the account. The most informative next question is therefore specific: are we missing generation, directional exchange, timing or a storage term? Answering that question makes a dashboard easier to interpret without turning its energy display into an unsupported claim about cost, equipment condition or total household independence.
Preserve a compact measurement specification with each result: physical quantity and unit, sign convention, spatial boundary, interval, aggregation rule and evidence origin. Distinguish a measured register from a derived household total, and a ratio of interval energies from an average of displayed ratios. The inspected EIA, SMA and Home Assistant pages support those underlying unit and category distinctions. [1][2][3][4] They do not establish the correctness of a particular household's configuration or its measurement uncertainty.
The original ledger is (G,H,I,E,S,N)=(3,3,2,2,1,0) kWh. Each component answers a different question, while the identities G=S+E, H=S+I and N=I−E connect them. Removing columns makes some inferences impossible even when the remaining numbers are exact. This is why better interpretation begins by locating the missing variable or discarded time relationship. Retaining the full account supports a defined energy statement; billing treatment, appliance diagnosis and storage performance would require additional evidence and their own appropriately bounded questions.
Sources & further reading
Explore the references behind this guide. External pages may change after our review.
- Measuring electricity - U.S. Energy Information Administration (EIA)U.S. Energy Information Administration · Accessed 7 Nov 2026
- SMA Energy App | SMA SolarSMA Solar Technology · Accessed 7 Nov 2026
- Frequently Asked Questions about home energy management - Home AssistantHome Assistant · Accessed 7 Nov 2026
- Energy cards - Home AssistantHome Assistant · Accessed 7 Nov 2026
Article updated 7 Nov 2026.
Found something we should revisit?
Good explanations get better with thoughtful feedback.