Files
Enelix-EMS/README.md
T
dh 74a2d6c685
Tests / test (push) Successful in 1m1s
feat(workflow): publish verified forecast controls and consolidated docs
Approved by Daniel Haefliger for develop and beta. Author dh_Agent, authenticated account dh. Preserve published battery, charging and overall Energy Pie changes. No deployment or plant control authorization.
2026-10-08 10:02:58 +00:00

174 lines
8.6 KiB
Markdown

# Enelix EMS
Energiemanagement, Manager und steuerbare Verbraucher fuer IP-Symcon.
## Status
**Dokumentationsabgleich: 8. Oktober 2026.** Funktionsstände vor dieser reinen
Dokumentationsänderung:
| Kanal | Quellbasis | Tatsächlicher Umfang |
| --- | --- | --- |
| Testing / `develop` | `5885681` | Alle unten genannten Module, neue Ladestatus-/Phasenprüfung, Forecast-/SDL-Integration und begrenzter V4-Testpfad. |
| Beta / `beta` | `5885681` | Gleicher veröffentlichter Quellstand wie Testing; keine zusätzliche Anlagenabnahme daraus ableiten. |
| Stable / `main` | `b6253f9` | Nur Bibliotheksgrundlage und Nachrichtenvertrag 3.0, noch keine installierbaren EMS-Module. |
**Stable enthält die nachfolgend beschriebenen Module noch nicht.** Diese
README beschreibt den Testing-/Beta-Stand. Ein Dokumentationscommit nach der
genannten Quellbasis ändert weder Modulverhalten noch Freigabestatus.
Die kanalgenaue Referenz liegt jeweils im gleichnamigen Git-Branch.
Version 0.1 Build 1 ist die erste Beta fuer kontrollierte Anlagen- und
Feldtests. Der gemeinsame Nachrichtenvertrag, die Verbraucherbasis, der Manager
und alle unten aufgefuehrten Module sind implementiert. Produktiver Einsatz
setzt eine anlagenspezifische Pruefung, Sicherung und Rueckfallplanung voraus.
## Module
- Manager (implementiert)
- Batterie (implementiert)
- Wassererwaermer (implementiert)
- Pufferspeicher (implementiert)
- Verbraucher 1-Stufig (implementiert)
- Waermepumpe (implementiert)
- Ladestation Stand-Alone (implementiert)
- Ladestation Gateway (implementiert)
- Easee Gateway (implementiert)
Die Properties, Variablen, Zustandsdaten und offenen Punkte stehen in der
[Modulübersicht](docs/module/README.md). Gemeinsame Felder werden dort nicht
abweichend neu definiert, sondern verweisen auf den zentralen Vertrag.
Die Verbraucher kommunizieren mit dem Manager ueber den gemeinsamen Vertrag
in `libs/`. Der Manager waehlt die Verbraucher aus; in einem Verbraucher gibt
es keine Manager-ID-Property.
## Betriebsartabhaengige Leistungsangebote
Der Nachrichtenvertrag `4.0` uebermittelt in beiden Richtungen verpflichtend
die aktuelle `Betriebsart`. Zulaessige Werte sind `PV` fuer Solarbetrieb und
`Peak` fuer die Lastspitzenbegrenzung. Dadurch kann jeder Verbraucher fuer
beide Betriebsarten unterschiedliche PowerSteps melden.
Ein Betriebsartwechsel wird synchronisiert:
1. Der Manager bestimmt die neue Betriebsart.
2. Er sendet sie mit `Sollleistung_W: null` an alle aktiven Verbraucher.
3. `null` ist nur eine Ankuendigung und kein Schaltbefehl.
4. Jeder Verbraucher berechnet sein zustandsabhaengiges Leistungsangebot neu
und meldet es mit derselben Betriebsart zurueck.
5. Der Manager verteilt konkrete Sollleistungen an alle bereits
synchronisierten Verbraucher.
6. Fehlende, veraltete oder noch nicht umgeschaltete Verbraucher bleiben von
der Verteilung ausgeschlossen und werden als Stoerung ausgewiesen.
Der Manager verwendet damit nie ein PV-Angebot fuer Peak oder umgekehrt. Ein
nicht antwortender Verbraucher blockiert die Regelung der uebrigen Anlage
nicht; sein aktueller Einfluss ist bereits in der Netzleistungsmessung
enthalten. Eine technische Schaltsperre oder eine Mindestzeit kann das Angebot
weiterhin auf die aktuell gehaltene Leistung begrenzen.
| Verbraucher | PV-Angebot | Peak-Angebot |
| --- | --- | --- |
| Verbraucher 1-Stufig | Normal `[0, Nennleistung]`; bei faelliger Tagesmindestlaufzeit `[Nennleistung]` | Normal `[0]`; bei faelliger Tagesmindestlaufzeit konfigurierbar `[0, Nennleistung]` oder `[Nennleistung]` |
| Ladestation Stand-Alone | Mit Solarladen `[0, ...Ladestufen]`, sonst maximale Ladeleistung | Mit Solarladen `[0]`, sonst `[0, ...Ladestufen]` |
| Ladestation Gateway | Mit Solarladen `[0, ...Ladestufen]`, sonst maximale Ladeleistung | Mit Solarladen `[0]`, sonst `[0, ...Ladestufen]` |
| Warmwassererwaermer | Unter Mindesttemperatur maximale Stufe, sonst zustandsabhaengig | Unter wirksamer Mindesttemperatur `[0, ...Leistungsstufen]`, sonst `[0]` |
| Pufferspeicher | Unter Einschaltschwelle `[0, ...Leistungsstufen]`, sonst `[0]` | Unabhaengig vom Zustand `[0]` |
| Batterie | SoC-abhaengiges Lade-/Entladeraster | SoC-, Reserve- und netzabhaengiges Angebot |
Die vollstaendigen Nachrichtenfelder und JSON-Beispiele stehen in der
[Manager-Verbraucher-Schnittstelle](docs/Schnittstelle.md). Hintergrund,
Alternativen und Folgen beschreibt
[ADR 0004](docs/adr/0004-betriebsartabhaengige-leistungsangebote.md).
## Voraussetzungen
- IP-Symcon ab Version 8.0
- PHP ab Version 8.0 fuer die Entwicklungstests
## Entwicklung und Tests
```bash
composer install
composer check
python3 tests/check_documentation.py
```
Der Gesamttest schliesst alle Modulsuiten ein. Der einstufige Verbraucher kann
zusaetzlich unabhaengig ausgefuehrt werden:
```bash
composer check:verbraucher-einstufig
```
Neue oder geaenderte Funktionen werden zusammen mit ihren PHPUnit-Tests eingecheckt.
Jedes Modul besitzt zusätzlich einen standardisierten Laufzeittest für IP-Symcon
8.x. Einzel-, Änderungs- und Gesamtläufe sowie Cleanup und Berichte sind im
[Testleitfaden](docs/testing/README.md) beschrieben. Die CI-Pruefung muss vor
der Uebernahme in einen Freigabebranch erfolgreich sein.
| Git-Branch | IP-Symcon-Kanal |
| --- | --- |
| `main` | Stable |
| `beta` | Beta |
| `develop` | Testing |
## Dokumentation
- [Versionen, Neuerungen und bekannte Grenzen](docs/public/versionen.md)
- [Öffentliche Dokumentation auf license.enelix.ch](https://license.enelix.ch/docs/index.html)
- [Vollständige Feld- und Modulreferenzen](docs/module/README.md)
- [Changelog](CHANGELOG.md)
- [Zentrale Liste offener Teamentscheidungen](docs/Offene-Punkte.md)
- [Manager-Verbraucher-Schnittstelle](docs/Schnittstelle.md)
- [Batterieschnittstelle](docs/Schnittstelle-Batterie.md)
- [ADR 0004: Betriebsartabhaengige Leistungsangebote](docs/adr/0004-betriebsartabhaengige-leistungsangebote.md)
- [ADR 0005: Anlagentopologie fuer Prognosen](docs/adr/0005-anlagentopologie-fuer-prognosen.md)
- [Manager-Modul inklusive Lizenzierung](docs/module/Manager/README.md)
- [Warmwassererwaermer-Modul](docs/module/Wassererwaermer/README.md)
- [Pufferspeicher-Modul](docs/module/Pufferspeicher/README.md)
- [Batteriemodul](docs/module/Batterie/README.md)
- [Verbraucher-1-Stufig-Modul](docs/module/Verbraucher-1-Stufig/README.md)
- [Ladestation-Stand-Alone-Modul](docs/module/Ladestation-Stand-Alone/README.md)
- [Ladestation-Gateway-Modul](docs/module/Ladestation-Gateway/README.md)
- [Easee-Gateway-Modul](docs/module/Easee-Gateway/README.md)
- [Easee-Gateway-Schnittstelle](docs/Schnittstelle-Easee-Gateway.md)
- [Migration Boiler x-Stufig](docs/migration/Boiler-x-Stufig.md)
- [Migration Verbraucher 1-Stufig](docs/migration/Verbraucher-1-Stufig.md)
- [Migration Batterie](docs/migration/Batterie.md)
- [Obere Anschlüsse des Managers](docs/Obere-Anschluesse.md)
- [Modulübersicht](docs/module/README.md)
## Neuerungen und Fehlerstatus
Die aktuellen Erweiterungen umfassen schrittweise Leistungsverteilung bei
gleicher Priorität, separate SDL-Bilanzierung mit SOC, erweiterte Energiefluss-
und Diagrammdarstellung sowie eine zusammengeführte Prognosebedienung. Die
vollständige ausgewählte Eingangsprognose wird von dem durch veröffentlichte
Preise begrenzten ausführbaren Plan unterschieden. Eine Prognose ist kein
Nachweis einer realen Einsparung.
Behoben wurden unter anderem veraltete Sollwertanzeigen nach dem Verwerfen einer
Vorgabe, Go-e-Regelübergänge, Easee-Wiederverbindung und stehenbleibende Ladeleistung,
falsch erkannte Ladeenden während Solarpausen, veraltete Pico-Statusdaten,
unbudgetierte Phasenproben, Festlastbilanzierung und mehrere
V4-Empfangs-/Messdatenprobleme. Die belegten Korrekturen und ihre Git-Nachweise
stehen im [Changelog](CHANGELOG.md).
**Weiter offen:** V4-Dauerbetriebsfreigabe und physische Abnahme, Ursache der
wiederholt beobachteten Batterietimerblockade nach Modul-Reload sowie der separat
zu bestätigende Forecast-Backend-Rollout. Am 7. Oktober wurden laufende
periodische Timer dokumentiert; der historische Stillstand ist damit kein
behaupteter aktueller Zustand. Diese Dokumentationsarbeit ist keine Live-Prüfung.
Die frühere V4-Testfreigabe ist seit 7. Oktober abgelaufen und wird nicht erneuert.
Bei alten Plänen können vollständige Forecast-
Kurven fehlen; fehlende Werte bleiben Lücken. Signierte produktive Lizenz-
Leases und die Prüfung der Untermanager-Messabgrenzung bleiben offene Grenzen.
Vor SDL-Visualisierungsupdates zuerst Enelix Utils aktualisieren. Bestehende
Zähler, Quellen, individuelle Diagramme und Schutzfreigaben erhalten.
`EnergieanteileBerechenbar=false` bedeutet nicht bestimmbare Anteile, nicht 0 %.
Git-Veröffentlichung und Portal-Dokumentation aktualisieren keine Symcon-Anlage.