fix(energy): report real kWh in the cost Summary instead of mislabelled money
The Summary cards labelled `metered_import` / `metered_export` as "(kWh)", but both fields are monetary totals (Σ import_cost / Σ export_revenue). Today's page therefore showed "Import 1.339 kWh" when the meter had actually imported 4.188 kWh — the 1.339 was EUR. Cross-checked against the DSMR cumulative registers and Home Assistant: our energy figures were correct all along, only the label was wrong. summarize() now also aggregates the metered energy, reusing the already-fetched non-degraded rows so no extra query is issued: metered_import_kwh = Σ (d1_kwh + d2_kwh) metered_export_kwh = Σ (r1_kwh + r2_kwh) The Import/Export cards show kWh as the headline figure and keep the monetary equivalent as a sub-line, so the split between energy cost and standing charges/credits behind total_payable stays visible. The `_kwh` suffix is now the only thing separating energy from money in this payload, so the docstrings on both summarize() and SummaryResponse call that out explicitly. app/integrations/expose.py reads only the money keys, so the HA outbound sensors are unaffected by the additive fields.
This commit is contained in:
Vendored
+16
-4
@@ -2220,7 +2220,9 @@ export interface components {
|
||||
* SummaryResponse
|
||||
* @description Response for GET /api/energy/costs/summary.
|
||||
*
|
||||
* All monetary values are in ``currency``.
|
||||
* Monetary values are in ``currency``; the ``*_kwh`` fields are energy totals
|
||||
* in kWh. ``metered_import``/``metered_export`` are **money**, not energy —
|
||||
* only the ``_kwh``-suffixed fields carry kWh.
|
||||
*
|
||||
* ``total_payable = metered_net + fixed_costs − credits``
|
||||
*/
|
||||
@@ -2229,19 +2231,29 @@ export interface components {
|
||||
currency: string;
|
||||
/**
|
||||
* Metered Import
|
||||
* @description Σ import_cost for non-degraded periods.
|
||||
* @description Σ import_cost for non-degraded periods (money, in `currency`).
|
||||
*/
|
||||
metered_import: number;
|
||||
/**
|
||||
* Metered Export
|
||||
* @description Σ export_revenue for non-degraded periods.
|
||||
* @description Σ export_revenue for non-degraded periods (money, in `currency`).
|
||||
*/
|
||||
metered_export: number;
|
||||
/**
|
||||
* Metered Net
|
||||
* @description Σ net_cost for non-degraded periods.
|
||||
* @description Σ net_cost for non-degraded periods (money, in `currency`).
|
||||
*/
|
||||
metered_net: number;
|
||||
/**
|
||||
* Metered Import Kwh
|
||||
* @description Σ (d1_kwh + d2_kwh) for non-degraded periods (energy imported, kWh).
|
||||
*/
|
||||
metered_import_kwh: number;
|
||||
/**
|
||||
* Metered Export Kwh
|
||||
* @description Σ (r1_kwh + r2_kwh) for non-degraded periods (energy exported, kWh).
|
||||
*/
|
||||
metered_export_kwh: number;
|
||||
/**
|
||||
* Fixed Costs
|
||||
* @description Standing charges (network_fee + management_fee) apportioned over the interval.
|
||||
|
||||
Reference in New Issue
Block a user