Feature: Zählpunkt-Konzept einführen #1

Open
opened 2026-10-19 21:21:26 +02:00 by kamlkatze · 0 comments
Owner

Kontext:
Aktuell hängen Meter und TariffPeriod unabhängig voneinander. Beim Zählerwechsel entsteht ein neuer Meter-Eintrag, der über replaces_meter_id mit dem alten verkettet wird. Tarife bleiben dabei pro meter_id hinterlegt — bei jedem Zählerwechsel muss der Tarif technisch neu zugeordnet werden, obwohl sich am eigentlichen Vertrag/Anschluss nichts ändert.
Idee:
Ein "Zählpunkt" (MeteringPoint) bildet die physikalische/vertragliche Konstante ab, die sich über Zählerwechsel hinweg nicht ändert (z.B. "Gasanschluss Haus", "Stromanschluss Haus", "Wasseranschluss Garten"). Ein oder mehrere Meter (auch zeitlich nacheinander durch Wechsel) gehören zu genau einem MeteringPoint.
Vorteile:

Tarife werden am MeteringPoint hinterlegt statt am einzelnen Meter — sie überleben Zählerwechsel automatisch, ohne dass man sie neu zuordnen muss.
Saubere fachliche Trennung: "Wie viel habe ich verbraucht/produziert" (Meter/Reading) vs. "Was kostet das" (Tarif am Zählpunkt).
Berücksichtigt auch den Sonderfall Strom, wo ein physischer Zähler mehrere Messgrößen liefert (Bezug + Einspeisung), aber trotzdem ein Zählpunkt ist.

Betroffene Bereiche (grobe Einschätzung, Aufwand mittel-groß):

Neues Modell MeteringPoint (id, label, Verknüpfung zu Metern)
Meter.metering_point_id (statt/zusätzlich zur direkten Tarif-Zuordnung)
TariffPeriod.metering_point_id statt meter_id
Migration für bestehende Daten (jeder existierende Meter bekommt automatisch einen 1:1-Zählpunkt)
Anpassung aller Cost-Endpoints (/api/costs/, /api/costs/wastewater/, /api/costs/yearly-projection), die aktuell Tarife über meter_id nachschlagen
Frontend: Tarifverwaltung müsste auf Zählpunkt statt Meter umgestellt werden

Abgrenzung: Dieses Feature ist unabhängig vom Zählerwechsel-Feature (replaces_meter_id-Kette) und kann separat danach umgesetzt werden.

Kontext: Aktuell hängen Meter und TariffPeriod unabhängig voneinander. Beim Zählerwechsel entsteht ein neuer Meter-Eintrag, der über replaces_meter_id mit dem alten verkettet wird. Tarife bleiben dabei pro meter_id hinterlegt — bei jedem Zählerwechsel muss der Tarif technisch neu zugeordnet werden, obwohl sich am eigentlichen Vertrag/Anschluss nichts ändert. Idee: Ein "Zählpunkt" (MeteringPoint) bildet die physikalische/vertragliche Konstante ab, die sich über Zählerwechsel hinweg nicht ändert (z.B. "Gasanschluss Haus", "Stromanschluss Haus", "Wasseranschluss Garten"). Ein oder mehrere Meter (auch zeitlich nacheinander durch Wechsel) gehören zu genau einem MeteringPoint. Vorteile: Tarife werden am MeteringPoint hinterlegt statt am einzelnen Meter — sie überleben Zählerwechsel automatisch, ohne dass man sie neu zuordnen muss. Saubere fachliche Trennung: "Wie viel habe ich verbraucht/produziert" (Meter/Reading) vs. "Was kostet das" (Tarif am Zählpunkt). Berücksichtigt auch den Sonderfall Strom, wo ein physischer Zähler mehrere Messgrößen liefert (Bezug + Einspeisung), aber trotzdem ein Zählpunkt ist. Betroffene Bereiche (grobe Einschätzung, Aufwand mittel-groß): Neues Modell MeteringPoint (id, label, Verknüpfung zu Metern) Meter.metering_point_id (statt/zusätzlich zur direkten Tarif-Zuordnung) TariffPeriod.metering_point_id statt meter_id Migration für bestehende Daten (jeder existierende Meter bekommt automatisch einen 1:1-Zählpunkt) Anpassung aller Cost-Endpoints (/api/costs/, /api/costs/wastewater/, /api/costs/yearly-projection), die aktuell Tarife über meter_id nachschlagen Frontend: Tarifverwaltung müsste auf Zählpunkt statt Meter umgestellt werden Abgrenzung: Dieses Feature ist unabhängig vom Zählerwechsel-Feature (replaces_meter_id-Kette) und kann separat danach umgesetzt werden.
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
kamlkatze/home-energy-usage-tracker#1
No description provided.