fix(manager): isolate V4 active import sources from legacy counter

This commit is contained in:
ENELIX Agent
2026-10-01 16:56:39 +00:00
parent 640fe53720
commit 12174a59b4
9 changed files with 356 additions and 11 deletions
@@ -0,0 +1,66 @@
# V4: separate Wirkenergie-Bezugsquelle (Entwicklung, nicht live)
## Lihrenmoos - Befund und geplante Zuordnung
User hat die erfolgreiche Aktivierung der T2-Zaehlerarchivierung fuer 26620
im Archiv 16207 bestaetigt. Der exakte Beginn einer lueckenlosen Messhistorie
ist daraus NICHT nachgewiesen; keine historische Null setzen.
Die vorbereitete separate V4-Konfiguration fuer diese Anlage lautet:
```json
[
{"VariableID":59607,"ElternID":11490,"Ident":"Energy_0","FaktorZuKWh":1.0,"Messgroesse":"WirkenergieBezug"},
{"VariableID":26620,"ElternID":11490,"Ident":"Energy_1","FaktorZuKWh":1.0,"Messgroesse":"WirkenergieBezug"}
]
```
Property: NetzfahrplanV4BezugszaehlerQuellen. Diese Datei setzt KEINE Property.
IDs duerfen nicht fuer andere Anlagen kopiert werden. Zuordnung ist durch
Variablenstruktur, Standardtelegramm und Leistungs-/Energiedifferenz stark
plausibilisiert; Abgleich mit Rohtelegramm/Zaehleranzeige steht noch aus.
53476, dessen gespeicherte Historie, die alte Manager-Property
NetzbezugEnergieVariableID und alle vorhandenen Spiegelereignisse bleiben
unveraendert. V4 liest seine eigenen Quellen, erzeugt keine Spruenge in alten
Summenzaehlern und kann keine Blindenergie durch einen Faktor korrigieren.
## Vertrag
Jede Quelle hat eine ausdrueckliche Messgroesse und Umrechnung nach kWh.
Variable, Elterninstanz und Ident werden bei jedem Lesen geprueft. Ein
fehlender, veralteter, ungueltiger oder zeitlich unpassender Teilwert verwirft
die Summe. Ein aktueller echter Nullwert ist gueltig. Zwei aufeinanderfolgende
Lesevorgaenge reduzieren das Risiko einer gemischten Momentaufnahme; sie sind
kein atomarer Zugriff auf das physische Zaehlertelegramm.
Die Summe wird unter bezugszaehler in der lokalen V4-Diagnose ausgegeben, mit
den Beobachtungszeitpunkten jedes Teilregisters. VariableUpdated ist ein
Symcon-Aktualisierungszeitpunkt, kein Beweis einer exakten Abrechnungsgrenze.
Die Diagnose hat deshalb billingEvidence=false und historyComplete=false.
Eine falsche Messgroessen-Deklaration kann ohne Rohtelegramm nicht automatisch
erkannt werden; Installationspruefung bleibt erforderlich.
Ein aus Quell-IDs, Eltern-ID, Idents und Umrechnungsfaktoren gebildeter
stabiler SHA256-Schluessel bindet die spaeteren Messnachweise an genau diese
Quelle. Die Reihenfolge von T1/T2 aendert den Schluessel nicht. Quell-/Faktor-
wechsel dagegen invalidieren alte Nachweise. symcon:53476 wird nicht mehr
als V4-Messnachweis akzeptiert. Der Schluessel beweist Zuordnung, nicht den
Wahrheitsgehalt eines gelieferten Monatspeaks.
## Noch offen
Der Erzeuger fuer exakte Viertelstundenenergie und den vollstaendigen
Monatspeak ist weiterhin nicht implementiert. Keine Ableitung eines bereits
bezahlten Monatspeaks aus einer Managergrenze oder unvollstaendiger Historie.
Auch 15 Minuten neuer Aufzeichnung beweisen nicht den bisherigen Monatspeak.
Die vorbereitete native Summe ist noch nicht im laufenden Symcon installiert.
V4 bleibt ohne belastbare Nachweise in awaiting_inputs.
## Nachweis dieses Schritts
44 synthetische Offline-Szenarien mit PHP CLI 8.4.23 erfolgreich:
20 Quellen-/Summenpruefungen, 24 native Betriebsdatenkonvertierungen.
Die vom Server exportierten Betriebsdaten-, Trait- und Fixture-Dateien wurden
vor dem Test per SHA256 verglichen. Keine Symcon-Laufzeitpruefung und keine
neue Zielcontainer-/vollstaendige PHPUnit-Pruefung in diesem Schritt.