feat(forecast): integrate full forecast charts and complete SDL visualization
Tests / test (push) Failing after 52s

This commit is contained in:
dh
2026-10-06 17:40:45 +00:00
parent 5687596799
commit 372b997876
30 changed files with 4377 additions and 53 deletions
+98
View File
@@ -0,0 +1,98 @@
# Forecast- und SDL-Integration, 6. Oktober 2026
## Auftrag und Umfang
Daniel Haefliger hat die Weiterfuehrung passender unveroeffentlichter Arbeiten,
die Integration der Prognosebedienung, SDL-Anzeigen und die Veroeffentlichung
auf develop und beta ausdruecklich beauftragt. main bleibt unveraendert.
- Manager: Prognose / Forecast ist der gemeinsame Bedienort. Die bisherigen
separaten Diagnosevariablen sind umbenannt und in der Visualisierung verborgen.
- Batterie: die bereits integrierte Bereinigung des separaten V4-Formulars bleibt
erhalten. Bestehende Idents, APIs und gespeicherte Freigaben werden aus
Kompatibilitaetsgruenden nicht umbenannt oder geloescht.
- Portal: derselbe Planner erscheint im vorhandenen Prognosebereich. Die exakte
ausgewaehlte Eingangsprognose wird als forecastPoints eingefroren, unabhaengig
vom durch publizierte Preise begrenzten Optimierungshorizont. Netzplan,
Batteriestellwerte und Kosten werden nicht kuenstlich verlaengert.
- Diagramme zeigen PV, Last, SDL-Szenario, Netz, Batterie, SOC, Preise und Kosten.
Fehlende Werte bleiben Luecken. Prognosewerte sind keine gemessenen Erfolge.
- Utils kapselt die generische Darstellung nicht bestimmbarer Energieanteile.
EMS entscheidet bei SDL-Bilanzierung, dass die Haus-PV-Anteile nicht eindeutig
aus dem SDL-haltigen Netzbezug hergeleitet werden koennen. Zaehler bleiben sichtbar.
## Migration und Erhaltung
Utils vor EMS aktualisieren. Bei alten Utils blendet EMS den eigenen Energy Pie
bei aktiver SDL aus und protokolliert den Aktualisierungsbedarf, statt falsche
Prozentwerte anzuzeigen oder die Manager-Regelung zu stoppen.
Bestehende Energy-Pie-Konfiguration, individuelle Flow-Knoten und Nicht-SDL-
Diagrammreihen bleiben erhalten. Visualisierungsschalter nicht aus-/einschalten:
das wuerde teilweise eine Neuerzeugung ausloesen. Historien, Energiezaehler,
Mess-Outbox und Betriebsfreigaben werden nicht zurueckgesetzt.
Die Testanlage wurde mit gesicherten, hashgeprueften Quelldateien aktualisiert.
Manager 17004 verwendet SDL-Leistung 25085 (W, Faktor +1) und SOC 23879 (%).
Diese Werte gehoeren zur vorhandenen virtuellen EV/SDL-Aufteilung und sind kein
unabhaengiger physischer SDL-Messnachweis. Der einzelne Batterie-Flow-Knoten wurde
von Proxy 19274 auf 42728 umgestellt; alle anderen Felder wurden erhalten.
Flow 57933 enthaelt zusaetzlich SDL. Leistungsdiagramm 53754 wuchs von vier auf
sechs Reihen, Energiediagramm 19668 von sechs auf neun. Keine Alt-Reihe entfernt.
Private Rueckfallsicherung auf der Anlage:
`/var/lib/symcon/backup/enelix-forecast-sdl-20261006T171851Z`.
Sie enthaelt Konfigurationen und darf nicht in Git, Logs oder Chat kopiert werden.
Der temporaere Beobachtungshook 12555 wurde wiederhergestellt.
## Pruefungen
- EMS PHPUnit: 360 Tests, 1771 Assertions, erfolgreich.
- Utils PHPUnit: 58 Tests, 350 Assertions, erfolgreich.
- Backend: 312 Tests, erfolgreich, isolierter aktueller develop-Stand mit Patch.
- Formular: 71 Pruefungen; RequestAction: 26; Regeltests: 96; Empfaenger: 32.
- Chart- und Energy-Pie-JavaScript: 14 Tests, erfolgreich.
- Portal-Mount: acht Tests, erfolgreich, inklusive Anlagen-/Ansichtswechsel,
Abmeldung, verspaeteter Antworten und unabhaengiger Fehlerbehandlung.
- Echter Chromium: Desktop 1280 px, Mobil 390 und 320 px; Kurven, Auswahl,
Maus/Tastatur, Lebenszyklus, CSS-Abgrenzung und Screenshots erfolgreich.
- Testanlage nach Installation: Manager, Batterie, Energy Pie und Flow Status 102;
SDL-Quellen und erhaltene Diagrammreihen kontrolliert.
## Offene Betriebsschritte, keine Produktionsfreigabe
Die Nachkontrolle 2026-10-06 17:26:21 UTC zeigte den bekannten Symcon-Timerfehler
nach Module Control Reload: alter Batterie-Timer 70 blieb laufend, neue
Melde-/Rueckmeldetimer hatten noch keinen Lauf. Ein kontrollierter Symcon-Neustart
und danach erneute Pruefung sind erforderlich. Status 102 allein ist kein Beleg
fuer funktionierende Timer. Die neue Netzfahrplansteuerung 46716 bleibt false.
Portal-Assets wurden ohne Containerneustart aktualisiert. Das Backend-Image ist
noch nicht aktualisiert: Docker-Socketzugriff fuer agent ist nicht erlaubt.
Vorbereitete, erfolgreich vorgepruefte Administratoruebergabe auf enelix-services:
```sh
sudo python3 /srv/agent/forecast-completion-20261006/deploy_forecast_backend.py --apply
```
Das Skript prueft zwei exakte Quelldateien, sichert Datenbank und Quellen,
baut/testet das Image vor dem Austausch und bewahrt die bisherige Image-ID fuer
Rollback. Keine Socketrechte werden geaendert. Keine Stellfreigabe wird erteilt.
Nach erfolgreicher Installation Neuberechnung und neue forecastPoints pruefen.
Bis dahin kennzeichnet die Anzeige alte Plaene und zeigt keine erfundenen Werte.
Unbefristeter Betrieb ist NICHT freigegeben: Nachweis eines geraeteseitigen
Ausfallschutzes, physischer Soll-/Ist-Nachlauf, sichere Null-/Stop-Reaktion und
Fortfuehrung ueber mehrere Planerneuerungen fehlen weiterhin. Die bestehende
befristete Zustimmung bis 7. Oktober 2026, 17:38:07 Europe/Zurich wird nicht
verlaengert. EV-Konto bleibt 161.44 kWh / 39 kW; physische Gesamtkapazitaet und
virtuelle SDL-Energie werden nicht als zusaetzliche EV-Energie angesetzt.
## Pull-Request-Text
Forecast-Bedienung im Manager konsolidieren, vollstaendige gespeicherte
Eingangsprognose im bestehenden Portal einbetten und SDL-Anzeigen vervollstaendigen.
Individuelle Visualisierungen und kompatible Kennungen bleiben bestehen;
nicht bestimmbare Energieanteile werden ehrlich als unbekannt dargestellt.
Automatisierte Tests und responsive Browserpruefung erfolgreich. Zwei explizite
Betriebsblocker bleiben dokumentiert; kein unbegrenzter Anlagenbetrieb aktiviert.