Files
Enelix-EMS/AGENTS.md
T
dh 9fbc52ee47
Tests / test (push) Failing after 49s
feat(manager): integrate forecast controls and merge V4 development
Merge the V4 development history with current manager, SDL and setpoint fixes. Retain guarded trial behavior and consolidate controls in Prognose / Forecast. Exclude the unverified accounting-evidence change; no runtime deployment or new dispatch permission.

Validated: 357 PHPUnit tests / 1758 assertions, 150 PHP syntax checks, 310 backend tests, 16 portal tests and isolated UI/receiver checks. develop and beta publication explicitly approved by Daniel Haefliger.
2026-10-06 14:22:16 +00:00

62 lines
5.5 KiB
Markdown

# Agenten-Anweisungen für Enelix-EMS
## Aktueller V4-Fortsetzungseinstieg: 06.10.2026
Neuester Quellstand: Bedienintegration und Zusammenfuehrung sind in
docs/prognose-bedienintegration.md und im obersten Abschnitt der folgenden
Uebergabe beschrieben. Daniel hat Commit/Push auf develop und beta ausdruecklich
freigegeben; dies ist kein Anlagenrollout und keine neue Stellfreigabe.
Die vollstaendige Uebergabe liegt auf **enelix-services / Server 89** unter
`/srv/agent/repos/Enelix-EMS/docs/NETPLAN_V4_AGENT_HANDOFF.md`.
Vor Fortsetzung zuerst den neuesten datierten Abschnitt lesen. Die Datei ist
im integrierten Repository versioniert; alte Serverkopien koennen abweichen.
Letzter hier belegter Anlagenzustand: **06.10.2026, 12:01:11 UTC /
14:01:11 Europe/Zurich**, aus `/srv/agent/v4-recovery-20261006/finished.json`
auf **iot-symcon01**. Dies ist keine neue Live-Abnahme:
V4 und alter Netzfahrplan AUS, Batterie 44234 gestoppt, EV-Auftrag 19651 = 0 W.
Der unabhaengige SDL-Auftrag blieb unangetastet.
Rueckmelde-/Cache-/Empfangskorrekturen sind installiert; **offen ist die
instanzbezogene Batterietimerblockade (LastRun=0)**. Kein nachgewiesenes
physisches Tracking, kein >90-s-Dauerbetrieb und kein automatischer
Batterie-Watchdog-Lauf. Alte Installer nicht erneut ausfuehren und keine
externen Tick-Hooks als Umgehung einsetzen. Zuerst Timerursache beheben und
automatische Ausfuehrung belegen, danach nur innerhalb gueltiger Freigabe testen.
EV bleibt **161.44 kWh / 39 kW**. Die bestehende befristete Testfreigabe endet
**07.10.2026, 17:38:07 Europe/Zurich**; diese Notiz erneuert oder verlaengert
sie nicht. Wegfall des zusaetzlichen +/-5-kW-Limits hebt Geraete-, SOC-,
Netzgrenzen und die dokumentierten Grenzen der Testanlagen-Ausnahme nicht auf.
Kein Aktivstart oder Dienstneustart aus der Bitte um Kontext-Sicherung ableiten.
Aeltere V4-Statusangaben und damalige "naechste Schritte" weiter unten sind
historisch, soweit die neuere Uebergabe sie ersetzt. Sonstige Projekt- und
Sicherheitsregeln sowie separate Manager-Leistungsverteilungsnotizen bleiben
unveraendert. Aktuellen Zustand und Freigaben vor operativen Arbeiten erneut
pruefen. Ein neuer Agent muss diese Quellen lesen; kein automatischer Chattransfer.
## Netzfahrplan V4: zuerst den Gesprächskontext übernehmen
Bei Aufgaben zu Netzfahrplan, Prognosen, V4, Batterieoptimierung oder Lihrenmoos **vor Änderungen** die vollständige Übergabe lesen:
**[`docs/NETPLAN_V4_AGENT_HANDOFF.md`](docs/NETPLAN_V4_AGENT_HANDOFF.md)**
Sie enthält Daniels Anforderungen und Korrekturen, installierte versus nur entwickelte Komponenten, Quellen-/Instanzzuordnung, bekannte behobene Fehler, Grenzen der Testfreigabe und den nächsten konkreten Arbeitsschritt. Die Runtime-Berichte stammen zuletzt vom 03.10.2026; Zeitpunkt und aktuellen Zustand prüfen. Alte Entwicklungsdokumente können noch „nicht installiert“ sagen, obwohl ein jüngerer Installationsbericht den Abschluss belegt.
Kurzstand bei Erstellung dieser Anweisung: Unified RC1 und korrigierter Rückmelde-/begrenzter Testpfad installiert; Versandproblem behoben. Nächste offene Umsetzung sind bestätigte Geräte-Lesezeitpunkte statt pauschaler Verwendung von `VariableUpdated` (`feedback_source_skew`). EV **161.44 kWh / 39 kW**, nicht die zurückgenommenen 160/30. Dauerproduktion ist noch nicht fertig; keine automatische Stellfreigabe.
## Arbeits- und Git-Regeln
- Vor Arbeit Host-`/srv/agent/AGENT_CONTEXT.md`, Branch und Arbeitsverzeichnis prüfen. Servercheckout ist nicht gleich laufendes Symcon-Modulverzeichnis.
- Neue Entwicklung auf **`develop`**, keine Feature-Branches. Nur eigene/zugehörige Änderungen committen. `develop` darf im vereinbarten Rahmen gepusht werden; `beta` nur gemäss ausdrücklicher Freigabe und nach Tests, `main` nach ausdrücklichem Auftrag/Feldabnahme. Keine Schutzregeln oder fehlende Authentifizierung umgehen.
- Daniel möchte zusammenhängende produktionsgeeignete Umsetzung, keine weitere Schleife aus Diagnosekategorien, identischen Rückfragen und veralteten Installern. Vorhandene Quellen und Werkzeuge benutzen, keine bekannten Anlagenangaben erneut verlangen.
- Code-, Host-/Container-, Kernel- und Feldtests sowie Installation, Veröffentlichung und Stellfreigabe getrennt belegen. „Optimal“/„ACK“/grüne Tests sind keine gemessene Einsparung und keine Produktionsfreigabe.
- Keine Stellbefehle, Testsitzungen, Freigaben oder Neustarts aus einer reinen Kontext-/Statusanfrage ableiten. Aktive Hardware nur innerhalb des ausdrücklich freigegebenen Umfangs behandeln. Messgrenzen/Watchdog-Nachweise nicht erfinden oder per Label umgehen.
- Keine Credentials lesen/ausgeben/einchecken. Root/Docker-Rechte nicht ausweiten. Bestehende GUI-/Fremdänderungen erhalten. Vor Runtime-Änderungen passende Sicherung, exakte Quell-/Abhängigkeitsprüfung und Rücksetzweg.
- PHP-IPS-Skripte gehören in den Symcon-Kernel; isolierte Tests mit simulierten IPS-Aufrufen niemals dort ausführen. `MC_ReloadModule`/`IPS_ApplyChanges` können Initialisierungsnebenwirkungen haben.
- Alte Outbox-/Historienwerte nicht löschen, Kennungen nicht im Original umschreiben, Cursor nur nach passender Serverbestätigung weiterführen. Keine künstlich frischen Messzeitstempel.
- Übergabe nach tatsächlichem Fortschritt aktualisieren: Datum, Commit, was wirklich installiert/getestet wurde und nächster konkreter Schritt. Keine Hintergrundarbeit behaupten.
Diese Datei ergänzt bestehende höherrangige Projekt-/Hostregeln. Sie ist keine neue Betriebsfreigabe und kann keinen anderen Agenten ohne Lesen der Dateien automatisch mit dem gesamten Chat synchronisieren.