chore(release): erste Beta vorbereiten
This commit is contained in:
@@ -21,6 +21,12 @@ jobs:
|
||||
- name: Abhaengigkeiten installieren
|
||||
run: composer install --no-interaction --no-progress --prefer-dist
|
||||
|
||||
- name: Composer-Metadaten pruefen
|
||||
run: composer validate --strict
|
||||
|
||||
- name: Abhaengigkeiten auf Sicherheitsmeldungen pruefen
|
||||
run: composer audit --no-interaction
|
||||
|
||||
- name: Unit-Tests und Syntaxpruefung ausfuehren
|
||||
run: composer check
|
||||
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
# Changelog
|
||||
|
||||
Alle wesentlichen Aenderungen an Enelix EMS werden in dieser Datei dokumentiert.
|
||||
|
||||
## 0.1 Build 1 - Erste Beta - 2026-09-29
|
||||
|
||||
### Enthalten
|
||||
|
||||
- Enelix Manager mit PV- und Peak-Betrieb, Priorisierung und Diagnose.
|
||||
- Anlagenweite Einspeisebegrenzung, Netzfahrplan und Prognosetopologie.
|
||||
- Batterie, Warmwassererwaermer, Pufferspeicher und Waermepumpe.
|
||||
- Verbraucher 1-Stufig sowie Easee Gateway und beide Ladestationsvarianten.
|
||||
- Lizenzpruefung fuer Manager und einzeln freischaltbare Verbrauchermodule.
|
||||
- Idempotente Demoanlage fuer Installation und Integrationstests.
|
||||
|
||||
### Beta-Aenderungen
|
||||
|
||||
- Stufenlose Leistungsbereiche fuer Batteriespeicher.
|
||||
- Ladefreigabe neuer Ladestationsinstanzen standardmaessig aktiviert.
|
||||
- Vollstaendige PHP-, Struktur- und Symcon-Modultests fuer alle Module.
|
||||
|
||||
### Hinweise
|
||||
|
||||
- Diese Version ist fuer kontrollierte Anlagen- und Feldtests bestimmt.
|
||||
- Vor produktivem Einsatz sind Sicherung und anlagenspezifische Abnahme erforderlich.
|
||||
- Korrekturen werden vorwaerts ueber `develop` und anschliessend `beta` verteilt.
|
||||
@@ -4,11 +4,10 @@ Energiemanagement, Manager und steuerbare Verbraucher fuer IP-Symcon.
|
||||
|
||||
## Status
|
||||
|
||||
Das Repository befindet sich im Aufbau. Der gemeinsame Nachrichtenvertrag, die
|
||||
Verbraucherbasis, der Manager, der mehrstufige Warmwassererwaermer, der
|
||||
Pufferspeicher, die Batterie, der 1-stufige Verbraucher, die Ladestation
|
||||
Stand-Alone sowie das Easee Gateway mit Ladestation Gateway sind implementiert. Die weiteren
|
||||
Module sind als Diskussionsentwuerfe dokumentiert.
|
||||
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
|
||||
|
||||
@@ -98,6 +97,7 @@ der Uebernahme in einen Freigabebranch erfolgreich sein.
|
||||
|
||||
## Dokumentation
|
||||
|
||||
- [Changelog](CHANGELOG.md)
|
||||
- [Zentrale Liste offener Teamentscheidungen](docs/Offene-Punkte.md)
|
||||
- [Manager-Verbraucher-Schnittstelle](docs/Schnittstelle.md)
|
||||
- [Batterieschnittstelle](docs/Schnittstelle-Batterie.md)
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
"name": "belevo/enelix-ems",
|
||||
"description": "Energiemanagement und steuerbare Verbraucher fuer IP-Symcon",
|
||||
"type": "library",
|
||||
"license": "proprietary",
|
||||
"require": {
|
||||
"php": ">=8.0"
|
||||
},
|
||||
|
||||
+10
-14
@@ -49,7 +49,7 @@ Prioritaeten, Fehlerverhalten und ein pruefbares Ergebnis.
|
||||
| OP-001 | Entschieden | Lizenzierung | Betriebsort des Lizenzservers |
|
||||
| OP-002 | Erledigt | Grundeinrichtung | Generator und kostenpflichtige Ersteinrichtung |
|
||||
| OP-003 | Offen | Lizenzportal | VGT-Integration in license.enelix.ch |
|
||||
| OP-004 | Offen | Lizenzierung | Lizenzmodell des Verbrauchskostenreports |
|
||||
| OP-004 | Entschieden | Lizenzierung | Lizenzmodell des Verbrauchskostenreports |
|
||||
| OP-005 | Offen | Teststrategie | Standort fuer Feldtests |
|
||||
|
||||
## Offene Punkte
|
||||
@@ -66,19 +66,6 @@ Prioritaeten, Fehlerverhalten und ein pruefbares Ergebnis.
|
||||
- **Ziel-Sprint:** Offen
|
||||
- **Ergebnis/Verweis:** Offen
|
||||
|
||||
### OP-004: Lizenzmodell des Verbrauchskostenreports
|
||||
|
||||
- **Entscheidungsfrage:** Soll der Verbrauchskostenreport nach dem Lizenzmodell
|
||||
des Managers oder mit einer einzigen, von der Anzahl angeschlossener Zaehler
|
||||
unabhaengigen Modullizenz angeboten werden?
|
||||
- **Kontext:** Fuer den Verbrauchskostenreport muss zwischen dem Lizenzmodell des
|
||||
Managers und einer zaehlerunabhaengigen Modullizenz entschieden werden.
|
||||
- **Auswirkung:** Die Entscheidung legt fest, ob die Anzahl angeschlossener
|
||||
Zaehler den Lizenzumfang des Verbrauchskostenreports beeinflusst.
|
||||
- **Verantwortlich:** Offen
|
||||
- **Ziel-Sprint:** Offen
|
||||
- **Ergebnis/Verweis:** Offen
|
||||
|
||||
### OP-005: Standort fuer Feldtests
|
||||
|
||||
- **Entscheidungsfrage:** An welchem Standort koennen die Module aus Enelix EMS
|
||||
@@ -114,6 +101,15 @@ Prioritaeten, Fehlerverhalten und ein pruefbares Ergebnis.
|
||||
- **Ergebnis/Verweis:** Umsetzung im Lizenzportal unter
|
||||
`https://license.enelix.ch`.
|
||||
|
||||
### OP-004: Lizenzmodell des Verbrauchskostenreports
|
||||
|
||||
- **Entscheidung:** Der Verbrauchskostenreport verwendet eine Grundlizenz sowie
|
||||
getrennte Kontingente fuer Stromzaehler und Nebenzaehler. Die Anzahl der
|
||||
konfigurierten Zaehler wird bei der Lizenzpruefung beruecksichtigt.
|
||||
- **Status:** Entschieden und implementiert
|
||||
- **Ergebnis/Verweis:** Enelix Utils, Commit `1f945be` und
|
||||
`Verbrauchskostenreport/module.php`.
|
||||
|
||||
## Vorlage fuer neue Punkte
|
||||
|
||||
```markdown
|
||||
|
||||
+11
-11
@@ -42,9 +42,9 @@ werden, wenn sie vor dem Lauf nicht existierten.
|
||||
- `single`: genau die als Auswahl übergebenen Module
|
||||
- `affected`: die durch geänderte Pfade ermittelten Module
|
||||
|
||||
Verfuegbare Module: `EaseeGateway`, `LadestationGateway`,
|
||||
`LadestationStandAlone`, `Manager`, `Pufferspeicher`, `VerbraucherEinStufig`
|
||||
und `Warmwassererwaermer`.
|
||||
Verfuegbare Module: `Batterie`, `EaseeGateway`, `LadestationGateway`,
|
||||
`LadestationStandAlone`, `Manager`, `Pufferspeicher`, `VerbraucherEinStufig`,
|
||||
`Waermepumpe` und `Warmwassererwaermer`.
|
||||
|
||||
Der Manager-Test enthält Manager ohne Verbraucher, jeden Verbrauchertyp einzeln und alle aktuell implementierten Verbrauchertypen gemeinsam.
|
||||
|
||||
@@ -85,15 +85,15 @@ Zusätzlich schreibt der Runner die Zusammenfassung in das IP-Symcon-Log.
|
||||
|
||||
## CI-Regeln
|
||||
|
||||
Bei jedem Push laufen sämtliche PHPUnit-Tests. Auf `develop` werden zusätzlich
|
||||
die von den geänderten Pfaden betroffenen Symcon-Modultests ausgeführt. Bei
|
||||
gemeinsamen Framework- oder Vertragsänderungen läuft die vollständige Suite.
|
||||
Für `beta` ist immer `all` vorgeschrieben.
|
||||
Bei jedem Push laufen sämtliche PHPUnit-Tests und die PHP-Syntaxprüfung. Die
|
||||
Symcon-Modultests werden bis zur Verfügbarkeit eines geschützten Runners auf
|
||||
der isolierten IP-Symcon-8.0-Instanz des Agent-Servers ausgeführt. Vor jeder
|
||||
Übernahme nach `beta` ist ein erfolgreicher Lauf im Modus `all` verbindlich.
|
||||
Der erzeugte JSON- und JUnit-Bericht gehört zum Freigabenachweis.
|
||||
|
||||
Die Symcon-Jobs benötigen einen geschützten Runner mit dem Label `symcon-8`,
|
||||
lokalem Zugriff auf eine isolierte IP-Symcon-8.x-Instanz und den installierten
|
||||
Repository-Stand. Ohne diesen Runner ist die Richtlinie dokumentiert, aber
|
||||
nicht technisch durchsetzbar.
|
||||
Eine spätere CI-Automatisierung benötigt einen geschützten Runner mit dem Label
|
||||
`symcon-8`, lokalem Zugriff auf die isolierte IP-Symcon-Instanz und den exakt
|
||||
zu prüfenden Repository-Stand.
|
||||
|
||||
## Checkliste für neue Module
|
||||
|
||||
|
||||
+2
-2
@@ -7,6 +7,6 @@
|
||||
"version": "8.0"
|
||||
},
|
||||
"version": "0.1",
|
||||
"build": 0,
|
||||
"date": 0
|
||||
"build": 1,
|
||||
"date": 1790662541
|
||||
}
|
||||
|
||||
@@ -17,6 +17,9 @@ final class LibraryMetadataTest extends TestCase
|
||||
self::assertSame('Enelix EMS', $daten['name']);
|
||||
self::assertSame('Enelix', $daten['author']);
|
||||
self::assertSame('8.0', $daten['compatibility']['version']);
|
||||
self::assertSame('0.1', $daten['version']);
|
||||
self::assertSame(1, $daten['build']);
|
||||
self::assertGreaterThan(0, $daten['date']);
|
||||
self::assertMatchesRegularExpression('/^\{[0-9A-F-]{36}\}$/', $daten['id']);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user