chore(release): erste Beta vorbereiten
This commit is contained in:
@@ -21,6 +21,14 @@ jobs:
|
|||||||
- name: Abhaengigkeiten installieren
|
- name: Abhaengigkeiten installieren
|
||||||
run: composer install --no-interaction --no-progress --prefer-dist
|
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
|
||||||
|
composer audit --working-dir=Verbrauchskostenreport/libs --locked --no-interaction
|
||||||
|
|
||||||
- name: Unit-Tests und Syntaxpruefung ausfuehren
|
- name: Unit-Tests und Syntaxpruefung ausfuehren
|
||||||
run: composer check
|
run: composer check
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,26 @@
|
|||||||
|
# Changelog
|
||||||
|
|
||||||
|
Alle wesentlichen Aenderungen an Enelix Utils werden in dieser Datei dokumentiert.
|
||||||
|
|
||||||
|
## 0.1 Build 1 - Erste Beta - 2026-09-29
|
||||||
|
|
||||||
|
### Enthalten
|
||||||
|
|
||||||
|
- Verbrauchskostenreport mit PDF-Ausgabe und Schweizer QR-Zahlteil nach SIX 2.3.
|
||||||
|
- Verbrauchskostenreport mit Grundlizenz sowie Strom- und Nebenzaehlerkontingenten.
|
||||||
|
- Virtuelle Batterie und VGT-Schnittstelle.
|
||||||
|
- CC100 Hardware und generisches Shelly Modul.
|
||||||
|
- Energiediagramm fuer die IP-Symcon-Kachelvisualisierung.
|
||||||
|
|
||||||
|
### Beta-Aenderungen
|
||||||
|
|
||||||
|
- Dezimale IP-Symcon-Farbwerte werden im Energiediagramm korrekt verarbeitet.
|
||||||
|
- Kachelabstand fuer den Symcon-Kopf und versionsabhaengiger Vollbildmodus.
|
||||||
|
- Vollstaendige PHP-, Struktur- und Symcon-Modultests fuer alle Module.
|
||||||
|
- Composer-Metadaten- und Abhaengigkeitspruefung in der CI.
|
||||||
|
|
||||||
|
### 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,9 +4,11 @@ Unabhaengige Zusatzmodule fuer IP-Symcon. Dieses Repository ist nicht vom Enelix
|
|||||||
|
|
||||||
## Status
|
## Status
|
||||||
|
|
||||||
Das Repository befindet sich im Aufbau. Verbrauchskostenreport, Virtuelle
|
Version 0.1 Build 1 ist die erste Beta fuer kontrollierte Anlagen- und
|
||||||
Batterie, CC100 Hardware, Energiediagramm, VGT-Schnittstelle und Shelly Modul
|
Feldtests. Verbrauchskostenreport, Virtuelle Batterie, CC100 Hardware,
|
||||||
sind als installierbare IP-Symcon-Module enthalten.
|
Energiediagramm, VGT-Schnittstelle und Shelly Modul sind als installierbare
|
||||||
|
IP-Symcon-Module enthalten. Produktiver Einsatz setzt eine anlagenspezifische
|
||||||
|
Pruefung und Sicherung voraus.
|
||||||
|
|
||||||
## Module
|
## Module
|
||||||
|
|
||||||
@@ -23,6 +25,10 @@ Punkten stehen in der [Modulübersicht](docs/module/README.md).
|
|||||||
Prognose, Lizenzierung und Störüberwachung sind keine Module dieses
|
Prognose, Lizenzierung und Störüberwachung sind keine Module dieses
|
||||||
Repositories. Die Utils-Module bleiben auch untereinander unabhängig.
|
Repositories. Die Utils-Module bleiben auch untereinander unabhängig.
|
||||||
|
|
||||||
|
## Release-Hinweise
|
||||||
|
|
||||||
|
Die Aenderungen der ersten Beta stehen im [Changelog](CHANGELOG.md).
|
||||||
|
|
||||||
## Voraussetzungen
|
## Voraussetzungen
|
||||||
|
|
||||||
- IP-Symcon ab Version 8.0
|
- IP-Symcon ab Version 8.0
|
||||||
|
|||||||
@@ -19,6 +19,13 @@ Abmelden des WebHooks beim Löschen einer Instanz.
|
|||||||
- erzeugt optional einen Schweizer QR-Zahlteil
|
- erzeugt optional einen Schweizer QR-Zahlteil
|
||||||
- unterstützt den konfigurierbaren MWST-Ausweis
|
- unterstützt den konfigurierbaren MWST-Ausweis
|
||||||
|
|
||||||
|
## Lizenzierung
|
||||||
|
|
||||||
|
Der Report benoetigt eine Grundlizenz. Zusaetzlich prueft das Modul getrennte
|
||||||
|
Kontingente fuer konfigurierte Stromzaehler und Nebenzaehler. Lizenzcodes werden
|
||||||
|
zur Laufzeit gegen `https://license.enelix.ch` geprueft; Zugangsdaten oder
|
||||||
|
Lizenzcodes werden nicht im Repository gespeichert.
|
||||||
|
|
||||||
## QR-Zahlteil
|
## QR-Zahlteil
|
||||||
|
|
||||||
Der QR-Zahlteil verwendet strukturierte Adressen (`S`) nach SIX SPS 2.3.
|
Der QR-Zahlteil verwendet strukturierte Adressen (`S`) nach SIX SPS 2.3.
|
||||||
@@ -30,6 +37,7 @@ Benutzer- und Zahlungsempfängeradresse benötigen Name, PLZ, Ort und ISO-2-Land
|
|||||||
|
|
||||||
| Property | Beschreibung |
|
| Property | Beschreibung |
|
||||||
|---|---|
|
|---|---|
|
||||||
|
| `Lizenzcode` | Laufzeitparameter fuer die Freigabe am Lizenzdienst |
|
||||||
| `Users` | Benutzerliste |
|
| `Users` | Benutzerliste |
|
||||||
| `PowerMeters` | Stromzählerliste |
|
| `PowerMeters` | Stromzählerliste |
|
||||||
| `WaterMeters` | Nebenkostenzähler |
|
| `WaterMeters` | Nebenkostenzähler |
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
"name": "belevo/enelix-utils",
|
"name": "belevo/enelix-utils",
|
||||||
"description": "Unabhaengige Zusatzmodule fuer IP-Symcon",
|
"description": "Unabhaengige Zusatzmodule fuer IP-Symcon",
|
||||||
"type": "library",
|
"type": "library",
|
||||||
|
"license": "proprietary",
|
||||||
"require": {
|
"require": {
|
||||||
"php": ">=8.0"
|
"php": ">=8.0"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -7,6 +7,12 @@
|
|||||||
Der Modulpräfix lautet `VKR`. Der Report wird über die Aktion `CreateReport`
|
Der Modulpräfix lautet `VKR`. Der Report wird über die Aktion `CreateReport`
|
||||||
erstellt und im Medium `ReportPDF` bereitgestellt.
|
erstellt und im Medium `ReportPDF` bereitgestellt.
|
||||||
|
|
||||||
|
## Lizenzierung
|
||||||
|
|
||||||
|
Die Freigabe besteht aus einer Grundlizenz und getrennten Kontingenten fuer
|
||||||
|
Stromzaehler und Nebenzaehler. Der konfigurierte Umfang darf die vom
|
||||||
|
Lizenzdienst bestaetigten Mengen nicht ueberschreiten.
|
||||||
|
|
||||||
## Variablen
|
## Variablen
|
||||||
|
|
||||||
| Technischer Ident / Anzeige | Typ / Zugriff | Beschreibung |
|
| Technischer Ident / Anzeige | Typ / Zugriff | Beschreibung |
|
||||||
@@ -28,6 +34,7 @@ erstellt und im Medium `ReportPDF` bereitgestellt.
|
|||||||
|
|
||||||
| Technischer Ident / Anzeige | Typ | Standard / Beschreibung |
|
| Technischer Ident / Anzeige | Typ | Standard / Beschreibung |
|
||||||
| --- | --- | --- |
|
| --- | --- | --- |
|
||||||
|
| `Lizenzcode` / Lizenzcode | String | leer; wird zur Laufzeit am Lizenzdienst geprueft. |
|
||||||
| `Users` / Benutzer | String/JSON | `[]`; Benutzerstruktur. |
|
| `Users` / Benutzer | String/JSON | `[]`; Benutzerstruktur. |
|
||||||
| `PowerMeters` / Stromzähler | String/JSON | `[]`; Zuordnungen. |
|
| `PowerMeters` / Stromzähler | String/JSON | `[]`; Zuordnungen. |
|
||||||
| `WaterMeters` / Wasserzähler | String/JSON | `[]`; Zuordnungen. |
|
| `WaterMeters` / Wasserzähler | String/JSON | `[]`; Zuordnungen. |
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ werden, wenn sie vor dem Lauf nicht existierten.
|
|||||||
- `affected`: die durch geänderte Pfade ermittelten Module
|
- `affected`: die durch geänderte Pfade ermittelten Module
|
||||||
|
|
||||||
Verfügbare Module: `CC100Hardware`, `Energiediagramm`, `ShellyModul`,
|
Verfügbare Module: `CC100Hardware`, `Energiediagramm`, `ShellyModul`,
|
||||||
`Verbrauchskostenreport`.
|
`VGTSchnittstelle`, `Verbrauchskostenreport` und `VirtuelleBatterie`.
|
||||||
|
|
||||||
Die Utils-Module werden jeweils eigenständig und ohne Abhängigkeit zu Enelix EMS getestet.
|
Die Utils-Module werden jeweils eigenständig und ohne Abhängigkeit zu Enelix EMS getestet.
|
||||||
|
|
||||||
@@ -84,15 +84,15 @@ Zusätzlich schreibt der Runner die Zusammenfassung in das IP-Symcon-Log.
|
|||||||
|
|
||||||
## CI-Regeln
|
## CI-Regeln
|
||||||
|
|
||||||
Bei jedem Push laufen sämtliche PHPUnit-Tests. Auf `develop` werden zusätzlich
|
Bei jedem Push laufen sämtliche PHPUnit-Tests und die PHP-Syntaxprüfung. Die
|
||||||
die von den geänderten Pfaden betroffenen Symcon-Modultests ausgeführt. Bei
|
Symcon-Modultests werden bis zur Verfügbarkeit eines geschützten Runners auf
|
||||||
gemeinsamen Framework- oder Vertragsänderungen läuft die vollständige Suite.
|
der isolierten IP-Symcon-8.0-Instanz des Agent-Servers ausgeführt. Vor jeder
|
||||||
Für `beta` ist immer `all` vorgeschrieben.
|
Ü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`,
|
Eine spätere CI-Automatisierung benötigt einen geschützten Runner mit dem Label
|
||||||
lokalem Zugriff auf eine isolierte IP-Symcon-8.x-Instanz und den installierten
|
`symcon-8`, lokalem Zugriff auf die isolierte IP-Symcon-Instanz und den exakt
|
||||||
Repository-Stand. Ohne diesen Runner ist die Richtlinie dokumentiert, aber
|
zu prüfenden Repository-Stand.
|
||||||
nicht technisch durchsetzbar.
|
|
||||||
|
|
||||||
## Checkliste für neue Module
|
## Checkliste für neue Module
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -7,6 +7,6 @@
|
|||||||
"version": "8.0"
|
"version": "8.0"
|
||||||
},
|
},
|
||||||
"version": "0.1",
|
"version": "0.1",
|
||||||
"build": 0,
|
"build": 1,
|
||||||
"date": 0
|
"date": 1790662541
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,6 +16,9 @@ final class LibraryMetadataTest extends TestCase
|
|||||||
$daten = json_decode($inhalt, true, 512, JSON_THROW_ON_ERROR);
|
$daten = json_decode($inhalt, true, 512, JSON_THROW_ON_ERROR);
|
||||||
self::assertSame('Enelix Utils', $daten['name']);
|
self::assertSame('Enelix Utils', $daten['name']);
|
||||||
self::assertSame('8.0', $daten['compatibility']['version']);
|
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']);
|
self::assertMatchesRegularExpression('/^\{[0-9A-F-]{36}\}$/', $daten['id']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user