pub struct MeterInput {Show 13 fields
pub arbeitsmenge_kwh: Decimal,
pub arbeitsmenge_ht_kwh: Option<Decimal>,
pub arbeitsmenge_nt_kwh: Option<Decimal>,
pub spitzenleistung_kw: Option<Decimal>,
pub steuerung_stunden: Option<Decimal>,
pub zaehlernummer: Option<String>,
pub zaehlerstand_von: Option<Decimal>,
pub zaehlerstand_bis: Option<Decimal>,
pub metering_mode: MeteringMode,
pub ablesungsart: Ablesungsart,
pub is_estimated: bool,
pub zaehler_replaced: bool,
pub coverage_pct: Option<Decimal>,
}Expand description
Electricity meter data for one billing period.
Fields§
§arbeitsmenge_kwh: DecimalTotal energy in kWh (Arbeitsmenge).
arbeitsmenge_ht_kwh: Option<Decimal>High-tariff energy in kWh (HT, for Zweitarif). None = single tariff.
arbeitsmenge_nt_kwh: Option<Decimal>Low-tariff energy in kWh (NT, for Zweitarif). None = single tariff.
spitzenleistung_kw: Option<Decimal>Peak demand in kW (Spitzenleistung, § 12 StromNZV).
steuerung_stunden: Option<Decimal>§14a EnWG: hours the controllable device was under NB management.
zaehlernummer: Option<String>Zählernummer (§41 EnWG — mandatory on electricity invoices).
When set, appears as an informational position on the invoice.
Overrides BillingContext::zaehler_id for this specific meter.
zaehlerstand_von: Option<Decimal>Zählerstand at the start of the billing period.
§41 EnWG: billing invoices must show the meter reading at period start.
zaehlerstand_bis: Option<Decimal>Zählerstand at the end of the billing period.
§41 EnWG: billing invoices must show the meter reading at period end.
metering_mode: MeteringModeMetering mode — SLP, RLM, or iMSys (Smart Meter).
Used to validate tariff compatibility (§41a requires Imsys) and to
label estimated readings correctly on the invoice.
ablesungsart: Ablesungsart§ 40 Abs. 2 Nr. 6 EnWG — how the reading was obtained.
See also MeterInput::billable_kwh, which is what decides whether
there is any consumption to price.
Stated on the invoice beside the readings themselves. Rechnerisch
implies Self::is_estimated; the two are kept separate because a
caller that knows only “this is an estimate” can still say so.
is_estimated: booltrue when the consumption figure is an estimate rather than a reading —
either a § 40a Abs. 2 EnWG Verbrauchsschätzung or an Ersatzwert the
Messstellenbetreiber formed and passed on under § 40a Abs. 1 Satz 1
Nr. 1 EnWG.
§ 40a Abs. 2 Satz 3 EnWG has the invoice state the estimate, the ground that makes it admissible and the factors behind it „unter ausdrücklichem und optisch besonders hervorgehobenem Hinweis“.
zaehler_replaced: booltrue when the meter was replaced during this billing period (Zählerwechsel).
When set, zaehlerstand_von / zaehlerstand_bis may relate to different
meter serial numbers. The invoice must note the meter exchange.
coverage_pct: Option<Decimal>Share of the billing period covered by billable readings, 0–100.
A sum over the readings that did arrive says nothing about the ones that
did not: a month delivered up to the 3rd sums to a plausible Arbeitsmenge
and bills as a complete month. Below 100 the invoice rests in part on a
§ 40a Abs. 2 EnWG Verbrauchsschätzung, which the document has to say so
prominently — the MENGE_UNVOLLSTAENDIG finding carries that.
None when the source states no coverage.
Implementations§
Source§impl MeterInput
impl MeterInput
Sourcepub fn billable_kwh(&self) -> Decimal
pub fn billable_kwh(&self) -> Decimal
The consumption there is to price, in kWh.
arbeitsmenge_kwh where it is stated, otherwise the HT/NT registers.
A Zweitarif caller may legitimately supply only the split — the total is
its sum, not an independent fact — and gating the whole Arbeitspreis
block on the total alone billed such a customer nothing for their
electricity while still charging them the Stromsteuer.
Trait Implementations§
Source§impl Clone for MeterInput
impl Clone for MeterInput
Source§fn clone(&self) -> MeterInput
fn clone(&self) -> MeterInput
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more