feat(workflow): publish verified forecast controls and consolidated docs
Tests / test (push) Successful in 1m1s

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.
This commit is contained in:
dh
2026-10-08 10:02:58 +00:00
parent af69151165
commit 74a2d6c685
82 changed files with 5054 additions and 617 deletions
@@ -192,6 +192,7 @@ Nur mit `DiagnosevariablenAnzeigen=true` sichtbar:
| `Stoerung` | Sammelstatus fuer Konfigurations- und Kommunikationsfehler. |
| `Stoertext` | Letzte verstaendliche Fehlerbeschreibung. |
| `Geraetehinweis` | Pico-Autorisierung und historisches letztes Ereignis, getrennt vom aktuellen Fehler. |
| `FahrzeugMaximalstrom` | Integer in A / Anzeige. Erkannte Fahrzeuggrenze nach `FahrzeugstromErkennungszeit`; kein manuell zu setzender Ladestrom. |
| `LetzterGeraetebefehl` | Letzter Steuerbefehl mit HTTP-Methode und URL ohne Zugangsdaten; Statusabfragen ueberschreiben ihn nicht. |
| `LeistungsangebotDiagnose` | Aktuelles Leistungsangebot als JSON-Liste in W. |
@@ -199,6 +200,43 @@ Die Regellogik speichert ihren Zustand unabhaengig von der Sichtbarkeit der
Diagnosevariablen. Das Ein- oder Ausblenden veraendert daher nicht das
Regelverhalten.
## Beispiele zur Diagnose
`FahrzeugMaximalstrom` ist eine Integer-Diagnosevariable in A. Beispiel:
Ein erkanntes Fahrzeuglimit von 10 A bleibt auch bei höherem Anlagenbudget
wirksam; Angebot und Zuteilung dürfen es nicht umgehen. Die Konfiguration
`FahrzeugstromErkennungszeit` bestimmt die Beobachtungszeit.
Bei unbekannten Phasen bietet die Station im freigegebenen PV-Solarbetrieb
`[0,4104] W` an. Sind nur 3000 W zuteilbar, bleibt sie aus; die 6-A-Probe darf
nicht am Manager vorbei starten. Bei 4104 W passender Vorgabe und frischen
Geraetedaten kann die Probe beginnen. Eine anschliessende Messung von 0 W
beweist keine Einphasigkeit. Im Peak-Solarbetrieb bleibt das Angebot `[0]`.
Pico mit `State=6` wartet auf Autorisierung und bietet `[0]`. Ein altes
`LastWarningOrError` allein ist kein aktueller Ladefehler. Frisches `LastSeen`
bei altem `ValueDate` reicht bei positiver Ladeleistung dagegen nicht aus:
das Modul meldet einen Fehler und wartet auf vollstaendige frische Daten.
Sicheres Lesebeispiel fuer die Symcon-Schnellausfuehrung. Eine bestehende
Stand-Alone-Instanz einsetzen; optionale, nicht angelegte Diagnosen werden
uebersprungen. Es werden weder Zugangsdaten gelesen noch Stellbefehle gesendet.
```php
<?php
$stationId = 0; // Vorhandene Ladestation-Stand-Alone-Instanz einsetzen.
if ($stationId <= 0 || !IPS_InstanceExists($stationId)) {
throw new RuntimeException('Vorhandene Ladestations-ID erforderlich.');
}
foreach (['FahrzeugVerbunden', 'FahrzeugGeladen', 'Phasenzahl',
'Ladestrom', 'FahrzeugMaximalstrom', 'LeistungsangebotDiagnose'] as $ident) {
$id = @IPS_GetObjectIDByIdent($ident, $stationId);
if ($id !== false && IPS_VariableExists($id)) {
echo $ident . ': ' . json_encode(GetValue($id), JSON_THROW_ON_ERROR) . PHP_EOL;
}
}
```
## Managerkommunikation
Das Modul implementiert
@@ -271,6 +309,11 @@ abgeglichen am 07.10.2026.
## Migration der Korrektur vom 07.10.2026
Seit `5437f3f` wird beim Verwerfen einer Manager-Vorgabe auch die gespeicherte
und sichtbare `Sollleistung` bereinigt. Lokale Freigaben, Mindestzeiten und
physische Fahrzeugreaktion bleiben davon getrennt. Gesendete Steuerbefehle
bleiben in der Diagnose erhalten. [Kanalstand und Fehlerkorrekturen](../../../README.md).
Vor Installation laufende Moduldateien und Konfiguration sichern und fremde
Anpassungen vergleichen. Beim ersten `ApplyChanges` mit Erkennungsversion 2
werden alte, moeglicherweise aus 0 W abgeleitete Phasen verworfen. Ein alter